aboutsummaryrefslogtreecommitdiffhomepage
path: root/test
Commit message (Collapse)AuthorAge
* * 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
* prefix all Eigen cmake variable with EIGEN_ and switched to lowercase for ↵Gravatar Gael Guennebaud2008-12-02
| | | | all cmake files
* clean FindUmfpack.cmake wrt enable_language(Fortran)Gravatar Gael Guennebaud2008-12-02
|
* Update e-mail addressGravatar Benoit Jacob2008-11-24
|
* * 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
* Several improvements in sparse module:Gravatar Gael Guennebaud2008-11-05
| | | | | | | | | * add a LDL^T factorization with solver using code from T. Davis's LDL library (LPGL2.1+) * various bug fixes in trianfular solver, matrix product, etc. * improve cmake files for the supported libraries * split the sparse unit test * etc.
* add lpNorm<p>() method to MatrixBase, implemented in Array module, withGravatar Benoit Jacob2008-11-03
| | | | specializations for cases p=1,2,Eigen::Infinity.
* Add Matrix::Map() and Matrix::AlignedMap() static methodsGravatar Benoit Jacob2008-11-03
|
* norm2() renamed to squaredNorm(), kept as deprecated for now.Gravatar Benoit Jacob2008-11-03
|
* add transposeInPlace (not optimized yet for rectangular matrix)Gravatar Gael Guennebaud2008-10-29
|
* unit-tests: link to external libs only for the tests which require themGravatar Gael Guennebaud2008-10-26
|
* Add an axis aligned box in the geometry module.Gravatar Gael Guennebaud2008-10-26
| | | | | | | | Some naming questions: - for "extend" we could also think of: "expand", "union", "add" - same for "clamp": "crop", "intersect" - same for "contains": "isInside", "intersect" => ah "intersect" is conflicting, so that eliminates this one !
* Add isApprox in Geometry module's classes.Gravatar Gael Guennebaud2008-10-25
| | | | Complete unit tests wrt previous commits.
* improve assertion checking in productGravatar Gael Guennebaud2008-10-25
|
* As discussed on ML:Gravatar Gael Guennebaud2008-10-24
| | | | | | | | | | * remove the automatic resizing feature of operator = * add function Matrix::set() to be used when the previous behavior is wanted * the default constructor of dynamic-size matrices now creates a "null" matrix (data=0, rows = cols = 0) instead of a 1x1 matrix * fix UnixX typos ;)
* sparse module:Gravatar Gael Guennebaud2008-10-21
| | | | | - remove some useless stuff => let's focus on a single sparse matrix format - finalize the new RandomSetter
* * sparse LU: add extraction of L,U,P, and Q, as well as determinantGravatar Gael Guennebaud2008-10-20
| | | | | for both backends. * extended a bit the sparse unit tests
* add unit tests for sparse LU and fix a couple of warningsGravatar Gael Guennebaud2008-10-20
|
* * add cmake files to find (optional) supported librariesGravatar Gael Guennebaud2008-10-20
| | | | * add unit tests for sparse cholesky
* 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*
* extend sparse unit tests with transpose and matrix productGravatar Gael Guennebaud2008-10-04
|
* add EigenSolver::eigenvectors() method for non symmetric matrices.Gravatar Gael Guennebaud2008-10-03
| | | | | | However, for matrices larger than 5, it seems there is constantly a quite large error for a very few coefficients. I don't what's going on, but that's certainely not due to numerical issues only. (also note that the test with the pseudo eigenvectors fails the same way)
* Fixes in Eigensolver:Gravatar Gael Guennebaud2008-10-01
| | | | | | | | * eigenvectors => pseudoEigenvectors * added pseudoEigenvalueMatrix * clear the documentation * added respective unit test Still missing: a proper eigenvectors() function.
* * block() for vectors ---> segment()Gravatar Benoit Jacob2008-09-15
| | | | * documentation improvements, especially in quickstart guide
* * fix issues with "long double" type (useful to enforce the use of x87 ↵Gravatar Gael Guennebaud2008-09-14
| | | | | | registers) * extend the documentation on "extending Eigen"
* * Quaternion: added dot product and angularDistance functions. The latter isGravatar Gael Guennebaud2008-09-11
| | | | | | based on the former. * opengl_demo: makes IcoSphere better (vertices are instanciated only once) and removed the generation of a big geometry for the fancy spheres...
* add the missing templated version of block for sub-vectorsGravatar Gael Guennebaud2008-09-09
|
* * Extend a bit ParametrizedLine and move it to a separate file,Gravatar Gael Guennebaud2008-09-03
| | | | | | add unit-tests for it. * remove "using namespace std" in test/main.h such that the compilation bug found today in SVD won't happen again.
* Fix bugs reported by Timothy Hunter:Gravatar Gael Guennebaud2008-09-03
| | | | | | * CholeskyWithoutSqrt with 1x1 matrices * .part<Diagonal>() Updated unit tests to handle these cases
* Add coeff-wise comparisons to scalar operators. You can now write:Gravatar Gael Guennebaud2008-09-03
| | | | | | mat.cwise() < 2 instead of: mat.cwise() < MatrixType::Constant(mat.rows(), mat.cols(), 2)
* 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")
* Bugfix regarding alignent in Assign.h (updated map unit test to detect this bug)Gravatar Gael Guennebaud2008-09-03
| | | | | Anyway: LinearVectorization+CompleteUnrolling actually uses the InnerVectorization unrollers, so these two cases could be merged to a single one...
* compilation fixes with MSVCGravatar Gael Guennebaud2008-09-03
|
* 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.
* if EIGEN_NICE_RANDOM is defined, the random functions will return numbers withGravatar Benoit Jacob2008-09-01
| | | | | | few bits left of the comma and for floating-point types will never return zero. This replaces the custom functions in test/main.h, so one does not anymore need to think about that when writing tests.
* remove the conceptualy broken "NoShear" transformation traits,Gravatar Gael Guennebaud2008-09-01
| | | | and rename NonAfine => Projective, GenericAffine => Affine, NoScaling => Isometry
* * 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
|