Gael Guennebaud
a2a2c3c865
bug #1509 : fix computeInverseWithCheck for complexes
...
(grafted from 2f833b1c64
)
2018-04-04 15:47:46 +02:00
Gael Guennebaud
170914dbbc
Fix compilation of product with inverse transpositions (e.g., mat * Transpositions().inverse())
...
(grafted from a1292395d6
)
2018-04-03 23:06:44 +02:00
Gael Guennebaud
273738ba6f
bug #1516 : add assertion for out-of-range diagonal index in MatrixBase::diagonal(i)
...
(grafted from 8d0ffe3655
)
2018-04-03 16:15:43 +02:00
Gael Guennebaud
1724dae8b8
Add static assertion for fixed sizes Ref<>
...
(grafted from f7d17689a5
)
2018-03-09 10:11:13 +01:00
Gael Guennebaud
190b46dd1f
Implement better static assertion checking to make sure that the first assertion is a static one and not a runtime one.
...
(grafted from f6be7289d7
)
2018-03-09 10:00:51 +01:00
Gael Guennebaud
74daf12e52
Add static assertion on selfadjoint-view's UpLo parameter.
...
(grafted from d820ab9edc
)
2018-03-09 09:33:43 +01:00
Gael Guennebaud
c24844195d
bug #1517 : fix triangular product with unit diagonal and nested scaling factor: (s*A).triangularView<UpperUnit>()*B
...
(grafted from 5deeb19e7b
)
2018-02-09 16:52:35 +01:00
Gael Guennebaud
15752027ec
Fix linear indexing in generic block evaluation.
...
(grafted from 12efc7d41b
)
2018-02-09 16:45:49 +01:00
Gael Guennebaud
33b972d8b3
Fix compilation of stableNorm with some expressions as input
...
(grafted from 06bf1047f9
)
2017-12-15 15:15:37 +01:00
Gael Guennebaud
8d2ac85797
fix unit test
...
(grafted from 26a2c6fc16
)
2017-12-14 15:11:04 +01:00
Gael Guennebaud
9c9e90f6db
Fix packet and alignment propagation logic of Block<Xpr> expressions. In particular, (A+B).col(j) lost vectorisation.
...
(grafted from 9c3aed9d48
)
2017-12-14 14:24:33 +01:00
Gael Guennebaud
c20043c8fd
bug #1479 : fix failure detection in LDLT
...
(grafted from 672bdc126b
)
2017-11-16 17:55:24 +01:00
Gael Guennebaud
4ead16cdd6
Fix mixing types in sparse matrix products.
...
(grafted from 80142362ac
)
2017-09-02 22:50:20 +02:00
Gael Guennebaud
5d40715db6
Handle min/max/inf/etc issue in cuda_fp16.h directly in test/main.h
...
(grafted from 304ef29571
)
2017-08-24 11:26:41 +02:00
Gael Guennebaud
e7c065ec71
bug #1462 : remove all occurences of the deprecated __CUDACC_VER__ macro by introducing EIGEN_CUDACC_VER
2017-08-24 11:06:47 +02:00
Gael Guennebaud
a8d2459f8e
bug #1449 : fix redux_3 unit test
...
(grafted from bc4dae9aeb
)
2017-08-22 15:59:08 +02:00
Gael Guennebaud
9a266e5118
bug #1461 : fix compilation of Map<const Quaternion>::x()
...
(grafted from bc91a2df8b
)
2017-08-22 15:10:42 +02:00
Gael Guennebaud
1ca9072b51
Gub 1453: fix Map with non-default inner-stride but no outer-stride.
...
(grafted from e27f17bf5c
)
2017-08-22 13:27:37 +02:00
Gael Guennebaud
782fd81dee
Disable BDCSVD preallocation check.
...
(grafted from d580a90c9a
)
2017-07-20 10:03:54 +02:00
Gael Guennebaud
a4ab0c6b6a
Fix compilation with some compilers
...
(grafted from a4fd4233ad
)
2017-06-09 23:02:02 +02:00
Gael Guennebaud
7a0a9581b5
bug #1405 : enable StrictlyLower/StrictlyUpper triangularView as the destination of matrix*matrix products.
...
(grafted from ba5cab576a
)
2017-06-09 14:38:04 +02:00
Gael Guennebaud
b69e465d7a
bug #1410 : fix lvalue propagation of Array/Matrix-Wrapper with a const nested expression.
...
(grafted from fb1ee04087
)
2017-06-09 13:13:03 +02:00
Gael Guennebaud
1ac703f641
bug #1424 : add numext::abs specialization for unsigned integer types.
2017-06-09 11:53:49 +02:00
Gael Guennebaud
2c32368642
Add missing std::numeric_limits specialization for half, and complete NumTraits<half>
...
(grafted from d588822779
)
2017-06-09 11:51:53 +02:00
Gael Guennebaud
db40309e70
bug #1423 : fix LSCG\'s Jacobi preconditioner for row-major matrices.
...
(grafted from 682b2ef17e
)
2017-06-08 15:06:27 +02:00
Gael Guennebaud
e36c1f7501
bug #1435 : fix aliasing issue in exressions like: A = C - B*A;
...
(grafted from 4bbc320468
)
2017-06-08 12:55:25 +02:00
Gael Guennebaud
9f25cdf4f6
Fix dense * sparse-selfadjoint-view product.
...
(grafted from 891ac03483
)
2017-04-25 13:58:10 +02:00
Gael Guennebaud
c753fe7cc3
Improve cmake scripts for Pastix and BLAS detection.
...
(grafted from 0f83aeb6b2
)
2017-04-14 10:22:12 +02:00
Gael Guennebaud
e1385337ff
bug #1395 : fix the use of compile-time vectors as inputs of JacobiSVD.
...
(grafted from 6572825703
)
2017-02-20 13:44:37 +01:00
Gael Guennebaud
c3b658b2c9
Fix tracking of temporaries in unit tests
...
(grafted from deefa54a54
)
2017-02-19 10:32:54 +01:00
Gael Guennebaud
ad3e4d1a49
bug #1393 : enable Matrix/Array explicit ctor from types with conversion operators (was ok with 3.2)
...
(grafted from 582b5e39bf
)
2017-02-17 14:10:57 +01:00
Gael Guennebaud
2ca3eb8407
bug #1392 : fix #include <Eigen/Sparse> with mpl2-only
...
(grafted from c16ee72b20
)
2017-02-11 10:35:01 +01:00
Gael Guennebaud
6975534cb2
bug #478 : fix regression in the eigen decomposition of zero matrices.
...
(grafted from 53026d29d4
)
2017-01-31 14:22:42 +01:00
Gael Guennebaud
e0548e9ff3
bug #1384 : fix evaluation of "sparse/scalar" that used the wrong evaluation path.
...
(grafted from c86911ac73
)
2017-01-30 13:38:24 +01:00
Gael Guennebaud
c289ef20f3
bug #1383 : fix regression in LinSpaced for integers and high<low
...
(grafted from 850ca961d2
)
2017-01-25 18:13:53 +01:00
Gael Guennebaud
b8cf157e8c
bug #1381 : fix sparse.diagonal() used as a rvalue.
...
The problem was that is "sparse" is not const, then sparse.diagonal() must have the
LValueBit flag meaning that sparse.diagonal().coeff(i) must returns a const reference,
const Scalar&. However, sparse::coeff() cannot returns a reference for a non-existing
zero coefficient. The trick is to return a reference to a local member of
evaluator<SparseMatrix>.
(grafted from 296d24be4d
)
2017-01-25 17:39:01 +01:00
Gael Guennebaud
b4d2b404b0
bug #1383 : Fix regression from 3.2 with LinSpaced(n,0,n-1) with n==0.
...
(grafted from d06a48959a
)
2017-01-25 15:27:13 +01:00
Gael Guennebaud
35bf99c63e
bug #1376 : add missing assertion on size mismatch with compound assignment operators (e.g., mat += mat.col(j))
...
(grafted from ba3f977946
)
2017-01-23 22:06:08 +01:00
Gael Guennebaud
9d83411cc4
bug #1379 : fix compilation in sparse*diagonal*dense with openmp
...
(grafted from 0fe278f7be
)
2017-01-21 23:27:01 +01:00
Gael Guennebaud
0eaff8fdf2
Defer set-to-zero in triangular = product so that no aliasing issue occur in the common:
...
A.triangularView() = B*A.sefladjointView()*B.adjoint()
case that used to work in 3.2.
(grafted from 655ba783f8
)
2017-01-17 18:03:35 +01:00
Gael Guennebaud
1d1686c62b
Convert integers to real numbers when computing relative L2 error
...
(grafted from f3f026c9aa
)
2017-01-05 13:36:08 +01:00
Gael Guennebaud
5f586c2bd0
Add missing .outer() member to iterators of evaluators of cwise sparse binary expression
...
(grafted from 7136267461
)
2016-12-27 16:34:30 +01:00
Gael Guennebaud
0fddbf3dc7
Add transpose, adjoint, conjugate methods to SelfAdjointView (useful to write generic code)
...
(grafted from 684cfc762d
)
2016-12-20 16:33:53 +01:00
Gael Guennebaud
eda635bd58
Make sure that HyperPlane::transform manitains a unit normal vector in the Affine case.
...
(grafted from f5d644b415
)
2016-12-20 09:35:00 +01:00
Gael Guennebaud
0bcef9557d
bug #1358 : fix compilation for sparse += sparse.selfadjointView();
...
(grafted from 11b492e993
)
2016-12-14 17:53:47 +01:00
Gael Guennebaud
2b3c876b2a
bug #1359 : fix compilation of col_major_sparse.row() *= scalar
...
(used to work in 3.2.9 though the expression is not really writable)
(grafted from e67397bfa7
)
2016-12-14 17:05:26 +01:00
Gael Guennebaud
59187285e1
bug #1361 : fix compilation issue in mat=perm.inverse()
...
(grafted from c817ce3ba3
)
2016-12-13 23:10:27 +01:00
Gael Guennebaud
52a7386aef
Fix misleading-indentation warnings.
...
(grafted from 037b46762d
)
2016-12-01 16:05:42 +01:00
Gael Guennebaud
6e4a664c42
Fix a performance regression in (mat*mat)*vec for which mat*mat was evaluated multiple times.
...
(grafted from c927af60ed
)
2016-11-30 17:59:13 +01:00
Gael Guennebaud
4d89ec8a00
Fix regression in assigment of sparse block to spasre block.
...
(grafted from 6a84246a6a
)
2016-11-21 21:46:42 +01:00
Gael Guennebaud
aa3c761002
bug #1343 : fix compilation regression in mat+=selfadjoint_view.
...
Generic EigenBase2EigenBase assignment was incomplete.
(grafted from 8193ffb3d3
)
2016-11-18 10:17:34 +01:00
Gael Guennebaud
94f2cfc9c7
bug #1343 : fix compilation regression in array = matrix_product
...
(grafted from cebff7e3a2
)
2016-11-18 10:09:33 +01:00
Konstantinos Margaritis
4a13d79df6
replace sizeof(Packet) with PacketSize else it breaks for ZVector.Packet4f
...
(grafted from a1d5c503fa
)
2016-11-17 13:27:45 -05:00
Gael Guennebaud
89abc6806d
bug #426 : move operator && and || to MatrixBase and SparseMatrixBase.
...
(grafted from 2e334f5da0
)
2016-11-14 18:47:02 +01:00
Gael Guennebaud
b4ddafcfac
Fix regression in SparseMatrix::ReverseInnerIterator
...
(grafted from eedb87f4ba
)
2016-11-14 14:05:53 +01:00
Gael Guennebaud
73985ead27
Extend unit test to check sparse solvers with a SparseVector as the rhs and result.
2016-11-06 20:29:57 +01:00
Benoit Steiner
c80587c92b
Merged eigen/eigen into default
2016-11-03 03:55:11 -07:00
Gael Guennebaud
a07bb428df
bug #1004 : improve accuracy of LinSpaced for abs(low) >> abs(high).
2016-11-02 11:34:38 +01:00
Gael Guennebaud
598de8b193
Add pinsertfirst function and implement pinsertlast for complex on SSE/AVX.
2016-11-02 10:38:13 +01:00
Gael Guennebaud
3ecb343dc3
Fix regression in X = (X*X.transpose())/s with X rectangular by deferring resizing of the destination after the creation of the evaluator of the source expression.
2016-10-26 22:50:41 +02:00
Gael Guennebaud
58146be99b
bug #1004 : one more rewrite of LinSpaced for floating point numbers to guarantee both interpolation and monotonicity.
...
This version simply does low+i*step plus a branch to return high if i==size-1.
Vectorization is accomplished with a branch and the help of pinsertlast.
Some quick benchmark revealed that the overhead is really marginal, even when filling small vectors.
2016-10-25 16:53:09 +02:00
Gael Guennebaud
13fc18d3a2
Add a pinsertlast function replacing the last entry of a packet by a scalar.
...
(useful to vectorize LinSpaced)
2016-10-25 16:48:49 +02:00
Gael Guennebaud
b027d7a8cf
bug #1004 : remove the inaccurate "sequential" path for LinSpaced, mark respective function as deprecated, and enforce strict interpolation of the higher range using a correction term.
...
Now, even with floating point precision, both the 'low' and 'high' bounds are exactly reproduced at i=0 and i=size-1 respectively.
2016-10-24 20:27:21 +02:00
Gael Guennebaud
53c77061f0
bug #698 : rewrite LinSpaced for integer scalar types to avoid overflow and guarantee an even spacing when possible.
...
Otherwise, the "high" bound is implicitly lowered to the largest value allowing for an even distribution.
This changeset also disable vectorization for this integer path.
2016-10-24 15:50:27 +02:00
Gael Guennebaud
e8e56c7642
Add unit test for overflow in LinSpaced
2016-10-24 15:43:51 +02:00
Benoit Steiner
78d2926508
Merged eigen/eigen into default
2016-10-12 13:46:29 -07:00
Gael Guennebaud
f939c351cb
Fix SPQR for rectangular matrices
2016-10-12 22:39:33 +02:00
Gael Guennebaud
5c366fe1d7
Merged in rmlarsen/eigen (pull request PR-230)
...
Fix a bug in psqrt for SSE and AVX when EIGEN_FAST_MATH=1
2016-10-12 16:30:51 +00:00
Gael Guennebaud
4860727ac2
Remove static qualifier of free-functions (inline is enough and this helps ICC to find the right overload)
2016-10-07 09:21:12 +02:00
Benoit Steiner
507b661106
Renamed predux_half into predux_downto4
2016-10-06 17:57:04 -07:00
Gael Guennebaud
80b5133789
Fix compilation of qr.inverse() for column and full pivoting variants.
2016-10-06 09:55:50 +02:00
Benoit Steiner
78b569f685
Merged latest updates from trunk
2016-10-05 18:48:55 -07:00
Rasmus Munk Larsen
3ed67cb0bb
Fix a bug in the implementation of Carmack's fast sqrt algorithm in Eigen (enabled by EIGEN_FAST_MATH), which causes the vectorized parts of the computation to return -0.0 instead of NaN for negative arguments.
...
Benchmark speed in Giga-sqrts/s
Intel(R) Xeon(R) CPU E5-1650 v3 @ 3.50GHz
-----------------------------------------
SSE AVX
Fast=1 2.529G 4.380G
Fast=0 1.944G 1.898G
Fast=1 fixed 2.214G 3.739G
This table illustrates the worst case in terms speed impact: It was measured by repeatedly computing the sqrt of an n=4096 float vector that fits in L1 cache. For large vectors the operation becomes memory bound and the differences between the different versions almost negligible.
2016-10-04 14:22:56 -07:00
Benoit Steiner
616a7a1912
Improved support for compiling CUDA code with clang as the host compiler
2016-10-03 17:09:33 -07:00
Gael Guennebaud
8b84801f7f
bug #1310 : workaround a compilation regression from 3.2 regarding triangular * homogeneous
2016-09-30 22:49:59 +02:00
Gael Guennebaud
33500050c3
bug #1308 : fix compilation of some small products involving nullary-expressions.
2016-09-29 09:40:44 +02:00
Gael Guennebaud
779774f98c
bug #1311 : fix alignment logic in some cases of (scalar*small).lazyProduct(small)
2016-09-26 23:53:40 +02:00
Gael Guennebaud
48dfe98abd
bug #1308 : fix compilation of vector * rowvector::nullary.
2016-09-25 14:54:35 +02:00
Gael Guennebaud
86caba838d
bug #1304 : fix Projective * scaling and Projective *= scaling
2016-09-23 13:41:21 +02:00
Gael Guennebaud
66cbabafed
Add a note regarding gcc bug #72867
2016-09-22 11:18:52 +02:00
Gael Guennebaud
aecc51a3e8
fix typo
2016-09-21 21:53:00 +02:00
Gael Guennebaud
1fc3a21ed0
Disable a failure test if extended double precision is in use (x87)
2016-09-21 20:09:07 +02:00
Gael Guennebaud
5269d11935
Fix compilation if ICC.
2016-09-21 17:08:51 +02:00
Gael Guennebaud
bf03820339
Silent warning.
2016-09-17 14:14:01 +02:00
Gael Guennebaud
de05a18fe0
fix compilation with boost::multiprec
2016-09-17 14:13:48 +02:00
Gael Guennebaud
4cc2c73e6a
Fix alignement of statically allocated temporaries in gemv.
2016-09-17 12:52:27 +02:00
Gael Guennebaud
4adeababf9
Fix undeflow
2016-09-16 11:46:46 +02:00
Gael Guennebaud
471eac5399
bug #1195 : move NumTraits::Div<>::Cost to internal::scalar_div_cost (with some specializations in arch/SSE and arch/AVX)
2016-09-08 08:36:27 +02:00
Gael Guennebaud
b046a3f87d
Workaround MSVC instantiation faillure of has_*ary_operator at the level of triats<Ref>::match so that the has_*ary_operator are really properly instantiated throughout the compilation unit.
2016-09-06 15:47:04 +02:00
Gael Guennebaud
3cb914f332
bug #1266 : remove CUDA guards on MatrixBase::<decomposition> definitions. (those used to break old nvcc versions that we propably don't care anymore)
2016-09-06 09:55:50 +02:00
Gael Guennebaud
dabc81751f
Fix compilation when cuda_fp16.h does not exist.
2016-09-05 17:14:20 +02:00
Gael Guennebaud
e13071dd13
Workaround a weird msvc 2012 compilation error.
2016-09-05 15:50:41 +02:00
Gael Guennebaud
218c37beb4
bug #1286 : automatically detect the available prototypes of functors passed to CwiseNullaryExpr such that functors have only to implement the operators that matters among:
...
operator()()
operator()(i)
operator()(i,j)
Linear access is also automatically detected based on the availability of operator()(i,j).
2016-08-31 15:45:25 +02:00
Gael Guennebaud
efe2c225c9
bug #1283 : add regression unit test
2016-08-31 13:04:29 +02:00
Gael Guennebaud
8c48d42530
Fix 4x4 inverse with non-linear destination
2016-08-30 23:16:38 +02:00
Gael Guennebaud
c57317035a
Fix unit test for 1x1 matrices
2016-08-30 10:20:23 +02:00
Gael Guennebaud
7e029d1d6e
bug #1271 : add SparseMatrix::coeffs() methods returning a 1D view of the non zero coefficients.
2016-08-29 12:06:37 +02:00
Gael Guennebaud
a93e354d92
Add some pre-allocation unit tests (not working yet)
2016-08-29 11:08:44 +02:00
Gael Guennebaud
6cd7b9ea6b
Fix compilation with cuda 8
2016-08-29 11:06:08 +02:00
Gael Guennebaud
441b7eaab2
Add support for non trivial scalar factor in sparse selfadjoint * dense products, and enable +=/-= assignement for such products.
...
This changeset also improves the performance by working on column of the result at once.
2016-08-24 13:06:34 +02:00