Commit Graph

3042 Commits

Author SHA1 Message Date
Sergey Popov
761b3bbb69 Fix bug #540: SelfAdjointEigenSolver improperly used the upper triangular part to extract the scaling factor. 2013-01-12 12:07:49 +01:00
Gael Guennebaud
7262cf783c Cleaning documentation pass in ordering and ILUT 2013-01-12 11:56:56 +01:00
Gael Guennebaud
38fa432e07 Clean inclusion, namespace definition, and documentation of SparseLU 2013-01-12 11:55:16 +01:00
Gael Guennebaud
50625834e6 SparseQR: clean a bit the documentation, fix rows/cols methods, remove rowsQ methods and rename matrixQR to matrixR. 2013-01-12 09:40:31 +01:00
Gael Guennebaud
581e389c54 Fix installation path of SparseQR 2013-01-12 09:32:51 +01:00
Desire NUENTSA
121f3bdf04 Pass a const matrix to sparseQR 2013-01-11 17:47:32 +01:00
Desire NUENTSA
33febdb48b Add support for Schur decomposition of matrices in Hessenberg form 2013-01-11 17:36:45 +01:00
Desire NUENTSA
0f94e96342 Add support for sparse blueNorm 2013-01-11 17:27:12 +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
f9927b4aca Fix _data() versus data() issue in SparseVector, and add a Storage typedef just like SparseMatrix. 2013-01-05 23:04:22 +01:00
Gael Guennebaud
93ee82b1fd Big changes in Eigen documentation:
- Organize the documentation into "chapters".
  - Each chapter include many documentation pages, reference pages organized as modules, and a quick reference page.
  - The "Chapters" tree is created using the defgroup/ingroup mechanism, even for the documentation pages (i.e., .dox files for which I added an \eigenManualPage macro that we can switch between \page or \defgroup ).
  - Add a "General topics" entry for all pages that do not fit well in the previous "chapters".
  - The highlevel struture is managed by a new eigendoxy_layout.xml file.
- remove the "index" and quite useless pages (namespace list, class hierarchy, member list, file list, etc.)
- add the javascript search-engine.
- add the "treeview" panel.
- remove \tableofcontents (replace them by a custom \eigenAutoToc macro to be able to easily re-enable if needed).
- add javascript to automatically generate a TOC from the h1/h2 tags of the current page, and put the TOC in the left side panel.
- overload various javascript function generated by doxygen to:
  - remove the root of the treeview
  - remove links to section/subsection from the treeview
  - automatically expand the "Chapters" section
  - automatically expand the current section
  - adjust the height of the treeview to take into account the TOC
- always use the default .css file, eigendoxy.css now only includes our modifications
- use Doxyfile to specify our logo
- remove cross references to unsupported modules (temporarily)
2013-01-05 16:37:11 +01:00
Chen-Pang He
8321b7ae74 Make KroneckerProductSparse inherit EigenBase instead of SparseMatrixBase, for it does not provide an InnerIterator. 2012-10-25 02:09:48 +08:00
Chen-Pang He
0508a0620b Let KroneckerProduct inherit ReturnByValue to eliminate temporary evaluation. It's uncommon to store the product back to one of the operands. 2012-10-15 19:45:50 +08:00
Chen-Pang He
c4b83461d9 Make kroneckerProduct take two arguments and return an expression, which is more straight-forward. 2012-10-15 00:21:12 +08:00
Jitse Niesen
20a984cd2e Remove #include of removed header file. 2013-01-03 16:44:15 +00:00
Gael Guennebaud
6fb3be9841 Remove useless empty file. 2013-01-03 17:05:20 +01:00
Gael Guennebaud
f41d96deb9 Fix several documentation issues 2012-12-24 13:33:22 +01:00
Gael Guennebaud
f450303321 Fix MSVC compilation: std::log was not accessible. 2012-12-20 18:11:49 +01:00
Christoph Hertzberg
b7ea59556d Fix bug #507: Mark variable as unused in NDEBUG case 2012-12-20 11:21:47 +01:00
Gael Guennebaud
e90752d252 Fix bug #534: rm useless initialization of rowSpacer. 2012-12-16 20:32:48 +01:00
Gael Guennebaud
925a5b7d07 Fix bug #535: unused variable warnings 2012-12-16 20:21:28 +01:00
Gael Guennebaud
6c8cf15c06 Fix compilation of Block/SparseBlock with MSVC 2012-12-16 19:45:48 +01:00
Gael Guennebaud
8844f632fa Move work in progress Levenberg Marquardt module in unsupported 2012-12-08 18:22:23 +01:00
Gael Guennebaud
4cdcb6d793 Add missing minpack copyrights/license.
Fix LM header files and credits original MINPACK authors.
Move minimizeOneStep code into its own file to get it more properly credited.
2012-12-08 18:17:18 +01:00
Desire NUENTSA
2aba6645f4 Move the Levenberg Marquardt to the supported branch
Add support for sparse computations... need SPQR module.
2012-12-07 15:47:13 +01:00
Desire NUENTSA
5afaacedc6 Update SPQR interface 2012-12-07 15:32:04 +01:00
Desire NUENTSA
36414d1f3e Update SPQR module for Sparse LM 2012-11-21 19:47:44 +01:00
Desire NUENTSA
9162a8492e ReverseInnerIterator for SparseBlock 2012-11-16 20:00:34 +01:00
Desire NUENTSA
4acc18f100 Move VectorBlock methods into plugin section 2012-11-16 19:59:11 +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
Gael Guennebaud
3dc8f8536a Generalize Block<> to support various implementation wrt StorageKind (just like other expression) 2012-11-16 09:00:27 +01:00
Gael Guennebaud
493319ae5f plugin header files can be included more than once 2012-11-15 14:33:30 +01:00
Desire NUENTSA
0412dff97b Add more useful functions to SPQR interface 2012-11-13 18:13:13 +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
aa858cb43a add first_multiple helper function 2012-10-30 16:27:52 +01:00
Gael Guennebaud
90fcaf11cf SparseLU: remove the "snode" path which appears to bring nearly zero speedup 2012-10-30 15:17:58 +01:00
Gael Guennebaud
ac8c694f3e add missing copyright 2012-10-30 15:16:47 +01:00
Gael Guennebaud
fea4220f37 SparseLU: add a specialized gemm kernel, and add padding to the supernodes such that supernodes columns are all properly aligned 2012-10-30 15:09:48 +01:00
Gael Guennebaud
b3254c9af5 fix bug #524: Pardiso's parameter array does not have to be aligned! 2012-10-24 10:31:04 +02:00
Gael Guennebaud
138897cc06 fix bug #521: __cpuidex is not available on all architectures supported by MSVC 2012-10-24 10:21:41 +02:00
Gael Guennebaud
9b418afff6 Windows CE does not provide an aligned_malloc function. 2012-10-24 10:12:42 +02:00
Gael Guennebaud
0753463d70 Fix bug #519: AlignedBox::dim() was wrong for dynamic dimensions 2012-10-24 09:58:35 +02:00
Desire NUENTSA
b722c405b7 Use Ref instead of VectorBlock 2012-10-09 12:18:47 +02:00
Desire NUENTSA
23e2de3cb6 RealShur for a already Hessenberg matrix 2012-10-09 12:16:54 +02:00
Gael Guennebaud
a67eea05c1 fix comma initializer when inserting empty matrices 2012-10-03 21:58:14 +02: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
62b1f75a86 add an assertion when inserting an already existing element 2012-10-02 23:02:23 +02:00
Jitse Niesen
2008f76120 Merge 2012-09-29 17:35:15 +01:00
Desire NUENTSA
b68102d9a2 MSVC needs parentheses around min and max 2012-09-28 10:44:25 +02:00
Gael Guennebaud
87074d97e5 old gcc versions do not have immintrin.h file... 2012-09-27 23:35:54 +02:00
Desire NUENTSA
72bfed5e20 Add forgotten SparseLUBase 2012-09-27 11:34:56 +02:00
Gael Guennebaud
8b83e66906 add scalar multiple to diagonal matrices
(transplanted from dc5b335f9f
)
2012-09-27 09:37:05 +02:00
Gael Guennebaud
1b004d5794 fix SparseMatrix option bit flag in eval<> helper 2012-09-27 09:22:10 +02:00
Gael Guennebaud
b648484dba fix bug #515: missing explicit scalar conversion
(transplanted from b0862dcb2f
)
2012-09-27 00:23:19 +02:00
Gael Guennebaud
7c4b55fda9 fix bug #509: warning with gcc 4.7 2012-09-26 23:32:22 +02:00
Gael Guennebaud
7e97dd5bd8 we should not directly include the *mmintrin.h headers but include immintrin.h only 2012-09-26 19:28:57 +02:00
Desire NUENTSA
357fe3641d Correct reference to iterative scaling method 2012-09-25 11:55:33 +02:00
Desire NUENTSA
15a9f6b9c1 Doc for sparseLU 2012-09-25 11:48:18 +02:00
Hauke Heibel
5a3f49036b Removed scaling from the umeyama when it is not requested. 2012-09-25 11:39:40 +02:00
Desire NUENTSA
088379ac2f Fix MSVC compile error in SparseLU 2012-09-25 09:58:29 +02:00
Desire NUENTSA
a01371548d Define sparseLU functions as static 2012-09-25 09:53:40 +02:00
Chen-Pang He
d387dfa9dc Remove unnecessary code. lazyAssign seems to fix all (noalias, initialization, etc.) 2012-09-24 23:36:19 +08:00
Chen-Pang He
963794b04a Eliminate unnecessary evaluations 2012-09-23 00:20:19 +08:00
Gael Guennebaud
7740127e3d Make Ref<> suitable for both Matrix and Array kinds. Note that Matrix kind objects can be implicitely converted to an Array kind Ref<> and vice versa 2012-09-22 11:11:26 +02:00
Chen-Pang He
446d14f6ad Implement matrix power-matrix product again 2012-09-22 03:26:00 +08:00
Desire NUENTSA
7e0dd17312 Improve BiCGSTAB : With exact preconditioner, the solution should be found in one iteration 2012-09-19 18:32:02 +02:00
Gael Guennebaud
48c4d48aec workaround weird compilation error with MSVC 2012-09-14 09:54:56 +02:00
Gael Guennebaud
0c584dcf4d fix compilation with m.array().min/max(scalar) 2012-09-12 17:50:07 +02:00
Desire NUENTSA
45672e724e Incomplete Cholesky preconditioner... not yet stable 2012-09-11 12:12:19 +02:00
Desire NUENTSA
2d49d049d1 Clean the Colamd routine and add test for sparselu code 2012-09-10 14:41:17 +02:00
Desire NUENTSA
761fe49f37 Clean the Colamd routine 2012-09-10 14:28:28 +02:00
Desire NUENTSA
2c99d84133 add SparseLU in sparse bench 2012-09-10 12:41:26 +02:00
Gael Guennebaud
24f371bdb4 Merged in jdh8/eigen (pull request PR-16) 2012-09-08 12:16:49 +02:00
Gael Guennebaud
721671cc4e fix bug #501: remove aggressive mat/scalar optimization (was replaced by mat*(1/scalar) for non integer types) 2012-09-08 11:52:03 +02:00
Gael Guennebaud
06d2fe453d remove stupid assert in blue norm. 2012-09-07 23:19:24 +02:00
Desire NUENTSA
5433986f5a multiple warnings for unused variable 2012-09-07 14:01:51 +02:00
Desire NUENTSA
fdd0f0c5fc merge Sparse LU branch 2012-09-07 13:18:16 +02:00
Desire NUENTSA
063705b5be Add tutorial for sparse solvers 2012-09-07 13:14:57 +02:00
Desire NUENTSA
2280f2490e Init perf values 2012-09-04 12:21:07 +02:00
Desire NUENTSA
2e38666d01 correct bug in Blas 3 2D block update 2012-09-04 11:36:57 +02:00
Desire NUENTSA
3a22c47fb5 Bug in blas 3 2D block update 2012-09-03 14:49:03 +02:00
Chen-Pang He
d23134e4a7 Avoid inefficient 2x2 LU. Move atanh to internal for maintainability. 2012-08-30 23:40:30 +08: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
Chen-Pang He
ba4e886376 Tidy up and write dox. 2012-08-28 01:55:13 +08:00
Gael Guennebaud
ebe511334f workaround clang bug (see http://forum.kde.org/viewtopic.php?f=74&t=102653) 2012-08-27 14:50:45 +02:00
Gael Guennebaud
576d62db64 fix a typo in commit 324ecf153b
(regarding MKL on windows)
2012-08-27 13:17:45 +02:00
Gael Guennebaud
75435079ca fix bug #499: the image was missing because of a dependency issue when building/executing the "special" examples 2012-08-27 11:11:25 +02:00
jdh8
4be172d84f matrix power: MatrixBase::pow(RealScalar) and MatrixBase::pow(T) where T is integral type 2012-08-15 00:34:20 +08:00
Desire NUENTSA
63d2dcfb70 Clean the supernodal matrix class 2012-08-07 17:10:42 +02:00
Desire NUENTSA
43f74cb5b1 Bug in 2D block update, disable it for now 2012-08-07 13:55:50 +02:00
Desire NUENTSA
4d3b7e2a13 Add support for Metis fill-reducing ordering ; it is generally more efficient than COLAMD ordering 2012-08-06 14:55:02 +02:00
Gael Guennebaud
a1b405c92e Add missing const in some casts 2012-08-05 10:40:46 +02:00
Gael Guennebaud
af824091be Fix precision regression when attempting to fix underflow issues. 2012-08-05 09:57:31 +02:00
Desire NUENTSA
a51806993b Prefix with glu, the global structure 2012-08-03 16:43:12 +02:00
Desire NUENTSA
70db61c269 Prefix with glu, the global structure 2012-08-03 16:36:00 +02:00
Gael Guennebaud
03509d1387 SparseLU: add leverage level3 ops 2012-08-03 15:37:44 +02:00
Gael Guennebaud
48dc95f1da factorize column_dfs and panel_dfs 2012-08-02 18:28:16 +02:00
Desire NUENTSA
6e8aa96e0f correct bug when solving with multiple Rhs 2012-08-03 13:05:27 +02:00
Gael Guennebaud
c73c3ec2f8 fix bug #495: remove too aggressive EIGEN_FLATTEN_ATTRIB attribute
(after some benchmarking, it was not useful anymore)
2012-08-02 12:22:22 +02:00
Desire NUENTSA
3a0f5a2a7f Update copyrights sections 2012-08-01 11:40:56 +02:00
Desire NUENTSA
02935b4249 switch to MPL license 2012-08-01 11:38:32 +02:00
Desire NUENTSA
390d6599ba Add missing .noalias() 2012-08-01 11:35:23 +02:00
Gael Guennebaud
7d98c864ff fix warning 2012-08-01 10:44:59 +02:00
Gael Guennebaud
22e0ebbc2c fix lower acceptable bound of SSE pexp for double 2012-07-31 23:11:04 +02:00
Gael Guennebaud
e88817cc51 add another missing .noalias() 2012-07-30 19:28:31 +02:00
Gael Guennebaud
8f6d5eacb4 optimize LU_kernel_bmod for small cases, and add an important .noalias() 2012-07-29 22:26:00 +02:00
Jitse Niesen
696b2f999f Eigenvalues module: Implement setMaxIterations() methods. 2012-07-28 21:30:09 +01:00
Gael Guennebaud
6f54269829 add an example for GeneralizedEigenSolver 2012-07-28 18:00:54 +02:00
Gael Guennebaud
8ab0e16e27 fix various regressions with MKL support 2012-07-28 16:32:43 +02:00
Alexey Korepanov
d937e67b48 RealQZ: added example and some code comments 2012-07-28 08:24:44 -05:00
Gael Guennebaud
e8aa1f00c5 add SSE pexp function for double, make use of _mm_floor_p* for pexp with SSE4.1 2012-07-27 23:40:04 +02:00
Desire NUENTSA W.
ce30d50e3e Improve the permutation 2012-07-27 16:38:20 +02:00
Gael Guennebaud
6eee2918d9 extend quotient functor to allow for mixed types (complex-real) 2012-07-27 11:56:20 +02:00
Desire NUENTSA W.
c0fa5811ec Refactoring codes for numeric updates 2012-07-27 11:36:58 +02: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
cfb76b242f RealSchur: improve speed of computeNormOfT 2012-07-26 18:04:58 +02:00
Gael Guennebaud
4e60e2cdf6 RealQZ: improve computeNorms speed, improve shift accuracy (better to do a/b than a*(1/b)),
update API to set the maximum number of iterations
2012-07-26 18:03:10 +02:00
Gael Guennebaud
7518201de8 SparseMatrix: add missing ctor for ReturnByValue 2012-07-25 23:03:10 +02:00
Alexey Korepanov
ea310249f3 RealQZ: bug in pushDownZero fixed too 2012-07-25 12:49:18 -05:00
Alexey Korepanov
a3a9773ab6 RealQZ: bug in splitOffTwoRows fixed 2012-07-25 12:17:00 -05:00
Desire NUENTSA
925ace196c correct bug in the complex version 2012-07-19 18:15:23 +02:00
Desire NUENTSA
59642da88b Add exception handler to memory allocation 2012-07-19 18:03:44 +02:00
Desire NUENTSA
b0cba2d988 Add a draft (not clean ) version of the COLAMD ordering implementation 2012-07-18 16:59:00 +02:00
Jitse Niesen
bf7d986af6 Add static assert that objects on stacks are not too big (bug #491). 2012-07-17 22:15:42 +01: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
7b34b5f6f9 do not apply plane rotation when it is exactly the identity 2012-07-24 18:19:56 +02:00
Gael Guennebaud
e7c07de549 RealQZ: optimize general hessenberg to not apply rotations to zero entries. 2012-07-24 18:16:22 +02:00
Gael Guennebaud
c1cab7b8ed real QZ: update license 2012-07-24 18:11:41 +02:00
Desire NUENTSA
773804691a working version of sparse LU with unsymmetric supernodes and fill-reducing permutation 2012-07-13 17:32:25 +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
b7ac053b9c Use EISPACK's strategy re max number of iters in Schur decomposition (bug #479). 2012-07-22 22:02:50 +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
Jitse Niesen
907f4562ac Fix some illegal memory access in sparse conservativeResize() 2012-07-20 22:51:51 +01:00
Benjamin Piwowarski
6bf49ceac2 bug #449: add SparseMatrix::conservativeResize feature 2012-07-19 00:07:06 +02:00
Jitse Niesen
d3998de472 Silence clang warning about && inside || 2012-07-14 15:50:56 +01:00
Jitse Niesen
4ae3e0a9b8 Evaluators: Fixed bug caused by Diagonal dynamic index change.
This caused the evaluators unit test to fail.
2012-07-14 14:55:04 +01:00
Gael Guennebaud
79214745c7 clean Eigen2Support wrt KDE mentions 2012-07-14 10:15:45 +02:00
Gael Guennebaud
46b1c7a0ce fix bug #485: conflict between a typedef and template type parameter 2012-07-13 20:54:38 +02:00
Benoit Jacob
269be00925 Add a EIGEN_MPL2_ONLY build option to generate compiler errors when including non-MPL2 modules 2012-07-13 14:42:47 -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
Desire NUENTSA
e529bc9cc1 correct bug when applying column permutation 2012-07-10 19:18:50 +02:00
Desire NUENTSA
de2544cc9b working version of sparse LU without fill-reducing permutation 2012-07-10 19:16:57 +02:00
Gael Guennebaud
a2c3003be2 Fix possible underflow issues in SelfAdjointEigenSolver 2012-07-10 09:51:26 +02:00
Desire NUENTSA
3095e4a5f9 Correct bug for triangular solve within supernodes 2012-07-09 19:09:48 +02:00
Desire NUENTSA
b5a83867ca Update Ordering interface 2012-07-06 20:18:16 +02:00
Jitse Niesen
b1b6864c88 Evaluators: Remove member variables if known at compile-time.
Also, use composition instead of inheritance in EvalToTemp evaluator.
2012-07-06 14:50:03 +01:00
Desire NUENTSA
203a0343fd Update Ordering interface 2012-07-06 13:34:06 +02:00
Gael Guennebaud
7bfd8eabff fix compilation with MSVC 2012-07-05 21:58:01 +02:00
Gael Guennebaud
5dbdde0420 Fix bug #480: workaround the Android NDK defining isfinite as a macro 2012-07-05 17:22:25 +02:00
Gael Guennebaud
23df2eed46 bug #481 step 1: add a new Ref<> class for non templated function arguments 2012-07-05 17:00:28 +02:00
Christoph Hertzberg
03fe095622 bug #488: Add setShift method (and functionality) to Cholmod classes
Also check for Success of numerical factorization
2012-07-04 18:46:14 +02:00
Gael Guennebaud
0a7ce6ad69 fix bug #486: template speacialization of member functions must be declared inline to avoid duplicate references 2012-07-05 13:32:23 +02:00
Jitse Niesen
cb9f3685d3 Move implementation of coeff() &c to Matrix/Array evaluator. 2012-07-05 11:09:42 +01:00
Gael Guennebaud
54d55aeaf6 fix bug #487: isometry * scaling was not compiling 2012-07-04 18:25:07 +02:00
Konstantinos Margaritis
d878cf2227 fix typo 2012-07-04 11:28:59 +03:00
Konstantinos Margaritis
f737536744 fix NEON port, use vget_lane_*() instead of temporary variables (saves extra
load/store), following advice by  Josh Bleecher Snyder <josharian@gmail.com>.
Also implement pmadd() using vmla instead of nested padd/pmul.
2012-07-04 11:12:02 +03:00
Gael Guennebaud
9a97dac4d9 Doc: add an example for HouseholderQR::householderQ() 2012-07-02 16:33:32 +02:00
Gael Guennebaud
eee34f2da4 workaround compilation issue with MSVC 2005 2012-07-02 10:20:44 +02:00
Desire NUENTSA
15f1563533 Before moving to the new building 2012-06-29 17:45:10 +02:00
Jitse Niesen
746378868a Implement A.noalias() = B * C without temporaries
* Wrap expression inside EvalToTemp in copy_using_evaluators() if we
  assume aliasing for that expression (that is, for products)
* Remove temporary kludge of evaluating expression to temporary in
  AllAtOnce traversal
* Implement EvalToTemp expression object
2012-06-29 13:54:09 +01: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
2393ceb380 Implement eval-at-once in evaluator.
- Add evaluator_traits with HasEvalTo flag, which is true if evaluator
  has evalTo() function.
- Add AllAtOnce traversal, which calls evalTo() in evaluator.
- If source evaluator in copy_using_evaluator has HasEvalTo set, then
  use AllAtOnce traversal.
2012-06-29 13:32:12 +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
Gael Guennebaud
9629ba361a bug #482: pass scalar by const ref - pass on the sparse module
(also fix a compilation issue due to previous pass)
2012-06-28 21:01:02 +02:00
Jitse Niesen
23184527fa Resize lhs automatically in copy_using_evaluator(). 2012-06-28 15:25:25 +01:00
Gael Guennebaud
139c91bf30 fix implicit scalar conversion 2012-06-28 13:12:49 +02:00
Gael Guennebaud
a2ace4b79a bug #482: pass scalar arguments by const references. This changeset only concerns the Core and Geometry modules 2012-06-28 02:08:59 +02:00
Gael Guennebaud
cc964b6caf fix performance regression due to check_rows_cols_for_overflow and add appropriate assertions in the PlainObjectBase::resize() functions.
The fix consists in disabling this useless test for statically allocated objects.
2012-06-26 22:16:07 +02: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
8994f9962a Fix bug in {Matrix,Array}Wrapper evaluator 2012-06-24 17:35:27 +01:00
Jitse Niesen
d0d077b212 Fix bug in evaluators with sliced vectorization. 2012-06-24 17:33:21 +01:00
Gael Guennebaud
7c32904766 typo 2012-06-24 10:13:28 +02:00
Gael Guennebaud
cc6dd55028 put the resurected files into the Eigen namespace 2012-06-22 16:35:20 +02:00
Gael Guennebaud
62c504e7bf fix most of the shadow warnings in Core/*.h 2012-06-22 16:32:45 +02:00
Gael Guennebaud
5fae6c7848 resurrect expression evaluators 2012-06-22 09:39:35 +02:00
Gael Guennebaud
81e39e1bc6 bump default branch to 3.1.90 2012-06-22 09:27:24 +02:00
Gael Guennebaud
dd86165c13 bump to 3.1.0-rc2 2012-06-21 22:00:13 +02:00
Gael Guennebaud
110cf8bbf5 fix compilation issue with MKL's backend 2012-06-21 17:03:15 +02:00
Gael Guennebaud
6f3057f624 extend documentation of *Support modules 2012-06-21 10:51:22 +02:00
Gael Guennebaud
b96b429aa2 fix bug #478: RealSchur failed on a zero matrix. 2012-06-20 10:08:32 +02:00
Gael Guennebaud
c8346abcdd fix bug #477: warning with gcc 4.7 2012-06-20 09:54:52 +02:00
Gael Guennebaud
3c9289129b prevent the allocation of the two preconditioner, only one is needed 2012-06-15 23:22:34 +02:00
Desire NUENTSA
f0c34c6822 Build finished... start debugging 2012-06-15 17:23:54 +02:00
Gael Guennebaud
aa3daad883 fix a warning and formatting 2012-06-15 09:16:10 +02:00
Gael Guennebaud
c858fb353f fix a few warnings 2012-06-15 09:06:32 +02:00
Gael Guennebaud
4ca5735de4 bump to 3.1.0-rc1 2012-06-14 21:25:50 +02:00
Desire NUENTSA
0c9b08e46e build complete... almost 2012-06-14 18:45:04 +02:00
Gael Guennebaud
b9f25ee656 bug #466: better fix for the race condition: this new patch add an initParallel()
function which must be called at the initialization time of any multi-threaded
application calling Eigen from multiple threads.
2012-06-14 14:24:15 +02:00
Gael Guennebaud
a3e700db72 fix bug #475: .exp() now returns +inf when overflow occurs (SSE) 2012-06-14 10:38:39 +02:00
Gael Guennebaud
324ecf153b disable the MKL's vm*powx functions on windows 2012-06-14 09:49:57 +02:00
Desire NUENTSA
f8a0745cb0 Build process... 2012-06-13 18:26:05 +02:00
Desire NUENTSA
c0ad109499 Checking Data structures and function prototypes 2012-06-12 18:19:59 +02:00
Gael Guennebaud
9c7b62415a simplify and clean a bit the Pastix support module 2012-06-12 16:47:14 +02:00
Gael Guennebaud
cd48254a87 fix inclusion order 2012-06-12 11:40:33 +02:00
Gael Guennebaud
924c7a9300 avoid dynamic allocation for fixed size triangular solving 2012-06-12 11:33:50 +02:00
Desire NUENTSA
bccf64d342 Checking Syntax... 2012-06-11 18:52:26 +02:00
Desire NUENTSA W.
0591011d5c Sparse LU - End Triangular solve... start debugging 2012-06-10 23:36:38 +02:00
Gael Guennebaud
f2849fac20 Fix bug #466: race condition destected by helgrind in manage_caching_sizes.
After all, the solution based on threadprivate is not that costly.
2012-06-08 17:29:02 +02:00
Desire NUENTSA
7bdaa60f6c triangular solve... almost finished 2012-06-08 17:23:38 +02:00
Gael Guennebaud
28d0a8580e workaround ICC 11.1 compilation issue 2012-06-08 14:13:28 +02:00
Gael Guennebaud
7e36d32b32 fix ambiguous calls in the functors by prefixing function calls with internal:: 2012-06-08 09:53:50 +02:00
Desire NUENTSA
f091879d77 Memory management 2012-06-07 19:06:22 +02:00
Gael Guennebaud
1e5e66b642 For consistency, Simplicial* now factorizes P A P^-1 (instead of P^-1 A P).
Document how is applied the permutation in Simplicial* .
2012-06-07 16:24:46 +02:00
Gael Guennebaud
63c6ab3e42 fix documentaion of twistedBy 2012-06-07 16:18:00 +02:00
Gael Guennebaud
b7a7285909 bump to beta1 2012-06-06 22:33:39 +02:00
Gael Guennebaud
5a697e495c fix installation path 2012-06-06 22:32:44 +02:00
Desire NUENTSA
268ba3b521 Memory expansion and few bugs 2012-06-06 18:23:39 +02:00
Gael Guennebaud
fd32697074 Fix stopping criteria of CG 2012-06-06 17:11:16 +02:00
Gael Guennebaud
84d20720b2 fix umfpack for row-major 2012-06-06 09:44:53 +02:00
Gael Guennebaud
c58b759865 Fix bug #454: allow Block/Map objects for solving with SuperLU 2012-06-06 09:37:59 +02:00
williami
fc5f21903b Fixed RVCT 3.1 compiler errors. 2012-06-04 10:21:16 -05: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
5f5a4d4546 make Simplicial* non-copyable, and fix return type of Simplicial*::compute() 2012-06-04 13:22:44 +02:00
Gael Guennebaud
a2ae063491 add a noncopyable base class for decompositions 2012-06-04 13:21:15 +02:00
Desire NUENTSA
4e5655cc03 Supernodal Matrix 2012-06-01 18:44:51 +02:00
Gael Guennebaud
b509cf0742 Fix bug #468: generalize UmfPack support to accept any input at the cost of an implicit copy. 2012-06-01 16:31:36 +02:00
Gael Guennebaud
7f63169f09 SimplicialCholesky: avoid multiple twisting of the same matrix when calling compute() 2012-06-01 15:51:03 +02:00
Desire NUENTSA
b26d6b02de Eliminate and prune columns in a panel 2012-05-31 17:10:29 +02:00
Desire NUENTSA
8608d08d65 Symbolic and numeric updates within the panel 2012-05-30 18:09:26 +02:00
Desire NUENTSA
8ab820b5b8 Symbolic and numeric update on a whole panel 2012-05-29 17:55:38 +02:00
kmargar
97cdf6ce9e ARM NEON supports multiply-accumulate instruction vmla, use that in pmadd(). 2012-05-28 14:55:23 +03:00
Desire NUENTSA
b6267507ea Add preliminary files for SparseLU 2012-05-25 18:17:57 +02:00
Gael Guennebaud
ce2e2fe336 bug #455: add support for c++11 in aligned_allocator 2012-05-03 11:55:30 +02:00
Jitse Niesen
65fb0d43ff Define NoChange as enum constant (bug #450).
This gets rid of some warnings on Intel Composer XE, apparently.
2012-04-29 15:37:44 +01:00
Gael Guennebaud
1741dbce1a fix more warnings in MKL support 2012-04-18 18:36:25 +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
5cab18976b cleaning pass: rm unused variables in MKL stuff, fix a few namespace issues, MarketIO needs iostream 2012-04-18 10:09:46 +02:00
Gael Guennebaud
1198ca0284 remove debug output 2012-04-17 08:38:42 +02:00
Jitse Niesen
5d56f9f763 Remove unused file EigenvaluesCommon.h 2012-04-16 13:47:48 +01:00
Jitse Niesen
3c412183b2 Get rid of include directives inside namespace blocks (bug #339). 2012-04-15 11:06:28 +01:00
Gael Guennebaud
f6a5508392 remove an extra ';' and suppress a 'variable used before its value is set' warning 2012-04-11 09:49:52 +02:00
Gael Guennebaud
51410975ac suppress extra ',' and ';' 2012-04-10 17:32:21 +02: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
311c5b87a3 Replicate now makes use of the cost model to evaluate its nested expression 2012-04-06 00:22:13 +02:00
Gael Guennebaud
48f0bbb586 fix bug #362 and add missing specialization for affine-compact * projective 2012-03-30 23:22:29 +02:00
Gael Guennebaud
63ea667ed7 fix compilation with ICC 2012-03-30 11:22:23 +02:00
Desire NUENTSA
5dbb646190 Add private copy constructors to sparse solvers backends 2012-03-29 19:19:12 +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
caecaf9c9e add missing forward declaration 2012-03-29 13:45:01 +02:00
Gael Guennebaud
c172abdcc7 add sparse * permutation products with assiciated unit tests 2012-03-29 11:29:43 +02:00
Gael Guennebaud
8ff882aa4c add sparse-selfadjoint to sparse-selfadjoint assignment operators
(no need to use .twistedBy(I) anymore)
2012-03-29 11:28:43 +02:00
Gael Guennebaud
fd2f399c18 fix bug #439: add Quaternion::FromTwoVectors() static constructor 2012-03-26 18:30:04 +02:00
Desire NUENTSA
0d52b965c8 Add simple API to set Pastix parameters 2012-03-22 15:54:52 +01:00