aboutsummaryrefslogtreecommitdiffhomepage
path: root/Eigen/src/Core/util/Meta.h
Commit message (Collapse)AuthorAge
* Move internal::swap to numext to fix ambiguous call with std::swapGravatar Gael Guennebaud2013-11-07
|
* Add nvcc support for small eigenvalues decompositions and workaround lack of ↵Gravatar Gael Guennebaud2013-08-01
| | | | support for std::swap and std::numeric_limits
* Allow multiplication like binary operators to be applied on type couples ↵Gravatar Gael Guennebaud2013-03-20
| | | | supported by scalar_product_traits
* Automatic relicensing to MPL2 using Keirs script. Manual fixup follows.Gravatar Benoit Jacob2012-07-13
|
* add a noncopyable base class for decompositionsGravatar Gael Guennebaud2012-06-04
|
* Get rid of include directives inside namespace blocks (bug #339).Gravatar Jitse Niesen2012-04-15
|
* rm non standard and useless overloads of is_arithmetic for long longGravatar Gael Guennebaud2012-01-31
|
* add is_constGravatar Benoit Jacob2010-12-01
|
* remove makeconst_return_typeGravatar Benoit Jacob2010-12-01
|
* Removed remove_const_on_value_type since the meaning is unclear and it is in ↵Gravatar Hauke Heibel2010-11-26
| | | | | | fact unused. Extened the meta unit tests.
* Added STL like (add|remove)_const. Fixed add_const_on_value_type for "const ↵Gravatar Hauke Heibel2010-11-26
| | | | T* const".
* Postfixed add_const and remove_const by _on_value_type to express the ↵Gravatar Hauke Heibel2010-11-26
| | | | differences to the STL.
* Renamed cleantype to remove_all since it is close to ↵Gravatar Hauke Heibel2010-10-26
| | | | remove_{const|pointer|reference}.
* Initial fixes for bug #85.Gravatar Hauke Heibel2010-10-25
| | | | | | | Renamed meta_{true|false} to {true|false}_type, meta_if to conditional, is_same_type to is_same, un{ref|pointer|const} to remove_{reference|pointer|const} and makeconst to add_const. Changed boolean type 'ret' member to 'value'. Changed 'ret' members refering to types to 'type'. Adapted all code occurences.
* bug #86 : use internal:: namespace instead of ei_ prefixGravatar Benoit Jacob2010-10-25
|
* * fix compilation of mixed scalar productGravatar Gael Guennebaud2010-07-19
| | | | * optimize mixed scalar products
* move ei_conj_if to a more appropriate fileGravatar Gael Guennebaud2010-07-09
|
* fix warning "type qualifiers ignored on function return type" for long long ↵Gravatar Gael Guennebaud2010-07-05
| | | | scalar types
* fix very annoying warning (gcc 4.3): type qualifiers ignored on function ↵Gravatar Gael Guennebaud2010-06-25
| | | | return type
* email changeGravatar Gael Guennebaud2010-06-24
|
* fix compilation adding a makeconst helper structGravatar Gael Guennebaud2009-11-07
|
* my previous fix was not very goodGravatar Gael Guennebaud2009-08-15
|
* finally directly calling the low-level products is fasterGravatar Gael Guennebaud2009-07-10
|
* * update sparse module wrt new diagonal matrix implGravatar Gael Guennebaud2009-07-04
| | | | * fix a bug is SparseMatrix
* 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?
* * enable vectorization of sin, cos, etc. by default with an option toGravatar Gael Guennebaud2009-03-26
| | | | | | | disable them (-DEIGEN_FAST_MATH=0) * add a specialization of MatrixBase::operator*(RealScalar) for fast "matrix of complex" times scalar products (even more useful for autodiff scalar types)
* unfuck v.cwise()*w where v is real and w is complexGravatar Benoit Jacob2008-12-21
|
* Update e-mail addressGravatar Benoit Jacob2008-11-24
|
* Shut up two bogus gcc 4.3 warningsGravatar Benoit Jacob2008-08-25
|
* Documentation: fill the placeholders, add a custom CSS file,Gravatar Gael Guennebaud2008-08-24
| | | | add a reference to the tutorial in the main page.
* bugfix in Product and ei_L2_block_traitsGravatar Gael Guennebaud2008-08-24
|
* temporary fix of the pèrevious commitGravatar Gael Guennebaud2008-08-24
|
* * split Meta.h to Meta.h (generic meta programming) and XprHelper.h (relates ↵Gravatar Gael Guennebaud2008-08-24
| | | | | | | | | to eigen mechanism) * added a meta.cpp unit test * EIGEN_TUNE_FOR_L2_CACHE_SIZE now represents L2 block size in Bytes (whence the ei_meta_sqrt...) * added a CustomizeEigen.dox page * added a TOC to QuickStartGuide.dox
* * 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
* Various compilation fixes for MSVC 9. All tests compile but someGravatar Gael Guennebaud2008-08-19
| | | | still fail at runtime in ei_aligned_free() (even without vectorization).
* * 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
* Several compilation fixes for MSVC and NVCC, basically:Gravatar Gael Guennebaud2008-07-29
| | | | | | | | - added explicit enum to int conversion where needed - if a function is not defined as declared and the return type is "tricky" then the type must be typedefined somewhere. A "tricky return type" can be: * a template class with a default parameter which depends on another template parameter * a nested template class, or type of a nested template class
* the big Array/Cwise rework as discussed on the mailing list. The new APIGravatar Benoit Jacob2008-07-08
| | | | can be seen in Eigen/src/Core/Cwise.h.
* * 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 !
* * 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.
* 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
* * 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.
* * more cleaning in ProductGravatar Gael Guennebaud2008-06-19
| | | | | | * make Matrix2f (and similar) vectorized using linear path * fix a couple of warnings and compilation issues with ICC and gcc 3.3/3.4 (cannot get Transform compiles with gcc 3.3/3.4, see the FIXME)
* * refactoring of Product:Gravatar Gael Guennebaud2008-06-19
| | | | | | | | * use ProductReturnType<>::Type to get the correct Product xpr type * Product is no longer instanciated for xpr types which are evaluated * vectorization of "a.transpose() * b" for the normal product (small and fixed-size matrix) * some cleanning * removed ArrayBase
* fix two bugs dicovered by the previous commit.Gravatar Gael Guennebaud2008-06-16
|
* * 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.
* * 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.
* added a static assertion mechanismGravatar Gael Guennebaud2008-06-04
| | | | (see notes in Core/util/StaticAssert.h for details)
* added optimized matrix times diagonal matrix product via Diagonal flag shortcut.Gravatar Gael Guennebaud2008-05-31
|