Commit Graph

1647 Commits

Author SHA1 Message Date
Thomas Capricelli
4958c53bfb trivial fixes 2009-08-23 21:47:55 +02:00
Thomas Capricelli
5e8dee7a19 eigenize dogleg() 2009-08-23 21:39:47 +02:00
Thomas Capricelli
f793dbe45c only indentation fixes (this eases porting) 2009-08-23 21:06:57 +02:00
Thomas Capricelli
feb5af3ede porting lmpar() to eigen : both api and some of the code 2009-08-23 21:04:55 +02:00
Thomas Capricelli
9a8c5cbd2c misc cleaning 2009-08-23 06:16:05 +02:00
Thomas Capricelli
264e61932c cleaning fdjac*() 2009-08-23 06:04:06 +02:00
Thomas Capricelli
f01332043b only indentation 2009-08-23 05:56:12 +02:00
Thomas Capricelli
8b9b671e83 some eigenization in main algorithms 2009-08-23 05:55:43 +02:00
Thomas Capricelli
134dea76d3 beautify functors for lmdif, lmstr, hybrj, hybrd 2009-08-23 04:57:48 +02:00
Thomas Capricelli
acd757737a beautify Functor for lmder : we now have f,df,debug methods 2009-08-23 04:39:22 +02:00
Thomas Capricelli
878f15b8a5 * use eigen object for callbacks for hybrd and lmdif
* use Functor instead of argument for ei_fdjac*()
2009-08-23 04:06:16 +02:00
Thomas Capricelli
f2fcbb0207 use eigen objects for ei_fdjac*(), this is a prerequisite before porting
hybrd/lmdif..
2009-08-23 03:54:40 +02:00
Thomas Capricelli
8a27e774f8 use eigen objects for hybrj and lmstr 2009-08-23 03:14:42 +02:00
Thomas Capricelli
3251e12258 use eigen objects for the lmder callback 2009-08-23 03:02:03 +02:00
Thomas Capricelli
2727099906 remove redundant code, fix bounds in those loops that still come from
fortran
2009-08-23 02:32:08 +02:00
Thomas Capricelli
1225704753 we do not need/use the 'void *p' parameter 2009-08-23 01:59:20 +02:00
Jitse Niesen
90735b6a9c Rewrite tutorial section on solving linear systems 2009-08-22 20:12:47 +01:00
Benoit Jacob
37dede6077 fix typo 2009-08-22 10:40:39 -04:00
Thomas Capricelli
a3e8a14e3a forgot to clean this one 2009-08-22 07:40:43 +02:00
Thomas Capricelli
c5218c7d38 ei_lmpar : use a reference for the parameter 2009-08-22 07:37:23 +02:00
Thomas Capricelli
b3f8d02df4 use const for machine constants 2009-08-22 07:31:14 +02:00
Thomas Capricelli
bb6ffafdb9 keep on cleaning f2c mess 2009-08-22 07:27:17 +02:00
Thomas Capricelli
a35586504e cleaning f2c mess / trivial stuff 2009-08-22 07:14:17 +02:00
Benoit Jacob
7bedf5e9cb add initial, rough, full-pivoting RRQR decomposition
lots of room for improvement!
and add Gael a (c) line in Householder.h
2009-08-22 01:13:21 -04:00
Thomas Capricelli
93fabbff5e use blueNorm() instead of norm() 2009-08-22 07:05:10 +02:00
Thomas Capricelli
aa3a7c3303 raw import of covar() : this is the last one, and we now do not depend on
the cminpack library anymore.
2009-08-22 06:44:41 +02:00
Thomas Capricelli
16061a46db Now that the main algorithms are imported into eigen, we import subroutines
used by those algorithms (aka "second level").

This is a row import : we copy/paste the files from cminpack and make
very few changes :
* template<Scalar> them (replace double)
* dpmpar() replaced by c++ standard equivalent
* abs/fabs/sqrt/min/max replaced by ei_* or std::*
* use eigen norms instead of enorm()

Important Notes:
* The use of stableNorm() was not enough in some cases, but using
  blueNorm() instead fixed the problems (some tests gave bad results,
  either in number of iterations or precision of the results)
* As a whole, the only test that changed is testNistMGH17() : it now takes
  some few steps less to get the same result. So this is a small improvement.

After this commit, the only remaining dependency from the cminpack
static library is 'covar', only used from the tests.
2009-08-22 06:40:22 +02:00
Thomas Capricelli
783f355904 cleaning defines from f2c (use std::min and such instead of own ones) 2009-08-22 05:32:17 +02:00
Thomas Capricelli
11c3762068 cleaning : removing #define, use std:min() and such 2009-08-22 05:29:33 +02:00
Marcus D. Hanwell
ef582933c1 Proper fix for linking to the Qt libraries (and others)
My initial fix was incorrect, the libraries must be quoted when being
passed to the add test macro, but must be unquoted when passed to the
target_link_libraries function.
2009-08-21 14:04:17 -04:00
Benoit Jacob
2f0b4e1abc fix compilation with gcc 4.1. Indeed the path for recent gcc doesn't work with gcc 4.1, and looking at the implementation of vector in g++ 4.1, it was exactly our fallback case, so use that. 2009-08-21 12:16:37 -04:00
Peter Román
80179e9549 Added support for SuperLU's ILU factorization 2009-08-21 11:14:45 +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
Gael Guennebaud
6902ef0824 extend mixingtype test to check diagonal products and fix the later for real*complex products 2009-09-04 10:17:28 +02:00
Gael Guennebaud
a7ed998d52 bug fix in novel makeGivens for real 2009-09-04 10:05:22 +02:00
Gael Guennebaud
3fbf71d6b9 compilation fix for conservativeResize 2009-09-04 09:26:00 +02:00
Gael Guennebaud
68b28f7bfb rename the EigenSolver module to Eigenvalues 2009-09-04 09:23:38 +02:00
Hauke Heibel
7f5256f628 Added conservativeResize + unit test. 2009-09-03 17:27:51 +02:00
Gael Guennebaud
82ad37c730 implement the continuous generation algorithm of Givens rotations by Anderson (2000) 2009-09-03 17:08:38 +02:00
Hauke Heibel
41aea9508e This seems to be important for MSVC to optimize the size of empty base classes. 2009-09-03 13:46:44 +02:00
Gael Guennebaud
3eb37fe1fb update mixingtype unit test to reflect current status, but it is still clear
we should allow matrix products between complex and real ?
2009-09-03 13:03:26 +02:00
Gael Guennebaud
00f4b46908 typo in sqrt(complex) 2009-09-03 11:50:06 +02:00
Gael Guennebaud
a54b99fa72 move eigen values related stuff of the QR module to a new EigenSolver module.
- perhaps we can find a better name ?
- note that the QR module still includes the EigenSolver module for compatibility
2009-09-03 11:39:44 +02:00
Gael Guennebaud
9515b00876 remove the \addexample tags 2009-09-03 11:22:42 +02:00
Gael Guennebaud
16c7b1daab add examples for makeJacobi and makeGivens 2009-09-03 11:17:16 +02:00
Gael Guennebaud
c893917d65 Fix serious bug discovered with gcc 4.2 2009-09-03 10:45:32 +02:00
Hauke Heibel
8d449bd80e Removed debug cout.
Disabled MSVC inconsistent DLL linkage.
2009-09-02 21:23:09 +02:00
Hauke Heibel
e6c9d6c528 Remove last lazyness warnings. 2009-09-02 20:59:57 +02:00
Hauke Heibel
2abd5eeffd Added support to overwrite the generator type.
Eigen'fied the new variables.
2009-09-02 20:57:41 +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