Commit Graph

557 Commits

Author SHA1 Message Date
Gael Guennebaud
823b2105b6 fix atan2 when tmp4==0 2011-09-22 17:34:25 +02:00
Gael Guennebaud
b0adbfbae7 BiCGSTAB does not like starting from 0... 2011-09-21 18:08:08 +02:00
Gael Guennebaud
1d796acb05 fix status after initialization 2011-09-20 18:45:50 +02:00
Chen-Pang He
16b13596a6 mainly enhance MatrixLogarithm's performance for RealScalar != double 2011-09-17 21:00:55 +08:00
Gael Guennebaud
9053729d68 add a bi conjugate gradient stabilized solver 2011-09-17 10:54:14 +02:00
Gael Guennebaud
f4122e9f94 add tan, acos, asin 2011-09-14 08:35:54 +02:00
Jitse Niesen
b38d3b360e Define log2() on FreeBSD (fixes bug #343). 2011-09-06 06:52:04 +01:00
Gael Guennebaud
f1d98aad1b add atan2 support in AutoDiff and remove superfluous std:: specializations 2011-09-05 17:47:58 +02:00
Jitse Niesen
a2feb6f3c7 Add defensive assert to MatrixExponential, 2011-09-03 04:58:06 +01:00
Chen-Pang He
dd598ef8ce enhance efficacy via avoiding exception handling 2011-09-02 00:15:02 +08:00
Jitse Niesen
7ee084f82f Leverage triangular square root in matrix log. 2011-08-25 07:42:32 +01:00
Jitse Niesen
c01ed935dd Split code for (quasi)triangular matrices from MatrixSquareRoot.
This way, (quasi)triangular matrices can avoid the costly Schur decomposition.
2011-08-25 07:42:21 +01:00
Chen-Pang He
8ddd1e390b fix: <ctime> is necessary for srand(time(NULL)) 2011-08-24 18:26:38 +08:00
Chen-Pang He
6d7a32231d add compatibility with long double 2011-08-20 12:33:51 +08: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
Thomas Capricelli
a660e6425c fix a bug where some rotations were not initialized
They actually were in the original minpack code, this is a bug introduced
by our migration.
Reported on #322 and
http://forum.kde.org/viewtopic.php?f=74&t=96197#p201158
2011-08-04 05:02:04 +02:00
Thomas Capricelli
5748d3c96f wa2 was computed twice because of a confustion between changesets
746c787a76
 and ee0e39284c
.
Reported on forum:
http://forum.kde.org/viewtopic.php?f=74&t=96197#p201158
2011-08-04 03:27:01 +02:00
Jitse Niesen
b12522f696 Remove unnecessary template keywords (breaks compilation under MSVC).
Thanks to Hauke for finding this.
2011-07-28 13:55:56 +01:00
Gael Guennebaud
3a2cabc275 compilation fix with conjugate_gradient_solve_retval_with_guess 2011-07-26 14:43:20 +02:00
Gael Guennebaud
51f706b916 add the possibility to configure the preconditioner 2011-07-26 09:22:18 +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
Thomas Capricelli
08074843ac fix few warnings reported by clang 2011-07-07 22:20:04 +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
Thomas Capricelli
cf04a7c682 fix typo in constant name 2011-06-12 23:54:28 +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
a6d42e28fe Decouple MatrixFunction and MatrixFunctionAtomic
in preparation for implementation of matrix log.
2011-06-07 14:40:27 +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
Gael Guennebaud
5830f90983 add read/write routines for sparse matrices in the Market format 2011-05-31 18:58:04 +02:00
Jitse Niesen
d23845c4cc Fix typo ('using namespace' instead of 'using'). 2011-05-26 09:52:36 +01:00
Gael Guennebaud
87ac09daa8 Simplify the use of custom scalar types, the rule is to never directly call a standard math function using std:: but rather put a using std::foo before and simply call foo:
using std::max;
max(a,b);
2011-05-25 08:41:45 +02:00
Gael Guennebaud
d4fd298fbb Autodiff: fix scalr - active_scalar 2011-05-14 22:38:41 +02:00
Gael Guennebaud
a34a216e82 AutoDiff: add one missing operator- version 2011-05-12 23:40:19 +02:00
Gael Guennebaud
3de2f4b75a AutoDiff: fix most of bug #234 (missing operators, used old internal math function interface, etc) 2011-05-12 23:36:33 +02:00
Gael Guennebaud
ae3b6cc324 AutoDiff: fix unary operator- 2011-05-12 22:27:51 +02:00
Jitse Niesen
d7e3c949be Implement and document MatrixBase::sqrt(). 2011-05-09 22:20:20 +01:00
Jitse Niesen
dac4bb640a Fix compilation error under GCC 4.5.
That version is stricter in forcing function prototype and definition
to match.
2011-05-09 13:57:06 +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
Gael Guennebaud
535a61ede8 port sparse LLT/LDLT to new stack allocation API 2011-03-20 17:10:43 +01:00
Gael Guennebaud
951e238430 now fixing "unsupported" "legacy" code... 2011-03-01 16:45:46 +01:00
Gael Guennebaud
4fbd78d993 fix compilation with gcc 3.4 2011-02-25 09:02:15 +01:00
Gael Guennebaud
434817164e fix umfpack with complexes 2011-02-18 18:07:59 +01:00
Gael Guennebaud
3345ea0ddd clean a bit SuperLU declarations 2011-02-18 10:23:32 +01:00
Gael Guennebaud
03d86ea736 fix intallation of unsupported modules 2011-02-16 17:59:35 +01:00
Gael Guennebaud
a1d7e9051e fix bug #184 (warning) 2011-02-14 15:41:00 +01:00
Thomas Capricelli
0b555a4a3d fix misc warnings 2011-02-04 13:55:12 +01:00
Gael Guennebaud
c478e0039e disable broken determinant for complexes and SuperLU 2011-01-28 16:30:21 +01:00
Gael Guennebaud
6ec660ca7e fix crash in autodiff 2011-01-28 15:30:33 +01:00
Gael Guennebaud
837f1ae59c fix compilation with old gcc 2011-01-28 11:23:02 +01:00
Gael Guennebaud
5f03cbd44f fix many missing const in return types 2011-01-27 12:12:24 +01:00
Romain Bossart
4abb772b52 Fix bug #38
* address of temporaries were passed to umfpack_zi_* functions. It is ok with g++-4.4 or 4.5, but not with the -std=c++0x in both versions. This patch makes it work for c++98 and c++0x versions
2011-01-07 10:27:22 +01:00
Gael Guennebaud
e7318148b5 an attempt to fix a compilation issue with -std=c++0x 2011-01-01 11:40:30 +01:00
Benoit Jacob
75b7d98665 bug #54 - really fix const correctness except in Sparse 2010-12-22 17:45:37 -05:00
Gael Guennebaud
6a9a6bbc78 fix warning 2010-12-13 10:18:33 +01:00
Jitse Niesen
9cd4f67e7f Specify root namespace for fftw_plan from FFTW3 library.
After changeset 4716040703
 (the ei_ --> internal:: change), there are two symbols
called fftw_plan, one from the FFTW3 library and one from Eigen.
2010-12-12 11:44:30 +00: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
Gael Guennebaud
241e5ee3e7 add the possibility to solve for sparse rhs with Cholmod 2010-10-27 14:31:23 +02:00
Hauke Heibel
3efff8c69e Merge 2010-10-26 16:48:12 +02:00
Gael Guennebaud
f4a6a8e295 rm the useless SparseSolverBase class and provide more compile time traits 2010-10-26 16:47:47 +02:00
Hauke Heibel
c738cd56eb Renamed cleantype to remove_all since it is close to remove_{const|pointer|reference}. 2010-10-26 16:47:01 +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
4716040703 bug #86 : use internal:: namespace instead of ei_ prefix 2010-10-25 10:15:22 -04:00
Benoit Jacob
e259f71477 rename PlanarRotation -> JacobiRotation 2010-10-19 21:56:26 -04: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
28e64b0da3 email change 2010-06-24 23:21:58 +02:00
Hauke Heibel
bb46a45340 Finally fixed the matrix function/exponential warning.
Index fixes.
2010-06-20 23:13:24 +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
Hauke Heibel
9a6967d9ba Attempt to fix MatrixExponential/Function related warnings. 2010-06-20 13:17:57 +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
Hauke Heibel
7958797648 Ups, fixed a little ugly bug. 2010-06-15 12:37:54 +02:00
Hauke Heibel
e5aa6a466b Fixed 64bit/Index related warnings in the matrix functions module. 2010-06-15 09:57:41 +02:00
Benoit Jacob
d788627b54 rename:
EIGEN_SIZE_MIN    ---> EIGEN_SIZE_MIN_PREFER_DYNAMIC
  EIGEN_MAXSIZE_MIN ---> EIGEN_SIZE_MIN_PREFER_FIXED
and make sure to use the latter in products xprs to determine the inner size.
2010-06-14 09:05:08 -04:00
Benoit Jacob
d72d538747 merge my Dynamic -> -1 change 2010-06-11 08:04:06 -04:00
Benoit Jacob
bdd7c6c88a change the value of Dynamic to -1, since the index type is now configurable.
remove EIGEN_ENUM_MIN/MAX, implement new macros instead
2010-06-11 07:56:50 -04:00
Hauke Heibel
cedea2aba4 Fixed warnings regarding missing assignment operator. 2010-06-11 07:59:59 +02:00
Gael Guennebaud
d2779a1a8e fix warning with gcc 4.3 2010-06-10 10:59:06 +02: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
e277586958 Complete rework of global math functions and NumTraits.
* Now completely generic so all standard integer types (like char...) are supported.
** add unit test for that (integer_types).
* NumTraits does no longer inherit numeric_limits
* All math functions are now templated
* Better guard (static asserts) against using certain math functions on integer types.
2010-04-28 18:51:38 -04:00
Benoit Jacob
ce09b4ddfc compile 2010-04-25 17:10:28 -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
Gael Guennebaud
0326a51f89 fix use of uninitialzed calues 2010-04-17 05:23:23 +02: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
307c428253 Move documentation of MatrixBase methods in MatrixFunctions to module page.
I think that because MatrixFunctions is in unsupported/ and MatrixBase is
not, doxygen does not include the MatrixBase methods defined and documented
in the MatrixFunctions module with the other MatrixBase methods. This is a
kludge, but at least the documentation is not lost.
2010-03-22 13:58:19 +00: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
Thomas Capricelli
eb3a3351cc misc cleaning 2010-02-28 02:51:35 +01:00
Jitse Niesen
e6f0cd7121 Merge. 2010-02-22 16:17:43 +00:00
Hauke Heibel
e2a059863e Added missing precision/eps functions to AutoDiffScalar. 2010-02-21 15:44:34 +01: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
4e389b195d Change MatrixFunction::separation() parameter from 0.01 to 0.1 .
The latter is actually the value used in the literature.
2010-02-20 16:27:04 +00:00
Hauke Heibel
abc8c01080 Renamed PlainMatrixType to PlainObject (Array != Matrix).
Renamed ReturnByValue::ReturnMatrixType ReturnByValue::ReturnType (again, Array != Matrix).
2010-02-20 15:53:57 +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
Hauke Heibel
f0c8dcf1e2 Renamed AnyMatrixBase to EigenBase. 2010-02-20 15:26:02 +01: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
Gael Guennebaud
48f5980669 fix compilation (cwise and epsilon) 2010-02-11 09:24:29 +01:00
Thomas Capricelli
fd19dd57d8 fix usage of epsilon wrt to latest API change 2010-02-11 01:43:36 +01:00
Thomas Capricelli
ccc58e935e fix usage of epsilon wrt to latest API change 2010-02-11 01:43:03 +01: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
2b2fcc9460 erm.... using nxn is the actual purpose of this variant, fix this. 2010-01-29 08:59:25 +01:00
Thomas Capricelli
98a584ceb8 Put the Status outside of the class, it really does not depend on the
FunctorType or Scalar template parameters.
2010-01-28 10:29:26 +01:00
Thomas Capricelli
27cf1b3a97 eigenization of ei_r1updt() 2010-01-28 04:28:52 +01:00
Thomas Capricelli
40eac2d8a0 misc cleaning / eigenization 2010-01-28 04:19:39 +01:00
Benoit Jacob
35bacf7cb8 *forward port fix in MapBase::coeff(int) and coeffRef(int)
*forward port expanded map.cpp unit test
*fix unused variable warnings
2010-01-27 07:11:49 -05:00
Thomas Capricelli
7ba9dc07ed port ei_rwupdt to c++, and misc cleaning 2010-01-27 09:01:13 +01:00
Thomas Capricelli
afb9bf6281 use PlanarRotation<> instead of handmade givens rotation in cminpack code
+ cleaning.
This results in some more memory being used, but not much.
2010-01-26 17:40:55 +01:00
Thomas Capricelli
c04a93df31 clean r1mpyq: remove fortran leftovers 2010-01-26 14:08:52 +01:00
Thomas Capricelli
55f328b264 misc cleaning 2010-01-26 13:20:24 +01:00
Thomas Capricelli
69f11c08a1 more eigenization, dropped 'ipvt' in lm 2010-01-26 12:09:52 +01:00
Thomas Capricelli
8a690299c6 fix possible segfault 2010-01-26 11:48:32 +01:00
Thomas Capricelli
d791b51112 remove spaces 2010-01-26 10:50:43 +01:00
Thomas Capricelli
113995355b get rid of ei_qform + lot of other cleaning, now that we do not depend on
minpack qr factorization.
2010-01-26 08:42:48 +01:00
Thomas Capricelli
ba2a9cce03 some more eigenization 2010-01-26 07:36:15 +01:00
Thomas Capricelli
a3034ee079 cleaning 2010-01-26 06:05:01 +01:00
Thomas Capricelli
91561cded4 use a plain matrix to store the upper triangular matrix 'R', instead
of the "compact inside a vector" scheme used by fortran/minpack.
The most difficult part is to fix all related code. Tests pass.
2010-01-26 05:59:58 +01:00
Thomas Capricelli
4b859c8554 cleaning 2010-01-26 01:59:32 +01:00
Thomas Capricelli
c759814f11 some more (thoroughly checked) eigenization 2010-01-26 01:43:58 +01:00
Thomas Capricelli
1403cea087 fix a bug introduced between the cminpack version of Manolis Lourakis and
the one from Frédéric Devernay.
Here, we want to compute the max over the column, the -1 is not needed in
fortran because indices start at 1, contrary to c/c++.
2010-01-26 04:55:36 +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
92be7f461b define ei_lmpar2() that takes a ColPivHouseholderQR as argument. We still
need to keep the old one around, though.
2010-01-25 07:23:38 +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
Thomas Capricelli
1cb0be05b0 useful cleaning 2010-01-25 07:08:08 +01:00
Thomas Capricelli
cbf6022e5a useless cleaning 2010-01-25 07:07:31 +01:00
Hauke Heibel
89ee9f092f Fixed compilation of MatrixFunctions module. 2010-01-20 11:32:13 +01:00
Thomas Capricelli
c8b9097740 erm.. forgot to test after previous commit. Now it's ok (tm). 2010-01-19 01:00:59 +01:00
Thomas Capricelli
a33b2dfeb3 introduce new state, "Not started" 2010-01-13 05:17:58 +01:00
Jitse Niesen
65cd1c7639 Add support for matrix sine, cosine, sinh and cosh. 2010-01-11 18:05:30 +00:00
Jitse Niesen
3407e8a67e triangularView<UpperTriangular> --> triangularView<Upper>
Necessary after c5d7c9f0de
 (big delete of "triangular").
2010-01-08 12:49:46 +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
Benoit Jacob
51b8f014f3 merge 2010-01-04 21:26:15 -05:00
Benoit Jacob
39ac57fa6d Big renaming:
start ---> head
  end   ---> tail
Much frustration with sed syntax. Need to learn perl some day.
2010-01-04 21:24:43 -05:00
Thomas Capricelli
e9724c8ea2 accessor for the levenberg-marquardt parameter 2010-01-05 01:22:53 +01:00
Jitse Niesen
708e6629e2 Further refactoring of MatrixFunction<MatrixType, 1>
* move some data to member variables
* split and/or rename member functions
* document all members
2010-01-04 23:13:15 +00:00
Jitse Niesen
233540e58a Refactoring of MatrixFunction: Simplify handling of fixed-size case. 2009-12-30 17:34:48 +00:00
Jitse Niesen
d35cc381fe Refactor MatrixFunction class: Split new class MatrixFunctionAtomic off. 2009-12-27 20:44:19 +00:00
Jitse Niesen
a25c9b1e46 Simplify and document Sylvester equation solver in MatrixFunction. 2009-12-27 18:09:50 +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
63957ad5d6 Remove //@{ ... //@} for same reason as in changeset 2026ea7ff2
.
2009-12-13 00:29:31 +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
Jitse Niesen
2026ea7ff2 Coax doxygen in producing better docs for MatrixFunctions.
The //@{ ... //@} in unsupported/Eigen/MatrixFunctions for some reason
caused doxygen to list the constructor of the MatrixExponential class
as a separate function in the MatrixFunctions module without any reference
to the class; very confusing.
2009-12-11 15:54:21 +00:00
Jitse Niesen
39ceba409b Various improvements to the docs for unsupported.
* Enable compilation of examples for unsupported.
* Fix use of std::vector in BVH example.
* Add an example for the matrix exponential.
* Bug fixes in unsupported/doc/{examples,snippets}/CMakeLists.txt .
2009-12-07 19:10:11 +00:00
Marton Danoczy
ffaea19a70 Fixed compilation warnings in MSVC with Scalar==float 2009-12-03 14:01:34 +01:00
bjornpiltz
af17770680 Fix compilation for MSVC. 2009-12-03 09:27:15 +01:00
Hauke Heibel
84551d067e merge 2009-12-02 11:08:44 +01:00
Thomas Capricelli
291fd4f8da merge 2009-12-01 21:07:20 +01:00
Hauke Heibel
b08d5b2d2c Even more NestByValue cleanup... 2009-12-01 13:16:51 +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
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
4b1aca2288 precision ---> dummy_precision 2009-11-26 22:05:02 -05:00
Thomas Capricelli
c245054aa8 cleaning 2009-11-26 08:30:38 +01:00
Thomas Capricelli
f948df5a72 cleaning 2009-11-26 07:37:37 +01:00
Thomas Capricelli
db39f892a3 kill yet another un-needed parameter 2009-11-26 05:48:38 +01:00
Thomas Capricelli
905aecf803 make qrsolv use eigen types 2009-11-26 04:29:51 +01:00
Thomas Capricelli
e18caf7a01 clean qrsolv 2009-11-26 04:06:40 +01:00
Thomas Capricelli
e95f736402 reduce ei_qrsolv() signature, wa is actually a 'working array' 2009-11-26 03:26:41 +01:00
Thomas Capricelli
746c787a76 computes column norms outside of ei_qrfac() 2009-11-26 02:53:58 +01:00
Thomas Capricelli
9cbfdbad22 cleaning 2009-11-26 02:42:27 +01:00
Thomas Capricelli
dca80b5f22 use typedef 2009-11-25 23:08:46 +01:00
Thomas Capricelli
a6380ae272 silent warnings 2009-11-25 23:08:39 +01:00
Thomas Capricelli
df117a64c7 merge with main repository 2009-11-10 21:34:43 +01:00
Gael Guennebaud
f647fb8dd4 fix compilation and removed some unused stuff in skyline 2009-11-10 21:22:55 +01:00
Thomas Capricelli
6a56262bf4 merge with main repository 2009-11-10 20:31:07 +01:00
Gael Guennebaud
1879403562 mv the Skyline module to unsupported/ 2009-11-10 12:47:42 +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
de195e0e78 some more documentation 2009-11-09 04:21:45 +01:00
Thomas Capricelli
ac8f7d8c9c various fixes in headers 2009-11-09 03:32:40 +01:00
Thomas Capricelli
71a3e96b49 rename NonLinear to NonLinearOptimization 2009-11-09 03:27:15 +01:00
Thomas Capricelli
09cb27c587 documentation + move "namespace eigen" to the main file, as others do. 2009-11-09 03:25:21 +01:00
Thomas Capricelli
cddc83752c starting documentation 2009-11-09 03:07:36 +01:00
Thomas Capricelli
751a333491 merge with main repository 2009-11-08 22:27:32 +01:00
Gael Guennebaud
5dc02fe5e9 improve a bit AutoDiffVector, but it still not working 2009-11-06 11:34:58 +01:00
Mark Borgerding
ec70f8006b added inlines to a bunch of functions 2009-10-31 00:13:22 -04:00
Mark Borgerding
4c3345364e moved half-spectrum logic to Eigen::FFT 2009-10-30 23:38:13 -04:00
Mark Borgerding
d659fd9b14 moved real-half-spectrum reflection into Eigen::FFT 2009-10-30 20:26:30 -04:00
Mark Borgerding
a26b729cc9 moved scaling to Eigen::FFT 2009-10-30 19:50:11 -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
e3d08443dc inlining,all namespace declaration moved to FFT, removed preprocessor definitions, 2009-10-21 20:53:05 -04:00
Mark Borgerding
d9b418bf12 merged eigen2_for_fft into eigen2 mainline 2009-10-20 15:18:01 -04:00
Gael Guennebaud
7b0c4102fa * add a Make* expression type builder to allow the
construction of generic expressions working
  for both dense and sparse matrix. A nicer solution
  would be to use CwiseBinaryOp for any kind of matrix.
  To this end we either need to change the overall design
  so that the base class(es) depends on the kind of matrix,
  or we could add a template parameter to each expression
  type (e.g., int Kind = ei_traits<MatrixType>::Kind)
  allowing to specialize each expression for each kind of matrix.
* Extend AutoDiffScalar to work with sparse vector expression
  for the derivatives.
2009-10-16 13:22:38 +02:00
Gael Guennebaud
44ba4b1d6d add operator+ scalar to AutoDiffScalar 2009-10-16 11:27:04 +02: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
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
d912034565 fdjac2 is not needed anymore 2009-09-28 03:49:23 +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
de942a44c2 default argument for _jac in functor operator() : this way, we can use
AutoDiffJacobian::operator()(x,value) exactly as the original functor
2009-09-28 01:28:48 +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
7a8ec4ba26 cleaning 2009-09-15 04:17:11 +02:00
Thomas Capricelli
6d8baa757e fix indentation (and only that) 2009-09-14 23:47:44 +02:00
Thomas Capricelli
ab88ba6f7f provide some default values for important results. So that we can read them
even before *Init() and do no get random values.
2009-09-13 23:55:08 +02:00
Thomas Capricelli
8c3f7d8e94 cleaning 2009-09-13 01:44:34 +02:00
Thomas Capricelli
8b84c3733a functors need not be const 2009-09-11 20:50:01 +02:00
Thomas Capricelli
72746838ad merge with tip 2009-09-10 02:37:08 +02:00
Jitse Niesen
2a6db40f10 Re-factor matrix exponential.
Put all routines in a class. I think this is a cleaner design.
2009-09-08 14:51:34 +01:00
Thomas Capricelli
c990938415 eigenization of fcn_chkder + bugfix 2009-08-29 02:46:19 +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
c1be96967e remove printfs, they are of no use and may prevent compilation 2009-08-26 01:09:23 +02:00
Thomas Capricelli
6de3f5f0e7 cleaning 2009-08-25 23:47:22 +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
a2abb4afb6 cleaning 2009-08-25 23:26:36 +02:00
Thomas Capricelli
baec4f39ab reduce local variables so that we can split algorithms 2009-08-25 22:49:05 +02:00
Thomas Capricelli
be368c33bb cleaning 2009-08-25 22:15:09 +02:00
Thomas Capricelli
470ea55834 put nfev/njev as internal variables as well 2009-08-25 22:13:08 +02:00
Thomas Capricelli
41b6ea81db oops... fixing return values, some copy/paste was done far too quickly 2009-08-25 22:06:58 +02:00
Thomas Capricelli
3bca4bba87 if mode==2, the user is supposed to supply diag: do some basic check. 2009-08-25 22:02:19 +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
d13bcdc891 those are actually bools 2009-08-25 20:01:30 +02:00
Thomas Capricelli
84f2c451e5 cleaning 2009-08-25 19:57:42 +02:00
Thomas Capricelli
d38d4709bc use an enum for status reporting 2009-08-25 19:48:53 +02:00
Thomas Capricelli
d59cc0ad82 merge files 2009-08-25 17:25:56 +02:00
Thomas Capricelli
493c72ac38 rename files 2009-08-25 17:21:16 +02:00
Thomas Capricelli
858acfcc64 remove the boring, old-school nprint option, we'll have a dedicated
method for 'one iteration' anyway.
2009-08-25 17:11:14 +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
38fc6c8553 cleaning 2009-08-25 14:28:19 +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
86cb9364c9 clean fortran stuff in fdjac* 2009-08-24 21:53:08 +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
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
f69869c42a covar : cleaning, removing goto's 2009-08-24 16:49:38 +02:00
Thomas Capricelli
312ab1abb3 further cleaning/ goto removing 2009-08-24 16:39:49 +02:00
Thomas Capricelli
c6d7da6edc cleaning some more 2009-08-24 16:08:13 +02:00