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
Gael Guennebaud
6eee2918d9
extend quotient functor to allow for mixed types (complex-real)
2012-07-27 11:56:20 +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
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
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
Gael Guennebaud
a2c3003be2
Fix possible underflow issues in SelfAdjointEigenSolver
2012-07-10 09:51:26 +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
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
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