aboutsummaryrefslogtreecommitdiffhomepage
path: root/Eigen/src/Core/util
Commit message (Collapse)AuthorAge
* * fix compile error when C++0x is enabled: static_assert() needs ;Gravatar Benoit Jacob2008-12-06
| | | | | | thanks to devurandom for reporting * remove redundant ; in ei_internal_assert * minor fixes in InsideEigenExample.dox
* * 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
* add internal documentationGravatar Benoit Jacob2008-11-30
|
* Update e-mail addressGravatar Benoit Jacob2008-11-24
|
* doc: add a "non stable" warning for parts which are not partGravatar Gael Guennebaud2008-11-22
| | | | of the stable API yet and a couple of other minor doc updates...
* * add Gael a (c) line in IO.hGravatar Benoit Jacob2008-11-17
| | | | | * let user change default format by defining EIGEN_DEFAULT_IO_FORMAT * improve docs a little
* * add .imag() functionGravatar Gael Guennebaud2008-11-14
| | | | | | * fix a very old bug in EigenSolver that I had completely forgotten (thanks to Timothy to refresh my mind) * fix doc of Matrix::Map
* add lpNorm<p>() method to MatrixBase, implemented in Array module, withGravatar Benoit Jacob2008-11-03
| | | | specializations for cases p=1,2,Eigen::Infinity.
* add Eigen namespace in EIGEN_STATIC_ASSERTGravatar Gael Guennebaud2008-10-27
|
* add Eigen namespace in EIGEN_INHERIT_ASSIGNMENT_OPERATORGravatar Gael Guennebaud2008-10-27
|
* Add smart cast functions and ctor with scalar conversion (explicit)Gravatar Gael Guennebaud2008-10-25
| | | | | to all classes of the Geometry module. By smart I mean that if current type == new type, then it returns a const reference to *this => zero overhead
* improve assertion checking in productGravatar Gael Guennebaud2008-10-25
|
* Big API change in Cholesky module:Gravatar Gael Guennebaud2008-10-13
| | | | | | | | | | | | | | | | * rename Cholesky to LLT * rename CholeskyWithoutSquareRoot to LDLT * rename MatrixBase::cholesky() to llt() * rename MatrixBase::choleskyNoSqrt() to ldlt() * make {LLT,LDLT}::solve() API consistent with other modules Note that we are going to keep a source compatibility untill the next beta release. E.g., the "old" Cholesky* classes, etc are still available for some time. To be clear, Eigen beta2 should be (hopefully) source compatible with beta1, and so beta2 will contain all the deprecated API of beta1. Those features marked as deprecated will be removed in beta3 (or in the final 2.0 if there is no beta 3 !). Also includes various updated in sparse Cholesky.
* Solve the issue found by Timothy in solveTriangular:Gravatar Gael Guennebaud2008-10-13
| | | | | | => row-major rhs are now evaluated to a column-major temporary before the computations. Add solveInPlace in Cholesky*
* * block() for vectors ---> segment()Gravatar Benoit Jacob2008-09-15
| | | | * documentation improvements, especially in quickstart guide
* move CommaInitializer out of MatrixBase and documment it (because of ↵Gravatar Gael Guennebaud2008-09-13
| | | | .finished())
* 2 typosGravatar Gael Guennebaud2008-09-08
|
* Add a Select expression in the Array module which mimics a coeff-wise ?: ↵Gravatar Gael Guennebaud2008-09-03
| | | | | | | | operator. Example: mat = (mat.cwise().abs().cwise() < Ones()).select(0,mat); replaces all small values by 0. (the scalar version is "s = abs(s)<1 ? 0 : s")
* Solve a big issue with data alignment and dynamic allocation:Gravatar Gael Guennebaud2008-09-03
| | | | | | | | | | | | | | | | * add a WithAlignedOperatorNew class with overloaded operator new * make Matrix (and Quaternion, Transform, Hyperplane, etc.) use it if needed such that "*(new Vector4) = xpr" does not failed anymore. * Please: make sure your classes having fixed size Eigen's vector or matrice attributes inherit WithAlignedOperatorNew * add a ei_new_allocator STL memory allocator to use with STL containers. This allocator really calls operator new on your types (unlike GCC's new_allocator). Example: std::vector<Vector4f> data(10); will segfault if the vectorization is enabled, instead use: std::vector<Vector4f,ei_new_allocator<Vector4f> > data(10); NOTE: you only have to worry if you deal with fixed-size matrix types with "sizeof(matrix_type)%16==0"...
* resurrected sparse triangular solverGravatar Gael Guennebaud2008-09-02
|
* Extended sparse unit-test: nested blocks and InnerIterators.Gravatar Daniel Gomez Ferro2008-09-02
| | | | | Block specialization for sparse matrices. InnerIterators for Blocks and fixes in CoreIterators.
* * Add Hyperplane::transform(Matrix/Transform)Gravatar Gael Guennebaud2008-08-31
| | | | | * Fix compilations with gcc 3.4, ICC and doxygen * Fix krazy directives (hopefully)
* The discussed changes to Hyperplane, the ParametrizedLine class, and theGravatar Benoit Jacob2008-08-31
| | | | API update in Regression...
* Split Rotation.h to Rotation2D.h and RotationBase.h,Gravatar Gael Guennebaud2008-08-30
| | | | | and more code factorization based on RotationBase. Added notes about the main aim of the Translation and Scaling classes.
* Add Scaling and Translation class as discussed on ML, still missing:Gravatar Gael Guennebaud2008-08-30
| | | | | | | | * handling Quaternion, AngleAxis and Rotation2D, 2 options here: 1- make all of them inheriting a common base class Rotation such that we can have a single version of operator* for all the rotation type (they all get converted to a matrix) 2- write a version for all type (so 3 rotations types * 3 for Transform,Translation and Scaling) * real documentation
* spelling + some krazy directivesGravatar Gael Guennebaud2008-08-28
|
* doc + quick bug fix in Matrix ctorGravatar Gael Guennebaud2008-08-28
|
* * move memory related stuff to util/Memory.hGravatar Gael Guennebaud2008-08-26
| | | | | * clean ugly doxygen inheritence of expressions * keep improving the documentation... slowly !
* 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
* * add documentation of the cool (?) "print with format" featureGravatar Gael Guennebaud2008-08-23
| | | | | * move the ioformat.cpp test to a documentation example * rename IoFormat => IOFormat
* * 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
* - remove the ASM macro as in fact Gael had been removing all the remainingGravatar Benoit Jacob2008-08-21
| | | | | | | | | asm("...") from the code while fixing MSVC compat (so your changes crossed one another). - move the pragma warning to CoreDeclarations, it's the right place to do early platform checks. CCMAIL:ps_ml@gmx.de
* patch by Patrick Spendrin: fix MSVC compatibilityGravatar Benoit Jacob2008-08-21
|
* * Add the possibility to customize the output of matrices, e.g.:Gravatar Gael Guennebaud2008-08-21
| | | | | | | | IoFormat OctaveFmt(4, AlignCols, ", ", ";\n", "", "", "[", "]"); cout << mat.format(OctaveFmt); The first "4" is the precision. Documentation missing. * Some compilation fixes
* * Fix CMakeLists.txt issue with SVDGravatar Gael Guennebaud2008-08-20
| | | | * Fix on stack memory allocation issues
* Added a SVD module:Gravatar Gael Guennebaud2008-08-19
| | | | | | | - the decompostion code has been adfapted from JAMA - handles non square matrices of size MxN with M>=N - does not work for complex matrices - includes a solver where the parts corresponding to zero singular values are set to zero
* 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).
* * revert the previous interface change in solveTriangular (pointer vs reference)Gravatar Gael Guennebaud2008-08-18
| | | | | | | | | * remove the cast operators in the Geometry module: they are replaced by constructors and new operator= in Matrix * extended the operations supported by Rotation2D * rewrite in solveTriangular: - merge the Upper and Lower specializations - big optimization of the path for row-major triangular matrices
* only use alloca on linux. Use malloc on other platforms. Needed for mingwGravatar Benoit Jacob2008-08-18
| | | | compatibility.
* * add Regression module, from eigen1, improved, with doc and unit-test.Gravatar Benoit Jacob2008-08-11
| | | | | | | | | * fix .normalized() so that Random().normalized() works; since the return type became complicated to write down i just let it return an actual vector, perhaps not optimal. * add Sparse/CMakeLists.txt. I suppose that it was intentional that it didn't have CMakeLists, but in <=2.0 releases I'll just manually remove Sparse.
* 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
* LU: remove partial-pivoting path (moderately useful since it's doesGravatar Benoit Jacob2008-08-07
| | | | | | | | not allow to easily get the rank), fix a bug (which could have been triggered by matrices having coefficients of very different magnitudes). Part: add an assert to prevent hard to find bugs Swap: update comments
* New implementation of Swap as discussed, reusing Assign. Makes LU runGravatar Benoit Jacob2008-08-05
| | | | 10% faster overall.
* Add partial pivoting runtime option to LU.Gravatar Benoit Jacob2008-08-05
| | | | | | | Note: in fact, inverse() always uses partial pivoting because the algo currently used doesn't make sense with complete pivoting. No num stability issue so far even with size 200x200. If there is any problem we can of course reimplement inverse on top of LU.
* * LU decomposition, supporting all rectangular matrices, with fullGravatar Benoit Jacob2008-08-04
| | | | | | | | | | pivoting for better numerical stability. For now the only application is determinant. * New determinant unit-test. * Disable most of Swap.h for now as it makes LU fail (mysterious). Anyway Swap needs a big overhaul as proposed on IRC. * Remnants of old class Inverse removed. * Some warnings fixed.