Commit Graph

491 Commits

Author SHA1 Message Date
Gael Guennebaud
86bb20c431 remove dead code 2011-12-08 23:22:28 +01:00
Gael Guennebaud
e36a4c880a suppress deprecated warning when compiling legacy tests 2011-12-08 23:15:07 +01:00
Hauke Heibel
b00a33bc70 Integrated spline class and simple spline fitting 2011-11-25 14:53:40 +01:00
Gael Guennebaud
53fa851724 move sparse solvers from unsupported/ to main Eigen/ and remove the "not stable yet" warning 2011-11-12 14:11:27 +01:00
Gael Guennebaud
478de03bd8 fix a couple of warnings in the unit tests 2011-11-05 23:30:49 +01:00
Gael Guennebaud
c5ddaf0c87 fix compilation 2011-11-05 10:54:05 +01:00
Gael Guennebaud
94d87abbdb fix fftw cmake stuff 2011-11-03 15:33:42 +01:00
Gael Guennebaud
a997dacc67 mark deprecated sparse solvers as so. 2011-10-24 09:51:02 +02:00
Gael Guennebaud
70df09b76d move DynamicSparseMatrix to SparseExtra 2011-10-24 09:31:33 +02:00
Gael Guennebaud
3fce43a704 add a basic ILU preconditioner 2011-10-11 20:41:43 +02:00
Gael Guennebaud
21d27c6f71 add proper bicgstab unit test 2011-10-11 19:38:36 +02:00
Gael Guennebaud
3172749f32 refactor sparse solving unit tests 2011-10-11 11:32:26 +02:00
Gael Guennebaud
1beb8a6564 add a generic unit test for sparse SPD problems 2011-10-09 21:50:02 +02:00
Gael Guennebaud
683ea3c93f fix superLU when the salver is called multiple times 2011-09-27 18:30:53 +02:00
Gael Guennebaud
9bba0e7ba1 clean sparse LU tests 2011-09-24 17:15:37 +02:00
Gael Guennebaud
d8ae978b65 fix some compilation issues 2011-09-23 16:28:26 +02:00
Gael Guennebaud
ebfed5a512 Enable incomplete BLAS/Lapack builds when no fortran compiler has been found.
Works here with gcc. Hopefully this will work for MSVC too.
2011-09-21 10:27:38 +02:00
Gael Guennebaud
9053729d68 add a bi conjugate gradient stabilized solver 2011-09-17 10:54:14 +02:00
Gael Guennebaud
f1d98aad1b add atan2 support in AutoDiff and remove superfluous std:: specializations 2011-09-05 17:47:58 +02:00
Jitse Niesen
9e667e28f5 Add coverage for long double to matrix_exponential test. 2011-08-21 00:20:29 +01:00
Gael Guennebaud
ea4a1960f0 mv the mpreal copy in its own folder 2011-08-19 15:08:29 +02:00
Gael Guennebaud
79ad55a901 update to latest mpreal and fix a min/max issue in mprel.h 2011-08-19 15:03:45 +02:00
Gael Guennebaud
42e2578ef9 the min/max macros to detect unprotected min/max were undefined by some std header,
so let's declare them after and do the respective fixes ;)
2011-08-19 14:18:05 +02:00
Gael Guennebaud
3a2cabc275 compilation fix with conjugate_gradient_solve_retval_with_guess 2011-07-26 14:43:20 +02:00
Gael Guennebaud
66fa6f39a2 add a naive IdentityPreconditioner 2011-07-26 09:17:18 +02:00
Gael Guennebaud
80b1d1371d add a conjugate gradient solver 2011-07-26 09:04:10 +02:00
Gael Guennebaud
22bff949c8 protect calls to min and max with parentheses to make Eigen compatible with default windows.h
(transplanted from 49b6e9143e
)
2011-07-21 11:19:36 +02:00
Gael Guennebaud
2489c81562 add new interface to SuperLU 2011-07-07 14:19:42 +02:00
Gael Guennebaud
3ecf7e8f6e add a KroneckerProduct module (unsupported) from Kolja Brix and Andreas Platen materials. 2011-06-22 14:39:11 +02:00
Jitse Niesen
8c8ab9ae10 Implement matrix logarithm + test + docs.
Currently, test matrix_function_1 fails due to bug #288.
2011-06-07 14:44:43 +01:00
Jitse Niesen
86ca35ccff Fix and test MatrixSquareRoot for 1-by-1 matrices. 2011-06-07 14:32:16 +01:00
Gael Guennebaud
421ece38e1 Sparse: fix long int as index type in simplicial cholesky and other decompositions 2011-06-06 10:17:28 +02:00
Jitse Niesen
d7e3c949be Implement and document MatrixBase::sqrt(). 2011-05-09 22:20:20 +01:00
Jitse Niesen
6e1573f66a Implement square root for real matrices via Schur. 2011-05-08 22:18:37 +01:00
Jitse Niesen
6b4e215710 Implement matrix square root for complex matrices.
I hope to implement the real case soon, but it's a bit more
complicated due to the 2-by-2 blocks in the real Schur decomposition.
2011-05-07 22:57:46 +01:00
Jitse Niesen
10dae8dd4d Add directory containing split_test_helper.h to include path. 2011-03-29 14:17:49 +01:00
Gael Guennebaud
37c5341d64 fix compilation for old but not so old versions of glew 2011-03-18 10:26:21 +01:00
Gael Guennebaud
adacacb285 fix bug #204: limit integer values to numbers which are representable using float 2011-03-02 14:24:26 +01:00
Benoit Jacob
31621ff0ef relax condition in matrix_exponential test for clang 2011-02-27 23:25:14 -05:00
Benoit Jacob
32025a2510 disable BVH test on Clang++. Looks like there's a good reason why BVH is unsupported. It seems to have a very weird usage pattern, relying on an externally defined bounding_box function in a naive way. 2011-02-27 21:37:34 -05:00
Gael Guennebaud
14b164b00e do not try to use Eigen's blas/lapack if they cannot be compiled 2011-02-23 09:25:32 +01:00
Benoit Jacob
d8e97aee89 shut up stupid ICC warnings 2011-02-22 09:31:22 -05:00
Gael Guennebaud
e129e985c3 link to blas/lapack only when needed, and use the static versions to hopefully workaround weird linking issues to gfortranbegin (see jitse dashboard) 2011-02-21 15:48:37 +01:00
Gael Guennebaud
3c00e3da03 enable some tests that have been commented out 2011-02-18 18:08:58 +01:00
Gael Guennebaud
d271ad38ce back to brute force linking to sparse libraries (fix cmake when these libs are not found) 2011-02-18 11:35:45 +01:00
Gael Guennebaud
444c1bc55b now cholmod, umfpack, and superlu uses our own BLAS and LAPACK libs 2011-02-18 11:26:31 +01:00
Gael Guennebaud
fe8a710a21 properly report OpenGL as a disabled backend 2011-02-16 18:01:06 +01:00
Gael Guennebaud
852077fbc9 still test fftw even if the binary for long double is not available 2011-01-28 16:54:01 +01:00
Gael Guennebaud
c478e0039e disable broken determinant for complexes and SuperLU 2011-01-28 16:30:21 +01:00
Thomas Capricelli
22db1a6e82 fix fftw test 2011-01-27 18:25:41 +01:00
Gael Guennebaud
255f2a1379 fix various compilations issues 2011-01-27 13:51:39 +01:00
Manuel Yguel
934720c4ba Decrease the degree of the polynomials being tested to reduce time spent during the tests. 2011-01-05 19:49:13 +01:00
Gael Guennebaud
d7e1eeaece fix compilation when defaulting to row major 2011-01-04 14:40:06 +01:00
Gael Guennebaud
3a4d56171d fix openglsupport unit test when defaulting to row major 2011-01-04 14:34:17 +01:00
Benoit Jacob
139392488d dos2unix 2010-11-26 10:10:26 -05:00
Gael Guennebaud
3e99356b59 clean a bit AMD and SimplicialCholesky and add support for partly stored selfadjoint matrices 2010-11-18 10:30:52 +01:00
Gael Guennebaud
15e8ad686c add a minimum degree ordering routine based on CSparse (LGPL) and a new built-in sparse cholesky decomposition 2010-11-04 09:58:22 +01:00
Benoit Jacob
bd249d1121 fix bug #92 - we were doing stupid things when passing the list of libraries to link to. 2010-10-28 10:44:20 -04:00
Gael Guennebaud
02c8b6af82 fix sparse rankUpdate and triangularView iterator 2010-10-27 15:13:03 +02:00
Gael Guennebaud
241e5ee3e7 add the possibility to solve for sparse rhs with Cholmod 2010-10-27 14:31:23 +02:00
Gael Guennebaud
5e95ee6662 fix compilation and unit test of adolc 2010-10-26 16:26:20 +02:00
Gael Guennebaud
666c16cf63 add new API for Cholmod preserving the legacy one for now 2010-10-26 15:48:33 +02:00
Hauke Heibel
7bc8e3ac09 Initial fixes for bug #85.
Renamed meta_{true|false} to {true|false}_type, meta_if to conditional, is_same_type to is_same, un{ref|pointer|const} to remove_{reference|pointer|const} and makeconst to add_const.
Changed boolean type 'ret' member to 'value'.
Changed 'ret' members refering to types to 'type'.
Adapted all code occurences.
2010-10-25 22:13:49 +02:00
Benoit Jacob
724af13540 make polynomialsolver test compile faster 2010-10-25 10:15:22 -04:00
Benoit Jacob
4716040703 bug #86 : use internal:: namespace instead of ei_ prefix 2010-10-25 10:15:22 -04:00
Benoit Jacob
19ae4362bd ah ok, we want to build this even without GSL.
so the bug is in FindGSL.cmake.
2010-10-17 11:31:58 -04:00
Benoit Jacob
4e3feb023d more unsupported/ CMake fixes 2010-10-17 11:21:10 -04:00
Benoit Jacob
1e3a035275 Fix general linking issue for tests linking to multiple libs, and explicitly link mpfr_real test to GMP. 2010-10-17 11:04:43 -04:00
Gael Guennebaud
bf402dd9b8 add the possibility to disable OpenGL testing 2010-10-12 20:23:52 +02:00
Gael Guennebaud
0308f64515 add support for uniform of double 2010-10-12 11:04:19 +02:00
Gael Guennebaud
fb30bb9e59 uncomment commented line for debug 2010-10-12 10:40:42 +02:00
Gael Guennebaud
20be8ad91e add support for uniforms 2010-10-12 10:39:28 +02:00
Gael Guennebaud
d9c131de5b remove the Taucs backend : Taucs is not maintained anymore and the backend was crap anyway 2010-10-06 17:42:17 +02:00
Romain Bossart
c6503e03eb Updates to the Sparse unsupported solvers module.
* change Sparse* specialization's signatures from <..., int Backend> to <..., typename Backend>. Update SparseExtra accordingly to use structs instead of the SparseBackend enum.
* add SparseLDLT Cholmod specialization
* for Cholmod and UmfPack, SparseLU, SparseLLT and SparseLDLT now use ei_solve_retval and have the new solve() method (to be closer to the 3.0 API).

* fix doc
2010-10-04 20:56:54 +02:00
Gael Guennebaud
e3d01f85b2 extend OpenGL support module with true unit tests and support for Transform, Translation, etc. 2010-10-06 13:28:13 +02:00
Hauke Heibel
316dadc8e4 Fixed some SVD issues.
Make the SVD's output unitary.
Improved unit tests.
Added an assert to the SVD ctor to check whether rows>=cols.
2010-09-24 17:32:44 +02:00
Benoit Jacob
216c9125e9 disable NonLinearOptimization test until it's fixed 2010-08-18 09:11:01 -04:00
Gael Guennebaud
ba212aeaa9 fix missdetection of GLUT 2010-08-16 09:50:24 +02:00
Gael Guennebaud
96ba7cd655 add an OpenGL module simplifying the way you can pass Eigen's objects to GL 2010-07-22 16:08:58 +02:00
Jitse Niesen
abd5faf784 Require at least MPFR version 2.3.0, because we use mpfr_signbit.
Code in FindMPFR.cmake is taken from FindEigen2.cmake .
2010-07-19 12:26:52 +01:00
Gael Guennebaud
87e89fea4e add a support module for MPFR C++ with basic unit testing 2010-07-15 16:29:04 +02:00
Hauke Heibel
8239c3b85b Fix compilation. 2010-06-21 07:37:59 +02:00
Hauke Heibel
bb46a45340 Finally fixed the matrix function/exponential warning.
Index fixes.
2010-06-20 23:13:24 +02:00
Hauke Heibel
f34eaa2628 Next try - more Index fixes. 2010-06-20 21:44:25 +02:00
Hauke Heibel
f1679c7185 Utilize Index in all unit tests. 2010-06-20 17:37:56 +02:00
Hauke Heibel
e402d34407 More Index realted warnings. 2010-06-20 15:52:34 +02:00
Gael Guennebaud
17af8c763d fix compilation of sparse tests 2010-06-19 15:24:39 +02:00
Gael Guennebaud
729960e465 add missing files 2010-06-18 11:36:30 +02:00
Gael Guennebaud
ece48a6450 split the Sparse module into multiple ones, and move non stable parts to unsupported/
(see the ML for details)
2010-06-18 11:28:30 +02:00
Jitse Niesen
8438719111 Compilation fix for matrix_exponential test: add 'typename'. 2010-06-16 11:07:40 +01:00
Hauke Heibel
e5aa6a466b Fixed 64bit/Index related warnings in the matrix functions module. 2010-06-15 09:57:41 +02:00
Benoit Jacob
d72d538747 merge my Dynamic -> -1 change 2010-06-11 08:04:06 -04:00
Benoit Jacob
52e8c42a00 unsplit this test: was compiling 16 times the same thing! Need to find another way. Suggestion: should compile the stuff once into a binary library, or properly split into different tests with different code. 2010-06-11 07:15:34 -04:00
Hauke Heibel
45d3b405eb Fixed many MSVC warnings. 2010-06-09 09:30:22 +02:00
Benoit Jacob
aaaade4b3d the Index types change.
As discussed on the list (too long to explain here).
2010-05-30 16:00:58 -04:00
Benoit Jacob
9962c59b56 * implement the corner() API change: new methods topLeftCorner() etc
* get rid of BlockReturnType: it was not needed, and code was not always using it consistently anyway
* add topRows(), leftCols(), bottomRows(), rightCols()
* add corners unit-test covering all of that
* adapt docs, expand "porting from eigen 2 to 3"
* adapt Eigen2Support
2010-04-22 14:11:18 -04:00
Thomas Capricelli
63eaa8948e tests for nonlinear module : use different slots + misc cleaning 2010-04-18 03:47:23 +02:00
Manuel Yguel
671cfb7ad0 Fix wrong header and warnings in polynomialutils.cpp 2010-03-25 03:31:33 +01:00
Manuel Yguel
5ef83d6a6c Add missing test files for Polynomials module. 2010-03-25 03:21:52 +01:00
Manuel Yguel
9a4a08da46 Creation of the Polynomials module with the following features:
* convenient functions:
  - Horner and stabilized Horner evaluation
  - polynomial coefficients from a set of given roots
  - Cauchy bounds
* a QR based polynomial solver
2010-03-25 03:15:05 +01:00
Jitse Niesen
04a4e22c58 API change: ei_matrix_exponential(A) --> A.exp(), etc
As discussed on mailing list; see
http://listengine.tuxfamily.org/lists.tuxfamily.org/eigen/2010/02/msg00190.html
2010-03-16 17:26:55 +00:00
Mark Borgerding
3565e89be2 minor edit 2010-03-07 23:57:02 -05:00
Mark Borgerding
101cc03176 merge 2010-03-07 23:46:26 -05:00
Mark Borgerding
e31929337e needed different proxy return types for fwd,inv to work around static asserts 2010-03-07 22:05:48 -05:00
Mark Borgerding
5b2c8b77df created FFT::fwd and FFT::inv with ReturnByValue 2010-03-07 21:31:06 -05:00
Jitse Niesen
2d7bd1ec91 Make MatrixFunctions tests more robust.
* Use absolute error instead of relative error.
* Test on well-conditioned matrices.
* Do not repeat the same test g_repeat times (bug fix).
* Correct diagnostic output in matrix_exponential.cpp .
2010-03-01 12:05:57 +00:00
Thomas Capricelli
e0830cb1b7 Use a specialization of test_is_equal() instead of defining COMPARE() 2010-02-27 17:56:22 +01:00
Thomas Capricelli
15a33622ac * define COMPARE(,), which prints expected/actual results in case of failure
* use it in test/NonLinearOptimization.cpp
2010-02-27 16:30:15 +01:00
Jitse Niesen
e6f0cd7121 Merge. 2010-02-22 16:17:43 +00:00
Thomas Capricelli
a7d085eb4e NonLinearOptimization : clean 'mode' handling from the old minpack code :
* this is actually a boolean, not an int
* use a better name
* can be set at initialization time instead of bloating all methods signatures
2010-02-21 12:41:37 +01:00
Jitse Niesen
67ce07ea83 matrix_function test: replace expm(A).inverse() by expm(-A)
The latter is more stable. This fixes one of the issues with the test.
Also, make typedef's in MatrixFunctionReturnValue public; this is
necessary to get the test to compile.
2010-02-20 14:45:50 +00:00
Jitse Niesen
39d9f0275b Update matrix_exponential test after API change in ei_matrix_function
Apologies for forgetting this yesterday and not testing properly.
2010-02-17 09:50:11 +00:00
Mark Borgerding
f200c84d9f merge 2010-02-16 21:41:04 -05:00
Mark Borgerding
8f51a4ac90 found out about little-documented FFTW_PRESERVE_INPUT which has effect on c2r transforms 2010-02-16 20:44:48 -05:00
Jitse Niesen
319bf3130b Use ReturnByValue to return result of ei_matrix_function(), ... 2010-02-16 16:43:11 +00:00
Jitse Niesen
25019f0836 Use ReturnByValue to return result of ei_matrix_exponential() . 2010-02-15 19:17:25 +00:00
Jitse Niesen
b18f737aa1 Test matrix functions with matrices with clustered imaginary eivals.
The idea is that these test MatrixFunction::swapEntriesInSchur(),
which is not covered by existing tests. This did not work out as
expected, but nevertheless it is a good test so I left it in.
2010-02-13 22:49:01 +00:00
Jitse Niesen
a4a2671fd0 Refactor matrix_function test in preparation of next commit. 2010-02-13 22:38:27 +00:00
Thomas Capricelli
602778ea26 also fix tests for NumTraits<double>::epsilon() 2010-02-11 01:49:27 +01:00
Mark Borgerding
1d342e135c changed destination argument to reference 2010-01-22 22:52:13 -05:00
Mark Borgerding
141c746fc7 if the src.stride() != 1, then the layout is not continuous -- need to copy to temporary 2010-01-22 01:17:36 -05:00
Mark Borgerding
cd7912313d changed FFT function vector and Matrix args to pointer as Benoit suggested
implemented 2D Complex FFT for FFTW impl
2010-01-22 00:35:03 -05:00
Hauke Heibel
1a77334d54 Silenced type conversion warnings. 2010-02-03 19:20:25 +01:00
Thomas Capricelli
69f11c08a1 more eigenization, dropped 'ipvt' in lm 2010-01-26 12:09:52 +01:00
Thomas Capricelli
c759814f11 some more (thoroughly checked) eigenization 2010-01-26 01:43:58 +01:00
Thomas Capricelli
9651e0c503 Use eigen methods for solving triangular systems. We loose again very
slightly on both speed and precision on some tests.
2010-01-25 11:34:52 +01:00
Thomas Capricelli
ee0e39284c Replace the qr factorization from (c)minpack (qrfac) by Eigen's own stuff.
Results as checked by unit tests are very slightly worse, but not much.
2010-01-25 07:22:28 +01:00
Jitse Niesen
858539a6af Use matrices with clustered eigenvalues in matrix function test.
This is in order to get better code coverage.
Test matrix_function_3 now fails regularly because ComplexSchur
reaches the max number of iterations; further study needed.
2010-01-24 22:56:28 +00:00
Mark Borgerding
adb2170eb8 removed Eigen::Complex class since it offered insufficient advantage over std::complex when sane real,imag structure packing is assumed.
for more info see:
http://www.cpptalk.net/portable-complex-numbers-between-c-c--vt46432.html
2010-01-18 19:39:22 -05:00
Jitse Niesen
65cd1c7639 Add support for matrix sine, cosine, sinh and cosh. 2010-01-11 18:05:30 +00:00
Gael Guennebaud
801e601ff1 a couple of improvements in the Autodiff module 2010-01-05 16:04:05 +01:00
Gael Guennebaud
39209edd71 port unsupported modules to new API 2010-01-05 15:38:20 +01:00
Jitse Niesen
fcf821b77d Rename test per naming convention. 2009-12-28 22:30:08 +00:00
Jitse Niesen
f54a2a0484 Add support for general matrix functions.
This does the job but it is only a first version. Further plans:
improved docs, more tests, improve code by refactoring, add convenience
functions for sine, cosine, sinh, cosh, and (eventually) add the matrix
logarithm.
2009-12-21 18:53:00 +00:00
Jitse Niesen
945cbc3bc6 Add test for issue #75 (Hessenberg of 1x1 matrix).
Also remove an superfluous #include in matrixExponential test.
2009-12-16 22:24:24 +00:00
Hauke Heibel
d088ee35f6 Added to possibility to compile unit tests at maximum warning level.
Silenced (amongst others) many conversion related warnings.
2009-12-12 11:39:07 +01:00
Gael Guennebaud
ea684af6b4 merge 2009-12-04 12:40:29 +01:00
Mark Borgerding
012cd62c81 explicitly cast to use the acos(long double) 2009-12-02 22:58:34 -05:00
Mark Borgerding
e5c91b4e95 removed troublesome M_PI and M_PIl constants 2009-12-02 17:23:09 -05:00
Hauke Heibel
e3b5a90611 Removed unused 'benchmark'. 2009-12-02 16:51:40 +01:00
Benoit Jacob
3279e39340 * fix include for case-sensitive filesystem
* on GNU, clock_gettime requires linking -lrt
2009-12-02 10:03:16 -05:00
Hauke Heibel
84551d067e merge 2009-12-02 11:08:44 +01:00
Mark Borgerding
0e8cd8de4d quieted signed/unsigned comparison warning 2009-12-01 17:38:23 -05:00
Hauke Heibel
82971a5dcd Adapted the number of test runs. 2009-12-01 09:29:56 +01:00
Hauke Heibel
1fc5fdea25 Added missing typedef (will I ever learn it!?)
Removed unsupported directories that do not provide CMakeList.txt (CMake 2.8 warning).
The BenchTimer is now also working on Cygwin.
2009-12-01 09:20:05 +01:00
Hauke Heibel
7af1ee0b6c Added the profiling test to unsupported. 2009-12-01 07:53:09 +01:00
Hauke Heibel
66534b782c Some of our unit tests require mathematical constants and thus we rely on non-ansi code.
It seems as if the new standard removed pow(T,int).
M_PIL is only defined when _GNU_SOURCE is defined.
2009-11-30 16:54:04 +01:00
Benoit Jacob
5923bcb1b9 improve the scripts for building unit tests:
* support unsupported/
* use egrep instead of grep, properly escape special chars.
2009-11-25 21:26:37 -05:00
Thomas Capricelli
a89b22f352 rename test for coherency with previous renaming of the module 2009-11-16 04:34:04 +01:00
Benoit Jacob
ff7fbc9431 * use standard CMAKE_BUILD_TYPE
* remove debug_xxx targets
* runtest.sh: don't run make
2009-11-11 16:11:33 -05:00
Thomas Capricelli
6a56262bf4 merge with main repository 2009-11-10 20:31:07 +01:00
Thomas Capricelli
42b92c2022 merge with main repository 2009-11-09 19:02:52 +01:00
Benoit Jacob
92749eed11 * merge
* remove a ctor in QuaternionBase as it gives a strange error with GCC 4.4.2.
2009-11-09 09:08:03 -05:00
Thomas Capricelli
d1cc2745f7 Reduce general diff with eigen-tip. Moreover, this test now seems to pass
again.
2009-11-09 05:12:50 +01:00
Thomas Capricelli
71a3e96b49 rename NonLinear to NonLinearOptimization 2009-11-09 03:27:15 +01:00
Thomas Capricelli
751a333491 merge with main repository 2009-11-08 22:27:32 +01:00
Mark Borgerding
103f741619 initialize Eigen::Complex arrays 2009-11-09 14:08:44 -05:00
Mark Borgerding
4c3345364e moved half-spectrum logic to Eigen::FFT 2009-10-30 23:38:13 -04:00
Mark Borgerding
7911df4b6e improved selftest for Eigen::Complex -- mainly a documentation of what does not work 2009-10-28 23:22:10 -04:00
Mark Borgerding
288ba155f1 forgot Complex test file 2009-10-28 23:05:18 -04: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
Mark Borgerding
0167f5ef43 added inline to many functions 2009-10-22 23:06:19 -04:00
Mark Borgerding
e3d08443dc inlining,all namespace declaration moved to FFT, removed preprocessor definitions, 2009-10-21 20:53:05 -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
Mark Borgerding
d9b418bf12 merged eigen2_for_fft into eigen2 mainline 2009-10-20 15:18:01 -04:00
Gael Guennebaud
1503043981 autodiff:
* fix namespace issue
* simplify Jacobian code
* fix issue with "Dynamic derivatives"
2009-10-15 18:43:15 +02:00
Thomas Capricelli
456f7d094d merge with eigen-tip 2009-10-13 01:14:19 +02:00
Thomas Capricelli
977ed615a6 be sure that there's no name clash between NumericalDiff::df and the
original functor df()
2009-09-28 17:45:45 +02:00
Thomas Capricelli
7968737247 fix tests : we perform slightly worse because we do use one more function
evaluation in our numericaldiff than what (c)minpack did
2009-09-28 04:13:57 +02:00
Thomas Capricelli
d3850641a1 remove some duplicated code LevenbergMarquardt::minimizeNumericalDiff*() by
using the generic Eigen NumericalDiff recently introduced.

LevenbergMarquardt::lmdif1(), which is provided as a convenience method for
people porting code from (c)minpack, is now a static function
2009-09-28 03:26:42 +02:00
Thomas Capricelli
87be19de4a central sheme for numerical diff 2009-09-28 02:55:30 +02:00
Thomas Capricelli
206b5e3972 starting work on a Numerical differenciation module 2009-09-28 02:43:07 +02:00
Thomas Capricelli
52026eb800 cleaning 2009-09-28 02:35:42 +02:00
Thomas Capricelli
8e8997d403 use dynamic type in functor, as NonLinear only knows about this currently 2009-09-28 01:19:29 +02:00
Thomas Capricelli
bee14ee8e6 use operator() so that to be coherent with eigen AutoDiff functor 2009-09-28 00:32:31 +02:00
Thomas Capricelli
956d65ea63 define a generic functor and makes other ones inherit it 2009-09-28 00:18:14 +02:00
Thomas Capricelli
251c0f45ac remove references to adolc and split tests functions for clarity 2009-09-27 23:54:06 +02:00
Mark Borgerding
a39de276a9 added the test case for FFTW 2009-09-14 01:52:26 -04:00
Thomas Capricelli
72746838ad merge with tip 2009-09-10 02:37:08 +02:00
Thomas Capricelli
c990938415 eigenization of fcn_chkder + bugfix 2009-08-29 02:46:19 +02:00
Thomas Capricelli
c1265ebbfe fix bounds using c standard instead of fortran's 2009-08-29 02:36:13 +02:00
Thomas Capricelli
4f7daf942c fix indentation for fcn_chkder 2009-08-29 02:30:18 +02:00
Thomas Capricelli
16d08b2b0f check number of evaluation even in the case of *1(), now we have it.. 2009-08-26 14:47:10 +02:00
Thomas Capricelli
458947af5e move Parameters as a class member, simplify calling sequence. Convenience
methods from minpack ( "*1()" ) get their original name back : they are
only useful when porting, anyway. Still, i prefer to keep them.
2009-08-26 14:23:05 +02:00
Thomas Capricelli
eac9293449 split every algorithm in *Init() + while(running) { *OneStep() } 2009-08-25 23:43:33 +02:00
Thomas Capricelli
bbd44ef0ad move more stuff into Parameters 2009-08-25 23:37:27 +02:00
Thomas Capricelli
470ea55834 put nfev/njev as internal variables as well 2009-08-25 22:13:08 +02:00
Thomas Capricelli
fa0183e7c7 make diag be an internal variable too 2009-08-25 21:59:10 +02:00
Thomas Capricelli
e465ea82e1 define and use struct Parameters 2009-08-25 21:50:01 +02:00
Thomas Capricelli
d59cc0ad82 merge files 2009-08-25 17:25:56 +02:00
Thomas Capricelli
613a464320 cleaning 2009-08-25 16:48:09 +02:00
Thomas Capricelli
6c1a9703b1 move most of results vectors/matrices inside respective classes. 2009-08-25 16:08:09 +02:00
Thomas Capricelli
201f58e528 merge both c methods lmstr/lmstr1 into one class
LevenbergMarquardtOptimumStorage with two methods.
2009-08-25 14:18:38 +02:00
Thomas Capricelli
3f1b81e129 merge both c methods lmdif/lmdif1 into one class
LevenbergMarquardtNumericalDiff with two methods.
2009-08-25 14:09:19 +02:00
Thomas Capricelli
a736378331 cleaning 2009-08-25 14:03:30 +02:00
Thomas Capricelli
d880e6f774 merge both c methods hybrj1/hybrj into one class HybridNonLinearSolver with
two methods. hybrd stuff renamed to HybridNonLinearSolverNumericalDiff.
2009-08-25 13:56:25 +02:00
Thomas Capricelli
a043708e87 merge both c methods hybrd/hybrd1 into one class HybridNonLinearSolver with
two methods.
2009-08-25 13:48:25 +02:00
Thomas Capricelli
602b13815f merge both c methods lmder/lmder1 into one class LevenbergMarquardt with
two methods.
2009-08-25 13:40:45 +02:00
Thomas Capricelli
45442b8d41 some more work on Functors 2009-08-24 21:48:22 +02:00
Thomas Capricelli
15d2c3af90 playing with functors 2009-08-24 19:45:35 +02:00
Thomas Capricelli
6f567f10be cleaning 2009-08-24 19:19:30 +02:00
Thomas Capricelli
4e62e29869 cleaning covar 2009-08-24 17:49:37 +02:00
Thomas Capricelli
17905c7399 eigenization of ei_covar() 2009-08-24 17:47:35 +02:00
Thomas Capricelli
92a5bb4539 clean debug stuff 2009-08-24 16:14:42 +02:00
Thomas Capricelli
e65a7c7c70 misc cleaning 2009-08-24 09:28:29 +02:00
Thomas Capricelli
950eb4a254 various cleaning and homogeneization 2009-08-24 08:28:31 +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
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
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
Hauke Heibel
ab6eb6a1a4 Adaptions from .lazy() towards .noalias().
Added missing casts.
2009-08-31 17:29:37 +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
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
9294d33a11 use references intead of pointers for njev/nfev 2009-08-21 00:23:26 +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
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
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
Gael Guennebaud
ef13c3e754 add normalize and normalized overloads in AlignedVector3 2009-08-16 11:51:46 +02: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
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
Jitse Niesen
f71f878bab Add support for matrix exponential of floats and complex numbers. 2009-08-12 15:44:22 +01: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
Thomas Capricelli
5ac17b4680 add another Nist test of medium difficutly : MGH17 2009-08-11 20:24:02 +02:00
Thomas Capricelli
d1bc9144cb wrapper for lmstr1 and lmstr + eigenization of calling tests 2009-08-10 17:37:27 +02:00
Thomas Capricelli
bb1204a145 wrapper for lmdif1 + eigenization of calling test 2009-08-10 17:16:43 +02:00
Thomas Capricelli
80372c18ee wrapper for lmdif (+test call eigenization) 2009-08-10 16:54:53 +02:00
Thomas Capricelli
4a26baa718 wrapper for hybrj1 2009-08-10 16:32:45 +02:00