| Commit message (Collapse) | Author | Age |
|
|
|
|
|
|
|
| |
* extend PartialRedux::cross() to any matrix sizes with automatic
vectorization when possible
* unit tests: add "geo_" prefix to all unit tests related to the
geometry module and start splitting the big "geometry.cpp" tests to
multiple smaller ones (also include new tests)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* previous DiagonalMatrix expression is now DiagonalMatrixWrapper
* DiagonalMatrix class is now for storage
* add the DiagonalMatrixBase class to factorize code of the
two previous classes
* remove Scaling class (it is now a global function)
* add UniformScaling helper class
(don't use it directly, use the Scaling function)
* add the Scaling global function to simplify the creation
of scaling objects
There is still a lot to do, in particular about DiagonalProduct for which
the goal is to get rid of the "if()" in the coeff() function. At least
it is not worse than before ! Also need to uptade the tutorial and add more doc.
|
| |
|
|
|
|
|
|
| |
add convenience functions in Transform
reimplement Transform::rotation() to use that
add unit-test
|
| |
|
|
|
|
|
|
|
| |
* update test_stdvector
* Quaternion() does nothing (instead of bug)
* update test_geometry
* some renaming
|
|
|
|
| |
*fix warnings with MSVC 2005: converting M_PI to float gives loss-of-precision warnings
|
|
|
|
|
| |
*add transform-from-matrices test
*undo an unwanted change in Matrix
|
| |
|
|
|
|
| |
* add coverage for various operator*=
|
|
|
|
| |
unit test compiles again
|
|
|
|
|
| |
* expand the geometry/Transform tests, after Mek's reports
* fix my own stupidity in eigensolver test
|
| |
|
|
|
|
|
| |
Perhaps the prototype of this function could be improved,
see comments in the code
|
| |
|
|
|
|
| |
Complete unit tests wrt previous commits.
|
|
|
|
|
|
| |
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 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.
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
and rename NonAfine => Projective, GenericAffine => Affine, NoScaling => Isometry
|
|
|
|
|
| |
* Fix compilations with gcc 3.4, ICC and doxygen
* Fix krazy directives (hopefully)
|
| |
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
* apply the same principle to extractRotation and fix it to
extract a rotation corresponding to a positive scaling
|
|
|
|
|
|
|
|
|
|
| |
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)
|
|
|
|
|
|
|
|
| |
* 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
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
| |
vectors of size <=3.
Update doc and test to reflect that it always returns a unit vector.
|
|
|
|
|
|
|
| |
in Cholesky
* fix all numerical instabilies in the unit tests, now all tests can be run 2000 times
with almost zero failures.
|
|
|
|
|
|
|
|
| |
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...
|
|
|
|
|
|
| |
- bugfix in SparseMatrix
- add a sparse unit test
* renamed Transform::affine => linear
|
|
|
|
|
|
|
|
|
|
|
| |
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...
|
|
|
|
|
|
| |
Documentation:
* add an overview for each module.
* add an example for .all() and Cwise::operator<
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
can be seen in Eigen/src/Core/Cwise.h.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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
|
|
|
|
|
| |
- convertions are done trough constructors and operator=
- added a EulerAngles class
|
|
|
|
|
|
| |
representation in Transform via the template static class
ToRotationMatrix.
Added a lightweight AngleAxis class (similar to Rotation2D).
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
homography.
Fix indentation in Quaternion.h
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
| |
- Euler angles and angle axis conversions,
- stable spherical interpolation
- documentation
- update the respective unit test
|
|
|