Christoph Hertzberg
84aaa03182
Addendum to bug #859 : pexp(NaN) for double did not return NaN, also, plog(NaN) did not return NaN.
...
psqrt(NaN) and psqrt(-1) shall return NaN if EIGEN_FAST_MATH==0
2014-10-20 13:13:43 +02:00
Gael Guennebaud
aa5f79206f
Fix bug #859 : pexp(NaN) returned Inf instead of NaN
2014-10-20 11:38:51 +02:00
Gael Guennebaud
b4a9b3f496
Add unit tests for Rotation2D's inverse(), operator*, slerp, and fix regression wrt explicit ctor change
2014-10-20 11:04:32 +02:00
Gael Guennebaud
d04f23260d
Fix bug #894 : the sign of LDLT was not re-initialized at each call of compute()
2014-10-20 10:48:40 +02:00
Gael Guennebaud
8838b0a1ff
Fix SparseQR::rank for a completely empty matrix.
2014-10-19 22:42:20 +02:00
Gael Guennebaud
b50e5bc816
merge
2014-10-17 16:53:18 +02:00
Gael Guennebaud
a370b1f2e2
Fix SparseLU::absDeterminant and add respective unit test
2014-10-17 16:52:56 +02:00
Gael Guennebaud
feacfa5f83
Fix JacobiSVD wrt undeR/overflow by doing scaling prior to QR preconditioning
2014-10-17 15:32:06 +02:00
Gael Guennebaud
8472e697ca
Add lapack interface to JacobiSVD and BDCSVD
2014-10-17 15:31:11 +02:00
Mark Borgerding
880e72c130
quieted more g++ warnings of the form: warning: typedef XXX locally defined but not used [-Wunused-local-typedefs]
2014-10-16 09:19:32 -04:00
Benoit Steiner
bfdd9f3ac9
Made the blocking computation aware of the l3 cache
...
Also optimized the blocking parameters to take into account the number of threads used for a computation
2014-10-15 15:32:59 -07:00
Benoit Steiner
99d75235a9
Misc improvements and cleanups
2014-10-13 17:02:09 -07:00
Christoph Hertzberg
d3f52debc6
Make cuda_basic test compile again by adding lots of EIGEN_DEVICE_FUNC.
...
Although the test passes now, there might still be some missing.
2014-10-13 17:18:26 +02:00
Gael Guennebaud
a80e17cfe8
Remove unused and dangerous CompressedStorage::Map function
2014-10-09 23:42:33 +02:00
Gael Guennebaud
349c2c9235
bug #367 : fix double copies in atWithInsertion, and add respective unit-test
2014-10-09 23:35:49 +02:00
Gael Guennebaud
48d537f59f
Fix indentation
2014-10-09 23:35:26 +02:00
Gael Guennebaud
538c059aa4
bug #887 : fix CompressedStorage::reallocate wrt memory leaks
2014-10-09 23:35:05 +02:00
Gael Guennebaud
a48b82eece
Add a scoped_array helper class to handle locally allocated/used arrays
2014-10-09 23:34:05 +02:00
Gael Guennebaud
4b886e6b39
bug #889 : fix protected typedef
2014-10-08 07:48:30 +02:00
Gael Guennebaud
5741349294
bug #882 : fix various const-correctness issues with *View classes.
2014-10-07 18:29:28 +02:00
Gael Guennebaud
d44d432baa
Re-enable products with triangular views of sparse matrices: we simply have to treat them as a sparse matrix.
2014-10-06 16:11:26 +02:00
Gael Guennebaud
893bfcf95f
bug #887 : use ei_declare_aligned_stack_constructed_variable instead of manual new[]/delete[] pairs in AMD and Paralellizer
2014-10-06 11:54:30 +02:00
Gael Guennebaud
fb53ff1eda
Fix SparseLU regarding uncompressed inputs and avoid manual new/delete calls.
2014-10-06 11:42:31 +02:00
Benoit Steiner
bbce6fa65d
define EIGEN_VECTORIZE_CUDA when compiling with nvcc
2014-10-03 19:55:35 -07:00
Benoit Steiner
95a430a2ca
Vector primitives for CUDA
2014-10-03 19:45:19 -07:00
Benoit Steiner
b7271dffb5
Generalized the gebp apis
2014-10-02 16:51:57 -07:00
Benoit Steiner
5cc23199be
More tests to validate the const-correctness of the tensor code.
2014-10-02 10:30:44 -07:00
Konstantinos Margaritis
9d3c69952b
fixed to make big-endian VSX work as well
2014-10-01 09:43:56 +00:00
Gael Guennebaud
5180bb5e47
Add missing default ctor in Rotation2D
2014-09-30 16:59:28 +02:00
Christoph Hertzberg
81517eebc1
Missing explicit
2014-09-30 16:42:04 +02:00
Christoph Hertzberg
12d59465cb
bug #884 : Copy constructor of Ref shall never malloc, constructing from other RefBase shall only malloc if the memory layout is incompatible.
2014-09-30 14:57:54 +02:00
Gael Guennebaud
56a0bbbbee
Fix compilation with GCC
2014-09-29 18:28:18 +02:00
Gael Guennebaud
abd3502e9e
Introduce a generic InnerIterator classes compatible with evaluators.
2014-09-29 13:36:57 +02:00
Georg Drenkhahn
bc34ee3365
Using Index type instead of hard coded int type to prevent potential implicit integer conversion.
2014-09-22 18:56:36 +02:00
Georg Drenkhahn
9a04cd307c
Added implicit integer conversion by using explicit integer type conversion. Adding assert to catch overflow.
2014-09-22 18:47:33 +02:00
Gael Guennebaud
f0a62c90bc
Avoid comparisons between different index types.
2014-09-29 10:27:51 +02:00
Georg Drenkhahn
2946992ad4
Using StorageIndexType for loop assigning initial permutation. Adding assert for index overflow.
2014-09-22 17:59:02 +02:00
Georg Drenkhahn
821ff0ecfb
Using Index instead of hard coded int type to prevent potential implicit integer conversion
2014-09-22 16:12:35 +02:00
Georg Drenkhahn
2c4cace56c
Using Index instead of hard coded int type to prevent potential implicit integer conversion
2014-09-22 15:54:34 +02:00
Georg Drenkhahn
b2755edcdd
Replaced hard coded int types with Index types preventing implicit integer conversions.
2014-09-21 23:15:35 +02:00
Georg Drenkhahn
d1ef3c3546
Changed Diagonal::index() to return an Index type instead of int to prevent possible implicit conversion from long to int.
...
Added inline keyword to member methods.
2014-09-21 10:21:20 +02:00
Georg Drenkhahn
edaefeb978
Using Kernel::Index type instead of int to prevent possible implicit conversion from long to int.
2014-09-21 10:01:12 +02:00
Gael Guennebaud
74cde0c925
Add missing return derived() in ArrayBase::operator=
2014-09-28 09:16:13 +02:00
Christoph Hertzberg
4ba8aa1482
Fix bug #884 : No malloc for zero-sized matrices or for Ref without temporaries
2014-09-25 16:05:17 +02:00
Christoph Hertzberg
27d6b4daf9
Tridiagonalization::diagonal() and ::subDiagonal() did not work. Added unit-test
2014-09-24 14:37:13 +02:00
Gael Guennebaud
446001ef51
Fix nested_eval<Product<> > which wrongly returned a Product<> expression
2014-09-24 09:39:09 +02:00
Christoph Hertzberg
421feea3b2
member_redux constructor is explicit too. Renamed some typedefs for more consistency.
2014-09-23 18:55:42 +02:00
Christoph Hertzberg
7817bc19a4
Removed FIXME, as it is actually necessary.
2014-09-23 17:23:34 +02:00
Christoph Hertzberg
eb13ada3aa
Renamed CwiseInverseReturnType to InverseReturnType for ArrayBase::inverse()
2014-09-23 17:21:27 +02:00
Christoph Hertzberg
36448c9e28
Make constructors explicit if they could lead to unintended implicit conversion
2014-09-23 14:28:23 +02:00
Christoph Hertzberg
de0d8a010e
Suppress stupid gcc-4.4 warning
2014-09-23 12:58:14 +02:00
Gael Guennebaud
ff46ec0f24
bug #881 : make SparseMatrixBase::isApprox(SparseMatrixBase) exploits sparse computations instead of converting the operands to dense matrices.
2014-09-22 23:33:28 +02:00
Gael Guennebaud
f9d6d3780f
bug #879 : fix compilation of tri1=mat*tri2 by copying tri2 into a full temporary.
2014-09-22 17:34:17 +02:00
Christoph Hertzberg
d9e0336a78
Merged in kmargar/eigen (pull request PR-84)
...
Add VSX support
2014-09-22 12:57:06 +02:00
Jitse Niesen
333905b0c2
Fix typos in docs for IterativeLinearSolvers module
2014-09-21 14:20:08 +01:00
Jitse Niesen
5fa69422a2
Fix copy-and-paste typo in SolveWithGuess assignment
...
This fixes compilation of code snippets in BiCGSTAB docs.
2014-09-21 14:19:23 +01:00
Konstantinos Margaritis
de38ff2499
prefetch are noops on VSX, actually disable the prefetch trait
2014-09-21 11:56:07 +00:00
Konstantinos Margaritis
60e093a9dc
Merged eigen/eigen into default
2014-09-21 14:02:51 +03:00
Konstantinos Margaritis
56408504e4
fix compile error on big endian altivec
2014-09-21 13:59:30 +03:00
Konstantinos Margaritis
974fe38ca3
prefetch are noops on VSX
2014-09-21 11:24:30 +00:00
Konstantinos Margaritis
c0205ca4af
VSX supports vec_div, implement where appropriate (float/doubles)
2014-09-21 08:12:22 +00:00
Konstantinos Margaritis
10f8aabb61
VSX port passes packetmath_[1-5] tests!
2014-09-20 22:31:31 +00:00
Jitse Niesen
80de35b6c5
Remove double return statement in PlainObjectBase::_set()
2014-09-19 22:05:18 +01:00
Konstantinos Margaritis
60663a510a
32-bit floats/ints, 64-bit doubles pass packetmath tests, complex 32/64-bit remaining
2014-09-19 21:05:01 +00:00
Gael Guennebaud
0a18eecab3
bug #100 : add support for explicit scalar to Array conversion (as enable implicit conversion is much more tricky)
2014-09-19 13:25:28 +02:00
Gael Guennebaud
755e77266f
Fix SparseQR for row-major inputs.
2014-09-19 09:58:56 +02:00
Gael Guennebaud
07c5500d70
Introduce a compilation error when using the wrong InnerIterator type.
2014-09-19 09:58:20 +02:00
Gael Guennebaud
0ca43f7e9a
Remove deprecated code not used by evaluators
2014-09-18 15:15:27 +02:00
Gael Guennebaud
8b3be4907d
log2(int) must be inlined.
2014-09-18 10:53:53 +02:00
Gael Guennebaud
0bf5894861
workaround one more shadowing issue with MSVC
2014-09-16 18:21:39 -07:00
Gael Guennebaud
c2f66c65aa
workaround MSVC compilation issue (shadow issue)
2014-09-16 16:23:45 -07:00
Gael Guennebaud
125619146b
workaround weird MSVC compilation issue: a typdedef in a base class shadows a template parameter of a derived class
2014-09-16 16:06:32 -07:00
Gael Guennebaud
fc23e93707
Add a portable log2 function for integers
2014-09-17 09:56:07 +02:00
Gael Guennebaud
0f0580b97c
Remove not needed template keyword.
2014-09-17 09:55:44 +02:00
Gael Guennebaud
486ca277a0
Workaround MSVC ICE
2014-09-16 10:29:29 -07:00
Benoit Steiner
10a79ca3a3
Merged latest updates from the Eigen trunk.
2014-09-15 09:18:16 -07:00
Gael Guennebaud
466d6d41c6
Avoid a potential risk of recursive definition using traits to get he scalar type
2014-09-15 17:40:17 +02:00
Gael Guennebaud
8514179aa3
Fix traits<Quaternion>::IsAligned when using evaluators
2014-09-15 13:53:52 +02:00
Gael Guennebaud
c83e01f2d6
Favor column major storage for inner products
2014-09-14 19:38:49 +02:00
Gael Guennebaud
26db954776
Re-enable aliasing checks when using evaluators
2014-09-14 19:06:08 +02:00
Gael Guennebaud
fda680f9cf
Adapt changeset 51b3f558bb
...
to evaluators:
(Fix bug #822 : outer products needed linear access, and add respective unit tests)
2014-09-14 18:31:29 +02:00
Gael Guennebaud
dfc54e1bbf
Fix /= when using evaluator as in changeset 2d90484450
2014-09-14 18:27:48 +02:00
Gael Guennebaud
749b56f6af
merge with default branch
2014-09-14 17:34:54 +02:00
Gael Guennebaud
af9c9f7706
Fix comparison to block size
2014-09-14 17:33:39 +02:00
Jitse Niesen
9452eb38f8
Make UpperBidiagonalization accept row-major matrices (bug #769 )
...
* Give temporary workspace the same storage order as original matrix
* Take storage order into account when determining inner stride
of rows and columns
* Change one test to use a row-major matrix.
2014-09-12 14:52:35 +01:00
Konstantinos Margaritis
470aa15c35
First time it compiles, but fails to pass the tests.
2014-09-09 16:58:48 +00:00
Gael Guennebaud
188a13f9fe
Fix compilation of coeff(Index) on sub-inner-panels
2014-09-08 09:50:03 +02:00
Gael Guennebaud
b23556bbbd
Oops, a block size of 1 is not very useful, set it to 48 as in HouseholderQR
2014-09-05 08:50:50 +02:00
Gael Guennebaud
8846aa6d1b
Optimization: enable cache-efficient application of HouseholderSequence.
2014-09-04 09:15:59 +02:00
Gael Guennebaud
c82dc227f1
Cleaning in BDCSVD (formating, handling of transpose case, remove some for loops)
2014-09-03 10:15:24 +02:00
Gael Guennebaud
47829e2d16
Disable solve_ret_val like mechanism with evaluator enabled
2014-09-01 18:32:59 +02:00
Gael Guennebaud
1f398dfc82
Factorize *SVD::solve to SVDBase
2014-09-01 18:31:54 +02:00
Gael Guennebaud
b3a0365429
merge with default branch
2014-09-01 18:21:01 +02:00
Gael Guennebaud
eb39296028
Reafctoring in D&C SVD unsupported module: clean and merge the SVDBase class to Eigen/SVD, rm copy/pasted JacobiSVD.h file
2014-09-01 18:16:20 +02:00
Gael Guennebaud
b121eecf60
Fix regression is sparse-sparse product
2014-09-01 17:34:55 +02:00
Gael Guennebaud
1c4b69c5fb
Factorize solveWithGuess in IterativeSolverBase
2014-09-01 17:19:51 +02:00
Gael Guennebaud
8a74ce922c
Make IncompleteLUT use SparseSolverBase.
2014-09-01 17:19:16 +02:00
Gael Guennebaud
863b7362bc
Fix usage of m_isInitialized in SparseLU and Pastix support.
2014-09-01 17:16:32 +02:00
Gael Guennebaud
1bf3b34849
Fix regression in sparse-sparse product
2014-09-01 17:15:08 +02:00
Gael Guennebaud
f9580a3473
Fix Cholmod support without evaluators
2014-09-01 17:14:30 +02:00
Gael Guennebaud
fbb53b6cbb
Fix sparse matrix times sparse vector.
2014-09-01 16:53:52 +02:00
Gael Guennebaud
85c7659574
Refactoring of sparse solvers through a SparseSolverBase class and usage of the Solve<> expression. Introduce a SolveWithGuess expression on top of Solve.
2014-09-01 15:00:19 +02:00
Gael Guennebaud
bc065c75d2
Implement the missing bits to make Solve compatible with sparse rhs
2014-09-01 14:50:59 +02:00
Gael Guennebaud
e6cc24cbd6
Fix compilation in legacy mode
2014-09-01 14:20:11 +02:00
Gael Guennebaud
0369db12af
bug #871 : fix compilation on ARM/Neon regarding __has_builtin usage
2014-09-01 10:52:58 +02:00
Konstantinos Margaritis
7ff266e3ce
Initial VSX commit
2014-08-29 20:03:49 +00:00
Gael Guennebaud
b4a709520d
merge
2014-08-29 15:31:54 +02:00
Gael Guennebaud
c1d0f15bde
Enable evaluators by default
2014-08-29 15:31:32 +02:00
Gael Guennebaud
124d12a915
merge default branch
2014-08-29 15:20:31 +02:00
Gael Guennebaud
f29dbec321
undef Unsable macro
2014-08-29 15:12:03 +02:00
Gael Guennebaud
aec3d90ca6
Optimization in sparse-sparse matrix products for small ones
2014-08-29 14:19:03 +02:00
Gael Guennebaud
460662cbcc
Fix SparseVector::coeffRef(i,j) and add missing SparseVector::insert*Unordered
2014-08-29 14:18:23 +02:00
Gael Guennebaud
1ed9e2d004
In sparse matrix product, enable sorted insertion when doing two transposition is defenitely not optimal.
2014-08-29 11:55:03 +02:00
Gael Guennebaud
25a3e65a68
In SparseQR, calling factorize() without analyzePattern() was broken.
2014-08-26 23:32:32 +02:00
Gael Guennebaud
be3477e206
bug #857 : workaround MSVC compilation issue.
2014-08-26 12:52:29 +02:00
Gael Guennebaud
2e50289ba3
bug #861 : enable posix_memalign with PGI
2014-08-26 12:54:19 +02:00
Gael Guennebaud
b49ef99617
Do not apply the preconditioner before starting the iterations as this might destroy a very good initial guess.
2014-08-21 22:14:25 +02:00
Gael Guennebaud
9c0aa81fbf
bug #854 : fix numerical issue in SelfAdjointEigenSolver::computeDirect for 3x3 matrices. The tolerance to detect stable cross products was too optimistic.
...
Add respective unit tests.
2014-08-21 10:49:09 +02:00
Christoph Hertzberg
eeadc06e83
EIGEN_EXCEPTIONS was not defined in test/main.h, therefore all VERIFY_RAISES_ASSERT tests were not enabled
2014-08-20 16:39:25 +02:00
Vladimir Chalupecky
6a3423da80
Fix uninitialized variable warning in SparseQR
2014-08-20 05:42:22 +00:00
Benoit Steiner
16047c8d4a
Pulled in the latest changes from the Eigen trunk
2014-08-13 22:25:29 -07:00
Kevin Locke
e6d55c081b
Fix bug #852 : define Traits type in general_matrix_matrix_product when EIGEN_USE_BLAS is defined
2014-08-08 04:05:28 -04:00
Gael Guennebaud
5e890d3ad7
Improve further the accuracy of JacobiSVD wrt under/overflow while improving speed for small matrices (hypot is very slow).
2014-09-10 23:11:58 +02:00
Gael Guennebaud
2d90484450
mat/=scalar was transformed into mat*=(1/scalar) thus laking accuracy. This was also inconsistent with mat = mat/scalar.
2014-09-10 23:10:01 +02:00
Gael Guennebaud
d6236d3b26
Fix bug #791 : infinite loop in JacobiSVD in the presence of NaN.
2014-09-10 11:54:20 +02:00
Gael Guennebaud
921a645481
ArrayWrapper and MatrixWrapper classes should not be nested by reference.
2014-09-10 10:33:19 +02:00
Yan Zhou
4b678b96eb
fix for MKL_BLAS not defined in MKL 11.2
2014-09-08 17:37:58 +08:00
Gael Guennebaud
51b3f558bb
Fix bug #822 : outer products needed linear access, and add respective unit tests
2014-09-08 10:21:22 +02:00
Gael Guennebaud
6162672dc5
Runtime alignement is not possible if AlignedOnScalar is not true (e.g., for complex<double>)
2014-09-08 10:04:26 +02:00
Gael Guennebaud
e54898f53e
bug #619 : workaround MSVC 2008 implementing std::abs for int only on WINCE
2014-09-07 23:02:30 +02:00
Jitse Niesen
abb33258ce
Doc: difference between array and matrix cosine etc (bug #830 )
2014-09-06 14:59:44 +01:00
Jitse Niesen
25bceefb4e
Replace asm by __asm__ (bug #873 )
2014-09-06 11:47:24 +01:00
Gael Guennebaud
42e27d41a2
Fix hypot() and hypotNorm() wrt NaN and INF values.
2014-09-02 16:09:39 +02:00
Gael Guennebaud
a44a343f03
Fix blueNorm wrt NaN/INF.
2014-09-02 15:06:24 +02:00
Gael Guennebaud
18fbe7e7d4
Fix stableNorm() with respect to NaN and inf, and add respective unit tests. blueNorm() and hypotNorm() are broken wrt to NaN/inf
2014-09-02 14:49:23 +02:00
Gael Guennebaud
3eb5253ca1
Optimization: "matrix<complex> * real" did not call the special path and the real was converted to a complex. Add respective unit test to avoid future regression.
2014-09-02 14:41:14 +02:00
Gael Guennebaud
305aa1f9c5
Add examples for hnormalized and homogenous (fix bug #846 )
2014-09-02 10:47:40 +02:00
Gael Guennebaud
3e59163a24
Fix bug #850 : workaround MSVC 2008 weird compilation bug
2014-08-02 02:47:30 +02:00
Gael Guennebaud
4dd55a2958
Optimize reduxions for Homogeneous
2014-08-01 17:00:20 +02:00
Gael Guennebaud
f25338f4d7
Fix nesting of Homogenous evaluator
2014-08-01 16:49:44 +02:00
Gael Guennebaud
107bb308c3
Fix various small issues detected by gcc
2014-08-01 16:24:23 +02:00
Gael Guennebaud
c2ff44cbf3
Make assignment from general EigenBase object call evaluator, and support dense X= sparse
2014-08-01 16:23:30 +02:00
Benjamin Chrétien
c53f88297c
Fix more typos in Ref.h (doc).
2014-08-01 15:43:47 +02:00
Benjamin Chrétien
6f58a41097
Fix typos in Ref.h (doc).
2014-08-01 15:35:45 +02:00
Gael Guennebaud
2a3c3c49a1
Fix numerous nested versus nested_eval shortcomings
2014-08-01 14:48:22 +02:00
Gael Guennebaud
fc13b37c55
Make cross product uses nested/nested_eval
2014-08-01 14:47:33 +02:00
Benjamin Chrétien
db76193bc7
Fix typo in PermutationMatrix (doc).
2014-08-01 14:41:49 +02:00
Gael Guennebaud
26d2cdefd4
Fix 4x4 inverse via SSE for submatrices
2014-07-31 16:24:29 +02:00
Gael Guennebaud
db183ca7b3
Make minimal changes to make homogenous compatible with evaluators
2014-07-31 14:54:54 +02:00
Gael Guennebaud
702a3c17db
Make Transform exposes sizes: Dim+1 x Dim+1 for projective transform, and Dim x Dim+1 for all others
2014-07-31 14:54:00 +02:00
Gael Guennebaud
bae2e3327b
Call product_generic_impl by default, and remove lot of boilerplate code
2014-07-31 13:35:49 +02:00
Gael Guennebaud
cd0ff253ec
Make permutation compatible with sparse matrices
2014-07-30 15:22:50 +02:00
Gael Guennebaud
929e77192c
Various minor fixes
2014-07-30 11:39:52 +02:00
Gael Guennebaud
ba694ce8cf
add missing delete operator overloads
2014-07-30 09:32:35 +02:00
Konstantinos Margaritis
2c625ec9ba
Simplification of some Altivec constants, reuse existing constants and avoid loading from RAM esp in the case of p16uc_COMPLEX_TRANSPOSE*
2014-07-22 20:46:03 +00:00
Gael Guennebaud
d1e9f39a9a
Ambiguous call fixes for clang.
2014-07-22 18:28:19 +02:00
Gael Guennebaud
7f15f27a9e
Workaround ambiguous call of init1 with MSVC.
2014-07-22 17:01:34 +02:00
Gael Guennebaud
922694a2d1
Extend fixed-size ctor unit test and fix conversion warning.
2014-07-22 16:57:14 +02:00
Gael Guennebaud
baa77ffe38
Fix max sizes at compile time of DiagonalWrapper
2014-07-22 16:13:56 +02:00
Christoph Hertzberg
a8283e0ed2
Define EIGEN_TRY, EIGEN_CATCH, EIGEN_THROW as suggested by Moritz Klammer.
...
Make it possible to run unit-tests with exceptions disabled via EIGEN_TEST_NO_EXCEPTIONS flag.
Enhanced ctorleak unit-test
2014-07-22 13:16:44 +02:00
Gael Guennebaud
4aac87251f
Re-enable a couple of unit tests with evaluators.
2014-07-22 12:54:03 +02:00
Gael Guennebaud
6daa6a0d16
Refactor TriangularView to handle both dense and sparse objects. Introduce a glu_shape<S1,S2> helper to assemble sparse/dense shapes with triagular/seladjoint views.
2014-07-22 11:35:56 +02:00
Gael Guennebaud
2a251ffab0
Implement evaluator for sparse-selfadjoint products
2014-07-22 09:32:40 +02:00
Gael Guennebaud
9b729f93a1
Resizing is done by call_assignment_noalias, so no need to perform it when dealing with aliasing.
2014-07-21 11:46:47 +02:00
Gael Guennebaud
50eef6dfc3
Compilation fixes
2014-07-20 15:16:34 +02:00
Gael Guennebaud
62f332fc04
Make sure we evaluate into temporaries matching evaluator storage order requirements
2014-07-19 15:19:10 +02:00
Gael Guennebaud
3eba5e1101
Implement evaluator for sparse outer products
2014-07-19 14:55:56 +02:00
Moritz Klammler
529e6cb552
Applied changes suggested by Christoph Hertzberg to c'tor leak fix.
...
- Enclose exception handling in '#ifdef EIGEN_EXCEPTIONS'.
- Use an object counter to demonstrate the bug more readily.
2014-07-18 23:19:56 +02:00
Gael Guennebaud
a325d1cb1e
merge with default branch
2014-07-18 11:02:22 +02:00
Gael Guennebaud
da62eb22e4
bug #843 : fix jacobisvd for complexes and extend respective unit test to chack with random tricky matrices
2014-07-17 17:09:15 +02:00
Gael Guennebaud
77af4cc3c9
bug #397 : add a warning for 64 to 32 bit integer conversion and fix many of these warning by splitting the index type used for storage and as size/coefficient indexes in PermutationMatrix and Transpositions.
2014-07-17 13:34:26 +02:00
Gael Guennebaud
a53f2b0e43
bug #838 : add unit test for fill-in in sparse outer product and fix abusive fill-in.
2014-07-16 17:00:54 +02:00
Gael Guennebaud
338d2ec42b
bug #826 : fix is_convertible for MSVC and add minimalistic unit test for is_convertible
2014-07-16 13:17:06 +02:00
Konstantinos Margaritis
0a945687b7
Added HasDiv=1 to Altivec PacketMath.h, now vectorization_logic test passes.
...
Added comments to the constants, indicative of the actual values
2014-07-15 11:02:51 +00:00
Gael Guennebaud
3c7686630d
merge with default branch
2014-07-15 10:55:03 +02:00
Gael Guennebaud
a20e2462bf
Fix bug #838 : detect outer products from either the lhs or rhs
2014-07-11 17:15:26 +02:00
Gael Guennebaud
c0f76ce2cf
Fix bug #838 : fix dense * sparse and sparse * dense outer products
2014-07-11 16:25:36 +02:00
Gael Guennebaud
df604e4f49
Fix inner iterator on an outer-vector
2014-07-11 16:24:49 +02:00
Gael Guennebaud
296cb40161
merge with default branch
2014-07-10 22:04:45 +02:00
Christoph Hertzberg
d1460d9278
stride must be DenseIndex not int
2014-07-10 16:23:20 +02:00
Christoph Hertzberg
cf7cf7b490
Backed out of changeset 6089:f27f55bee3efc2cafd01cb07d3faadf7eb490f66
...
Unfortunately this breaks things at other places
2014-07-10 16:12:13 +02:00
Christoph Hertzberg
f27f55bee3
Make MatrixBase::makeHouseholder resize its output vector if it is zero
2014-07-10 14:59:18 +02:00
Chen-Pang He
1967e7f2f3
Fix bug #839
2014-07-09 03:32:32 +08:00
Gael Guennebaud
77d57cd681
bug #808 : fix implicit conversions from int/longint to float/double
2014-07-08 19:07:58 +02:00
Gael Guennebaud
e3557e8dd2
bug #808 : use double instead of float for the increasing size ratio in CompressedStorage::resize
...
(grafted from 0e0ae40084
)
2014-07-08 18:58:41 +02:00
Gael Guennebaud
5c4733f6e4
Fix bug #809 : unused variable warning
2014-07-08 18:38:34 +02:00
Gael Guennebaud
b47ef1431f
Fix many long to int implicit conversions
2014-07-08 16:47:11 +02:00
Christoph Hertzberg
e25e674852
bug #837 : Always re-align the result of EIGEN_ALLOCA.
2014-07-08 13:57:26 +02:00
Gael Guennebaud
4b6b76463a
Merged in jdh8/eigen (pull request PR-71)
...
Find benchmark opponents more aggressively
2014-07-08 13:13:16 +02:00
Gael Guennebaud
0dfb73d46a
Fix LDLT with semi-definite complex matrices: owing to round-off errors, the diagonal was not real. Also exploit the fact that the diagonal is real in the rest of LDLT
2014-07-08 10:04:27 +02:00
Chen-Pang He
b9ee880f07
chmod -x Eigen/src/Core/GenericPacketMath.h
2014-07-07 21:28:00 +08:00
Chen-Pang He
2bf58316ee
Fix dox at internal::tridiagonal_qr_step
2014-07-06 13:49:43 +08:00
Moritz Klammler
58687aa5e6
Avoid memory leak when constructor of user-defined type throws exception.
...
The added check `ctorleak.cpp` demonstrates how the leak can be reproduced.
The test appears to pass but it is leaking the storage of the (not created)
matrix. I don't know how to make this test fail in the existing test suite but
you can run it through Valgrind (or another debugger) to verify the leak.
$ ./check.sh ctorleak && valgrind --leak-check=full ./test/ctorleak
This patch fixes this leak by adding some try-catch-delete-rethrow blocks to
`Eigen/src/Core/util/Memory.h`.
2014-07-06 06:58:13 +02:00
Gael Guennebaud
339f14b8d1
bug #826 : document caveats in 1x1 and 2x1 constructors.
2014-07-21 13:43:48 +02:00
Gael Guennebaud
d4cc1bdc7f
Make the ordering method of SimplicialL[D]LT user configurable.
2014-07-20 14:22:58 +02:00
Gael Guennebaud
8e19027130
bug #826 : fix 64 to 32 bits conversion warning when calling Matrix<int,1,1>(long)
2014-07-20 14:03:22 +02:00
Chen-Pang He
7a915f6846
Move Doxygen-only stuff to *.dox
2014-07-05 22:41:58 +08:00
Chen-Pang He
1a817d3b70
Document internal namespace
2014-07-05 21:50:05 +08:00
Chen-Pang He
8ee38d2db6
Fix dox for namespaces
2014-07-05 21:48:48 +08:00
Christoph Hertzberg
f365380496
Fix regression introduced by 3117036b80
...
:
Matrix<Scalar,1,1>(int) did not compile if Scalar is not constructible from int. Now this falls back to the (Index size) constructor.
2014-07-04 12:52:55 +02:00
Christoph Hertzberg
3a9f9faada
Fix unused typedef warning
2014-07-04 12:48:24 +02:00
Gael Guennebaud
998455a570
LDLT is not rank-revealing, so we should not attempt to use the biggest diagonal elements as thresholds.
2014-07-02 23:04:46 +02:00
Gael Guennebaud
0a8e4712d1
Do not attempt to include <intrin.h> on Windows CE
2014-07-02 16:13:05 +02:00
Gael Guennebaud
61b88d2feb
merge with default branch
2014-07-02 09:35:37 +02:00
Gael Guennebaud
bf334b8ae5
Fix regeression in bicgstab: the threshold used to detect the need for a restart was much too large.
2014-07-01 22:29:04 +02:00
Gael Guennebaud
8f4cdbbc8f
Fix typo in dense * diagonal evaluator.
2014-07-01 18:04:30 +02:00
Gael Guennebaud
7390af91b6
Implement evaluators for sparse*dense products
2014-07-01 17:53:18 +02:00
Gael Guennebaud
1e6f53e070
Use DiagonalShape as the storage kind of DiagonalBase<>.
2014-07-01 17:52:58 +02:00
Gael Guennebaud
6f846ef9c6
Split StorageKind promotion into two helpers: one for products, and one for coefficient-wise operations.
2014-07-01 17:51:53 +02:00
Christoph Hertzberg
324e7e8fc9
Removed the deprecated EIGEN2_SUPPORT, as previously announced. A compilation error is raised, if this compile-switch is defined. The documentation references to the corresponding pages from Eigen3.2 now. Also, the Eigen2 testsuite has been removed.
2014-07-01 16:58:11 +02:00
Gael Guennebaud
3c63446507
Update copyright dates
2014-07-01 13:27:35 +02:00
Gael Guennebaud
746d2db6ed
Implement evaluators for sparse * sparse with auto pruning.
2014-07-01 13:18:56 +02:00
Gael Guennebaud
441f97b2df
Implement evaluators for sparse * sparse products
2014-07-01 11:50:20 +02:00
Gael Guennebaud
0ad7a644df
Implement nonZeros() for Transpose<sparse>
2014-07-01 11:49:46 +02:00
Gael Guennebaud
7ffd55c980
Do not bypass aliasing in sparse e assignments
2014-07-01 11:48:49 +02:00
Gael Guennebaud
75e574275c
Fix bug #836 : extend SparseQR to support more columns than rows.
2014-07-01 10:24:46 +02:00
Gael Guennebaud
c401167712
Fix double constructions of the nested CwiseBinaryOp evaluator in sparse*diagonal product iterator.
2014-06-27 16:41:45 +02:00
Gael Guennebaud
73e686c6a4
Implement evaluators for sparse times diagonal products.
2014-06-27 15:54:44 +02:00
Gael Guennebaud
ae039dde13
Add a NoPreferredStorageOrderBit flag for expression having no preferred storage order.
...
It is currently only used in Product.
2014-06-27 15:53:51 +02:00
Gael Guennebaud
f0648f8860
Implement evaluator for sparse views.
2014-06-26 13:52:19 +02:00
Gael Guennebaud
54607665ab
Fix inverse evaluator
2014-06-25 23:44:59 +02:00
Gael Guennebaud
a7bd4c455a
Update sparse reduxions and sparse-vectors to evaluators.
2014-06-25 17:24:43 +02:00
Gael Guennebaud
b868bfb84a
Make operator=(EigenBase<>) uses the new assignment mechanism and introduce a generic EigenBase to EigenBase assignment kind based on the previous evalTo mechanism.
2014-06-25 17:23:52 +02:00
Gael Guennebaud
3b19b466a7
Generalize static assertions on matching sizes to avoid the need for SizeAtCompileTime
2014-06-25 17:22:12 +02:00
Gael Guennebaud
199ac3f2e7
Implement evaluators for sparse coeff-wise views
2014-06-25 17:21:04 +02:00
Gael Guennebaud
e3ba5329ff
Implement evaluators for sparse Block.
2014-06-25 09:58:26 +02:00
Gael Guennebaud
17f119689e
implement evaluator for SparseVector
2014-06-25 09:58:03 +02:00
Christoph Hertzberg
755be9016a
Workaround clang error introduced by 3117036b80
...
:
"template argument for non-type template parameter is treated as function type 'bool (bool)'"
2014-06-23 22:33:36 +02:00
Christoph Hertzberg
3117036b80
Fix bug #826 : Allow initialization of 1x1 Arrays/Matrices by passing a value.
2014-06-23 11:15:42 +02:00
Christoph Hertzberg
1c3843bf86
Fix bug #729 : Use alloca if it is defined
2014-06-23 11:04:12 +02:00
Gael Guennebaud
3849cc65ee
Implement binaryop and transpose evaluators for sparse matrices
2014-06-23 10:40:03 +02:00
Gael Guennebaud
7fa87a8b12
Backport changes from old to new expression engines
2014-06-20 16:17:57 +02:00
Gael Guennebaud
b29b81a1f4
merge with default branch
2014-06-20 15:55:44 +02:00
Gael Guennebaud
47585c8ab2
merge
2014-06-20 15:49:07 +02:00
Gael Guennebaud
c415b627a7
Started to move the SparseCore module to evaluators: implemented assignment and cwise-unary evaluator
2014-06-20 15:42:13 +02:00
Gael Guennebaud
78bb808337
1- Introduce sub-evaluator types for unary, binary, product, and map expressions to ease specializing them.
...
2- Remove a lot of code which should not be there with evaluators, in particular coeff/packet methods implemented in the expressions.
2014-06-20 15:39:38 +02:00
Gael Guennebaud
963d338922
Fix bug #827 : improve accuracy of quaternion to angle-axis conversion
2014-06-20 15:09:42 +02:00
Gael Guennebaud
98ef44fe55
Add assertion and warning on the requirements of SparseQR and COLAMDOrdering
2014-06-20 14:43:47 +02:00
Jitse Niesen
55453c51e8
Add documentation and very simple test for array atan().
2014-06-19 15:07:42 +01:00
Roger Martin
eb49100de9
Add component-wise atan() function (see bug #80 ).
2014-06-19 14:55:14 +01:00
Mark Borgerding
afb1a8c124
fixed warning: -Wunused-local-typedefs
2014-06-17 18:25:56 -04:00
Gael Guennebaud
c06ec0f464
Fix Jacobi preconditioner with zero diagonal entries
2014-06-17 23:47:30 +02:00
Benoit Steiner
4304c73542
Pulled latest updates from the Eigen main trunk.
2014-06-10 10:23:32 -07:00
Benoit Steiner
8c8ae2d819
Fixed a typo
2014-06-07 11:24:38 -07:00
Benoit Steiner
29aebf96e6
Created the pblend packet primitive and implemented it using SSE and AVX instructions.
2014-06-06 20:18:44 -07:00
Gael Guennebaud
ed37c44765
Enable LinearAccessBit in Block expression for inner-panels
2014-06-06 11:02:20 +02:00
Gael Guennebaud
0f1e321dd4
Fic bug #819 : include path of details.h
2014-06-04 11:58:01 +02:00
Jitse Niesen
eb56461ac2
Fix doc'n of FullPivLU re permutation matrices (bug #815 ).
2014-05-31 23:05:18 +01:00
Christoph Hertzberg
9aa3dc4e21
Merged in benoitsteiner/eigen-fixes (pull request PR-62)
...
Made it possible to call the assignment operator on an Eigen::Block from a CUDA kernel.
2014-05-08 17:06:28 +02:00
Benoit Steiner
881aab14b4
Made it possible to call the assignment operator on an Eigen::Block from a CUDA kernel.
2014-05-07 13:34:46 -07:00
Christoph Hertzberg
9217de8bf2
Missed to remove IACA_END in previous commit
2014-05-05 15:10:18 +02:00
Christoph Hertzberg
84cb1d72b8
Removed IACA-defines
...
This caused redefinition warnings if IACA headers were included from elsewhere. For a clean solution we should define our own EIGEN_IACA_* macros
2014-05-05 15:06:37 +02:00
Christoph Hertzberg
b4beba72a2
Fix bug #807 : Missing scalar type cast in umeyama()
2014-05-05 14:23:52 +02:00
Christoph Hertzberg
b5e3d76aa5
Fixed bug #806 : Missing scalar type cast in Quaternion::setFromTwoVectors()
2014-05-05 14:22:27 +02:00
Benjamin Chretien
0b7f95a03f
Fix typo in SparseMatrix assert.
2014-05-03 12:41:37 +02:00
Gael Guennebaud
d67aa1549b
Add missing add_subdirectory directive
2014-05-03 10:46:11 +02:00
Gael Guennebaud
07986189b7
Fix bug #803 : avoid char* to int* conversion
2014-05-01 23:03:54 +02:00
Benoit Steiner
c0f2cb016e
Extended support for Tensors:
...
* Added ability to map a region of the memory to a tensor
* Added basic support for unary and binary coefficient wise expressions, such as addition or square root
* Provided an emulation layer to make it possible to compile the code with compilers (such as nvcc) that don't support cxx11.
2014-04-28 10:32:27 -07:00
Gael Guennebaud
e7ef26fa44
TRMM: Make sure we have enough memory in rhs block to enforce alignment.
2014-04-25 23:36:22 +02:00
Gael Guennebaud
450d0c3de0
Make sure that calls to broadcast4 are 16 bytes aligned
2014-04-25 22:25:48 +02:00
Gael Guennebaud
f9d2f3903e
Product kernel: skip loop on columns if there is no remaining rows
2014-04-25 16:54:30 +02:00
Gael Guennebaud
6f64b0b487
Fix sizeof unit test
2014-04-25 14:05:54 +02:00
Gael Guennebaud
c20e3641de
Fix for mixed products
2014-04-25 13:22:34 +02:00
Gael Guennebaud
2dbfd83424
Implement pbroadcast4 on altivec
2014-04-25 02:46:57 -07:00
Gael Guennebaud
c9788d55b9
Disable 3pX4 kernel on Altivec: despite this platform has 32 registers, this version seems significantly slower.
2014-04-25 11:48:22 +02:00
Gael Guennebaud
4def7b1fa5
Fix ptranspose overload prototypes for NEON
2014-04-25 11:15:13 +02:00
Gael Guennebaud
c79bd4b64b
Minor optimizations in product kernel:
...
- use pbroadcast4 (helpful when AVX is not available)
- process all remaining rows at once (significant speedup for small matrices)
2014-04-25 11:06:03 +02:00
Gael Guennebaud
3d8d0f6269
Enable vectorization of pack_rhs with a column-major RHS.
...
Rename and generalize Kernel<*> to PacketBlock<*,N>.
2014-04-25 10:56:18 +02:00
Gael Guennebaud
b0e19db1cf
Enable fused madd for Altivec
2014-04-24 23:17:18 +02:00
Gael Guennebaud
8d85ce88e1
Implement ptranspose on altivec and fix pgather/pscatter
2014-04-24 05:47:53 -07:00
Benoit Steiner
4eb92e5647
Fixed the NEON implementation of predux_max<Packet4i>.
2014-04-23 18:23:07 -07:00
Benoit Steiner
ccb4dec719
Created a NEON version of the ptranspose packet primitives
2014-04-23 18:22:10 -07:00
Gael Guennebaud
82b09fcb91
Add Altivec implementation of pgather/pscatter (not tested)
2014-04-23 13:09:26 +02:00
Gael Guennebaud
ecbd67a15a
Fix EIGEN_MAKE_UNALIGNED_ARRAY_ASSERT macro
2014-04-22 17:03:57 +02:00
Gael Guennebaud
934ce93886
merge with default branch
2014-04-22 17:00:38 +02:00
Gael Guennebaud
5c5231ab71
Workaround gcc's default ABI not being able to distinghish between vector types of different sizes.
2014-04-22 16:03:19 +02:00
Gael Guennebaud
2606abed53
Fix 128bit packet size assumptions in unit tests.
2014-04-18 21:14:40 +02:00
Gael Guennebaud
a7d20038df
Fix alignment assertion.
2014-04-18 17:06:31 +02:00
Gael Guennebaud
3454b4e5f1
Fix calls to lazy products (lazy product does not like matrices with 0 length)
2014-04-18 17:06:03 +02:00
Gael Guennebaud
94684721bd
Smarter block size computation
2014-04-18 15:35:34 +02:00
Gael Guennebaud
1388f4f9fd
Fix typo (was working with clang\!)
2014-04-18 11:43:13 +02:00
Gael Guennebaud
6d665d446b
Fixes for fixed sizes and non vectorizable types
2014-04-17 23:26:34 +02:00
Gael Guennebaud
2c3c95990d
merge
2014-04-17 22:50:49 +02:00
Benoit Steiner
6d6df90c9a
Implemented the pgather/pscatter packet primitives for the arm/NEON architecture
2014-04-17 12:28:01 -07:00
Gael Guennebaud
9746396d1b
Optimize AVX pset1 for complexes and ploaddup
2014-04-17 20:51:04 +02:00
Gael Guennebaud
11fbdcbc38
Fix and optimize mixed products
2014-04-17 16:04:30 +02:00
Gael Guennebaud
0fa8290366
Optimize ploaddup for AVX
2014-04-17 16:02:27 +02:00
Gael Guennebaud
d936ddc3d1
Fallback to lazy products for very small ones.
2014-04-16 23:15:42 +02:00
Gael Guennebaud
de8336a9bc
Enable alloca on MAC OSX
2014-04-16 23:14:58 +02:00
Jitse Niesen
ffc995c9e4
Implement evaluator<ReturnByValue>.
...
All supported tests pass apart from Sparse and Geometry,
except test in adjoint_4 that a = a.transpose() raises an assert.
2014-04-16 18:16:36 +01:00
Gael Guennebaud
d5a795f673
New gebp kernel handling up to 3 packets x 4 register-level blocks. Huge speeup on Haswell.
...
This changeset also introduce new vector functions: ploadquad and predux4.
2014-04-16 17:05:11 +02:00
Jitse Niesen
b30706bd5c
Fix typo in Inverse.h
2014-04-15 22:51:46 +01:00
Mark Borgerding
e0dbb68c2f
Check IMKL version for compatibility with Eigen
2014-04-15 13:57:03 -04:00
Jitse Niesen
59f5f155c2
Port products with permutation matrices to evaluators.
2014-04-15 15:21:38 +01:00
Gael Guennebaud
3c66bb136b
bug #793 : detect NaN and INF in EigenSolver instead of aborting with an assert.
2014-04-14 22:00:27 +02:00
Gael Guennebaud
7098e6d976
Add isfinite overload for complexes.
2014-04-14 21:57:49 +02:00
Benoit Steiner
feaf7c7e6d
Optimized SSE unaligned loads and stores when compiling a 64bit target with a recent version of gcc (ie gcc 4.8).
2014-04-14 10:44:17 -07:00
Gael Guennebaud
148acf8e4f
bug #790 : fix overflow in real_2x2_jacobi_svd
2014-04-14 13:52:16 +02:00
Gael Guennebaud
0587db8bf5
bug #793 : fix overflow in EigenSolver and add respective regression unit test
2014-04-14 11:43:08 +02:00
Benoit Steiner
1b333c89c9
Updated my previous fix to avoid introducing a compilation warning on ARM platforms.
2014-04-10 17:43:13 -07:00