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