aboutsummaryrefslogtreecommitdiffhomepage
path: root/test
Commit message (Collapse)AuthorAge
* *add operator()(int) for vectors, synonymous to operator[](int).Gravatar Benoit Jacob2008-08-18
| | | | | | I don't see any reason not to allow it, it doesn't add much code, and it makes porting from eigen1 easier. *expand tests/basicstuff to first test coefficient access methods
* bugfix in CholeskyWithoutSquareRoot::solve found by Timothy HunterGravatar Gael Guennebaud2008-08-16
|
* last small fixes, this is alpha6, eigen2 is now ready for eigen1 apps toGravatar Benoit Jacob2008-08-12
| | | | port to.
* * 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 inverseProduct => solveTriangularGravatar Gael Guennebaud2008-08-09
|
* * add LU unit-test. Seems like we have very good numerical stability!Gravatar Benoit Jacob2008-08-09
| | | | * some cleanup, and grant me a copyright line on the determinant test.
* *implement LU solver (solves any rectangular system)Gravatar Benoit Jacob2008-08-09
| | | | | | *in test/CMakeLists : modify EI_ADD_TEST so that 2nd argument is additional compiler flags. used to add -O2 to test_product_large so it doesn't take forever.
* * 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.
* 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
* * Rewrite the triangular solver so that we can take advantage of our ↵Gravatar Gael Guennebaud2008-07-26
| | | | | | | | | | | efficient matrix-vector products: => up to 6 times faster ! * Added DirectAccessBit to Part * Added an exemple of a cwise operator * Renamed perpendicular() => someOrthogonal() (geometry module) * Fix a weired bug in ei_constant_functor: the default copy constructor did not copy the imaginary part when the single member of the class is a complex...
* 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'
* Add .perpendicular() function in Geometry module (adapted from Eigen1)Gravatar Gael Guennebaud2008-07-22
| | | | | | Documentation: * add an overview for each module. * add an example for .all() and Cwise::operator<
* * Merge Extract and Part to the Part expression.Gravatar Gael Guennebaud2008-07-21
| | | | | | Renamed "MatrixBase::extract() const" to "MatrixBase::part() const" * Renamed static functions identity, zero, ones, random with an upper case first letter: Identity, Zero, Ones and Random.
* Added MatrixBase::Unit*() static function to easily create unit/basis vectors.Gravatar Gael Guennebaud2008-07-19
| | | | | | | Removed EulerAngles, addes typdefs for Quaternion and AngleAxis, and added automatic conversions from Quaternion/AngleAxis to Matrix3 such that: Matrix3f m = AngleAxisf(0.2,Vector3f::UnitX) * AngleAxisf(0.2,Vector3f::UnitY); just works.
* * 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 !!)
* * big rework of Inverse.h:Gravatar Benoit Jacob2008-07-15
| | | | | | | | | | | - remove all invertibility checking, will be redundant with LU - general case: adapt to matrix storage order for better perf - size 4 case: handle corner cases without falling back to gen case. - rationalize with selectors instead of compile time if - add C-style computeInverse() * update inverse test. * in snippets, default cout precision to 3 decimal places * add some cmake module from kdelibs to support btl with cmake 2.4
* Add a *very efficient* evaluation path for both col-major matrix * vectorGravatar Gael Guennebaud2008-07-12
| | | | | | and vector * row-major products. Currently, it is enabled only is the matrix has DirectAccessBit flag and the product is "large enough". Added the respective unit tests in test/product/cpp.
* - many updates after Cwise changeGravatar Benoit Jacob2008-07-08
| | | | | - fix compilation in product.cpp with std::complex - fix bug in MatrixBase::operator!=
* 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.
* fix issues in previously added additionnal product testsGravatar Gael Guennebaud2008-07-06
|
* * do the ActualPacketAccesBit change as discussed on listGravatar Benoit Jacob2008-07-04
| | | | | * add comment in Product.h about CanVectorizeInner * fix typo in test/product.cpp
* * fix compilation issue in ProductGravatar Gael Guennebaud2008-07-02
| | | | | * added some tests for product and swap * overload .swap() for dynamic-sized matrix of same size
* * 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.
* * vectorize dot product, copying code from sum.Gravatar Benoit Jacob2008-06-24
| | | | | | | | | | | | | | | * make the conj functor vectorizable: it is just identity in real case, and complex doesn't use the vectorized path anyway. * fix bug in Block: a 3x1 block in a 4x4 matrix (all fixed-size) should not be vectorizable, since in fixed-size we are assuming the size to be a multiple of packet size. (Or would you prefer Vector3d to be flagged "packetaccess" even though no packet access is possible on vectors of that type?) * rename: isOrtho for vectors ---> isOrthogonal isOrtho for matrices ---> isUnitary * add normalize() * reimplement normalized with quotient1 functor
* * implement slice vectorization. Because it uses unalignedGravatar Benoit Jacob2008-06-22
| | | | | | | | | packet access, it is not certain that it will bring a performance improvement: benchmarking needed. * improve logic choosing slice vectorization. * fix typo in SSE packet math, causing crash in unaligned case. * fix bug in Product, causing crash in unaligned case. * add TEST_SSE3 CMake option.
* forgot to add the unit test array.cppGravatar Gael Guennebaud2008-06-21
|
* work on rotations in the Geometry module:Gravatar Gael Guennebaud2008-06-21
| | | | | - convertions are done trough constructors and operator= - added a EulerAngles class
* * added a pseudo expression Array giving access to:Gravatar Gael Guennebaud2008-06-20
| | | | | | | | - matrix-scalar addition/subtraction operators, e.g.: m.array() += 0.5; - matrix/matrix comparison operators, e.g.: if (m1.array() < m2.array()) {} * fix compilation issues with Transform and gcc < 4.1
* * 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
* Added an extensible mechanism to support any kind of rotationGravatar Gael Guennebaud2008-06-15
| | | | | | representation in Transform via the template static class ToRotationMatrix. Added a lightweight AngleAxis class (similar to Rotation2D).
* * 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.
* Started a Transform class in the Geometry module to representGravatar Gael Guennebaud2008-06-15
| | | | | homography. Fix indentation in Quaternion.h
* * Added a generalized eigen solver for the selfadjoint case.Gravatar Gael Guennebaud2008-06-14
| | | | | | (as new members to SelfAdjointEigenSolver) The QR module now depends on Cholesky. * Fix Transpose to correctly preserve the *TriangularBit.
* Add QR and Cholesky module instantiations in the lib.Gravatar Gael Guennebaud2008-06-14
| | | | To try it with the unit tests set the cmake variable TEST_LIB to ON.
* Added a Hessenberg decomposition class for both real and complex matrices.Gravatar Gael Guennebaud2008-06-08
| | | | | | | This is the first step towards a non-selfadjoint eigen solver. Notes: - We might consider merging Tridiagonalization and Hessenberg toghether ? - Or we could factorize some code into a Householder class (could also be shared with QR)
* fix some compile errors with gcc 4.3, some warnings, some documentationGravatar Benoit Jacob2008-06-06
|
* hack to to make the nomalloc unit test compiles with -pedanticGravatar Gael Guennebaud2008-06-04
|
* update of the eigeinsolver unit test to check complexGravatar Gael Guennebaud2008-06-03
|
* * add CommaInitializer::finished to allow the use of (Matrix3() << v0, v1, ↵Gravatar Gael Guennebaud2008-06-03
| | | | | | | | v2).finished() as an argument of a function. Other possibilities for the name could be "end" or "matrix" ?? * various update in Quaternion, in particular I added a lot of FIXME about the API options, these have to be discussed and fixed.
* improved Quaternion class:Gravatar Gael Guennebaud2008-06-03
| | | | | | | - Euler angles and angle axis conversions, - stable spherical interpolation - documentation - update the respective unit test
* add a geometry unit test and fix a couple of typo in Quaternion.hGravatar Gael Guennebaud2008-06-03
|
* added unit tests for sizeof and dynamic memory allocationGravatar Gael Guennebaud2008-06-02
|
* fix a couple of issues making the eigensolver test compile and run without ↵Gravatar Benoit Jacob2008-06-02
| | | | | | | | | aborting on an assert. Had to fix a stupid bug in Block -- very strange we hadn't hit it before. However the test still fails.
* added a unit test for InverseGravatar Gael Guennebaud2008-05-31
| | | | | discovered that m1 == m1.inverse().inverse() fails though m1.inverse()*m1 == I
* added an *optional* Eigen2 dynamic library.Gravatar Gael Guennebaud2008-05-31
| | | | | it allows the possiblity to save some compilation time by linking to it *and* defining the token EIGEN_EXTERN_INSTANCIATIONS
* moved purely "array" related stuff to a new module Array.Gravatar Gael Guennebaud2008-05-31
| | | | | | | | This include: - cwise Pow,Sin,Cos,Exp... - cwise Greater and other comparison operators - .any(), .all() and partial reduction - random
* now the unit-tests (hence all of Eigen) don't depend on Qt at allGravatar Benoit Jacob2008-05-29
| | | | anymore.
* many small fixes and documentation improvements,Gravatar Benoit Jacob2008-05-29
| | | | this should be alpha5.
* * find the proper way of nesting the expression in Flagged:Gravatar Benoit Jacob2008-05-28
| | | | | | | | | | | | | finally that's more subtle than just using ei_nested, because when flagging with NestByValueBit we want to store the expression by value already, regardless of whether it already had the NestByValueBit set. * rename temporary() ----> nestByValue() * move the old Product.h to disabled/, replace by what was ProductWIP.h * tweak -O and -g flags for tests and examples * reorder the tests -- basic things go first * simplifications, e.g. in many methoeds return derived() and count on implicit casting to the actual return type. * strip some not-really-useful stuff from the heaviest tests