aboutsummaryrefslogtreecommitdiffhomepage
path: root/Eigen/src/Core/Transpose.h
Commit message (Collapse)AuthorAge
* email changeGravatar Gael Guennebaud2010-06-24
|
* typoGravatar Gael Guennebaud2010-06-16
|
* fix #126, part 2/2: the checkTransposeAliasing() assertion was always ↵Gravatar Benoit Jacob2010-06-16
| | | | | | | | compiled, for all expressions, even for expressions that are known at compile time to not need it because they don't involve any transposing. This gave 'controlling condition is constant' warnings on ICC, and potentially worse, this could generate a lot of useless code per-expression if the compiler failed to realize that the condition was constant.
* * remove ei_index, and let ei_traits propagate the index typesGravatar Gael Guennebaud2010-06-03
| | | | * add an Index type template parapeter to sparse objects
* the Index types change.Gravatar Benoit Jacob2010-05-30
| | | | As discussed on the list (too long to explain here).
* * remove ei_block_direct_access_statusGravatar Benoit Jacob2010-04-23
| | | | * remove HasDirectAccess / NoDirectAccess constants
* * remove class DenseDirectAccessBaseGravatar Benoit Jacob2010-04-23
| | | | | * remove member XprBase typedefs, use ei_dense_xpr_base * remove member _HasDirectAccess typedefs, use ei_has_direct_access
* * 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
* mergeGravatar Benoit Jacob2010-02-25
|\
* | * 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
| * detect and implement inplace permutationsGravatar Gael Guennebaud2010-02-25
| |
* | 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.
* get rid of NestParentByRefBitGravatar Gael Guennebaud2010-02-08
|
* Introduced NestParentByRefBit and NestByRefBit - this should fix temporaries ↵Gravatar Hauke Heibel2010-02-06
| | | | | | related to nested products. Fixed a few typos and a few warnings.
* Added an ei_linspaced_op to create linearly spaced vectors.Gravatar Hauke Heibel2010-01-26
| | | | | | | | | Added setLinSpaced/LinSpaced functionality to DenseBase. Improved vectorized assignment - overcomes MSVC optimization issues. CwiseNullaryOp is now requiring functors to offer 1D and 2D operators. Adapted existing functors to the new CwiseNullaryOp requirements. Added ei_plset to create packages as [a, a+1, ..., a+size]. Added more nullaray unit tests.
* 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
* remove the Triangular suffix to Upper, Lower, UnitLower, etc,Gravatar Gael Guennebaud2010-01-07
| | | | and remove the respective bit flags
* fix aliasing detectionGravatar Gael Guennebaud2010-01-05
|
* s/asMatrix()/matrix()Gravatar Gael Guennebaud2010-01-04
|
* merge with default branchGravatar Gael Guennebaud2009-12-22
|\
* | extend the DenseStorageMatrix mechanism to all expressionsGravatar Gael Guennebaud2009-12-22
| |
| * fix compilation when mixing typesGravatar Gael Guennebaud2009-12-16
| |
| * * fix aliasing checks when the lhs is also transposed. At the same time,Gravatar Gael Guennebaud2009-12-16
| | | | | | | | | | | | significantly simplify the code of these checks while extending them to catch much more expressions! * move the enabling/disabling of vectorized sin/cos to the architecture traits
* | add a DenseBase class for MAtrixBase and ArrayBase and more code factorisationGravatar Gael Guennebaud2009-12-04
| |
| * Much more NestByValue cleanup.Gravatar Hauke Heibel2009-12-01
| |
* | Experiment the ET refactoring on Transpose for Dense and Sparse storages.Gravatar Gael Guennebaud2009-11-16
|/ | | | All tests work fine.
* oops I forgot to include that file in the previous commit (fixing #65)Gravatar Gael Guennebaud2009-10-29
|
* add overloads of lazyAssign to detect common aliasing issue withGravatar Gael Guennebaud2009-08-15
| | | | transpose and adjoint
* add blocked LLT, and bugfix in trsm assertsGravatar Gael Guennebaud2009-08-01
|
* improve the expression analyzer to bypass Transpose expressionGravatar Gael Guennebaud2009-07-28
|
* * change the nesting order of adjoint_return_type toGravatar Gael Guennebaud2009-07-07
| | | | | | 1 - make it easier to catch conjugate expressions 2 - make sure there is no unecessary copy (we had NestByValue<Derived> which seems to be very bad) * update eigensolver wrt recent changes
* * bybye Part, welcome TriangularView and SelfAdjointView.Gravatar Gael Guennebaud2009-07-06
| | | | | | | | * move solveTriangular*() to TriangularView::solve*() * move .llt() to SelfAdjointView * add a high level wrapper to the efficient selfadjoint * vector product * improve LLT so that we can specify which triangular part is meaningless => there are still many things to do (doc, cleaning, improve the matrix products, etc.)
* 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?
* constant Diagonal ---> DiagonalBitsGravatar Benoit Jacob2009-05-10
| | | | | | introduce ei_is_diagonal to check for it DiagonalCoeffs ---> Diagonal and allow Index to by Dynamic -> add MatrixBase::diagonal(int) with unittest and doc
* * Find SuperLU also when it is installed without a superlu/ prefixGravatar Benoit Jacob2009-04-01
| | | | * Some more CoeffReturnType changes
* add adjointInPlace() and add documentation warnings on adjoint() and ↵Gravatar Benoit Jacob2009-03-31
| | | | transpose() about aliasing effects.
* * 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
* Big rewrite in the Sparse module: SparseMatrixBase no longer inherits ↵Gravatar Gael Guennebaud2009-01-14
| | | | | | | | | | | | | | MatrixBase. That means a lot of features which were available for sparse matrices via the dense (and super slow) implemention are no longer available. All features which make sense for sparse matrices (aka can be implemented efficiently) will be implemented soon, but don't expect to see an API as rich as for the dense path. Other changes: * no block(), row(), col() anymore. * instead use .innerVector() to get a col or row vector of a matrix. * .segment(), start(), end() will be back soon, not sure for block() * faster cwise product
* * the Upper->UpperTriangular changeGravatar Benoit Jacob2008-12-20
| | | | * finally get ei_add_test right
* Update e-mail addressGravatar Benoit Jacob2008-11-24
|
* add transposeInPlace (not optimized yet for rectangular matrix)Gravatar Gael Guennebaud2008-10-29
|
* 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 !
* * added optimized paths for matrix-vector and vector-matrix productsGravatar Gael Guennebaud2008-07-09
| | | | | | (using either a cache friendly strategy or re-using dot-product vectorized implementation) * add LinearAccessBit to Transpose
* * added innerSize / outerSize functions to MatrixBaseGravatar Gael Guennebaud2008-06-28
| | | | | | | * added complete implementation of sparse matrix product (with a little glue in Eigen/Core) * added an exhaustive bench of sparse products including GMM++ and MTL4 => Eigen outperforms in all transposed/density configurations !
* various work on the Sparse module:Gravatar Gael Guennebaud2008-06-26
| | | | | | | | | | | | | | | | * added some glue to Eigen/Core (SparseBit, ei_eval, Matrix) * add two new sparse matrix types: HashMatrix: based on std::map (for random writes) LinkedVectorMatrix: array of linked vectors (for outer coherent writes, e.g. to transpose a matrix) * add a SparseSetter class to easily set/update any kind of matrices, e.g.: { SparseSetter<MatrixType,RandomAccessPattern> wrapper(mymatrix); for (...) wrapper->coeffRef(rand(),rand()) = rand(); } * automatic shallow copy for RValue * and a lot of mess ! plus: * remove the remaining ArrayBit related stuff * don't use alloca in product for very large memory allocation
* 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...
* * Block: row and column expressions in the inner directionGravatar Benoit Jacob2008-06-16
| | | | | | | | | now have the Like1D flag. * Big renaming: packetCoeff ---> packet VectorizableBit ---> PacketAccessBit Like1DArrayBit ---> LinearAccessBit
* * Big rework of Assign.h:Gravatar Benoit Jacob2008-06-16
| | | | | | | | | | | | | | | ** Much better organization ** Fix a few bugs ** Add the ability to unroll only the inner loop ** Add an unrolled path to the Like1D vectorization. Not well tested. ** Add placeholder for sliced vectorization. Unimplemented. * Rework of corrected_flags: ** improve rules determining vectorizability ** for vectors, the storage-order is indifferent, so we tweak it to allow vectorization of row-vectors. * fix compilation in benchmark, and a warning in Transpose.
* * split Product to a DiagonalProduct template specializationGravatar Gael Guennebaud2008-06-15
| | | | | | | | | | to optimize matrix-diag and diag-matrix products without making Product over complicated. * compilation fixes in Tridiagonalization and HessenbergDecomposition in the case of 2x2 matrices. * added an Orientation2D small class with similar interface than Quaternion (used by Transform to handle 2D and 3D orientations seamlessly) * added a couple of features in Transform.