1375 Commits

Author SHA1 Message Date
Gael Guennebaud
aa0974286f fix compilation adding a makeconst helper struct 2009-11-07 09:07:23 +01:00
Gael Guennebaud
771c0507fb back out previous back out, and this time don't forget
to include the NumTraits.h file in the commit ;)
2009-11-06 11:23:18 +01:00
Jitse Niesen
1470afda5b Backed out previous changeset: Does not compile.
There is no member Nested in NumTraits.
2009-11-06 09:16:25 +00:00
Gael Guennebaud
fe81b3f651 Add the possibility to control the storage mode of scalar value (by value or reference)
in order to avoid unecessary copies when using complex scalar types (e.g., a AutoDiffScalar)
2009-11-05 18:06:33 +01:00
Benoit Jacob
68210b03c1 port svd to the ei_xxx_return_value thing
this commit made in caltrain from Palo Alto to SF
2009-11-04 21:00:12 -05:00
Benoit Jacob
4c456d4211 fix bug in svd solve reported on forum, was apparently assuming square matrix, not sure how the unit test could work. 2009-11-04 11:46:17 -05:00
Hauke Heibel
3979f6d8aa Let's try to stick to the original code, thus activate the fix of #62 only for 64 bit builds. 2009-11-04 15:49:22 +01:00
Hauke Heibel
e2170b9f7e Direct access of the packet structs fixes bug #62 and doe not seem to
influence compiler optimization.
2009-11-04 15:38:11 +01:00
Gael Guennebaud
a7bebe0aeb an attempt to fix a compilation issue with MSVC 2009-11-04 09:04:50 +01:00
Benoit Jacob
0182695204 move cholesky to ei_xxx_return_value 2009-11-03 11:34:45 -05:00
Benoit Jacob
a77872dd6c move partial-pivoting lu to ei_solve_impl 2009-11-03 03:06:34 -05: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
Gael Guennebaud
979431b987 fix #66 : upper triangular checks in ComplexSchur 2009-11-02 10:46:40 +01:00
Benoit Jacob
3ae4e3880f fix compilation 2009-10-31 14:36:31 -04: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
f975b9bd3e SVD::solve() : port to new API and improvements 2009-10-30 08:51:33 -04:00
Benoit Jacob
6b48e932e9 *port the Cholesky module to the new solve() API
*improve documentation
2009-10-29 21:11:05 -04:00
Hauke Heibel
d0562bd473 corrected the computation cost of mean 2009-10-29 19:58:54 +01:00
Hauke Heibel
c70a603e34 added mean() reduction 2009-10-29 19:56:58 +01:00
Gael Guennebaud
e513cc75c4 oops I forgot to include that file in the previous commit (fixing #65) 2009-10-29 14:24:09 +01:00
Gael Guennebaud
541eac0828 fix #65: MatrixBase::nonZero() 2009-10-29 14:22:02 +01: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
Benoit Jacob
6219f9acfa * rename new Quat class to Quaternion, remove existing Quaternion
* add Copyright line for Mathieu
* cast() was broken (compile errors) and needed anyway to be in QuaternionBase
* it's VectorBlock<T,3>, don't pass additional parameter 1, it has different meaning!!
* make it compile with GCC (put 'typename' at the right location)
2009-10-27 15:45:24 -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
Hauke Heibel
427f8a87d1 Added dox for the new typedefs. 2009-10-27 16:02:36 +01:00
Hauke Heibel
dbaba9019b Added more common typedefs. 2009-10-27 15:57:21 +01:00
Hauke Heibel
7cc9fb5d0a Umeyama is now working with fixed size src and dst points. 2009-10-27 15:29:12 +01:00
Benoit Jacob
1f1c04cac1 sync the documentation examples 2009-10-26 14:37:43 -04:00
Benoit Jacob
44cdbaba4d * make inverse() do a ReturnByValue
* add computeInverseWithCheck
* doc improvements
* update test
2009-10-26 14:16:50 -04:00
Benoit Jacob
07d1bcffda remove 1 useless layer of functions 2009-10-26 12:30:29 -04:00
Benoit Jacob
ec02388a5d big rewrite in Inverse.h
in particular, the API is essentially finalized and the 4x4 case is fixed to be numerically stable.
2009-10-26 11:18:23 -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
Hauke Heibel
99bb29abcf demeaning with colwise expression 2009-10-22 10:11:26 +02:00
Benoit Jacob
68d48511b2 move PartialLU to the new API 2009-10-21 17:06:42 -04: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
13f31b8daf * make PartialLU avoid to generate inf/nan when given a singular matrix
(result undefined, but at least it won't take forever on intel 387)
* add lots of comments, especially to LU.h
* fix stuff I had broken in Inverse.h
* split inverse test
2009-10-20 00:36:07 -04:00
Benoit Jacob
9a700c2974 * LU unit test: finally test fixed sizes
* ReturnByValue: after all don't eval to temporary for generic MatrixBase impl
2009-10-19 10:56:37 -04:00
Benoit Jacob
47eeb40380 remove the m_originalMatrix member. Instead, image() now takes the original matrix as parameter. It was the only method to use it anyway. Introduce m_isInitialized. 2009-10-18 15:21:19 -04:00
Benoit Jacob
d71c7f42d3 * useThreshold -> setThreshold
* remove defaultThreshold()
2009-10-18 14:20:14 -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
Gael Guennebaud
7b0c4102fa * add a Make* expression type builder to allow the
construction of generic expressions working
  for both dense and sparse matrix. A nicer solution
  would be to use CwiseBinaryOp for any kind of matrix.
  To this end we either need to change the overall design
  so that the base class(es) depends on the kind of matrix,
  or we could add a template parameter to each expression
  type (e.g., int Kind = ei_traits<MatrixType>::Kind)
  allowing to specialize each expression for each kind of matrix.
* Extend AutoDiffScalar to work with sparse vector expression
  for the derivatives.
2009-10-16 13:22:38 +02:00
Benoit Jacob
3c4a025a54 merge 2009-10-15 16:09:43 -04:00
Benoit Jacob
41e942d3fb don't try to finish early 2009-10-15 16:09:17 -04:00
Hauke Heibel
d177c1f3ac Inlining fixes + fixed typo.
Removed ei_assert in presence of static assert.
2009-10-15 21:07:14 +02:00
Hauke Heibel
0927ba1fd3 More warning fixes. 2009-10-14 19:55:23 +02:00
Hauke Heibel
c37cfc32b3 Fixed more W4 warnings. 2009-10-14 11:08:00 +02:00
Hauke Heibel
f4661e696e Resize is only defined in Matrix and not in MatrixBase.
I am not sure whether the better fix is to move the resize functions to MatrixBase.
2009-10-14 11:07:11 +02:00
Gael Guennebaud
8c37b1b5b7 add missing PartialReduxExpr::coeff(index) function 2009-10-13 14:41:57 +02:00