Commit Graph

328 Commits

Author SHA1 Message Date
Benoit Jacob
5cb779e5e1 * introduce ei_alignmentOffset(MatrixBase&,Integer)
couldnt put it in Memory.h as it needs the definition of MatrixBase
* make Redux use it
2009-12-16 08:53:14 -05:00
Gael Guennebaud
e0aa29121f this really fix the previous warning 2009-12-16 13:06:47 +01:00
Gael Guennebaud
c35fcf3bbd fix warning by making ei_empty_struct::_ei_dummy_ private 2009-12-16 12:53:55 +01:00
Gael Guennebaud
6db6774c46 * fix aliasing checks when the lhs is also transposed. At the same time,
significantly simplify the code of these checks while extending them
  to catch much more expressions!
* move the enabling/disabling of vectorized sin/cos to the architecture traits
2009-12-16 11:41:16 +01:00
Hauke Heibel
3ea1f97f69 Suppressed the warning for missing assignment generators (forgot that in the last submission).
Commented Quake3's fast inverser sqrt in SSE's MathFunction header.
2009-12-15 08:09:14 +01:00
Benoit Jacob
d5f3b2dc94 change the Arch constants: const int ---> enum, more explicit names, and use
of a namespace instead of Prefix_Name.
2009-12-14 17:26:24 -05:00
Hauke Heibel
832045d363 Warning 4512 (assignment operators could not be generated) is now simply disabled.
All unimplemented assignment operators have been removed.
2009-12-14 10:32:43 +01:00
Hauke Heibel
4498864fc8 Fixed a bad type conversion. 2009-12-13 09:26:57 +01:00
Hauke Heibel
3dce51bd8e Removed more warnings. 2009-12-12 14:49:43 +01:00
Hauke Heibel
d088ee35f6 Added to possibility to compile unit tests at maximum warning level.
Silenced (amongst others) many conversion related warnings.
2009-12-12 11:39:07 +01:00
Gael Guennebaud
e12f5adbde fix MSVC10 compilation 2009-12-02 19:32:54 +01:00
Hauke Heibel
95861fbd6c Added NestByValue and .nestByValue() again for the sake of backwards compatibility. 2009-12-02 10:53:30 +01:00
Hauke Heibel
d3250cb38f That's it NestByValue and .nestByValue() are both gone! 2009-12-01 13:29:08 +01:00
Hauke Heibel
b08d5b2d2c Even more NestByValue cleanup... 2009-12-01 13:16:51 +01:00
Hauke Heibel
e6c560aedf Removed wrong typename. 2009-11-30 19:06:07 +01:00
Hauke Heibel
1c2e476fa7 Initial commit for a modified ei_nested logic. 2009-11-30 18:56:56 +01:00
Benoit Jacob
b5f4636d42 * eigen2->eigen3
* bump version to 2.91.0
* add FindEigen3.cmake
2009-11-19 12:09:04 -05:00
Benoit Jacob
94c706d04f Assign.h: add LinearTraversal (non-vectorized index-based traversal)
Rename some constants to make names match more closely what they mean.
2009-11-18 11:57:07 -05:00
Benoit Jacob
955cd7f884 * add PermutationMatrix
* DiagonalMatrix:
   - add MaxSizeAtCompileTime parameter
   - DiagonalOnTheLeft ---> OnTheLeft
   - fix bug in DiagonalMatrix::setIdentity()
2009-11-15 21:12:15 -05:00
Mathieu Gautier
6680fa42ee * add Map<Quaternion> test based on Map from test/map.cpp
* replace implicit constructor AngleAxis(QuaternionBase&) by an explicit one, it seems ambiguous for the compiler
* remove explicit constructor with conversion type quaternion(Quaternion&): conflict between constructor.
* modify EIGEN_INHERIT_ASSIGNEMENT_OPERATORS to suit Quaternion class
2009-11-13 16:41:51 +01:00
Benoit Jacob
bf691cc3f1 fix PowerPC platform detection 2009-11-11 10:52:00 -05:00
Gael Guennebaud
1879403562 mv the Skyline module to unsupported/ 2009-11-10 12:47:42 +01:00
kayhman
1333fe651d Added basic SkylineMatrix. 2009-11-04 15:18:12 +01:00
Benoit Jacob
92749eed11 * merge
* remove a ctor in QuaternionBase as it gives a strange error with GCC 4.4.2.
2009-11-09 09:08:03 -05:00
Benoit Jacob
9a0900e33e last round of changes, mainly to return derived types instead of base types, and fix various compilation issues 2009-11-09 07:51:31 -05:00
Benoit Jacob
e4e58e8337 simplifications in the ei_solve_impl system, factor out some boilerplate code 2009-11-08 16:51:41 -05:00
Gael Guennebaud
aa0974286f fix compilation adding a makeconst helper struct 2009-11-07 09:07:23 +01:00
Benoit Jacob
da363d997f introduce ei_xxx_return_value and ei_xxx_impl for xxx in solve,kernel,impl
put them in a new internal 'misc' directory
2009-11-03 02:18:10 -05:00
Benoit Jacob
48261fc773 * default MatrixBase ctor: make it protected, make it a static assert, only do the check when debugging eigen to avoid slowing down compilation for everybody (this check is paranoiac, it's very seldom useful)
* add private MatrixBase ctors to catch cases when the user tries to construct MatrixBase objects directly
2009-10-31 11:50:15 -04:00
Benoit Jacob
e8dd552257 sync with mainline 2009-10-28 19:06:45 -04:00
Benoit Jacob
2840ac7e94 big huge changes, so i dont remember everything.
* renaming, e.g. LU ---> FullPivLU
* split tests framework: more robust, e.g. dont generate empty tests if a number is skipped
* make all remaining tests use that splitting, as needed.
* Fix 4x4 inversion (see stable branch)
* Transform::inverse() and geo_transform test : adapt to new inverse() API, it was also trying to instantiate inverse() for 3x4 matrices.
* CMakeLists: more robust regexp to parse the version number
* misc fixes in unit tests
2009-10-28 18:19:29 -04:00
Mathieu Gautier
611d2b0b1d Quaternion could now map an array of 4 scalars :
new classes :
* QuaternionBase
* Map<Quaternion>
2009-10-27 13:19:16 +00:00
Benoit Jacob
44cdbaba4d * make inverse() do a ReturnByValue
* add computeInverseWithCheck
* doc improvements
* update test
2009-10-26 14:16:50 -04:00
Hauke Heibel
66fe5a5f36 It is just not that easy and requires more work to get it done right. 2009-10-24 14:48:34 +02:00
Gael Guennebaud
a382963b04 * extend Map to allow the user to specify whether the mapped data
is aligned or not. This is done using the Aligned constant:
  Map<MatrixType,Aligned>::Map(data);
* rename ForceAligned to EnforceAlignedAccess, and update its doc,
  and emphasize this is mainly an internal stuff.
2009-10-23 14:26:14 +02:00
Benoit Jacob
c3180b7ffb MatrixBase:
* support resize() to same size (nop). The case of FFT was another case where that make one's life far easier.
   hope that's ok with you Gael. but indeed, i don't use it in the ReturnByValue stuff.

FFT:
 * Support MatrixBase (well, in the case with direct memory access such as Map)
 * adapt unit test
2009-10-20 23:25:49 -04:00
Benoit Jacob
8332c232db big huge changes in LU!
* continue the decomposition until a pivot is exactly zero;
  don't try to compute the rank in the decomposition itself.
* Instead, methods such as rank() use a new internal parameter
  called 'threshold' to determine which pivots are to be
  considered nonzero.
* The threshold is by default determined by defaultThreshold()
  but the user can override that by calling useThreshold(value).
* In solve/kernel/image, don't assume that the diagonal of U
  is sorted in decreasing order, because that's only approximately
  true. Additional work was needed to extract the right pivots.
2009-10-18 00:47:40 -04:00
Benoit Jacob
bb1cc0d092 after all we're not aligning to 8byte boundary
keep most of the changes though as they make the code more extensible
2009-10-05 10:55:42 -04:00
Benoit Jacob
d41577819b we were already aligning to 16 byte boundary fixed-size objects that are multiple of 16 bytes;
now we also align to 8byte boundary fixed-size objects that are multiple of 8 bytes.
That's only useful for now for double, not e.g. for Vector2f, but that didn't seem to hurt. Am I missing something? Do you prefer that we don't align Vector2f at all?
Also, improvements in test_unalignedassert.
2009-10-05 10:11:11 -04:00
Benoit Jacob
3a315fdc9a make Replicate ctor require the exact expected type 2009-09-30 15:47:11 -04:00
Benoit Jacob
765600458b * bump to 2.90.0 now that it's agreed that we're doing eigen3
---> question: do we change the prefix eigen2/ to eigen3/ now?
       no, better wait until we've also changed the repository name
* more message improvements: "Install Eigen" was unclear as it left
  out other things like the BLAS library
2009-09-27 18:05:54 -04:00
Hauke Heibel
c6822d6723 Added EIGEN_REF_TO_TEMPORARY define for rvalue support.
Allowed VC10 to make use of static_assert.
2009-09-21 19:59:58 +02:00
Benoit Jacob
c1c780a94f * ReturnByValue:
-- simpplify by removing the 2nd template parameter
  -- rename Functor to Derived, as now it's a usual CRTP
* Homogeneous:
  -- in products, honor the Max sizes etc.
2009-09-22 12:20:45 -04:00
Benoit Jacob
828a79ac78 allow to override EIGEN_RESTRICT, to satisfy a smart ass blogger who claims
that eigen2 owes all its performance to nonstandard restrict keyword.
well, this can also improve portability in case some compiler doesn't have __restrict.
2009-09-19 19:45:58 -04:00
Gael Guennebaud
49dd5d7847 * add a HouseholderSequence class (not good enough yet for Triadiagonalization and HessenbergDecomposition)
* rework a bit AnyMatrixBase, and mobe it to a separate file
2009-09-16 14:35:42 +02:00
Hauke Heibel
64095b6610 Changed the AnyMatrixBase / ei_special_scalar_op inheritance order as proposed by Gael.
Added conservativeResizeLike as discussed on the mailing list.
2009-09-07 17:22:01 +02:00
Gael Guennebaud
b0aa2520f1 * add real scalar * complex matrix, real matrix * complex scalar,
and complex scalar * real matrix overloads
* allows the inner and outer product specialisations to mix real and complex
2009-09-04 11:22:32 +02:00
Hauke Heibel
7f5256f628 Added conservativeResize + unit test. 2009-09-03 17:27:51 +02:00
Hauke Heibel
8d449bd80e Removed debug cout.
Disabled MSVC inconsistent DLL linkage.
2009-09-02 21:23:09 +02:00
Benoit Jacob
7aa6fd3625 big reorganization in JacobiSVD:
- R-SVD preconditioning now done with meta selectors to avoid compiling useless code
- SVD options now honored, with options to hint "at least as many rows as cols" etc...
- fix compilation in bad cases (rectangular and fixed-size)
- the check for termination is now done on the fly, no more goto (should have done that earlier!)
2009-09-03 02:53:51 -04:00