Gael Guennebaud
f5f2b222a3
make SVD reuses applyJacobi
2009-08-16 00:02:36 +02:00
Gael Guennebaud
044dd0c1dd
revert previous change in Quaternion::setFromTwoVectors
2009-08-15 23:37:20 +02:00
Benoit Jacob
03c1e79f35
svd: sort in decreasing order, remove unused code
2009-08-15 19:20:48 -04:00
Gael Guennebaud
239ada95b7
add overloads of lazyAssign to detect common aliasing issue with
...
transpose and adjoint
2009-08-15 22:19:29 +02:00
Benoit Jacob
a3e6047c25
fix and improve docs
2009-08-15 15:29:44 -04:00
Gael Guennebaud
50c703f0c7
As proposed on the list:
...
- rename EvalBeforeAssignBit to MayAliasBit
- make .lazy() remove the MayAliasBit only, and mark it as deprecated
- add a NoAlias pseudo expression, and MatrixBase::noalias() function
Todo:
- we have to decide whether += and -= assume no aliasing by default ?
- once we agree on the API: update the Sparse module and the unit tests respectively.
2009-08-15 18:35:51 +02:00
Gael Guennebaud
13a8956188
bugfix in inner-product specialization,
...
compilation fix in stable norm,
optimize apply householder
2009-08-15 13:12:50 +02:00
Gael Guennebaud
7b60713e87
my previous fix was not very good
2009-08-15 11:52:50 +02:00
Gael Guennebaud
0da31a6e1d
bugfix and compilation fix in ProductBase
2009-08-15 10:55:11 +02:00
Gael Guennebaud
bff4238d15
fix setFromTwoVectors because of the change in sorting of the the singular values
2009-08-15 10:24:27 +02:00
Gael Guennebaud
109a4f650b
fix a couple of warnings
2009-08-15 10:20:01 +02:00
Gael Guennebaud
d2becb9612
add a "rot" benchmark in BTL
2009-08-15 10:19:16 +02:00
Gael Guennebaud
846e8b49ba
fix compilation of unit tests
2009-08-15 10:18:05 +02:00
Benoit Jacob
2f027b0d2c
only append the changeset to the version if we're in the default branch
2009-08-14 21:58:41 -04:00
Thomas Capricelli
5fe0c30811
new script that update from mercurial, make the doc, and upload the result
...
to tuxfamily.org
2009-08-15 03:36:37 +02:00
Benoit Jacob
62748a0963
new script to generate and upload the docs for a given branch
...
needs cleanup by a better shell scripter!!
2009-08-14 19:07:01 -04:00
Benoit Jacob
8372bd12bd
update snippet
2009-08-14 20:23:13 -04:00
Benoit Jacob
fe4a86443f
fix warning
2009-08-14 20:16:04 -04:00
Benoit Jacob
a5f820b873
forgot to update this
2009-08-14 20:03:14 -04:00
Benoit Jacob
2f74801ca4
as discussed on list: default to align cols, reorganize parameters accordingly so that the default corresponds to 0 flag,
...
and implement FullPrecision output (non-default).
2009-08-14 16:31:42 -04:00
Benoit Jacob
16abc0ba7f
try to support 16 bit platforms... optimistic, but can't hurt
2009-08-14 15:49:14 -04:00
Benoit Jacob
22ae236d4e
machine_epsilon -> epsilon as wrapper around numeric_traits
2009-08-14 15:12:32 -04:00
Thomas Capricelli
3f63d6f97f
fix BoxBOD in the first case : now all tests pass
2009-08-14 19:04:09 +02:00
Thomas Capricelli
3856c2d84d
oops, i missed one : real last difficult nist test : Eckerle4
2009-08-14 18:54:28 +02:00
Thomas Capricelli
93627fefcf
last 'hard' test from Nist : ratkowsky3
2009-08-14 18:31:04 +02:00
Thomas Capricelli
91f61f7679
fix bad urls
2009-08-14 17:48:04 +02:00
Thomas Capricelli
d8c671f475
yet another (difficult) Nist test : Thurber
2009-08-14 17:46:28 +02:00
Thomas Capricelli
e057d1ef47
tweak precision for Chwirut2 test
2009-08-14 17:25:39 +02:00
Thomas Capricelli
56127cfb1a
add yet another easy Nist test : Chwirut2
2009-08-14 17:21:31 +02:00
Gael Guennebaud
6373c3cd00
oops bis, I forgot that SelfAdjointEigneSolver directly called the selector...
2009-08-14 13:49:29 +02:00
Gael Guennebaud
8abec72259
oops forgot to remove the #include in Core
2009-08-14 09:49:33 +02:00
Gael Guennebaud
13e95f7f68
optimize "apply Jacobi" for small sizes, and move it to Jacobi.h
2009-08-14 00:17:14 +02:00
Benoit Jacob
f2536416da
* remove EIGEN_DONT_INLINE that harm performance for small sizes
...
* normalize left Jacobi rotations to avoid having to swap rows
* set precision to 2*machine_epsilon instead of machine_epsilon, we lose 1 bit of precision
but gain between 10% and 100% speed, plus reduce the risk that some day we hit a bad matrix
where it's impossible to approach machine precision
2009-08-13 14:56:39 -04:00
Thomas Capricelli
f7cd4c8923
cleaning : wa1 used in 'covar' needs not be the same as in lmder* and all.
...
it's just an old-fashioned way to re-use memory without allocation...
2009-08-13 16:29:17 +02:00
Benoit Jacob
76a3089a43
oops, don't set the precision to -1 !!
2009-08-13 09:56:53 -04:00
Benoit Jacob
13b191d94b
apply Koldo's workaround for MSVC bug
2009-08-13 09:53:47 -04:00
Gael Guennebaud
1b257a7620
add an optimized "apply in place a rotation in the plane",
...
and make Jacobi and SelfAdjointEigenSolver use it
=> ~ x1.75 speedup for JacobiSVD and x2 for SelfAdjointEigenSolver
2009-08-13 11:42:02 +02:00
Benoit Jacob
1d80f561ad
apply change discussed on the list :
...
* new default precision "-1" means use the current stream precision
* otherwise, save and restore the stream precision
2009-08-13 22:50:55 -04:00
Benoit Jacob
99802094e4
do without an empirical homemade formula that i wasn't comfortable about...
...
turns out it's not needed anymore and removing it seems to only increase the precision
2009-08-12 18:30:37 -04:00
Benoit Jacob
6bb6810c5e
merge
2009-08-12 18:25:13 -04:00
Benoit Jacob
2b618a2c16
make jacobi SVD more robust after experimenting with very nasty matrices...
...
it turns out to be better to repeat the jacobi steps on a given (p,q) pair until it
is diagonal to machine precision, before going to the next (p,q) pair. it's also
an optimization as experiments show that in a majority of cases this allows to find out
that the (p,q) pair is already diagonal to machine precision.
2009-08-12 18:23:39 -04:00
Jitse Niesen
f71f878bab
Add support for matrix exponential of floats and complex numbers.
2009-08-12 15:44:22 +01:00
Benoit Jacob
309d540d4a
add parentheses; hopefully this solves Koldos MSVC compilation issue...
2009-08-12 10:14:15 -04:00
Benoit Jacob
22d65d47d0
finally, the good approach was two-sided Jacobi. Indeed, it allows
...
to guarantee the precision of the output, which is very valuable.
Here, we guarantee that the diagonal matrix returned by the SVD is
actually diagonal, to machine precision.
Performance isn't bad at all at 50% of the current householder SVD
performance for a 200x200 matrix (no vectorization) and we have
lots of room for improvement.
2009-08-12 02:35:07 -04:00
Thomas Capricelli
7b922eb634
BoxBOD : oops.. shame on me, i did a mistake in the derivative.... now we need 16
...
iterations instead of 7693 ;-)
the first test still fails though.
2009-08-12 02:34:22 +02:00
Thomas Capricelli
fd307b8f3f
fix a bug in BoxBOD Nist test : we now get the actual value for 'start 2'
...
'start 1' still fails though :/
2009-08-12 02:27:44 +02:00
Thomas Capricelli
3c675609bf
add another Nist test of 'hard' difficutly : Bennett5
2009-08-12 02:13:04 +02:00
Thomas Capricelli
54d09a8122
add another Nist test of 'hard' difficutly : MGH09
2009-08-12 01:50:56 +02:00
Benoit Jacob
ce033ebdfe
add EIGEN_DEBUG_VAR
2009-08-11 16:12:34 -04:00
Thomas Capricelli
5ac17b4680
add another Nist test of medium difficutly : MGH17
2009-08-11 20:24:02 +02:00