Commit Graph

1312 Commits

Author SHA1 Message Date
Gael Guennebaud
ff661a7b6f Add temporary check for triangularView += product 2013-04-10 23:13:04 +02:00
Gael Guennebaud
899c0c2b6c Clean source code and unit tests with respect to -Wunused-local-typedefs 2013-04-10 22:27:35 +02:00
Gael Guennebaud
f7e52d22d4 Fix missuse of unitialized values in unit tests 2013-04-10 09:46:16 +02:00
Gael Guennebaud
3cb6e21f80 Fix bug #562: add vector-wise normalized and normalize functions 2013-04-09 11:12:35 +02:00
Gael Guennebaud
d8f1035355 Fix a couple of int versus Index issues. 2013-04-09 09:43:00 +02:00
Gael Guennebaud
d63712163c Add SSE4 min/max for integers 2013-03-20 18:28:40 +01:00
Desire NUENTSA
da6219b19d Bug567 : Fix iterative solvers to immediately return when the initial guess is the true solution and for trivial solution 2013-03-20 16:15:18 +01:00
Gael Guennebaud
9bfeeba1c5 Add Official/Unsupported labels to unit tests and add a ctest driver to submit subprojects to cdash 2013-03-20 08:40:13 +01:00
Gael Guennebaud
98ce4455dd fix sparse vector assignment from a sparse matrix 2013-03-06 11:58:22 +01:00
Gael Guennebaud
858ac9ffe0 Add missing template keyword 2013-03-01 00:03:28 +01:00
Hauke Heibel
b5d8299ee7 Prevent calling .norm() on integer matrices in the unit tests. 2013-02-28 12:33:34 +01:00
Hauke Heibel
5882f1631d Fixed compiler warning. 2013-02-28 10:15:19 +01:00
Gael Guennebaud
6dd93fc76e The ref unit test cannot be easily written to work with EIGEN_DEFAULT_TO_ROW_MAJOR 2013-02-27 23:52:10 +01:00
Gael Guennebaud
455e6e38b6 Fix two numerical issues in unit tests. 2013-02-27 08:07:18 +01:00
Gael Guennebaud
61a2995d03 Remove ICC warning in nomalloc unit test. 2013-02-26 18:10:19 +01:00
Gael Guennebaud
fe2c8e1c36 Fix compilation with ICC that was unable to instanciate Scaling from Eigen's namespace. 2013-02-26 17:38:37 +01:00
Gael Guennebaud
bb94f0ebc6 Add a unit test for Ref.h and fix an extra copy. 2013-02-26 15:10:00 +01:00
Gael Guennebaud
b73baa1ea4 Workaround warning: assuming signed overflow does not occur when... 2013-02-26 10:29:24 +01:00
Gael Guennebaud
5108ef01fc Fix no newline warning. 2013-02-26 10:27:55 +01:00
Gael Guennebaud
96ad13abba conservative_resize unit test was executed only once 2013-02-25 01:50:58 +01:00
Gael Guennebaud
41aa0fcc3b Output random generator seed in case of failure so that we have it in CDash. 2013-02-25 01:46:59 +01:00
Gael Guennebaud
19bc418f5c Remove erroneously committed debugging stuff. 2013-02-25 01:17:44 +01:00
Gael Guennebaud
80d2a65465 Fix visitor unit test. 2013-02-25 01:12:07 +01:00
Gael Guennebaud
04367447ac Fix bug #496: generalize internal rank1_update implementation to accept uplo(A) += v * w and make A.triangularView() += v * w uses it.
Update unit tests and blas interface respectively.
2013-02-24 23:05:42 +01:00
Gael Guennebaud
1c137496c6 Extend sparseqr unit test to check linearly dependent columns 2013-02-24 20:36:54 +01:00
Gael Guennebaud
28e139ad60 Fix another issue related to summing up many signed values. 2013-02-23 23:06:45 +01:00
Gael Guennebaud
42af5870a4 Fix array unit test: isApprox(log(0),log(0)) is false, and summing up signed float value might result in very small values and thus large numerical errors 2013-02-23 22:58:14 +01:00
Gael Guennebaud
e71bc79f2a SparseLU does not accept row-major matrices for the destination. 2013-02-22 14:45:42 +01:00
Jitse Niesen
b4f6aec195 Fix linear vectorized transversal in linspace (fixes bug #526). 2013-02-18 17:26:03 +00:00
Gael Guennebaud
a1091caa43 Fix some unused or not initialized related warnings. 2013-02-15 14:05:37 +01:00
Gael Guennebaud
8745da14d8 Fix SSE plog<float> to return -INF on 0 2013-02-14 23:34:05 +01:00
Gael Guennebaud
a0fb885c82 Update adjoint unit test to avoid instantiating sqrt(int) 2013-02-14 21:33:42 +01:00
Gael Guennebaud
9cc016d3f9 Update basicstuff unit test to avoid instantiating the ambiguous sqrt(int) 2013-02-14 21:15:58 +01:00
Desire NUENTSA
35647b0133 Correct bug in SPQR backend and replace matrixQR by matrixR 2013-01-29 17:48:30 +01:00
Desire NUENTSA
8bc00925e5 Change int to Index type for SparseLU 2013-01-29 16:21:24 +01:00
Desire NUENTSA
d58056bde4 Merged local branch with main trunk 2013-01-25 19:05:33 +01:00
Desire NUENTSA
81d4bfa8d9 add support for solving with sparse right hand side 2013-01-25 18:17:17 +01:00
Gael Guennebaud
b74c0a4413 Check that NeedsToAlign is properly sets before checking alignment 2013-01-24 11:42:04 +01:00
Desire NUENTSA
ad798231ec Fix test for Metis 2013-01-21 15:43:15 +01:00
Desire NUENTSA
5b9bb00265 Test for the sparse Blue norm 2013-01-21 15:37:06 +01:00
Desire NUENTSA
5dcf6caa36 Unit test for the Metis Ordering package 2013-01-21 15:36:18 +01:00
Gael Guennebaud
392ffce3b9 Fix traits of Map<Quaternion>, and respectively extend the unit tests 2013-01-20 10:21:54 +01:00
Desire NUENTSA
91b3b3aaab Add a sparse QR factorization and update the elimination tree in SparseLU 2013-01-11 17:16:14 +01:00
Gael Guennebaud
8a50ed86f3 Check that minCoeff(int*)/maxCoeff(int*) always pick the first entry in case of multiple extrema. 2013-01-05 23:49:47 +01:00
Gael Guennebaud
85005ffbd1 Make sure sqrt and the likes are not compiled for integer type in cwiseop unit test. 2012-12-20 18:08:26 +01:00
Gael Guennebaud
8844f632fa Move work in progress Levenberg Marquardt module in unsupported 2012-12-08 18:22:23 +01:00
Desire NUENTSA
cc0fef9807 Add tests for dense and sparse levenberg-Marquardt 2012-12-07 15:48:21 +01:00
Desire NUENTSA
36414d1f3e Update SPQR module for Sparse LM 2012-11-21 19:47:44 +01:00
Gael Guennebaud
4e60283289 Remove Sparse/InnerVectorSet expression in favor of a more general Block<> specialization for Sparse expression.
The specializations for "InnerPanels" are still preserved for efficiency reasons and because they offer additional usefull features.
2012-11-16 09:02:50 +01:00
Desire NUENTSA
9cf77ce1d8 Add support for Sparse QR factorization 2012-11-12 15:20:37 +01:00
Gael Guennebaud
a76fbbf397 Fix bug #314:
- remove most of the metaprogramming kung fu in MathFunctions.h (only keep functions that differs from the std)
- remove the overloads for array expression that were in the std namespace
2012-11-06 15:25:50 +01:00
Gael Guennebaud
fec6df1f7d fix dense=sparse*diagonal (there was an issue in the values returned by the .outer() function of the related iterators) 2012-10-03 09:06:19 +02:00
Gael Guennebaud
f30ca7ed7e extend unit tests to check rectangular matrices for sparse*diagonal products 2012-10-02 23:03:06 +02:00
Gael Guennebaud
8b83e66906 add scalar multiple to diagonal matrices
(transplanted from dc5b335f9f
)
2012-09-27 09:37:05 +02:00
Gael Guennebaud
0c584dcf4d fix compilation with m.array().min/max(scalar) 2012-09-12 17:50:07 +02:00
Desire NUENTSA
fdd0f0c5fc merge Sparse LU branch 2012-09-07 13:18:16 +02:00
Gael Guennebaud
9da41cc527 forward resize() function from Array/Matrix-Wrapper to the nested expression such that mat.array().resize(a,b) is now allowed. 2012-08-30 16:28:53 +02:00
Gael Guennebaud
c5031edb92 Fix out-of-range memory access in GEMV (the memory was not used for the computation, only to assemble unaligned packets from aligned packet loads)
(transplanted from 221f54698c
)
2012-08-30 10:52:15 +02:00
Desire NUENTSA
7dc39b7037 Add unit tests 2012-08-03 13:05:45 +02:00
Jitse Niesen
696b2f999f Eigenvalues module: Implement setMaxIterations() methods. 2012-07-28 21:30:09 +01:00
Gael Guennebaud
9e8d2dea80 Add a preliminary GeneralizedEigenSolver computing the eigenvalues of Av=lBv with A and B general real matrices.
Currently only the eigenvalues are reported.
2012-07-26 20:15:17 +02:00
Gael Guennebaud
e75b1eb883 Fix aliasing issue in sparse matrix assignment.
(m=-m; or m=m.transpose(); with m sparse work again)
2012-07-25 09:33:50 +02:00
Gael Guennebaud
c1cab7b8ed real QZ: update license 2012-07-24 18:11:41 +02:00
Alexey Korepanov
65db91ac2b Add a RealQZ class: a generalized Schur decomposition for real matrices 2012-07-11 16:38:03 -05:00
Jitse Niesen
ba5eecae53 Allow user to specify max number of iterations (bug #479). 2012-07-24 15:17:59 +01:00
Jitse Niesen
fd5749f51c LDLT: Report sign consistent with D for indefinite matrices.
See http://forum.kde.org/viewtopic.php?f=74&t=106942
2012-07-22 21:39:38 +01:00
Benjamin Piwowarski
6bf49ceac2 bug #449: add SparseMatrix::conservativeResize feature 2012-07-19 00:07:06 +02:00
Benoit Jacob
b596f6c10c remove outdated "Eigen itself is part of the KDE project" outside of eigen2 files 2012-07-15 10:33:40 -04:00
Benoit Jacob
0733e622a3 Manual MPL2 relicensing fixes 2012-07-13 14:42:47 -04:00
Benoit Jacob
69124cfca2 Automatic relicensing to MPL2 using Keirs script. Manual fixup follows. 2012-07-13 14:42:47 -04:00
Gael Guennebaud
904ecdf9d8 Add a DynamicIndex constant for signed quantities and use it to fix the conflict
between Diagonal<S,-1> (the first sub diagonal) and a runtime super/sub diagonal which is now:
Diagonal<S,DynamicIndex>
2012-07-10 23:04:17 +02:00
Gael Guennebaud
3e6329a0d9 fix computation of fixed size sub/super diagonal size 2012-07-10 22:39:05 +02:00
Gael Guennebaud
54d55aeaf6 fix bug #487: isometry * scaling was not compiling 2012-07-04 18:25:07 +02:00
Jitse Niesen
d0b873822f Make product eval-at-once.
* Make product EvalAtOnce in cases OuterProduct, GemmProduct and
  GemvProduct
* Ensure that product evaluators are nested inside EvalToTemp
  evaluator
* As temporary kludge, evaluate expression to temporary in AllAtOnce
  traversal and pass expression operator to evalTo()
2012-06-29 13:49:25 +01:00
Jitse Niesen
c1eb820e50 Implement interface for NoAlias assignments.
* Rename the old copy_using_evaluators to noalias_copy_using_evaluators.
* Write a new copy_using_evaluators which strips NoAlias expression, if present,
  and calls noalias_copy_using_evaluators; in future, it will also take care of
  aliasing in products.
* Add expression() getter to NoAlias.
2012-06-29 13:24:04 +01:00
Jitse Niesen
069fd0e4be Move (part of) evaluation of products to evaluator objects.
* Copy implementation from CoeffBasedProduct.
* Copy implementation from GeneralProduct in InnerProduct case.
* For GeneralProduct in other cases, call the evalTo() member function with
  expression objects in constructor of evaluator.
2012-06-29 13:07:21 +01:00
Jitse Niesen
23184527fa Resize lhs automatically in copy_using_evaluator(). 2012-06-28 15:25:25 +01:00
Gael Guennebaud
57b5804974 remove dynamic allocation for fixed size object and triangular matrix-matrix products 2012-06-26 17:45:01 +02:00
Jitse Niesen
172af9facc Fix an evaluator test which was wrong and failed in debug builds. 2012-06-24 17:31:19 +01:00
Gael Guennebaud
5fae6c7848 resurrect expression evaluators 2012-06-22 09:39:35 +02:00
Gael Guennebaud
882912b85f comment two tests in nomalloc (there is no regression here, it's just I've been too optimistic when adding them recently) 2012-06-20 08:58:26 +02:00
Gael Guennebaud
c858fb353f fix a few warnings 2012-06-15 09:06:32 +02:00
Gael Guennebaud
88e051019b extend nomalloc unit test to test the solve calls 2012-06-12 13:12:47 +02:00
Gael Guennebaud
512e0b151b clean the support for testing existing sparse problems 2012-06-07 18:31:09 +02:00
Gael Guennebaud
05af70a958 make sure we do not solve with a null right hand side 2012-06-06 17:11:50 +02:00
Gael Guennebaud
9d2b6dd71a test block objects for sparse solving 2012-06-06 09:40:01 +02:00
Gael Guennebaud
945179b26c CholmodDecomposition now has explicit variants. These variants will allow to provide access to the underlying factors. 2012-06-04 13:24:41 +02:00
Gael Guennebaud
1b20e16546 extend umfpack support 2012-06-04 10:39:57 +02:00
Jitse Niesen
57b5767fe2 Fix infinite recursion in ProductBase::coeff() (bug #447)
Triggered by product of dynamic-size 1 x n and n x 1 matrices.
Also, add regression test.
2012-04-18 15:23:28 +01:00
Gael Guennebaud
b0cf95619e fix compilation of "somedensematrix.llt().matrixL().transpose()" (missing constness on the return types) 2012-04-10 15:40:36 +02:00
Gael Guennebaud
daaeddd581 rm unused gsl_helper file 2012-03-31 17:37:46 +02:00
Gael Guennebaud
48f0bbb586 fix bug #362 and add missing specialization for affine-compact * projective 2012-03-30 23:22:29 +02:00
Desire NUENTSA
2d35f88bcf Cholmod does not compute a determinant 2012-03-29 19:07:13 +02:00
Desire NUENTSA
f776c061a1 Correct a small bug in sparse_solver 2012-03-29 14:53:42 +02:00
Desire NUENTSA
f804a319c8 modify the unit tests of sparse linear solvers to enable tests on real matrices, from MatrixMarket for instance 2012-03-29 14:32:54 +02:00
Gael Guennebaud
c172abdcc7 add sparse * permutation products with assiciated unit tests 2012-03-29 11:29:43 +02:00
Gael Guennebaud
fd2f399c18 fix bug #439: add Quaternion::FromTwoVectors() static constructor 2012-03-26 18:30:04 +02:00
Hauke Heibel
dd9365e089 Fixed division by zero corner case in array unit test. 2012-03-09 14:04:13 +01:00
Gael Guennebaud
9b1ad5e5bd rm cC++11 features 2012-03-09 12:08:06 +01:00
Desire NUENTSA
0d8466d317 Adding an interface to PaStiX, the multithreaded and distributed linear solver 2012-03-08 18:59:08 +01:00
Hauke Heibel
c08521ea6b Improved the unit tests for setLinSpaced.
Provide a default constructed step size as opposed to an int when the size is 1.
2012-03-07 16:18:35 +01:00
Hauke Heibel
ef022da28e Fixed setLinSpaced for size==1. 2012-03-07 15:34:39 +01:00
Hauke Heibel
81c1336ab8 Added support for component-wise pow (equivalent to Matlab's operator .^). 2012-03-07 08:58:42 +01:00
Hauke Heibel
8cb3e36e14 Added support for scalar / array division. 2012-03-02 16:27:27 +01:00
Gael Guennebaud
309b27b545 update unit test for Simplicial-Cholesky 2012-02-28 14:21:54 +01:00
Gael Guennebaud
122f28626c fix and clean Pardiso solver and s/PARDISOSupport/PardisoSupport 2012-02-27 13:23:21 +01:00
Gael Guennebaud
b240a3fad9 add unit tests for analyzePatter/factorize API 2012-02-27 13:22:38 +01:00
Gael Guennebaud
bc8188f6a1 fix symmetric permuatation for mixed storage orders 2012-02-27 13:21:41 +01:00
Desire NUENTSA
16da7299dd Add test in BiCGSTAB for ILUT 2012-02-10 18:57:38 +01:00
Gael Guennebaud
4ed87c59c7 Update the PARDISO interface to match other sparse solvers.
- Add support for Upper or Lower inputs.
- Add supports for sparse RHS
- Remove transposed cases, remove ordering method interface
- Add full access to PARDISO parameters
2012-02-04 14:20:56 +01:00
Gael Guennebaud
ad4aa7873f remove unused variables 2012-02-03 13:30:48 +01:00
Gael Guennebaud
13abb37721 shutup floating point underflow warning for this specific unit test 2012-01-31 23:18:17 +01:00
Gael Guennebaud
18e3ac0f0d fix some compilation errors with ICC and -strict-ansi 2012-01-31 09:14:01 +01:00
Gael Guennebaud
87138075da add the possibility to assemble a SparseMatrix object from a random list of triplets that may contain duplicated elements. It works in linear time, with O(1) re-allocations. 2012-01-28 11:13:59 +01:00
Gael Guennebaud
a108216af1 fix bug #410: fix a possible out of range access in EigenSolver 2012-01-25 19:02:31 +01:00
Gael Guennebaud
87f2af5930 workaround ICC compilation error with -strict-ansi 2012-01-25 15:45:01 +01:00
Gael Guennebaud
ee9f3e34b0 LLT: improve rankUpdate to support downdates,
LDLT: add the missing info() function,
improve unit testing of rankUpdate()
2012-01-23 17:28:23 +01:00
Abraham Bachrach
039408cd66 added functions to allow for cwise min/max operations with scalar argument (bug #400).
added function for array.min(), array.max(), matrix.cwiseMin(), matrix.cwiseMax().

The matrix.cwiseMin/Max functions required the definition of the ConstantReturnType typedef.
However, it wasn't defined until after MatrixCwiseBinaryOps was included in Eigen/src/SparseCore/SparseMatrixBase.h,
so I moved those includes after the definition of the typedefs.

tests for both the regular and scalar min/max functions were added as well
2012-01-11 11:00:30 -05:00
Gael Guennebaud
15ea999f84 pushed too fast the previous one 2011-12-23 23:22:31 +01:00
Gael Guennebaud
901bcdd2a8 the previous test works for Dynamic sizes only 2011-12-23 23:16:43 +01:00
Gael Guennebaud
96a18ef230 add a reconstruction test 2011-12-23 23:15:08 +01:00
Gael Guennebaud
8171adb7ff fix bug #398, the quaternion returned by slerp was not always normalized,
add a proper unit test for slerp
2011-12-23 22:39:32 +01:00
Gael Guennebaud
67ae94f3a2 fix compilation of sparse_basic unit test for complexes 2011-12-23 09:41:14 +01:00
Gael Guennebaud
2c03e6fccc evaluate 1D sparse expressions into SparseVector and make the sparse operator<< and dot honor nested types 2011-12-22 14:01:06 +01:00
Gael Guennebaud
6f92b75874 add aliasing test for sparse*sparse product 2011-12-20 18:10:22 +01:00
Gael Guennebaud
50d756b9ea fix bug #394: innerVector::nonZeros() was broken for uncompressed mode 2011-12-20 18:10:02 +01:00
Jitse Niesen
3db6455896 Remove evaluators for 2.1 release.
We plan to re-instate them when we branch 2.2 (see bug #388).
2011-12-14 21:23:43 +00:00
Gael Guennebaud
9d7d634897 add cholmod_support unit tests 2011-12-10 19:32:17 +01:00
Gael Guennebaud
2600ba1731 feature 297: s/intersectionPoint/pointAt, fix documentation, add a unit test 2011-12-10 12:17:42 +01:00
Tim Holy
2d7c3eea53 feature 319: Add update and downdate functionality to LDLT 2011-12-09 21:04:44 +01:00
karturov
015c331252 Intel(R) MKL support added.
* * *
License disclaimer changed to BSD license for MKL_support.h
* * *
Pardiso support fixed, test added.
blas/lapack tests fixed: Scalar parameter was added in Cholesky, product_matrix_vector_triangular remaned to triangular_matrix_vector_product.
* * *
PARDISO test was added physically.
2011-12-05 14:52:21 +07:00
Gael Guennebaud
e270a5656a fix min/max clash with clang's header by including fstream beforehand 2011-12-08 23:27:10 +01:00
Gael Guennebaud
82f9aa194d fix bug #294: add a diagonal() method to SparseMatrix (const) 2011-12-04 21:49:21 +01:00
Gael Guennebaud
9bd902ed9c fix bug #341: trisove on MappedSparseMatrix 2011-12-04 14:57:43 +01:00
Gael Guennebaud
9353bbac4a fix bug #356: fix TriangularView::InnerIterator for unit diagonals 2011-12-04 14:39:24 +01:00
Gael Guennebaud
91e392a042 add ReverseInnerIterators to loop over the elements in reverse order,
and partly fix bug #356 (issue in trisolve for upper-column major))
2011-12-03 23:49:37 +01:00
Gael Guennebaud
4ca89f32ed Sparse matrix insertion:
- automatically turn a SparseMatrix to uncompressed mode when calling insert(i,j).
 - now coeffRef insert a new element when it does not already exist
2011-12-02 19:00:16 +01:00
Gael Guennebaud
b85bcd91bf remove GSL dependency in the unit tests 2011-12-01 18:17:19 +01:00
Gael Guennebaud
d1b54ecfa3 add more support for uncompressed mode 2011-11-30 19:24:43 +01:00
Marc Glisse
a2810aa32f bug #383 - another c++11-user-defined-literal fix 2011-11-27 15:27:25 -05:00
Benoit Jacob
bc6d78982f Bugs 157 and 377 - General tightening/testing of vectorwise ops:
* add lots of static assertions making it very explicit when all these ops
are supposed to work:
** all ops require the rhs vector to go in the right direction
** all ops already require that the lhs and rhs are of the same kind
(matrix vs vector) otherwise we'd have to do complex work
** multiplicative ops (introduced Kibeom's patch) are restricted to arrays, if only because for matrices they could be ambiguous.

* add a new test, vectorwiseop.cpp.

* these compound-assign operators used to be implemented with for loops:

   for(Index j=0; j<subVectors(); ++j)
     subVector(j).array() += other.derived().array();

This didn't seem to be needed; replaced by using expressions like operator+ and operator- did.
2011-11-18 11:10:27 -05:00
Dennis Schridde
db36e4204f [Geometry/AlignedBox] New typedefs, like for Core/Matrix
Includes 1-4 and dynamic sized boxes for int, float and double type.
Also changes the tests to use these typedefs.
2011-11-09 22:12:28 +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
Benoit Jacob
aa3e420df5 Add test for Matrix(x, y) ctor static assert added in previous changeset 2011-11-06 00:44:04 -04:00
Gael Guennebaud
478de03bd8 fix a couple of warnings in the unit tests 2011-11-05 23:30:49 +01:00
Benoit Jacob
0cf2a05f3e bug #365 - Add test for non-usage of B0 2011-10-31 10:44:06 -04:00
Benoit Jacob
9df2f5c923 bug #369 - Quaternion alignment is broken
The problem was two-fold:
 * missing aligned operator new
 * Flags were mis-computed, the Aligned constant was misused
2011-10-31 09:23:41 -04:00
Benoit Jacob
0609dbeec6 fix more variable-set-but-not-used warnings on gcc 4.6 2011-10-31 00:51:36 -04:00
Benoit Jacob
6a1caf0351 Fix some unused-variable warnings with GCC 4.6 2011-10-30 23:55:20 -04:00
Gael Guennebaud
1ddf88060b update sparse*sparse product: the default is now a conservative algorithm preserving symbolic non zeros. The previous with auto pruning of the small value is avaible doing: (A*B).pruned() or (A*B).pruned(ref) or (A*B).pruned(ref,eps) 2011-10-24 11:44:53 +02:00