Hauke Heibel
5c5789cf0f
QR and SVD decomposition interface unification.
...
Added default ctor and public compute method as
well as safe-guards against uninitialized usage.
Added unit tests for the safe-guards.
2009-05-22 14:27:58 +02:00
Benoit Jacob
c7baddb132
add internal comment (mostly a pretext to test the eigen-commits list)
2009-05-20 16:54:40 +02:00
Gael Guennebaud
dd45c4805c
* add a writable generic coeff wise expression (CwiseUnaryView)
...
* add writable .real() and .imag() functions
2009-05-20 15:41:23 +02:00
Benoit Jacob
a697cb4094
fix comments (old comments that were copied from LU)
2009-05-19 21:54:29 +02:00
Gael Guennebaud
510029f2bc
* optimize sum() for sparse matrices and vectors
...
* fix the row()/col() functions of some InnerVector
2009-05-19 09:40:00 +02:00
Gael Guennebaud
b83d9b48fa
fix compilation with ICC
2009-05-18 18:26:45 +02:00
Gael Guennebaud
c8629e12f4
fix #3 , remove inline keywords in QtAlignedMalloc (MSVC fix)
2009-05-18 18:09:21 +02:00
Gael Guennebaud
e186728867
fix #1 : need to nest by value the affine part in homogeneous product
2009-05-18 17:55:50 +02:00
Gael Guennebaud
e0832d5d93
fix bug reported by Moritz Lenz about random setter
2009-05-18 17:26:01 +02:00
Benoit Jacob
934d6b4749
fix #2 , bug in Diagonal::MaxRowsAtCompileTime when Index==Dynamic
2009-05-17 16:00:56 +02:00
Benoit Jacob
dd390470e1
simplification (no reason anymore to write that in that convoluted way)
2009-05-15 16:05:45 +00:00
Benoit Jacob
5ee9f1a705
argh, forgot to re-add the throw()
2009-05-15 15:54:52 +00:00
Benoit Jacob
126284d08b
* fix bugs in EigenTesting.cmake: it didn't work with -DEIGEN_NO_ASSERTION_CHECKING=ON
...
* only try...catch if exceptions are enabled
2009-05-15 15:53:26 +00:00
Benoit Jacob
7c14e1eac4
add partial-pivoting LU decomposition
...
the name 'PartialLU' is not meant to be definitive!
make inverse() and determinant() use it, so it's *almost* considered
well tested.
2009-05-13 02:02:22 +00:00
Gael Guennebaud
f5b5571a5a
compilation fixes
2009-05-12 07:32:34 +00:00
Gael Guennebaud
6a4e94f349
bugfix from Jens Mueller (s/RowMajor/IsRowMajor)
2009-05-11 10:59:27 +00:00
Benoit Jacob
9afd1324fd
constant Diagonal ---> DiagonalBits
...
introduce ei_is_diagonal to check for it
DiagonalCoeffs ---> Diagonal and allow Index to by Dynamic
-> add MatrixBase::diagonal(int) with unittest and doc
2009-05-10 16:24:39 +00:00
Benoit Jacob
c500415e18
result of our experiments with LU tuning: implement very simple formula, that
...
turns out to be similar to Higham's formula already in use in LDLt
2009-05-07 20:35:26 +00:00
Gael Guennebaud
b6c76c30cd
apply patch from Hauke Heibel cleaning overloaded operator new/detete
2009-05-07 20:33:48 +00:00
Benoit Jacob
47fc3858b9
oops, didn't want to commit that
2009-05-07 18:40:06 +00:00
Benoit Jacob
c8a22dbc08
CREDIT Hauke Heibel, more std::vector::insert fixes
2009-05-07 18:38:07 +00:00
Gael Guennebaud
6dffdca123
fix realloc when initial size was 0 (bug reported by Jens Mueller)
2009-05-07 13:13:42 +00:00
Benoit Jacob
4f0af00e51
*add missing overloads of setZero, etc... that were mentioned in the tutorial
...
--->they go into Matrix as they resize.
*add isConstant() alias to isApproxToConstant()
*extend unit-test
*change an assert into a static assert
2009-05-06 21:40:24 +00:00
Benoit Jacob
0c0d38272e
add copyright on two public headers that are not so trivial...
2009-05-06 15:48:28 +00:00
Benoit Jacob
e1abffa513
add missing function, thanks to Hauke Heibel
2009-05-06 13:33:35 +00:00
Gael Guennebaud
3361ad4589
one more gcc 3.3 fix
2009-05-06 10:51:46 +00:00
Gael Guennebaud
db079f3a8c
fix internal error with gcc 3.3 (all tests are now ok with 3.3 !)
2009-05-06 09:37:30 +00:00
Gael Guennebaud
1e286464ab
* compilation fixes for gcc 3.3
...
* test Part::swap
2009-05-06 08:43:38 +00:00
Benoit Jacob
66f059b99d
remove unused member remean that was just initialized
2009-05-05 17:29:44 +00:00
Benoit Jacob
46e1162a39
reimplement linearRegression on top of fitHyperplane which is much better
2009-05-05 17:15:35 +00:00
Benoit Jacob
2b2f0c0220
fix linearRegression, fix doc, add unit test (it was untested since the change
...
making fitHyperplane no longer use it)
2009-05-05 16:50:58 +00:00
Gael Guennebaud
5b364a68cb
oops
2009-05-04 14:53:21 +00:00
Gael Guennebaud
2829314284
new simplified API to fill sparse matrices (the old functions are
...
deprecated). Basically there are now only 2 functions to set a
coefficient:
1) mat.coeffRef(row,col) = value;
2) mat.insert(row,col) = value;
coeffRef has no limitation, insert assumes the coeff has not already
been set, and raises an assert otherwise.
In addition I added a much lower level, but more efficient filling
mechanism for
internal use only.
2009-05-04 14:25:12 +00:00
Thomas Capricelli
ddb6e96d48
fix warnings with recent gcc
2009-05-04 13:55:21 +00:00
Benoit Jacob
dec09a618d
fix warning, unused variable dummy
2009-05-04 13:01:23 +00:00
Benoit Jacob
b60571a193
fix warnings with unused static functions
2009-05-04 12:49:56 +00:00
Benoit Jacob
8aa8854bbf
fix SSE2 detection on win64, reported by 'kajala'
2009-05-04 12:13:37 +00:00
Benoit Jacob
95bda5e6ab
let the user disable alignment altogether by #defining EIGEN_DONT_ALIGN.
...
Until now, the user had to edit the source code to do that.
Internally, add EIGEN_ALIGN that takes into account both EIGEN_DONT_ALIGN.and
EIGEN_ARCH_WANTS_ALIGNMENT. From now on, only EIGEN_ALIGN should be used to
test whether we want to align.
2009-05-03 13:50:56 +00:00
Gael Guennebaud
facee57b8d
add auto transposition for vectors
2009-04-30 12:09:45 +00:00
Gael Guennebaud
7029ed6b88
ok, this time cast should really work ; sorry for the noise
2009-04-29 17:39:39 +00:00
Gael Guennebaud
428a12902a
fixed my mistake in cast
2009-04-29 17:05:19 +00:00
Gael Guennebaud
9e9e99a42e
casting to the same type no longer generates a CwiseUnaryOp
2009-04-29 14:57:18 +00:00
Gael Guennebaud
e722f55382
fix the Matrix(int,int)/vector 2D ctors issue so that we really
...
have a Matrix(Scalar,Scalar) ctor. (useful for std::complex, user
defined types, etc.
2009-04-24 14:38:40 +00:00
Benoit Jacob
32e9801890
CREDIT Ross Smith: fix posix_memalign detection
2009-04-24 13:26:36 +00:00
Gael Guennebaud
acb32c69d4
* update BVH to explicitely use aligned_allocator
...
* fix warning in StdVector
2009-04-23 11:33:36 +00:00
Gael Guennebaud
c7bb7436f9
make the ei_p* math functions overloads instead of template
...
specializations
2009-04-22 21:35:50 +00:00
Gael Guennebaud
6f6b5ad016
add a generic version of std::vector::resize for other stl
...
implementations
2009-04-21 21:40:33 +00:00
Gael Guennebaud
2697877fac
std::vector now explicitely requires the use of Eigen::aligned_allocator
...
CREDIT Hauke Heibel
2009-04-21 21:30:38 +00:00
Gael Guennebaud
c5c384cf06
add missing vector ctor reported by Markus Moll on the ML
2009-04-21 11:52:25 +00:00
Gael Guennebaud
5e5bac52d7
this should fix the linking issue with StdVector without any user
...
changes... I cross my fingers...
2009-04-21 11:44:58 +00:00
Gael Guennebaud
4efcc14b91
fix ctor issues with ei_workaround_msvc_std_vector
2009-04-21 08:12:07 +00:00
Benoit Jacob
6ee4eb94fb
fix the 4x4 inverse -- unit test passes again
2009-04-14 13:42:23 +00:00
Gael Guennebaud
804a239d30
patch from Moritz Lenz to allow solving transposed problem with superlu
2009-04-10 19:54:43 +00:00
Gael Guennebaud
fb3078fb62
fix memory leak in superlu backend
2009-04-10 18:49:38 +00:00
Gael Guennebaud
7254201632
bugfix when the diagonal is not stored and assumed to be 1
2009-04-10 18:13:37 +00:00
Gael Guennebaud
d78eb02627
add aligned_allocator operator == and != as suggested by Hauke Heibel
2009-04-09 21:22:02 +00:00
Benoit Jacob
0c99de5a17
more patches from Hauke Heibel: compilation/warning fixes from VC++
2009-04-09 17:19:17 +00:00
Benoit Jacob
e6332cba4b
forward-port r951449: patch by Hauke Heibel: compile fix with VS 9
2009-04-09 12:06:13 +00:00
Gael Guennebaud
e8329f9f45
relicence Julien Pommier's SSE code to Eigen's licenses
2009-04-09 06:03:51 +00:00
Gael Guennebaud
aabca5a44f
stupid typo
2009-04-06 13:35:48 +00:00
Benoit Jacob
502bf4a81d
* fix the binary bloat issue, Rohit's idea was the good one
...
* a few dox fixes (alloc routines do return 0 on error) and forgot to update version number in CMakeLists
2009-04-06 13:33:42 +00:00
Gael Guennebaud
38f501a596
fix computation of aligned_bit (has been broken by the change of
...
AutoAlign/DontAlign)
2009-04-05 17:34:59 +00:00
Gael Guennebaud
5b1d0cebc5
sparse module: new API proposal for triangular solves and experimental
...
solver support with a sparse matrix as the rhs.
2009-04-05 16:30:10 +00:00
Kenneth Frank Riddile
9a8096dd1d
* fixed truncation warnings caused by MatrixBase::CoeffReturnType under MSVC
2009-04-03 20:19:07 +00:00
Gael Guennebaud
ff3a3209ca
add an assertion in sparse LLT for invalid input matrix
2009-04-03 08:30:15 +00:00
Gael Guennebaud
adf5104bae
oops, bad copy paste in ei_psqrt, thanks to Jitse Niesen
2009-04-02 06:29:05 +00:00
Benoit Jacob
40432c84b9
CwiseUnaryOp -> SparseCwiseUnaryOp
2009-04-01 14:47:56 +00:00
Benoit Jacob
0f8e692b3f
* Find SuperLU also when it is installed without a superlu/ prefix
...
* Some more CoeffReturnType changes
2009-04-01 14:07:38 +00:00
Benoit Jacob
113fc3a260
now if Derived has the DirectAccess flag, then MatrixBase<Derived>::coeff() const returns a const Scalar& and not a Scalar as before.
...
useful for people doing direct access. + 1 bugfix thanks to Patrick Mihelich, forgot a & in MapBase::coeff(int).
2009-04-01 00:39:56 +00:00
Benoit Jacob
2f45eeb0c6
More Cholesky fixes.
...
* Cholesky decs are NOT rank revealing so remove all the rank/isPositiveDefinite etc stuff.
* fix bug in LLT: s/return/continue/
* introduce machine_epsilon constants, they are actually needed for Higman's formula determining
the cutoff in Cholesky. Btw fix the page reference to his book (chat with Keir).
* solve methods always return true, since this isn't a rank revealing dec. Actually... they already did always return true!! Now it's explicit.
* updated dox and unit-test
2009-04-01 00:21:16 +00:00
Benoit Jacob
1e6097a810
fix mistake in static assertion, patch by Markus Moll.
2009-03-31 16:07:12 +00:00
Benoit Jacob
bf596d0b3a
add adjointInPlace() and add documentation warnings on adjoint() and transpose() about aliasing effects.
2009-03-31 13:55:40 +00:00
Benoit Jacob
a1ba995f05
Many improvements in LLT and LDLT:
...
* in LDLT, support the negative semidefinite case
* fix bad floating-point comparisons, improves greatly the accuracy of methods like
isPositiveDefinite() and rank()
* simplifications
* identify (but not resolve) bug: claim that only triangular part is used, is inaccurate
* expanded unit-tests
2009-03-30 21:45:45 +00:00
Gael Guennebaud
df9dfa1455
fix superLU backend: missing operator=
2009-03-27 19:25:22 +00:00
Gael Guennebaud
e9f6167485
make special ei_p functions static to avoid linking issues (they are too
...
complex to be inlined)
2009-03-27 14:55:46 +00:00
Gael Guennebaud
49fc1e3e84
add vectorization of sqrt for float
2009-03-27 14:41:46 +00:00
Gael Guennebaud
3499f6eccd
fix Taucs support (it appears Taucs does not return sorted matrices)
2009-03-26 17:11:43 +00:00
Benoit Jacob
1b7b538e05
The ABI break:
...
* set AutoAlign=0, DontAlign!=0
* set Dynamic=33331
* add check on fixed sizes
* bump version to 2.0.52
2009-03-26 16:30:54 +00:00
Gael Guennebaud
ce5669dbf9
* enable vectorization of sin, cos, etc. by default with an option to
...
disable them (-DEIGEN_FAST_MATH=0)
* add a specialization of MatrixBase::operator*(RealScalar) for fast
"matrix of complex" times scalar products (even more useful for
autodiff scalar types)
2009-03-26 12:50:24 +00:00
Gael Guennebaud
62de40f8bb
oops forgot to include a file in previous commit (I had other local
...
changes I did not want to commit yet...)
2009-03-26 07:10:59 +00:00
Gael Guennebaud
a22ef7e1f3
for some reason passing the argument by const reference killed the perf
...
(in the packet version of sin, cos, exp, lop), so let's pass them by
value. Also, improve the perf of ei_plog by reducing dependencies.
2009-03-25 18:33:36 +00:00
Gael Guennebaud
17860e578c
add SSE2 versions of sin, cos, log, exp using code from Julien
...
Pommier. They are for float only, and they return exactly the same
result as the standard versions in about 90% of the cases. Otherwise the max error
is below 1e-7. However, for very large values (>1e3) the accuracy of sin and cos
slighlty decrease. They are about 3 or 4 times faster than 4 calls to their respective
standard versions. So, is it ok to enable them by default in their respective functors ?
2009-03-25 12:26:13 +00:00
Gael Guennebaud
70c0174bf9
* allows fixed size matrix with size==0 (via a specialization of
...
MatrixStorage returning a null pointer). For instance this is very
useful to make Tridiagonalization compile for 1x1 matrices
* fix LLT and eigensolver for 1x1 matrix
2009-03-23 14:44:44 +00:00
Konstantinos A. Margaritis
fe00e864a1
ei_pnegate implemented for AltiVec
2009-03-20 17:26:50 +00:00
Gael Guennebaud
fbf415c547
add vectorization of unary operator-() (the AltiVec version is probably
...
broken)
2009-03-20 10:03:24 +00:00
Gael Guennebaud
3d385ae968
angle-axis doc: make it more clear the axis must be normalized
2009-03-18 19:38:55 +00:00
Gael Guennebaud
dcf49e5a28
more MSVC fixes: restrict keywords (sorry for all these commits)
2009-03-17 13:32:26 +00:00
Gael Guennebaud
718af05517
more MSVC fixes (asm comments...)
2009-03-17 13:25:26 +00:00
Gael Guennebaud
497d77b08c
fix compilation MSVC
2009-03-17 13:18:53 +00:00
Gael Guennebaud
c6264d9b7e
add affine * homogeneous vector for backward compatibility (e.g.,
...
kgllib)
2009-03-11 14:32:03 +00:00
Gael Guennebaud
02e97ac0ae
minor changes in AlignedBox needed for BVH module
2009-03-11 14:21:55 +00:00
Gael Guennebaud
b8f46090ff
add optimized cross3 function (code from Rohit Garg)
2009-03-11 14:20:36 +00:00
Gael Guennebaud
f697ea6d30
fix a few compilation errors and warnings (ICC)
2009-03-11 08:45:53 +00:00
Gael Guennebaud
14691d6836
fix compilation with old, and future gcc
2009-03-10 11:55:50 +00:00
Gael Guennebaud
3e4307d8a8
compilation fix in MapBase
2009-03-10 09:06:38 +00:00
Gael Guennebaud
8aa5aa269a
add "slice vectorization" of redux (eg. m.block().minCoeff() is now
...
vectorized)
2009-03-09 23:16:39 +00:00
Gael Guennebaud
c087373968
because of a missing specialization, operator/(scalar) was not vectorized
2009-03-09 23:14:53 +00:00
Gael Guennebaud
db6c3d0197
fix MapBase's ForceAligned concept which was not working at all....
2009-03-09 19:23:31 +00:00
Gael Guennebaud
3f80c68be5
add the vectorization of abs
2009-03-09 18:40:09 +00:00
Gael Guennebaud
314aff875e
fix warning in Tridiag
2009-03-09 10:41:37 +00:00