aboutsummaryrefslogtreecommitdiffhomepage
path: root/test
Commit message (Collapse)AuthorAge
* * 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...
* add uniform scale/prescale functions in TranformGravatar Gael Guennebaud2008-08-30
|
* * added a RotationBase class following the CRT patternGravatar Gael Guennebaud2008-08-30
| | | | | | | | This allow code factorization and generic template specialization of functions * added any_rotation * {Translation,Scaling,Transform} products methods * rewrite of the actually broken ToRoationMatrix helper class to a global ei_toRotationMatrix function.
* * rename TranformationKnowledge to TransformTraitsGravatar Gael Guennebaud2008-08-30
| | | | | * apply the same principle to extractRotation and fix it to extract a rotation corresponding to a positive scaling
* update Transform::inverse() to take an optional argument stating whether the ↵Gravatar Gael Guennebaud2008-08-30
| | | | | | | | | | transformation is: NonAffine, Affine (default), contains NoShear, contains NoScaling that allows significant speed improvements. If you like it, this concept could be applied to Transform::extractRotation (or to a more advanced decomposition function) and to Hyperplane::transformed() and maybe to some other places... e.g., I think a Transform::normalMatrix() function would not harm and warn user that the transformation of normals is not that trivial (I saw this mistake much too often)
* 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
* some hyperplane changes:Gravatar Gael Guennebaud2008-08-29
| | | | | | | | - the coefficients are stored in a single vector - added transformation methods - removed Line* typedef since in 2D this is really an hyperplane and not really a line... - HyperPlane => Hyperplane
* spelling + some krazy directivesGravatar Gael Guennebaud2008-08-28
|
* * Add an HyperPlane class in the Geometry moduleGravatar Gael Guennebaud2008-08-28
| | | | | | with its respective unit-test. Feel free to discuss the API on the ML. * Some bugfix in unitOrthogonal found by the hyperplane unit test.
* bugfix in test/packetmath.hGravatar Gael Guennebaud2008-08-25
|
* Fix a bug discovered in Avogadro: the AngleAxis*Matrix and the newerGravatar Benoit Jacob2008-08-24
| | | | | | | | | | | | | | | | | AngleAxis*Vector products were wrong because they returned the product _expression_ toRotationMatrix()*other; and toRotationMatrix() died before that expression would be later evaluated. Here it would not have been practical to NestByValue as this is a whole matrix. So, let them simply evaluate and return the result by value. The geometry.cpp unit-test only checked for compatibility between various rotations, it didn't check the correctness of the rotations themselves. That's why this bug escaped us. So, this commit checks that the rotations produced by AngleAxis have all the expected properties. Since the compatibility with the other rotations is already checked, this should validate them as well.
* Rename someOrthogonal to unitOrthogonal. Fix a bug in it, with dyn-size ↵Gravatar Benoit Jacob2008-08-24
| | | | | | vectors of size <=3. Update doc and test to reflect that it always returns a unit vector.
* nothing to see hereGravatar Gael Guennebaud2008-08-24
|
* 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
* * bug fixes in: Dot, generalized eigen problem, singular matrix detetection ↵Gravatar Gael Guennebaud2008-08-23
| | | | | | | in Cholesky * fix all numerical instabilies in the unit tests, now all tests can be run 2000 times with almost zero failures.
* extended cwise unit tests to cover all Cwise APIGravatar Gael Guennebaud2008-08-22
|
* * bugfix in SolveTriangular found by Timothy Hunter (did not compiled for ↵Gravatar Gael Guennebaud2008-08-22
| | | | | | | | very small fixed size matrices) * bugfix in Dot unroller * added special random generator for the unit tests and reduced the tolerance threshold by an order of magnitude this fixes issues with sum.cpp but other tests still failed sometimes, this have to be carefully checked...
* fix a number of compiler errors and warnings with gcc 4.3. There was a missingGravatar Benoit Jacob2008-08-22
| | | | #include<algorithm> so I'm not sure how it compiled at all for you :)
* extend sparse unit test and more bugfix, major todo: finilize the SparseSetterGravatar Gael Guennebaud2008-08-21
|
* *patch by Daniel Gomez:Gravatar Gael Guennebaud2008-08-21
| | | | | | - bugfix in SparseMatrix - add a sparse unit test * renamed Transform::affine => linear
* disable the vectorization of div for AltiVecGravatar Gael Guennebaud2008-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
* Add a packetmath unit test, re-enable the comma-initializer unit test,Gravatar Gael Guennebaud2008-08-20
| | | | and bug fix in PacketMath/SSE
* Fix bugs in Sum.h, add unit-testGravatar Benoit Jacob2008-08-20
|
* 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).
* *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.