aboutsummaryrefslogtreecommitdiffhomepage
path: root/Eigen/src
Commit message (Collapse)AuthorAge
* 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")
* trivial compilation fix in SVDGravatar Gael Guennebaud2008-09-03
|
* 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
* QTransform conversion and docGravatar Gael Guennebaud2008-09-01
|
* * 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
|
* 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.
* * 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.
* api.kde.org is still bugged, let's do another try...Gravatar Gael Guennebaud2008-08-30
|
* * 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
* doc and use sed to clean the class hierarchy instead ofGravatar Gael Guennebaud2008-08-28
| | | | preprocessor directives.
* 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.
* * temporarily remove doxygen customization, we'll see if that fix api.kde.orgGravatar Gael Guennebaud2008-08-28
| | | | | | but I no hope, that would be too simple ! * added Rotation2D typedefs * remove CoreDeclarations header file
* doc + quick bug fix in Matrix ctorGravatar Gael Guennebaud2008-08-28
|
* Missing inline keywords in AltiVec/PacketMath were making Avogadro failGravatar Benoit Jacob2008-08-27
| | | | to compile (duplicate symbols).
* remove double ;Gravatar Benoit Jacob2008-08-27
|
* replace vector by __vector to prevent conflict with std::vectorGravatar Benoit Jacob2008-08-26
|
* * remove debug code commited by mistake in AssignGravatar Gael Guennebaud2008-08-26
| | | | * keep going on the doc: added a short geometry tutorial
* * move memory related stuff to util/Memory.hGravatar Gael Guennebaud2008-08-26
| | | | | * clean ugly doxygen inheritence of expressions * keep improving the documentation... slowly !
* * patch from Konstantinos Margaritis: bugfix in Altivec version of ei_pdivGravatar Gael Guennebaud2008-08-25
| | | | | | | and various cleaning in Altivec code. Altivec vectorization have been re-enabled in CoreDeclaration * added copy constructors in non empty functors because I observed weird behavior with std::complex<>
* Shut up two bogus gcc 4.3 warningsGravatar Benoit Jacob2008-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.
* arf, of course a meta-selector was required hereGravatar Benoit Jacob2008-08-24
|
* allow constructing Transform from small-matrix (like fromPosOrientScaleGravatar Benoit Jacob2008-08-24
| | | | but with trivial Pos and Scale)
* argh, gael you're more clever than i remembered. diagonal product isGravatar Benoit Jacob2008-08-24
| | | | | optimized. so, i almost revert, just reordering to reduce # of load/store.
* optimization: spare the 3x3 matrix product inGravatar Benoit Jacob2008-08-24
| | | | fromPositionOrientationScale
* add AngleAxis::operator*(const Vector3&)Gravatar Benoit Jacob2008-08-24
|
* add data() methods to TransformGravatar Benoit Jacob2008-08-24
|
* Documentation: fill the placeholders, add a custom CSS file,Gravatar Gael Guennebaud2008-08-24
| | | | add a reference to the tutorial in the main page.
* 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.
* 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.
* compile fix for code like Vector3d::Random().x()Gravatar Benoit Jacob2008-08-23
|