aboutsummaryrefslogtreecommitdiffhomepage
path: root/Eigen/src/Core/Map.h
Commit message (Collapse)AuthorAge
* allow vectorization of mat44.col() by adding a InnerPanel booleanGravatar Gael Guennebaud2010-07-23
| | | | template parameter to Block
* Backed out changeset 40f6e26a247976ba1868520a4747e49e0739a42aGravatar Benoit Jacob2010-08-11
| | | | See thread on mailing list: "InnerPanel change mis-detects alignment?"
* allow vectorization of mat44.col() by adding a InnerPanel booleanGravatar Gael Guennebaud2010-07-23
| | | | template parameter to Block
* Various documentation improvements.Gravatar Jitse Niesen2010-07-06
| | | | | | | * Add short documentation for Array class * Put all classes explicitly in Core module (where applicable) * Section on Modules in Quick Reference Guide * Put Page 7 after Page 6 in Contents :)
* add default parameters for InnerStride/OuterStride to beGravatar Gael Guennebaud2010-06-25
| | | | able to simply write OuterStride<> instead of OuterStride<Dynamic>
* email changeGravatar Gael Guennebaud2010-06-24
|
* More Index related stuff.Gravatar Hauke Heibel2010-06-21
|
* Fixed warnings regarding enums.Gravatar Hauke Heibel2010-06-12
|
* change the value of Dynamic to -1, since the index type is now configurable.Gravatar Benoit Jacob2010-06-11
| | | | remove EIGEN_ENUM_MIN/MAX, implement new macros instead
* the Index types change.Gravatar Benoit Jacob2010-05-30
| | | | As discussed on the list (too long to explain here).
* Removed ambiguity between Map and Matrix Options template parameter.Gravatar Hauke Heibel2010-04-26
|
* renaming (MatrixType ---> whatever appropriate)Gravatar Benoit Jacob2010-04-18
| | | | and documentation improvements
* * Refactoring of the class hierarchy: introduction of DenseDirectAccessBase, ↵Gravatar Benoit Jacob2010-04-16
| | | | | | | | | removal of extra _Base/_Options template parameters. * Introduction of strides-at-compile-time so for example the optimized code really knows when it needs to evaluate to a temporary * StorageKind / XprKind * Quaternion::setFromTwoVectors: use JacobiSVD instead of SVD * ComplexSchur: support the 1x1 case
* fix the flags and matrix options, to always have the right RowMajor bit in ↵Gravatar Benoit Jacob2010-03-19
| | | | the vector case
* implement the idea that row-vectors have the RowMajorBit and col-vectors don't.Gravatar Benoit Jacob2010-03-09
|
* Document Map and Stride, add examples.Gravatar Benoit Jacob2010-02-26
|
* Fix Map-with-Stride and cover it by new unit tests.Gravatar Benoit Jacob2010-02-26
|
* * Implement the ByOuterInner accessorsGravatar Benoit Jacob2010-02-25
| | | | | | | | * use them (big simplification in Assign.h) * axe (Inner|Outer)StrideAtCompileTime that were just introduced * ei_int_if_dynamic now asserts that the size is the expected one: adapt to that in Block.h * add rowStride() / colStride() in DenseBase * implement innerStride() / outerStride() everywhere needed
* miserable half-working state, commiting to a fork just in case, just to perfectGravatar Benoit Jacob2010-02-18
| | | | | my day, my hard disk would die. Will write a more detailed commit message once it's working.
* lot of cleaning:Gravatar Gael Guennebaud2010-01-22
| | | | | | - clean the *_PUBLIC_INTERFACE_* - update Diagonal, ReturnByValue, ForceAlignedAccess, UnaryView, etc. to support array - many other small stuff
* More documentation improvements.Gravatar Hauke Heibel2010-01-16
|
* add a DenseBase class for MAtrixBase and ArrayBase and more code factorisationGravatar Gael Guennebaud2009-12-04
|
* * remove EnforceAlignedAccess option to Block, VectorBlock, Map and MapBaseGravatar Gael Guennebaud2009-11-20
| | | | | | because thanks to the previous commit this is not needed anymore * add a more general ForceAlignedAccess expression which can be used for any expression. It is already used by StableNorm.h.
* * extend Map to allow the user to specify whether the mapped dataGravatar Gael Guennebaud2009-10-23
| | | | | | | is aligned or not. This is done using the Aligned constant: Map<MatrixType,Aligned>::Map(data); * rename ForceAligned to EnforceAlignedAccess, and update its doc, and emphasize this is mainly an internal stuff.
* remove sentence "Eigen itself is part of the KDE project."Gravatar Benoit Jacob2009-05-22
| | | | it never made very precise sense. but now does it still make any?
* fix MapBase's ForceAligned concept which was not working at all....Gravatar Gael Guennebaud2009-03-09
|
* add "remap" snippet using placement newGravatar Gael Guennebaud2009-02-09
|
* * remove set(), revert to old behavior where = resizesGravatar Benoit Jacob2009-01-21
| | | | | | | | | | * try to be clever in matrix ctors and operator=: be lazy when we can, always allow to copy rowvector into columnvector, check the template parameters, try to factor the code better * add missing copy ctor in UnalignedType * fix bug in the traits of DiagonalProduct * renaming: EIGEN_TUNE_FOR_CPU_CACHE_SIZE * update the dox a little
* bugfix in Map by Keir MierleGravatar Gael Guennebaud2009-01-18
|
* * Much better, consistent error msgs when mixing different scalar types:Gravatar Benoit Jacob2008-12-03
| | | | | | | | | | | | | - in matrix-matrix product, static assert on the two scalar types to be the same. - Similarly in CwiseBinaryOp. POTENTIALLY CONTROVERSIAL: we don't allow anymore binary ops to take two different scalar types. The functors that we defined take two args of the same type anyway; also we still allow the return type to be different. Again the reason is that different scalar types are incompatible with vectorization. Better have the user realize explicitly what mixing different numeric types costs him in terms of performance. See comment in CwiseBinaryOp constructor. - This allowed to fix a little mistake in test/regression.cpp, mixing float and double - Remove redundant semicolon (;) after static asserts
* Update e-mail addressGravatar Benoit Jacob2008-11-24
|
* Add Matrix::Map() and Matrix::AlignedMap() static methodsGravatar Benoit Jacob2008-11-03
|
* doc and use sed to clean the class hierarchy instead ofGravatar Gael Guennebaud2008-08-28
| | | | preprocessor directives.
* * move memory related stuff to util/Memory.hGravatar Gael Guennebaud2008-08-26
| | | | | * clean ugly doxygen inheritence of expressions * keep improving the documentation... slowly !
* * remove LargeBit and related stuffGravatar Gael Guennebaud2008-08-23
| | | | | | | * replaced the Flags template parameter of Matrix by StorageOrder and move it back to the 4th position such that we don't have to worry about the two Max* template parameters * extended EIGEN_USING_MATRIX_TYPEDEFS with the ei_* math functions
* add resize() methods to Map, doing nothing but assertions.Gravatar Benoit Jacob2008-08-21
| | | | | This is useful in Krita where I call lu().solve() with a Map object as result. As solve() resizes the result, this was needed.
* Renamed allowAligned() => forceAligned() and added the constants ForceAlignedGravatar Gael Guennebaud2008-08-09
| | | | | and AsRequested for the PacketAccess parameter of MapBase. Updated respective documentation.
* * Big change in Block and Map:Gravatar Gael Guennebaud2008-08-09
| | | | | | | | | | | | | | - added a MapBase base xpr on top of which Map and the specialization of Block are implemented - MapBase forces both aligned loads (and aligned stores, see below) in expressions such as "x.block(...) += other_expr" * Significant vectorization improvement: - added a AlignedBit flag meaning the first coeff/packet is aligned, this allows to not generate extra code to deal with the first unaligned part - removed all unaligned stores when no unrolling - removed unaligned loads in Sum when the input as the DirectAccessBit flag * Some code simplification in CacheFriendly product * Some minor documentation improvements
* Optimizations:Gravatar Gael Guennebaud2008-08-01
| | | | | | | | * faster matrix-matrix and matrix-vector products (especially for not aligned cases) * faster tridiagonalization (make it using our matrix-vector impl.) Others: * fix Flags of Map * split the test_product to two smaller ones
* update the inverse test a littleGravatar Benoit Jacob2008-07-26
| | | | | make use of static asserts in Map fix 2 warnings in CacheFriendlyProduct: unused var 'Vectorized'
* * Fix a couple of issues related to the recent cache friendly productsGravatar Gael Guennebaud2008-07-19
| | | | | | | * Improve the efficiency of matrix*vector in unaligned cases * Trivial fixes in the destructors of MatrixStorage * Removed the matrixNorm in test/product.cpp (twice faster and that assumed the matrix product was ok while checking that !!)
* fix a couple of issues in the new Map.hGravatar Benoit Jacob2008-06-27
|
* * rework Map, allow vectorizationGravatar Benoit Jacob2008-06-27
| | | | | | | | * rework PacketMath and DummyPacketMath, make these actual template specializations instead of just overriding by non-template inline functions * introduce ei_ploadt and ei_pstoret, make use of them in Map and Matrix * remove Matrix::map() methods, use Map constructors instead.
* change derived classes methods from "private:_method()"Gravatar Benoit Jacob2008-06-26
| | | | | | | | to "public:method()" i.e. reimplementing the generic method() from MatrixBase. improves compilation speed by 7%, reduces almost by half the call depth of trivial functions, making gcc errors and application backtraces nicer...
* * add bench/benchVecAdd.cpp by Gael, fix crash (ei_pload on non-aligned)Gravatar Benoit Jacob2008-06-26
| | | | | | | | | | | | * introduce packet(int), make use of it in linear vectorized paths --> completely fixes the slowdown noticed in benchVecAdd. * generalize coeff(int) to linear-access xprs * clarify the access flag bits * rework api dox in Coeffs.h and util/Constants.h * improve certain expressions's flags, allowing more vectorization * fix bug in Block: start(int) and end(int) returned dyn*dyn size * fix bug in Block: just because the Eval type has packet access doesn't imply the block xpr should have it too.
* * make the _Flags template parameter of Matrix default to the correctedGravatar Benoit Jacob2008-06-13
| | | | | | | | | flags. This ensures that unless explicitly messed up otherwise, a Matrix type is equal to its own Eval type. This seriously reduces the number of types instantiated. Measured +13% compile speed, -7% binary size. * Improve doc of Matrix template parameters.
* Introduce generic Flagged xpr, remove already Lazy.h and Temporary.hGravatar Benoit Jacob2008-05-14
| | | | Rename DefaultLostFlagMask --> HerediraryBits
* put inline keywords everywhere appropriate. So we don't need anymore to passGravatar Benoit Jacob2008-05-12
| | | | -finline-limit=1000 to gcc to get good performance. By the way some cleanup.
* * Draft of a eigenvalues solverGravatar Gael Guennebaud2008-05-12
| | | | | | | | | | | | | | | (does not support complex and does not re-use the QR decomposition) * Rewrite the cache friendly product to have only one instance per scalar type ! This significantly speeds up compilation time and reduces executable size. The current drawback is that some trivial expressions might be evaluated like conjugate or negate. * Renamed "cache optimal" to "cache friendly" * Added the ability to directly access matrix data of some expressions via: - the stride()/_stride() methods - DirectAccessBit flag (replace ReferencableBit)
* * Added ReferencableBit flag to known if coeffRef is available.Gravatar Gael Guennebaud2008-05-08
| | | | | | | | | | | (needed by the new product implementation) * Make the packet* members template to support aligned and unaligned access. This makes Block vectorizable. Combined with ReferencableBit, we should be able to determine at runtime (in some specific cases) if an aligned vectorization is possible or not. * Improved the new product implementation to robustly handle all cases, it now passes all the tests. * Renamed the packet version ei_predux to ei_preduxp to avoid name collision.