Commit Graph

1466 Commits

Author SHA1 Message Date
Thomas Capricelli
11c3762068 cleaning : removing #define, use std:min() and such 2009-08-22 05:29:33 +02:00
Thomas Capricelli
20480a5438 merging ei_lmdif() and lmdif_template() 2009-08-21 04:24:59 +02:00
Thomas Capricelli
2e3d17c3ce be (hopefully) smarter with indices convention : we keep the c convention
(0->n-1) as much as possible, and only convert at borders with
fortran-expecting methods, that will eventually dissapear.
2009-08-21 04:16:37 +02:00
Thomas Capricelli
524e112ee5 merging ei_lmstr() and lmstr_template() 2009-08-21 03:41:19 +02:00
Thomas Capricelli
e48b6ad905 merging ei_hybrj() and hybrj_template() 2009-08-21 03:26:28 +02:00
Thomas Capricelli
f2ff0d3903 merging ei_hybrd() and hybrd_template() 2009-08-21 03:13:42 +02:00
Thomas Capricelli
1715e2cb3b merging ei_lmder and lmder_template into ei_lmder() which takes eigen
argument, but still uses f2c code inside.
2009-08-21 02:34:40 +02:00
Thomas Capricelli
6a8b52b3aa simplifying 2009-08-21 01:24:04 +02:00
Thomas Capricelli
0abb148b7d use ei_sqrt instead of sqrt 2009-08-21 00:27:11 +02:00
Thomas Capricelli
1ad042c981 rename i__ to i. i really wonder how f2c can produce such things 2009-08-21 00:26:37 +02:00
Thomas Capricelli
9294d33a11 use references intead of pointers for njev/nfev 2009-08-21 00:23:26 +02:00
Thomas Capricelli
054652b789 use math function adapted to the Scalar type instead of hardcoding float or
double
2009-08-21 00:04:41 +02:00
Thomas Capricelli
d05af200a5 some more trivial fixes to f2c generated code 2009-08-20 23:56:13 +02:00
Thomas Capricelli
9e71c2827a nothing more than indentation fixes (using vim '=' command) 2009-08-20 23:36:03 +02:00
Thomas Capricelli
b1e0662785 cleaning f2c mess 2009-08-20 23:33:45 +02:00
Thomas Capricelli
275a658ec5 porting chkder to eigen 2009-08-20 23:26:40 +02:00
Thomas Capricelli
2e3fa34b9f cleaning a little bit the f2c mess for chkder 2009-08-20 23:07:16 +02:00
Thomas Capricelli
b09ebe01da * porting lmdif1 to eigen
* qtf was missing in lmdif signature (this is an output of the method)
2009-08-20 22:59:09 +02:00
Thomas Capricelli
8d2f6ad7e1 iwa is not really an argument, but just an old fashioned 'work array' :
remove it from the eigen API
2009-08-20 22:46:38 +02:00
Thomas Capricelli
b423e640a6 porting hybrj1 to eigen 2009-08-20 22:41:56 +02:00
Thomas Capricelli
6027c4bedf porting hybrd1 to eigen 2009-08-20 22:36:24 +02:00
Thomas Capricelli
de7d14b2b3 porting lmstr1 to eigen 2009-08-20 22:16:30 +02:00
Thomas Capricelli
980c40f72c porting lmder1 to eigen (no more wrapper) 2009-08-20 22:09:05 +02:00
Thomas Capricelli
a84dc9a5c1 coherency for scalar typename : use "Scalar" everywhere 2009-08-20 21:10:28 +02:00
Thomas Capricelli
df98e66019 oops fix hardcoded typename, which is actually provided as template
parameter
2009-08-20 21:06:26 +02:00
Thomas Capricelli
9a876806e1 use eigen stableNorm() instead of cminpack 'enorm'. The results are mostly
slightly better in tests (one test needs 15 iterations intead of 16, for
the same result). Some numerical results have improved slightly, too.

If one uses blueNorm() instead, an assert for 'overflow' is raised from
blueNorm()
2009-08-20 21:04:38 +02:00
Thomas Capricelli
6953cad81d remove unneeded "Eigen::", we already 'use' Eigen namespace 2009-08-19 20:06:34 +02:00
Thomas Capricelli
369693aa1c oops, forgot those ones 2009-08-19 20:02:49 +02:00
Thomas Capricelli
01622e9855 use machine precision from eigen instead of the one from cminpack. The test
pass though they would not if using a value of 2.220e-16 (the real value
for 'double' is 2.22044604926e-16). How sensitive those tests are :)
2009-08-19 19:56:51 +02:00
Thomas Capricelli
3093e92da5 machine_epsilon is now called epsilon in latest eigen 2009-08-19 19:53:08 +02:00
Thomas Capricelli
47ac354190 merge with the main dev branch 2009-08-19 19:46:37 +02:00
Thomas Capricelli
fb54cfb013 import main files from cminpack as *.h files:
* function names are changed by appending _template
* it uses basic templating : template<typename T>
* wrappers now use those versions instead of the ones from cminpack
* lot of external methods from cminpack are still used
* tests pass though they are unchanged (they use wrappers)
2009-08-19 18:38:45 +02:00
Thomas Capricelli
703198a1a6 wrapper for chkder() : this was the last wrapper missing 2009-08-19 18:32:37 +02:00
Jitse Niesen
59a0c4a0d2 Add new unsupported modules to doc/unsupported_modules.dox 2009-08-18 15:30:38 +01:00
Jitse Niesen
7262716b78 Correct syntax error in doxygen comment. 2009-08-18 11:09:20 +01:00
Gael Guennebaud
d56be9c128 * make HessenbergDecomposition uses the Householder module
* bugfix in ei_blas_traits for .conjugate().conjugate()
2009-08-17 17:41:01 +02:00
Gael Guennebaud
ff0f005d4c change the make householder algorithm so that the remaining coefficient
is real, and make Tridiagonalization use it
2009-08-17 17:04:32 +02:00
Gael Guennebaud
e125c199bb add EIGEN_TRANSFORM_PLUGIN 2009-08-17 09:16:41 +02:00
Gael Guennebaud
737bed19c1 make HouseholderQR uses the Householder module 2009-08-16 19:22:15 +02:00
Gael Guennebaud
ef13c3e754 add normalize and normalized overloads in AlignedVector3 2009-08-16 11:51:46 +02:00
Gael Guennebaud
5274c5c326 quick update of TopicLazyEvaluation 2009-08-16 11:01:32 +02:00
Gael Guennebaud
fc9480cbb3 bugfix in compute_matrix_flags, optimization in LU,
improve doc, and workaround aliasing detection in MatrixBase_eval snippet
(not very nice but I don't know how to do it in a better way)
2009-08-16 10:55:10 +02:00
Benoit Jacob
ee982709d3 in all decs, make the compute() methods return *this
(implements feature request #18)
2009-08-15 23:12:39 -04:00
Gael Guennebaud
65fe5f76fd rename back MayAliasBit to EvalBeforeAssigningBit 2009-08-16 00:14:05 +02:00
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