Gael Guennebaud
21ae2afd4e
bump to 3.3.7
2018-12-11 18:57:55 +01:00
Gael Guennebaud
171f513ecd
bug #1643 : fix compilation issue with gcc and no optimizaion
...
(grafted from 7166496f70
)
2018-12-11 13:24:42 +01:00
Gael Guennebaud
c310bedb29
enable spilling workaround on architectures with SSE/AVX
...
(grafted from 0d90637838
)
2018-12-10 23:22:44 +01:00
Gael Guennebaud
a661812ad7
Added tag 3.3.6 for changeset f8d653d1f9
2018-12-10 14:46:58 +01:00
Gael Guennebaud
f8d653d1f9
bump to 3.3.6
2018-12-10 14:46:51 +01:00
Gael Guennebaud
b942bb0043
workaround "may be used uninitialized" warning
...
(grafted from bff90bf270
)
2018-12-08 18:58:28 +01:00
Gael Guennebaud
f1ffadb6e0
fix EIGEN_GEBP_2PX4_SPILLING_WORKAROUND for non vectorized type, and non x86/64 target
...
(grafted from 426bce7529
)
2018-12-08 09:44:21 +01:00
Gael Guennebaud
204d1f1456
Fix noise in sparse_basic_3 (numerical cancellation)
...
(grafted from cd25b538ab
)
2018-12-08 00:13:37 +01:00
Gael Guennebaud
c285ed1033
Fix noise in lu unit test
2018-12-08 00:05:38 +01:00
Christoph Hertzberg
818bf74b18
Add default constructor to Bar to make test compile again with clang-3.8
...
(grafted from ea60a172cf
)
2018-11-23 14:24:22 +01:00
Gael Guennebaud
9d56215db8
bug #1636 : fix gemm performance issue with gcc>=6 and no FMA
...
(grafted from 4e7746fe22
)
2018-12-07 09:15:46 +01:00
Gael Guennebaud
c4ea9a916f
bug #1637 : workaround register spilling in gebp with clang>=6.0+AVX+FMA
...
(grafted from f233c6194d
)
2018-12-07 10:01:09 +01:00
Christoph Hertzberg
24d56f2e0e
bug #1635 : Use infinity from Numtraits instead of creating it manually.
...
(grafted from c1d356e8b4
)
2018-12-05 15:01:04 +01:00
Christoph Hertzberg
b9a2a8d2aa
bug #785 : Make Cholesky decomposition work for empty matrices
...
(grafted from 919414b9fe
)
2018-12-03 16:18:15 +01:00
Gael Guennebaud
5c97b48c29
bug #1634 : remove double copy in move-ctor of non movable Matrix/Array
...
(grafted from ab4df3e6ff
)
2018-11-30 21:25:51 +01:00
Gael Guennebaud
a2d6c106a4
Workaround weird MSVC bug
...
(grafted from 4b2cebade8
)
2018-11-21 15:53:37 +01:00
Gael Guennebaud
40ddac243e
Limit the size of the toc
...
(grafted from dffd1e11de
)
2018-11-09 13:52:34 +01:00
Gael Guennebaud
065c366b40
Update doxy hacks wrt doxygen 1.8.13/14
...
(grafted from a88e0a0e95
)
2018-11-09 13:52:10 +01:00
Gael Guennebaud
116dbf2c28
fix market IO
2018-11-09 13:56:17 +01:00
Matthieu Vigne
0ee9dede55
bug #1617 : Fix SolveTriangular.solveInPlace crashing for empty matrix.
...
This made FullPivLU.kernel() crash when used on the zero matrix.
Add unit test for FullPivLU.kernel() on the zero matrix.
(grafted from 8d7a73e48e
)
2018-10-31 20:28:18 +01:00
Christoph Hertzberg
d107a371c6
Fix most Doxygen warnings. Also add links to stable documentation from unsupported modules (by using the corresponding Doxytags file).
2018-10-19 21:10:28 +02:00
Christoph Hertzberg
a4afa90d16
bug #1606 : Explicitly set the standard before find_package(StandardMathLibrary). Also replace EIGEN_COMPILER_SUPPORT_CXX11 in favor of EIGEN_COMPILER_SUPPORT_CPP11.
2018-10-19 17:20:51 +02:00
Gael Guennebaud
e154c87504
fix a doxygen issue
...
(grafted from 774bb9d6f7
)
2018-10-08 09:30:15 +02:00
Christoph Hertzberg
fcc41f1b9a
Fix a lot of Doxygen warnings in Tensor module
...
(grafted from 3f2c8b7ff0
)
2018-10-09 20:22:47 +02:00
Gael Guennebaud
9a53659b08
fix typo in doc
...
(grafted from 1dcf5a6ed8
)
2018-10-17 09:29:36 +02:00
Christoph Hertzberg
9ccbaaf3dd
Explicitly convert 0 to Scalar for custom types
...
(grafted from 24dc076519
)
2018-10-12 10:22:19 +02:00
Gael Guennebaud
1d5581ead2
Workaround gcc bug making it trigger an invalid warning
2018-10-07 09:23:15 +02:00
Gael Guennebaud
3636a64667
bug #1605 : workaround ABI issue with vector types (aka __m128) versus scalar types (aka float)
...
(grafted from de2efbc43c
)
2018-10-01 23:45:55 +02:00
Gael Guennebaud
148e579cc0
#pragma GCC diagnostic push/pop is not supported prioro to gcc 4.6
2018-09-27 09:23:54 +02:00
Christoph Hertzberg
64ec5a1a6b
Change include order to make SparsePlugin work
2018-09-22 10:26:21 +02:00
Gael Guennebaud
2c932556fc
Add missing plugins to DynamicSparseMatrix -- fix sparse_extra_3
...
(grafted from 4291f167ee
)
2018-09-21 14:53:43 +02:00
Gael Guennebaud
bc000deaae
Fix conjugate-gradient for very small rhs
...
(grafted from 1141bcf794
)
2018-09-13 23:53:28 +02:00
Christoph Hertzberg
92cd158c01
Disable type-limits warnings for g++ < 4.8, and shadow warnings for all g++ versions
2018-09-12 14:51:19 +02:00
Christoph Hertzberg
80473b48bb
EIGEN_UNUSED is not supported by g++4.7 (and not portable)
...
(grafted from ba2c8efdcf
)
2018-09-12 11:49:10 +02:00
Christoph Hertzberg
3b92f547f5
Fix more shadowing typedefs
2018-09-08 23:47:53 +02:00
Christoph Hertzberg
718e954df4
Fix shadowing typedefs
2018-09-07 16:34:04 +02:00
Christoph Hertzberg
1eef23a1eb
Make param name and docs constistent for JacobiRotation::makeGivens
...
(manually grafted from c6066ac411
)
2018-09-06 18:22:50 +02:00
Alexey Frunze
af3656d4ca
Fix build failures in matrix_power and matrix_exponential tests.
...
This fixes the static assertion complaining about double being
used in place of long double. This happened on MIPS32, where
double and long double have the same type representation.
This can be simulated on x86 as well if we pass -mlong-double-64
to g++.
(grafted from edeee16a16
)
2018-08-31 14:11:10 -07:00
Gael Guennebaud
7c6ed911b3
Fix legitimate "declaration shadows a typedef" warning
2018-07-09 11:03:39 +02:00
Christoph Hertzberg
5be00b0e29
Product of empty array must be 1 and not 0.
2018-08-30 17:14:52 +02:00
Christoph Hertzberg
03326d9155
Fix integer conversion warning
2018-08-30 17:12:53 +02:00
Christoph Hertzberg
6111dce0e8
gcc thinks this may not be initialized
2018-08-28 18:33:24 +02:00
Gael Guennebaud
f98992725c
bug #1590 : fix collision with some system headers defining the macro FP32
2018-08-28 13:20:45 +02:00
Gael Guennebaud
c5198249a9
Fix bad merge in previous commit
2018-08-28 12:58:19 +02:00
Alexey Frunze
e6c8d0b72d
bug #1584 : Improve random (avoid undefined behavior).
2018-08-08 20:19:32 -07:00
Christoph Hertzberg
caf7e6e7a7
Use Intel cast intrinsics, since MSVC does not allow direct casting.
...
Reported by David Winkler.
2018-08-24 19:04:33 +02:00
Christoph Hertzberg
ea7f12ebb5
Assertion depended on a not yet initialized value
2018-08-17 16:42:53 +02:00
Christoph Hertzberg
a9508054c3
Silence double-promotion warning
2018-08-17 16:39:43 +02:00
Christoph Hertzberg
7f3fff3fec
Remove shadowing typedefs
2018-08-17 16:32:35 +02:00
Christoph Hertzberg
6ce4be6f84
Silence logical-op-parentheses warning
2018-08-17 16:30:32 +02:00
Christoph Hertzberg
ab95a8c1ef
Silence unused parameter warning
2018-08-17 16:28:28 +02:00
Christoph Hertzberg
461620668c
Silence double-promotion warning (when converting double to complex<long double>)
2018-08-17 16:26:11 +02:00
Gael Guennebaud
e4127b0f7d
Fix fallback to BLAS for rankUptade
2018-08-16 18:14:27 +02:00
Gael Guennebaud
8180e13926
Fix half_float unit test wrt previous changeset
2018-07-31 09:58:24 +02:00
Gael Guennebaud
6eb4ce5f8e
backport some nvcc 9 fixes
2018-07-30 14:45:08 +02:00
Christoph Hertzberg
b89d81b2a8
DIsable static assertions only when necessary and disable double-promotion warnings in that case as well
2018-07-26 00:07:07 +02:00
Christoph Hertzberg
73b1c0a660
fix warnings for doc-eigen-prerequisites
2018-07-24 21:59:15 +02:00
Christoph Hertzberg
4d05b107cf
Allow to filter out build-error messages
2018-07-24 20:12:49 +02:00
Gael Guennebaud
7621bbc2a5
Add the cmake option "EIGEN_DASHBOARD_BUILD_TARGET" to control the build target in dashboard mode (e.g., ctest -D Experimental)
2018-07-16 17:59:30 +02:00
Gael Guennebaud
c15d736be3
Added tag 3.3.5 for changeset 81bdde705c
2018-07-23 11:33:47 +02:00
Gael Guennebaud
81bdde705c
Bump to 3.3.5
2018-07-23 11:33:42 +02:00
Gael Guennebaud
06fc5761fa
Oopps, EIGEN_COMP_MSVC is not available before including Eigen.
...
(grafted from de70671937
)
2018-07-20 17:51:17 +02:00
Gael Guennebaud
a185bc485c
Disable optimization for sparse_product unit test with MSVC 2013, otherwise it takes several hours to build.
...
(grafted from 56a750b6cc
)
2018-07-20 08:36:38 -07:00
Gael Guennebaud
96134409fc
Fix weird issue with MSVC 2013
...
(grafted from 3a2dc3869e
)
2018-07-18 02:26:43 -07:00
Gael Guennebaud
ab3fa2e123
Fix GeneralizedEigenSolver when requesting for eigenvalues only.
...
(grafted from a87cff20df
)
2018-07-14 09:38:49 +02:00
Gael Guennebaud
ae6e5caa40
Fix unit test
...
(grafted from a7b313a16c
)
2018-07-01 22:45:47 +02:00
Gael Guennebaud
483beabab9
bug #1560 fix product with a 1x1 diagonal matrix
...
(grafted from ee5864f72e
)
2018-06-25 10:30:12 +02:00
Jayaram Bobba
5c59564bfb
fix AVX512 plog
...
(grafted from b7b868d1c4
)
2018-04-20 13:39:18 -07:00
Gael Guennebaud
1939c971a3
AVX512: _mm512_rsqrt28_ps is available for AVX512ER only
...
(grafted from 40b4bf3d32
)
2018-04-03 14:36:27 +02:00
Gael Guennebaud
c2f9e6cb37
AVX512: fix psqrt and prsqrt
...
(grafted from 7b0630315f
)
2018-04-03 14:12:50 +02:00
Rasmus Munk Larsen
1641a6cdd5
Fix typo in pbend for AltiVec.
...
(grafted from bda71ad394
)
2018-06-22 15:04:35 -07:00
Rasmus Munk Larsen
fea50d40ea
Fix oversharding bug in parallelFor.
...
(grafted from 5418154a45
)
2018-06-20 17:51:48 -07:00
Gael Guennebaud
c1128efb6c
fix md5sum of lapack_addons
...
(grafted from b8271bb368
)
2018-06-15 14:21:29 +02:00
Gael Guennebaud
20ca86888e
bug #1555 : compilation fix with XLC
2018-06-21 10:28:58 +02:00
Gael Guennebaud
36a1cd87d9
Fiw some warnings in dox examples
...
(grafted from c25034710e
)
2018-06-07 16:09:22 +02:00
Gael Guennebaud
523e442a7b
Fix warning
...
(grafted from c723ffd763
)
2018-06-07 15:56:20 +02:00
Gael Guennebaud
48048172e5
Fix int versus Index
...
(grafted from 37348d03ae
)
2018-06-07 15:56:43 +02:00
Gael Guennebaud
e9bd839b13
Fix warning
...
(grafted from af7c83b9a2
)
2018-06-07 15:45:24 +02:00
Gael Guennebaud
3df78d5afc
Fix MSVC warning C4290: C++ exception specification ignored except to indicate a function is not __declspec(nothrow)
...
(grafted from 7fe29aceeb
)
2018-06-07 15:36:20 +02:00
Gael Guennebaud
352489edbe
Fix short vs long
2018-06-07 15:26:04 +02:00
Gael Guennebaud
450c5e5d27
Fix compilation with MSVC by reverting to char* for _mm_prefetch except for PGI (the later being the one that has the wrong prototype).
...
(grafted from 7134fa7a2e
)
2018-06-07 09:33:10 +02:00
Gael Guennebaud
64cc5f8512
Don't run hg on non mercurial clone
...
(grafted from 84868da904
)
2018-05-31 21:21:57 +02:00
Gael Guennebaud
656712d48f
Doc: add aliasing in common pitfaffs.
...
(grafted from 6af1433cb5
)
2018-05-29 22:37:47 +02:00
Gael Guennebaud
971b32440c
Define pcast<> for SSE types even when AVX is enabled. (otherwise float are silently reinterpreted as int instead of being converted)
...
(grafted from 647b724a36
)
2018-05-29 20:46:46 +02:00
Gael Guennebaud
bb87f618bf
Fix compilation and SSE support with PGI compiler
...
(grafted from 49262dfee6
)
2018-05-29 15:09:31 +02:00
Jeff Trull
2f9de52245
Add tests for sparseQR results (value and size) covering bugs #1522 and #1544
2018-04-21 10:26:30 -07:00
Jeff Trull
2136cfa17e
Make sparse QR result sizes consistent with dense QR, with the following rules:
...
1) Q is always square
2) Q*R*P' is valid and recovers the original matrix
This implies that the size of Q is the number of rows in the original matrix, square,
and that the size of R is the size of the original matrix.
2018-02-15 15:00:31 -08:00
Christoph Hertzberg
39125654ce
bug #1544 : Generate correct Q matrix in complex case. Original patch was by Jeff Trull in PR-386.
2018-05-17 19:17:01 +02:00
Gael Guennebaud
927d023cea
Fix compilation with NEON+MSVC
...
(grafted from 6e7118265d
)
2018-04-26 10:50:41 +02:00
Gael Guennebaud
1e2d2693b9
bug #1428 : atempt to make NEON vectorization compilable by MSVC.
...
The workaround is to wrap NEON packet types to make them different c++ types.
(grafted from e8ca5166a9
)
2018-04-24 11:19:49 +02:00
Gael Guennebaud
7634a44bfe
Fix "used uninitialized" warnings
...
(grafted from 2f3287da7d
)
2018-04-24 17:17:25 +02:00
Gael Guennebaud
2480d04ac7
Workaround warning
...
(grafted from 3ffd449ef5
)
2018-04-24 17:11:51 +02:00
Gael Guennebaud
c92536d926
workaround MSVC 2013 compilation issue (ambiguous call)
...
(grafted from a57e6e5f0f
)
2018-04-23 15:31:51 +02:00
Gael Guennebaud
80af7d6a47
bug #1543 : fix linear indexing in generic block evaluation (this completes the fix in commit 12efc7d41b
...
)
(grafted from 5679e439e0
)
2018-04-23 14:40:16 +02:00
Gael Guennebaud
87f9e301f9
Fix unit test
...
(grafted from 35b31353ab
)
2018-04-22 22:49:08 +02:00
Christoph Hertzberg
542fb03968
Fix enum-compare warning
2018-04-20 23:11:37 +02:00
Christoph Hertzberg
f90d136c84
Add parenthesis to fix compiler warnings
2018-04-15 18:43:56 +02:00
Gael Guennebaud
877a2b64c9
fix const cast in NEON
...
(grafted from 686fb57233
)
2018-04-18 18:46:34 +02:00
Dmitriy Korchemkin
e6577f3c30
Cast zeros to Scalar in RealSchur
2018-04-18 13:52:46 +03:00
Gael Guennebaud
69e01a2999
update cdash
2018-04-17 17:22:56 +02:00
Christoph Hertzberg
5f71579a2d
Another fix to make boost::multiprecision compile again
2018-04-13 20:22:57 +02:00
Christoph Hertzberg
686e0749a5
Recent Adolc versions require C++11
2018-04-13 19:10:23 +02:00
Christoph Hertzberg
385d8b5e42
Make hypot_impl compile again for types with expression-templates (e.g., boost::multiprecision)
2018-04-13 19:01:37 +02:00
Christoph Hertzberg
4662c610c1
SelfAdjointView<...,Mode> causes a static assert since commit d820ab9edc
2018-04-13 19:00:34 +02:00
Gael Guennebaud
906a98fe39
fix linking issue
...
(grafted from 7a9089c33c
)
2018-04-13 08:51:47 +02:00
Gael Guennebaud
1c4fdad7bd
bug #1520 : workaround some -Wfloat-equal warnings by calling std::equal_to
2018-04-11 15:24:13 +02:00
Gael Guennebaud
3f711f3356
extend doxygen splitter for huge screens
...
(grafted from 79266fec75
)
2018-04-11 11:31:17 +02:00
Gael Guennebaud
b02ab76847
Update header/footer for doxygen 1.8.13
...
(grafted from 426052ef6e
)
2018-04-11 11:30:34 +02:00
Gael Guennebaud
5fec52ced1
Fix javascript hacks for oxygen 1.8.13
...
(grafted from 9c8decffbf
)
2018-04-11 11:30:14 +02:00
Gael Guennebaud
bde2bfcee8
bug #1538 : update manual pages regarding BDCSVD.
...
(grafted from e798466871
)
2018-04-11 10:46:11 +02:00
Gael Guennebaud
eab7afe252
Fix MKL backend for symmetric eigenvalues on row-major matrices.
...
(grafted from add15924ac
)
2018-04-09 13:29:26 +02:00
Gael Guennebaud
81e94eea02
Fix cmake scripts with no fortran compiler
...
(grafted from c2624c0318
)
2018-04-07 08:45:19 +02:00
Gael Guennebaud
a2a2c3c865
bug #1509 : fix computeInverseWithCheck for complexes
...
(grafted from 2f833b1c64
)
2018-04-04 15:47:46 +02:00
Gael Guennebaud
90cd199d4b
Factories code between numext::hypot and scalar_hyot_op functor.
...
(grafted from 4213b63f5c
)
2018-04-04 15:12:43 +02:00
Gael Guennebaud
b18e2d422b
bug #1521 : avoid signalling NaN in hypot and make it std::complex<> friendly.
...
(grafted from e116f6847e
)
2018-04-04 13:47:23 +02:00
Gael Guennebaud
892c0a79ce
bug #1494 : makes pmin/pmax behave on Altivec/VSX as on x86 regading NaNs
...
(grafted from e91e314347
)
2018-04-04 11:39:19 +02:00
Gael Guennebaud
59398aa2bb
comment unreachable code
...
(grafted from 112c899304
)
2018-04-03 23:16:43 +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
866d222d60
commit 45e9c9996da790b55ed9c4b0dfeae49492ac5c46 (HEAD -> memory_fix)
...
Author: George Burgess IV <gbiv@google.com >
Date: Thu Mar 1 11:20:24 2018 -0800
Prefer `::operator new` to `new`
The C++ standard allows compilers much flexibility with `new`
expressions, including eliding them entirely
(https://godbolt.org/g/yS6i91 ). However, calls to `operator new` are
required to be treated like opaque function calls.
Since we're calling `new` for side-effects other than allocating heap
memory, we should prefer the less flexible version.
Signed-off-by: George Burgess IV <gbiv@google.com >
(grafted from 8c7b5158a1
)
2018-04-03 17:15:38 +02:00
Gael Guennebaud
86a939451c
bug #1527 : fix support for MKL's VML (destination was not properly resized)
...
(grafted from dd4cc6bd9e
)
2018-04-03 17:11:15 +02:00
Gael Guennebaud
9ff3150243
bug #1528 : better use numeric_limits::min() instead of 1/highest() that with underflow.
...
(grafted from c5b56f1fb2
)
2018-04-03 16:49:35 +02:00
Benoit Steiner
a7144f8d6a
Made the TensorStorage class compile with clang 3.9
...
(grafted from de7b0fdea9
)
2017-02-28 13:52:22 -08: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
3fb42ff7b2
bug #1532 : disable stl::*_negate in C++17 (they are deprecated)
...
(grafted from 407e3e2621
)
2018-04-03 15:59:30 +02:00
Gael Guennebaud
e90a14609a
Fix uninitialized output argument.
...
(grafted from 524119d32a
)
2018-04-03 10:56:10 +02:00
Gael Guennebaud
ece56baba0
Merged in bfierz/eigen/3.3 (pull request PR-345)
...
Adds missing EIGEN_STRONG_INLINE to support MSVC properly inlining small vector calculations
2018-03-27 07:40:13 +00: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
Eugene Chereshnev
bfc66e8b9a
Fix incorrect ldvt in LAPACKE call from JacobiSVD
...
(grafted from f558ad2955
)
2018-01-03 12:55:52 -08:00
Gael Guennebaud
b60cbbef37
fix compilation with old compiler
2017-12-15 17:53:48 +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
bb28a2aada
fix warning
2017-12-15 14:43:33 +01:00
Gael Guennebaud
acd0ce11aa
Fix cmake warning
...
(grafted from 31e0bda2e3
)
2017-12-14 15:48:27 +01:00
Basil Fierz
01fb621733
Adds missing EIGEN_STRONG_INLINE to support MSVC properly inlining small vector calculations
...
When working with MSVC often small vector operations are not properly inlined. This behaviour is observed even on the most recent compiler versions.
2017-10-26 22:44:28 +02:00
Benoit Steiner
71d1198ccd
Merged in henryiii/eigen/henryiii/device33 (pull request PR-344)
...
Branch 3.3: Fixing missing inlines on device functions for newer CUDA cards
2017-10-21 01:59:01 +00:00
Henry Schreiner
95ec3232c6
Restore __device__
2017-10-21 00:48:05 +00:00
Henry Schreiner
243249718b
Adding missing inlines for CUDA and ARCH 6
2017-10-20 13:00:23 +00:00
Gael Guennebaud
32a6db0f8c
bug #1468 (1/2) : add missing std:: to memcpy
...
(grafted from 8579195169
)
2017-09-22 09:23:24 +02:00
Gael Guennebaud
6fc0f2be70
Update documentation for aligned_allocator
...
(grafted from 7ad07fc6f2
)
2017-09-20 10:22:00 +02:00
Gael Guennebaud
70ac6c9230
Add C++11 max_digits10 for half.
...
(grafted from 9c353dd145
)
2017-09-06 10:22:47 +02:00
Gael Guennebaud
609e425166
Implement true compile-time "if" for apply_rotation_in_the_plane. This fixes a compilation issue for vectorized real type with missing vectorization for complexes, e.g. AVX512.
...
(grafted from b35d1ce4a5
)
2017-09-06 10:02:49 +02:00
Gael Guennebaud
4ead16cdd6
Fix mixing types in sparse matrix products.
...
(grafted from 80142362ac
)
2017-09-02 22:50:20 +02:00
Gael Guennebaud
361102f88b
Merged in dtrebbien/eigen/patch-1 (pull request PR-312)
...
Work around a compilation error seen with nvcc V8.0.61
(grafted from fc39d5954b
)
2017-08-22 12:17:37 +00: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
18868228ad
bug #336 : improve doc for PlainObjectBase::Map
...
(grafted from 39864ebe1e
)
2017-08-22 17:18:43 +02:00
Gael Guennebaud
fbb0c510c5
Add missing scalar conversion
...
(grafted from 600e52fc7f
)
2017-08-22 17:06:57 +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
51e1aa1539
Doc: warn about constness in LLT::solveInPlace
...
(grafted from b223918ea9
)
2017-08-22 14:12:47 +02:00
Jim Radford
0137ed4f19
LLT: const the arg to solveInPlace() to allow passing .transpose(), .block(), etc.
...
(grafted from 0c226644d8
)
2017-01-04 14:42:57 -08:00
Jim Radford
9d03711df8
LLT: avoid making a copy when decomposing in place
...
(grafted from be281e5289
)
2017-01-04 14:43:56 -08: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
9fd138e2b3
Re-enable hidden doc in LLT
...
(grafted from 2c3d70d915
)
2017-08-22 12:04:09 +02:00
Gael Guennebaud
55fbf4fedd
bug #1456 : add perf recommendation for LLT and storage format
...
(grafted from 21d0a0bcf5
)
2017-08-22 12:46:35 +02:00
Gael Guennebaud
b87875abf8
bug #1455 : Cholesky module depends on Jacobi for rank-updates.
...
(grafted from a6e7a41a55
)
2017-08-22 11:37:32 +02:00
Gael Guennebaud
ac2c97edff
bug #1458 : fix documentation of LLT and LDLT info() method.
...
(grafted from e6021cc8cc
)
2017-08-22 11:32:55 +02:00
Gael Guennebaud
292dea7922
Clarify MKL_DIRECT_CALL doc.
...
(grafted from 2810ba194b
)
2017-08-17 22:12:26 +02:00
Gael Guennebaud
070b5958e0
use MKL's lapacke.h header when using MKL
...
(grafted from f727844658
)
2017-08-17 21:58:39 +02:00
Gael Guennebaud
3108fbf767
Clarify doc regarding the usage of MKL_DIRECT_CALL
...
(grafted from 8c858bd891
)
2017-08-17 12:17:45 +02:00
Gael Guennebaud
9df7f3d8e9
Fix support for MKL's BLAS when using MKL_DIRECT_CALL.
...
(grafted from b95f92843c
)
2017-08-17 12:07:10 +02:00
Gael Guennebaud
782fd81dee
Disable BDCSVD preallocation check.
...
(grafted from d580a90c9a
)
2017-07-20 10:03:54 +02:00
Gael Guennebaud
fa77d71335
Fix lazyness of operator* with CUDA
2017-07-20 09:47:28 +02:00
Gael Guennebaud
3d1795da28
Fix gcc7 warning: Wint-in-bool-context
2017-06-27 14:32:36 +02:00
Gael Guennebaud
d1c2d6683c
Fix a gcc7 warning: Wint-in-bool-context
...
(grafted from b651ce0ffa
)
2017-06-26 09:58:28 +02:00
Christoph Hertzberg
d8cf158e06
Make sure CMAKE_Fortran_COMPILER is set before checking for Fortran functions
2017-06-20 16:31:53 +02:00
Gael Guennebaud
bc837b7975
bug #1436 : fix compilation of Jacobi rotations with ARM NEON, some specializations of internal::conj_helper were missing.
...
(grafted from b240080e64
)
2017-06-15 10:16:30 +02:00
Gael Guennebaud
68e8f2b833
Added tag 3.3.4 for changeset 3dc3a0ea2d
2017-06-15 09:10:26 +02:00
Gael Guennebaud
3dc3a0ea2d
bump to 3.3.4
2017-06-15 09:10:20 +02:00
Gael Guennebaud
79120a4c63
Enable Array(EigenBase<>) ctor for compatible scalar types only. This prevents nested arrays to look as being convertible from/to simple arrays.
...
(grafted from 9fbdf02059
)
2017-06-12 22:30:32 +02:00
Gael Guennebaud
e0412f18fd
Fix compilation of streaming nested Array, i.e., cout << Array<Array<>>
...
(grafted from e43d8fe9d7
)
2017-06-12 22:26:26 +02:00
Gael Guennebaud
40b0c43bda
Fix 1x1 case in Solve expression with EIGEN_DEFAULT_MATRIX_STORAGE_ORDER_OPTION==RowMajor
...
(grafted from d9d7bd6d62
)
2017-06-12 22:25:02 +02:00
Gael Guennebaud
72f3e20e74
Fix LeastSquareDiagonalPreconditioner for complexes (issue introduced in previous commit)
...
(grafted from a7be4cd1b1
)
2017-06-09 11:57:53 +02:00
Gael Guennebaud
676a7a3271
fix compilation in C++98
...
(grafted from 8640093af1
)
2017-06-09 12:45:01 +02:00
Gael Guennebaud
f843239452
bug #1414 : doxygen, add EigenBase to CoreModule
...
(grafted from 90168c003d
)
2017-06-09 14:01:44 +02:00
Gael Guennebaud
a4ab0c6b6a
Fix compilation with some compilers
...
(grafted from a4fd4233ad
)
2017-06-09 23:02:02 +02:00
Gael Guennebaud
ef955ea8e5
fix tipo
...
(grafted from 50e09cca0f
)
2017-06-11 15:30:36 +02:00
NeroBurner
8bd392ca0e
add cmake-option to enable/disable creation of tests
...
* * *
disable unsupportet/test when test are disabled
* * *
rename EIGEN_ENABLE_TESTS to BUILD_TESTING
* * *
consider BUILD_TESTING in blas
(grafted from c4fc2611ba
)
2017-01-02 09:09:21 +01:00
Gael Guennebaud
8d2ac85797
fix unit test
...
(grafted from 26a2c6fc16
)
2017-12-14 15:11:04 +01:00
Gael Guennebaud
6d6e5fcd43
Add possibility to overwrite EIGEN_STRONG_INLINE.
2017-12-14 14:47:38 +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
7ffa27f347
ignore all *build* sub directories
...
(grafted from 76c7dae600
)
2017-12-14 14:22:14 +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
d18877f18d
bug #1485 : fix linking issue of non template functions
...
(grafted from 7cc503f9f5
)
2017-11-15 21:33:37 +01:00
Justin Carpentier
02c0cef97f
Use col method for column-major matrix
...
(grafted from a020d9b134
)
2017-10-17 21:51:27 +02:00
Gael Guennebaud
c8e663fe87
bug #1484 : restore deleted line for 128 bits long doubles, and improve dispatching logic.
...
(grafted from 0a1cc73942
)
2017-11-10 10:25:41 +01:00
Gael Guennebaud
7a875acfb0
Fix overflow issues in BDCSVD
...
(grafted from e8468ea91b
)
2017-11-08 10:24:28 +01:00
Gael Guennebaud
3ec11d8f17
Fix compilation
...
(grafted from 7713e20fd2
)
2016-12-27 22:04:58 +01:00
Gael Guennebaud
ec067ac5e3
bug #1403 : more scalar conversions fixes in BDCSVD
...
(grafted from 731c8c704d
)
2017-06-09 15:45:49 +02:00
Gael Guennebaud
316969d839
bug #1403 : fix implicit scalar type conversion.
...
(grafted from 1bbcf19029
)
2017-06-09 14:44: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
8880be60fa
fix compilation of Half in C++98 (issue introduced in previous commit)
...
(grafted from 26f552c18d
)
2017-06-09 13:36:58 +02:00
Gael Guennebaud
e41713d52e
Fix compilation with gcc 4.3 and ARM NEON
...
(grafted from 1d59ca2458
)
2017-06-09 13:20:52 +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
Joao Rui Leal
0db83fc571
it is now possible to change Umfpack control settings before factorizations; added access to the report functions of Umfpack
...
(grafted from 95b804c0fe
)
2016-12-19 10:45:59 +00: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
Mmanu Chaturvedi
3aef5c1a2f
Specializing numeric_limits For AutoDiffScalar
...
(grafted from 2971503fed
)
2017-05-23 17:12:36 -04:00
Gael Guennebaud
ab6bb89980
Fix compilation of matrix log with Map as input
...
(grafted from 26e8f9171e
)
2017-06-07 10:51:23 +02:00
Gael Guennebaud
983ace99d4
bug #1411 : fix usage of alignment information in vectorization of quaternion product and conjugate.
...
(grafted from f2a553fb7b
)
2017-06-07 10:10:30 +02:00
Gael Guennebaud
72fa6775e8
bug #1417 : make LinSpace compatible with std::complex
...
(grafted from 8508db52ab
)
2017-06-06 17:25:56 +02:00
Gael Guennebaud
9f25cdf4f6
Fix dense * sparse-selfadjoint-view product.
...
(grafted from 891ac03483
)
2017-04-25 13:58:10 +02:00
Gael Guennebaud
6e5edd68d3
Improve mixing of complex and real in the vectorized path of apply_rotation_in_the_plane
...
(grafted from d9084ac8e1
)
2017-04-14 11:05:13 +02:00
Gael Guennebaud
e8978ffa99
Fix unwanted Real to Scalar to Real conversions in column-pivoting QR.
...
(grafted from f75dfdda7e
)
2017-04-14 10:34:30 +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
e59e345720
better check array index before using it
...
(grafted from 89fd0c3881
)
2017-03-15 15:18:03 +01:00
Benoit Jacob
07c2244440
ARM prefetch fixes: Implement prefetch on ARM64. Do not clobber cc on ARM32.
2017-03-15 06:53:35 -04:00
Gael Guennebaud
1865dccd58
bug #1401 : fix compilation of "cond ? x : -x" with x an AutoDiffScalar
...
(grafted from 970ff78294
)
2017-03-08 16:16:53 +01:00
Gael Guennebaud
f2e6ee9687
remove UTF8 symbol
...
(grafted from 5694315fbb
)
2017-03-07 10:53:47 +01:00
Gael Guennebaud
9219307e13
remove UTF8 symbols
...
(grafted from e958c2baac
)
2017-03-07 10:47:40 +01:00
Gael Guennebaud
f2e8f96151
bug #1400 : fix stableNorm with EIGEN_DONT_ALIGN_STATICALLY
...
(grafted from 659087b622
)
2017-03-07 10:02:34 +01:00
Gael Guennebaud
faf8af25ed
bug #1396 : add some missing EIGEN_DEVICE_FUNC
...
(grafted from 4e98a7b2f0
)
2017-02-28 09:47:38 +01:00
Gael Guennebaud
106ba41c2a
Fix typo.
...
(grafted from 478a9f53be
)
2017-02-28 09:32:45 +01:00
Benoit Steiner
87939ea0dd
Added missing EIGEN_DEVICE_FUNC to the SelfCwise binary ops
...
(grafted from 889c606f8f
)
2017-02-27 17:17:47 -08:00
Benoit Steiner
e813640aa1
Added missing EIGEN_DEVICE_FUNC qualifiers to several nullary op methods.
...
(grafted from 193939d6aa
)
2017-02-27 17:11:47 -08:00
Benoit Steiner
612b8f2749
Declared the plset, ploadt_ro, and ploaddup packet primitives as usable within a gpu kernel
...
(grafted from ed4dc9d01a
)
2017-02-27 16:57:01 -08:00
Benoit Steiner
ead8e1b796
Added missing EIGEN_DEVICE_FUNC qualifiers.
...
(grafted from b1fc7c9a09
)
2017-02-27 16:48:30 -08:00
Benoit Steiner
3d4265f2d5
Added EIGEN_DEVICE_FUNC to make the prototype of the EigenBase override match that of DenseBase
...
(grafted from 554116bec1
)
2017-02-27 16:45:31 -08:00
Benoit Steiner
d66586ac90
Avoid unecessary float to double conversions.
...
(grafted from 34d9fce93b
)
2017-02-27 16:33:33 -08:00
Gael Guennebaud
44920624fb
Added tag 3.3.3 for changeset 208058b9ad
2017-02-21 14:36:39 +01:00
Gael Guennebaud
208058b9ad
bump to 3.3.3
2017-02-21 14:36:34 +01:00
Gael Guennebaud
b4218b8473
Use int32_t instead of int in NEON code. Some platforms with 16 bytes int supports ARM NEON.
...
(grafted from cbbf88c4d7
)
2017-02-17 14:39:02 +01:00
Gael Guennebaud
3c2f0812f6
bug #1394 : fix compilation of SelfAdjointEigenSolver<Matrix>(sparse*sparse);
...
(grafted from 76687f385c
)
2017-02-20 14:27:26 +01:00
Gael Guennebaud
17bbd82f7d
bug #1380 : for Map<> as input of matrix exponential
...
(grafted from d8b1f6cebd
)
2017-02-20 14:06:06 +01: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
d367ecb475
Silent warning.
...
(grafted from a811a04696
)
2017-02-20 10:14:21 +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
f9d655a8c8
Fix compilation.
...
(grafted from f8a55cc062
)
2017-02-18 10:08:13 +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
222ed66f79
Fix usage of CUDACC_VER
2017-02-20 08:16:54 +01:00
Gael Guennebaud
6bceebfabf
bug #1391 : include IO.h before DenseBase to enable its usage in DenseBase plugins.
2017-02-13 09:46:20 +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
698205cddf
Suppress warning
2017-02-10 21:30:31 +01:00
Gael Guennebaud
2ecb33820f
Fix prunning in (sparse*sparse).pruned() when the result is nearly dense.
...
(grafted from a1ff24f96a
)
2017-02-10 13:59:32 +01:00
Gael Guennebaud
a0de6eb4ce
Include clang in the list of non strict MSVC (just to be sure)
2017-02-10 13:41:52 +01:00
Alexander Neumann
7962ac1a58
fixed inlining issue with clang-cl on visual studio
2017-02-08 23:50:38 +01:00
Alexander Neumann
9c97b053f3
fixed compiling issue using clang-cl with visual studio
2017-02-08 23:50:09 +01:00
Gael Guennebaud
f61b0d56f0
Improve multi-threading heuristic for matrix products with a small number of columns.
...
(grafted from fc8fd5fd24
)
2017-02-07 17:19:59 +01:00
Gael Guennebaud
5087e016eb
bug #1389 : MSVC's std containers do not properly align in 64 bits mode if the requested alignment is larger than 16 bytes (e.g., with AVX)
...
(grafted from 4254b3eda3
)
2017-02-03 15:22:35 +01:00
Gael Guennebaud
fa9f5d7170
Fix compilation of JacobiSVD for vectors type
...
(grafted from 645a8e32a5
)
2017-01-31 16:22:54 +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
95c6d8db75
bug #1380 : fix matrix exponential with Map<>
...
(grafted from 63de19c000
)
2017-01-30 13:55:27 +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
70fcaf9bd8
bug #1365 : fix another type mismatch warning
...
(sync is set from and compared to an Index)
2016-12-28 23:35:43 +01:00
Gael Guennebaud
2f31c6b1d8
bug #1369 : fix type mismatch warning.
...
Returned values of omp thread id and numbers are int,
o let's use int instead of Index here.
(grafted from 97812ff0d3
)
2016-12-28 23:29:35 +01:00
Gael Guennebaud
9e55467b4c
bug #1375 : fix cmake installation with cmake 2.8
...
(grafted from 156e6234f1
)
2017-01-24 09:16:40 +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
f9b8729597
bug #1382 : move using std::size_t/ptrdiff_t to Eigen's namespace (still better than the global namespace!)
...
(grafted from b0db4eff36
)
2017-01-23 22:03:57 +01:00
Gael Guennebaud
4b2e7f26aa
Add std:: namespace prefix to all (hopefully) instances if size_t/ptrdfiff_t
2017-01-23 22:02:53 +01:00
Gael Guennebaud
5202bc92e6
Use Index instead of size_t
...
(grafted from 4b607b5692
)
2017-01-23 22:00:33 +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
556c03a09d
bug #1378 : fix doc (DiagonalIndex vs Diagonal)
...
(grafted from 22a172751e
)
2017-01-21 22:09:59 +01:00
Gael Guennebaud
ce463b9fa4
Added tag 3.3.2 for changeset 477d1e8192
2017-01-18 15:06:46 +01:00
Gael Guennebaud
477d1e8192
Bump to 3.3.2
2017-01-18 15:06:40 +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
582c96691b
Fix typo
2017-01-16 13:36:56 +01:00
Gael Guennebaud
0b22158d9f
Add missing doc of SparseView
...
(grafted from 831fffe874
)
2017-01-06 18:01:29 +01:00
Gael Guennebaud
dafdb0d8a8
MSVC 2015 has all we want about c++11 and MSVC 2017 fails on binder1st/binder2nd
...
(grafted from e383d6159a
)
2017-01-06 15:44:13 +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
ad95b924d0
Fix and workaround several doxygen issues/warnings
...
(grafted from 2299717fd5
)
2017-01-04 23:27:33 +01:00
Gael Guennebaud
9499684320
Add doc for sparse triangular solve functions
...
(grafted from ee6f7f6c0c
)
2017-01-04 23:10:36 +01:00
Gael Guennebaud
5b6a31626b
Add missing snippet files.
...
(grafted from 5165de97a4
)
2017-01-04 23:08:27 +01:00
Gael Guennebaud
bc3fee2d8e
bug #1336 : workaround doxygen failing to include numerous members of MatriBase in Matrix
...
(grafted from a0a36ad0ef
)
2017-01-04 22:02:39 +01:00
Gael Guennebaud
eaa9223277
Document selfadjointView
...
(grafted from 29a1a58113
)
2017-01-04 22:01:50 +01:00
Gael Guennebaud
c9ba1165e7
bug #1336 : fix doxygen issue regarding EIGEN_CWISE_BINARY_RETURN_TYPE
...
(grafted from a5ebc92f8d
)
2017-01-04 18:21:44 +01:00
Gael Guennebaud
dd2d5d67ff
bug #1370 : add doc for StorageIndex
...
(grafted from 8702562177
)
2017-01-03 11:25:41 +01:00
Gael Guennebaud
404322b64f
bug #1370 : rename _Index to _StorageIndex in SparseMatrix, and add a warning in the doc regarding the 3.2 to 3.3 change of SparseMatrix::Index
...
(grafted from 575c078759
)
2017-01-03 11:19:14 +01:00
Marco Falke
ce37bae2cd
doc: Fix trivial typo in AsciiQuickReference.txt
...
* * *
fixup!
(grafted from 4ebf69394d
)
2017-01-01 13:25:48 +00:00
Gael Guennebaud
3900dbc341
Make sure that traits<CwiseBinaryOp>::Flags reports the correct storage order so that methods like .outerSize()/.innerSize() work properly.
...
(grafted from d32a43e33a
)
2016-12-27 16:35:45 +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
215f88a417
Fix check of storage order mismatch for "sparse cwiseop sparse".
...
(grafted from fe0ee72390
)
2016-12-27 16:33:19 +01:00
Gael Guennebaud
2257f40f4a
Merged in angelos_m/eigen/3.3 (pull request PR-269)
...
Remove superfluous const's (can cause warnings on some Intel compilers)
2016-12-21 08:53:16 +01:00
Gael Guennebaud
9e0fa0ef6d
Fix bug #1367 : compilation fix for gcc 4.1!
...
(grafted from 94e8d8902f
)
2016-12-20 22:17:01 +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
Benoit Jacob
26197bb467
Use 32 registers on ARM64
2016-12-19 13:44:46 -05:00
Gael Guennebaud
772e59d475
bug #1360 : fix sign issue with pmull on altivec
...
(grafted from 8c0e701504
)
2016-12-18 22:13:19 +00:00
Gael Guennebaud
e8f83cbb5d
Fix unused warning
...
(grafted from fc94258e77
)
2016-12-18 22:11:48 +00:00
Gael Guennebaud
dce584d799
bug #1363 : fix mingw's ABI issue
...
(grafted from 5d00fdf0e8
)
2016-12-15 11:58:31 +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
a05f6aad0e
bug #1359 : fix sparse /=scalar and *=scalar implementation.
...
InnerIterators must be obtained from an evaluator.
(grafted from 98d7458275
)
2016-12-14 17:03:13 +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
Angelos Mantzaflaris
1dd074ea7e
Merged eigen/eigen/3.3 into 3.3
2016-12-07 01:01:50 +01:00
Angelos Mantzaflaris
24fa7a01bd
merge
2016-12-07 00:43:55 +01:00
Angelos Mantzaflaris
e236d3443c
Remove superfluous const's (can cause warnings on some Intel compilers)
2016-12-07 00:37:48 +01:00
Gael Guennebaud
4ec8833220
Added tag 3.3.1 for changeset dd3685cc6a
2016-12-06 11:44:02 +01:00
Gael Guennebaud
dd3685cc6a
Bump to 3.3.1
2016-12-06 11:43:58 +01:00
Gael Guennebaud
487a6e6515
Explain how to choose your favorite Eigen version
...
(grafted from 0c4d05b009
)
2016-12-06 11:34:06 +01:00
Silvio Traversaro
75f0b8aae3
Added relocatable cmake support also for CMake before 3.0 and after 2.8.8
...
(grafted from e049a2a72a
)
2016-12-06 10:37:34 +01:00
Gael Guennebaud
23aca8a586
Optimize SparseLU::solve for rhs vectors
...
(grafted from 8640ffac65
)
2016-12-05 15:41:14 +01:00
Gael Guennebaud
28bf2bf070
remove temporary in SparseLU::solve
...
(grafted from 62acd67903
)
2016-12-05 15:11:57 +01:00
Silvio Traversaro
0164f4c682
Make CMake config file relocatable
...
(grafted from 18481b518f
)
2016-12-05 10:39:52 +01:00
Gael Guennebaud
bbff608a42
Merged in angelos_m/eigen/3.3 (pull request PR-264)
...
add explicit template to numext::abs2 and fix signed/unsigned warning
2016-12-05 21:56:01 +00:00
Gael Guennebaud
ea56d2ff2c
Fix memory leak in Ref<Sparse>
...
(grafted from a6b971e291
)
2016-12-05 16:59:30 +01:00
Gael Guennebaud
a4c8701e9a
bug #1356 : fix calls to evaluator::coeffRef(0,0) to get the address of the destination
...
by adding a dstDataPtr() member to the kernel. This fixes undefined behavior if dst is empty (nullptr).
(grafted from 0db6d5b3f4
)
2016-12-05 15:08:09 +01:00
Gael Guennebaud
a9bb9796e0
Ease compiler job to generate clean and efficient code in mat*vec.
...
(grafted from 66f65ccc36
)
2016-12-02 22:41:26 +01:00
Gael Guennebaud
449883be74
Operators += and -= do not resize!
...
(grafted from fe696022ec
)
2016-12-02 22:40:25 +01:00
Angelos Mantzaflaris
0a08d4c60b
use numext::abs
2016-12-02 11:48:06 +01:00
Angelos Mantzaflaris
4086187e49
1. Add explicit template to abs2 (resolves deduction for some arithmetic types)
...
2. Avoid signed-unsigned conversion in comparison (warning in case Scalar is unsigned)
2016-12-02 11:39:18 +01:00
Christoph Hertzberg
91864f85d3
bug #1355 : Fixed wrong line-endings on two files
...
(grafted from 22f7d398e2
)
2016-12-02 11:22:05 +01:00
Gael Guennebaud
c3597106ab
Merged in angelos_m/eigen/3.3 (pull request PR-263)
...
fix two warnings(unused typedef, unused variable) and a typo
2016-12-02 09:02:39 +00:00
Gael Guennebaud
aed1d6597f
Clean up SparseCore module regarding ReverseInnerIterator
...
(grafted from 27873008d4
)
2016-12-01 21:55:10 +01:00
Angelos Mantzaflaris
b6f04a2dd4
typo UIntPtr
2016-12-01 21:25:58 +01:00
Angelos Mantzaflaris
a9aa3bcf50
fix two warnings(unused typedef, unused variable) and a typo
2016-12-01 21:23:43 +01:00
Gael Guennebaud
32b8da66e3
fix member order
...
(grafted from 181138a1cb
)
2016-12-01 17:06:20 +01:00
Gael Guennebaud
eb94179ea3
Merged in sergiu/eigen/cmake-imported-target (pull request PR-257)
...
CMake imported target (take #2 )
2016-12-01 15:13:48 +00:00
Gael Guennebaud
52a7386aef
Fix misleading-indentation warnings.
...
(grafted from 037b46762d
)
2016-12-01 16:05:42 +01:00
Gael Guennebaud
8cada1d894
Fix slection of product implementation for dynamic size matrices with fixed max size.
...
(grafted from 8df272af88
)
2016-11-30 22:21:33 +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
1cd1a96d56
bug #1351 : fix compilation of random with old compilers
...
(grafted from ab4ef5e66e
)
2016-11-30 17:37:53 +01:00
Sergiu Deitsch
86ab00cdcf
cmake: remove architecture dependency from Eigen3ConfigVersion.cmake
...
Also, install Eigen3*.cmake under $prefix/share/eigen3/cmake by default.
2016-11-30 15:46:46 +01:00
Sergiu Deitsch
65f09be8d2
doc: mention the NO_MODULE option and target availability
2016-11-30 15:41:38 +01:00
Gael Guennebaud
400d756b82
bug #1348 : Document EIGEN_MAX_ALIGN_BYTES and EIGEN_MAX_STATIC_ALIGN_BYTES,
...
and reflect in the doc that EIGEN_DONT_ALIGN* are deprecated.
(grafted from 21d0286d81
)
2016-11-23 22:15:03 +01:00
Gael Guennebaud
9d31798a84
update cdash project for 3.3
2016-11-23 14:13:08 +01:00
Gael Guennebaud
723ed92e0e
Fix compilation with gcc and old ABI version
...
(grafted from e340866c81
)
2016-11-23 14:04:57 +01:00
Gael Guennebaud
0a7de0b273
Fix compilation issue with MSVC:
...
MSVC always messes up with shadowed template arguments, for instance in:
struct B { typedef float T; }
template<typename T> struct A : B {
T g;
};
The type of A<double>::g will be float and not double.
(grafted from a91de27e98
)
2016-11-23 12:24:48 +01:00
Gael Guennebaud
d6b9bc1ccd
Optimize predux<Packet8f> (AVX)
...
(grafted from 74637fa4e3
)
2016-11-22 21:57:52 +01:00
Gael Guennebaud
0eff51e2ed
Disable usage of SSE3 _mm_hadd_ps that is extremely slow.
...
(grafted from 178c084856
)
2016-11-22 21:53:14 +01:00
Gael Guennebaud
1b7dd46d94
Optimize predux<Packet4d> (AVX)
...
(grafted from 7dd894e40e
)
2016-11-22 21:41:30 +01:00
Gael Guennebaud
b2eb1bf3dc
Disable usage of SSE3 haddpd that is extremely slow.
...
(grafted from f3fb0a1940
)
2016-11-22 16:58:31 +01:00
Gael Guennebaud
fe48c25682
Revert vec/y to vec*(1/y) in row-major TRSM:
...
- div is extremely costly
- this is consistent with the column-major case
- this is consistent with all other BLAS implementations
(grafted from eb621413c1
)
2016-12-06 15:04:50 +01:00
Gael Guennebaud
0ba6da3470
Fix BLAS backend for symmetric rank K updates.
...
(grafted from 8365c2c941
)
2016-12-06 14:47:09 +01:00
Sergiu Deitsch
a287140f72
cmake: added Eigen3::Eigen imported target
2016-11-22 12:25:06 +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
Chun Wang
441760f239
Workaround for error in VS2012 with /clr
...
(grafted from 0d0948c3b9
)
2016-11-17 17:54:27 -05:00
Gael Guennebaud
664162fb8a
Fix compilation issue in mat = permutation (regression introduced in 8193ffb3d3
...
)
(grafted from 465ede0f20
)
2016-11-20 09:41:37 +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
Konstantinos Margaritis
463176cc44
implement float/std::complex<float> for ZVector as well, minor fixes to ZVector
...
(grafted from 672aa97d4d
)
2016-11-17 13:27:33 -05:00
Gael Guennebaud
5aab97fba6
Optimize sparse<bool> && sparse<bool> to use the same path as for coeff-wise products.
...
(grafted from 0ee92aa38e
)
2016-11-14 18:47:41 +01:00
Gael Guennebaud
89abc6806d
bug #426 : move operator && and || to MatrixBase and SparseMatrixBase.
...
(grafted from 2e334f5da0
)
2016-11-14 18:47:02 +01:00
Niels Ole Salscheider
baf793ebaa
Make sure not to call numext::maxi on expression templates
...
(grafted from 51fef87408
)
2016-11-12 12:20:57 +01:00
Gael Guennebaud
b4ddafcfac
Fix regression in SparseMatrix::ReverseInnerIterator
...
(grafted from eedb87f4ba
)
2016-11-14 14:05:53 +01:00
Gael Guennebaud
1079967710
Added tag 3.3.0 for changeset eeac81b8c0
2016-11-10 13:57:29 +01:00
Gael Guennebaud
eeac81b8c0
bump to 3.3.0
2016-11-10 13:55:14 +01:00
Gael Guennebaud
e80bc2ddb0
Fix printing of sparse expressions
2016-11-10 10:35:32 +01:00
Benoit Steiner
db3903498d
Merged in benoitsteiner/opencl (pull request PR-246)
...
Improved support for OpenCL
2016-11-08 22:28:44 +00:00
Benoit Steiner
dcc14bee64
Fixed the formatting of the code
2016-11-08 14:24:46 -08:00
Benoit Steiner
b88c1117d4
Fixed the indentation of the cmake file
2016-11-08 14:22:36 -08:00
Luke Iwanski
912cb3d660
#if EIGEN_EXCEPTION -> #ifdef EIGEN_EXCEPTIONS.
2016-11-08 22:01:14 +00:00
Luke Iwanski
1b345b0895
Fix for SYCL queue initialisation.
2016-11-08 21:56:31 +00:00
Luke Iwanski
1b95717358
Use try/catch only when exceptions are enabled.
2016-11-08 21:08:53 +00:00
Mehdi Goli
d57430dd73
Converting all sycl buffers to uninitialised device only buffers; adding memcpyHostToDevice and memcpyDeviceToHost on syclDevice; modifying all examples to obey the new rules; moving sycl queue creating to the device based on Benoit suggestion; removing the sycl specefic condition for returning m_result in TensorReduction.h according to Benoit suggestion.
2016-11-08 17:08:02 +00: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
Gael Guennebaud
436a111792
Generalize Cholmod support to hanlde any sparse type as the rhs and result of the solve method
2016-11-06 20:29:23 +01:00
Gael Guennebaud
afc55b1885
Generalize IterativeSolverBase::solve to hanlde any sparse type as the results (instead of SparseMatrix only)
2016-11-06 20:28:18 +01:00
Gael Guennebaud
a5c2d8a3cc
Generalize solve_sparse_through_dense_panels to handle SparseVector.
2016-11-06 15:20:58 +01:00
Gael Guennebaud
f8bfe10613
Add missing friend declaration
2016-11-06 15:20:30 +01:00
Gael Guennebaud
fc7180cda8
Add a default ctor to evaluator<SparseVector>.
...
Needed for evaluator<Solve>.
2016-11-06 15:20:00 +01:00
Gael Guennebaud
4d226ab5b5
Enable swapping between SparseMatrix and SparseVector
2016-11-06 15:15:03 +01:00
Benoit Steiner
ad086b03e4
Removed unnecessary statement
2016-11-05 12:43:27 -07:00
Benoit Steiner
dad177be01
Added missing includes
2016-11-05 10:04:42 -07:00
Gael Guennebaud
55b4fd1d40
Extend mpreal unit test to check LLT with complexes.
2016-11-05 11:28:53 +01:00
Gael Guennebaud
a354c3ca59
Fix compilation of LLT with complex<mpreal>.
2016-11-05 11:28:29 +01:00
Benoit Steiner
d46a36cc84
Merged eigen/eigen into default
2016-11-04 18:22:55 -07:00
Mehdi Goli
0ebe3808ca
Removed the sycl include from Eigen/Core and moved it to Unsupported/Eigen/CXX11/Tensor; added TensorReduction for sycl (full reduction and partial reduction); added TensorReduction test case for sycl (full reduction and partial reduction); fixed the tile size on TensorSyclRun.h based on the device max work group size;
2016-11-04 18:18:19 +00:00
Gael Guennebaud
47d1b4a609
Added tag 3.3-rc2 for changeset ba05572dcb
2016-11-04 09:09:18 +01:00
Gael Guennebaud
ba05572dcb
bump to 3.3-rc2
2016-11-04 09:09:06 +01:00
Benoit Steiner
5c3995769c
Improved AVX512 configuration
2016-11-03 04:50:28 -07:00
Benoit Steiner
fbe672d599
Reenable the generation of dynamic blas libraries.
2016-11-03 04:08:43 -07:00
Benoit Steiner
ca0ba0d9a4
Improved AVX512 support
2016-11-03 04:00:49 -07:00
Benoit Steiner
c80587c92b
Merged eigen/eigen into default
2016-11-03 03:55:11 -07:00
Gael Guennebaud
3f1d0cdc22
bug #1337 : improve doc of homogeneous() and hnormalized()
2016-11-03 11:03:08 +01:00
Gael Guennebaud
78e93ac1ad
bug #1330 : Cholmod supports double precision only, so let's trigger a static assertion if the scalar type does not match this requirement.
2016-11-03 10:21:59 +01:00
Benoit Steiner
3e37166d0b
Merged in benoitsteiner/opencl (pull request PR-244)
...
Disable vectorization on device only when compiling for sycl
2016-11-02 22:01:03 +00:00
Benoit Steiner
0585b2965d
Disable vectorization on device only when compiling for sycl
2016-11-02 11:44:27 -07:00
Benoit Steiner
e6e77ed08b
Don't call lgamma_r when compiling for an Apple device, since the function isn't available on MacOS
2016-11-02 09:55:39 -07:00
Benoit Steiner
b238f387b4
Pulled latest updates from trunk
2016-11-02 08:53:13 -07:00
Benoit Steiner
c8db17301e
Special functions require math.h: make sure it is included.
2016-11-02 08:51:52 -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
Benoit Steiner
e44519744e
Merged in benoitsteiner/opencl (pull request PR-243)
...
Fixed the ambiguity in callig make_tuple for sycl backend.
2016-11-02 02:56:58 +00:00
Rasmus Munk Larsen
0a6ae41555
Merged eigen/eigen into default
2016-11-01 15:37:00 -07:00
Rasmus Munk Larsen
b730952414
Don't attempts to use lgamma_r for CUDA devices.
...
Fix type in lgamma_impl<double>.
2016-11-01 15:34:19 -07:00
Benoit Steiner
7a0e96b80d
Gate the code that refers to cuda fp16 primitives more thoroughly
2016-11-01 12:08:09 -07:00
Mehdi Goli
51af6ae971
Fixed the ambiguity in callig make_tuple for sycl backend.
2016-10-31 16:35:51 +00:00
Benoit Steiner
0a9ad6fc72
Worked around Visual Studio compilation errors
2016-10-28 07:54:27 -07:00
Benoit Steiner
d5f88e2357
Sharded the tensor_image_patch test to help it run on low power devices
2016-10-27 21:48:21 -07:00
Benoit Steiner
0b4b0f11e8
Fixed a few more compilation warnings
2016-10-28 04:01:01 +00:00
Benoit Steiner
306daa24a3
Fixed a compilation warning
2016-10-28 03:50:31 +00:00
Benoit Steiner
8471cf1996
Fixed compilation warning
2016-10-28 03:46:08 +00:00
Benoit Steiner
b0c5bfdf78
Added missing template parameters
2016-10-28 03:43:41 +00:00
Rasmus Munk Larsen
2ebb314fa7
Use threadsafe versions of lgamma and lgammaf if possible.
2016-10-27 16:17:12 -07:00
Gael Guennebaud
530f20c21a
Workaround MSVC issue.
2016-10-27 21:51:37 +02:00
Gael Guennebaud
c3ce4f9ac0
Merged in enricodetoma/eigen (pull request PR-241)
...
Always enable /bigobj for tests to avoid a compile error in MSVC 2015
2016-10-27 19:21:28 +00:00
Benoit Steiner
7d64e6752c
Pulled latest updates from trunk
2016-10-26 18:48:06 -07:00
Benoit Steiner
0a4c4d40b4
Removed a template parameter for fixed sized tensors
2016-10-26 18:47:37 -07: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
enrico.detoma
6ed571744b
Always enable /bigobj for tests to avoid a compile error in MSVC 2015
2016-10-26 22:48:46 +02:00
Gael Guennebaud
97feea9d39
add a generic EIGEN_HAS_CXX11
2016-10-26 15:53:13 +02:00
Gael Guennebaud
ca6a2a5248
Fix warning with ICC
2016-10-26 14:13:05 +02:00
Benoit Steiner
5f2dd503ff
Replaced tabs with spaces
2016-10-25 20:40:58 -07:00
Benoit Steiner
1644bafe29
Code cleanup
2016-10-25 20:36:14 -07:00
Gael Guennebaud
b15a5dc3f4
Fix ICC warnings
2016-10-25 22:20:24 +02:00
Gael Guennebaud
aad72f3c6d
Add missing inline keywords
2016-10-25 20:20:09 +02:00
Benoit Steiner
3e194a6a73
Fixed a typo
2016-10-25 08:42:15 -07: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
2634f9386c
bug #1333 : fix bad usage of const_cast_derived. Better use .data() for that purpose.
2016-10-24 22:22:35 +02:00
Gael Guennebaud
9e8f07d7b5
Cleanup ArrayWrapper and MatrixWrapper by removing redundant accessors.
2016-10-24 22:16:48 +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
Benoit Steiner
b11aab5fcc
Merged in benoitsteiner/opencl (pull request PR-238)
...
Added support for OpenCL to the Tensor Module
2016-10-24 15:30:45 +00: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
Gael Guennebaud
40f62974b7
bug #1328 : workaround a compilation issue with gcc 4.2
2016-10-20 19:19:37 +02:00
Benoit Steiner
cf20b30d65
Merge latest updates from trunk
2016-10-20 09:42:05 -07:00
Luke Iwanski
03b63e182c
Added SYCL include in Tensor.
2016-10-20 15:32:44 +01:00
Benoit Steiner
d3943cd50c
Fixed a few typos in the ternary tensor expressions types
2016-10-19 12:56:12 -07:00
Mehdi Goli
8fb162fc85
Fixing the typo regarding missing #if needed for proper handling of exceptions in Eigen/Core.
2016-10-16 12:52:34 +01:00
Mehdi Goli
e36cb91c99
Fixing the code indentation in the TensorReduction.h file.
2016-10-14 18:03:00 +01:00
Luke Iwanski
2e188dd4d4
Merged ComputeCpp to default.
2016-10-14 16:47:40 +01:00
Mehdi Goli
15380f9a87
Applyiing Benoit's comment to return the missing line back in Eigen/Core
2016-10-14 16:39:41 +01:00
Gael Guennebaud
692b30ca95
Fix previous merge.
2016-10-14 17:16:28 +02:00
Gael Guennebaud
050c681bdd
Merged in rmlarsen/eigen2 (pull request PR-232)
...
Improve performance of parallelized matrix multiply for rectangular matrices
2016-10-14 14:51:09 +00:00
Luke Iwanski
e742da8b28
Merged ComputeCpp into default.
2016-10-14 13:36:51 +01:00
Mehdi Goli
524fa4c46f
Reducing the code by generalising sycl backend functions/structs.
2016-10-14 12:09:55 +01:00
Benoit Steiner
737e4152c3
Merged in lukier/eigen (pull request PR-234)
...
Enabling CUDA in Geometry
2016-10-13 18:09:28 +00:00
Benoit Steiner
d0ee2267d6
Relaxed the resizing checks so that they don't fail with gcc >= 5.3
2016-10-13 10:59:46 -07:00
Robert Lukierski
a94791b69a
Fixes for min and abs after Benoit's comments, switched to numext.
2016-10-13 15:00:22 +01:00
Avi Ginsburg
ac63d6891c
Patch to allow VS2015 & CUDA 8.0 to compile with Eigen included. I'm not sure
...
whether to limit the check to this compiler combination
(` || (EIGEN_COMP_MSVC == 1900 && __CUDACC_VER__) `)
or to leave it as it is. I also don't know if this will have any affect on
including Eigen in device code (I'm not in my current project).
2016-10-13 08:47:32 +00:00
Benoit Steiner
7e4a6754b2
Merged eigen/eigen into default
2016-10-12 22:42:33 -07:00
Benoit Steiner
38b6048e14
Deleted redundant implementation of predux
2016-10-12 14:37:56 -07:00
Gael Guennebaud
e74612b9a0
Remove double ;;
2016-10-12 22:49:47 +02:00
Benoit Steiner
78d2926508
Merged eigen/eigen into default
2016-10-12 13:46:29 -07:00
Benoit Steiner
2e2f48e30e
Take advantage of AVX512 instructions whenever possible to speedup the processing of 16 bit floats.
2016-10-12 13:45:39 -07:00
Gael Guennebaud
f939c351cb
Fix SPQR for rectangular matrices
2016-10-12 22:39:33 +02:00
Gael Guennebaud
091d373ee9
Fix outer-stride.
2016-10-12 21:47:52 +02:00
Robert Lukierski
471075f7ad
Fixes min() warnings.
2016-10-12 18:59:05 +01: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
Robert Lukierski
86711497c4
Adding EIGEN_DEVICE_FUNC in the Geometry module.
...
Additional CUDA necessary fixes in the Core (mostly usage of
EIGEN_USING_STD_MATH).
2016-10-12 16:35:17 +01:00
Rasmus Munk Larsen
47150af1c8
Fix copy-paste error: Must use _mm256_cmp_ps for AVX.
2016-10-12 08:34:39 -07:00
Gael Guennebaud
89e315152c
bug #1325 : fix compilation on NEON with clang
2016-10-12 16:55:47 +02:00
Benoit Steiner
7f0599b6eb
Manually define int16_t and uint16_t when compiling with Visual Studio
2016-10-08 22:56:32 -07:00
Benoit Steiner
5727e4d89c
Reenabled the use of variadic templates on tegra x1 provides that the latest version (i.e. JetPack 2.3) is used.
2016-10-08 22:19:03 +00:00
Benoit Steiner
5266ff8966
Cleaned up a regression test
2016-10-08 19:12:44 +00:00
Benoit Steiner
5c68051cd7
Merge the content of the ComputeCpp branch into the default branch
2016-10-07 11:04:16 -07: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
Benoit Steiner
a498ff7df6
Fixed incorrect comment
2016-10-06 15:27:27 -07:00
Benoit Steiner
8ba3c41fcf
Revergted unecessary change
2016-10-06 15:12:15 -07:00
Benoit Steiner
a7473d6d5a
Fixed compilation error with gcc >= 5.3
2016-10-06 14:33:22 -07:00
Benoit Steiner
5e64cea896
Silenced a compilation warning
2016-10-06 14:24:17 -07:00
Benoit Steiner
33fba3f08d
Merged in rryan/eigen/tensorfunctors (pull request PR-233)
...
Fully support complex types in SumReducer and MeanReducer when building for CUDA by using scalar_sum_op and scalar_product_op instead of operator+ and operator*.
2016-10-06 12:29:19 -07:00
RJ Ryan
bfc264abe8
Add a test that GPU complex product reductions match CPU reductions.
2016-10-06 11:10:14 -07:00
RJ Ryan
e2e9cdd169
Fully support complex types in SumReducer and MeanReducer when building for CUDA by using scalar_sum_op and scalar_product_op instead of operator+ and operator*.
2016-10-06 10:49:48 -07:00
Benoit Steiner
d485d12c51
Added missing AVX intrinsics for fp16: in particular, implemented predux which is required by the matrix-vector code.
2016-10-06 10:41:03 -07:00
Rasmus Munk Larsen
48c635e223
Add a simple cost model to prevent Eigen's parallel GEMM from using too many threads when the inner dimension is small.
...
Timing for square matrices is unchanged, but both CPU and Wall time are significantly improved for skinny matrices. The benchmarks below are for multiplying NxK * KxN matrices with test names of the form BM_OuterishProd/N/K.
Improvements in Wall time:
Run on [redacted] (12 X 3501 MHz CPUs); 2016-10-05T17:40:02.462497196-07:00
CPU: Intel Haswell with HyperThreading (6 cores) dL1:32KB dL2:256KB dL3:15MB
Benchmark Base (ns) New (ns) Improvement
------------------------------------------------------------------
BM_OuterishProd/64/1 3088 1610 +47.9%
BM_OuterishProd/64/4 3562 2414 +32.2%
BM_OuterishProd/64/32 8861 7815 +11.8%
BM_OuterishProd/128/1 11363 6504 +42.8%
BM_OuterishProd/128/4 11128 9794 +12.0%
BM_OuterishProd/128/64 27691 27396 +1.1%
BM_OuterishProd/256/1 33214 28123 +15.3%
BM_OuterishProd/256/4 34312 36818 -7.3%
BM_OuterishProd/256/128 174866 176398 -0.9%
BM_OuterishProd/512/1 7963684 104224 +98.7%
BM_OuterishProd/512/4 7987913 112867 +98.6%
BM_OuterishProd/512/256 8198378 1306500 +84.1%
BM_OuterishProd/1k/1 7356256 324432 +95.6%
BM_OuterishProd/1k/4 8129616 331621 +95.9%
BM_OuterishProd/1k/512 27265418 7517538 +72.4%
Improvements in CPU time:
Run on [redacted] (12 X 3501 MHz CPUs); 2016-10-05T17:40:02.462497196-07:00
CPU: Intel Haswell with HyperThreading (6 cores) dL1:32KB dL2:256KB dL3:15MB
Benchmark Base (ns) New (ns) Improvement
------------------------------------------------------------------
BM_OuterishProd/64/1 6169 1608 +73.9%
BM_OuterishProd/64/4 7117 2412 +66.1%
BM_OuterishProd/64/32 17702 15616 +11.8%
BM_OuterishProd/128/1 45415 6498 +85.7%
BM_OuterishProd/128/4 44459 9786 +78.0%
BM_OuterishProd/128/64 110657 109489 +1.1%
BM_OuterishProd/256/1 265158 28101 +89.4%
BM_OuterishProd/256/4 274234 183885 +32.9%
BM_OuterishProd/256/128 1397160 1408776 -0.8%
BM_OuterishProd/512/1 78947048 520703 +99.3%
BM_OuterishProd/512/4 86955578 1349742 +98.4%
BM_OuterishProd/512/256 74701613 15584661 +79.1%
BM_OuterishProd/1k/1 78352601 3877911 +95.1%
BM_OuterishProd/1k/4 78521643 3966221 +94.9%
BM_OuterishProd/1k/512 258104736 89480530 +65.3%
2016-10-06 10:33:10 -07:00
Benoit Steiner
9f3276981c
Enabling AVX512 should also enable AVX2.
2016-10-06 10:29:48 -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
4131074818
Deleted unecessary CMakeLists.txt file
2016-10-05 18:54:35 -07:00
Benoit Steiner
cb5cd69872
Silenced a compilation warning.
2016-10-05 18:50:53 -07:00
Benoit Steiner
78b569f685
Merged latest updates from trunk
2016-10-05 18:48:55 -07:00
Benoit Steiner
9c2b6c049b
Silenced a few compilation warnings
2016-10-05 18:37:31 -07:00
Benoit Steiner
6f3cd529af
Pulled latest updates from trunk
2016-10-05 18:31:43 -07:00
Benoit Steiner
d7f9679a34
Fixed a couple of compilation warnings
2016-10-05 15:00:32 -07:00
Benoit Steiner
ae1385c7e4
Pull the latest updates from trunk
2016-10-05 14:54:36 -07:00
Benoit Steiner
73b0012945
Fixed compilation warnings
2016-10-05 14:24:24 -07:00
Benoit Steiner
c84084c0c0
Fixed compilation warning
2016-10-05 14:15:41 -07:00
Benoit Steiner
4387433acf
Increased the robustness of the reduction tests on fp16
2016-10-05 10:42:41 -07:00
Benoit Steiner
aad20d700d
Increase the tolerance to numerical noise.
2016-10-05 10:39:24 -07:00
Benoit Steiner
8b69d5d730
::rand() returns a signed integer on win32
2016-10-05 08:55:02 -07:00
Benoit Steiner
ed7a220b04
Fixed a typo that impacts windows builds
2016-10-05 08:51:31 -07:00
Benoit Steiner
ceee1c008b
Silenced compilation warning
2016-10-04 18:47:53 -07:00
Benoit Steiner
698ff69450
Properly characterize the CUDA packet primitives for fp16 as device only
2016-10-04 16:53:30 -07:00
Rasmus Munk Larsen
7f67e6dfdb
Update comment for fast sqrt.
2016-10-04 15:09:11 -07:00
Rasmus Munk Larsen
765615609d
Update comment for fast sqrt.
2016-10-04 15:08:41 -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
6af5ac7e27
Cleanup the cuda executor code.
2016-10-04 08:52:13 -07:00
Benoit Steiner
2f6d1607c8
Cleaned up the random number generation code.
2016-10-04 08:38:23 -07:00
Benoit Steiner
881b90e984
Use explicit type casting to generate packets of zeros.
2016-10-04 08:23:38 -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
Benoit Steiner
409e887d78
Added support for constand std::complex numbers on GPU
2016-10-03 11:06:24 -07:00
Gael Guennebaud
9d6d0dff8f
bug #1317 : fix performance regression with some Block expressions and clang by helping it to remove dead code.
...
The trick is to get rid of the nested expression in the evaluator by copying only the required information (here, the strides).
2016-10-01 15:37:00 +02:00
Gael Guennebaud
8b84801f7f
bug #1310 : workaround a compilation regression from 3.2 regarding triangular * homogeneous
2016-09-30 22:49:59 +02:00
Benoit Steiner
422530946f
Renamed the SYCL tests to follow the standard naming convention.
2016-09-30 08:22:10 -07:00
Gael Guennebaud
67b4f45836
Fix angle range
2016-09-30 12:46:33 +02:00
Gael Guennebaud
27f3970453
Remove std:: prefix
2016-09-30 12:40:41 +02:00
Gael Guennebaud
3860a0bc8f
bug #1312 : Quaternion to AxisAngle conversion now ensures the angle will be in the range [-pi,pi]. This also increases accuracy when q.w is negative.
2016-09-29 23:23:35 +02:00
Gael Guennebaud
33500050c3
bug #1308 : fix compilation of some small products involving nullary-expressions.
2016-09-29 09:40:44 +02:00
Benoit Steiner
27d7628f16
Updated the list of warnings to reflect the new message ids introduced in cuda 8.0
2016-09-28 17:42:59 -07:00
Benoit Steiner
2bda1b0d93
Updated the tensor sum and mean reducer to enable them to process complex numbers on cuda gpus.
2016-09-28 17:08:41 -07:00
Mehdi Goli
dd602e62c8
Converting alias template to nested struct in order to be compatible with CXX-03
2016-09-27 16:21:19 +01:00
Gael Guennebaud
f3a00dd2b5
Merged in sergiu/eigen (pull request PR-229)
...
Disabled MSVC level 4 warning C4714
2016-09-27 09:28:08 +02:00
Gael Guennebaud
892afb9416
Add debug info.
2016-09-26 23:53:57 +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
Benoit Steiner
6565f8d60f
Made the initialization of a CUDA device thread safe.
2016-09-26 11:00:32 -07:00
Gael Guennebaud
48dfe98abd
bug #1308 : fix compilation of vector * rowvector::nullary.
2016-09-25 14:54:35 +02:00
Sergiu Deitsch
fe29157d02
disabled MSVC level 4 warning C4714
...
The level 4 warning (/W4) warns about functions marked as __forceinline not
inlined, and generates a lot of noise.
2016-09-25 14:25:47 +02:00
Benoit Steiner
f6ac51a054
Made TensorEvalTo compatible with c++0x again.
2016-09-23 16:45:17 -07:00
Benoit Steiner
00d4e65f00
Deleted unused TensorMap data member
2016-09-23 16:44:45 -07:00
Gael Guennebaud
86caba838d
bug #1304 : fix Projective * scaling and Projective *= scaling
2016-09-23 13:41:21 +02:00
Gael Guennebaud
b9f7a17e47
Add missing file.
2016-09-23 10:26:08 +02:00
Benoit Steiner
1301d744f8
Made the gaussian generator usable on GPU
2016-09-22 19:04:44 -07:00
Benoit Steiner
2a69290ddb
Added a specialization of Eigen::numext::real and Eigen::numext::imag for std::complex<T> to be used when compiling a cuda kernel. This is unfortunately necessary to be able to process complex numbers from a CUDA kernel on MacOS.
2016-09-22 15:52:23 -07:00
Gael Guennebaud
3946768916
Added tag 3.3-rc1 for changeset 77e27fbeee
2016-09-22 22:38:36 +02:00
Gael Guennebaud
77e27fbeee
bump to 3.3-rc1
2016-09-22 22:37:39 +02:00
Gael Guennebaud
2ada122bc6
merge
2016-09-22 22:33:18 +02:00
Gael Guennebaud
8f2bdde373
merge
2016-09-22 22:32:55 +02:00
Gael Guennebaud
ba0f844d6b
Backout changeset ce3557ca69
2016-09-22 22:28:51 +02:00
Gael Guennebaud
9bcdc8b756
Add a nullary-functor example performing index-based sub-matrices.
2016-09-22 22:27:54 +02:00
Benoit Steiner
50e3bbfc90
Calls x.imag() instead of imag(x) when x is a complex number since the former
...
is a constexpr while the later isn't. This fixes compilation errors triggered by nvcc on Mac.
2016-09-22 13:17:25 -07:00
Gael Guennebaud
ca3746c6f8
Bypass identity reflectors.
2016-09-22 22:07:13 +02:00
Felix Gruber
8bde7da086
fix documentation of LinSpaced
...
The index of the highest value in a LinSpace is size-1.
2016-09-22 14:50:07 +02:00
Gael Guennebaud
66cbabafed
Add a note regarding gcc bug #72867
2016-09-22 11:18:52 +02:00
Christoph Hertzberg
4b377715d7
Do not manually add absolute path to boost-library.
...
Also set C++ standard for blaze to C++14
2016-09-22 00:10:47 +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
9fa2c8650e
Fix alignement of statically allocated temporaries in symv, and trmv.
2016-09-21 17:34:24 +02:00
Gael Guennebaud
ac5377e161
Improve cost estimation of complex division
2016-09-21 17:26:04 +02:00
Gael Guennebaud
5269d11935
Fix compilation if ICC.
2016-09-21 17:08:51 +02:00
Benoit Steiner
26f9907542
Added missing typedefs
2016-09-20 12:58:03 -07:00
RJ Ryan
608b1acd6d
Don't use c++11 features and fix include.
2016-09-20 07:49:05 -07:00
RJ Ryan
b2c6dc48d9
Add CUDA-specific std::complex<T> specializations for scalar_sum_op, scalar_difference_op, scalar_product_op, and scalar_quotient_op.
2016-09-20 07:18:20 -07:00
Benoit Steiner
8a66ca4b10
Pulled latest updates from trunk
2016-09-19 14:13:55 -07:00
Benoit Steiner
59e9edfbf1
Removed EIGEN_DEVICE_FUNC qualifers for the lu(), fullPivLu(), partialPivLu(), and inverse() functions since they aren't ready to run on GPU
2016-09-19 14:13:20 -07:00
Gael Guennebaud
3ada6e4bed
Merged hongkai-dai/eigen/tip into default (bug #1298 )
2016-09-19 22:08:06 +02:00
Benoit Steiner
c3ca9b1e76
Deleted some unecessary and confusing EIGEN_DEVICE_FUNC
2016-09-19 11:33:39 -07:00
Hongkai Dai
5dcc6d301a
remove ternary operator in euler angles
2016-09-19 10:30:30 -07:00
Luke Iwanski
c771df6bc3
Updated the owners of the file.
2016-09-19 14:09:25 +01:00
Luke Iwanski
b91e021172
Merged with default.
2016-09-19 14:03:54 +01:00
Luke Iwanski
cb81975714
Partial OpenCL support via SYCL compatible with ComputeCpp CE.
2016-09-19 12:44:13 +01: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
Christoph Hertzberg
ce3557ca69
Make makeHouseholder more stable for cases where real(c0) is not very small (but the rest is).
2016-09-16 14:24:47 +02:00
Emil Fresk
6edd2e2851
Made AutoDiffJacobian more intuitive to use and updated for C++11
...
Changes:
* Removed unnecessary types from the Functor by inferring from its types
* Removed inputs() function reference, replaced with .rows()
* Updated the forward constructor to use variadic templates
* Added optional parameters to the Fuctor for passing parameters,
control signals, etc
* Has been tested with fixed size and dynamic matricies
Ammendment by chtz: overload operator() for compatibility with not fully conforming compilers
2016-09-16 14:03:55 +02:00
Gael Guennebaud
4adeababf9
Fix undeflow
2016-09-16 11:46:46 +02:00
Gael Guennebaud
18f6e47815
Fix order of "static inline".
2016-09-16 11:32:54 +02:00
Gael Guennebaud
ee62f168e6
Doc: add link from block methods to respective tutorial section.
2016-09-16 11:26:25 +02:00
Gael Guennebaud
ca7f061a5f
bug #828 : clarify documentation of SparseMatrixBase's methods returning a sub-matrix.
2016-09-16 11:23:19 +02:00
Gael Guennebaud
50e203c717
bug #828 : clarify documentation of SparseMatrixBase's unary methods.
2016-09-16 10:40:50 +02:00
Gael Guennebaud
fa9049a544
Let be consistent and consider any denormal number as zero.
2016-09-15 11:24:03 +02:00
Gael Guennebaud
b33144e4df
merge
2016-09-15 11:22:16 +02:00
Benoit Steiner
c0d56a543e
Added several missing EIGEN_DEVICE_FUNC qualifiers
2016-09-14 14:06:21 -07:00
Benoit Steiner
488ad7dd1b
Added missing EIGEN_DEVICE_FUNC qualifiers
2016-09-14 13:35:00 -07:00
Benoit Steiner
779faaaeba
Fixed compilation warnings generated by nvcc 6.5 (and below) when compiling the EIGEN_THROW macro
2016-09-14 09:56:11 -07:00
Gael Guennebaud
1c8347e554
Fix product for custom complex type. (conjugation was ignored)
2016-09-14 18:28:49 +02:00
Benoit Steiner
ff47717f25
Suppress warning 2527 and 2529, which correspond to the "calling a __host__ function from a __host__ __device__ function is not allowed" message in nvcc 6.5.
2016-09-13 12:49:40 -07:00
Benoit Steiner
309190cf02
Suppress message 1222 when compiling with nvcc: this ensures that we don't warnings about unknown warning messages when compiling with older versions of nvcc
2016-09-13 12:42:13 -07:00
Gael Guennebaud
c10620b2b0
Fix typo in doc.
2016-09-13 09:25:07 +02:00
Gael Guennebaud
73c8f2f697
bug #1285 : fix regression introduced in changeset 00c29c2cae
2016-09-13 07:58:39 +02:00
Benoit Steiner
e4d4d15588
Register the cxx11_tensor_device only for recent cuda architectures (i.e. >= 3.0) since the test instantiate contractions that require a modern gpu.
2016-09-12 19:01:52 -07:00
Benoit Steiner
4dfd888c92
CUDA contractions require arch >= 3.0: don't compile the cuda contraction tests on older architectures.
2016-09-12 18:49:01 -07:00
Benoit Steiner
028e299577
Fixed a bug impacting some outer reductions on GPU
2016-09-12 18:36:52 -07:00
Benoit Steiner
5f50f12d2c
Added the ability to compute the absolute value of a complex number on GPU, as well as a test to catch the problem.
2016-09-12 13:46:13 -07:00
Benoit Steiner
8321dcce76
Merged latest updates from trunk
2016-09-12 10:33:05 -07:00
Benoit Steiner
eb6ba00cc8
Properly size the list of waiters
2016-09-12 10:31:55 -07:00
Benoit Steiner
a618094b62
Added a resize method to MaxSizeVector
2016-09-12 10:30:53 -07:00
Gael Guennebaud
228ae29591
Fix compilation on 32 bits systems.
2016-09-09 22:34:38 +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
d780983f59
Doc: explain minimal requirements on nullary functors
2016-09-06 23:14:52 +02:00
Gael Guennebaud
85fb517eaf
Generalize ScalarBinaryOpTraits to any complex-real combination as defined by NumTraits (instead of supporting std::complex only).
2016-09-06 17:23:15 +02:00
Gael Guennebaud
447f269561
Disable previous workaround.
2016-09-06 15:49:02 +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
e1642f485c
bug #1288 : fix memory leak in arpack wrapper.
2016-09-05 18:01:30 +02:00
Gael Guennebaud
19a95b3309
Fix shadowing wrt Eigen::Index
2016-09-05 17:19:47 +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
d123717e21
Fix for msvc 2012 and older
2016-09-05 15:26:56 +02:00
Benoit Steiner
87a8a1975e
Fixed a regression test
2016-09-02 19:29:33 -07:00
Benoit Steiner
13df3441ae
Use MaxSizeVector instead of std::vector: xcode sometimes assumes that std::vector allocates aligned memory and therefore issues aligned instruction to initialize it. This can result in random crashes when compiling with AVX instructions enabled.
2016-09-02 19:25:47 -07:00
Benoit Steiner
373c340b71
Fixed a typo
2016-09-02 15:41:17 -07:00
Benoit Steiner
cadd124d73
Pulled latest update from trunk
2016-09-02 15:30:02 -07:00
Benoit Steiner
05b0518077
Made the index type an explicit template parameter to help some compilers compile the code.
2016-09-02 15:29:34 -07:00
Benoit Steiner
adf864fec0
Merged in rmlarsen/eigen (pull request PR-222)
...
Fix CUDA build broken by changes to min and max reduction.
2016-09-02 14:11:20 -07:00
Benoit Steiner
5a6be66cef
Turned the Index type used by the nullary wrapper into a template parameter.
2016-09-02 14:10:29 -07:00
Rasmus Munk Larsen
13e93ca8b7
Fix CUDA build broken by changes to min and max reduction.
2016-09-02 13:41:36 -07:00
Benoit Steiner
6c05c3dd49
Fix the cxx11_tensor_cuda.cu test on 32bit platforms.
2016-09-02 11:12:16 -07:00
Gael Guennebaud
49c0390ce0
merge
2016-09-02 15:24:14 +02:00
Gael Guennebaud
d6c8366d84
Fix compilation with MSVC 2012
2016-09-02 15:23:32 +02:00
Benoit Steiner
039e225f7f
Added a test for nullary expressions on CUDA
...
Also check that we can mix 64 and 32 bit indices in the same compilation unit
2016-09-01 13:28:12 -07:00
Benoit Steiner
c53f783705
Updated the contraction code to support constant inputs.
2016-09-01 11:41:27 -07:00
Gael Guennebaud
ef54723dbe
One more msvc fix iteration, the previous one was over-simplified for visual
2016-09-01 15:04:53 +02:00
Gael Guennebaud
46475eff9a
Adjust Tensor module wrt recent change in nullary functor
2016-09-01 13:40:45 +02:00
Gael Guennebaud
72a4d49315
Fix compilation with CUDA 8
2016-09-01 13:39:33 +02:00
Gael Guennebaud
f9f32e9e2d
Fix compilation with nvcc
2016-09-01 13:06:14 +02:00
Gael Guennebaud
3d946e42b3
Fix compilation with visual studio
2016-09-01 12:59:32 +02:00
Benoit Steiner
221f619bea
Merged in rmlarsen/eigen (pull request PR-221)
...
Fix bugs to make min- and max reducers work with correctly with IEEE infinities.
2016-08-31 15:10:10 -07:00
Rasmus Munk Larsen
a1e092d1e8
Fix bugs to make min- and max reducers with correctly with IEEE infinities.
2016-08-31 15:04:16 -07:00
Gael Guennebaud
836fa25a82
Make sure sizeof is truelly needed, thus improving SFINAE portability.
2016-08-31 23:40:18 +02:00
Gael Guennebaud
84cf6e42ca
minor tweaks in has_* helpers
2016-08-31 23:04:14 +02:00
Gael Guennebaud
7ae819123c
Simplify CwiseNullaryOp example.
2016-08-31 15:46:04 +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
3456247437
bug #1283 : quick fix for products involving uncommon general block access to vectors.
2016-08-31 08:17:15 +02:00
Gael Guennebaud
8c48d42530
Fix 4x4 inverse with non-linear destination
2016-08-30 23:16:38 +02:00
Gael Guennebaud
e7fbbc2748
Doc: add links and discourage user to write their own expression (better use CwiseNullaryOp)
2016-08-30 15:57:46 +02:00
Gael Guennebaud
1e2ab8b0b3
Doc: add an exemple showing how custom expression can be advantageously implemented via CwiseNullaryOp.
2016-08-30 15:40:41 +02:00
Gael Guennebaud
9c9e23858e
Doc: split customizing-eigen page into sub-pages and re-structure a bit the different topics
2016-08-30 11:10:08 +02:00
Gael Guennebaud
cffe8bbff7
Doc: add link to example
2016-08-30 10:45:27 +02:00
Gael Guennebaud
c57317035a
Fix unit test for 1x1 matrices
2016-08-30 10:20:23 +02:00
Gael Guennebaud
1f84f0d33a
merge EulerAngles module
2016-08-30 10:01:53 +02:00
Gael Guennebaud
68e803a26e
Fix warning
2016-08-30 09:21:57 +02:00
Gael Guennebaud
e074f720c7
Include missing forward declaration of SparseMatrix
2016-08-29 18:56:46 +02:00
Gael Guennebaud
2915e1fc5d
Revert part of changeset 5b3a6f51d3
...
to keep accuracy of smallest eigenvalues.
2016-08-29 14:14:18 +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
8f4b4ad5fb
use ::hlog if available.
2016-08-29 11:05:32 +02:00
Gael Guennebaud
35a8e94577
bug #1167 : simplify installation of header files using cmake's install(DIRECTORY ...) command.
2016-08-29 10:59:37 +02:00
Gael Guennebaud
0decc31aa8
Add generic implementation of conj_helper for custom complex types.
2016-08-29 09:42:29 +02:00
Gael Guennebaud
fd9caa1bc2
bug #1282 : fix implicit double to float conversion warning
2016-08-28 22:45:56 +02:00
Gael Guennebaud
68d1897e8a
Make sure that our log1p implementation is called as a last resort only.
2016-08-26 15:30:55 +02:00
Gael Guennebaud
fe60856fed
Add overload of numext::log1p for float/double in CUDA
2016-08-26 15:28:59 +02:00
Gael Guennebaud
0f56b5a6de
enable vectorization path when testing half on cuda, and add test for log1p
2016-08-26 14:55:51 +02:00
Gael Guennebaud
965e595f02
Add missing log1p method
2016-08-26 14:55:00 +02:00
Gael Guennebaud
1329c55875
Fix compilation with boost::multiprec.
2016-08-25 14:54:39 +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
Gael Guennebaud
8132a12625
bug #1268 : detect faillure in LDLT and report them through info()
2016-08-23 23:15:55 +02:00
Gael Guennebaud
bde9b456dc
Typo
2016-08-23 21:36:36 +02:00
Gael Guennebaud
326320ec7b
Fix compilation in non C++11 mode.
2016-08-23 19:28:57 +02:00
Gael Guennebaud
ea2e968257
Address several implicit scalar conversions.
2016-08-23 18:44:33 +02:00
Gael Guennebaud
0a6a50d1b0
Cleanup eiegnvector extraction: leverage matrix products and compile-time sizes, remove numerous useless temporaries.
2016-08-23 18:14:37 +02:00
Gael Guennebaud
00b2666853
bug #645 : patch from Tobias Wood implementing the extraction of eigenvectors in GeneralizedEigenSolver
2016-08-23 17:37:38 +02:00
Gael Guennebaud
504a4404f1
Optimize expression matching "d?=a-b*c" as "d?=a; d?=b*c;"
2016-08-23 16:52:22 +02:00
Gael Guennebaud
e47a8928ec
Fix compilation in check_for_aliasing due to ambiguous specializations
2016-08-23 16:19:10 +02:00
Gael Guennebaud
6739f6bb1b
Merged in traversaro/eigen-1/traversaro/modify-findeigen3cmake-to-find-eigen3con-1469782761059 (pull request PR-213)
...
Modify FindEigen3.cmake to find Eigen3Config.cmake
2016-08-23 15:53:57 +02:00
Gael Guennebaud
ef3de20481
Cleanup cost of tanh
2016-08-23 14:39:55 +02:00
Gael Guennebaud
b3151bca40
Implement pmadd for float and double to make it consistent with the vectorized path when FMA is available.
2016-08-23 14:24:08 +02:00
Gael Guennebaud
a4c266f827
Factorize the 4 copies of tanh implementations, make numext::tanh consistent with array::tanh, enable fast tanh in fast-math mode only.
2016-08-23 14:23:08 +02:00
Gael Guennebaud
82147cefff
Fix possible overflow and biais in integer random generator
2016-08-23 13:25:31 +02:00
Silvio Traversaro
068ccab9fe
FindEigen3.cmake : search for package only if EIGEN3_INCLUDE_DIR is not already defined
2016-08-22 22:13:10 +00:00
Gael Guennebaud
581b6472d1
bug #1265 : remove outdated notes
2016-08-22 23:25:39 +02:00
Igor Babuschkin
59bacfe520
Fix compilation on CUDA 8 by removing call to h2log1p
2016-08-15 23:38:05 +01:00
Benoit Steiner
34ae80179a
Use array_prod instead of calling TotalSize since TotalSize is only available on DSize.
2016-08-15 10:29:14 -07:00
Benoit Steiner
2556565b4b
Merged in ibab/eigen/extend-log1p (pull request PR-218)
...
Fix compilation on CUDA 8 due to missing h2log1p function
2016-08-15 08:31:03 -07:00
Benoit Steiner
30dd6f5e34
Close branch extend-log1p
2016-08-15 08:31:03 -07:00
Benoit Steiner
fe73648c98
Fixed a bug in the documentation.
2016-08-12 10:00:43 -07:00
Christoph Hertzberg
9636a8ed43
bug #1273 : Add parentheses when redefining eigen_assert
2016-08-12 15:34:21 +02:00
Christoph Hertzberg
c83b754ee0
bug #1272 : Disable assertion when total number of columns is zero.
...
Also moved assertion to finished() method and adapted unit-test
2016-08-12 15:15:34 +02:00
Benoit Steiner
e3a8dfb02f
std::erfcf doesn't exist: use numext::erfc instead
2016-08-11 15:24:06 -07:00
Benoit Steiner
64e68cbe87
Don't attempt to optimize partial reductions when the optimized implementation doesn't buy anything.
2016-08-08 19:29:59 -07:00
Benoit Steiner
5157ce8cbf
Merged in ibab/eigen/extend-log1p (pull request PR-217)
...
Add log1p support for CUDA and half floats
2016-08-08 14:50:00 -07:00
Igor Babuschkin
aee693ac52
Add log1p support for CUDA and half floats
2016-08-08 20:24:59 +01:00
Benoit Steiner
72096f3bd4
Merged in suiyuan2009/eigen/fix_tanh_inconsistent_for_tensorflow (pull request PR-215)
...
Fix_tanh_inconsistent_for_tensorflow
2016-08-08 09:06:45 -07:00
Christoph Hertzberg
3e4a33d4ba
bug #1272 : Let CommaInitializer work for more border cases (enhances fix of bug #1242 ).
...
The unit test tests all combinations of 2x2 block-sizes from 0 to 3.
2016-08-08 17:26:48 +02:00
Ziming Dong
1031223c09
fix tanh inconsistent
2016-08-06 19:48:50 +08:00
Ziming Dong
5cf1e4c79b
create fix_tanh_inconsistent branch
2016-08-06 15:54:33 +08:00
Christoph Hertzberg
fe4b927e9c
Add aliases Eigen_*_DIR to Eigen3_*_DIR
...
This is to make configuring work again after project was renamed from Eigen to Eigen3
2016-08-05 15:21:14 +02:00
Benoit Steiner
fe778427f2
Fixed the constructors of the new half_base class.
2016-08-04 18:32:26 -07:00
Benoit Steiner
5eea1c7f97
Fixed cut and paste bug in debud message
2016-08-04 17:34:13 -07:00
Benoit Steiner
9506343349
Fixed the isnan, isfinite and isinf operations on GPU
2016-08-04 17:25:53 -07:00
Benoit Steiner
b50d8f8c4a
Extended a regression test to validate that we basic fp16 support works with cuda 7.0
2016-08-03 16:50:13 -07:00
Benoit Steiner
fad9828769
Deleted redundant regression test.
2016-08-03 16:08:37 -07:00
Benoit Steiner
373bb12dc6
Check that it's possible to forward declare the hlaf type.
2016-08-03 16:07:31 -07:00
Gael Guennebaud
17b9a55d98
Move Eigen::half_impl::half to Eigen::half while preserving the free functions to the Eigen::half_impl namespace together with ADL
2016-08-04 00:00:43 +02:00
Benoit Steiner
ca2cee2739
Merged in ibab/eigen (pull request PR-206)
...
Expose real and imag methods on Tensors
2016-08-03 11:53:04 -07:00
Benoit Steiner
d92df04ce8
Cleaned up the new float16 test a bit
2016-08-03 11:50:07 -07:00
Benoit Steiner
81099ef482
Added a test for fp16
2016-08-03 11:41:17 -07:00
Benoit Steiner
a20b58845f
CUDA_ARCH isn't always defined, so avoid relying on it too much when figuring out which implementation to use for reductions. Instead rely on the device to tell us on which hardware version we're running.
2016-08-03 10:00:43 -07:00
Gael Guennebaud
819d0cea1b
List PARDISO solver.
2016-08-02 23:32:41 +02:00
Christoph Hertzberg
f4404777ff
Change project name to Eigen3, to be compatible with FindEigen3.cmake and Eigen3Config.cmake.
...
This is related to pull-requests 214.
2016-08-02 17:08:57 +00:00
Benoit Steiner
fd220dd8b0
Use numext::conj instead of std::conj
2016-08-01 18:16:16 -07:00
Benoit Steiner
e256acec7c
Avoid unecessary object copies
2016-08-01 17:03:39 -07:00
Gael Guennebaud
7995cec90c
Fix vectorization logic for coeff-based product for some corner cases.
2016-07-31 15:20:22 +02:00
Benoit Steiner
02fe89f5ef
half implementation has been moved to half_impl namespace
2016-07-29 15:09:34 -07:00
Benoit Steiner
2693fd54bf
bug #1266 : half implementation has been moved to half_impl namespace
2016-07-29 13:45:56 -07:00
Christoph Hertzberg
c5b893f434
bug #1266 : half implementation has been moved to half_impl namespace
2016-07-29 18:36:08 +02:00
Silvio Traversaro
5e51a361fe
Modify FindEigen3.cmake to find Eigen3Config.cmake
2016-07-29 08:59:38 +00:00
klimpel
ca5effa16c
MSVC-2010 is making problems with SFINAE again. But restricting to the variant for very old compilers (enum, template<typename C> for both function definitions) fixes the problem.
2016-07-28 15:58:17 +01:00
Gael Guennebaud
4057f9b1fc
Enable slice-vectorization+inner-unrolling when unaligned vectorization is allowed. For instance, this permits to vectorize 5x5 matrices (including product)
2016-07-28 13:47:33 +02:00
Gael Guennebaud
5fbe7aa604
Update and fix Cholesky mini benchmark
2016-07-28 11:26:30 +02:00
Gael Guennebaud
a72752caac
Vectorize more small product expressions by letting the general assignement logic decides on the sizes that are OK for vectorization.
2016-07-28 11:21:07 +02:00
Gael Guennebaud
cc2f6d68b1
bug #1264 : fix compilation
2016-07-27 23:30:47 +02:00
Gael Guennebaud
188590db82
Add instructions for LAPACKE+Accelerate
2016-07-27 15:07:35 +02:00
Gael Guennebaud
8972323c08
Big 1261: add missing max(ADS,ADS) overload (same for min)
2016-07-27 14:52:48 +02:00
Gael Guennebaud
5d94dc85e5
bug #1260 : add regression test
2016-07-27 14:38:30 +02:00
Gael Guennebaud
0d7039319c
bug #1260 : remove doubtful specializations of ScalarBinaryOpTraits
2016-07-27 14:35:52 +02:00
Christoph Hertzberg
d3d7c6245d
Add brackets to block matrix and fixed some typos
2016-07-27 09:55:39 +02:00
Gael Guennebaud
0eece608b4
Added tag 3.3-beta2 for changeset f6b3cf8de9
2016-07-26 23:52:14 +02:00
Gael Guennebaud
f6b3cf8de9
Bump to 3.3-beta2
2016-07-26 23:51:59 +02:00
Gael Guennebaud
9d16b6e1cf
Formatting
2016-07-26 23:51:43 +02:00
Gael Guennebaud
fd2f989b1d
Fix testing of nearly zero input matrices.
2016-07-26 14:46:02 +02:00
Gael Guennebaud
c9e3e438eb
Add more very small numbers in the list of nearly "zero" values when testing SVD and EVD algorithms
2016-07-26 14:45:44 +02:00
Gael Guennebaud
95113cb15c
Improve robustness of 2x2 eigenvalue with shifting and scaling
2016-07-26 14:43:54 +02:00
Gael Guennebaud
7f7e84aa36
Fix compilation with MKL support
2016-07-26 13:31:29 +02:00
Gael Guennebaud
429028b652
Typo.
2016-07-26 12:12:53 +02:00
Gael Guennebaud
6b89fa802c
Typos.
2016-07-26 12:08:04 +02:00
Gael Guennebaud
c581c8fa79
Fix with expession template scalar types.
2016-07-26 11:33:28 +02:00
Gael Guennebaud
8021aed89e
Split BLAS/LAPACK versus MKL documentation
2016-07-26 11:11:59 +02:00
Gael Guennebaud
757971e7ea
bug #1258 : fix compilation of Map<SparseMatrix>::coeffRef
2016-07-26 09:40:19 +02:00
Gael Guennebaud
c9425492c8
Update doc.
2016-07-25 18:41:26 +02:00
Gael Guennebaud
0592b4cfbf
merge
2016-07-25 18:20:22 +02:00
Gael Guennebaud
9c663e4ee8
Clean references to MKL in LAPACKe support.
2016-07-25 18:20:08 +02:00
Gael Guennebaud
0c06077efa
Rename MKL files
2016-07-25 18:00:47 +02:00
Gael Guennebaud
4d54e3dd33
bug #173 : remove dependency to MKL for LAPACKe backend.
2016-07-25 17:55:07 +02:00
Benoit Steiner
3d3d34e442
Deleted dead code.
2016-07-25 08:53:37 -07:00
Gael Guennebaud
34b483e25d
bug #1249 : enable use of __builtin_prefetch for GCC, clang, and ICC only.
2016-07-25 15:17:45 +02:00
Gael Guennebaud
6d5daf32f5
bug #1255 : comment out broken and unsused line.
2016-07-25 14:48:30 +02:00
Gael Guennebaud
f9598d73b5
bug #1250 : fix pow() for AutoDiffScalar with custom nested scalar type.
2016-07-25 14:42:19 +02:00
Gael Guennebaud
fd1117f2be
Implement digits10 for mpreal
2016-07-25 14:38:55 +02:00
Gael Guennebaud
9908020d36
Add minimal support for Array<string>, and fix Tensor<string>
2016-07-25 14:25:56 +02:00
Gael Guennebaud
4184a3e544
Extend boost.multiprec unit test with ET on, complexes, and general/generalized eigenvalue solvers.
2016-07-25 12:36:22 +02:00
Gael Guennebaud
1b2049fbda
Enforce scalar types in calls to max/min (helps with expression template scalar types)
2016-07-25 12:35:10 +02:00
Gael Guennebaud
b118bc76eb
Add digits10 overload for complex.
2016-07-25 12:33:21 +02:00
Gael Guennebaud
c96af5381f
Remove custom complex division function cdiv.
2016-07-25 12:31:58 +02:00
Gael Guennebaud
e1c7c5968a
Update doc.
2016-07-25 11:18:04 +02:00
Gael Guennebaud
8fffc81606
Add NumTraits::digits10() function based on numeric_limits::digits10 and make use of it for printing matrices.
2016-07-25 11:13:01 +02:00
Gael Guennebaud
5f03584752
merge
2016-07-23 17:52:44 +02:00
Gael Guennebaud
1b0353c659
Fix misuse of dummy_precesion in eigenvalues solvers
2016-07-23 17:52:31 +02:00
Benoit Steiner
c6b0de2c21
Improved partial reductions in more cases
2016-07-22 17:18:20 -07:00
Gael Guennebaud
72744d93ef
Allows the compiler to inline outer products (the change from default to dont-inline in changeset 737bed19c1
...
was not motivated)
2016-07-22 17:02:28 +02:00
Gael Guennebaud
32d95e86c9
merge
2016-07-22 16:43:12 +02:00
Gael Guennebaud
60d5980a41
add a note
2016-07-22 15:46:23 +02:00
Gael Guennebaud
d7a0e52478
Fix testing of log nearby 1
2016-07-22 15:44:26 +02:00
Gael Guennebaud
7acf23c14c
Truely split unit test.
2016-07-22 15:41:23 +02:00
Gael Guennebaud
24af67a6cc
Fix boostmultiprec for C++03
2016-07-22 15:30:54 +02:00
Gael Guennebaud
395c835f4b
Fix CUDA compilation
2016-07-22 15:30:24 +02:00
Gael Guennebaud
d075d122ea
Move half unit test from unsupported to main tests
2016-07-22 14:34:19 +02:00
Gael Guennebaud
47afc9a365
More cleaning in half:
...
- put its definition and functions in its own half_impl namespace such that the free function does not polute the Eigen namespace while still making them visible for half through ADL.
- expose Eigen::half throguh a using statement
- move operator<< from std to half_float namespace
2016-07-22 14:33:28 +02:00
Gael Guennebaud
0f350a8b7e
Fix CUDA compilation
2016-07-21 18:47:07 +02:00
Gael Guennebaud
bf91a44f4a
Use ADL and log10 for printing matrices.
2016-07-21 15:48:24 +02:00
Gael Guennebaud
82798162c0
Extend unit testing of half with ADL and arrays.
2016-07-21 15:47:21 +02:00
Gael Guennebaud
87fbda812f
Add missing log10 and random generator for half.
2016-07-21 15:46:45 +02:00
Gael Guennebaud
01d12d3e82
Some cleanup in Halh: standard functions should be defined in the namespace of the class half to make ADL work, and thus the global is* functions can be removed.
2016-07-21 15:10:48 +02:00
Gael Guennebaud
007edee1ac
Add a doc page summarizing the true speed of Eigen's decompositions.
2016-07-21 12:32:02 +02:00
Gael Guennebaud
9b76be9d21
Update benchmark for dense solver to stress least-squares pb, and to output a HTML table
2016-07-21 12:30:53 +02:00
Gael Guennebaud
72950effdf
enable testing of Boost.Multiprecision with expression templates
2016-07-20 18:21:30 +02:00
Yi Lin
7b4abc2b1d
Fixed a code comment error
2016-07-20 22:28:54 +08:00
Gael Guennebaud
b64b9d0172
Add a unit test to stress our solvers with Boost.Multiprecision
2016-07-20 15:20:14 +02:00
Gael Guennebaud
5e4dda8a12
Enable custom scalar types in some unit tests.
2016-07-20 15:19:17 +02:00
Gael Guennebaud
87d480d785
Make use of EIGEN_TEST_MAX_SIZE
2016-07-20 15:14:20 +02:00
Gael Guennebaud
7722913475
Fix ambiguous specialization with custom scalar type
2016-07-20 15:13:44 +02:00
Gael Guennebaud
fd057f86b3
Complete the coeff-wise math function table.
2016-07-20 12:14:10 +02:00
Gael Guennebaud
9e8476ef22
Add missing Eigen::rsqrt global function
2016-07-20 11:59:49 +02:00
Gael Guennebaud
4b4c296d6e
Simplify ScalarBinaryOpTraits by removing the Defined enum, and extend its documentation.
2016-07-20 09:56:39 +02:00
Gael Guennebaud
e3bf874c83
Workaround MSVC 2010 compilation issue.
2016-07-18 15:17:25 +02:00
Gael Guennebaud
0f89c6d6b5
Add a summary of possible values for EIGEN_COMP_MSVC
2016-07-18 15:16:13 +02:00
Gael Guennebaud
18884f17d7
Remove static constant declaration: this enforces compiler to generate costly code for thread safety.
2016-07-18 15:05:17 +02:00
Gael Guennebaud
79574e384e
Make scalar_product_op the default (instead of void)
2016-07-18 12:03:05 +02:00
Gael Guennebaud
6a3c451c1c
Permits call to explicit ctor.
2016-07-18 12:02:20 +02:00
Gael Guennebaud
0c3fe4aca5
merge
2016-07-18 10:44:15 +02:00
Gael Guennebaud
db9b154193
Add missing non-const reverse method in VectorwiseOp.
2016-07-16 15:19:28 +02:00
Gael Guennebaud
461cd819c2
Workaround VS2015 bug
2016-07-13 18:46:01 +02:00
Gael Guennebaud
5ea0864c81
Fix regression in a previous commit: some diagonal entry might not be treated by the 2x2 real preconditioner.
2016-07-13 18:37:54 +02:00
Benoit Steiner
20f7ef2f89
An evalTo expression is only aligned iff both the lhs and the rhs are aligned.
2016-07-12 10:56:42 -07:00
Gael Guennebaud
b4343aa67e
Avoid division by very small entries when extracting singularvalues, and explicitly handle the 1x1 complex case.
2016-07-12 17:22:03 +02:00
Gael Guennebaud
e2aa58b631
Consider denormals as zero in makeJacobi and 2x2 SVD.
...
This also fix serious issues with x387 for which values can be much smaller than the smallest denormal!
2016-07-12 17:21:03 +02:00
Gael Guennebaud
263993a7b6
Fix test for nearly null input
2016-07-12 17:19:26 +02:00
Gael Guennebaud
9ab35d8ba4
Fix compilation of doc
2016-07-12 16:47:39 +02:00
Gael Guennebaud
19614497ae
Add some doxygen's images to support both old and recent doxygen versions
...
(with some vague definitions of old and recent ;) )
2016-07-12 16:45:43 +02:00
Gael Guennebaud
c98bac2966
Manually add -stdd=c++11 to nvcc for old cmake versions
2016-07-12 09:29:18 +02:00
Benoit Steiner
013a904237
Pulled latest updates from trunk
2016-07-11 14:29:05 -07:00
Benoit Steiner
40eb97516c
reverted unintended change.
2016-07-11 14:28:03 -07:00
Benoit Steiner
03b71c273e
Made the packetmath test compile again. A better fix would be to move the special function tests to the unsupported directory where the code now resides.
2016-07-11 13:50:24 -07:00
Benoit Steiner
3a2dd352ae
Improved the contraction mapper to properly support tensor products
2016-07-11 13:43:41 -07:00
Benoit Steiner
0bc020be9d
Improved the detection of packet size in the tensor scan evaluator.
2016-07-11 12:14:56 -07:00
Gael Guennebaud
a96a7ce3f7
Move CUDA's special functions to SpecialFunctions module.
2016-07-11 18:39:11 +02:00
Gael Guennebaud
bec35f4c55
Clarify that SpecialFunctions is unsupported
2016-07-11 18:38:40 +02:00
Gael Guennebaud
fd60966310
merge
2016-07-11 18:11:47 +02:00
Gael Guennebaud
7d636349dc
Fix configuration of CUDA:
...
- preserve user defined CUDA_NVCC_FLAGS
- remove the -ansi flag that conflicts with -std=c++11
- do not add -std=c++11 if already there
2016-07-11 18:09:04 +02:00
klimpel
8b3fc31b55
compile fix (SFINAE variant apparently didn't work for all compilers) for the following compiler/platform:
...
gcc (GCC) 4.1.2 20080704 (Red Hat 4.1.2-46)
Copyright (C) 2006 Free Software Foundation, Inc.
2016-07-11 17:42:22 +02:00
Gael Guennebaud
3e348fdcf9
Workaround MSVC bug
2016-07-11 15:24:52 +02:00
Gael Guennebaud
131ee4bb8e
Split test_slice_in_expr which seems to be huge for visual
2016-07-11 11:46:55 +02:00
Gael Guennebaud
194daa3048
Fix assertion (it did not make sense for static_val types)
2016-07-11 11:39:27 +02:00
Gael Guennebaud
18c35747ce
Emulate _BitScanReverse64 for 32 bits builds
2016-07-11 11:38:04 +02:00
Konstantinos Margaritis
ef05463fcf
Merged kmargar/eigen/tip into default, Altivec/VSX port should be working ok now.
2016-07-10 16:11:46 +03:00
Konstantinos Margaritis
9f7caa7e7d
minor fixes for big endian altivec/vsx
2016-07-10 07:05:10 -03:00
Christoph Hertzberg
3c795c6923
bug #1119 : Adjust call to ?gssvx for SuperLU 5
...
Also improved corresponding cmake module to detect versions 5.x
Based on patch by Christoph Grüninger.
2016-07-10 02:29:57 +02:00
Gael Guennebaud
57113e00f9
Relax strict equality
2016-07-09 23:37:11 +02:00
Gael Guennebaud
599f8ba617
Change runtime to compile-time conditional.
2016-07-08 11:39:43 +02:00
Gael Guennebaud
544935101a
Fix warnings
2016-07-08 11:38:52 +02:00
Gael Guennebaud
59bf2774a3
Fix warnings
2016-07-08 11:38:11 +02:00
Gael Guennebaud
2f7e2614e7
bug #1232 : refactor special functions as a new SpecialFunctions module, currently in unsupported/.
2016-07-08 11:13:55 +02:00
Gael Guennebaud
8b7431d8fd
fix compilation with c++11
2016-07-07 15:18:23 +02:00
Gael Guennebaud
69378eed0b
Split huge unit test
2016-07-07 15:18:04 +02:00
Gael Guennebaud
c684e37d32
Prevent division by zero.
2016-07-07 11:03:01 +02:00
Gael Guennebaud
179ebb88f9
Fix warning
2016-07-07 09:16:40 +02:00
Gael Guennebaud
5d2dada197
Fix warnings
2016-07-07 09:05:15 +02:00
Gael Guennebaud
f5e780fb05
split huge unit test
2016-07-07 08:59:59 +02:00
Gael Guennebaud
66917299a9
Add debug output
2016-07-06 22:27:15 +02:00
Gael Guennebaud
5ca2457fa5
Fix unit test.
2016-07-06 22:25:24 +02:00
Gael Guennebaud
9b68ed4537
Relax is_equal to is_approx because scaling might modify last bit.
2016-07-06 15:02:49 +02:00
Gael Guennebaud
c3b23d7dbf
Fix support of Intel's VML
2016-07-06 14:07:32 +02:00
Gael Guennebaud
8ec4d6480d
Fix compilation with recent updates of icc 2016
2016-07-06 14:07:14 +02:00
Gael Guennebaud
5b3a6f51d3
Improve numerical robustness of RealSchur: add scaling and compare sub-diag entries to largest diagonal entry instead of the 2 neighbors.
2016-07-06 13:45:30 +02:00
Gael Guennebaud
d2b5a19e0f
Fix warning.
2016-07-06 11:05:30 +02:00
Gael Guennebaud
367ef66af3
Re-enable some specializations for Assignment<.,Product<>>
2016-07-05 22:58:14 +02:00
Gael Guennebaud
155d8d8603
Fix compilation with msvc
2016-07-05 14:43:42 +02:00
Gael Guennebaud
43696ede8f
Revert unwanted changes.
2016-07-04 22:40:36 +02:00
Gael Guennebaud
b39fd8217f
Fix nesting of SolveWithGuess, and add unit test.
2016-07-04 17:47:47 +02:00
Gael Guennebaud
ec02af1047
Fix template resolution.
2016-07-04 17:37:33 +02:00
Gael Guennebaud
fbcfc2f862
Add unit test for solveWithGuess, and fix template resolution.
2016-07-04 17:19:38 +02:00
Gael Guennebaud
7f7839c12f
Add documentation and exemples for inplace decomposition.
2016-07-04 17:18:26 +02:00
Gael Guennebaud
32a41ee659
bug #707 : add inplace decomposition through Ref<> for Cholesky, LU and QR decompositions.
2016-07-04 15:13:35 +02:00
Gael Guennebaud
75e80792cc
Update relevent list of changesets.
2016-07-04 14:32:34 +02:00
Gael Guennebaud
dacc544b84
asm escape was not strong enough to prevent too aggressive compiler optimization let's fallback to no-inline.
2016-07-04 14:32:15 +02:00
Gael Guennebaud
b74e45906c
Few fixes in perf-monitoring.
2016-07-04 14:30:50 +02:00
Gael Guennebaud
ce9fc0ce14
fix clang compilation
2016-07-04 12:59:02 +02:00
Gael Guennebaud
440020474c
Workaround compilation issue with msvc
2016-07-04 12:49:19 +02:00
Gael Guennebaud
e61cee7a50
Fix compilation of some unit tests with msvc
2016-07-04 11:49:03 +02:00
Gael Guennebaud
91b3039013
Change the semantic of the last template parameter of Assignment from "Scalar" to "SFINAE" only.
...
The previous "Scalar" semantic was obsolete since we allow for different scalar types in the source and destination expressions.
On can still specialize on scalar types through SFINAE and/or assignment functor.
2016-07-04 11:02:00 +02:00
Gael Guennebaud
0fa9e4a15c
Fix performance regression in dgemm introduced by changeset 5d51a7f12c
2016-07-02 17:35:08 +02:00
Gael Guennebaud
672076db5d
Fix performance regression introduced in changeset e56aabf205
...
.
Register blocking sizes are better handled by the cache size heuristics.
The current code introduced very small blocks, for instance for 9x9 matrix,
thus killing performance.
2016-07-02 15:40:56 +02:00
Igor Babuschkin
78f37ca03c
Expose real and imag methods on Tensors
2016-07-01 17:34:31 +01:00
Gael Guennebaud
d161b8f03a
Merged in carpent/eigen (pull request PR-204)
...
Use complete nested namespace Eigen::internal, thus making the custom static assertion macros available outside the Eigen's namespace.
2016-07-01 09:56:44 +02:00
Benoit Steiner
cb2d8b8fa6
Made it possible to compile reductions for an old cuda architecture and run them on a recent gpu.
2016-06-29 15:42:01 -07:00
Benoit Steiner
b2a47641ce
Made the code compile when using CUDA architecture < 300
2016-06-29 15:32:47 -07:00
Benoit Steiner
b047ca765f
Merged in ibab/eigen/fix-tensor-scan-gpu (pull request PR-205)
...
Add missing CUDA kernel to tensor scan op
2016-06-29 14:52:19 -07:00
Igor Babuschkin
85699850d9
Add missing CUDA kernel to tensor scan op
...
The TensorScanOp implementation was missing a CUDA kernel launch.
This adds a simple placeholder implementation.
2016-06-29 11:54:35 +01:00
Justin Carpentier
6126886a67
Use complete nested namespace Eigen::internal
2016-06-28 20:09:25 +02:00
Benoit Jacob
328c5d876a
Undo changes in AltiVec --- I don't have any way to test there.
2016-06-28 11:15:25 -04:00
Benoit Jacob
38fb606052
Avoid global variables with static constructors in NEON/Complex.h
2016-06-28 11:12:49 -04:00
Benoit Steiner
1a9f92e781
Added a test to validate the tensor scan evaluation on GPU. The test is currently disabled since the code segfaults.
2016-06-27 16:02:52 -07:00
Benoit Steiner
75c333f94c
Don't store the scan axis in the evaluator of the tensor scan operation since it's only used in the constructor.
...
Also avoid taking references to values that may becomes stale after a copy construction.
2016-06-27 10:32:38 -07:00
xantares
c52c8d76da
Disable pkgconfig only for native windows builds
...
ie enable it for MinGW
2016-06-27 16:43:08 +00:00
Gael Guennebaud
d937a420a2
Fix compilation with MSVC by using our portable numext::log1p implementation.
2016-08-22 15:44:21 +02:00
Gael Guennebaud
2d5731e40a
bug #1270 : bypass custom asm for pmadd and recent clang version
2016-08-22 15:38:03 +02:00
Gael Guennebaud
49b005181a
Define EIGEN_COMP_CLANG to clang version as major*100+minor (e.g., 307 corresponds to clang 3.7)
2016-08-22 15:37:05 +02:00
Gael Guennebaud
130f891bb0
bug #1278 : ease parsing
2016-08-22 15:00:29 +02:00
Benoit Steiner
7944d4431f
Made the cost model cwiseMax and cwiseMin methods consts to help the PowerPC cuda compiler compile this code.
2016-08-18 13:46:36 -07:00
Benoit Steiner
647a51b426
Force the inlining of a simple accessor.
2016-08-18 12:31:02 -07:00
Benoit Steiner
a452dedb4f
Merged in ibab/eigen/double-tensor-reduction (pull request PR-216)
...
Enable efficient Tensor reduction for doubles on the GPU (continued)
2016-08-18 12:29:54 -07:00
Igor Babuschkin
18c67df31c
Fix remaining CUDA >= 300 checks
2016-08-18 17:18:30 +01:00
Igor Babuschkin
1569a7d7ab
Add the necessary CUDA >= 300 checks back
2016-08-18 17:15:12 +01:00
Benoit Steiner
2b17f34574
Properly detect the type of the result of a contraction.
2016-08-16 16:00:30 -07:00
Igor Babuschkin
841e075154
Remove CUDA >= 300 checks and enable outer reductin for doubles
2016-08-06 18:07:50 +01:00
Igor Babuschkin
0425118e2a
Merge upstream changes
2016-08-05 14:34:57 +01:00
Igor Babuschkin
9537e8b118
Make use of atomicExch for atomicExchCustom
2016-08-05 14:29:58 +01:00
Igor Babuschkin
eeb0d880ee
Enable efficient Tensor reduction for doubles
2016-07-01 19:08:26 +01:00
Gael Guennebaud
d476cadbb8
bug #1247 : fix regression in compilation of pow(integer,integer), and add respective unit tests.
2016-06-25 10:12:06 +02:00
Gael Guennebaud
cfff370549
Fix hyperbolic functions for autodiff.
2016-06-24 23:21:35 +02:00
Gael Guennebaud
c50c73cae2
Fix missing specialization.
2016-06-24 23:10:39 +02:00
Gael Guennebaud
3852351793
merge pull request 198
2016-06-24 11:48:17 +02:00
Gael Guennebaud
6dd9077070
Fix some unused typedef warnings.
2016-06-24 11:34:21 +02:00
Gael Guennebaud
ce90647fa5
Fix NumTraits<AutoDiff>
2016-06-24 11:34:02 +02:00
Gael Guennebaud
fa39f81b48
Fix instantiation of ScalarBinaryOpTraits for AutoDiff.
2016-06-24 11:33:30 +02:00
Gael Guennebaud
cd577a275c
Relax promote_scalar_arg logic to enable promotion to Expr::Scalar if conversion to Expr::Literal fails.
...
This is useful to cancel expression template at the scalar level, e.g. with AutoDiff<AutoDiff<>>.
This patch also defers calls to NumTraits in cases for which types are not directly compatible.
2016-06-24 11:28:54 +02:00
Gael Guennebaud
deb45ad4bc
bug #1245 : fix compilation with msvc
2016-06-24 09:52:25 +02:00
Rasmus Munk Larsen
a9c1e4d7b7
Return -1 from CurrentThreadId when called by thread outside the pool.
2016-06-23 16:40:07 -07:00
Rasmus Munk Larsen
d39df320d2
Resolve merge.
2016-06-23 15:08:03 -07:00
Gael Guennebaud
361dbd246d
Add unit test for printing empty tensors
2016-06-23 18:54:30 +02:00
Gael Guennebaud
360a743a10
bug #1241 : does not emmit anything for empty tensors
2016-06-23 18:47:31 +02:00
Gael Guennebaud
55fc04e8b5
Fix operator priority
2016-06-23 15:36:42 +02:00
Gael Guennebaud
bf2d5edecc
Fix warning.
2016-06-23 15:35:17 +02:00
Gael Guennebaud
7c6561485a
merge PR 194
2016-06-23 15:29:57 +02:00
Konstantinos Margaritis
be107e387b
fix compilation with clang 3.9, fix performance with pset1, use vector operators instead of intrinsics in some cases
2016-06-23 10:19:05 -03:00
Gael Guennebaud
76faf4a965
Introduce a NumTraits<T>::Literal type to be used for literals, and
...
improve mixing type support in operations between arrays and scalars:
- 2 * ArrayXcf is now optimized in the sense that the integer 2 is properly promoted to a float instead of a complex<float> (fix a regression)
- 2.1 * ArrayXi is now forbiden (previously, 2.1 was converted to 2)
- This mechanism should be applicable to any custom scalar type, assuming NumTraits<T>::Literal is properly defined (it defaults to T)
2016-06-23 14:27:20 +02:00
Gael Guennebaud
a3f7edf7e7
Biug 1242: fix comma init with empty matrices.
2016-06-23 10:25:04 +02:00
Benoit Steiner
a29a2cb4ff
Silenced a couple of compilation warnings generated by xcode
2016-06-22 16:43:02 -07:00
Benoit Steiner
f8fcd6b32d
Turned the constructor of the PerThread struct into what is effectively a constant expression to make the code compatible with a wider range of compilers
2016-06-22 16:03:11 -07:00
Benoit Steiner
c58df31747
Handle empty tensors in the print functions
2016-06-21 09:22:43 -07:00
Benoit Steiner
de32f8d656
Fixed the printing of rank-0 tensors
2016-06-20 10:46:45 -07:00
Konstantinos Margaritis
8c34b5a0e3
mostly cleanups and modernizing code
2016-06-19 16:13:17 -03:00
Konstantinos Margaritis
b410d46482
mostly cleanups and modernizing code
2016-06-19 16:12:52 -03:00
Konstantinos Margaritis
b80379bda0
fixed pexp<Packet2d>, was failing tests
2016-06-19 16:11:58 -03:00
Tal Hadad
8e198d6835
Complete docs and add ostream operator for EulerAngles.
2016-06-19 20:42:45 +03:00
Benoit Steiner
b055590e91
Made log1p_impl usable inside a GPU kernel
2016-06-16 11:37:40 -07:00
Geoffrey Lalonde
72c95383e0
Add autodiff coverage for standard library hyperbolic functions, and tests.
...
* * *
Corrected tanh derivatived, moved test definitions.
* * *
Added more test cases, removed lingering lines
2016-06-15 23:33:19 -07:00
Gael Guennebaud
67c12531e5
Fix warnings with gcc
2016-06-15 18:11:33 +02:00
Gael Guennebaud
eb91345d64
Move scalar/expr to ArrayBase and fix documentation
2016-06-15 15:22:03 +02:00
Gael Guennebaud
4794834397
Propagate functor to ScalarBinaryOpTraits
2016-06-15 09:58:49 +02:00
Gael Guennebaud
c55035b9c0
Include the cost of stores in unrolling of triangular expressions.
2016-06-15 09:57:33 +02:00
Benoit Steiner
7d495d890a
Merged in ibab/eigen (pull request PR-197)
...
Implement exclusive scan option for Tensor library
2016-06-14 17:54:59 -07:00
Benoit Steiner
aedc5be1d6
Avoid generating pseudo random numbers that are multiple of 5: this helps
...
spread the load over multiple cpus without havind to rely on work stealing.
2016-06-14 17:51:47 -07:00
Gael Guennebaud
4e7c3af874
Cleanup useless helper: internal::product_result_scalar
2016-06-15 00:04:10 +02:00
Gael Guennebaud
101ea26f5e
Include the cost of stores in unrolling (also fix infinite unrolling with expression costing 0 like Constant)
2016-06-15 00:01:16 +02:00
Igor Babuschkin
c4d10e921f
Implement exclusive scan option
2016-06-14 19:44:07 +01:00
Gael Guennebaud
76236cdea4
merge
2016-06-14 15:33:47 +02:00
Gael Guennebaud
1004c4df99
Cleanup unused functors.
2016-06-14 15:27:28 +02:00
Gael Guennebaud
70dad84b73
Generalize expr/expr and scalar/expr wrt scalar types.
2016-06-14 15:26:37 +02:00
Gael Guennebaud
62134082aa
Update AutoDiffScalar wrt to scalar-multiple.
2016-06-14 15:06:35 +02:00
Gael Guennebaud
5d38203735
Update Tensor module to use bind1st_op and bind2nd_op
2016-06-14 15:06:03 +02:00
Gael Guennebaud
396d9cfb6e
Generalize expr.pow(scalar), pow(expr,scalar) and pow(scalar,expr).
...
Internal: scalar_pow_op (unary) is removed, and scalar_binary_pow_op is renamed scalar_pow_op.
2016-06-14 14:10:07 +02:00
Gael Guennebaud
a9bb653a68
Update doc (scalar_add_op is now deprecated)
2016-06-14 12:07:00 +02:00
Gael Guennebaud
a8c08e8b8e
Implement expr+scalar, scalar+expr, expr-scalar, and scalar-expr as binary expressions, and generalize supported scalar types.
...
The following functors are now deprecated: scalar_add_op, scalar_sub_op, and scalar_rsub_op.
2016-06-14 12:06:10 +02:00
Gael Guennebaud
756ac4a93d
Fix doc.
2016-06-14 12:03:39 +02:00
Gael Guennebaud
f925dba3d9
Fix compilation of BVH example
2016-06-14 11:32:09 +02:00
Gael Guennebaud
12350d3ac7
Add unit test for AlignedBox::center
2016-06-14 11:31:52 +02:00
Gael Guennebaud
bcc0f38f98
Add unittesting plugins to scalar_product_op and scalar_quotient_op to help chaking that types are properly propagated.
2016-06-14 11:31:27 +02:00
Gael Guennebaud
f57fd78e30
Generalize coeff-wise sparse products to support different scalar types
2016-06-14 11:29:54 +02:00
Gael Guennebaud
f5b1c73945
Set cost of constant expression to 0 (the cost should be amortized through the expression)
2016-06-14 11:29:06 +02:00
Gael Guennebaud
deb8306e60
Move MatrixBase::operaotr*(UniformScaling) as a free function in Scaling.h, and fix return type.
2016-06-14 11:28:03 +02:00
Gael Guennebaud
64fcfd314f
Implement scalar multiples and division by a scalar as a binary-expression with a constant expression.
...
This slightly complexifies the type of the expressions and implies that we now have to distinguish between scalar*expr and expr*scalar to catch scalar-multiple expression (e.g., see BlasUtil.h), but this brings several advantages:
- it makes it clear on each side the scalar is applied,
- it clearly reflects that we are dealing with a binary-expression,
- the complexity of the type is hidden through macros defined at the end of Macros.h,
- distinguishing between "scalar op expr" and "expr op scalar" is important to support non commutative fields (like quaternions)
- "scalar op expr" is now fully equivalent to "ConstantExpr(scalar) op expr"
- scalar_multiple_op, scalar_quotient1_op and scalar_quotient2_op are not used anymore in officially supported modules (still used in Tensor)
2016-06-14 11:26:57 +02:00
Gael Guennebaud
39781dc1e2
Fix compilation of evaluator unit test
2016-06-14 11:03:26 +02:00
Tal Hadad
6edfe8771b
Little bit docs
2016-06-13 22:03:19 +03:00
Tal Hadad
6e1c086593
Add static assertion
2016-06-13 21:55:17 +03:00
Gael Guennebaud
3c12e24164
Add bind1st_op and bind2nd_op helpers to turn binary functors into unary ones, and implement scalar_multiple2 and scalar_quotient2 on top of them.
2016-06-13 16:18:59 +02:00
Gael Guennebaud
7a9ef7bbb4
Add default template parameters for the second scalar type of binary functors.
...
This enhences backward compatibility.
2016-06-13 16:17:23 +02:00
Gael Guennebaud
2ca2ffb65e
check for mixing types in "array / scalar" expressions
2016-06-13 16:15:32 +02:00
Gael Guennebaud
4c61f00838
Add missing explicit scalar conversion
2016-06-12 22:42:13 +02:00
Tal Hadad
06206482d9
More docs, and minor code fixes
2016-06-12 23:40:17 +03:00
Gael Guennebaud
a3a4714aba
Add debug output.
2016-06-11 14:41:53 +02:00
Gael Guennebaud
83904a21c1
Make sure T(i+1,i)==0 when diagonalizing T(i:i+1,i:i+1)
2016-06-11 14:41:36 +02:00
Benoit Steiner
65d33e5898
Merged in ibab/eigen (pull request PR-195)
...
Add small fixes to TensorScanOp
2016-06-10 19:31:17 -07:00
Benoit Steiner
a05607875a
Don't refer to the half2 type unless it's been defined
2016-06-10 11:53:56 -07:00
Gael Guennebaud
fabae6c9a1
Cleanup
2016-06-10 15:58:33 +02:00
Gael Guennebaud
5de8d7036b
Add real.pow(complex), complex.pow(real) unit tests.
2016-06-10 15:58:22 +02:00
Gael Guennebaud
5fdd703629
Enable mixing types in numext::pow
2016-06-10 15:58:04 +02:00
Gael Guennebaud
2e238bafb6
Big 279: enable mixing types for comparisons, min, and max.
2016-06-10 15:05:43 +02:00
Gael Guennebaud
0028049380
bug #1240 : Remove any assumption on NEON vector types.
2016-06-09 23:08:11 +02:00
Igor Babuschkin
86aedc9282
Add small fixes to TensorScanOp
2016-06-07 20:06:38 +01:00
Christoph Hertzberg
db0118342c
Fixed compilation of BVH_Example (required for make doc)
2016-06-07 19:17:18 +02:00
Benoit Steiner
84b2060a9e
Fixed compilation error with gcc 4.4
2016-06-06 17:16:19 -07:00
Gael Guennebaud
2c462f4201
Clean handling for void type in EIGEN_CHECK_BINARY_COMPATIBILIY
2016-06-06 23:11:38 +02:00
Gael Guennebaud
3d71d3918e
Disable shortcuts for res ?= prod when the scalar types do not match exactly.
2016-06-06 23:10:55 +02:00
Benoit Steiner
7ef9f47b58
Misc small improvements to the reduction code.
2016-06-06 14:09:46 -07:00
Benoit Steiner
ea75dba201
Added missing EIGEN_DEVICE_FUNC qualifiers to the unary array ops
2016-06-06 13:32:28 -07:00
Benoit Steiner
33f0340188
Implement result_of for the new ternary functors
2016-06-06 12:06:42 -07:00
Tal Hadad
e30133e439
Doc EulerAngles class, and minor fixes.
2016-06-06 22:01:40 +03:00
Gael Guennebaud
df24f4a01d
bug #1201 : improve code generation of affine*vec with MSVC
2016-06-06 16:46:46 +02:00
Benoit Steiner
9137f560f0
Moved assertions to the constructor to make the code more portable
2016-06-06 07:26:48 -07:00
Gael Guennebaud
66e99ab6a1
Relax mixing-type constraints for binary coefficient-wise operators:
...
- Replace internal::scalar_product_traits<A,B> by Eigen::ScalarBinaryOpTraits<A,B,OP>
- Remove the "functor_is_product_like" helper (was pretty ugly)
- Currently, OP is not used, but it is available to the user for fine grained tuning
- Currently, only the following operators have been generalized: *,/,+,-,=,*=,/=,+=,-=
- TODO: generalize all other binray operators (comparisons,pow,etc.)
- TODO: handle "scalar op array" operators (currently only * is handled)
- TODO: move the handling of the "void" scalar type to ScalarBinaryOpTraits
2016-06-06 15:11:41 +02:00
Benoit Steiner
1f1e0b9e30
Silenced compilation warning
2016-06-05 12:59:11 -07:00
Benoit Steiner
5b95b4daf9
Moved static assertions into the class constructor to make the code more portable
2016-06-05 12:57:48 -07:00
Christoph Hertzberg
d7e3e4bb04
Removed executable bits from header files.
2016-06-05 10:15:41 +02:00
Eugene Brevdo
c53687dd14
Add randomized properties tests for betainc special function.
2016-06-05 11:10:30 -07:00
Rasmus Munk Larsen
f1f2ff8208
size_t -> int
2016-06-03 18:06:37 -07:00
Rasmus Munk Larsen
76308e7fd2
Add CurrentThreadId and NumThreads methods to Eigen threadpools and TensorDeviceThreadPool.
2016-06-03 16:28:58 -07:00
Sean Templeton
bd21243821
Fix compile errors initializing packets on ARM DS-5 5.20
...
The ARM DS-5 5.20 compiler fails compiling with the following errors:
"src/Core/arch/NEON/PacketMath.h", line 113: Error: #146 : too many initializer values
Packet4f countdown = EIGEN_INIT_NEON_PACKET4(0, 1, 2, 3);
^
"src/Core/arch/NEON/PacketMath.h", line 118: Error: #146 : too many initializer values
Packet4i countdown = EIGEN_INIT_NEON_PACKET4(0, 1, 2, 3);
^
"src/Core/arch/NEON/Complex.h", line 30: Error: #146 : too many initializer values
static uint32x4_t p4ui_CONJ_XOR = EIGEN_INIT_NEON_PACKET4(0x00000000, 0x80000000, 0x00000000, 0x80000000);
^
"src/Core/arch/NEON/Complex.h", line 31: Error: #146 : too many initializer values
static uint32x2_t p2ui_CONJ_XOR = EIGEN_INIT_NEON_PACKET2(0x00000000, 0x80000000);
^
The vectors are implemented as two doubles, hence the too many initializer values error.
Changed the code to use intrinsic load functions which all compilers
implementing NEON should have.
2016-06-03 10:51:35 -05:00
Gael Guennebaud
1fc2746417
Make Arrays's ctor/assignment noexcept
2016-06-09 22:52:37 +02:00
Benoit Steiner
37638dafd7
Simplified the code that dispatches vectorized reductions on GPU
2016-06-09 10:29:52 -07:00
Benoit Steiner
66796e843d
Fixed definition of some of the reducer_traits
2016-06-09 08:50:01 -07:00
Benoit Steiner
4434b16694
Pulled latest updates from trunk
2016-06-09 08:25:47 -07:00
Benoit Steiner
14a112ee15
Use signed integers more consistently to encode the number of threads to use to evaluate a tensor expression.
2016-06-09 08:25:22 -07:00
Benoit Steiner
8f92c26319
Improved code formatting
2016-06-09 08:23:42 -07:00
Benoit Steiner
aa33446dac
Improved support for vectorization of 16-bit floats
2016-06-09 08:22:27 -07:00
Gael Guennebaud
e2b3836326
Include recent changesets that played with product's kernel
2016-06-09 17:13:33 +02:00
Gael Guennebaud
2bd59b0e0d
Take advantage that T is already diagonal in the extraction of generalized complex eigenvalues.
2016-06-09 17:12:03 +02:00
Gael Guennebaud
c1f9ca9254
Update RealQZ to reduce 2x2 diagonal block of T corresponding to non reduced diagonal block of S to positive diagonal form.
...
This step involve a real 2x2 SVD problem. The respective routine is thus in src/misc/ to be shared by both EVD and AVD modules.
2016-06-09 17:11:03 +02:00
Gael Guennebaud
15890c304e
Add unit test for non symmetric generalized eigenvalues
2016-06-09 16:17:27 +02:00
Gael Guennebaud
a20d2ec1c0
Fix shadow variable, and indexing.
2016-06-09 16:16:22 +02:00
Abhijit Kundu
0beabb4776
Fixed type conversion from int
2016-06-08 16:12:04 -04:00
Gael Guennebaud
df095cab10
Fixes for PARDISO: warnings, and defaults to metis+ in-core mode.
2016-06-08 18:31:19 +02:00
Gael Guennebaud
9fc8379328
Fix extraction of complex eigenvalue pairs in real generalized eigenvalue problems.
2016-06-08 16:39:11 +02:00
Christoph Hertzberg
9dd9d58273
Copied a regression test from 3.2 branch.
2016-06-08 15:36:42 +02:00
Benoit Steiner
8fd57a97f2
Enable the vectorization of adds and mults of fp16
2016-06-07 18:22:18 -07:00
Benoit Steiner
d6d39c7ddb
Added missing EIGEN_DEVICE_FUNC
2016-06-07 14:35:08 -07:00
Gael Guennebaud
8d97ba6b22
bug #725 : make move ctor/assignment noexcept.
2016-06-03 14:28:25 +02:00
Gael Guennebaud
e8b922ca63
Fix MatrixFunctions module.
2016-06-03 09:21:35 +02:00
Gael Guennebaud
82293f38d6
Fix unit test.
2016-06-03 08:12:14 +02:00
Gael Guennebaud
fe62c06d9b
Fix compilation.
2016-06-03 07:47:38 +02:00
Gael Guennebaud
969b8959a0
Fix compilation: Matrix does not indirectly live in the internal namespace anymore!
2016-06-03 07:44:58 +02:00
Gael Guennebaud
f2c2465acc
Fix function dependencies
2016-06-03 07:44:18 +02:00
Benoit Steiner
c3c8ad8046
Align the first element of the Waiter struct instead of padding it. This reduces its memory footprint a bit while achieving the goal of preventing false sharing
2016-06-02 21:17:41 -07:00
Eugene Brevdo
39baff850c
Add TernaryFunctors and the betainc SpecialFunction.
...
TernaryFunctors and their executors allow operations on 3-tuples of inputs.
API fully implemented for Arrays and Tensors based on binary functors.
Ported the cephes betainc function (regularized incomplete beta
integral) to Eigen, with support for CPU and GPU, floats, doubles, and
half types.
Added unit tests in array.cpp and cxx11_tensor_cuda.cu
Collapsed revision
* Merged helper methods for betainc across floats and doubles.
* Added TensorGlobalFunctions with betainc(). Removed betainc() from TensorBase.
* Clean up CwiseTernaryOp checks, change igamma_helper to cephes_helper.
* betainc: merge incbcf and incbd into incbeta_cfe. and more cleanup.
* Update TernaryOp and SpecialFunctions (betainc) based on review comments.
2016-06-02 17:04:19 -07:00
Benoit Steiner
02db4e1a82
Disable the tensor tests when using msvc since older versions of the compiler fail to handle this code
2016-06-04 08:21:17 -07:00
Benoit Steiner
c21eaedce6
Use array_prod to compute the number of elements contained in the input tensor expression
2016-06-04 07:47:04 -07:00
Benoit Steiner
36a4500822
Merged in ibab/eigen (pull request PR-192)
...
Add generic scan method
2016-06-03 17:28:33 -07:00
Benoit Steiner
c2a102345f
Improved the performance of full reductions.
...
AFTER:
BM_fullReduction/10 4541 4543 154017 21.0M items/s
BM_fullReduction/64 5191 5193 100000 752.5M items/s
BM_fullReduction/512 9588 9588 71361 25.5G items/s
BM_fullReduction/4k 244314 244281 2863 64.0G items/s
BM_fullReduction/5k 359382 359363 1946 64.8G items/s
BEFORE:
BM_fullReduction/10 9085 9087 74395 10.5M items/s
BM_fullReduction/64 9478 9478 72014 412.1M items/s
BM_fullReduction/512 14643 14646 46902 16.7G items/s
BM_fullReduction/4k 260338 260384 2678 60.0G items/s
BM_fullReduction/5k 385076 385178 1818 60.5G items/s
2016-06-03 17:27:08 -07:00
Igor Babuschkin
dc03b8f3a1
Add generic scan method
2016-06-03 17:37:04 +01:00
Gael Guennebaud
5b77481d58
merge
2016-06-02 22:21:45 +02:00
Gael Guennebaud
53feb73b45
Remove dead code.
2016-06-02 22:19:55 +02:00
Gael Guennebaud
2c00ac0b53
Implement generic scalar*expr and expr*scalar operator based on scalar_product_traits.
...
This is especially useful for custom scalar types, e.g., to enable float*expr<multi_prec> without conversion.
2016-06-02 22:16:37 +02:00
Rasmus Munk Larsen
811aadbe00
Add syntactic sugar to Eigen tensors to allow more natural syntax.
...
Specifically, this enables expressions involving:
scalar + tensor
scalar * tensor
scalar / tensor
scalar - tensor
2016-06-02 12:41:28 -07:00
Tal Hadad
52e4cbf539
Merged eigen/eigen into default
2016-06-02 22:15:20 +03:00
Tal Hadad
2aaaf22623
Fix Gael reports (except documention)
...
- "Scalar angle(int) const" should be "const Vector& angles() const"
- then method "coeffs" could be removed.
- avoid one letter names like h, p, r -> use alpha(), beta(), gamma() ;)
- about the "fromRotation" methods:
- replace the ones which are not static by operator= (as in Quaternion)
- the others are actually static methods: use a capital F: FromRotation
- method "invert" should be removed.
- use a macro to define both float and double EulerAnglesXYZ* typedefs
- AddConstIf -> not used
- no needs for NegateIfXor, compilers are extremely good at optimizing away branches based on compile time constants:
if(IsHeadingOpposite-=IsEven) res.alpha() = -res.alpha();
2016-06-02 22:12:57 +03:00
Benoit Steiner
6021c90fdf
Merged in ibab/eigen (pull request PR-189)
...
Add scan op to Tensor module
2016-06-02 08:08:11 -07:00
Gael Guennebaud
8b6f53222b
bug #1193 : fix lpNorm<Infinity> for empty input.
2016-06-02 15:29:59 +02:00
Gael Guennebaud
d616a81294
Disable MSVC's "decorated name length exceeded, name was truncated" warning in unit tests.
2016-06-02 14:48:38 +02:00
Gael Guennebaud
61a32f2a4c
Fix pointer to long conversion warning.
2016-06-02 14:45:45 +02:00
Igor Babuschkin
fbd7ed6ff7
Add tensor scan op
...
This is the initial implementation a generic scan operation.
Based on this, cumsum and cumprod method have been added to TensorBase.
2016-06-02 13:35:47 +01:00
Benoit Steiner
0ed08fd281
Use a single PacketSize variable
2016-06-01 21:19:05 -07:00
Benoit Steiner
8f6fedc55f
Fixed compilation warning
2016-06-01 21:14:46 -07:00
Benoit Steiner
c3cada38e2
Speedup a test
2016-06-01 21:13:00 -07:00
Gael Guennebaud
360e311b66
Doc: add some cross references (also fix empty macro argument warning)
2016-06-01 23:34:09 +02:00
Benoit Steiner
873e6ac54b
Silenced compilation warning generated by nvcc.
2016-06-01 14:20:50 -07:00
Benoit Steiner
d27b0ad4c8
Added support for mean reductions on fp16
2016-06-01 11:12:07 -07:00
Gael Guennebaud
cd221a62ee
Doc: start of a table summarizing coefficient-wise math functions.
2016-06-01 17:09:48 +02:00
Gael Guennebaud
3c69afca4c
Add missing ArrayBase::log1p
2016-06-01 17:08:47 +02:00
Gael Guennebaud
89099b0cf7
Expose log1p to Array.
2016-06-01 17:00:08 +02:00
Gael Guennebaud
afd33539dd
Doc: makes the global unary math functions visible to doxygen (and docuement them)
2016-06-01 15:27:13 +02:00
Gael Guennebaud
77e652d8ad
Doc: improve documentation of Map<SparseMatrix>
2016-06-01 10:03:32 +02:00
Gael Guennebaud
da4970ead2
Doc: disable inlining of inherited members, workaround Doxygen's limited C++ parsing abilities, and improve doc of MapBase.
2016-06-01 09:38:49 +02:00
Benoit Steiner
099b354ca7
Pulled latest updates from trunk
2016-05-31 10:34:16 -07:00
Benoit Steiner
5aeb3687c4
Only enable optimized reductions of fp16 if the reduction functor supports them
2016-05-31 10:33:40 -07:00
Benoit Steiner
b6e306f189
Improved support for CUDA 8.0
2016-05-31 09:47:59 -07:00
Gael Guennebaud
1d3b253329
bug #1181 : help MSVC inlining.
2016-05-31 17:23:42 +02:00
Gael Guennebaud
d79eee05ef
Fix compilation with old icc
2016-05-31 17:13:51 +02:00
Gael Guennebaud
2c1b56f4c1
bug #1238 : fix SparseMatrix::sum() overload for un-compressed mode.
2016-05-31 10:56:53 +02:00
Benoit Steiner
c4bd3b1f21
Silenced some compilation warnings triggered by nvcc 8.0
2016-05-27 14:40:49 -07:00
Benoit Steiner
e2946d962d
Reimplement clamp as a static function.
2016-05-27 12:58:43 -07:00
Benoit Steiner
e96d36d4cd
Use NULL instead of nullptr to preserve the compatibility with cxx03
2016-05-27 12:54:06 -07:00
Benoit Steiner
abc815798b
Added a new operation to enable more powerful tensorindexing.
2016-05-27 12:22:25 -07:00
Benoit Steiner
5707537592
Fixed option '--relaxed-constexpr' has been deprecated and replaced by option '--expt-relaxed-constexpr' warning generated by nvcc 7.5
2016-05-27 10:47:53 -07:00
Benoit Steiner
3a5d6a3c38
Disable the use of MMX instructions since the code is broken on many platforms
2016-05-27 09:13:26 -07:00
Christoph Hertzberg
f2c86384f4
Cleaner implementation of dont_over_optimize.
2016-05-27 11:13:38 +02:00
Gael Guennebaud
22a035db95
Fix compilation when defaulting to row-major
2016-05-27 10:31:11 +02:00
Gael Guennebaud
e0cb73b46b
Fix compilation with old ICC version (use C99 types instead of C++11 ones)
2016-05-27 10:28:09 +02:00
Benoit Steiner
1ae2567861
Fixed some compilation warnings
2016-05-26 15:57:19 -07:00
Benoit Steiner
094f4a56c8
Deleted extra namespace
2016-05-26 14:49:51 -07:00
Benoit Steiner
1a47844529
Preserve the ability to vectorize the evaluation of an expression even when it involves a cast that isn't vectorized (e.g fp16 to float)
2016-05-26 14:37:09 -07:00
Benoit Steiner
36369ab63c
Resolved merge conflicts
2016-05-26 13:39:39 -07:00
Benoit Steiner
28fcb5ca2a
Merged latest reduction improvements
2016-05-26 12:19:33 -07:00
Benoit Steiner
b24cf21235
Merged latest code improvements
2016-05-26 11:57:50 -07:00
Benoit Steiner
c1c7f06c35
Improved the performance of inner reductions.
2016-05-26 11:53:59 -07:00
Benoit Steiner
22d02c9855
Improved the coverage of the fp16 reduction tests
2016-05-26 11:12:16 -07:00
Christoph Hertzberg
41dcd047d7
bug #1237 : Redefine eigen_assert instead of disabling assertions for documentation snippets
2016-05-26 18:13:33 +02:00
Benoit Steiner
8288b0aec2
Code cleanup.
2016-05-26 09:00:04 -07:00
Gael Guennebaud
7ff5fadcc0
Disable usage of MMX with msvc.
2016-05-26 17:58:46 +02:00
Gael Guennebaud
e8cef383b7
bug #1236 : fix possible integer overflow in density estimation.
2016-05-26 17:51:04 +02:00
Gael Guennebaud
35df3a32eb
Disabled GCC6's ignored-attributes warning in packetmath unit test.
2016-05-26 17:42:58 +02:00
Gael Guennebaud
db62719eda
Fix some conversion warnings in unit tests.
2016-05-26 17:42:12 +02:00
Gael Guennebaud
fdcad686ee
Fix numerous pointer-to-integer conversion warnings in unit tests.
2016-05-26 17:41:28 +02:00
Gael Guennebaud
30d97c03ce
Defer the allocation of the working space:
...
- it is not always needed,
- and this fixes a long-to-float conversion warning
2016-05-26 17:39:42 +02:00
Gael Guennebaud
e08f54e9eb
Fix copy ctor prototype.
2016-05-26 17:37:25 +02:00
Gael Guennebaud
c7f54b11ec
linspaced's divisor for integer is better stored as the underlying scalar type.
2016-05-26 17:36:54 +02:00
Gael Guennebaud
bebc5a2147
Fix/handle some int-to-long conversions.
2016-05-26 17:35:53 +02:00
Gael Guennebaud
00c29c2cae
Store permutation's determinant as char.
...
This also fixes some long to float conversion warnings
2016-05-26 17:34:23 +02:00
Gael Guennebaud
2f56d91063
Fix a pointer to integer conversion warning
2016-05-26 17:31:45 +02:00
Gael Guennebaud
2a44a70142
Handle some Index to int conversions in BLAS/LAPACK support.
2016-05-26 17:29:04 +02:00
Gael Guennebaud
f253e19296
Disable some long to float conversion warnings
2016-05-26 17:27:14 +02:00
Christoph Hertzberg
2ee306e44a
Temporary workaround for bug #1237 . The snippet (expectedly) failed with enabled assertions.
2016-05-26 16:16:41 +02:00
Gael Guennebaud
37197b602b
Remove debuging code.
2016-05-26 11:53:10 +02:00
Gael Guennebaud
27f0434233
Introduce internal's UIntPtr and IntPtr types for pointer to integer conversions.
...
This fixes "conversion from pointer to same-sized integral type" warnings by ICC.
Ideally, we would use the std::[u]intptr_t types all the time, but since they are C99/C++11 only,
let's be safe.
2016-05-26 10:52:12 +02:00
Gael Guennebaud
40e4637d79
Turn off ICC's conversion warning in is_convertible implementation
2016-05-26 10:48:43 +02:00
Gael Guennebaud
cc1ab64f29
Add missing inclusion of mmintrin.h
2016-05-26 09:51:50 +02:00
Benoit Steiner
2d7ed54ba2
Made the static storage class qualifier come first.
2016-05-25 22:16:15 -07:00
Benoit Steiner
e1fca8866e
Deleted unnecessary explicit qualifiers.
2016-05-25 22:15:26 -07:00
Benoit Steiner
9b0aaf5113
Don't mark inline functions as static since it confuses the ICC compiler
2016-05-25 22:10:11 -07:00
Benoit Steiner
3585ff585e
Silenced a compilation warning
2016-05-25 22:09:19 -07:00
Benoit Steiner
037a463fd5
Marked unused variables as such
2016-05-25 22:07:48 -07:00
Benoit Steiner
efeb89dcdb
Specify the rounding mode in the correct location
2016-05-25 17:53:24 -07:00
Benoit Steiner
457204cb83
Updated the README file for the tensor benchmarks
2016-05-25 16:13:41 -07:00
Benoit Steiner
0322c66a3f
Explicitly specify the rounding mode when converting floats to fp16
2016-05-25 15:56:15 -07:00
Benoit Steiner
3ac4045272
Made the IndexPair code compile in non cxx11 mode
2016-05-25 15:15:12 -07:00
Benoit Steiner
66556d0e05
Made the index pair list code more portable accross various compilers
2016-05-25 14:34:27 -07:00
Benoit Steiner
034aa3b2c0
Improved the performance of tensor padding
2016-05-25 11:43:08 -07:00
Benoit Steiner
58026905ae
Added support for statically known lists of pairs of indices
2016-05-25 11:04:14 -07:00
Benoit Steiner
ed783872ab
Disable the use of MMX instructions on x86_64 since too many compilers only support them in 32bit mode
2016-05-25 08:27:26 -07:00
Benoit Steiner
bcfff64f9e
Use numext:: instead of std:: functions.
2016-05-25 08:08:21 -07:00
Gael Guennebaud
f57260a997
Fix typo in dont_over_optimize
2016-05-25 11:17:53 +02:00
Gael Guennebaud
2cd32be70b
Fix warning.
2016-05-25 11:15:54 +02:00
Gael Guennebaud
bbf9109e25
Fix compilation with ICC.
2016-05-25 10:00:55 +02:00
Gael Guennebaud
2a1bff67fd
Fix static/inline order.
2016-05-25 10:00:11 +02:00
Benoit Steiner
0835667329
There is no need to make the fp16 full reduction kernel a static function.
2016-05-24 23:11:56 -07:00
Benoit Steiner
b5d6b52a4d
Fixed compilation warning
2016-05-24 23:10:57 -07:00
Benoit Steiner
d041a528da
Cleaned up the fp16 code a little more
2016-05-24 22:43:26 -07:00
Benoit Steiner
cb26784d07
Pulled latest updates from trunk
2016-05-24 18:51:39 -07:00
Benoit Steiner
ff4a289572
Cleaned up the fp16 code
2016-05-24 18:50:09 -07:00
Gael Guennebaud
3f715e1701
update doc wrt to unaligned vectorization
2016-05-24 22:34:59 +02:00
Gael Guennebaud
9216abe28d
Document EIGEN_UNALIGNED_VECTORIZE.
2016-05-24 22:14:34 +02:00
Gael Guennebaud
0fd953c217
Workaround clang/llvm bug in code generation.
2016-05-24 21:55:46 +02:00
Gael Guennebaud
e68e165a23
bug #256 : enable vectorization with unaligned loads/stores.
...
This concerns all architectures and all sizes.
This new behavior can be disabled by defining EIGEN_UNALIGNED_VECTORIZE=0
2016-05-24 21:54:03 +02:00
Gael Guennebaud
78390e4189
Block<> should not disable vectorization based on inner-size, this is the responsibilty of the assignment logic.
2016-05-24 17:14:01 +02:00
Gael Guennebaud
64bb7576eb
Clean propagation of Dest/Src alignments.
2016-05-24 17:12:12 +02:00
Benoit Jacob
40a16282c7
Remove now-unused protate PacketMath func
2016-05-24 11:01:18 -04:00
Benoit Jacob
6136f4fdd4
Remove the rotating kernel. It was only useful on some ARM CPUs (Qualcomm Krait) that are not as ubiquitous today as they were when I introduced it.
2016-05-24 10:00:32 -04:00
Benoit Steiner
e617711306
Don't attempt to use MMX instructions with visualstudio since they're only partially supported.
2016-05-24 06:43:58 -07:00
Benoit Steiner
334e76537f
Worked around missing clang intrinsic
2016-05-24 00:29:28 -07:00
Benoit Steiner
b517ab349b
Use the generic ploadquad intrinsics since it does the job
2016-05-24 00:11:17 -07:00
Benoit Steiner
646872cb3b
Worked around missing clang intrinsics
2016-05-24 00:07:08 -07:00
Benoit Steiner
3dfc391a61
Added missing EIGEN_DEVICE_FUNC qualifier
2016-05-23 20:56:59 -07:00
Benoit Steiner
3d0741f027
Include mmintrin.h to make it possible to use mmx instructions when needed. For example, this will enable the definition of a half packet for the Packet4f type.
2016-05-23 20:43:48 -07:00
Benoit Steiner
33a94f5dc7
Use the Index type instead of integers to specify the strides in pgather/pscatter
2016-05-23 20:37:30 -07:00
Benoit Steiner
6bc684ab6a
Added missing alignment in the fp16 packet traits
2016-05-23 20:32:30 -07:00
Benoit Steiner
283e33dea4
ptranspose is not a template.
2016-05-23 19:55:55 -07:00
Benoit Steiner
a5a3ba2b80
Avoid unnecessary float to double conversions
2016-05-23 17:16:09 -07:00
Benoit Steiner
5ba0ebe7c9
Avoid unnecessary float to double conversion.
2016-05-23 17:14:31 -07:00
Benoit Steiner
7d980d74e5
Started to vectorize the processing of 16bit floats on CPU.
2016-05-23 15:21:40 -07:00
Benoit Steiner
5d51a7f12c
Don't optimize the processing of the last rows of a matrix matrix product in cases that violate the assumptions made by the optimized code path.
2016-05-23 15:13:16 -07:00
Benoit Steiner
7aa5bc9558
Fixed a typo in the array.cpp test
2016-05-23 14:39:51 -07:00
Benoit Steiner
a09cbf9905
Merged in rmlarsen/eigen (pull request PR-188)
...
Minor cleanups: 1. Get rid of a few unused variables. 2. Get rid of last uses of EIGEN_USE_COST_MODEL.
2016-05-23 12:55:12 -07:00
Christoph Hertzberg
88654762da
Replace multiple constructors of half-type by a generic/templated constructor. This fixes an incompatibility with long double, exposed by the previous commit.
2016-05-23 10:03:03 +02:00
Christoph Hertzberg
718521d5cf
Silenced several double-promotion warnings
2016-05-22 18:17:04 +02:00
Christoph Hertzberg
b5a7603822
fixed macro name
2016-05-22 16:49:29 +02:00
Christoph Hertzberg
25a03c02d6
Fix some sign-compare warnings
2016-05-22 16:42:27 +02:00
Christoph Hertzberg
0851d5d210
Identify clang++ even if it is not named llvm-clang++
2016-05-22 15:21:14 +02:00
Gael Guennebaud
6a15e14cda
Document EIGEN_MAX_CPP_VER and user controllable compiler features.
2016-05-20 15:26:09 +02:00
Gael Guennebaud
ccaace03c9
Make EIGEN_HAS_CONSTEXPR user configurable
2016-05-20 15:10:08 +02:00
Gael Guennebaud
c3410804cd
Make EIGEN_HAS_VARIADIC_TEMPLATES user configurable
2016-05-20 15:05:38 +02:00
Gael Guennebaud
abd1c1af7a
Make EIGEN_HAS_STD_RESULT_OF user configurable
2016-05-20 15:01:27 +02:00
Gael Guennebaud
1395056fc0
Make EIGEN_HAS_C99_MATH user configurable
2016-05-20 14:58:19 +02:00
Gael Guennebaud
48bf5ec216
Make EIGEN_HAS_RVALUE_REFERENCES user configurable
2016-05-20 14:54:20 +02:00
Gael Guennebaud
f43ae88892
Rename EIGEN_HAVE_RVALUE_REFERENCES to EIGEN_HAS_RVALUE_REFERENCES
2016-05-20 14:48:51 +02:00
Gael Guennebaud
8d6bd5691b
polygamma is C99/C++11 only
2016-05-20 14:45:33 +02:00
Gael Guennebaud
998f2efc58
Add a EIGEN_MAX_CPP_VER option to limit the C++ version to be used.
2016-05-20 14:44:28 +02:00
Gael Guennebaud
c028d96089
Improve doc of special math functions
2016-05-20 14:18:48 +02:00
Gael Guennebaud
0ba32f99bd
Rename UniformRandom to UnitRandom.
2016-05-20 13:21:34 +02:00
Gael Guennebaud
7a9d9cde94
Fix coding practice in Quaternion::UniformRandom
2016-05-20 13:19:52 +02:00
Joseph Mirabel
eb0cc2573a
bug #823 : add static method to Quaternion for uniform random rotations.
2016-05-20 13:15:40 +02:00
Gael Guennebaud
2f656ce447
Remove std:: to enable custom scalar types.
2016-05-19 23:13:47 +02:00
Rasmus Larsen
b1e080c752
Merged eigen/eigen into default
2016-05-18 15:21:50 -07:00
Rasmus Munk Larsen
5624219b6b
Merge.
2016-05-18 15:16:06 -07:00
Rasmus Munk Larsen
7df811cfe5
Minor cleanups: 1. Get rid of unused variables. 2. Get rid of last uses of EIGEN_USE_COST_MODEL.
2016-05-18 15:09:48 -07:00
Benoit Steiner
bb3ff8e9d9
Advertize the packet api of the tensor reducers iff the corresponding packet primitives are available.
2016-05-18 14:52:49 -07:00
Gael Guennebaud
84df9142e7
bug #1231 : fix compilation regression regarding complex_array/=real_array and add respective unit tests
2016-05-18 23:00:13 +02:00
Gael Guennebaud
21d692d054
Use coeff(i,j) instead of operator().
2016-05-18 17:09:20 +02:00
Gael Guennebaud
8456bbbadb
bug #1224 : fix regression in (dense*dense).sparseView() by specializing evaluator<SparseView<Product>> for sparse products only.
2016-05-18 16:53:28 +02:00
Gael Guennebaud
b507b82326
Use default sorting strategy for square products.
2016-05-18 16:51:54 +02:00
Gael Guennebaud
1fa15ceee6
Extend sparse*sparse product unit test to check that the expected implementation is used (conservative vs auto pruning).
2016-05-18 16:50:54 +02:00
Gael Guennebaud
548a487800
bug #1229 : bypass usage of Derived::Options which is available for plain matrix types only. Better use column-major storage anyway.
2016-05-18 16:44:05 +02:00
Gael Guennebaud
43790e009b
Pass argument by const ref instead of by value in pow(AutoDiffScalar...)
2016-05-18 16:28:02 +02:00
Gael Guennebaud
1fbfab27a9
bug #1223 : fix compilation of AutoDiffScalar's min/max operators, and add regression unit test.
2016-05-18 16:26:26 +02:00
Gael Guennebaud
448d9d943c
bug #1222 : fix compilation in AutoDiffScalar and add respective unit test
2016-05-18 16:00:11 +02:00
Gael Guennebaud
5a71eb5985
Big 1213: add regression unit test.
2016-05-18 14:03:03 +02:00
Gael Guennebaud
747e3290c0
bug #1213 : rename some enums type for consistency.
2016-05-18 13:26:56 +02:00
Rasmus Munk Larsen
f519fca72b
Reduce overhead for small tensors and cheap ops by short-circuiting the const computation and block size calculation in parallelFor.
2016-05-17 16:06:00 -07:00
Benoit Steiner
86ae94462e
#if defined(EIGEN_USE_NONBLOCKING_THREAD_POOL) is now #if !defined(EIGEN_USE_SIMPLE_THREAD_POOL): the non blocking thread pool is the default since it's more scalable, and one needs to request the old thread pool explicitly.
2016-05-17 14:06:15 -07:00
Benoit Steiner
997c335970
Fixed compilation error
2016-05-17 12:54:18 -07:00
Benoit Steiner
ebf6ada5ee
Fixed compilation error in the tensor thread pool
2016-05-17 12:33:46 -07:00
Rasmus Munk Larsen
0bb61b04ca
Merge upstream.
2016-05-17 10:26:10 -07:00
Rasmus Munk Larsen
0dbd68145f
Roll back changes to core. Move include of TensorFunctors.h up to satisfy dependence in TensorCostModel.h.
2016-05-17 10:25:19 -07:00
Rasmus Larsen
00228f2506
Merged eigen/eigen into default
2016-05-17 09:49:31 -07:00
Benoit Steiner
e7e64c3277
Enable the use of the packet api to evaluate tensor broadcasts. This speed things up quite a bit:
...
Before"
M_broadcasting/10 500000 3690 27.10 MFlops/s
BM_broadcasting/80 500000 4014 1594.24 MFlops/s
BM_broadcasting/640 100000 14770 27731.35 MFlops/s
BM_broadcasting/4K 5000 632711 39512.48 MFlops/s
After:
BM_broadcasting/10 500000 4287 23.33 MFlops/s
BM_broadcasting/80 500000 4455 1436.41 MFlops/s
BM_broadcasting/640 200000 10195 40173.01 MFlops/s
BM_broadcasting/4K 5000 423746 58997.57 MFlops/s
2016-05-17 09:24:35 -07:00
Benoit Steiner
5fa27574dd
Allow vectorized padding on GPU. This helps speed things up a little
...
Before:
BM_padding/10 5000000 460 217.03 MFlops/s
BM_padding/80 5000000 460 13899.40 MFlops/s
BM_padding/640 5000000 461 888421.17 MFlops/s
BM_padding/4K 5000000 460 54316322.55 MFlops/s
After:
BM_padding/10 5000000 454 220.20 MFlops/s
BM_padding/80 5000000 455 14039.86 MFlops/s
BM_padding/640 5000000 452 904968.83 MFlops/s
BM_padding/4K 5000000 411 60750049.21 MFlops/s
2016-05-17 09:17:26 -07:00
Benoit Steiner
a910bcee43
Merged latest updates from trunk
2016-05-17 09:14:22 -07:00
Benoit Steiner
8d06c02ffd
Allow vectorized padding on GPU. This helps speed things up a little.
...
Before:
BM_padding/10 5000000 460 217.03 MFlops/s
BM_padding/80 5000000 460 13899.40 MFlops/s
BM_padding/640 5000000 461 888421.17 MFlops/s
BM_padding/4K 5000000 460 54316322.55 MFlops/s
After:
BM_padding/10 5000000 454 220.20 MFlops/s
BM_padding/80 5000000 455 14039.86 MFlops/s
BM_padding/640 5000000 452 904968.83 MFlops/s
BM_padding/4K 5000000 411 60750049.21 MFlops/s
2016-05-17 09:13:27 -07:00
Benoit Steiner
86da77cb9b
Pulled latest updates from trunk.
2016-05-17 07:21:48 -07:00
Benoit Steiner
92fc6add43
Don't rely on c++11 extension when we don't have to.
2016-05-17 07:21:22 -07:00
Benoit Steiner
2d74ef9682
Avoid float to double conversion
2016-05-17 07:20:11 -07:00
David Dement
ccc7563ac5
made a fix to the GMRES solver so that it now correctly reports the error achieved in the solution process
2016-05-16 14:26:41 -04:00
Gael Guennebaud
575bc44c3f
Fix unit test.
2016-05-19 22:48:16 +02:00
Gael Guennebaud
ccb408ee6a
Improve unit tests of zeta, polygamma, and digamma
2016-05-19 18:34:41 +02:00
Gael Guennebaud
6761c64d60
zeta and polygamma are not unary functions, but binary ones.
2016-05-19 18:34:16 +02:00
Gael Guennebaud
7a54032408
zeta and digamma do not require C++11/C99
2016-05-19 17:36:47 +02:00
Gael Guennebaud
ce12562710
Add some c++11 flags in documentation
2016-05-19 17:35:30 +02:00
Gael Guennebaud
b6ed8244b4
bug #1201 : optimize affine*vector products
2016-05-19 16:09:15 +02:00
Gael Guennebaud
73693b5de6
bug #1221 : disable gcc 6 warning: ignoring attributes on template argument
2016-05-19 15:21:53 +02:00
Gael Guennebaud
df9a5e13c6
Fix SelfAdjointEigenSolver for some input expression types, and add new regression unit tests for sparse and selfadjointview inputs.
2016-05-19 13:07:33 +02:00
Gael Guennebaud
6a2916df80
DiagonalWrapper is a vector, so it must expose the LinearAccessBit flag.
2016-05-19 13:06:21 +02:00
Gael Guennebaud
a226f6af6b
Add support for SelfAdjointView::diagonal()
2016-05-19 13:05:33 +02:00
Gael Guennebaud
ee7da3c7c5
Fix SelfAdjointView::triangularView for complexes.
2016-05-19 13:01:51 +02:00
Gael Guennebaud
b6b8578a67
bug #1230 : add support for SelfadjointView::triangularView.
2016-05-19 11:36:38 +02:00
Benoit Steiner
a80d875916
Added missing costPerCoeff method
2016-05-16 09:31:10 -07:00
Benoit Steiner
83ef39e055
Turn on the cost model by default. This results in some significant speedups for smaller tensors. For example, below are the results for the various tensor reductions.
...
Before:
BM_colReduction_12T/10 1000000 1949 51.29 MFlops/s
BM_colReduction_12T/80 100000 15636 409.29 MFlops/s
BM_colReduction_12T/640 20000 95100 4307.01 MFlops/s
BM_colReduction_12T/4K 500 4573423 5466.36 MFlops/s
BM_colReduction_4T/10 1000000 1867 53.56 MFlops/s
BM_colReduction_4T/80 500000 5288 1210.11 MFlops/s
BM_colReduction_4T/640 10000 106924 3830.75 MFlops/s
BM_colReduction_4T/4K 500 9946374 2513.48 MFlops/s
BM_colReduction_8T/10 1000000 1912 52.30 MFlops/s
BM_colReduction_8T/80 200000 8354 766.09 MFlops/s
BM_colReduction_8T/640 20000 85063 4815.22 MFlops/s
BM_colReduction_8T/4K 500 5445216 4591.19 MFlops/s
BM_rowReduction_12T/10 1000000 2041 48.99 MFlops/s
BM_rowReduction_12T/80 100000 15426 414.87 MFlops/s
BM_rowReduction_12T/640 50000 39117 10470.98 MFlops/s
BM_rowReduction_12T/4K 500 3034298 8239.14 MFlops/s
BM_rowReduction_4T/10 1000000 1834 54.51 MFlops/s
BM_rowReduction_4T/80 500000 5406 1183.81 MFlops/s
BM_rowReduction_4T/640 50000 35017 11697.16 MFlops/s
BM_rowReduction_4T/4K 500 3428527 7291.76 MFlops/s
BM_rowReduction_8T/10 1000000 1925 51.95 MFlops/s
BM_rowReduction_8T/80 200000 8519 751.23 MFlops/s
BM_rowReduction_8T/640 50000 33441 12248.42 MFlops/s
BM_rowReduction_8T/4K 1000 2852841 8763.19 MFlops/s
After:
BM_colReduction_12T/10 50000000 59 1678.30 MFlops/s
BM_colReduction_12T/80 5000000 725 8822.71 MFlops/s
BM_colReduction_12T/640 20000 90882 4506.93 MFlops/s
BM_colReduction_12T/4K 500 4668855 5354.63 MFlops/s
BM_colReduction_4T/10 50000000 59 1687.37 MFlops/s
BM_colReduction_4T/80 5000000 737 8681.24 MFlops/s
BM_colReduction_4T/640 50000 108637 3770.34 MFlops/s
BM_colReduction_4T/4K 500 7912954 3159.38 MFlops/s
BM_colReduction_8T/10 50000000 60 1657.21 MFlops/s
BM_colReduction_8T/80 5000000 726 8812.48 MFlops/s
BM_colReduction_8T/640 20000 91451 4478.90 MFlops/s
BM_colReduction_8T/4K 500 5441692 4594.16 MFlops/s
BM_rowReduction_12T/10 20000000 93 1065.28 MFlops/s
BM_rowReduction_12T/80 2000000 950 6730.96 MFlops/s
BM_rowReduction_12T/640 50000 38196 10723.48 MFlops/s
BM_rowReduction_12T/4K 500 3019217 8280.29 MFlops/s
BM_rowReduction_4T/10 20000000 93 1064.30 MFlops/s
BM_rowReduction_4T/80 2000000 959 6667.71 MFlops/s
BM_rowReduction_4T/640 50000 37433 10941.96 MFlops/s
BM_rowReduction_4T/4K 500 3036476 8233.23 MFlops/s
BM_rowReduction_8T/10 20000000 93 1072.47 MFlops/s
BM_rowReduction_8T/80 2000000 959 6670.04 MFlops/s
BM_rowReduction_8T/640 50000 38069 10759.37 MFlops/s
BM_rowReduction_8T/4K 1000 2758988 9061.29 MFlops/s
2016-05-16 08:55:21 -07:00
Benoit Steiner
b789a26804
Fixed syntax error
2016-05-16 08:51:08 -07:00
Benoit Steiner
83dfb40f66
Turnon the new thread pool by default since it scales much better over multiple cores. It is still possible to revert to the old thread pool by compiling with the EIGEN_USE_SIMPLE_THREAD_POOL define.
2016-05-13 17:23:15 -07:00
Benoit Steiner
97605c7b27
New multithreaded contraction that doesn't rely on the thread pool to run the closure in the order in which they are enqueued. This is needed in order to switch to the new non blocking thread pool since this new thread pool can execute the closure in any order.
2016-05-13 17:11:29 -07:00
Benoit Steiner
069a0b04d7
Added benchmarks for contraction on CPU.
2016-05-13 14:32:17 -07:00
Benoit Steiner
c4fc8b70ec
Removed unnecessary thread synchronization
2016-05-13 10:49:38 -07:00
Benoit Steiner
7aa3557d31
Fixed compilation errors triggered by old versions of gcc
2016-05-12 18:59:04 -07:00
Rasmus Munk Larsen
5005b27fc8
Diasbled cost model by accident. Revert.
2016-05-12 16:55:21 -07:00
Rasmus Munk Larsen
989e419328
Address comments by bsteiner.
2016-05-12 16:54:19 -07:00
Rasmus Munk Larsen
e55deb21c5
Improvements to parallelFor.
...
Move some scalar functors from TensorFunctors. to Eigen core.
2016-05-12 14:07:22 -07:00
Benoit Steiner
ae9688f313
Worked around a compilation error triggered by nvcc when compiling a tensor concatenation kernel.
2016-05-12 12:06:51 -07:00
Benoit Steiner
2a54b70d45
Fixed potential race condition in the non blocking thread pool
2016-05-12 11:45:48 -07:00
Benoit Steiner
a071629fec
Replace implicit cast with an explicit one
2016-05-12 10:40:07 -07:00
Benoit Steiner
2f9401b061
Worked around compilation errors with older versions of gcc
2016-05-11 23:39:20 -07:00
Benoit Steiner
09653e1f82
Improved the portability of the tensor code
2016-05-11 23:29:09 -07:00
Benoit Steiner
fae0493f98
Fixed a couple of bugs related to the Pascalfamily of GPUs
...
H: Enter commit message. Lines beginning with 'HG:' are removed.
2016-05-11 23:02:26 -07:00
Benoit Steiner
886445ce4d
Avoid unnecessary conversions between floats and doubles
2016-05-11 23:00:03 -07:00
Benoit Steiner
595e890391
Added more tests for half floats
2016-05-11 21:27:15 -07:00
Benoit Steiner
b6a517c47d
Added the ability to load fp16 using the texture path.
...
Improved the performance of some reductions on fp16
2016-05-11 21:26:48 -07:00
Benoit Steiner
518149e868
Misc fixes for fp16
2016-05-11 20:11:14 -07:00
Benoit Steiner
56a1757d74
Made predux_min and predux_max on fp16 less noisy
2016-05-11 17:37:34 -07:00
Benoit Steiner
9091351dbe
__ldg is only available with cuda architectures >= 3.5
2016-05-11 15:22:13 -07:00
Benoit Steiner
02f76dae2d
Fixed a typo
2016-05-11 15:08:38 -07:00
Christoph Hertzberg
131e5a1a4a
Do not copy for trivial 1x1 case. This also avoids a "maybe-uninitialized" warning in some situations.
2016-05-11 23:50:13 +02:00
Benoit Steiner
70195a5ff7
Added missing EIGEN_DEVICE_FUNC
2016-05-11 14:10:09 -07:00
Benoit Steiner
09a19c33a8
Added missing EIGEN_DEVICE_FUNC qualifiers
2016-05-11 14:07:43 -07:00
Christoph Hertzberg
1a1ce6ff61
Removed deprecated flag (which apparently was ignored anyway)
2016-05-11 23:05:37 +02:00
Christoph Hertzberg
2150f13d65
fixed some double-promotion and sign-compare warnings
2016-05-11 23:02:26 +02:00
Christoph Hertzberg
7268b10203
Split unit test
2016-05-11 19:41:53 +02:00
Christoph Hertzberg
8d4ef391b0
Don't flood test output with successful VERIFY_IS_NOT_EQUAL tests.
2016-05-11 19:40:45 +02:00
Christoph Hertzberg
bda21407dd
Fix help output of buildtests and check scripts
2016-05-11 19:39:09 +02:00
Christoph Hertzberg
33ca7e3c8d
bug #1207 : Add and fix logical-op warnings
2016-05-11 19:36:34 +02:00
Benoit Steiner
217d984abc
Fixed a typo in my previous commit
2016-05-11 10:22:15 -07:00
Benoit Steiner
08348b4e48
Fix potential race condition in the CUDA reduction code.
2016-05-11 10:08:51 -07:00
Benoit Steiner
cbb14ed47e
Added a few tests to validate the generation of random tensors on GPU.
2016-05-11 10:05:56 -07:00
Benoit Steiner
6a5717dc74
Explicitely initialize all the atomic variables.
2016-05-11 10:04:41 -07:00
Christoph Hertzberg
0f61343893
Workaround maybe-uninitialized warning
2016-05-11 09:00:18 +02:00
Christoph Hertzberg
3bfc9b47ca
Workaround "misleading-indentation" warnings
2016-05-11 08:41:36 +02:00
Benoit Steiner
4ede059de1
Properly gate the use of half2.
2016-05-10 17:04:01 -07:00
Benoit Steiner
bf185c3c28
Extended the tests for ptanh
2016-05-10 16:21:43 -07:00
Benoit Steiner
661e710092
Added support for fp16 to the sigmoid functor.
2016-05-10 12:25:27 -07:00
Benoit Steiner
0eb69b7552
Small improvement to the full reduction of fp16
2016-05-10 11:58:18 -07:00
Benoit Steiner
0b9e3dcd06
Added packet primitives to compute exp, log, sqrt and rsqrt on fp16. This improves the performance by 10 to 30%.
2016-05-10 11:05:33 -07:00
Benoit Steiner
6bf8273bc0
Added a test to validate the new non blocking thread pool
2016-05-10 10:49:34 -07:00
Benoit Steiner
4013b8feca
Simplified the reduction code a little.
2016-05-10 09:40:42 -07:00
Benoit Steiner
75bd2bd32d
Fixed compilation warning
2016-05-09 19:24:41 -07:00
Benoit Steiner
4670d7d5ce
Improved the performance of full reductions on GPU:
...
Before:
BM_fullReduction/10 200000 11751 8.51 MFlops/s
BM_fullReduction/80 5000 523385 12.23 MFlops/s
BM_fullReduction/640 50 36179326 11.32 MFlops/s
BM_fullReduction/4K 1 2173517195 11.50 MFlops/s
After:
BM_fullReduction/10 500000 5987 16.70 MFlops/s
BM_fullReduction/80 200000 10636 601.73 MFlops/s
BM_fullReduction/640 50000 58428 7010.31 MFlops/s
BM_fullReduction/4K 1000 2006106 12461.95 MFlops/s
2016-05-09 17:09:54 -07:00
Benoit Steiner
c3859a2b58
Added the ability to use a scratch buffer in cuda kernels
2016-05-09 17:05:53 -07:00
Benoit Steiner
ba95e43ea2
Added a new parallelFor api to the thread pool device.
2016-05-09 10:45:12 -07:00
Benoit Steiner
dc7dbc2df7
Optimized the non blocking thread pool:
...
* Use a pseudo-random permutation of queue indices during random stealing. This ensures that all the queues are considered.
* Directly pop from a non-empty queue when we are waiting for work,
instead of first noticing that there is a non-empty queue and
then doing another round of random stealing to re-discover the non-empty
queue.
* Steal only 1 task from a remote queue instead of half of tasks.
2016-05-09 10:17:17 -07:00
Benoit Steiner
05c365fb16
Pulled latest updates from trunk
2016-05-07 13:39:04 -07:00
Benoit Steiner
691614bd2c
Worked around a bug in nvcc on tegra x1
2016-05-07 13:28:53 -07:00
Benoit Steiner
a2d94fc216
Merged latest updates from trunk
2016-05-06 19:17:57 -07:00
Benoit Steiner
8adf5cc70f
Added support for packet processing of fp16 on kepler and maxwell gpus
2016-05-06 19:16:43 -07:00
Benoit Steiner
1660e749b4
Avoid double promotion
2016-05-06 08:15:12 -07:00
Christoph Hertzberg
a11bd82dc3
bug #1213 : Give names to anonymous enums
2016-05-06 11:31:56 +02:00
Benoit Steiner
c54ae65c83
Marked a few tensor operations as read only
2016-05-05 17:18:47 -07:00
Benoit Steiner
69a8a4e1f3
Added a test to validate full reduction on tensor of half floats
2016-05-05 16:52:50 -07:00
Benoit Steiner
678a17ba79
Made the testing of contractions on fp16 more robust
2016-05-05 16:36:39 -07:00
Benoit Steiner
e3d053e14e
Refined the testing of log and exp on fp16
2016-05-05 16:24:15 -07:00
Benoit Steiner
9a48688d37
Further improved the testing of fp16
2016-05-05 15:58:05 -07:00
Benoit Steiner
0451940fa4
Relaxed the dummy precision for fp16
2016-05-05 15:40:01 -07:00
Benoit Steiner
910e013506
Relaxed an assertion that was tighter that necessary.
2016-05-05 15:38:16 -07:00
Benoit Steiner
f81e413180
Added a benchmark to measure the performance of full reductions of 16 bit floats
2016-05-05 14:15:11 -07:00
Benoit Steiner
28d5572658
Fixed some incorrect assertions
2016-05-05 10:02:26 -07:00
Benoit Steiner
2aba40d208
Avoid unecessary type promotion
2016-05-05 09:26:57 -07:00
Benoit Steiner
a4d6e8fef0
Strongly hint but don't force the compiler to unroll a some loops in the tensor executor. This results in up to 27% faster code.
2016-05-05 09:25:55 -07:00
Benoit Steiner
7875437ca0
Avoided unecessary type promotion
2016-05-05 09:08:42 -07:00
Benoit Steiner
f363e533aa
Added tests for full contractions using thread pools and gpu devices.
...
Fixed a couple of issues in the corresponding code.
2016-05-05 09:05:45 -07:00
Benoit Steiner
06d774bf58
Updated the contraction code to ensure that full contraction return a tensor of rank 0
2016-05-05 08:37:47 -07:00
Christoph Hertzberg
b300a84989
Fixed some singed/unsigned comparison warnings
2016-05-05 13:36:28 +02:00
Christoph Hertzberg
dacb469bc9
Enable and fix -Wdouble-conversion warnings
2016-05-05 13:35:45 +02:00
Benoit Steiner
62b710072e
Reduced the memory footprint of the cxx11_tensor_image_patch test
2016-05-04 21:08:22 -07:00
Benoit Steiner
dd2b45feed
Removed extraneous 'explicit' keywords
2016-05-04 16:57:52 -07:00
Ola Røer Thorsen
be78aea6b3
fix double-promotion/float-conversion in Core/SpecialFunctions.h
2016-05-04 10:52:08 +02:00
Gael Guennebaud
75a94b9662
Improve documentation of BDCSVD
2016-05-04 12:53:14 +02:00
Benoit Steiner
968ec1c2ae
Use numext::isfinite instead of std::isfinite
2016-05-03 19:56:40 -07:00
Gael Guennebaud
e2ca478485
bug #1214 : consider denormals as zero in D&C SVD. This also workaround infinite binary search when compiling with ICC's unsafe optimizations.
2016-05-03 23:15:29 +02:00
Benoit Steiner
f899e08946
Enabled a number of tests previously disabled by mistake
2016-05-03 14:07:47 -07:00
Benoit Steiner
4c05fb03a3
Merged eigen/eigen into default
2016-05-03 13:15:00 -07:00
Benoit Steiner
577a07a86e
Re-enabled the product_small test now that everything compiles correctly.
2016-05-03 13:11:38 -07:00
Benoit Steiner
2c5568a757
Added a test to validate the computation of exp and log on 16bit floats
2016-05-03 12:06:07 -07:00
Benoit Steiner
6c3e5b85bc
Fixed compilation error with cuda >= 7.5
2016-05-03 09:38:42 -07:00
Benoit Steiner
aad9a04da4
Deleted superfluous explicit keyword.
2016-05-03 09:37:19 -07:00
Benoit Steiner
da50419df8
Made a cast explicit
2016-05-02 19:50:22 -07:00
Benoit Steiner
73ef5371e4
Pulled latest updates from trunk
2016-05-01 14:48:57 -07:00
Benoit Steiner
8a9228ed9b
Fixed compilation error
2016-05-01 14:48:01 -07:00
Gael Guennebaud
b1bd53aa6b
Fix performance regression: with AVX, unaligned stores were emitted instead of aligned ones for fixed size assignement.
2016-05-01 23:25:06 +02:00
Benoit Steiner
d6c9596fd8
Added missing accessors to fixed sized tensors
2016-04-29 18:51:33 -07:00
Benoit Steiner
17fe7f354e
Deleted trailing commas
2016-04-29 18:39:01 -07:00
Benoit Steiner
e5f71aa6b2
Deleted useless trailing commas
2016-04-29 18:36:10 -07:00
Benoit Steiner
44f592dceb
Deleted unnecessary trailing commas.
2016-04-29 18:33:46 -07:00
Benoit Steiner
2b890ae618
Fixed compilation errors generated by clang
2016-04-29 18:30:40 -07:00
Benoit Steiner
d217217842
Added a few tests to ensure that the dimensions of rank 0 tensors are correctly computed
2016-04-29 18:15:34 -07:00
Benoit Steiner
f100d1494c
Return the proper size (ie 1) for tensors of rank 0
2016-04-29 18:14:33 -07:00
Benoit Steiner
d14105f158
Made several tensor tests compatible with cxx03
2016-04-29 17:22:37 -07:00
Benoit Steiner
c0882ef4d9
Moved a number of tensor tests that don't require cxx11 to work properly outside the EIGEN_TEST_CXX11 test section
2016-04-29 17:13:51 -07:00
Benoit Steiner
9d1dbd1ec0
Fixed teh cxx11_tensor_empty test to compile without requiring cxx11 support
2016-04-29 16:53:55 -07:00
Benoit Steiner
a8c0405cf5
Deleted unused default values for template parameters
2016-04-29 16:34:43 -07:00
Benoit Steiner
4f53178e62
Made a coupe of tensor tests compile without requiring c++11 support.
2016-04-29 16:09:54 -07:00
Benoit Steiner
1131a984a6
Made the cxx11_tensor_forced_eval compile without c++11.
2016-04-29 15:48:59 -07:00
Benoit Steiner
46bcb70969
Don't turn on const expressions when compiling with gcc >= 4.8 unless the -std=c++11 option has been used
2016-04-29 15:20:59 -07:00
Benoit Steiner
c07404f6a1
Restore Tensor support for non c++11 compilers
2016-04-29 15:19:19 -07:00
Benoit Steiner
ba32ded021
Fixed include path
2016-04-29 15:11:09 -07:00
Benoit Steiner
3b8da4be5a
Extended the packetmath test to cover all the alignments made possible by avx512 instructions.
2016-04-29 14:13:43 -07:00
Benoit Steiner
2f28ccbea3
Update the makefile to make the tests compile with gcc 4.9
2016-04-29 14:11:09 -07:00
Benoit Steiner
7a4bd337d9
Resolved merge conflict
2016-04-29 13:42:22 -07:00
Benoit Steiner
07a247dcf4
Pulled latest updates from upstream
2016-04-29 13:41:26 -07:00
Benoit Steiner
fa5a8f055a
Implemented palign_impl for AVX512
2016-04-29 13:30:13 -07:00
Benoit Steiner
ef3ac9d05a
Fixed the AVX512 packet traits
2016-04-29 13:28:36 -07:00
Benoit Steiner
d7b75e8d86
Added pdiv packet primitives for avx512
2016-04-29 13:26:47 -07:00
Benoit Steiner
5e89ded685
Implemented preduxp for AVX512
2016-04-29 13:00:33 -07:00
Benoit Steiner
5f85662ad8
Implemented the pabs and preverse primitives for avx512.
2016-04-29 12:53:34 -07:00
Benoit Steiner
d37ee89ca8
Disabled some of the AVX512 primitives on compilers that don't support them
2016-04-29 12:50:29 -07:00
Gael Guennebaud
0f3c4c8ff4
Fix compilation of sparse.cast<>().transpose().
2016-04-29 18:26:08 +02:00
Benoit Steiner
a524a26fdc
Fixed a few memory leaks
2016-04-28 18:55:53 -07:00
Benoit Steiner
dacb23277e
Fixed the igamma and igammac implementations to make them callable from a gpu kernel.
2016-04-28 18:54:54 -07:00
Benoit Steiner
a5d4545083
Deleted unused variable
2016-04-28 14:14:48 -07:00
Justin Lebar
40d1e2f8c7
Eliminate mutual recursion in igamma{,c}_impl::Run.
...
Presently, igammac_impl::Run calls igamma_impl::Run, which in turn calls
igammac_impl::Run.
This isn't actually mutual recursion; the calls are guarded such that we never
get into a loop. Nonetheless, it's a stretch for clang to prove this. As a
result, clang emits a recursive call in both igammac_impl::Run and
igamma_impl::Run.
That this is suboptimal code is bad enough, but it's particularly bad when
compiling for CUDA/nvptx. nvptx allows recursion, but only begrudgingly: If
you have recursive calls in a kernel, it's on you to manually specify the
kernel's stack size. Otherwise, ptxas will dump a warning, make a guess, and
who knows if it's right.
This change explicitly eliminates the mutual recursion in igammac_impl::Run and
igamma_impl::Run.
2016-04-28 13:57:08 -07:00
Konstantinos Margaritis
87294c84a6
define Packet2d constants with VSX only
2016-04-28 14:39:56 -03:00
Konstantinos Margaritis
6ed7a7281c
remove accidentally pasted code
2016-04-28 14:35:55 -03:00
Konstantinos Margaritis
62f9093b31
improve state of MathFunctions as well
2016-04-28 14:33:09 -03:00
Konstantinos Margaritis
8ed26120c8
bring Altivec/VSX to a better state, implement some of the missing functions
2016-04-28 14:32:42 -03:00
Konstantinos Margaritis
950158f6d1
add name to copyrights
2016-04-28 14:32:11 -03:00
Konstantinos Margaritis
ee0459300b
minor fix, add to copyright
2016-04-28 14:31:21 -03:00
Benoit Steiner
3ec81fc00f
Fixed compilation error with clang.
2016-04-27 19:32:12 -07:00
Benoit Steiner
2b917291d9
Merged in rmlarsen/eigen2 (pull request PR-183)
...
Detect cxx_constexpr support when compiling with clang.
2016-04-27 15:19:54 -07:00
Rasmus Munk Larsen
09b9e951e3
Depend on the more extensive support for constexpr in clang:
...
http://clang.llvm.org/docs/LanguageExtensions.html#c-1y-relaxed-constexpr
2016-04-27 14:59:11 -07:00
Rasmus Munk Larsen
1a325ef71c
Detect cxx_constexpr support when compiling with clang.
2016-04-27 14:33:51 -07:00
Benoit Steiner
1a97fd8b4e
Merged latest update from trunk
2016-04-27 14:22:45 -07:00
Benoit Steiner
c61170e87d
fpclassify isn't portable enough. In particular, the return values of the function are not available on all the platforms Eigen supportes: remove it from Eigen.
2016-04-27 14:22:20 -07:00
Gael Guennebaud
318e65e0ae
Fix missing inclusion of Eigen/Core
2016-04-27 23:05:40 +02:00
Benoit Steiner
f629fe95c8
Made the index type a template parameter to evaluateProductBlockingSizes
...
Use numext::mini and numext::maxi instead of std::min/std::max to compute blocking sizes.
2016-04-27 13:11:19 -07:00
Benoit Steiner
66b215b742
Merged latest updates from trunk
2016-04-27 12:57:48 -07:00
Benoit Steiner
25141b69d4
Improved support for min and max on 16 bit floats when running on recent cuda gpus
2016-04-27 12:57:21 -07:00
Rasmus Larsen
ff33798acd
Merged eigen/eigen into default
2016-04-27 12:27:00 -07:00
Rasmus Munk Larsen
463738ccbe
Use computeProductBlockingSizes to compute blocking for both ShardByCol and ShardByRow cases.
2016-04-27 12:26:18 -07:00
Benoit Steiner
6744d776ba
Added support for fpclassify in Eigen::Numext
2016-04-27 12:10:25 -07:00
Rasmus Munk Larsen
1f48f47ab7
Implement stricter argument checking for SYRK and SY2K and real matrices. To implement the BLAS API they should return info=2 if op='C' is passed for a complex matrix. Without this change, the Eigen BLAS fails the strict zblat3 and cblat3 tests in LAPACK 3.5.
2016-04-27 19:59:44 +02:00
Gael Guennebaud
3dddd34133
Refactor the unsupported CXX11/Core module to internal headers only.
2016-04-26 11:20:25 +02:00
Benoit Steiner
4a164d2c46
Fixed the partial evaluation of non vectorizable tensor subexpressions
2016-04-25 10:43:03 -07:00
Benoit Steiner
fd9401f260
Refined the cost of the striding operation.
2016-04-25 09:16:08 -07:00
Konstantinos Margaritis
3f80696ae1
Merged eigen/eigen into default
2016-04-22 15:05:21 +03:00
Benoit Steiner
5c372d19e3
Merged in rmlarsen/eigen (pull request PR-179)
...
Prevent crash in CompleteOrthogonalDecomposition if object was default constructed.
2016-04-21 18:06:36 -07:00
Benoit Steiner
4bbc97be5e
Provide access to the base threadpool classes
2016-04-21 17:59:33 -07:00
Rasmus Munk Larsen
a3256d78d8
Prevent crash in CompleteOrthogonalDecomposition if object was default constructed.
2016-04-21 16:49:28 -07:00
Benoit Steiner
33adce5c3a
Added the ability to switch to the new thread pool with a #define
2016-04-21 11:59:58 -07:00
Benoit Steiner
79b900375f
Use index list for the striding benchmarks
2016-04-21 11:58:27 -07:00
Benoit Steiner
f670613e4b
Fixed several compilation warnings
2016-04-21 11:03:02 -07:00
Benoit Steiner
6015422ee6
Added an option to enable the use of the F16C instruction set
2016-04-21 10:30:29 -07:00
Benoit Steiner
32ffce04fc
Use EIGEN_THREAD_YIELD instead of std::this_thread::yield to make the code more portable.
2016-04-21 08:47:28 -07:00
Konstantinos Margaritis
e5b2ef47d5
Merged eigen/eigen into default
2016-04-21 18:03:08 +03:00
Benoit Steiner
2dde1b1028
Don't crash when attempting to reduce empty tensors.
2016-04-20 18:08:20 -07:00
Benoit Steiner
a792cd357d
Added more tests
2016-04-20 17:33:58 -07:00
Benoit Steiner
80200a1828
Don't attempt to leverage the _cvtss_sh and _cvtsh_ss instructions when compiling with clang since it's unclear which versions of clang actually support these instruction.
2016-04-20 12:10:27 -07:00
Benoit Steiner
c7c2054bb5
Started to implement a portable way to yield.
2016-04-19 17:59:58 -07:00
Benoit Steiner
1d0238375d
Made sure all the required header files are included when trying to use fp16
2016-04-19 17:44:12 -07:00
Benoit Steiner
2b72163028
Implemented a more portable version of thread local variables
2016-04-19 15:56:02 -07:00
Benoit Steiner
04f954956d
Fixed a few typos
2016-04-19 15:27:09 -07:00
Benoit Steiner
5b1106c56b
Fixed a compilation error with nvcc 7.
2016-04-19 14:57:57 -07:00
Benoit Steiner
7129d998db
Simplified the code that launches cuda kernels.
2016-04-19 14:55:21 -07:00
Benoit Steiner
b9ea40c30d
Don't take the address of a kernel on CUDA devices that don't support this feature.
2016-04-19 14:35:11 -07:00
Benoit Steiner
884c075058
Use numext::ceil instead of std::ceil
2016-04-19 14:33:30 -07:00
Benoit Steiner
a278414d1b
Avoid an unnecessary copy of the evaluator.
2016-04-19 13:54:28 -07:00
Benoit Steiner
f953c60705
Fixed 2 recent regression tests
2016-04-19 12:57:39 -07:00
Benoit Steiner
50968a0a3e
Use DenseIndex in the MeanReducer to avoid overflows when processing very large tensors.
2016-04-19 11:53:58 -07:00
Benoit Steiner
84543c8be2
Worked around the lack of a rand_r function on windows systems
2016-04-17 19:29:27 -07:00
Benoit Steiner
5fbcfe5eb4
Worked around the lack of a rand_r function on windows systems
2016-04-17 18:42:31 -07:00
Gael Guennebaud
e4fe611e2c
Enable lazy-coeff-based-product for vector*(1x1) products
2016-04-16 15:17:39 +02:00
Benoit Steiner
c8e8f93d6c
Move the evalGemm method into the TensorContractionEvaluatorBase class to make it accessible from both the single and multithreaded contraction evaluators.
2016-04-15 16:48:10 -07:00
Benoit Steiner
1a16fb1532
Deleted extraneous comma.
2016-04-15 15:50:13 -07:00
Benoit Steiner
7cff898e0a
Deleted unnecessary variable
2016-04-15 15:46:14 -07:00
Benoit Steiner
6c43c49e4a
Fixed a few compilation warnings
2016-04-15 15:34:34 -07:00
Benoit Steiner
eb669f989f
Merged in rmlarsen/eigen (pull request PR-178)
...
Eigen Tensor cost model part 2: Thread scheduling for standard evaluators and reductions.
2016-04-15 14:53:15 -07:00
Gael Guennebaud
2a7115daca
bug #1203 : by-pass large stack-allocation in stableNorm if EIGEN_STACK_ALLOCATION_LIMIT is too small
2016-04-15 22:34:11 +02:00
Rasmus Munk Larsen
3718bf654b
Get rid of void* casting when calling EvalRange::run.
2016-04-15 12:51:33 -07:00
Benoit Steiner
40c9923a8a
Fixed compilation errors with msvc
2016-04-15 11:27:52 -07:00
Benoit Steiner
1d23430628
Improved the matrix multiplication blocking in the case where mr is not a power of 2 (e.g on Haswell CPUs).
2016-04-15 10:53:31 -07:00
Gael Guennebaud
1e80bddde3
Fix trmv for mixing types.
2016-04-15 17:58:36 +02:00
Konstantinos Margaritis
0e8fc31087
remove pgather/pscatter for std::complex<double> for s390x
2016-04-15 07:08:57 -04:00
Benoit Steiner
a62e924656
Added ability to access the cache sizes from the tensor devices
2016-04-14 21:25:06 -07:00
Benoit Steiner
18e6f67426
Added support for exclusive or
2016-04-14 20:37:46 -07:00
Rasmus Munk Larsen
07ac4f7e02
Eigen Tensor cost model part 2: Thread scheduling for standard evaluators and reductions. The cost model is turned off by default.
2016-04-14 18:28:23 -07:00
Benoit Steiner
9624a1ea3d
Added missing definition of PacketSize in the gpu evaluator of convolution
2016-04-14 17:16:58 -07:00
Benoit Steiner
6fbedf5a4e
Merged in rmlarsen/eigen (pull request PR-177)
...
Eigen Tensor cost model part 1.
2016-04-14 17:13:19 -07:00
Benoit Steiner
bebb89acfa
Enabled the new threadpool tests
2016-04-14 16:44:10 -07:00
Benoit Steiner
9c064b5a97
Cleanup
2016-04-14 16:41:31 -07:00
Benoit Steiner
1372156c41
Prepared the migration to the new non blocking thread pool
2016-04-14 16:16:42 -07:00
Rasmus Munk Larsen
aeb5494a0b
Improvements to cost model.
2016-04-14 15:52:58 -07:00
Benoit Steiner
00dfe18487
Merged latest updates from trunk
2016-04-14 15:25:20 -07:00
Benoit Steiner
a8e8837ba7
Added tests for the non blocking thread pool
2016-04-14 15:23:49 -07:00
Benoit Steiner
78a51abc12
Added a more scalable non blocking thread pool
2016-04-14 15:23:10 -07:00
Rasmus Munk Larsen
d2e95492e7
Merge upstream updates.
2016-04-14 13:59:50 -07:00
Rasmus Munk Larsen
235e83aba6
Eigen cost model part 1. This implements a basic recursive framework to estimate the cost of evaluating tensor expressions.
2016-04-14 13:57:35 -07:00
Gael Guennebaud
68897c52f3
Add extreme values to the imaginary part for SVD unit tests.
2016-04-14 22:47:30 +02:00
Gael Guennebaud
20f387fafa
Improve numerical robustness of JacoviSVD:
...
- avoid noise amplification in complex to real conversion
- compare off-diagonal entries to the current biggest diagonal entry: no need to bother about a 2x2 block containing ridiculously small entries compared to the rest of the matrix.
2016-04-14 22:46:55 +02:00
Benoit Steiner
7718749fee
Force the inlining of the << operator on half floats
2016-04-14 11:51:54 -07:00
Benoit Steiner
5379d2b594
Inline the << operator on half floats
2016-04-14 11:40:48 -07:00
Benoit Steiner
5912ad877c
Silenced a compilation warning
2016-04-14 11:40:14 -07:00
Benoit Steiner
2b6e3de02f
Added tests to validate flooring and ceiling of fp16
2016-04-14 11:39:18 -07:00
Benoit Steiner
6f23e945f6
Added simple test for numext::sqrt and numext::pow on fp16
2016-04-14 10:32:52 -07:00
Benoit Steiner
72510c80e1
Added basic test for trigonometric functions on fp16
2016-04-14 10:27:24 -07:00
Benoit Steiner
7b3d7acebe
Added support for fp16 to test_isApprox, test_isMuchSmallerThan, and test_isApproxOrLessThan
2016-04-14 10:25:50 -07:00
Benoit Steiner
5c13765ee3
Added ability to printf fp16
2016-04-14 10:24:52 -07:00
Benoit Steiner
c7167fee0e
Added support for fp16 to the sigmoid function
2016-04-14 10:08:33 -07:00
Benoit Steiner
f6003f0873
Made the test msvc friendly
2016-04-14 09:47:26 -07:00
Gael Guennebaud
3551dea887
Cleaning pass on rcond estimator.
2016-04-14 16:45:41 +02:00
Gael Guennebaud
d8a3bdaa24
remove useless include
2016-04-14 15:18:56 +02:00
Gael Guennebaud
d402adc3d7
Better use .data() than &coeffRef(0)
2016-04-14 15:18:08 +02:00
Gael Guennebaud
ea7087ef31
Merged in rmlarsen/eigen (pull request PR-174)
...
Add matrix condition number estimation module.
2016-04-14 15:11:33 +02:00
Benoit Steiner
36f5a10198
Properly gate the definition of the error and gamma functions for fp16
2016-04-13 18:44:48 -07:00
Benoit Steiner
10b69810d1
Improved support for trigonometric functions on GPU
2016-04-13 16:00:51 -07:00
Benoit Steiner
d6105b53b8
Added basic implementation of the lgamma, digamma, igamma, igammac, polygamma, and zeta function for fp16
2016-04-13 15:26:02 -07:00
Gael Guennebaud
703251f10f
merge
2016-04-13 23:45:10 +02:00
Gael Guennebaud
39211ba46b
Fix JacobiSVD for complex when the complex-to-real update already gives a diagonal 2x2 block.
2016-04-13 23:43:26 +02:00
Benoit Steiner
2986253259
Cleaned up the implementation of digamma
2016-04-13 14:24:06 -07:00
Benoit Steiner
d5de1a8220
Pulled latest updates from trunk
2016-04-13 14:17:11 -07:00
Benoit Steiner
87ca15c4e8
Added support for sin, cos, tan, and tanh on fp16
2016-04-13 14:12:38 -07:00
Gael Guennebaud
2c9e4fa417
Add debug output for random unit test
2016-04-13 22:56:12 +02:00
Gael Guennebaud
7d1391d049
Turn a converge check to a warning
2016-04-13 22:50:54 +02:00
Gael Guennebaud
feef39e2d1
Fix underflow in JacoviSVD's complex to real preconditioner
2016-04-13 22:49:51 +02:00
Gael Guennebaud
f4e12272f1
Fix corner case in unit test.
2016-04-13 22:18:02 +02:00
Gael Guennebaud
a95e1a273e
Fix warning in unit tests
2016-04-13 22:00:38 +02:00
Benoit Steiner
bf3f6688f0
Added support for computing cos, sin, tan, and tanh on GPU.
2016-04-13 11:55:08 -07:00
Benoit Steiner
473c8380ea
Added constructors to convert unsigned integers into fp16
2016-04-13 11:03:37 -07:00
Gael Guennebaud
42a3352a3b
Workaround a division by zero when outerstride==0
2016-04-13 19:02:02 +02:00
Gael Guennebaud
6f960b83ff
Make use of is_same_dense helper instead of extract_data to detect input/outputs are the same.
2016-04-13 18:47:12 +02:00
Gael Guennebaud
b7716c0328
Fix incomplete previous patch on matrix comparision.
2016-04-13 18:32:56 +02:00
Gael Guennebaud
2630d97c62
Fix detection of same matrices when both matrices are not handled by extract_data.
2016-04-13 18:26:08 +02:00
Gael Guennebaud
512ba0ac76
Add regression unit tests for half-packet vectorization
2016-04-13 18:16:35 +02:00
Gael Guennebaud
06447e0a39
Improve half-packet vectorization logic to distinguish linear versus inner traversal modes.
2016-04-13 18:15:49 +02:00
Gael Guennebaud
bbb8854bf7
Enable half-packet in reduxions.
2016-04-13 13:02:34 +02:00
Benoit Steiner
e9b12cc1f7
Fixed compilation warnings generated by clang
2016-04-12 20:53:18 -07:00
Benoit Steiner
eaeb6ca93a
Enable the benchmarks for algebraic and transcendental fnctions on fp16.
2016-04-12 16:29:00 -07:00
Benoit Steiner
aa1ba8bbd2
Don't put a command at the end of an enumerator list
2016-04-12 16:28:11 -07:00
Benoit Steiner
e49945ced4
Pulled latest update from trunk
2016-04-12 14:13:41 -07:00
Benoit Steiner
25d05c4b8f
Fixed the vectorization logic test
2016-04-12 14:13:25 -07:00
Benoit Steiner
53121c0119
Turned on the contraction benchmarks for fp16
2016-04-12 14:11:52 -07:00
Gael Guennebaud
b67c983291
Enable the use of half-packet in coeff-based product.
...
For instance, Matrix4f*Vector4f is now vectorized again when using AVX.
2016-04-12 23:03:03 +02:00
Benoit Steiner
e3a184785c
Fixed the zeta test
2016-04-12 11:12:36 -07:00
Benoit Steiner
3b76df64fc
Defer the decision to vectorize tensor CUDA code to the meta kernel. This makes it possible to decide to vectorize or not depending on the capability of the target cuda architecture. In particular, this enables us to vectorize the processing of fp16 when running on device of capability >= 5.3
2016-04-12 10:58:51 -07:00
Benoit Steiner
8bfe739cd2
Updated the AVX512 PacketMath to properly leverage the AVX512DQ instructions
2016-04-11 18:40:16 -07:00
Rasmus Larsen
6498dadc2f
Merged eigen/eigen into default
2016-04-11 17:42:05 -07:00
Benoit Steiner
d6e596174d
Pull latest updates from upstream
2016-04-11 17:20:17 -07:00
Benoit Steiner
748c4c4599
More accurate cost estimates for exp, log, tanh, and sqrt.
2016-04-11 13:11:04 -07:00
Benoit Steiner
833efb39bf
Added epsilon, dummy_precision, infinity and quiet_NaN NumTraits for fp16
2016-04-11 11:03:56 -07:00
Benoit Steiner
e939b087fe
Pulled latest update from trunk
2016-04-11 11:03:02 -07:00
Gael Guennebaud
1744b5b5d2
Update doc regarding the genericity of EIGEN_USE_BLAS
2016-04-11 17:16:07 +02:00
Gael Guennebaud
91bf925fc1
Improve constness of level2 blas API.
2016-04-11 17:13:01 +02:00
Gael Guennebaud
0483430283
Move LAPACK declarations from blas.h to lapack.h and fix compatibility with EIGEN_USE_MKL
2016-04-11 17:12:31 +02:00
Gael Guennebaud
097d1e8823
Cleanup obsolete assign_scalar_eig2mkl helper.
2016-04-11 16:09:29 +02:00
Gael Guennebaud
fec4c334ba
Remove all references to MKL in BLAS wrappers.
2016-04-11 16:04:09 +02:00
Gael Guennebaud
ddabc992fa
Fix long to int conversion in BLAS API.
2016-04-11 15:52:01 +02:00
Gael Guennebaud
8191f373be
Silent unused warning.
2016-04-11 15:37:16 +02:00
Gael Guennebaud
6a9ca88e7e
Relax dependency on MKL for EIGEN_USE_BLAS
2016-04-11 15:17:14 +02:00
Gael Guennebaud
4e8e5888d7
Improve constness of blas level-3 interface.
2016-04-11 15:12:44 +02:00
Gael Guennebaud
675e0a2224
Fix static/inline keywords order.
2016-04-11 15:06:20 +02:00
Gael Guennebaud
fc6a0ebb1c
Typos in doc.
2016-04-11 10:54:58 +02:00
Till Hoffmann
643b697649
Proper handling of domain errors.
2016-04-10 00:37:53 +01:00
Rasmus Munk Larsen
1f70bd4134
Merge.
2016-04-09 15:31:53 -07:00
Rasmus Munk Larsen
096e355f8e
Add short-circuit to avoid calling matrix norm for empty matrix.
2016-04-09 15:29:56 -07:00
Rasmus Larsen
be80fb49fc
Merged default ( 4a92b590a0
...
) into default
2016-04-09 13:13:01 -07:00
Rasmus Larsen
7a8176587b
Merged eigen/eigen into default
2016-04-09 12:47:41 -07:00
Rasmus Munk Larsen
4a92b590a0
Merge.
2016-04-09 12:47:24 -07:00
Rasmus Munk Larsen
ee6c69733a
A few tiny adjustments to short-circuit logic.
2016-04-09 12:45:49 -07:00
Till Hoffmann
7f4826890c
Merge upstream
2016-04-09 20:08:07 +01:00
Till Hoffmann
de057ebe54
Added nans to zeta function.
2016-04-09 20:07:36 +01:00
Gael Guennebaud
af2161cdb4
bug #1197 : fix/relax some LM unit tests
2016-04-09 11:14:02 +02:00
Gael Guennebaud
a05a683d83
bug #1160 : fix and relax some lm unit tests by turning faillures to warnings
2016-04-09 10:49:19 +02:00
Benoit Steiner
5da90fc8dd
Use numext::abs instead of std::abs in scalar_fuzzy_default_impl to make it usable inside GPU kernels.
2016-04-08 19:40:48 -07:00
Benoit Steiner
01bd577288
Fixed the implementation of Eigen::numext::isfinite, Eigen::numext::isnan, andEigen::numext::isinf on CUDA devices
2016-04-08 16:40:10 -07:00
Benoit Steiner
89a3dc35a3
Fixed isfinite_impl: NumTraits<T>::highest() and NumTraits<T>::lowest() are finite numbers.
2016-04-08 15:56:16 -07:00
Benoit Steiner
995f202cea
Disabled the use of half2 on cuda devices of compute capability < 5.3
2016-04-08 14:43:36 -07:00
Benoit Steiner
8d22967bd9
Initial support for taking the power of fp16
2016-04-08 14:22:39 -07:00
Benoit Steiner
3394379319
Fixed the packet_traits for half floats.
2016-04-08 13:33:59 -07:00
Benoit Steiner
0d2a532fc3
Created the new EIGEN_TEST_CUDA_CLANG option to compile the CUDA tests using clang instead of nvcc
2016-04-08 13:16:08 -07:00
Rasmus Larsen
0b81a18d12
Merged eigen/eigen into default
2016-04-08 12:58:57 -07:00
Benoit Steiner
2d072b38c1
Don't test the division by 0 on float16 when compiling with msvc since msvc detects and errors out on divisions by 0.
2016-04-08 12:50:25 -07:00
Benoit Jacob
cd2b667ac8
Add references to filed LLVM bugs
2016-04-08 08:12:47 -04:00
Benoit Steiner
3bd16457e1
Properly handle complex numbers.
2016-04-07 23:28:04 -07:00
Benoit Steiner
63102ee43d
Turn on the coeffWise benchmarks on fp16
2016-04-07 23:05:20 -07:00
Benoit Steiner
7c47d3e663
Fixed the type casting benchmarks for fp16
2016-04-07 22:50:25 -07:00
Benoit Steiner
166b56bc61
Fixed the type casting benchmark for float16
2016-04-07 22:45:54 -07:00
Benoit Steiner
2f2801f096
Merged in parthaEth/eigen (pull request PR-175)
...
Static casting scalar types so as to let chlesky module of eigen work with ceres
2016-04-07 22:10:14 -07:00
Benoit Steiner
d962fe6a99
Renamed float16 into cxx11_float16 since the test relies on c++11 features
2016-04-07 20:28:32 -07:00
Rasmus Larsen
c34e55c62b
Merged eigen/eigen into default
2016-04-07 20:23:03 -07:00
Benoit Steiner
7d5b17087f
Added missing EIGEN_DEVICE_FUNC to the tensor conversion code.
2016-04-07 20:01:19 -07:00
Benoit Steiner
a6d08be9b2
Fixed the benchmarking of fp16 coefficient wise operations
2016-04-07 17:13:44 -07:00
Rasmus Munk Larsen
283c51cd5e
Widen short-circuiting ReciprocalConditionNumberEstimate so we don't call InverseMatrixL1NormEstimate for dec.rows() <= 1.
2016-04-07 16:45:40 -07:00
Rasmus Munk Larsen
d51803a728
Use Index instead of int for indexing and sizes.
2016-04-07 16:39:48 -07:00
Rasmus Munk Larsen
fd872aefb3
Remove transpose() method from LLT and LDLT classes as it would imply conjugation.
...
Explicitly cast constants to RealScalar in ConditionEstimator.h.
2016-04-07 16:28:44 -07:00
Rasmus Munk Larsen
0b5546d182
Use lpNorm<1>() to compute l1 norms in LLT and LDLT.
2016-04-07 15:49:30 -07:00
parthaEth
2d5bb375b7
Static casting scalar types so as to let chlesky module of eigen work with ceres
2016-04-08 00:14:44 +02:00
Benoit Steiner
a02ec09511
Worked around numerical noise in the test for the zeta function.
2016-04-07 12:11:02 -07:00
Benoit Steiner
c912b1d28c
Fixed a typo in the polygamma test.
2016-04-07 11:51:07 -07:00
Benoit Steiner
74f64838c5
Updated the unary functors to use the numext implementation of typicall functions instead of the one provided in the standard library. The standard library functions aren't supported officially by cuda, so we're better off using the numext implementations.
2016-04-07 11:42:14 -07:00
Benoit Steiner
737644366f
Move the functions operating on fp16 out of the std namespace and into the Eigen::numext namespace
2016-04-07 11:40:15 -07:00
Benoit Steiner
dc45aaeb93
Added tests for float16
2016-04-07 11:18:05 -07:00
Benoit Steiner
8db269e055
Fixed a typo in a test
2016-04-07 10:41:51 -07:00
Benoit Steiner
b89d3f78b2
Updated the isnan, isinf and isfinite functions to make compatible with cuda devices.
2016-04-07 10:08:49 -07:00
Benoit Steiner
48308ed801
Added support for isinf, isnan, and isfinite checks to the tensor api
2016-04-07 09:48:36 -07:00
Benoit Steiner
cfb34d808b
Fixed a possible integer overflow.
2016-04-07 08:46:52 -07:00
Benoit Steiner
df838736e2
Fixed compilation warning triggered by msvc
2016-04-06 20:48:55 -07:00
Benoit Steiner
14ea7c7ec7
Fixed packet_traits<half>
2016-04-06 19:30:21 -07:00
Benoit Steiner
532fdf24cb
Added support for hardware conversion between fp16 and full floats whenever
...
possible.
2016-04-06 17:11:31 -07:00
Benoit Steiner
165150e896
Fixed the tests for the zeta and polygamma functions
2016-04-06 14:31:01 -07:00
Benoit Steiner
7be1eaad1e
Fixed typos in the implementation of the zeta and polygamma ops.
2016-04-06 14:15:37 -07:00
Benoit Steiner
58c1dbff19
Made the fp16 code more portable.
2016-04-06 13:44:08 -07:00
Benoit Steiner
cf7e73addd
Added some missing conversions to the Half class, and fixed the implementation of the < operator on cuda devices.
2016-04-06 09:59:51 -07:00
Benoit Steiner
10bdd8e378
Merged in tillahoffmann/eigen (pull request PR-173)
...
Added zeta function of two arguments and polygamma function
2016-04-06 09:40:17 -07:00
Benoit Steiner
7781f865cb
Renamed the EIGEN_TEST_NVCC cmake option into EIGEN_TEST_CUDA per the discussion in bug #1173 .
2016-04-06 09:35:23 -07:00
Benoit Steiner
72abfa11dd
Added support for isfinite on fp16
2016-04-06 09:07:30 -07:00
Rasmus Munk Larsen
4d07064a3d
Fix bug in alternate lower bound calculation due to missing parentheses.
...
Make a few expressions more concise.
2016-04-05 16:40:48 -07:00
Konstantinos Margaritis
2bba4ee2cf
Merged kmargar/eigen/tip into default
2016-04-05 22:22:08 +03:00
Konstantinos Margaritis
317384b397
complete the port, remove float support
2016-04-05 14:56:45 -04:00
tillahoffmann
726bd5f077
Merged eigen/eigen into default
2016-04-05 18:21:05 +01:00
Till Hoffmann
a350c25a39
Added accuracy comments.
2016-04-05 18:20:40 +01:00
Gael Guennebaud
4d7e230d2f
bug #1189 : fix pow/atan2 compilation for AutoDiffScalar
2016-04-05 14:49:41 +02:00
Konstantinos Margaritis
bc0ad363c6
add remaining includes
2016-04-05 06:01:17 -04:00
Konstantinos Margaritis
2d41dc9622
complete int/double specialized traits for ZVector
2016-04-05 06:00:51 -04:00
Konstantinos Margaritis
644d0f91d2
enable all tests again
2016-04-05 05:59:54 -04:00
Konstantinos Margaritis
988344daf1
enable the other includes as well
2016-04-05 05:59:30 -04:00
Rasmus Larsen
d7eeee0c1d
Merged eigen/eigen into default
2016-04-04 15:58:27 -07:00
Rasmus Munk Larsen
513c372960
Fix docstrings to list all supported decompositions.
2016-04-04 14:34:59 -07:00
Rasmus Munk Larsen
86e0ed81f8
Addresses comments on Eigen pull request PR-174.
...
* Get rid of code-duplication for real vs. complex matrices.
* Fix flipped arguments to select.
* Make the condition estimation functions free functions.
* Use Vector::Unit() to generate canonical unit vectors.
* Misc. cleanup.
2016-04-04 14:20:01 -07:00
Benoit Jacob
158fea0f5e
bug #1190 - Don't trust __ARM_FEATURE_FMA on Clang/ARM
2016-04-04 16:42:40 -04:00
Benoit Jacob
03f2997a11
bug #1191 - Prevent Clang/ARM from rewriting VMLA into VMUL+VADD
2016-04-04 16:41:47 -04:00
Till Hoffmann
b0143de177
Merge upstream.
2016-04-04 19:16:48 +01:00
Till Hoffmann
b97911dd18
Refactored code into type-specific helper functions.
2016-04-04 19:16:03 +01:00
Benoit Steiner
c4179dd470
Updated the scalar_abs_op struct to make it compatible with cuda devices.
2016-04-04 11:11:51 -07:00
Benoit Steiner
1108b4f218
Fixed the signature of numext::abs to make it compatible with complex numbers
2016-04-04 11:09:25 -07:00
tillahoffmann
b8245cc325
Merged eigen/eigen into default
2016-04-04 12:28:11 +01:00
Gael Guennebaud
2b457f8e5e
Fix cross-compiling windows version detection
2016-04-04 11:47:46 +02:00
Rasmus Larsen
30242b7565
Merged eigen/eigen into default
2016-04-01 17:19:36 -07:00
Rasmus Munk Larsen
9d51f7c457
Add rcond method to LDLT.
2016-04-01 16:48:38 -07:00
Rasmus Munk Larsen
f54137606e
Add condition estimation to Cholesky (LLT) factorization.
2016-04-01 16:19:45 -07:00
Rasmus Munk Larsen
fb8dccc23e
Replace "inline static" with "static inline" for consistency.
2016-04-01 12:48:18 -07:00
Rasmus Munk Larsen
91414e0042
Fix comments in ConditionEstimator and minor cleanup.
2016-04-01 11:58:17 -07:00
Rasmus Munk Larsen
1aa89fb855
Add matrix condition estimator module that implements the Higham/Hager algorithm from http://www.maths.manchester.ac.uk/~higham/narep/narep135.pdf used in LPACK. Add rcond() methods to FullPivLU and PartialPivLU.
2016-04-01 10:27:59 -07:00
Till Hoffmann
80eba21ad0
Merge upstream.
2016-04-01 18:18:49 +01:00
Till Hoffmann
eb0ae602bd
Added CUDA tests.
2016-04-01 18:17:45 +01:00
Till Hoffmann
ffd770ce94
Fixed CUDA signature.
2016-04-01 17:58:24 +01:00
Till Hoffmann
3cb0a237c1
Fixed suggestions by Eugene Brevdo.
2016-04-01 17:51:39 +01:00
tillahoffmann
49960adbdd
Merged eigen/eigen into default
2016-04-01 14:36:15 +01:00
Till Hoffmann
57239f4a81
Added polygamma function.
2016-04-01 14:35:21 +01:00
Till Hoffmann
dd5d390daf
Added zeta function.
2016-04-01 13:32:29 +01:00
Benoit Steiner
3da495e6b9
Relaxed the condition used to gate the fft code.
2016-03-31 18:11:51 -07:00
Benoit Steiner
0ea7ab4f62
Hashing was only officially introduced in c++11. Therefore only define an implementation of the hash function for float16 if c++11 is enabled.
2016-03-31 14:44:55 -07:00
Benoit Steiner
92b7f7b650
Improved code formating
2016-03-31 13:09:58 -07:00
Benoit Steiner
f197813f37
Added the ability to hash a fp16
2016-03-31 13:09:23 -07:00
Benoit Steiner
0f5cc504fe
Properly gate the fft code
2016-03-31 12:59:39 -07:00
Benoit Steiner
4c859181da
Made it possible to use the NumTraits for complex and Array in a cuda kernel.
2016-03-31 12:48:38 -07:00
Benoit Steiner
c36ab19902
Added __ldg primitive for fp16.
2016-03-31 10:55:03 -07:00
Benoit Steiner
b575fb1d02
Added NumTraits for half floats
2016-03-31 10:43:59 -07:00
Benoit Steiner
8c8a79cec1
Fixed a typo
2016-03-31 10:33:32 -07:00
Benoit Steiner
af4ef540bf
Fixed a off-by-one bug in a debug assertion
2016-03-30 18:37:19 -07:00
Benoit Steiner
791e5cfb69
Added NumTraits for type2index.
2016-03-30 18:36:36 -07:00
Benoit Steiner
4f1a7e51c1
Pull math functions from the global namespace only when compiling cuda code with nvcc. When compiling with clang, we want to use the std namespace.
2016-03-30 17:59:49 -07:00
Benoit Steiner
bc68fc2fe7
Enable constant expressions when compiling cuda code with clang.
2016-03-30 17:58:32 -07:00
Benoit Steiner
483aaad10a
Fixed compilation warning
2016-03-30 17:08:13 -07:00
Benoit Steiner
1b40abbf99
Added missing assignment operator to the TensorUInt128 class, and made misc small improvements
2016-03-30 13:17:03 -07:00
Benoit Jacob
01b5333e44
bug #1186 - vreinterpretq_u64_f64 fails to build on Android/Aarch64/Clang toolchain
2016-03-30 11:02:33 -04:00
Benoit Steiner
aa45ad2aac
Fixed the formatting of the README.
2016-03-29 15:06:13 -07:00
Benoit Steiner
56df5ef1d7
Attempt to fix the formatting of the README
2016-03-29 15:03:38 -07:00
Benoit Steiner
1bcd82e31b
Pulled latest updates from trunk
2016-03-29 13:36:18 -07:00
Gael Guennebaud
09ad31aa85
Add regression test for nesting type handling in blas_traits
2016-03-29 22:33:57 +02:00
Benoit Steiner
1841d6d4c3
Added missing cuda template specializations for numext::ceil
2016-03-29 13:29:34 -07:00
Benoit Steiner
7b7d2a9fa5
Use false instead of 0 as the expected value of a boolean
2016-03-29 11:50:17 -07:00
Benoit Steiner
e02b784ec3
Added support for standard mathematical functions and trancendentals(such as exp, log, abs, ...) on fp16
2016-03-29 09:20:36 -07:00
Benoit Steiner
c38295f0a0
Added support for fmod
2016-03-28 15:53:02 -07:00
Benoit Steiner
6772f653c3
Made it possible to customize the threadpool
2016-03-28 10:01:04 -07:00
Benoit Steiner
1bc81f7889
Fixed compilation warnings on arm
2016-03-28 09:21:04 -07:00
Benoit Steiner
78f83d6f6a
Prevent potential overflow.
2016-03-28 09:18:04 -07:00
Konstantinos Margaritis
01e7298fe6
actually include ZVector files, passes most basic tests (float still fails)
2016-03-28 10:58:02 -04:00
Konstantinos Margaritis
f48011119e
Merged eigen/eigen into default
2016-03-28 01:48:45 +03:00
Konstantinos Margaritis
ed6b9d08f1
some primitives ported, but missing intrinsics and crash with asm() are a problem
2016-03-27 18:47:49 -04:00
Benoit Steiner
74f91ed06c
Improved support for integer modulo
2016-03-25 17:21:56 -07:00
Benoit Steiner
65716e99a5
Improved the cost estimate of the quotient op
2016-03-25 11:13:53 -07:00
Benoit Steiner
d94f6ba965
Started to model the cost of divisions more accurately.
2016-03-25 11:02:56 -07:00
Benoit Steiner
a86c9f037b
Fixed compilation error on windows
2016-03-24 18:54:31 -07:00
Benoit Steiner
0968e925a0
Updated the benchmarking code to use Eigen::half instead of half
2016-03-24 18:00:33 -07:00
Benoit Steiner
044efea965
Made sure that the cxx11_tensor_cuda test can be compiled even without support for cxx11.
2016-03-23 20:02:11 -07:00
Benoit Steiner
2e4e4cb74d
Use numext::abs instead of abs to avoid incorrect conversion to integer of the argument
2016-03-23 16:57:12 -07:00
Benoit Steiner
41434a8a85
Avoid unnecessary conversions
2016-03-23 16:52:38 -07:00
Benoit Steiner
92693b50eb
Fixed compilation warning
2016-03-23 16:40:36 -07:00
Benoit Steiner
9bc9396e88
Use portable includes
2016-03-23 16:30:06 -07:00
Benoit Steiner
393bc3b16b
Added comment
2016-03-23 16:22:15 -07:00
Benoit Steiner
81d340984a
Removed executable bit from header files
2016-03-23 16:15:02 -07:00
Benoit Steiner
bff8cbad06
Removed executable bit from header files
2016-03-23 16:14:23 -07:00
Benoit Steiner
7a570e50ef
Fixed contractions of fp16
2016-03-23 16:00:06 -07:00
Benoit Steiner
7168afde5e
Made the tensor benchmarks compile on MacOS
2016-03-23 14:21:04 -07:00
Benoit Steiner
2062ee2d26
Added a test to verify that notifications are working properly
2016-03-23 13:39:00 -07:00
Benoit Steiner
fc3660285f
Made type conversion explicit
2016-03-23 09:56:50 -07:00
Benoit Steiner
0e68882604
Added the ability to divide a half float by an index
2016-03-23 09:46:42 -07:00
Benoit Steiner
6971146ca9
Added more conversion operators for half floats
2016-03-23 09:44:52 -07:00
Christoph Hertzberg
9642fd7a93
Replace all M_PI by EIGEN_PI and add a check to the testsuite.
2016-03-23 15:37:45 +01:00
Benoit Steiner
28e02996df
Merged patch 672 from Justin Lebar: Don't use long doubles with cuda
2016-03-22 16:53:57 -07:00
Benoit Steiner
3d1e857327
Fixed compilation error
2016-03-22 15:48:28 -07:00
Benoit Steiner
de7d92c259
Pulled latest updates from trunk
2016-03-22 15:24:49 -07:00
Benoit Steiner
002cf0d1c9
Use a single Barrier instead of a collection of Notifications to reduce the thread synchronization overhead
2016-03-22 15:24:23 -07:00
Benoit Steiner
bc2b802751
Fixed a couple of typos
2016-03-22 14:27:34 -07:00
Benoit Steiner
e7a468c5b7
Filter some compilation flags that nvcc warns about.
2016-03-22 14:26:50 -07:00
Benoit Steiner
6a31b7be3e
Avoid using std::vector whenever possible
2016-03-22 14:02:50 -07:00
Benoit Steiner
65a7113a36
Use an enum instead of a static const int to prevent possible link error
2016-03-22 09:33:54 -07:00
Benoit Steiner
f9ad25e4d8
Fixed contractions of 16 bit floats
2016-03-22 09:30:23 -07:00
Benoit Steiner
8ef3181f15
Worked around a constness related issue
2016-03-21 11:24:05 -07:00
Benoit Steiner
7a07d6aa2b
Small cleanup
2016-03-21 11:12:17 -07:00
Konstantinos Margaritis
a9a6710e15
add initial s390x(zEC13) ZVECTOR support
2016-03-21 13:46:47 -04:00
Benoit Steiner
e91f255301
Marked variables that's only used in debug mode as such
2016-03-21 10:02:00 -07:00
Benoit Steiner
db5c14de42
Explicitly cast the default value into the proper scalar type.
2016-03-21 09:52:58 -07:00
Christoph Hertzberg
b224771f40
bug #1178 : Simplified modification of the SSE control register for better portability
2016-03-20 10:57:08 +01:00
Benoit Steiner
8e03333f06
Renamed some class members to make the code more readable.
2016-03-18 15:21:04 -07:00
Benoit Steiner
6c08943d9f
Fixed a bug in the padding of extracted image patches.
2016-03-18 15:19:10 -07:00
Benoit Steiner
134d750eab
Completed the implementation of vectorized type casting of half floats.
2016-03-18 13:36:28 -07:00
Benoit Steiner
7bd551b3a9
Make all the conversions explicit
2016-03-18 12:20:08 -07:00
Benoit Steiner
bb0e73c191
Gate all the CUDA tests under the EIGEN_TEST_NVCC option
2016-03-18 12:17:37 -07:00
Benoit Steiner
2db4a04827
Fixed a typo
2016-03-18 12:08:01 -07:00
Benoit Steiner
dd514de8a9
Added a test to validate the fallback path for half floats
2016-03-18 12:02:39 -07:00
Benoit Steiner
9a7ece9caf
Worked around constness issue
2016-03-18 10:38:29 -07:00
Benoit Steiner
edc679f6c6
Fixed compilation warning
2016-03-18 07:12:34 -07:00
Benoit Steiner
53d498ef06
Fixed compilation warnings in the cuda tests
2016-03-18 07:04:54 -07:00
Benoit Steiner
e10e126cd0
pulled latest updates from trunk
2016-03-17 21:48:38 -07:00
Benoit Steiner
70eb70f5f8
Avoid mutable class members when possible
2016-03-17 21:47:18 -07:00
Benoit Steiner
7b98de1f15
Implemented some of the missing type casting for half floats
2016-03-17 21:45:45 -07:00
Benoit Steiner
afb81b7ded
Made sure to use the hard abi when compiling with NEON instructions to avoid the "gnu/stubs-soft.h: No such file or directory" error
2016-03-17 21:24:24 -07:00
Benoit Steiner
95b8961a9b
Allocate the mersenne twister used by the random number generators on the heap instead of on the stack since they tend to keep a lot of state (i.e. about 5k) around.
2016-03-17 15:23:51 -07:00
Benoit Steiner
f7329619da
Fix bug in tensor contraction. The code assumes that contraction axis indices for the LHS (after possibly swapping to ColMajor!) is increasing. Explicitly sort the contraction axis pairs to make it so.
2016-03-17 15:08:02 -07:00
Christoph Hertzberg
46aa9772fc
Merged in ebrevdo/eigen (pull request PR-169)
...
Bugfixes to cuda tests, igamma & igammac implemented, & tests for digamma, igamma, igammac on CPU & GPU.
2016-03-16 21:59:08 +01:00
Eugene Brevdo
f1f7181f53
Merge default branch.
2016-03-16 12:46:19 -07:00
Eugene Brevdo
1f69a1b65f
Change the header guard around certain numext functions to be CUDA specific.
2016-03-16 12:44:35 -07:00
Benoit Steiner
ab9b749b45
Improved a test
2016-03-14 20:03:13 -07:00
Benoit Steiner
5a51366ea5
Fixed a typo.
2016-03-14 09:25:16 -07:00
Benoit Steiner
fcf59e1c37
Properly gate the use of cuda intrinsics in the code
2016-03-14 09:13:44 -07:00
Benoit Steiner
97a1f1c273
Make sure we only use the half float intrinsic when compiling with a version of CUDA that is recent enough to provide them
2016-03-14 08:37:58 -07:00
Eugene Brevdo
9550be925d
Merge specfun branch.
2016-03-13 15:46:51 -07:00
Eugene Brevdo
b1a9afe9a9
Add tests in array.cpp that check igamma/igammac properties.
...
This adds to the set of existing tests, which compare a specific
set of values to third party calculated ground truth.
2016-03-13 15:45:34 -07:00
Benoit Steiner
e29c9676b1
Don't mark the cast operator as explicit, since this is a c++11 feature that's not supported by older compilers.
2016-03-12 00:15:58 -08:00
Benoit Steiner
eecd914864
Also replaced uint32_t with unsigned int to make the code more portable
2016-03-11 19:34:21 -08:00
Benoit Steiner
1ca8c1ec97
Replaced a couple more uint16_t with unsigned short
2016-03-11 19:28:28 -08:00
Benoit Steiner
0423b66187
Use unsigned short instead of uint16_t since they're more portable
2016-03-11 17:53:41 -08:00
Benoit Steiner
048c4d6efd
Made half floats usable on hardware that doesn't support them natively.
2016-03-11 17:21:42 -08:00
Benoit Steiner
b72ffcb05e
Made the comparison of Eigen::array GPU friendly
2016-03-11 16:37:59 -08:00
Benoit Steiner
25f69cb932
Added a comparison operator for Eigen::array
...
Alias Eigen::array to std::array when compiling with Visual Studio 2015
2016-03-11 15:20:37 -08:00
Benoit Steiner
c5b98a58b8
Updated the cxx11_meta test to work on the Eigen::array class when std::array isn't available.
2016-03-11 11:53:38 -08:00
Benoit Steiner
456e038a4e
Fixed the +=, -=, *= and /= operators to return a reference
2016-03-10 15:17:44 -08:00
Benoit Steiner
86d45a3c83
Worked around visual studio compilation warnings.
2016-03-09 21:29:39 -08:00
Benoit Steiner
8fd4241377
Fixed a typo.
2016-03-10 02:28:46 +00:00
Benoit Steiner
a685a6beed
Made the list reductions less ambiguous.
2016-03-09 17:41:52 -08:00
Benoit Steiner
3149b5b148
Avoid implicit cast
2016-03-09 17:35:17 -08:00
Benoit Steiner
b2100b83ad
Made sure to include the <random> header file when compiling with visual studio
2016-03-09 16:03:16 -08:00
Benoit Steiner
f05fb449b8
Avoid unnecessary conversion from 32bit int to 64bit unsigned int
2016-03-09 15:27:45 -08:00
Benoit Steiner
1d566417d2
Enable the random number generators when compiling with visual studio
2016-03-09 10:55:11 -08:00
Eugene Brevdo
836e92a051
Update MathFunctions/SpecialFunctions with intelligent header guards.
2016-03-09 09:04:45 -08:00
Benoit Steiner
b084133dbf
Fixed the integer division code on windows
2016-03-09 07:06:36 -08:00
Benoit Steiner
6d30683113
Fixed static assertion
2016-03-08 21:02:51 -08:00
Eugene Brevdo
5e7de771e3
Properly fix merge issues.
2016-03-08 17:35:05 -08:00
Eugene Brevdo
73220d2bb0
Resolve bad merge.
2016-03-08 17:28:21 -08:00
Eugene Brevdo
5f17de3393
Merge changes.
2016-03-08 17:22:26 -08:00
Eugene Brevdo
14f0fde51f
Add certain functions to numext (log, exp, tan) because CUDA doesn't support std::
...
Use these in SpecialFunctions.
2016-03-08 17:17:44 -08:00
Benoit Steiner
46177c8d64
Replace std::vector with our own implementation, as using the stl when compiling with nvcc and avx enabled leads to many issues.
2016-03-08 16:37:27 -08:00
Benoit Steiner
6d6413f768
Simplified the full reduction code
2016-03-08 16:02:00 -08:00
Benoit Steiner
5a427a94a9
Fixed the tensor generator code
2016-03-08 13:28:06 -08:00
Benoit Steiner
a81b88bef7
Fixed the tensor concatenation code
2016-03-08 12:30:19 -08:00
Benoit Steiner
551ff11d0d
Fixed the tensor layout swapping code
2016-03-08 12:28:10 -08:00
Benoit Steiner
8768c063f5
Fixed the tensor chipping code.
2016-03-08 12:26:49 -08:00
Benoit Steiner
e09eb835db
Decoupled the packet type definition from the definition of the tensor ops. All the vectorization is now defined in the tensor evaluators. This will make it possible to relialably support devices with different packet types in the same compilation unit.
2016-03-08 12:07:33 -08:00
Benoit Steiner
3b614a2358
Use NumTraits::highest() and NumTraits::lowest() instead of the std::numeric_limits to make the tensor min and max functors more CUDA friendly.
2016-03-07 17:53:28 -08:00
Eugene Brevdo
dd6dcad6c2
Merge branch specfun.
2016-03-07 15:37:12 -08:00
Eugene Brevdo
0bb5de05a1
Finishing touches on igamma/igammac for GPU. Tests now pass.
2016-03-07 15:35:09 -08:00
Benoit Steiner
769685e74e
Added the ability to pad a tensor using a non-zero value
2016-03-07 14:45:37 -08:00
Benoit Steiner
7f87cc3a3b
Fix a couple of typos in the code.
2016-03-07 14:31:27 -08:00
Eugene Brevdo
5707004d6b
Fix Eigen's building of sharded tests that use CUDA & more igamma/igammac bugfixes.
...
0. Prior to this PR, not a single sharded CUDA test was actually being *run*.
Fixed that.
GPU tests are still failing for igamma/igammac.
1. Add calls for igamma/igammac to TensorBase
2. Fix up CUDA-specific calls of igamma/igammac
3. Add unit tests for digamma, igamma, igammac in CUDA.
2016-03-07 14:08:56 -08:00
Benoit Steiner
e5f25622e2
Added a test to validate the behavior of some of the tensor syntactic sugar.
2016-03-07 09:04:27 -08:00
Benoit Steiner
9f5740cbc1
Added missing include
2016-03-06 22:03:18 -08:00
Benoit Steiner
5238e03fe1
Don't try to compile the uint128 test with compilers that don't support uint127
2016-03-06 21:59:40 -08:00
Benoit Steiner
9a54c3e32b
Don't warn that msvc 2015 isn't c++11 compliant just because it doesn't claim to be.
2016-03-06 09:38:56 -08:00
Benoit Steiner
05bbca079a
Turn on some of the cxx11 features when compiling with visual studio 2015
2016-03-05 10:52:08 -08:00
Benoit Steiner
6093eb9ff5
Don't test our 128bit emulation code when compiling with msvc
2016-03-05 10:37:11 -08:00
Benoit Steiner
57b263c5b9
Avoid using initializer lists in test since not all version of msvc support them
2016-03-05 08:35:26 -08:00
Benoit Steiner
23aed8f2e4
Use EIGEN_PI instead of redefining our own constant PI
2016-03-05 08:04:45 -08:00
Eugene Brevdo
0b9e0abc96
Make igamma and igammac work correctly.
...
This required replacing ::abs with std::abs.
Modified some unit tests.
2016-03-04 21:12:10 -08:00
Benoit Steiner
c23e0be18f
Use the CMAKE_CXX_STANDARD variable to turn on cxx11
2016-03-04 20:18:01 -08:00
Benoit Steiner
ec35068edc
Don't rely on the M_PI constant since not all compilers provide it.
2016-03-04 16:42:38 -08:00
Benoit Steiner
60d9df11c1
Fixed the computation of leading zeros when compiling with msvc.
2016-03-04 16:27:02 -08:00
Benoit Steiner
4e49fd5eb9
MSVC uses __uint128 while other compilers use __uint128_t to encode 128bit unsigned integers. Make the cxx11_tensor_uint128.cpp test work in both cases.
2016-03-04 14:49:18 -08:00
Benoit Steiner
667fcc2b53
Fixed syntax error
2016-03-04 14:37:51 -08:00
Benoit Steiner
4416a5dcff
Added missing include
2016-03-04 14:35:43 -08:00
Benoit Steiner
c561eeb7bf
Don't use implicit type conversions in initializer lists since not all compilers support them.
2016-03-04 14:12:45 -08:00
Benoit Steiner
174edf976b
Made the contraction test more portable
2016-03-04 14:11:13 -08:00
Benoit Steiner
2c50fc878e
Fixed a typo
2016-03-04 14:09:38 -08:00
Eugene Brevdo
7ea35bfa1c
Initial implementation of igamma and igammac.
2016-03-03 19:39:41 -08:00
Benoit Steiner
deea866bbd
Added tests to cover the new rounding, flooring and ceiling tensor operations.
2016-03-03 12:38:02 -08:00
Benoit Steiner
5cf4558c0a
Added support for rounding, flooring, and ceiling to the tensor api
2016-03-03 12:36:55 -08:00
Benoit Steiner
dac58d7c35
Added a test to validate the conversion of half floats into floats on Kepler GPUs.
...
Restricted the testing of the random number generation code to GPU architecture greater than or equal to 3.5.
2016-03-03 10:37:25 -08:00
Benoit Steiner
1032441c6f
Enable partial support for half floats on Kepler GPUs.
2016-03-03 10:34:20 -08:00
Benoit Steiner
1da10a7358
Enable the conversion between floats and half floats on older GPUs that support it.
2016-03-03 10:33:20 -08:00
Benoit Steiner
2de8cc9122
Merged in ebrevdo/eigen (pull request PR-167)
...
Add infinity() support to numext::numeric_limits, use it in lgamma.
I tested the code on my gtx-titan-black gpu, and it appears to work as expected.
2016-03-03 09:42:12 -08:00
Eugene Brevdo
ab3dc0b0fe
Small bugfix to numeric_limits for CUDA.
2016-03-02 21:48:46 -08:00
Eugene Brevdo
6afea46838
Add infinity() support to numext::numeric_limits, use it in lgamma.
...
This makes the infinity access a __device__ function, removing
nvcc warnings.
2016-03-02 21:35:48 -08:00
Gael Guennebaud
3fccef6f50
bug #537 : fix compilation with Apples's compiler
2016-03-02 13:22:46 +01:00
Benoit Steiner
fedaf19262
Pulled latest updates from trunk
2016-03-01 06:15:44 -08:00
Gael Guennebaud
dfa80b2060
Compilation fix
2016-03-01 12:48:56 +01:00
Gael Guennebaud
bee9efc203
Compilation fix
2016-03-01 12:47:27 +01:00
Benoit Steiner
68ac5c1738
Improved the performance of large outer reductions on cuda
2016-02-29 18:11:58 -08:00
Benoit Steiner
56a3ada670
Added benchmarks for full reduction
2016-02-29 14:57:52 -08:00
Benoit Steiner
b2075cb7a2
Made the signature of the inner and outer reducers consistent
2016-02-29 10:53:38 -08:00
Benoit Steiner
3284842045
Optimized the performance of narrow reductions on CUDA devices
2016-02-29 10:48:16 -08:00
Gael Guennebaud
e9bea614ec
Fix shortcoming in fixed-value deduction of startRow/startCol
2016-02-29 10:31:27 +01:00
Benoit Steiner
609b3337a7
Print some information to stderr when a CUDA kernel fails
2016-02-27 20:42:57 +00:00
Benoit Steiner
1031b31571
Improved the README
2016-02-27 20:22:04 +00:00
Gael Guennebaud
8e6faab51e
bug #1172 : make valuePtr and innderIndexPtr properly return null for empty matrices.
2016-02-27 14:55:40 +01:00
Benoit Steiner
ac2e6e0d03
Properly vectorized the random number generators
2016-02-26 13:52:24 -08:00
Benoit Steiner
caa54d888f
Made the TensorIndexList usable on GPU without having to use the -relaxed-constexpr compilation flag
2016-02-26 12:38:18 -08:00
Benoit Steiner
93485d86bc
Added benchmarks for type casting of float16
2016-02-26 12:24:58 -08:00
Benoit Steiner
002824e32d
Added benchmarks for fp16
2016-02-26 12:21:25 -08:00
Benoit Steiner
2cd32cad27
Reverted previous commit since it caused more problems than it solved
2016-02-26 13:21:44 +00:00
Benoit Steiner
d9d05dd96e
Fixed handling of long doubles on aarch64
2016-02-26 04:13:58 -08:00
Benoit Steiner
af199b4658
Made the CUDA architecture level a build setting.
2016-02-25 09:06:18 -08:00
Benoit Steiner
c36c09169e
Fixed a typo in the reduction code that could prevent large full reductionsx from running properly on old cuda devices.
2016-02-24 17:07:25 -08:00
Benoit Steiner
7a01cb8e4b
Marked the And and Or reducers as stateless.
2016-02-24 16:43:01 -08:00
Gael Guennebaud
91e1375ba9
merge
2016-02-23 11:09:05 +01:00
Gael Guennebaud
055000a424
Fix startRow()/startCol() for dense Block with direct access:
...
the initial implementation failed for empty rows/columns for which are ambiguous.
2016-02-23 11:07:59 +01:00
Benoit Steiner
1d9256f7db
Updated the padding code to work with half floats
2016-02-23 05:51:22 +00:00
Benoit Steiner
8cb9bfab87
Extended the tensor benchmark suite to support types other than floats
2016-02-23 05:28:02 +00:00
Benoit Steiner
f442a5a5b3
Updated the tensor benchmarking code to work with compilers that don't support cxx11.
2016-02-23 04:15:48 +00:00
Benoit Steiner
72d2cf642e
Deleted the coordinate based evaluation of tensor expressions, since it's hardly ever used and started to cause some issues with some versions of xcode.
2016-02-22 15:29:41 -08:00
Benoit Steiner
6270d851e3
Declare the half float type as arithmetic.
2016-02-22 13:59:33 -08:00
Benoit Steiner
5cd00068c0
include <iostream> in the tensor header since we now use it to better report cuda initialization errors
2016-02-22 13:59:03 -08:00
Benoit Steiner
257b640463
Fixed compilation warning generated by clang
2016-02-21 22:43:37 -08:00
Benoit Steiner
584832cb3c
Implemented the ptranspose function on half floats
2016-02-21 12:44:53 -08:00
Benoit Steiner
e644f60907
Pulled latest updates from trunk
2016-02-21 20:24:59 +00:00
Benoit Steiner
95fceb6452
Added the ability to compute the absolute value of a half float
2016-02-21 20:24:11 +00:00
Benoit Steiner
ed69cbeef0
Added some debugging information to the test to figure out why it fails sometimes
2016-02-21 11:20:20 -08:00
Benoit Steiner
96a24b05cc
Optimized casting of tensors in the case where the casting happens to be a no-op
2016-02-21 11:16:15 -08:00
Benoit Steiner
203490017f
Prevent unecessary Index to int conversions
2016-02-21 08:49:36 -08:00
Benoit Steiner
9ff269a1d3
Moved some of the fp16 operators outside the Eigen namespace to workaround some nvcc limitations.
2016-02-20 07:47:23 +00:00
Benoit Steiner
1e6fe6f046
Fixed the float16 tensor test.
2016-02-20 07:44:17 +00:00
Rasmus Munk Larsen
8eb127022b
Get rid of duplicate code.
2016-02-19 16:33:30 -08:00
Rasmus Munk Larsen
d5e2ec7447
Speed up tensor FFT by up ~25-50%.
...
Benchmark Base (ns) New (ns) Improvement
------------------------------------------------------------------
BM_tensor_fft_single_1D_cpu/8 132 134 -1.5%
BM_tensor_fft_single_1D_cpu/9 1162 1229 -5.8%
BM_tensor_fft_single_1D_cpu/16 199 195 +2.0%
BM_tensor_fft_single_1D_cpu/17 2587 2267 +12.4%
BM_tensor_fft_single_1D_cpu/32 373 341 +8.6%
BM_tensor_fft_single_1D_cpu/33 5922 4879 +17.6%
BM_tensor_fft_single_1D_cpu/64 797 675 +15.3%
BM_tensor_fft_single_1D_cpu/65 13580 10481 +22.8%
BM_tensor_fft_single_1D_cpu/128 1753 1375 +21.6%
BM_tensor_fft_single_1D_cpu/129 31426 22789 +27.5%
BM_tensor_fft_single_1D_cpu/256 4005 3008 +24.9%
BM_tensor_fft_single_1D_cpu/257 70910 49549 +30.1%
BM_tensor_fft_single_1D_cpu/512 8989 6524 +27.4%
BM_tensor_fft_single_1D_cpu/513 165402 107751 +34.9%
BM_tensor_fft_single_1D_cpu/999 198293 115909 +41.5%
BM_tensor_fft_single_1D_cpu/1ki 21289 14143 +33.6%
BM_tensor_fft_single_1D_cpu/1k 361980 233355 +35.5%
BM_tensor_fft_double_1D_cpu/8 138 131 +5.1%
BM_tensor_fft_double_1D_cpu/9 1253 1133 +9.6%
BM_tensor_fft_double_1D_cpu/16 218 200 +8.3%
BM_tensor_fft_double_1D_cpu/17 2770 2392 +13.6%
BM_tensor_fft_double_1D_cpu/32 406 368 +9.4%
BM_tensor_fft_double_1D_cpu/33 6418 5153 +19.7%
BM_tensor_fft_double_1D_cpu/64 856 728 +15.0%
BM_tensor_fft_double_1D_cpu/65 14666 11148 +24.0%
BM_tensor_fft_double_1D_cpu/128 1913 1502 +21.5%
BM_tensor_fft_double_1D_cpu/129 36414 24072 +33.9%
BM_tensor_fft_double_1D_cpu/256 4226 3216 +23.9%
BM_tensor_fft_double_1D_cpu/257 86638 52059 +39.9%
BM_tensor_fft_double_1D_cpu/512 9397 6939 +26.2%
BM_tensor_fft_double_1D_cpu/513 203208 114090 +43.9%
BM_tensor_fft_double_1D_cpu/999 237841 125583 +47.2%
BM_tensor_fft_double_1D_cpu/1ki 20921 15392 +26.4%
BM_tensor_fft_double_1D_cpu/1k 455183 250763 +44.9%
BM_tensor_fft_single_2D_cpu/8 1051 1005 +4.4%
BM_tensor_fft_single_2D_cpu/9 16784 14837 +11.6%
BM_tensor_fft_single_2D_cpu/16 4074 3772 +7.4%
BM_tensor_fft_single_2D_cpu/17 75802 63884 +15.7%
BM_tensor_fft_single_2D_cpu/32 20580 16931 +17.7%
BM_tensor_fft_single_2D_cpu/33 345798 278579 +19.4%
BM_tensor_fft_single_2D_cpu/64 97548 81237 +16.7%
BM_tensor_fft_single_2D_cpu/65 1592701 1227048 +23.0%
BM_tensor_fft_single_2D_cpu/128 472318 384303 +18.6%
BM_tensor_fft_single_2D_cpu/129 7038351 5445308 +22.6%
BM_tensor_fft_single_2D_cpu/256 2309474 1850969 +19.9%
BM_tensor_fft_single_2D_cpu/257 31849182 23797538 +25.3%
BM_tensor_fft_single_2D_cpu/512 10395194 8077499 +22.3%
BM_tensor_fft_single_2D_cpu/513 144053843 104242541 +27.6%
BM_tensor_fft_single_2D_cpu/999 279885833 208389718 +25.5%
BM_tensor_fft_single_2D_cpu/1ki 45967677 36070985 +21.5%
BM_tensor_fft_single_2D_cpu/1k 619727095 456489500 +26.3%
BM_tensor_fft_double_2D_cpu/8 1110 1016 +8.5%
BM_tensor_fft_double_2D_cpu/9 17957 15768 +12.2%
BM_tensor_fft_double_2D_cpu/16 4558 4000 +12.2%
BM_tensor_fft_double_2D_cpu/17 79237 66901 +15.6%
BM_tensor_fft_double_2D_cpu/32 21494 17699 +17.7%
BM_tensor_fft_double_2D_cpu/33 357962 290357 +18.9%
BM_tensor_fft_double_2D_cpu/64 105179 87435 +16.9%
BM_tensor_fft_double_2D_cpu/65 1617143 1288006 +20.4%
BM_tensor_fft_double_2D_cpu/128 512848 419397 +18.2%
BM_tensor_fft_double_2D_cpu/129 7271322 5636884 +22.5%
BM_tensor_fft_double_2D_cpu/256 2415529 1922032 +20.4%
BM_tensor_fft_double_2D_cpu/257 32517952 24462177 +24.8%
BM_tensor_fft_double_2D_cpu/512 10724898 8287617 +22.7%
BM_tensor_fft_double_2D_cpu/513 146007419 108603266 +25.6%
BM_tensor_fft_double_2D_cpu/999 296351330 221885776 +25.1%
BM_tensor_fft_double_2D_cpu/1ki 59334166 48357539 +18.5%
BM_tensor_fft_double_2D_cpu/1k 666660132 483840349 +27.4%
2016-02-19 16:29:23 -08:00
Gael Guennebaud
d90a2dac5e
merge
2016-02-19 23:01:27 +01:00
Gael Guennebaud
485823b5f5
Add COD and BDCSVD in list of benched solvers.
2016-02-19 23:00:33 +01:00
Gael Guennebaud
2af04f1a57
Extend unit test to stress smart_copy with empty input/output.
2016-02-19 22:59:28 +01:00
Gael Guennebaud
6fa35bbd28
bug #1170 : skip calls to memcpy/memmove for empty imput.
2016-02-19 22:58:52 +01:00
Benoit Steiner
46fc23f91c
Print an error message to stderr when the initialization of the CUDA runtime fails. This helps debugging setup issues.
2016-02-19 13:44:22 -08:00
Gael Guennebaud
6f0992c05b
Fix nesting type and complete reflection methods of Block expressions.
2016-02-19 22:21:02 +01:00
Gael Guennebaud
f3643eec57
Add typedefs for the return type of all block methods.
2016-02-19 22:15:01 +01:00
Benoit Steiner
670db7988d
Updated the contraction code to make it compatible with half floats.
2016-02-19 13:03:26 -08:00
Benoit Steiner
180156ba1a
Added support for tensor reductions on half floats
2016-02-19 10:05:59 -08:00
Benoit Steiner
5c4901b83a
Implemented the scalar division of 2 half floats
2016-02-19 10:03:19 -08:00
Benoit Steiner
f268db1c4b
Added the ability to query the minor version of a cuda device
2016-02-19 16:31:04 +00:00
Benoit Steiner
a08d2ff0c9
Started to work on contractions and reductions using half floats
2016-02-19 15:59:59 +00:00
Benoit Steiner
f3352e0fb0
Don't make the array constructors explicit
2016-02-19 15:58:57 +00:00
Benoit Steiner
f7cb755299
Added support for operators +=, -=, *= and /= on CUDA half floats
2016-02-19 15:57:26 +00:00
Benoit Steiner
dc26459b99
Implemented protate() for CUDA
2016-02-19 15:16:54 +00:00
Benoit Steiner
cd042dbbfd
Fixed a bug in the tensor type converter
2016-02-19 15:03:26 +00:00
Benoit Steiner
ac5d706a94
Added support for simple coefficient wise tensor expression using half floats on CUDA devices
2016-02-19 08:19:12 +00:00
Benoit Steiner
0606a0a39b
FP16 on CUDA are only available starting with cuda 7.5. Disable them when using an older version of CUDA
2016-02-18 23:15:23 -08:00
Benoit Steiner
f36c0c2c65
Added regression test for float16
2016-02-19 06:23:28 +00:00
Benoit Steiner
7151bd8768
Reverted unintended changes introduced by a bad merge
2016-02-19 06:20:50 +00:00
Benoit Steiner
1304e1fb5e
Pulled latest updates from trunk
2016-02-19 06:17:02 +00:00
Benoit Steiner
17b9fbed34
Added preliminary support for half floats on CUDA GPU. For now we can simply convert floats into half floats and vice versa
2016-02-19 06:16:07 +00:00
Benoit Steiner
8ce46f9d89
Improved implementation of ptanh for SSE and AVX
2016-02-18 13:24:34 -08:00
Eugene Brevdo
832380c455
Merged eigen/eigen into default
2016-02-17 14:44:06 -08:00
Eugene Brevdo
06a2bc7c9c
Tiny bugfix in SpecialFunctions: some compilers don't like doubles
...
implicitly downcast to floats in an array constructor.
2016-02-17 14:41:59 -08:00
Gael Guennebaud
f6f057bb7d
bug #1166 : fix shortcomming in gemv when the destination is not a vector at compile-time.
2016-02-15 21:43:07 +01:00
Gael Guennebaud
8e1f1ba6a6
Import wiki's paragraph: "I disabled vectorization, but I'm still getting annoyed about alignment issues"
2016-02-12 22:16:59 +01:00
Gael Guennebaud
c8b4c4b48a
bug #795 : mention allocate_shared as a condidate for aligned_allocator.
2016-02-12 22:09:16 +01:00
Gael Guennebaud
6eff3e5185
Fix triangularView versus triangularPart.
2016-02-12 17:09:28 +01:00
Gael Guennebaud
4252af6897
Remove dead code.
2016-02-12 16:13:35 +01:00
Gael Guennebaud
2f5f56a820
Fix usage of evaluator in sparse * permutation products.
2016-02-12 16:13:16 +01:00
Gael Guennebaud
0a537cb2d8
bug #901 : fix triangular-view with unit diagonal of sparse rectangular matrices.
2016-02-12 15:58:31 +01:00
Gael Guennebaud
b35d1a122e
Fix unit test: accessing elements in a deque by offsetting a pointer to another element causes undefined behavior.
2016-02-12 15:31:16 +01:00
Benoit Steiner
9e3f3a2d27
Deleted outdated comment
2016-02-11 17:27:35 -08:00
Benoit Steiner
de345eff2e
Added a method to conjugate the content of a tensor or the result of a tensor expression.
2016-02-11 16:34:07 -08:00
Benoit Steiner
17e93ba148
Pulled latest updates from trunk
2016-02-11 15:05:38 -08:00
Benoit Steiner
3628f7655d
Made it possible to run the scalar_binary_pow_op functor on GPU
2016-02-11 15:05:03 -08:00
Hauke Heibel
eeac46f980
bug #774 : re-added comment referencing equations in the original paper
2016-02-11 19:38:37 +01:00
Benoit Steiner
c569cfe12a
Inline the +=, -=, *= and /= operators consistently between DenseBase.h and SelfCwiseBinaryOp.h
2016-02-11 09:33:32 -08:00
Gael Guennebaud
8cc9232b9a
bug #774 : fix a numerical issue producing unwanted reflections.
2016-02-11 15:32:56 +01:00
Gael Guennebaud
2d35c0cb5f
Merged in rmlarsen/eigen (pull request PR-163)
...
Implement complete orthogonal decomposition in Eigen.
2016-02-11 15:12:34 +01:00
Benoit Steiner
33e2373f01
Merged in nnyby/eigen/nnyby/doc-grammar-fix-linearly-space-linearly-1443742971203 (pull request PR-138)
...
[doc] grammar fix: "linearly space" -> "linearly spaced"
2016-02-10 23:29:59 -08:00
Benoit Steiner
6d8b1dce06
Avoid implicit cast from double to float.
2016-02-10 18:07:11 -08:00
Benoit Steiner
1dfaafe28a
Added a regression test for tanh
2016-02-10 17:41:47 -08:00
Rasmus Munk Larsen
b6fdf7468c
Rename inverse -> pseudoInverse.
2016-02-10 13:03:07 -08:00
Benoit Jacob
9d6f1ad398
I'm told to use __EMSCRIPTEN__ by an Emscripten dev.
2016-02-10 12:48:34 -05:00
Benoit Steiner
bfb3fcd94f
Optimized implementation of the tanh function for SSE
2016-02-10 08:52:30 -08:00
Benoit Steiner
2d523332b3
Optimized implementation of the hyperbolic tangent function for AVX
2016-02-10 08:48:05 -08:00
Benoit Jacob
e6ee18d6b4
Make the GCC workaround for sqrt GCC-only; detect Emscripten as non-GCC
2016-02-10 11:11:49 -05:00
Benoit Steiner
2ac59e5d36
Pulled latest updates from trunk
2016-02-10 08:03:02 -08:00
Benoit Steiner
9a21b38ccc
Worked around a few clang compilation warnings
2016-02-10 08:02:04 -08:00
Benoit Jacob
964a95bf5e
Work around Emscripten bug - https://github.com/kripken/emscripten/issues/4088
2016-02-10 10:37:22 -05:00
Benoit Steiner
72ab7879f7
Fixed clang comilation warnings
2016-02-10 06:48:28 -08:00
Benoit Steiner
e88535634d
Fixed some clang compilation warnings
2016-02-09 23:32:41 -08:00
Benoit Steiner
970751ece3
Disabling the nvcc warnings in addition to the clang warnings when clang is used as a frontend for nvcc
2016-02-09 20:55:50 -08:00
Benoit Steiner
6323851ea9
Fixed compilation warning
2016-02-09 20:43:41 -08:00
Rasmus Munk Larsen
bb8811c655
Enable inverse() method for computing pseudo-inverse.
2016-02-09 20:35:20 -08:00
Benoit Steiner
5cc0dd5f44
Fixed the code that disables the use of variadic templates when compiling with nvcc on ARM devices.
2016-02-09 10:32:01 -08:00
Benoit Steiner
a9cc6a06b9
Fixed compilation warning in the splines test
2016-02-09 05:10:06 +00:00
Benoit Steiner
d69946183d
Updated the TensorIntDivisor code to work properly on LLP64 systems
2016-02-08 21:03:59 -08:00
Benoit Steiner
24d291cf16
Worked around nvcc crash when compiling Eigen on Tegra X1
2016-02-09 02:34:02 +00:00
Rasmus Munk Larsen
53f60e0afc
Make applyZAdjointOnTheLeftInPlace protected.
2016-02-08 09:01:43 -08:00
Rasmus Munk Larsen
414efa47d3
Add missing calls to tests of COD.
...
Fix a few mistakes in 3.2 -> 3.3 port.
2016-02-08 08:50:34 -08:00
Gael Guennebaud
c2bf2f56ef
Remove custom unaligned loads for SSE. They were only useful for core2 CPU.
2016-02-08 14:29:12 +01:00
Gael Guennebaud
a4c76f8d34
Improve inlining
2016-02-08 11:33:02 +01:00
Rasmus Munk Larsen
16ec450ca1
Nevermind.
2016-02-06 17:54:01 -08:00
Rasmus Munk Larsen
019fff9a00
Add my name to copyright notice in ColPivHouseholder.h, mostly for previous work on stable norm downdate formula.
2016-02-06 17:48:42 -08:00
Rasmus Munk Larsen
86d6201d7b
Merge.
2016-02-06 16:36:56 -08:00
Rasmus Munk Larsen
d904c8ac8f
Implement complete orthogonal decomposition in Eigen.
2016-02-06 16:32:00 -08:00
Gael Guennebaud
010afe1619
Add exemples for reshaping/slicing with Map.
2016-02-06 22:49:18 +01:00
Gael Guennebaud
8e599bc098
Fix warning in unit test
2016-02-06 20:26:59 +01:00
Gael Guennebaud
c6a12d1dc6
Fix warning with gcc < 4.8
2016-02-06 18:06:51 +01:00
Benoit Steiner
4d4211c04e
Avoid unecessary type conversions
2016-02-05 18:19:41 -08:00
Benoit Steiner
d2cba52015
Only enable the cxx11_tensor_uint128 test on 64 bit machines since 32 bit systems don't support the __uin128_t type
2016-02-05 18:14:23 -08:00
Benoit Steiner
fb00a4af2b
Made the tensor fft test compile on tegra x1
2016-02-06 01:42:14 +00:00
Gael Guennebaud
5b2d287878
bug #779 : allow non aligned buffers for buffers smaller than the requested alignment.
2016-02-05 21:46:39 +01:00
Gael Guennebaud
e8e1d504d6
Add an explicit assersion on the alignment of the pointer returned by std::malloc
2016-02-05 21:38:16 +01:00
Gael Guennebaud
62a1c911cd
Remove posix_memalign, _mm_malloc, and _aligned_malloc special paths.
2016-02-05 21:24:35 +01:00
Rasmus Munk Larsen
093f2b3c01
Merge.
2016-02-04 14:32:19 -08:00
Benoit Steiner
3ca1ae2bb7
Commented out the version of pexp<Packet8d> since it fails to compile with gcc 5.3
2016-02-04 13:49:06 -08:00
Rasmus Munk Larsen
2e39cc40a4
Fix condition that made the unit test spam stdout with bogus error messages.
2016-02-04 12:56:14 -08:00
Benoit Steiner
23f69ab936
Added implementations of pexp, plog, psqrt, and prsqrt optimized for AVX512
2016-02-04 10:36:36 -08:00
Benoit Steiner
6c9cf117c1
Fixed indentation
2016-02-04 10:34:10 -08:00
Benoit Steiner
bcdcdace48
Pulled latest updates from trunk
2016-02-04 08:56:49 -08:00
Gael Guennebaud
659fc9c159
Remove dead code
2016-02-04 09:55:09 +01:00
Gael Guennebaud
d5d7798b9d
Improve heuritics for switching between coeff-based and general matrix product implementation.
2016-02-04 09:53:47 +01:00
Benoit Steiner
f535378995
Added support for vectorized type casting of int to char.
2016-02-03 18:58:29 -08:00
Benoit Steiner
4ab63a3f6f
Fixed the initialization of the dummy member of the array class to make it compatible with pairs of element.
2016-02-03 17:23:07 -08:00
Benoit Steiner
727ff26960
Disable 2 more nvcc warning messages
2016-02-03 16:01:37 -08:00
Benoit Steiner
1cbb79cdfd
Made sure the dummy element of size 0 array is always intialized to silence some compiler warnings
2016-02-03 15:58:26 -08:00
Benoit Steiner
bcbde37a11
Made sure the code compiles when EIGEN_HAS_C99_MATH isn't defined
2016-02-03 14:53:08 -08:00
Benoit Steiner
f933f69021
Added a few comments
2016-02-03 14:12:18 -08:00
Benoit Steiner
5d82e47ef6
Properly disable nvcc warning messages in user code.
2016-02-03 14:10:06 -08:00
Benoit Steiner
af8436b196
Silenced the "calling a __host__ function from a __host__ __device__ function is not allowed" messages
2016-02-03 13:48:36 -08:00
Benoit Steiner
d7742d22e4
Revert the nvcc messages to their default severity instead of the forcing them to be warnings
2016-02-03 13:47:28 -08:00
Benoit Steiner
ac26e1aaf3
Pulled latest updates from trunk
2016-02-03 12:52:20 -08:00
Benoit Steiner
492fe7ce02
Silenced some unhelpful warnings generated by nvcc.
2016-02-03 12:51:19 -08:00
Gael Guennebaud
b70db60e4d
Merged in rmlarsen/eigen (pull request PR-161)
...
Change Eigen's ColPivHouseholderQR to use numerically stable norm downdate formula
2016-02-03 21:37:06 +01:00
Rasmus Munk Larsen
5fb04ab2da
Fix bad line break. Don't repeat Kahan matrix test since it is deterministic.
2016-02-03 10:12:10 -08:00
Rasmus Munk Larsen
d9a6f86cc0
Make the array of directly compute column norms a member to avoid allocation in computeInPlace.
2016-02-03 09:55:30 -08:00
Gael Guennebaud
70dc14e4e1
bug #1161 : fix division by zero for huge scalar types
2016-02-03 18:25:41 +01:00
Damien R
c301f99208
bug #1164 : fix list and deque specializations such that our aligned allocator is automatically activatived only when the user did not specified an allocator (or specified the default std::allocator).
2016-02-03 18:07:25 +01:00
Gael Guennebaud
eb6d9aea0e
Clarify error message when writing to a read-only sparse-sub-matrix.
2016-02-03 16:58:23 +01:00
Gael Guennebaud
040cf33e8f
merge
2016-02-03 16:09:51 +01:00
Gael Guennebaud
c85fbfd0b7
Clarify documentation on the restrictions of writable sparse block expressions.
2016-02-03 16:08:43 +01:00
Benoit Steiner
dc413dbe8a
Merged in ville-k/eigen/explicit_long_constructors (pull request PR-158)
...
Add constructor for long types.
2016-02-02 20:58:06 -08:00
Ville Kallioniemi
783018d8f6
Use EIGEN_STATIC_ASSERT for backward compatibility.
2016-02-02 16:45:12 -07:00
Benoit Steiner
99cde88341
Don't try to use direct offsets when computing a tensor product, since the required stride isn't available.
2016-02-02 11:06:53 -08:00
Ville Kallioniemi
ff0a83aaf8
Use single template constructor to avoid overload resolution issues.
2016-02-02 00:33:25 -07:00
Ville Kallioniemi
aedea349aa
Replace separate low word constructors with a single templated constructor.
2016-02-01 20:25:02 -07:00
Ville Kallioniemi
f0fdefa96f
Rebase to latest.
2016-02-01 19:32:31 -07:00
Benoit Steiner
d93b71a301
Updated the packetmath test to call predux_half instead of predux4
2016-02-01 15:18:33 -08:00
Benoit Steiner
ef66f2887b
Updated the matrix multiplication code to make it compile with AVX512 enabled.
2016-02-01 14:38:05 -08:00
Benoit Steiner
85b6d82b49
Generalized predux4 to support AVX512 packets, and renamed it predux_half.
...
Disabled the implementation of pabs for avx512 since the corresponding intrinsics are not shipped with gcc
2016-02-01 14:35:51 -08:00
Benoit Steiner
64ce78c2ec
Cleaned up a tensor contraction test
2016-02-01 13:57:41 -08:00
Benoit Steiner
0ce5d32be5
Sharded the cxx11_tensor_contract_cuda test
2016-02-01 13:33:23 -08:00
Benoit Steiner
922b5f527b
Silenced a few compilation warnings
2016-02-01 13:30:49 -08:00
Benoit Steiner
6b5dff875e
Made it possible to limit the number of blocks that will be used to evaluate a tensor expression on a CUDA device. This makesit possible to set aside streaming multiprocessors for other computations.
2016-02-01 12:46:32 -08:00
Rasmus Munk Larsen
00f9ef6c76
merging.
2016-02-01 11:10:30 -08:00
Benoit Steiner
264f8141f8
Shared the tensor reduction test
2016-02-01 07:44:31 -08:00
Benoit Steiner
11bb71c8fc
Sharded the tensor device test
2016-02-01 07:34:59 -08:00
Gael Guennebaud
ff1157bcbf
bug #694 : document that SparseQR::matrixR is not sorted.
2016-02-01 16:09:34 +01:00
Gael Guennebaud
ec469700dc
bug #557 : make InnerIterator of sparse storage types more versatile by adding default-ctor, copy-ctor/assignment
2016-02-01 15:04:33 +01:00
Gael Guennebaud
6e0a86194c
Fix integer path for num_steps==1
2016-02-01 15:00:04 +01:00
Gael Guennebaud
e1d219e5c9
bug #698 : fix linspaced for integer types.
2016-02-01 14:25:34 +01:00
Gael Guennebaud
2c3224924b
Fix warning and replace min/max macros by calls to mini/maxi
2016-02-01 10:23:45 +01:00
Benoit Steiner
e80ed948e1
Fixed a number of compilation warnings generated by the cuda tests
2016-01-31 20:09:41 -08:00
Benoit Steiner
6720b38fbf
Fixed a few compilation warnings
2016-01-31 16:48:50 -08:00
Benoit Steiner
3f1ee45833
Fixed compilation errors triggered by duplicate inline declaration
2016-01-31 10:48:49 -08:00
Benoit Steiner
70be6f6531
Pulled latest changes from trunk
2016-01-31 10:44:45 -08:00
Benoit Steiner
4a2ddfb81d
Sharded the CUDA argmax tensor test
2016-01-31 10:44:15 -08:00
Gael Guennebaud
d142165942
bug #667 : declare several critical functions as FORECE_INLINE to make ICC happier.
...
<g.gael@free.fr > HG: branch 'default' HG: changed Eigen/src/Core/ArrayBase.h HG: changed Eigen/src/Core/AssignEvaluator.h HG: changed
Eigen/src/Core/CoreEvaluators.h HG: changed Eigen/src/Core/CwiseUnaryOp.h HG: changed Eigen/src/Core/DenseBase.h HG: changed Eigen/src/Core/MatrixBase.h
2016-01-31 16:34:10 +01:00
Gael Guennebaud
a4e4542b89
Avoid overflow in unit test.
2016-01-30 22:26:17 +01:00
Gael Guennebaud
3ba8a3ab1a
Disable underflow unit test on the i387 FPU.
2016-01-30 22:14:04 +01:00
Benoit Steiner
483082ef6e
Fixed a few memory leaks in the cuda tests
2016-01-30 11:59:22 -08:00
Benoit Steiner
bd21aba181
Sharded the cxx11_tensor_cuda test and fixed a memory leak
2016-01-30 11:47:09 -08:00
Benoit Steiner
9de155d153
Added a test to cover threaded tensor shuffling
2016-01-30 10:56:47 -08:00
Benoit Steiner
32088c06a1
Made the comparison between single and multithreaded contraction results more resistant to numerical noise to prevent spurious test failures.
2016-01-30 10:51:14 -08:00
Benoit Steiner
2053478c56
Made sure to use a tensor of rank 0 to store the result of a full reduction in the tensor thread pool test
2016-01-30 10:46:36 -08:00
Benoit Steiner
d0db95f730
Sharded the tensor thread pool test
2016-01-30 10:43:57 -08:00
Benoit Steiner
ba27c8a7de
Made the CUDA contract test more robust to numerical noise.
2016-01-30 10:28:43 -08:00
Benoit Steiner
4281eb1e2c
Added 2 benchmarks to the suite of tensor benchmarks running on GPU
2016-01-30 10:20:43 -08:00
Gael Guennebaud
102fa96a96
Extend doc on dense+sparse
2016-01-30 14:58:21 +01:00
Gael Guennebaud
1bc207c528
backout changeset d4a9e61569
...
: the extended SparseView is not needed anymore
2016-01-30 14:43:21 +01:00
Gael Guennebaud
8ed1553d20
bug #632 : implement general coefficient-wise "dense op sparse" operations through specialized evaluators instead of using SparseView.
...
This permits to deal with arbitrary storage order, and to by-pass the more complex iterator of the sparse-sparse case.
2016-01-30 14:39:50 +01:00
Gael Guennebaud
699634890a
bug #946 : generalize Cholmod::solve to handle any rhs expression
2016-01-29 23:02:22 +01:00
Gael Guennebaud
15084cf1ac
bug #632 : add support for "dense +/- sparse" operations. The current implementation is based on SparseView to make the dense subexpression compatible with the sparse one.
2016-01-29 22:09:45 +01:00
Gael Guennebaud
d4a9e61569
Extend SparseView to allow keeping explicit zeros. This is equivalent to sparseView(1,-1) but faster because the test is removed at compile-time.
2016-01-29 22:07:56 +01:00
Gael Guennebaud
d8d37349c3
bug #696 : enable zero-sized block at compile-time by relaxing the respective assertion
2016-01-29 12:44:49 +01:00
Gael Guennebaud
e8ccc06fe5
merge
2016-01-29 09:40:38 +01:00
Benoit Steiner
963f2d2a8f
Marked several methods EIGEN_DEVICE_FUNC
2016-01-28 23:37:48 -08:00
Benoit Steiner
c5d25bf1d0
Fixed a couple of compilation warnings.
2016-01-28 23:15:45 -08:00
Benoit Steiner
e4f83bae5d
Fixed the tensor benchmarks on apple devices
2016-01-28 21:08:07 -08:00
Benoit Steiner
10bea90c4a
Fixed clang related compilation error
2016-01-28 20:52:08 -08:00
Benoit Steiner
d3f533b395
Fixed compilation warning
2016-01-28 20:09:45 -08:00
Abhijit Kundu
3fde202215
Making ceil() functor generic w.r.t packet type
2016-01-28 21:27:00 -05:00
Benoit Steiner
211d350fc3
Fixed a typo
2016-01-28 17:13:04 -08:00
Benoit Steiner
bd2e5a788a
Made sure the number of floating point operations done by a benchmark is computed using 64 bit integers to avoid overflows.
2016-01-28 17:10:40 -08:00
Benoit Steiner
120e13b1b6
Added a readme to explain how to compile the tensor benchmarks.
2016-01-28 17:06:00 -08:00
Benoit Steiner
a68864b6bc
Updated the benchmarking code to print the number of flops processed instead of the number of bytes.
2016-01-28 16:51:40 -08:00
Benoit Steiner
8217281ae4
Merge latest updates from trunk
2016-01-28 16:20:53 -08:00
Benoit Steiner
c8d5f21941
Added extra tensor benchmarks
2016-01-28 16:20:36 -08:00
Benoit Steiner
7b3044d086
Made sure to call nvcc with the relaxed-constexpr flag.
2016-01-28 15:36:34 -08:00
Rasmus Munk Larsen
acce4dd050
Change Eigen's ColPivHouseholderQR to use the numerically stable norm downdate formula from http://www.netlib.org/lapack/lawnspdf/lawn176.pdf , which has been used in LAPACK's xGEQPF and xGEQP3 since 2006. With the old formula, the code chooses the wrong pivots and fails to correctly determine rank on graded matrices.
...
This change also adds additional checks for non-increasing diagonal in R11 to existing unit tests, and adds a new unit test with the Kahan matrix, which consistently fails for the original code.
Benchmark timings on Intel(R) Xeon(R) CPU E5-1650 v3 @ 3.50GHz. Code compiled with AVX & FMA. I just ran on square matrices of 3 difference sizes.
Benchmark Time(ns) CPU(ns) Iterations
-------------------------------------------------------
Before:
BM_EigencolPivQR/64 53677 53627 12890
BM_EigencolPivQR/512 15265408 15250784 46
BM_EigencolPivQR/4k 15403556228 15388788368 2
After (non-vectorized version):
Benchmark Time(ns) CPU(ns) Iterations Degradation
--------------------------------------------------------------------
BM_EigencolPivQR/64 63736 63669 10844 18.5%
BM_EigencolPivQR/512 16052546 16037381 43 5.1%
BM_EigencolPivQR/4k 15149263620 15132025316 2 -2.0%
Performance-wise there seems to be a ~18.5% degradation for small (64x64) matrices, probably due to the cost of more O(min(m,n)^2) sqrt operations that are not needed for the unstable formula.
2016-01-28 15:07:26 -08:00
Gael Guennebaud
b908e071a8
bug #178 : get rid of some const_cast in SparseCore
2016-01-28 22:11:18 +01:00
Gael Guennebaud
c1d900af61
bug #178 : remove additional const on nested expression, and remove several const_cast.
2016-01-28 21:43:20 +01:00
Benoit Steiner
12f8bd12a2
Merged in jiayq/eigen (pull request PR-159)
...
Modifications to the tensor benchmarks to allow compilation in a standalone fashion.
2016-01-28 11:28:55 -08:00
Yangqing Jia
270c4e1ecd
bugfix
2016-01-28 11:11:45 -08:00
Yangqing Jia
c4e47630b1
benchmark modifications to make it compilable in a standalone fashion.
2016-01-28 10:35:14 -08:00
Gael Guennebaud
f50bb1e6f3
Fix compilation with gcc
2016-01-28 13:25:26 +01:00
Gael Guennebaud
ddf64babde
merge
2016-01-28 13:21:48 +01:00
Gael Guennebaud
df15fbc452
bug #1158 : PartialReduxExpr is a vector expression, and it thus must expose the LinearAccessBit flag
2016-01-28 13:16:30 +01:00
Gael Guennebaud
9bcadb7fd1
Disable stupid MSVC warning
2016-01-28 12:14:16 +01:00
Gael Guennebaud
b4d87fff4a
Fix MSVC warning.
2016-01-28 12:12:30 +01:00
Gael Guennebaud
2bad3e78d9
bug #96 , bug #1006 : fix by value argument in result_of.
2016-01-28 12:12:06 +01:00
Gael Guennebaud
7802a6bb1c
Fix unit test filename.
2016-01-28 09:35:37 +01:00
Benoit Steiner
4bf9eaf77a
Deleted an invalid assertion that prevented the assignment of empty tensors.
2016-01-27 17:09:30 -08:00
Benoit Steiner
291069e885
Fixed some compilation problems with nvcc + clang
2016-01-27 15:37:03 -08:00
Benoit Steiner
47ca9dc809
Fixed the tensor_cuda test
2016-01-27 14:58:48 -08:00
Benoit Steiner
55a5204319
Fixed the flags passed to nvcc to compile the tensor code.
2016-01-27 14:46:34 -08:00
Gael Guennebaud
4865e1e732
Update link to suitesparse.
2016-01-27 22:48:40 +01:00
Benoit Steiner
9dfbd4fe8d
Made the cuda tests compile using make check
2016-01-27 12:22:17 -08:00
Benoit Steiner
5973bcf939
Properly specify the namespace when calling cout/endl
2016-01-27 12:04:42 -08:00
Eugene Brevdo
c8d94ae944
digamma special function: merge shared code.
...
Moved type-specific code into a helper class digamma_impl_maybe_poly<Scalar>.
2016-01-27 09:52:29 -08:00
Gael Guennebaud
9c8f7dfe94
bug #1156 : fix several function declarations whose arguments were passed by value instead of being passed by reference
2016-01-27 18:34:42 +01:00
Gael Guennebaud
9aa6fae123
bug #1154 : move to dynamic scheduling for spmv products.
2016-01-27 18:03:51 +01:00
Gael Guennebaud
9ac8e8c6a1
Extend mixing type unit test with trmv, and the following not yet supported products: trmm, symv, symm
2016-01-27 17:29:53 +01:00
Gael Guennebaud
6da5d87f92
add nomalloc unit test for rank2 updates
2016-01-27 17:26:48 +01:00
Gael Guennebaud
9801c959e6
Fix tri = complex * real product, and add respective unit test.
2016-01-27 17:12:25 +01:00
Gael Guennebaud
21b5345782
Add meta_least_common_multiple helper.
2016-01-27 17:11:39 +01:00
Gael Guennebaud
fecea26d93
Extend doc on shifting strategy
2016-01-27 15:55:15 +01:00
Ville Kallioniemi
02db1228ed
Add constructor for long types.
2016-01-26 23:41:01 -07:00
Gael Guennebaud
412bb5a631
Remove redundant test.
2016-01-26 23:35:30 +01:00
Gael Guennebaud
0f8d26c6a9
Doc: add flip* and arrayfun MatLab equivalent.
2016-01-26 23:34:48 +01:00
Gael Guennebaud
cfa21f8123
Remove dead code.
2016-01-26 23:33:15 +01:00
Gael Guennebaud
6850eab33b
Re-enable blocking on rows in non-l3 blocking mode.
2016-01-26 23:32:48 +01:00
Gael Guennebaud
aa8c6a251e
Make sure that micro-panel-size is smaller than blocking sizes (otherwise we might get a buffer overflow)
2016-01-26 23:31:48 +01:00
Gael Guennebaud
5b0a9ee003
Make sure that block sizes are smaller than input matrix sizes.
2016-01-26 23:30:24 +01:00
Benoit Jacob
639b1d864a
bug #1152 : Fix data race in static initialization of blas
2016-01-26 11:44:16 -05:00
Christoph Hertzberg
44d4674955
bug #1153 : Don't rely on __GXX_EXPERIMENTAL_CXX0X__ to detect C++11 support
2016-01-26 16:45:33 +01:00
Hauke Heibel
5eb2790be0
Fixed minor typo in SplineFitting.
2016-01-25 22:17:52 +01:00
Gael Guennebaud
8328caa618
bug #51 : add block preallocation mechanism to selfadjoit*matrix product.
2016-01-25 22:06:42 +01:00
Gael Guennebaud
2f9e6314b1
update BLAS interface to general_matrix_matrix_triangular_product
2016-01-25 21:56:05 +01:00
Gael Guennebaud
e58827d2ed
bug #51 : make general_matrix_matrix_triangular_product use L3-blocking helper so that general symmetric rank-updates and general-matrix-to-triangular products do not trigger dynamic memory allocation for fixed size matrices.
2016-01-25 17:16:33 +01:00
Gael Guennebaud
c10021c00a
bug #1144 : clarify the doc about aliasing in case of resizing and matrix product.
2016-01-25 15:50:55 +01:00
Gael Guennebaud
b114e6fd3b
Improve documentation.
2016-01-25 11:56:25 +01:00
Gael Guennebaud
869b4443ac
Add SparseVector::conservativeResize() method.
2016-01-25 11:55:39 +01:00
Benoit Steiner
e3a15a03a4
Don't explicitely evaluate the subexpression from TensorForcedEval::evalSubExprIfNeeded, as it will be done when executing the EvalTo subexpression
2016-01-24 23:04:50 -08:00
Benoit Steiner
bd207ce11e
Added missing EIGEN_DEVICE_FUNC qualifier
2016-01-24 20:36:05 -08:00
Gael Guennebaud
acf6f7af6b
Merged in larsmans/eigen (pull request PR-156)
...
Documentation fixes
2016-01-24 22:28:49 +01:00
Lars Buitinck
cc482e32f1
Method is called visit, not visitor
2016-01-24 15:50:59 +01:00
Lars Buitinck
19e437daf0
Copyedit documentation: typos, spelling
2016-01-24 15:50:36 +01:00
Gael Guennebaud
1cf85bd875
bug #977 : add stableNormalize[d] methods: they are analogues to normalize[d] but with carefull handling of under/over-flow
2016-01-23 22:40:11 +01:00
Gael Guennebaud
369d6d1ae3
Add link to reference paper.
2016-01-23 22:16:03 +01:00
Gael Guennebaud
0caa4b1531
bug #1150 : make IncompleteCholesky more robust by iteratively increase the shift until the factorization succeed (with at most 10 attempts).
2016-01-23 22:13:54 +01:00
Benoit Steiner
cb4e53ff7f
Merged in ville-k/eigen/tensorflow_fix (pull request PR-153)
...
Add ctor for long
2016-01-22 19:11:31 -08:00
Ville Kallioniemi
9f94e030c1
Re-add executable flags to minimize changeset.
2016-01-22 20:08:45 -07:00
Benoit Steiner
3aeeca32af
Leverage the new blocking code in the tensor contraction code.
2016-01-22 16:36:30 -08:00
Benoit Steiner
4beb447e27
Created a mechanism to enable contraction mappers to determine the best blocking strategy.
2016-01-22 14:37:26 -08:00
Gael Guennebaud
5358c38589
bug #1095 : add Cholmod*::logDeterminant/determinant (from patch of Joshua Pritikin)
2016-01-22 16:05:29 +01:00
Gael Guennebaud
6a44ccb58b
Backout changeset 690bc950f7
2016-01-22 15:03:53 +01:00
Gael Guennebaud
06971223ef
Unify std::numeric_limits and device::numeric_limits within numext namespace
2016-01-22 15:02:21 +01:00
Ville Kallioniemi
9b6c72958a
Update to latest default branch
2016-01-21 23:08:54 -07:00
Ville Kallioniemi
73aec9219b
Make use of 32 bit ints explicit and remove executable bit from headers.
2016-01-21 23:00:32 -07:00
Benoit Steiner
7b68cf2e0f
Pulled latest updates from trunk
2016-01-21 17:17:56 -08:00
Benoit Steiner
c33479324c
Fixed a constness bug
2016-01-21 17:08:11 -08:00
Gael Guennebaud
ee37eb4eed
bug #977 : avoid division by 0 in normalize() and normalized().
2016-01-21 20:43:42 +01:00
Gael Guennebaud
7cae8918c0
Fix compilation on old gcc+AVX
2016-01-21 20:30:32 +01:00
Gael Guennebaud
8dca9f97e3
Add numext::sqrt function to enable custom optimized implementation.
...
This changeset add two specializations for float/double on SSE. Those
are mostly usefull with GCC for which std::sqrt add an extra and costly
check on the result of _mm_sqrt_*. Clang does not add this burden.
In this changeset, only DenseBase::norm() makes use of it.
2016-01-21 20:18:51 +01:00
Gael Guennebaud
34340458cb
bug #1151 : remove useless critical section
2016-01-21 14:29:45 +01:00
Jan Prach
690bc950f7
fix clang warnings
...
"braces around scalar initializer"
2016-01-20 19:35:59 -08:00
Benoit Steiner
f2a842294f
Pulled latest updates from the trunk
2016-01-20 18:12:53 -08:00
Benoit Steiner
7ce932edd3
Small cleanup and small fix to the contraction of row major tensors
2016-01-20 18:12:08 -08:00
Gael Guennebaud
62f7e77711
add upper|lower case in incomplete_cholesky unit test
2016-01-21 00:02:59 +01:00
Benoit Steiner
47076bf00e
Reduce the register pressure exerted by the tensor mappers whenever possible. This improves the performance of the contraction of a matrix with a vector by about 35%.
2016-01-20 14:51:48 -08:00
Benoit Steiner
ebd3388ee6
Pulled latest updates from trunk
2016-01-20 13:56:43 -08:00
Gael Guennebaud
ed8ade9c65
bug #1149 : fix Pastix*::*parm()
2016-01-20 19:01:24 +01:00
Gael Guennebaud
4c5e96aab6
bug #1148 : silent Pastix by default
2016-01-20 18:56:17 +01:00
Gael Guennebaud
db237d0c75
bug #1145 : fix PastixSupport LLT/LDLT wrappers (missing resize prior to calls to selfAdjointView)
2016-01-20 18:49:01 +01:00
Gael Guennebaud
0b7169d1f7
bug #1147 : fix compilation of PastixSupport
2016-01-20 18:15:59 +01:00
Gael Guennebaud
234a1094b7
Add static assertion to y(), z(), w() accessors
2016-01-20 09:18:44 +01:00
Ville Kallioniemi
915e7667cd
Remove executable bit from header files
2016-01-19 21:17:29 -07:00
Ville Kallioniemi
2832175a68
Use explicitly 32 bit integer types in constructors.
2016-01-19 20:12:17 -07:00
Benoit Steiner
df79c00901
Improved the formatting of the code
2016-01-19 17:24:08 -08:00
Benoit Steiner
6d472d8375
Moved the contraction mapping code to its own file to make the code more manageable.
2016-01-19 17:22:05 -08:00
Benoit Steiner
b3b722905f
Improved code indentation
2016-01-19 17:09:47 -08:00
Benoit Steiner
5b7713dd33
Record whether the underlying tensor storage can be accessed directly during the evaluation of an expression.
2016-01-19 17:05:10 -08:00
Ville Kallioniemi
63fb66f53a
Add ctor for long
2016-01-17 21:25:36 -07:00
Eugene Brevdo
6a75e7e0d5
Digamma cleanup
...
* Added permission from cephes author to use his code
* Cleanup in ArrayCwiseUnaryOps
2016-01-15 16:32:21 -08:00
Benoit Steiner
34057cff23
Fixed a race condition that could affect some reductions on CUDA devices.
2016-01-15 15:11:56 -08:00
Benoit Steiner
0461f0153e
Made it possible to compare tensor dimensions inside a CUDA kernel.
2016-01-15 11:22:16 -08:00
Benoit Steiner
aed4cb1269
Use warp shuffles instead of shared memory access to speedup the inner reduction kernel.
2016-01-14 21:45:14 -08:00
Benoit Steiner
c1a42c2d0d
Don't disable the AVX implementations of plset when compiling with AVX512 enabled
2016-01-14 17:21:39 -08:00
Benoit Steiner
0366478df8
Added alignment requirement to the AVX512 packet traits.
2016-01-14 17:02:39 -08:00
Benoit Steiner
3cfd16f3af
Fixed the signature of the plset primitives for AVX512
2016-01-14 16:58:01 -08:00
Benoit Steiner
67f44365ea
Fixed the AVX512 signature of the ptranspose primitives
2016-01-14 16:51:11 -08:00
Benoit Steiner
a282eb1363
pscatter/pgather use Index instead of int to specify the stride
2016-01-14 16:39:39 -08:00
Benoit Steiner
7832485575
Deleted unnecessary commas and semicolons
2016-01-14 16:36:29 -08:00
Benoit Steiner
8fe2532e70
Fixed a boundary condition bug in the outer reduction kernel
2016-01-14 09:29:48 -08:00
Benoit Steiner
9f013a9d86
Properly record the rank of reduced tensors in the tensor traits.
2016-01-13 14:24:37 -08:00
Benoit Steiner
79b69b7444
Trigger the optimized matrix vector path more conservatively.
2016-01-12 15:21:09 -08:00
Benoit Steiner
d920d57f38
Improved the performance of the contraction of a 2d tensor with a 1d tensor by a factor of 3 or more. This helps speedup LSTM neural networks.
2016-01-12 11:32:27 -08:00
Benoit Steiner
bd7d901da9
Reverted a previous change that tripped nvcc when compiling in debug mode.
2016-01-11 17:49:44 -08:00
Benoit Steiner
bbdabbb379
Made the blas utils usable from within a cuda kernel
2016-01-11 17:26:56 -08:00
Benoit Steiner
c5e6900400
Silenced a few compilation warnings.
2016-01-11 17:06:39 -08:00
Benoit Steiner
f894736d61
Updated the tensor traits: the alignment is not part of the Flags enum anymore
2016-01-11 16:42:18 -08:00
Benoit Steiner
4f7714d72c
Enabled the use of fixed dimensions from within a cuda kernel.
2016-01-11 16:01:00 -08:00
Benoit Steiner
01c55d37e6
Deleted unused variable.
2016-01-11 15:53:19 -08:00
Benoit Steiner
0504c56ea7
Silenced a nvcc compilation warning
2016-01-11 15:49:21 -08:00
Benoit Steiner
b523771a24
Silenced several compilation warnings triggered by nvcc.
2016-01-11 14:25:43 -08:00
Benoit Steiner
2c3b13eded
Merged in jeremy_barnes/eigen/shader-model-3.0 (pull request PR-152)
...
Alternative way of forcing instantiation of device kernels without causing warnings or requiring device to device kernel invocations.
2016-01-11 11:43:37 -08:00
Benoit Steiner
2ccb1c8634
Fixed a bug in the dispatch of optimized reduction kernels.
2016-01-11 10:36:37 -08:00
Benoit Steiner
780623261e
Re-enabled the optimized reduction CUDA code.
2016-01-11 09:07:14 -08:00
Jeremy Barnes
91678f489a
Cleaned up double-defined macro from last commit
2016-01-10 22:44:45 -05:00
Jeremy Barnes
403a7cb6c3
Alternative way of forcing instantiation of device kernels without
...
causing warnings or requiring device to device kernel invocations.
This allows Tensorflow to work on SM 3.0 (ie, Amazon EC2) machines.
2016-01-10 22:39:13 -05:00
Gael Guennebaud
b557662e58
merge
2016-01-09 08:37:01 +01:00
Gael Guennebaud
8b9dc9f0df
bug #1144 : fix regression in x=y+A*x (aliasing), and move evaluator_traits::AssumeAliasing to evaluator_assume_aliasing.
2016-01-09 08:30:38 +01:00
Benoit Steiner
e76904af1b
Simplified the dispatch code.
2016-01-08 16:50:57 -08:00
Benoit Steiner
d726e864ac
Made it possible to use array of size 0 on CUDA devices
2016-01-08 16:38:14 -08:00
Benoit Steiner
3358dfd5dd
Reworked the dispatch of optimized cuda reduction kernels to workaround a nvcc bug that prevented the code from compiling in optimized mode in some cases
2016-01-08 16:28:53 -08:00
Benoit Steiner
53749ff415
Prevent nvcc from miscompiling the cuda metakernel. Unfortunately this reintroduces some compulation warnings but it's much better than having to deal with random assertion failures.
2016-01-08 13:53:40 -08:00
Gael Guennebaud
f9d71a1729
extend matlab conversion table
2016-01-08 22:24:45 +01:00
Benoit Steiner
6639b7d6e8
Removed a couple of partial specialization that confuse nvcc and result in errors such as this:
...
error: more than one partial specialization matches the template argument list of class "Eigen::internal::get<3, Eigen::internal::numeric_list<std::size_t, 1UL, 1UL, 1UL, 1UL>>"
"Eigen::internal::get<n, Eigen::internal::numeric_list<T, a, as...>>"
"Eigen::internal::get<n, Eigen::internal::numeric_list<T, as...>>"
2016-01-07 18:45:19 -08:00
Benoit Steiner
0cb2ca5de2
Fixed a typo.
2016-01-06 18:50:28 -08:00
Benoit Steiner
213459d818
Optimized the performance of broadcasting of scalars.
2016-01-06 18:47:45 -08:00
Gael Guennebaud
ee738321aa
rm remaining debug code
2016-01-06 14:49:40 +01:00
Christoph Hertzberg
54bf582303
bug #1143 : Work-around gcc bug
2016-01-06 11:59:24 +01:00
Benoit Steiner
99093c0fe0
Added support for AVX512 to the build files
2016-01-05 10:02:49 -08:00
Benoit Steiner
cfff40b1d4
Improved the performance of reductions on CUDA devices
2016-01-04 17:25:00 -08:00
Benoit Steiner
515dee0baf
Added a 'divup' util to compute the floor of the quotient of two integers
2016-01-04 16:29:26 -08:00
Gael Guennebaud
715f6f049f
Improve inline documentation of SparseCompressedBase and its derived classes
2016-01-03 21:56:30 +01:00
Gael Guennebaud
8b0d1eb0f7
Fix numerous doxygen shortcomings, and workaround some clang -Wdocumentation warnings
2016-01-01 21:45:06 +01:00
Gael Guennebaud
9900782e88
Mark AlignedBit and EvalBeforeNestingBit with deprecated attribute, and remove the remaining usages of EvalBeforeNestingBit.
2015-12-30 16:47:49 +01:00
Gael Guennebaud
70404e07c2
Workaround clang -Wdocumentation warning about "/*<"
2015-12-30 16:46:45 +01:00
Gael Guennebaud
addb7066e8
Workaround "empty paragraph" warning with clang -Wdocumentation
2015-12-30 16:45:44 +01:00
Gael Guennebaud
eadc377b3f
Add missing doc of Derived template parameter
2015-12-30 16:43:19 +01:00
Gael Guennebaud
29bb599e03
Fix numerous doxygen issues in auto-link generation
2015-12-30 16:04:24 +01:00
Gael Guennebaud
162ccb2938
Fix links to Eigen2-to-Eigen3 porting helpers
2015-12-30 16:03:14 +01:00
Gael Guennebaud
5fae3750b5
Recent versions of doxygen miss-parsed Eigen/* headers
2015-12-30 16:02:05 +01:00
Gael Guennebaud
b84cefe61d
Add missing snippets for erf/erfc/lgamma functions.
2015-12-30 15:12:15 +01:00
Gael Guennebaud
16dd82ed51
Add missing snippet for sign/cwiseSign functions.
2015-12-30 15:11:42 +01:00
Gael Guennebaud
978c379ed7
Add missing ctor from uint
2015-12-30 12:52:38 +01:00
Gael Guennebaud
25f2b8d824
bug #1141 : add missing initialization of CholmodBase::m_*IsOk
2015-12-29 15:50:11 +01:00
Eugene Brevdo
f2471f31e0
Modify constants in SpecialFunctions to lowercase (avoid name conflicts).
2015-12-28 17:48:38 -08:00
Eugene Brevdo
afb35385bf
Change PI* to M_PI* in SpecialFunctions to avoid possible breakage
...
with external DEFINEs.
2015-12-28 17:34:06 -08:00
Eugene Brevdo
14897600b7
Protect digamma tests behind a EIGEN_HAS_C99_MATH check.
2015-12-24 21:28:18 -08:00
Eugene Brevdo
cef81c9084
Merged eigen/eigen into default
2015-12-24 21:17:33 -08:00
Eugene Brevdo
f7362772e3
Add digamma for CPU + CUDA. Includes tests.
2015-12-24 21:15:38 -08:00
Gael Guennebaud
d2e288ae50
Workaround compilers that do not even define _mm256_set_m128.
2015-12-24 16:53:43 +01:00
Benoit Steiner
bdcbc66a5c
Don't attempt to vectorize mean reductions of integers since we can't use
...
SSE or AVX instructions to divide 2 integers.
2015-12-22 17:51:55 -08:00
Benoit Steiner
a1e08fb2a5
Optimized the configuration of the outer reduction cuda kernel
2015-12-22 16:30:10 -08:00
Benoit Steiner
9c7d96697b
Added missing define
2015-12-22 16:11:07 -08:00
Benoit Steiner
e7e6d01810
Made sure the optimized gpu reduction code is actually compiled.
2015-12-22 15:07:33 -08:00
Benoit Steiner
b5d2078c4a
Optimized outer reduction on GPUs.
2015-12-22 15:06:17 -08:00
Benoit Steiner
3504ae47ca
Made it possible to run the lgamma, erf, and erfc functors on a CUDA gpu.
2015-12-21 15:20:06 -08:00
Benoit Steiner
1c3e78319d
Added missing const
2015-12-21 15:05:01 -08:00
Benoit Steiner
9f9d8d2f62
Disabled part of the matrix matrix peeling code that's incompatible with 512 bit registers
2015-12-21 13:04:52 -08:00
Benoit Steiner
b74887d5f2
Implemented most of the packet primitives for AVX512
2015-12-21 11:46:36 -08:00
Benoit Steiner
6ffb208c77
Make sure EIGEN_HAS_MM_MALLOC is set to 1 when using the avx512 instruction set.
2015-12-21 11:23:15 -08:00
Benoit Steiner
994d1c60b9
Free memory allocated using posix_memalign() with free() instead of std::free()
2015-12-21 11:21:39 -08:00
Benoit Steiner
b407948a77
Merged in connor-k/eigen (pull request PR-149)
...
[doc] Remove extra ';' in Advanced Initialization sample
2015-12-21 09:44:25 -08:00
Benoit Steiner
a6c243617b
Fixed a typo in previous change.
2015-12-21 09:05:45 -08:00
Benoit Steiner
51be91f15e
Added support for CUDA architectures that don's support for 3.5 capabilities
2015-12-21 08:42:58 -08:00
connor-k
95dd423cca
[doc] Remove extra ';' in Tutorial_AdvancedInitialization_Join.cpp
2015-12-21 01:12:26 +00:00
Tal Hadad
c006ecace1
Fix comments
2015-12-20 20:07:06 +02:00
Tal Hadad
bfed274df3
Use RotationBase, test quaternions and support ranges.
2015-12-20 16:24:53 +02:00
Tal Hadad
b091b7e6ea
Remove unneccesary comment.
2015-12-20 13:00:07 +02:00
Tal Hadad
fabd8474ff
Merged eigen/eigen into default
2015-12-20 12:50:07 +02:00
Tal Hadad
6752a69aa5
Much better tests, and a little bit more functionality.
2015-12-20 12:49:12 +02:00
Benoit Steiner
6d777e1bc7
Fixed a typo.
2015-12-18 19:25:50 -08:00
Benoit Steiner
1b82969559
Add alignment requirement for local buffer used by the slicing op.
2015-12-18 14:36:35 -08:00
Benoit Steiner
75a7fa1919
Doubled the speed of full reductions on GPUs.
2015-12-18 14:07:31 -08:00
Gael Guennebaud
3abd8470ca
bug #1140 : remove custom definition and use of _mm256_setr_m128
2015-12-18 14:18:59 +01:00
Benoit Steiner
8dd17cbe80
Fixed a clang compilation warning triggered by the use of arrays of size 0.
2015-12-17 14:00:33 -08:00
Benoit Steiner
4aac55f684
Silenced some compilation warnings triggered by nvcc
2015-12-17 13:39:01 -08:00
Benoit Steiner
40e6250fc3
Made it possible to run tensor chipping operations on CUDA devices
2015-12-17 13:29:08 -08:00
Benoit Steiner
2ca55a3ae4
Fixed some compilation error triggered by the tensor code with msvc 2008
2015-12-16 20:45:58 -08:00
Gael Guennebaud
55aef139ff
Added tag 3.3-beta1 for changeset 9f9de1aaa9
2015-12-16 21:49:02 +01:00
Gael Guennebaud
9f9de1aaa9
bump to 3.3-beta1
2015-12-16 21:48:48 +01:00
Christoph Hertzberg
49d96aee64
bug #1120 : Make sure that SuperLU version is checked
2015-12-16 11:37:16 +01:00
Gael Guennebaud
ae8b217a01
Update doc to make it clear that only SuperLU 4.x is supported
2015-12-16 10:47:03 +01:00
Gael Guennebaud
35d8725c73
Disable AutoDiffScalar generic copy ctor for non compatible scalar types (fix ambiguous template instantiation)
2015-12-16 10:14:24 +01:00
Christoph Hertzberg
92655e7215
bug #1136 : Protect isinf for Intel compilers. Also don't distinguish GCC from ICC and don't rely on EIGEN_NOT_A_MACRO, which might not be defined when including this.
2015-12-15 11:34:52 +01:00
Benoit Steiner
17352e2792
Made the entire TensorFixedSize api callable from a CUDA kernel.
2015-12-14 15:20:31 -08:00
Benoit Steiner
75e19fc7ca
Marked the tensor constructors as EIGEN_DEVICE_FUNC: This makes it possible to call them from a CUDA kernel.
2015-12-14 15:12:55 -08:00
Gael Guennebaud
140f3a02a8
Fix MKL wrapper for ComplexSchur
2015-12-11 23:31:21 +01:00
Gael Guennebaud
4483c0fdf6
Fix unused variable warning.
2015-12-11 23:29:53 +01:00
Gael Guennebaud
774dba87c8
merge
2015-12-11 23:28:44 +01:00
Gael Guennebaud
c884a8e7f4
merge
2015-12-11 23:07:33 +01:00
Gael Guennebaud
4d708457d0
Increase axpy vector size
2015-12-11 23:07:22 +01:00
Benoit Steiner
b8861b0c25
Make sure the data is aligned on a 64 byte boundary when using avx512 instructions.
2015-12-11 09:19:57 -08:00
Gael Guennebaud
b60a8967f5
bug #1134 : fix JacobiSVD pre-allocation
...
(grafted from f22036f5f8
)
2015-12-11 11:59:11 +01:00
Gael Guennebaud
ca39b1546e
Merged in ebrevdo/eigen (pull request PR-148)
...
Add special functions to eigen: lgamma, erf, erfc.
2015-12-11 11:52:09 +01:00
Gael Guennebaud
82152f2ae6
bug #1132 : add EIGEN_MAPBASE_PLUGIN
2015-12-11 11:43:49 +01:00
Gael Guennebaud
4519fd5d40
Fix MKL compilation issue
2015-12-11 11:11:38 +01:00
Gael Guennebaud
7385e6e2ef
Remove useless explicit
2015-12-11 11:11:19 +01:00
Gael Guennebaud
bcb4f126a7
Fix compilation of PardisoSupport
2015-12-11 11:11:00 +01:00
Gael Guennebaud
30b5c4cd14
Remove useless "explicit", and fix inline/static order.
2015-12-11 10:59:39 +01:00
Gael Guennebaud
79c1e6d0a6
Fix compilation of MKL support.
2015-12-11 10:55:07 +01:00
Gael Guennebaud
c684a07eba
merge
2015-12-11 10:06:38 +01:00
Gael Guennebaud
836da91b3f
Fix unit tests wrt EIGEN_DEFAULT_TO_ROW_MAJOR
2015-12-11 10:06:28 +01:00
Benoit Steiner
6af52a1227
Fixed a typo in the constructor of tensors of rank 5.
2015-12-10 23:31:12 -08:00
Benoit Steiner
2d8f2e4042
Made 2 tests compile without cxx11.
...
HdG: --
2015-12-10 23:20:04 -08:00
Benoit Steiner
8d28a161b2
Use the proper accessor to refer to the value of a scalar tensor
2015-12-10 22:53:56 -08:00
Benoit Steiner
8e00ea9a92
Fixed the coefficient accessors use for the 2d and 3d case when compiling without cxx11 support.
2015-12-10 22:45:10 -08:00
Benoit Steiner
9db8316c93
Updated the cxx11_tensor_custom_op to not require cxx11.
2015-12-10 20:53:44 -08:00
Benoit Steiner
4e324ca6ae
Updated the cxx11_tensor_assign test to make it compile without support for cxx11
2015-12-10 20:47:25 -08:00
Benoit Steiner
6acf2bd472
Fixed compilation error triggered by MSVC 2008
2015-12-10 17:17:42 -08:00
Benoit Steiner
9a415fb1e2
Preliminary support for AVX512
2015-12-10 15:34:57 -08:00
Benoit Steiner
b820b097b8
Created EIGEN_HAS_C99_MATH define as Gael suggested.
2015-12-10 13:52:05 -08:00
Gael Guennebaud
df6f54ff63
Fix storage order of PartialRedux
2015-12-10 22:24:58 +01:00
Gael Guennebaud
d1862967a8
Make sure ADOLC is recent enough by searching for adtl.h
2015-12-10 22:23:21 +01:00
Mark Borgerding
22dd368ea0
sign(complex) compiles for GPU
2015-12-10 16:14:29 -05:00
Benoit Steiner
8314962ce2
Only test the lgamma, erf and erfc function when using a C99 compliant compiler
2015-12-10 13:13:45 -08:00
Benoit Steiner
58e06447de
Silence a compilation warning
2015-12-10 13:11:36 -08:00
Benoit Steiner
48877a6933
Only implement the lgamma, erf, and erfc functions when using a compiler compliant with the C99 specification.
2015-12-10 13:09:49 -08:00
Gael Guennebaud
46d2f6cd78
Workaround gcc issue with -O3 and the i387 FPU.
2015-12-10 21:33:43 +01:00
Gael Guennebaud
7ad1aaec1d
bug #1103 : fix neon vectorization of pmul(Packet1cd,Packet1cd)
2015-12-10 16:06:33 +01:00
Gael Guennebaud
b0a1d6f2e5
Improve handling of deprecated EIGEN_INCLUDE_INSTALL_DIR variable
2015-12-10 15:47:06 +01:00
Benoit Steiner
53b196aa5f
Simplified the implementation of lgamma, erf, and erfc
2015-12-08 14:17:34 -08:00
Benoit Steiner
e535450573
Cleanup
2015-12-08 14:06:39 -08:00
Benoit Steiner
b630d10b62
Only disable the erf, erfc, and lgamma tests for older versions of c++.
2015-12-07 17:08:08 -08:00
Benoit Steiner
b1ae39794c
Simplified the code a bit
2015-12-07 16:46:35 -08:00
Benoit Steiner
73b68d4370
Fixed a couple of typos
...
Cleaned up the code a bit.
2015-12-07 16:38:48 -08:00
Eugene Brevdo
fa4f933c0f
Add special functions to Eigen: lgamma, erf, erfc.
...
Includes CUDA support and unit tests.
2015-12-07 15:24:49 -08:00
Benoit Steiner
7dfe75f445
Fixed compilation warnings
2015-12-07 08:12:30 -08:00
Gael Guennebaud
ad3d68400e
Add matrix-free solver example
2015-12-07 12:33:38 +01:00
Gael Guennebaud
b37036afce
Implement wrapper for matrix-free iterative solvers
2015-12-07 12:23:22 +01:00
Benoit Steiner
f4ca8ad917
Use signed integers instead of unsigned ones more consistently in the codebase.
2015-12-04 18:14:16 -08:00
Benoit Steiner
490d26e4c1
Use integers instead of std::size_t to encode the number of dimensions in the Tensor class since most of the code currently already use integers.
2015-12-04 10:15:11 -08:00
Benoit Steiner
d20efc974d
Made it possible to use the sigmoid functor within a CUDA kernel.
2015-12-04 09:38:15 -08:00
Benoit Steiner
e25e3a041b
Added rsqrt() method to the Array class: this method computes the coefficient-wise inverse square root much more efficiently than calling sqrt().inverse().
2015-12-03 18:16:35 -08:00
Benoit Steiner
029052d276
Deleted redundant code
2015-12-03 17:08:47 -08:00
Benoit Steiner
c41e9e4bd0
Merged in Unril/eigen-1/Unril/fixes-internal-compiler-error-while-comp-1449156092576 (pull request PR-147)
...
Fixes internal compiler error while compiling with VC2015 Update1 x64.
2015-12-03 14:26:14 -08:00
Gael Guennebaud
1562e13aba
Add missing Rotation2D::operator=(Matrix2x2)
2015-12-03 22:25:26 +01:00
Nikolay Fedorov
944647c0aa
Fixes internal compiler error while compiling with VC2015 Update1 x64.
2015-12-03 15:21:43 +00:00
Benoit Steiner
d2d4c45d55
Made it possible to leverage several binary functor in a CUDA kernel
...
Explicitely specified the return type of the various scalar_cmp_op functors.
2015-12-02 17:21:33 -08:00
Gael Guennebaud
c5b86893e7
bug #1123 : add missing documentation of angle() and axis()
2015-12-01 14:45:08 +01:00
Gael Guennebaud
0bb12fa614
Add LU::transpose().solve() and LU::adjoint().solve() API.
2015-12-01 14:38:47 +01:00
Rasmus Munk Larsen
1663d15da7
Add internal method _solve_impl_transposed() to LU decomposition classes that solves A^T x = b or A^* x = b.
2015-11-30 13:39:24 -08:00
Gael Guennebaud
274b2272b7
Make bench_gemm compatible with 3.2
2015-12-01 09:57:31 +01:00
Gael Guennebaud
6c02cbbb0f
Fix matrix to quaternion (and angleaxis) conversion for matrix expression.
2015-12-01 09:45:56 +01:00
Gael Guennebaud
844561939f
Do not check NeedsToAlign if no static alignment
2015-11-30 22:36:14 +01:00
Gael Guennebaud
1d906d883d
Fix degenerate cases in syrk and trsm
2015-11-30 22:20:31 +01:00
Gael Guennebaud
e7a1c48185
Update BLAS API unit tests
2015-11-30 22:19:20 +01:00
Gael Guennebaud
034ca5a22d
Clean hardcoded compilation options
2015-11-30 17:05:42 +01:00
Gael Guennebaud
fd727249ad
Update ADOL-C support.
2015-11-30 16:00:22 +01:00
Gael Guennebaud
6fcd316f23
Extend superlu cmake script to check version
2015-11-30 14:48:11 +01:00
Gael Guennebaud
afa11d646d
Fix UmfPackLU ctor for exppressions
2015-11-27 22:04:22 +01:00
Gael Guennebaud
6bdeb8cfbe
bug #918 , umfpack: add access to umfpack return code and parameters
2015-11-27 21:58:36 +01:00
Gael Guennebaud
3f32f5ec22
ArrayBase::sign: add unit test and fix doc
2015-11-27 16:27:53 +01:00
Gael Guennebaud
da46b1ed54
bug #1112 : fix compilation on exotic architectures
2015-11-27 15:57:18 +01:00
Gael Guennebaud
1261d020c3
bug #1120 , superlu: mem_usage_t is now uniquely defined, so let's use it.
2015-11-27 10:39:09 +01:00
Gael Guennebaud
0ff127e896
Preserve CMAKE_CXX_FLAGS in BTL
2015-11-27 10:18:39 +01:00
Gael Guennebaud
ca001d7c2a
Big 1009, part 2/2: add static assertion on LinearAccessBit in coeff(index)-like methods.
2015-11-27 10:06:47 +01:00
Gael Guennebaud
91a7059459
bug #1009 , part 1/2: make sure vector expressions expose LinearAccessBit flag.
2015-11-27 10:06:07 +01:00
Mark Borgerding
7ddcf97da7
added scalar_sign_op (both real,complex)
2015-11-24 17:15:07 -05:00
Benoit Steiner
44848ac39b
Fixed a bug in TensorArgMax.h
2015-11-23 15:58:47 -08:00
Benoit Steiner
547a8608e5
Fixed the implementation of Eigen::internal::count_leading_zeros for MSVC.
...
Also updated the code to silence bogux warnings generated by nvcc when compilining this function.
2015-11-23 12:17:45 -08:00
Benoit Steiner
562078780a
Don't create more cuda blocks than necessary
2015-11-23 11:00:10 -08:00
Benoit Steiner
df31ca3b9e
Made it possible to refer t oa GPUDevice from code compile with a regular C++ compiler
2015-11-23 10:03:53 -08:00
Benoit Steiner
1e04059012
Deleted unused variable.
2015-11-23 08:36:54 -08:00
Benoit Steiner
4286b2d494
Pulled latest updates from trunk
2015-11-23 08:28:34 -08:00
Gael Guennebaud
f9fff67a56
Disable "decorated name length exceeded, name was truncated" MSVC warning.
2015-11-23 15:03:24 +01:00
Gael Guennebaud
f3dca16a1d
bug #1117 : workaround unused-local-typedefs warning when EIGEN_NO_STATIC_ASSERT and NDEBUG are both defined.
2015-11-23 14:07:52 +01:00
Gael Guennebaud
31b661e4ca
Add a note on initParallel being optional in C++11.
2015-11-23 13:28:43 +01:00
Gael Guennebaud
8a2659f0cb
Improve numerical robustness of some unit tests
2015-11-23 10:53:55 +01:00
Gael Guennebaud
82bd4e546a
Merged in dr15jones/eigen (pull request PR-146)
...
Use a class constructor to initialize CPU cache sizes
2015-11-22 22:50:31 +01:00
Gael Guennebaud
35c17a3fc8
Use overload instead of template full specialization to please old MSVC
2015-11-22 22:09:57 +01:00
Gael Guennebaud
b265979a70
Make FullPivLU::solve use rank() instead of nonzeroPivots().
2015-11-21 15:03:04 +01:00
Benoit Steiner
9fa65d3838
Split TensorDeviceType.h in 3 files to make it more manageable
2015-11-20 17:42:50 -08:00
Benoit Steiner
a367804856
Added option to force the usage of the Eigen array class instead of the std::array class.
2015-11-20 12:41:40 -08:00
Benoit Steiner
86486eee2d
Pulled latest updates from trunk
2015-11-20 11:10:37 -08:00
Benoit Steiner
383d1cc2ed
Added proper support for fast 64bit integer division on CUDA
2015-11-20 11:09:46 -08:00
Chris Jones
4946d758c9
Use a class constructor to initialize CPU cache sizes
...
Using a static instance of a class to initialize the values for
the CPU cache sizes guarantees thread-safe initialization of the
values when using C++11. Therefore under C++11 it is no longer
necessary to call Eigen::initParallel() before calling any eigen
functions on different threads.
2015-11-20 19:58:08 +01:00
Gael Guennebaud
027a846b34
Use .data() instead of &coeffRef(0).
2015-11-20 15:30:10 +01:00
Gael Guennebaud
4522ffd17c
Add regression using test for array<complex>/real
2015-11-20 15:29:32 +01:00
Gael Guennebaud
4fc36079e7
Fix overload instantiation for clang
2015-11-20 15:29:03 +01:00
Gael Guennebaud
4a985e793c
Workaround msvc broken complex/complex division in unit test
2015-11-20 14:52:08 +01:00
Gael Guennebaud
5c9c0dca4d
Add missing using statement to enable fast Array<complex> / real operations. (was ok for Matrix only)
2015-11-20 14:51:36 +01:00
Gael Guennebaud
e1b27bcb0b
Workaround MSVC missing overloads of std::fpclassify for integral types
2015-11-20 13:55:34 +01:00
Gael Guennebaud
e52d4f8d8d
Add is_integral<> type traits
2015-11-20 13:54:28 +01:00
Benoit Steiner
0ad7c7b1ad
Fixed another clang compilation warning
2015-11-19 15:52:51 -08:00
Benoit Steiner
66ff9b2c6c
Fixed compilation warning generated by clang
2015-11-19 15:40:32 -08:00
Benoit Steiner
f37a5f1c53
Fixed compilation error triggered by nvcc
2015-11-19 14:34:26 -08:00
Benoit Steiner
04f1284f9a
Shard the uint128 test
2015-11-19 14:08:08 -08:00
Benoit Steiner
e2859c6b71
Cleanup the integer division test
2015-11-19 14:07:50 -08:00
Benoit Steiner
f8df393165
Added support for 128bit integers on CUDA devices.
2015-11-19 13:57:27 -08:00
Benoit Steiner
7d1cedd0fe
Added numeric limits for unsigned integers
2015-11-18 17:17:44 -08:00
Gael Guennebaud
1994999105
Add regression unit test for prod.maxCoeff(i)
2015-11-18 23:29:07 +01:00
Benoit Steiner
1dd444ea71
Avoid using the version of TensorIntDiv optimized for 32-bit integers when the divisor can be equal to one since it isn't supported.
2015-11-18 11:37:58 -08:00
Benoit Jacob
4926251f13
bug #1115 : enable static alignment on ARM outside of old-GCC
2015-11-18 10:55:23 -05:00
Gael Guennebaud
a64156cae5
Workaround i387 issue in unit test
2015-11-16 13:33:54 +01:00
Benoit Steiner
bf792f59e3
Only enable the use of constexpr with nvcc if we're using version 7.5 or above
2015-11-13 12:24:22 -08:00
Benoit Steiner
f1fbd74db9
Added sanity check
2015-11-13 09:07:27 -08:00
Benoit Steiner
1e1755352d
Made it possible to compute atan, tanh, sinh and cosh on GPU
2015-11-12 20:19:38 -08:00
Benoit Steiner
7815b84be4
Fixed a compilation warning
2015-11-12 20:16:59 -08:00
Benoit Steiner
10a91930cc
Fixed a compilation warning triggered by nvcc
2015-11-12 20:10:52 -08:00
Benoit Steiner
ed4b37de02
Fixed a few compilation warnings
2015-11-12 20:08:01 -08:00
Benoit Steiner
b69248fa2a
Added a couple of missing EIGEN_DEVICE_FUNC
2015-11-12 20:01:50 -08:00
Benoit Steiner
0aaa5941df
Silenced some compilation warnings triggered by nvcc
2015-11-12 19:11:43 -08:00
Benoit Steiner
2c73633b28
Fixed a few more typos
2015-11-12 18:39:19 -08:00
Benoit Steiner
be08e82953
Fixed typos
2015-11-12 18:37:40 -08:00
Benoit Steiner
e4d45f3440
Only enable the use of const expression when nvcc is called with the -std=c++11 option
2015-11-12 18:18:35 -08:00
Benoit Steiner
150c12e138
Completed the IndexList rewrite
2015-11-12 18:11:56 -08:00
Benoit Steiner
8037826367
Simplified more of the IndexList code.
2015-11-12 17:19:45 -08:00
Benoit Steiner
e9ecfad796
Started to make the IndexList code compile by more compilers
2015-11-12 16:41:14 -08:00
Benoit Steiner
7a1316fcc5
Fixed compilation error with xcode.
2015-11-12 11:05:54 -08:00
Benoit Steiner
737d237722
Made it possible to run some of the CXXMeta functions on a CUDA device.
2015-11-12 09:02:59 -08:00
Benoit Steiner
1e072424e8
Moved the array code into it's own file.
2015-11-12 08:57:04 -08:00
Benoit Steiner
aa5f1ca714
gen_numeric_list takes a size_t, not a int
2015-11-12 08:30:10 -08:00
Gael Guennebaud
dfbb889fe9
Fix missing Dynamic versus HugeCost changes
2015-11-12 12:09:48 +01:00
Gael Guennebaud
e701cb2c7c
Update EIGEN_FAST_MATH doc
2015-11-12 12:09:19 +01:00
Benoit Steiner
9fa10fe52d
Don't use std::array when compiling with nvcc since nvidia doesn't support the use of STL containers on GPU.
2015-11-11 15:38:30 -08:00
Benoit Steiner
c587293e48
Fixed a compilation warning
2015-11-11 15:35:12 -08:00
Benoit Steiner
7f1c29fb0c
Make it possible for a vectorized tensor expression to be executed in a CUDA kernel.
2015-11-11 15:22:50 -08:00
Benoit Steiner
4f471146fb
Allow the vectorized version of the Binary and the Nullary functors to run on GPU
2015-11-11 15:19:00 -08:00
Benoit Steiner
99f4778506
Disable SFINAE when compiling with nvcc
2015-11-11 15:04:58 -08:00
Benoit Steiner
5cb18e5b5e
Fixed CUDA compilation errors
2015-11-11 14:36:33 -08:00
Benoit Steiner
228edfe616
Use Eigen::NumTraits instead of std::numeric_limits
2015-11-11 09:26:23 -08:00
Taylor Braun-Jones
b836acb799
Further fixes for CMAKE_INSTALL_PREFIX correctness
...
And other related cmake cleanup, including:
- Use CMAKE_CURRENT_LIST_DIR to find UseEigen3.cmake
- Use INSTALL_DIR term consistently for variable names
- Drop unnecessary extra EIGEN_INCLUDE_INSTALL_DIR
- Fix some paths in generated eigen3.pc and Eigen3Config.cmake files
missing CMAKE_INSTALL_PREFIX
- Fix pkgconfig directory choice ignored if it doesn't exist at configure
time (bug #711 )
2015-11-07 21:29:24 -05:00
Gael Guennebaud
e73ef4f25e
bug #1109 : use noexcept instead of throw for C++11 compilers
2015-12-10 14:21:23 +01:00
Gael Guennebaud
145ad5d800
Use more explicit names.
2015-12-10 12:03:38 +01:00
Gael Guennebaud
75f0fe3795
Fix usage of "Index" as a compile time integral.
2015-12-10 12:01:06 +01:00
Gael Guennebaud
f248249c1f
bug #1113 : fix name conflict with C99's "I".
2015-12-10 11:57:57 +01:00
Gael Guennebaud
21ed29e2c9
Disable complex scalar types because the compiler might aggressively vectorize
...
the initialization of complex coeffs to 0 before we can check for alignedness
2015-12-09 20:46:09 +01:00
Gael Guennebaud
fbe18d5507
Forbid the creation of SparseCompressedBase object
2015-12-09 15:47:32 +01:00
Gael Guennebaud
dc73430d4b
bug #1074 : forbid the creation of PlainObjectBase object by making its ctor protected
2015-12-09 15:47:08 +01:00
Gael Guennebaud
1257fbd2f9
Fix sign-unsigned issue in enum
2015-12-09 10:06:42 +01:00
Gael Guennebaud
4549549992
Fix and clarify documentation of Transform wrt operator*(MatrixBase)
2015-12-08 16:21:49 +01:00
Gael Guennebaud
543bd28a24
Fix Alignment in coeff-based product, and enable unaligned vectorization
2015-12-08 11:28:05 +01:00
Gael Guennebaud
03ad4fc504
Extend unit test of coeff-based product to check many more combinations
2015-12-08 11:27:43 +01:00
Benoit Steiner
20e2ab1121
Fixed another compilation warning
2015-12-07 16:17:57 -08:00
Benoit Steiner
d573efe303
Code cleanup
2015-11-06 14:54:28 -08:00
Benoit Steiner
9fa283339f
Silenced a compilation warning
2015-11-06 11:44:22 -08:00
Benoit Steiner
53432a17b2
Added static assertions to avoid misuses of padding, broadcasting and concatenation ops.
2015-11-06 10:26:19 -08:00
Benoit Steiner
6857a35a11
Fixed typos
2015-11-06 09:42:05 -08:00
Benoit Steiner
33cbdc2d15
Added more missing EIGEN_DEVICE_FUNC
2015-11-06 09:29:59 -08:00
Benoit Steiner
d27e4f1cba
Added missing EIGEN_DEVICE_FUNC statements
2015-11-06 09:23:58 -08:00
Benoit Steiner
ed1962b464
Reimplement the tensor comparison operators by using the scalar_cmp_op functors. This makes them more cuda friendly.
2015-11-06 09:18:43 -08:00
Gael Guennebaud
bfd6ee64f3
bug #1105 : fix default preallocation when moving from compressed to uncompressed mode
2015-11-06 15:05:37 +01:00
Benoit Steiner
29038b982d
Added support for modulo operation
2015-11-05 19:39:48 -08:00
Benoit Steiner
fbcf8cc8c1
Pulled latest updates from trunk
2015-11-05 14:30:02 -08:00
Benoit Steiner
0d15ad8019
Updated the regressions tests that cover full reductions
2015-11-05 14:22:30 -08:00
Benoit Steiner
c75a19f815
Misc fixes to full reductions
2015-11-05 14:21:20 -08:00
Benoit Steiner
ec5a81b45a
Fixed a bug in the extraction of sizes of fixed sized tensors of rank 0
2015-11-05 13:39:48 -08:00
Gael Guennebaud
589b839ad0
Add unit test for Hessian via AutoDiffScalar
2015-11-05 14:54:05 +01:00
Gael Guennebaud
9ceaa8e445
bug #1063 : nest AutoDiffScalar by value to avoid dead references
2015-11-05 13:54:26 +01:00
Gael Guennebaud
ae87f094eb
Fix "," in non SSE4 mode
2015-11-05 12:08:36 +01:00
Gael Guennebaud
2844e7ae43
SPQR and UmfPack need to link to cholmod.
...
(grafted from 47592d31ea
)
2015-11-05 12:05:02 +01:00
Gael Guennebaud
780eeb3be7
prevent stack overflow in unit test
2015-11-05 00:32:48 -08:00
Benoit Steiner
beedd9630d
Updated the reduction code so that full reductions now return a tensor of rank 0.
2015-11-04 13:57:36 -08:00
Gael Guennebaud
90323f1751
Fix AVX round/ceil/floor, and fix respective unit test
2015-11-04 22:15:57 +01:00
Gael Guennebaud
3dd24bdf99
Merged in aavenel/eigen (pull request PR-142)
...
Add round, ceil and floor for SSE4.1/AVX (Bug #70 )
2015-11-04 18:26:38 +01:00
Gael Guennebaud
902750826b
Add support for dense.cwiseProduct(sparse)
...
This also fixes a regression regarding (dense*sparse).diagonal()
2015-11-04 17:42:07 +01:00
Gael Guennebaud
f6b1deebab
Fix compilation of sparse-triangular to dense assignment
2015-11-04 17:02:32 +01:00
Benoit Steiner
36cd6daaae
Made the CUDA implementation of ploadt_ro compatible with cuda implementations older than 3.5
2015-11-03 16:36:30 -08:00
Gael Guennebaud
29a94c8055
compilation issue
2015-11-02 16:11:59 +01:00
Alexandre Avenel
38832e0791
Merge
2015-11-01 10:55:42 +01:00
Alexandre Avenel
d46e2c10a6
Add round, ceil and floor for SSE4.1/AVX (Bug #70 )
2015-11-01 10:49:27 +01:00
Gael Guennebaud
c0352197a1
bug #1099 : add missing incude for CUDA
2015-10-31 18:06:28 +01:00
Gael Guennebaud
b32948c642
bug #1102 : fix multiple definition linking issue
2015-10-30 22:25:59 +01:00
Gael Guennebaud
5a2007f7e4
typo
2015-10-30 22:16:23 +01:00
Gael Guennebaud
8a3151de2e
Limit matrix size for other eigen and schur decompositions
2015-10-30 18:06:03 +01:00
Gael Guennebaud
fdf3030ff8
Limit matrix sizes for trmm unit test and complexes.
2015-10-30 15:07:50 +01:00
Gael Guennebaud
9285647dfe
Limit matrix size when testing for NaN: they can become prohibitively expensive when running on x87 fp unit
2015-10-30 14:44:22 +01:00
Gael Guennebaud
ddaaa2d381
bug #1101 : typo
2015-10-30 12:02:52 +01:00
Gael Guennebaud
c8c8821038
Biug 1100: remove explicit CMAKE_INSTALL_PREFIX prefix to please cmake install's DESTINATION argument
2015-10-30 12:00:34 +01:00
Gael Guennebaud
0e6cb08f92
Fix shadow warning
2015-10-30 11:44:22 +01:00
Gael Guennebaud
27c56bf60f
Workaround compilation issue with MSVC<=2013
2015-10-30 10:57:11 +01:00
Gael Guennebaud
213bd0253a
Fix gcc 4.4 compilation issue
2015-10-30 08:44:37 +01:00
Benoit Steiner
6a02c2a85d
Fixed a compilation warning
2015-10-29 20:21:29 -07:00
Benoit Steiner
ca12d4c3b3
Pulled latest updates from trunk
2015-10-29 17:57:48 -07:00
Benoit Steiner
31bdafac67
Added a few tests to cover rank-0 tensors
2015-10-29 17:56:48 -07:00
Benoit Steiner
ce19e38c1f
Added support for tensor maps of rank 0.
2015-10-29 17:49:04 -07:00
Benoit Steiner
3785c69294
Added support for fixed sized tensors of rank 0
2015-10-29 17:31:03 -07:00
Benoit Steiner
0d7a23d34e
Extended the reduction code so that reducing an empty set returns the neural element for the operation
2015-10-29 17:29:49 -07:00
Benoit Steiner
1b0685d09a
Added support for rank-0 tensors
2015-10-29 17:27:38 -07:00
Benoit Steiner
c444a0a8c3
Consistently use the same index type in the fft codebase.
2015-10-29 16:39:47 -07:00
Benoit Steiner
09ea3a7acd
Silenced a few more compilation warnings
2015-10-29 16:22:52 -07:00
Benoit Steiner
0974a57910
Silenced compiler warning
2015-10-29 15:00:06 -07:00
Benoit Steiner
ac142773a7
Don't call internal::check_rows_cols_for_overflow twice in PlainObjectBase::resize since this is extremely expensive for small arrays
2015-10-29 13:13:39 -07:00
Gael Guennebaud
05a0ee25df
Fix warning.
2015-10-29 21:06:07 +01:00
Gael Guennebaud
7cfbe35e49
Fix duplicated declaration
2015-10-29 21:05:52 +01:00
Gael Guennebaud
568d488a27
Fusion the two similar specialization of Sparse2Dense Assignment.
...
This change also fixes a compilation issue with MSVC<=2013.
2015-10-29 13:16:15 +01:00
Gael Guennebaud
7a5f83ca60
Add overloads for real times sparse<complex> operations.
...
This avoids real to complex conversions, and also fixes a compilation issue with MSVC.
2015-10-29 03:55:39 -07:00
Gael Guennebaud
c688cc28d6
fix copy/paste typo
2015-10-28 20:20:05 +01:00
Gael Guennebaud
5b6cff5b0e
fix typo
2015-10-28 20:18:00 +01:00
Gael Guennebaud
6759a21e49
CUDA support: define more accurate min/max values for device::numeric_limits of float and double using values from cfloat header
2015-10-28 16:49:15 +01:00
Gael Guennebaud
28ddb5158d
Enable std::isfinite/nan/inf on MSVC 2013 and newer and clang. Fix isinf for gcc4.4 and older msvc with fast-math.
2015-10-28 16:27:20 +01:00
Ilya Popov
1a842c0dc4
Fix typo in TutorialSparse: laplace equation contains gradient symbol (\nabla) instead of laplacian (\Delta).
2015-10-28 09:52:55 +00:00
Gael Guennebaud
8531304858
Simplify cost computations based on HugeCost being smaller that unrolling limit
2015-10-28 13:39:02 +01:00
Gael Guennebaud
1f11dd6ced
Add a unit test for large chains of products
2015-10-28 12:53:13 +01:00
Gael Guennebaud
902c2db5a5
Extend vectorwiseop unit test with column/row vectors as input.
2015-10-28 11:59:20 +01:00
Gael Guennebaud
77ff3386b7
Refactoring of the cost model:
...
- Dynamic is now an invalid value
- introduce a HugeCost constant to be used for runtime-cost values or arbitrarily huge cost
- add sanity checks for cost values: must be >=0 and not too large
This change provides several benefits:
- it fixes shortcoming is some cost computation where the Dynamic case was not properly handled.
- it simplifies cost computation logic, and should avoid future similar shortcomings.
- it allows to distinguish between different level of dynamic/huge/infinite cost
- it should enable further simplifications in the computation of costs (save compilation time)
2015-10-28 11:42:14 +01:00
Gael Guennebaud
827d8a9bad
Fix false negative in redux test
2015-10-27 21:37:03 +01:00
Gael Guennebaud
d4cf436cb1
Enable mpreal unit test for C++11 compiler only
2015-10-27 17:35:54 +01:00
Gael Guennebaud
946f8850e8
bug #1008 : add a unit test for fast-math mode and isinf/isnan/isfinite/etc. functions.
2015-10-27 16:44:45 +01:00
Gael Guennebaud
e3031d7bfa
bug #1008 : improve handling of fast-math mode for older gcc versions.
2015-10-27 16:43:23 +01:00
Gael Guennebaud
2475a1de48
bug #1008 : stabilize isfinite/isinf/isnan/hasNaN/allFinite functions for fast-math mode.
2015-10-27 15:39:50 +01:00
Gael Guennebaud
699c33e76a
merge
2015-10-27 11:10:11 +01:00
Gael Guennebaud
8c66b6bc61
Simplify evaluator::Flags for Map<>
2015-10-27 11:06:42 +01:00
Gael Guennebaud
12f50a4697
Fix assign vectorization logic with respect to fixed outer-stride
2015-10-27 11:04:19 +01:00
Gael Guennebaud
c1e0b6dde3
merge
2015-10-27 11:02:03 +01:00
Gael Guennebaud
73f692d16b
Fix ambiguous instantiation
2015-10-27 11:01:37 +01:00
Gael Guennebaud
0fc8954282
Improve readibility of EIGEN_DEBUG_ASSIGN mode.
2015-10-27 10:38:49 +01:00
Benoit Steiner
1c8312c811
Started to add support for tensors of rank 0
2015-10-26 14:29:26 -07:00
Benoit Steiner
1f4c98abb1
Fixed compilation warning
2015-10-26 12:42:55 -07:00
Benoit Steiner
9dc236bc83
Fixed compilation warning
2015-10-26 12:41:48 -07:00
Benoit Steiner
9f721384e0
Added support for empty dimensions
2015-10-26 11:21:27 -07:00
Benoit Steiner
ded4336988
Pulled latest updates from trunk
2015-10-26 10:48:29 -07:00
Benoit Steiner
a3e144727c
Fixed compilation warning
2015-10-26 10:48:11 -07:00
Benoit Steiner
f8e7b9590d
Fixed compilation error triggered by gcc 4.7
2015-10-26 10:47:37 -07:00
Gael Guennebaud
e6f8c5c325
Add support to directly evaluate the product of two sparse matrices within a dense matrix.
2015-10-26 18:20:00 +01:00
Gael Guennebaud
a5324a131f
bug #1092 : fix iterative solver ctors for expressions as input
2015-10-26 16:16:24 +01:00
Gael Guennebaud
f93654ae16
bug #1098 : fix regression introduced when generalizing some compute() methods in changeset 7031a851d4
...
.
2015-10-26 16:00:25 +01:00
Gael Guennebaud
af2e25d482
Merged in infinitei/eigen (pull request PR-140)
...
bug #1097 Added ArpackSupport to cmake install target
2015-10-26 15:31:39 +01:00
Gael Guennebaud
4704bdc9c0
Make the IterativeLinearSolvers module compatible with MPL2-only mode
...
by defaulting to COLAMDOrdering and NaturalOrdering for ILUT and ILLT respectively.
2015-10-26 15:17:52 +01:00
Gael Guennebaud
47d44c2f37
Add missing licence header to some top header files
2015-10-26 11:46:05 +01:00
Gael Guennebaud
8a211bb1a9
bug #1088 : fix setIdenity for non-compressed sparse-matrix
2015-10-25 22:01:58 +01:00
Gael Guennebaud
ac6b2266b9
Fix SparseMatrix::insert/coeffRef for non-empty compressed matrix
2015-10-25 22:00:38 +01:00
Abhijit Kundu
0ed41bdefa
ArpackSupport was missing here also.
2015-10-16 18:21:02 -07:00
Abhijit Kundu
1127ca8586
Added ArpackSupport to cmake install target
2015-10-16 16:41:33 -07:00
Gael Guennebaud
e99279f444
merge
2015-10-16 22:12:54 +02:00
Benoit Steiner
de1e9f29f4
Updated the custom indexing code: we can now use any container that provides the [] operator to index a tensor. Added unit tests to validate the use of std::map and a few more types as valid custom index containers
2015-10-15 14:58:49 -07:00
Benoit Steiner
6585efc553
Tightened the definition of isOfNormalIndex to take into account integer types in addition to arrays of indices
...
Only compile the custom index code when EIGEN_HAS_SFINAE is defined. For the time beeing, EIGEN_HAS_SFINAE is a synonym for EIGEN_HAS_VARIADIC_TEMPLATES, but this might evolve in the future.
Moved some code around.
2015-10-14 09:31:37 -07:00
Gael Guennebaud
c0adf6e38d
Fix perm*sparse return type and nesting, and add several sanity checks for perm*sparse
2015-10-14 10:16:48 +02:00
Gael Guennebaud
527fc4bc86
Fix ambiguous instantiation issues of product_evaluator.
2015-10-14 10:14:47 +02:00
Gael Guennebaud
2598f3987e
Add a plain_object_eval<> helper returning a plain object type based on evaluator's Flags,
...
and base nested_eval on it.
2015-10-14 10:12:58 +02:00
Gael Guennebaud
b4c79ee1d3
Update custom setFromTripplets API to allow passing a functor object, and add a collapseDuplicates method to cleanup the API. Also add respective unit test
2015-10-13 11:30:41 +02:00
Gabriel Nützi
fc7478c04d
name changes 2
...
user: Gabriel Nützi <gnuetzi@gmx.ch >
branch 'default'
changed unsupported/Eigen/CXX11/src/Tensor/Tensor.h
changed unsupported/Eigen/CXX11/src/Tensor/TensorMeta.h
2015-10-09 19:10:08 +02:00
Gabriel Nützi
7b34834f64
name changes
...
user: Gabriel Nützi <gnuetzi@gmx.ch >
branch 'default'
changed unsupported/Eigen/CXX11/src/Tensor/Tensor.h
2015-10-09 19:08:14 +02:00
Gabriel Nützi
6edae2d30d
added CustomIndex capability only to Tensor and not yet to TensorBase.
...
using Sfinae and is_base_of to select correct template which converts to array<Index,NumIndices>
user: Gabriel Nützi <gnuetzi@gmx.ch >
branch 'default'
added unsupported/Eigen/CXX11/src/Tensor/TensorMetaMacros.h
added unsupported/test/cxx11_tensor_customIndex.cpp
changed unsupported/Eigen/CXX11/Tensor
changed unsupported/Eigen/CXX11/src/Tensor/Tensor.h
changed unsupported/Eigen/CXX11/src/Tensor/TensorMeta.h
changed unsupported/test/CMakeLists.txt
2015-10-09 18:52:48 +02:00
Calixte Denizet
b9d81c9150
Add a functor to setFromTriplets to handle duplicated entries
2015-10-06 13:29:41 +02:00
Gael Guennebaud
9acfc7c4f3
remove reference to internal method
2015-10-13 10:55:58 +02:00
Gael Guennebaud
a44d91a0b2
extend unit test for SparseMatrix::prune
2015-10-13 10:53:38 +02:00
Gael Guennebaud
ac22b66f1c
Fix macro issues
2015-10-13 10:18:09 +02:00
Gael Guennebaud
3e32f6b554
update mpreal.h
2015-10-13 09:58:54 +02:00
Gael Guennebaud
ea9749fd6c
Fix packetmath unit test for pdiv not being always defined
2015-10-13 09:53:46 +02:00
Gael Guennebaud
252e89b11b
bug #1086 : replace deprecated UF_long by SuiteSparse_long
2015-10-12 16:20:12 +02:00
Gael Guennebaud
6407e367ee
Add missing epxlicit keyword, and fix regression in DynamicSparseMatrix
2015-10-12 09:49:05 +02:00
Gael Guennebaud
63e29e7765
Workaround ICC issue with first_aligned
2015-10-11 22:47:28 +02:00
Gael Guennebaud
6163db814c
bug #1085 : workaround gcc default ABI issue
2015-10-10 22:38:55 +02:00
Gael Guennebaud
6536b4bad7
Implement temporary-free path for "D.nolias() ?= C + A*B". (I thought it was already implemented)
2015-10-09 15:28:09 +02:00
Gael Guennebaud
a4cc4c1e5e
Clarify note in nested_eval for evaluator creating temporaries.
2015-10-09 14:57:51 +02:00
Gael Guennebaud
ae38910693
The evalautor of Solve was missing the EvalBeforeNestingBit flag.
2015-10-09 14:57:19 +02:00
Gael Guennebaud
515ecddb97
Add unit test for nested_eval
2015-10-09 14:29:46 +02:00
Gael Guennebaud
78b8c344b5
Add unit test for CoeffReadCost
2015-10-09 14:28:48 +02:00
Gael Guennebaud
321cb56bf6
Add unit test to check nesting of complex expressions in redux()
2015-10-09 13:29:39 +02:00
Gael Guennebaud
2632b3446c
Improve documentation of TriangularView.
2015-10-09 12:10:58 +02:00
Gael Guennebaud
1429daf850
Add lvalue check for TriangularView::swap, and fix deprecated TriangularView::lazyAssign
2015-10-09 12:10:48 +02:00
Gael Guennebaud
72bd05b6d8
Cleaning in Redux.h
2015-10-09 12:07:42 +02:00
Gael Guennebaud
2c516ba38f
Remove auto references and referenced-by relation in doc.
2015-10-09 12:07:06 +02:00
Gael Guennebaud
041e038fef
Remove dead code in selfadjoint_matrix_vector_product
2015-10-09 10:42:14 +02:00
Gael Guennebaud
c2d68b984f
Optimize a bit complex selfadjoint * vector product.
2015-10-09 10:34:58 +02:00
Gael Guennebaud
1932a24760
Simplify EIGEN_DENSE_PUBLIC_INTERFACE
2015-10-09 10:21:54 +02:00
Gael Guennebaud
186ec1437c
Cleanup EIGEN_SPARSE_PUBLIC_INTERFACE, it is now a simple alias to EIGEN_GENERIC_PUBLIC_INTERFACE
2015-10-08 22:06:49 +02:00
Gael Guennebaud
c9718514f5
Fix nesting sub-expression in outer-products
2015-10-08 21:41:53 +02:00
Gael Guennebaud
4140ee039d
Fix propagation of AssumeAliasing for expression as: "scalar * (A*B)"
2015-10-08 21:41:27 +02:00
Gael Guennebaud
d866279364
Clean a bit the implementation of inverse permutations
2015-10-08 18:36:39 +02:00
Gael Guennebaud
8d00a953af
Fix a nesting issue in some matrix-vector cases.
2015-10-08 17:36:57 +02:00
Gael Guennebaud
dd934ad057
Re-enable vectorization of LinSpaced, plus some cleaning
2015-10-08 17:27:01 +02:00
Gael Guennebaud
f6f6f50272
Clean evaluator<EvalToTemp>
2015-10-08 16:34:33 +02:00
Gael Guennebaud
67bfba07fd
Fix some CUDA issues
2015-10-08 16:30:28 +02:00
Gael Guennebaud
412c049ba4
Fix a warning
2015-10-08 16:27:54 +02:00
Gael Guennebaud
aa6b1aebf3
Properly implement PartialReduxExpr on top of evaluators, and fix multiple evaluation of nested expression
2015-10-08 15:57:05 +02:00
Gael Guennebaud
5cc7251188
Some cleaning in evaluators
2015-10-08 15:22:04 +02:00
Gael Guennebaud
e30bc89190
Add missing include of std vector
2015-10-08 15:20:50 +02:00
Gael Guennebaud
5d7ebfb275
Update sparse solver list to make it more complete
2015-10-08 11:33:17 +02:00
Gael Guennebaud
1b148d9e2e
Move IncompleteCholesky to official modules
2015-10-08 11:32:46 +02:00
Gael Guennebaud
632e7705b1
Improve doc of IncompleteCholesky
2015-10-08 10:54:36 +02:00
Gael Guennebaud
64242b8bf3
Doc: add link to doc of sparse solver concept
2015-10-08 10:50:39 +02:00
Gael Guennebaud
131db3c552
Fix return by value versus ref typo in IncompleteCholesky
2015-10-07 16:37:46 +02:00
Gael Guennebaud
13294b5152
Unify gemm and lazy_gemm benchmarks
2015-10-07 16:06:48 +02:00
Gael Guennebaud
247259f805
Add a perfromance regression benchmark for lazyProduct
2015-10-07 15:51:06 +02:00
Gael Guennebaud
c6eb17cbe9
Add helper routines to help bypassing some compiler otpimization when benchmarking
2015-10-07 15:50:42 +02:00
Gael Guennebaud
f047ecc36a
_mm_hadd_epi32 is for SSSE3 only (and not SSE3)
2015-10-07 15:48:35 +02:00
Gael Guennebaud
aba1eda71e
Help clang to inline some functions, thus fixing some regressions
2015-10-07 15:44:12 +02:00
Gael Guennebaud
41cc1f9033
Remove debuging prod() and lazyprod() function, plus some cleaning in noalias assignment
2015-10-07 15:41:22 +02:00
Gael Guennebaud
ca0dd7ae26
Fix implicit cast in unit test
2015-10-07 15:36:12 +02:00
Gael Guennebaud
8bb51a87f7
Re-enable some invalid scalar type conversion checks by disabling explicit vectorization
2015-10-06 17:24:01 +02:00
Gael Guennebaud
27a94299aa
Add sparse vector to Ref<SparseMatrix> conversion unit tests, and improve output of sparse_ref unit test in case of failure.
2015-10-06 17:23:11 +02:00
Gael Guennebaud
2e0ece7b66
Fix wrong casting syntax
2015-10-06 17:22:12 +02:00
Gael Guennebaud
69a7897e72
Fix storage index type in empty permutations
2015-10-06 17:21:24 +02:00
Gael Guennebaud
26cde4db3c
Define Permutation*<>::Scalar to 'void', re-enable scalar type compatibility check in assignment while relaxing this test for void types.
2015-10-06 17:18:06 +02:00
Gael Guennebaud
fb51bab272
Some cleaning
2015-10-06 17:14:56 +02:00
Gael Guennebaud
2c676ddb40
Handle various TODOs in SSE vectorization (remove splitted storeu, enable SSE3 integer vectorization, plus minor tweaks)
2015-10-06 15:43:27 +02:00
Gael Guennebaud
2d287a4898
Fix Ref<SparseMatrix> for Transpose<SparseVector>
2015-10-06 15:09:04 +02:00
Gael Guennebaud
752a0e5339
bug #1076 : fix scaling in IncompleteCholesky, improve doc, add read-only access to the different factors, remove debugging code.
2015-10-06 13:25:45 +02:00
Gael Guennebaud
f25bdc707f
Optimise assignment into a Block<SparseMatrix> by using Ref and avoiding useless updates in non-compressed mode. This make row-by-row filling of a row-major sparse matrix very efficient.
2015-10-06 11:59:08 +02:00
Gael Guennebaud
945b80c83e
Optimize Ref<SparseMatrix> by removing useless default initialisation of SparseMapBase and SparseMatrix
2015-10-06 11:57:03 +02:00
Gael Guennebaud
9a070638de
Enable to view a SparseVector as a Ref<SparseMatrix>
2015-10-06 11:53:19 +02:00
Gael Guennebaud
1b43860bc1
Make SparseVector derive from SparseCompressedBase, thus improving compatibility between sparse vectors and matrices
2015-10-06 11:41:03 +02:00
Gael Guennebaud
6100d1ae64
Improve counting of sparse temporaries
2015-10-06 11:32:02 +02:00
Gael Guennebaud
1879917d35
Propagate cmake generator
2015-10-05 16:18:22 +02:00
Gael Guennebaud
deb261f64b
Make abs2 compatible with custom complex types
2015-10-02 10:33:25 +02:00
nnyby
ccc7b0ffea
[doc] grammar fix: "linearly space" -> "linearly spaced"
2015-10-01 23:43:06 +00:00
Gael Guennebaud
75a60d3ac0
bug #1075 : fix AlignedBox::sample for runtime dimension
2015-09-30 11:44:02 +02:00
Gael Guennebaud
9136b95219
Merged in doug_kwan/eigen (pull request PR-137)
...
Specified signedness of char type in test
2015-09-30 11:37:04 +02:00
Gael Guennebaud
781e8c38bd
merge
2015-09-29 11:12:43 +02:00
Gael Guennebaud
b2b8c1d41e
Fix performance regression in sparse * dense product where "sparse" is an expression
2015-09-29 11:11:40 +02:00
Doug Kwan
239c9946cd
Specified signedness of char type in test so that test passes
...
consistently on different targets.
2015-09-28 14:26:10 -07:00
Benoit Steiner
d46bacb6bb
Call numext::mini instead of std::min in several places.
2015-09-28 10:40:41 -07:00
Gael Guennebaud
ceafed519f
Add support for permutation * homogenous
2015-09-28 16:56:11 +02:00
Gael Guennebaud
ddb5650530
bug #1070 : propagate last three Matrix template arguments for NumTraits<AutoDiffScalar<>>::Real
2015-09-28 15:07:03 +02:00
Gael Guennebaud
02e940fc9f
bug #1071 : improve doc on lpNorm and add example for some operator norms
2015-09-28 11:55:36 +02:00
Gael Guennebaud
8c1ee3629f
Add support for row/col-wise lpNorm()
2015-09-28 11:36:00 +02:00
Gael Guennebaud
75861f6650
bug #1069 : fix AVX support on MSVC (use of non portable C-style cast)
2015-09-28 10:08:26 +02:00
Tal Hadad
5e0a178df2
Initial fork of unsupported module EulerAngles.
2015-09-27 16:51:24 +03:00
Gael Guennebaud
d16797cfc0
Fix bug #1067 : naming conflict
2015-09-19 21:44:14 +02:00
Benoit Steiner
13aee4463e
Cleaned up a test
2015-09-18 09:42:08 -07:00
Benoit Steiner
58a6453d48
Fixed compilation warning
2015-09-17 10:18:49 -07:00
Benoit Steiner
31afdcb4c2
Fix return type for TensorEvaluator<TensorSlicingOp>::data
2015-09-17 09:40:21 -07:00
Gael Guennebaud
9d993c709b
Fix typo in Vectowise::any()
2015-09-16 22:31:19 +02:00
Christoph Hertzberg
43ba07d4d7
Merged in daalpa/eigen/daalpa/removed-documentation-that-did-not-match-1442148941751 (pull request PR-136)
...
Removed documentation that did not match the member function DenseBase::outerSize()
2015-09-13 16:35:32 +02:00
daalpa
fab96f2ff3
Removed documentation that did not match the member function DenseBase::outerSize()
2015-09-13 12:55:57 +00:00
Christoph Hertzberg
d6f762d955
Fixed cuda code: EIGEN_DEVICE_FUNC must come after template<...>
2015-09-10 11:46:27 +02:00
Gael Guennebaud
680d318352
Add unit tests for bug #981 : valid and invalid usage of ternary operator
2015-09-09 11:38:25 +02:00
Benoit Steiner
84e0c27b61
Fixed a compilation warning
2015-09-08 17:05:35 -07:00
Benoit Steiner
05f2f94f2b
Fixed a compilation warning
2015-09-08 17:04:03 -07:00
Benoit Steiner
98f8f0db9a
Added support for predux_mul for CUDA devices
2015-09-08 15:37:25 -07:00
Christoph Hertzberg
e3f69eb60d
Fixed minor regression caused by 7031a851d4
2015-09-08 10:53:10 +02:00
Gael Guennebaud
5bf971e5b8
MKL is now free of charge for opensource
2015-09-07 11:23:55 +02:00
Gael Guennebaud
73a86cfcd3
Add EIGEN_QUATERNION_PLUGIN
2015-09-07 11:12:30 +02:00
Gael Guennebaud
7fad309631
Fix link and code formating
2015-09-07 11:08:41 +02:00
Gael Guennebaud
7031a851d4
Generalize matrix ctor and compute() method of dense decomposition to 1) limit temporaries, 2) forward expressions to nested decompositions, 3) fix ambiguous ctor instanciation for square decomposition
2015-09-07 10:42:04 +02:00
Gael Guennebaud
1702fcb72e
Added tag 3.3-alpha1 for changeset f9303cc7c5
2015-09-04 17:27:20 +02:00
Gael Guennebaud
f9303cc7c5
bump to 3.3-alpha1
2015-09-04 17:26:36 +02:00
Gael Guennebaud
b20a55a608
Workaround wrong instanciation made by VS2010
2015-09-04 15:25:58 +02:00
Gael Guennebaud
ed265258e4
Fix returned index type of inner iterators of sparse blocks.
2015-09-03 15:07:35 +02:00
Gael Guennebaud
a835dfca73
InnerIterator::index() should really return a StorageIndex
2015-09-03 14:53:51 +02:00
Gael Guennebaud
941a99ac1a
Add a few missing EIGEN_DEVICE_FUNC declarations
2015-09-03 14:14:54 +02:00
Gael Guennebaud
d91db41a31
Fix documentation example
2015-09-03 14:14:14 +02:00
Gael Guennebaud
3942db9d7c
Use inline versus static free functions.
2015-09-03 13:42:54 +02:00
Sergiu Dotenco
85afb61417
use explicit Scalar types for AngleAxis initialization
...
(grafted from 89a222ce50
)
2015-08-28 22:20:15 +02:00
Benoit Steiner
56983f6d43
Fixed compilation warning
2015-10-23 12:03:42 -07:00
Benoit Steiner
57857775b4
Added support for arrays of size 0
2015-10-23 10:20:51 -07:00
Benoit Steiner
c40c2ceb27
Reordered the code of fft constructor to prevent compilation warnings
2015-10-23 09:38:19 -07:00
Benoit Steiner
a586fdaa91
Reworked the tensor contraction mapper code to make it compile on Android
2015-10-23 09:33:41 -07:00
Benoit Steiner
29c3b7513e
Pulled latest updates from trunk
2015-10-23 09:16:14 -07:00
Benoit Steiner
9ea39ce13c
Refined the #ifdef __CUDACC__ guard to ensure that when trying to compile gpu code with a non cuda compiler results in a linking error instead of bogus code.
2015-10-23 09:15:34 -07:00
Gael Guennebaud
c244081490
disable usage of INTMAX_T
2015-10-23 14:48:54 +02:00
Gael Guennebaud
0905ed5390
remove useless cstdint header
2015-10-23 14:41:25 +02:00
Gael Guennebaud
54b23cce16
Switch to MPL2
2015-10-23 10:36:33 +02:00
Benoit Steiner
ac99b49249
Added missing glue logic
2015-10-22 16:54:21 -07:00
Benoit Steiner
2dd9446613
Added mapping between a specific device and the corresponding packet type
2015-10-22 16:53:36 -07:00
Benoit Steiner
2495e2479f
Added tests for the fft code
2015-10-22 16:52:55 -07:00
Benoit Steiner
a147c62998
Added support for fourier transforms (code courtesy of thucjw@gmail.com)
2015-10-22 16:51:30 -07:00
Gael Guennebaud
71b473aab1
Remove invalid typename keyword
2015-10-22 21:58:18 +02:00
Gael Guennebaud
ebc1af1683
merge
2015-10-22 21:47:47 +02:00
Benoit Steiner
825146c8fd
Fixed incorrect expected value
2015-10-22 11:56:00 -07:00
Benoit Steiner
4cf7da63de
Added a constructor to simplify the construction of tensormap from tensor
2015-10-22 11:48:02 -07:00
Gael Guennebaud
0eb46508e2
Avoid any openmp calls if multi-threading is explicitely disabled at runtime.
2015-10-22 16:30:28 +02:00
Gael Guennebaud
6df8e99470
bug #1089 : add a warning when using a MatrixBase method which is implemented within another module by declaring them inline.
2015-10-22 16:10:28 +02:00
Gael Guennebaud
e78bc111f1
bug #1090 : fix a shortcoming in redux logic for which slice-vectorization plus unrolling might happen.
2015-10-21 20:58:33 +02:00
Benoit Steiner
b178cc3479
Added some syntactic sugar to make it simpler to compare a tensor to a scalar.
2015-10-21 11:28:28 -07:00
Gael Guennebaud
5ca2e25967
merge
2015-10-21 13:49:13 +02:00
Gael Guennebaud
8afd0ce955
add FIXME
2015-10-21 13:48:15 +02:00
Gael Guennebaud
8961265889
bug #1064 : add support for Ref<SparseVector>
2015-10-21 09:47:43 +02:00
Benoit Steiner
0af63493fd
Disable SFINAE for versions of gcc older than 4.8
2015-10-20 11:53:30 -07:00
Benoit Steiner
73b8e719ae
Removed bogus assertion
2015-10-20 11:42:34 -07:00
Benoit Steiner
eaf4b98180
Added support for boolean reductions (ie 'and' & 'or' reductions)
2015-10-20 11:41:22 -07:00
Benoit Steiner
f5c1587e4e
Fixed a bug in the tensor conversion op
2015-10-20 11:37:44 -07:00
Gael Guennebaud
fe630c9873
Improve numerical accuracy in LLT and triangular solve by using true scalar divisions (instead of x * (1/y))
2015-10-18 22:15:01 +02:00
Doug Kwan
5c9ee73eb9
Implement plog and pexp for AltiVec.
2015-07-30 11:12:42 -07:00
Gael Guennebaud
5a1cc5d24c
bug #1053 : fix SuplerLU::solve with EIGEN_DEFAULT_TO_ROW_MAJOR
2015-09-03 11:25:36 +02:00
Gael Guennebaud
2795ffd6a0
Fix Index vs StorageIndex naming convention
2015-09-03 11:18:27 +02:00
Gael Guennebaud
ef2b54f422
Fix AMD ordering when a column has only one off-diagonal non-zero (also fix bug #1045 )
2015-09-03 11:04:06 +02:00
Christoph Hertzberg
5ad7981f73
Use full packet size for Dynamic-sized objects (otherwise, the unalignedcount unit test fails with AVX enabled)
2015-09-02 22:51:43 +02:00
Gael Guennebaud
aa768add0b
Since there is no reason for evaluators to be nested by reference, let's remove the evaluator<>::nestedType indirection.
2015-09-02 22:10:39 +02:00
Gael Guennebaud
51455824ea
Fix AlignedVector3 wrt previous change
2015-09-02 21:51:58 +02:00
Gael Guennebaud
f8976fdbe0
Make evaluators non-copyable. This guarantee that evaluators storing temporaries do not introduce unwanted copy overhead.
2015-09-02 21:39:49 +02:00
Gael Guennebaud
92b9f0e102
Cleaning pass on evaluators: remove the useless and error prone evaluator<>::type indirection.
2015-09-02 21:38:40 +02:00
Gael Guennebaud
cda55ab245
Fix compilation of cuda unit test
2015-09-02 16:59:07 +02:00
Gael Guennebaud
14458ec0a0
Fix packetmath unit test for exp and log
2015-09-02 15:47:58 +02:00
Gael Guennebaud
6b99afa5ae
Fix LSCG::solve with a sparse destination.
2015-09-02 15:34:03 +02:00
Gael Guennebaud
b5ad3d2cf7
Remove deprecated Flagged expression.
2015-09-02 14:53:50 +02:00
Gael Guennebaud
6522c3a6f0
Add regression test for bug #817
2015-09-02 13:16:03 +02:00
Gael Guennebaud
be5e2ecc21
bug #505 : add more examples of bad and correct usages of auto and eval().
2015-09-02 13:04:30 +02:00
Gael Guennebaud
aba8c9ee17
Add a documentation page for common pitfalls
2015-09-02 11:23:55 +02:00
Gael Guennebaud
a75616887e
bug #1057 : fix a declaration missmatch with MSVC
2015-09-02 09:31:32 +02:00
Gael Guennebaud
280f93ff65
Fix FullPivLU::image documentation
2015-09-02 09:19:27 +02:00
Gael Guennebaud
6059188f9d
Simplify implementation of the evaluation's iterator of Sparse*Diagonal products to help the compiler to generate better code.
2015-09-01 22:34:30 +02:00
Gael Guennebaud
0b2412df50
Remove duplicated temporary in Sparse to Sparse assignment
2015-09-01 22:31:30 +02:00
Gael Guennebaud
9001f4a46b
Add missing specialization of evaluator of sub-sparse-matrices that can be seen as a SparseCompressedBase. This changeset enable faster iterator for such expressions.
2015-09-01 22:29:17 +02:00
Benoit Steiner
f41831e445
Added support for argmax/argmin
2015-08-31 08:18:53 -07:00
Benoit Steiner
2ab603316a
Use numext::mini/numext::maxi instead of std::min/std::max in the tensor code
2015-08-28 08:14:15 -07:00
Benoit Steiner
2ed1495eec
nvcc doesn't support std::min or std::max on GPU. Use our own custom implementation instead
2015-08-27 16:59:55 -07:00
Sergiu Dotenco
d4c24eb016
fixed Quaternion identity initialization for non-implicitly convertible types
2015-08-20 20:55:37 +02:00
Christoph Hertzberg
78358a7241
Fixed broken commit a09cfe650f
...
. Missing } and unprotected min/max calls and definitions.
2015-08-22 15:03:16 +02:00
Benoit Steiner
a09cfe650f
std::numeric_limits doesn't work reliably on CUDA devices. Use our own definition of numeric_limit<T>::max() and numeric_limit<T>::min() instead of the stl ones.
2015-08-21 16:01:40 -07:00
Christoph Hertzberg
e5c78d85c8
bug #1043 : Avoid integer conversion sign warning
2015-08-19 21:50:21 +02:00
Christoph Hertzberg
1bdd06a199
Fix some trivial warnings
2015-08-19 21:38:18 +02:00
Christoph Hertzberg
0721690dbb
Use standard include syntax in Tensor module (<> for include-path and "" for relative path)
2015-08-18 14:34:00 +02:00
Christoph Hertzberg
8097d8d028
surpress some warnings
2015-08-17 21:50:52 +02:00
Christoph Hertzberg
d2e0927127
Define EIGEN_MAX_STATIC_ALIGN_BYTES to 0 for architectures that don't require stack alignment
2015-08-17 16:44:52 +02:00
Gael Guennebaud
dc2c103b3b
merge
2015-08-16 14:22:02 +02:00
Christoph Hertzberg
d6a4805fdf
Protect further isnan/isfinite/isinf calls
2015-08-16 14:00:02 +02:00
Christoph Hertzberg
a40f6ab276
Merged in ITimer/eigen (pull request PR-133)
...
[Doc] Fix a spelling error in TopicMultithreading.dox
2015-08-14 17:46:57 +02:00
Christoph Hertzberg
61e0977e10
Protect all calls to isnan, isinf and isfinite with parentheses.
2015-08-14 17:32:34 +02:00
Christoph Hertzberg
712e2fed17
bug #829 : Introduce macro EIGEN_HAS_CXX11_CONTAINERS and do not specialize std-containers if it is enabled.
2015-08-14 16:09:48 +02:00
Christoph Hertzberg
a5d1bb2be8
bug #1054 : Use set(EIGEN_CXX_FLAG_VERSION "/version") only for Intel compilers on Windows.
...
Also removed code calling `head -n1` and always use integrated REGEX functionality.
2015-08-14 15:30:59 +02:00
ITimer
93635cafee
Fixed a spelling error
2015-08-10 15:11:10 +08:00
Gael Guennebaud
23aab82c0c
merge
2015-08-09 21:24:20 +02:00
Gael Guennebaud
0d5e673baa
Fix Tensor module wrt nullary functor recent change
2015-08-09 21:20:24 +02:00
Christoph Hertzberg
cac6b23033
bug #1053 : SparseLU failed with EIGEN_DEFAULT_TO_ROW_MAJOR
2015-08-07 23:10:56 +02:00
Gael Guennebaud
febcce34f1
Enable vectorization with half-packets
2015-08-07 20:05:31 +02:00
Gael Guennebaud
6245591349
Fix prototype of plset and generalize linspace functor.
2015-08-07 19:27:59 +02:00
Gael Guennebaud
60e4260d0d
Some functors were not generic wrt packet-type.
2015-08-07 17:41:39 +02:00
Gael Guennebaud
e68c7b8368
Include SSE packetmath when AVX is enabled, and enable AVX's sine function only in fast-math mode (as SSE)
2015-08-07 17:40:39 +02:00
Gael Guennebaud
65bfa5fce7
Allow to use arbitrary packet-types during evaluation.
...
This is implemented by adding a PacketType template parameter to packet and writePacket members of evaluator<>.
2015-08-07 12:01:39 +02:00
Gael Guennebaud
3602926ed5
Mark ALignedBit as deprecated.
2015-08-07 10:45:02 +02:00
Gael Guennebaud
ce57dbd937
Let unpacket_traits<> exposes the required alignment and make use of it everywhere
2015-08-07 10:44:01 +02:00
Gael Guennebaud
2afdef6a54
Generalize first_aligned to take the requested alignment as a template parameter, and add a first_default_aligned variante calling first_aligned with the requirement of the largest packet for the given scalar type.
2015-08-06 17:52:01 +02:00
Gael Guennebaud
1f5024332e
First part of a big refactoring of alignment control to enable the handling of arbitrarily aligned buffers. It includes:
...
- AlignedBit flag is deprecated. Alignment is now specified by the evaluator through the 'Alignment' enum, e.g., evaluator<Xpr>::Alignment. Its value is in Bytes.
- Add several enums to specify alignment: Aligned8, Aligned16, Aligned32, Aligned64, Aligned128. AlignedMax corresponds to EIGEN_MAX_ALIGN_BYTES. Such enums are used to define the above Alignment value, and as the 'Options' template parameter of Map<> and Ref<>.
- The Aligned enum is now deprecated. It is now an alias for Aligned16.
- Currently, traits<Matrix<>>, traits<Array<>>, traits<Ref<>>, traits<Map<>>, and traits<Block<>> also expose the Alignment enum.
2015-08-06 15:31:07 +02:00
Gael Guennebaud
65186ef18d
Fix logic in compute_default_alignment, extend it to Dynamic size, and move it to XprHelper.h file.
2015-08-06 14:07:59 +02:00
Gael Guennebaud
becd89df29
Enable runtime stack alignment in gemm_blocking_space.
2015-08-06 14:00:26 +02:00
Gael Guennebaud
d4f5efc51a
Add a EIGEN_DEFAULT_ALIGN_BYTES macro defining default alignment for alloca and aligned_malloc.
...
It is defined as the max of EIGEN_IDEAL_MAX_ALIGN_BYTES and EIGEN_MAX_ALIGN_BYTES
2015-08-06 13:56:53 +02:00
Gael Guennebaud
7e0d7a76b8
Remove dense nested loops in IncompleteCholesky
2015-08-04 18:01:38 +02:00
Gael Guennebaud
e31fc50280
Numerous fixes for IncompleteCholesky. Still have to make it fully exploit the sparse structure of the L factor, and improve robustness to illconditionned problems.
2015-08-04 16:16:02 +02:00
Gael Guennebaud
9a4713e505
Add a unit test for IncompleteCholesky
2015-08-04 16:14:06 +02:00
Gael Guennebaud
506964fc29
Propagate precondition info to the iterative solver.
2015-08-04 16:13:34 +02:00
Gael Guennebaud
db0f5c9d90
Fix conversion warning
2015-08-04 16:12:44 +02:00
Gael Guennebaud
b986c147cd
Fix ForceNonZeroDiag for complexes
2015-08-04 16:12:16 +02:00
Benoit Steiner
cbce0e3b12
Fixed compilation warning
2015-08-03 21:52:29 -07:00
Benoit Steiner
a5dc49e7e8
Fixed 2 compilation warnings generated by llvm
2015-07-29 15:06:08 -07:00
Benoit Steiner
e1d28b7ea7
Added a test for shuffling
2015-07-29 15:01:21 -07:00
Benoit Steiner
0570594f2c
Fixed a few compilation warnings triggered by clang
2015-07-29 11:48:38 -07:00
Benoit Steiner
099597406f
Simplified and generalized the DividerTraits code
2015-07-29 10:02:42 -07:00
Gael Guennebaud
6db3a557f4
Add missing specialization of struct DividerTraits<long>
2015-07-29 11:38:53 +02:00
Gael Guennebaud
aec4814370
Many files were missing in previous changeset.
2015-07-29 11:11:23 +02:00
Gael Guennebaud
f7d5b9323d
typo
2015-07-29 11:08:49 +02:00
Gael Guennebaud
175ed636ea
bug #973 : update macro-level control of alignement by introducing user-controllable EIGEN_MAX_ALIGN_BYTES and EIGEN_MAX_STATIC_ALIGN_BYTES macros. This changeset also removes EIGEN_ALIGN (replaced by EIGEN_MAX_ALIGN_BYTES>0), EIGEN_ALIGN_STATICALLY (replaced by EIGEN_MAX_STATIC_ALIGN_BYTES>0), EIGEN_USER_ALIGN*, EIGEN_ALIGN_DEFAULT (replaced by EIGEN_ALIGN_MAX).
2015-07-29 10:22:25 +02:00
Gael Guennebaud
76874b128e
bug #1047 : document the structure layout of class Matrix
2015-07-29 10:21:28 +02:00
Gael Guennebaud
41e1f3498c
bug #1048 : fix unused variable warning
2015-07-28 22:59:50 +02:00
Benoit Steiner
b9db19aec4
Pulled latest updates from trunk.
2015-07-27 09:39:57 -07:00
Benoit Steiner
f84417d97b
Removed an incorrect assertion.
2015-07-27 09:25:22 -07:00
Benoit Steiner
1a30a8e7a2
Merged in godeffroy/eigen_tensor_generalized_contraction (pull request PR-130)
...
Allowed tensor contraction operation with an empty array of dimension pairs, which performs a tensor product.
2015-07-27 09:19:35 -07:00
Christoph Hertzberg
a44d022caf
bug #792 : SparseLU::factorize failed for structurally rank deficient matrices
2015-07-26 20:30:30 +02:00
Godeffroy Valet
2195822df6
Allowed tensor contraction operation with an empty array of dimension pairs, which performs a tensor product.
2015-07-25 11:58:36 +02:00
Benoit Steiner
f6282e451a
Fixed a typo in an assertion.
2015-07-24 17:35:47 -07:00
Benoit Steiner
4b3052c54d
Pulled latest update from trunk
2015-07-23 08:47:33 -07:00
Benoit Steiner
a446020b78
Reenable 2 tests previously disabled by mistake
2015-07-23 08:47:00 -07:00
Christoph Hertzberg
3d951df223
Re-enabled unit tests which were disabled in commit 4200bdec24
...
.
2015-07-23 10:55:03 +02:00
Benoit Steiner
6d6e6d0b88
Define EIGEN_VECTORIZE_AVX2 and EIGEN_VECTORIZE_FMA when the corresponding instructions can be used by the compiler
2015-07-22 18:22:16 -07:00
Benoit Steiner
ce65c2922a
Pulled latest updates from trunk
2015-07-22 18:12:16 -07:00
Benoit Steiner
4200bdec24
Extended the range of value inputs for TensorIntDiv to support tensors with more than 4 billion elements.
2015-07-22 17:02:30 -07:00
Gael Guennebaud
3b0ad02c10
Remove wrongly pushed debugging statements
2015-07-22 14:33:57 +02:00
Jonas Adler
815fa0dbf6
Fixed some compiler bugs in NVCC, now compiles with CUDA.
...
(chtz: Manually joined sevaral commits to keep the history clean)
2015-07-22 12:29:18 +02:00
Benoit Steiner
d259b719d1
Made sure that the use const expressions are not enabled when compiling with nvcc even when gcc 4.9 is used as the host compiler.
2015-07-21 17:35:58 -07:00
Benoit Steiner
0dda72316f
The eigen_check macro doesn't exist anymore: use assert instead
2015-07-21 17:34:15 -07:00
Gael Guennebaud
586d10f7e0
Fix compilation of tri(sparse) * dense with OpenMP
2015-07-21 22:52:21 +02:00
Gael Guennebaud
d3e5db9a80
add regression unit test for previous changeset
2015-07-21 22:23:17 +02:00
Valentin Roussellet
5e635f9ca1
AlignedVector3 accepts implicit conversions from more operators.
2015-07-21 16:42:52 +00:00
Gael Guennebaud
45ee14a13a
Fix output of relative error, and add more support for long double
2015-07-21 22:22:12 +02:00
Gael Guennebaud
87f3e533f5
bug #1036 : implement verify_is_approx_upto_permutation through a combinatorial search.
...
The previous implementation was subject to numerical cancellation issues.
2015-07-20 15:34:06 +02:00
Gael Guennebaud
ab8b497a7e
Add pow(scalar,array) in quick ref
2015-07-20 13:59:21 +02:00
Gael Guennebaud
6544b49e59
Generalize pow(x,e) such that x and e can be a different expression type or a scalar for either x or e. Add x.pow(e) with e an array expression.
2015-07-20 13:57:55 +02:00
Gael Guennebaud
2d93060291
Fix trivial warnings.
2015-07-20 13:55:48 +02:00
Gael Guennebaud
c11971de37
Fix compilation of isnan(complex)
2015-07-20 12:56:01 +02:00
Gael Guennebaud
88e352adac
Add support for replicate in CUDA
2015-07-20 10:53:03 +02:00
Benoit Steiner
6799c26cd6
Fixed a typo in a test and a compilation warning
2015-07-17 16:50:47 -07:00
Benoit Steiner
7a39439904
Rewrote Eigen::dimensions_match to prevent a static assertion when the rank of the tensors is different.
2015-07-17 16:46:30 -07:00
Benoit Steiner
e94f9eb637
Fixed a const correctness issue in TensorLayoutSwap
2015-07-17 15:44:26 -07:00
Benoit Steiner
513e357b48
Added support for prefetching on cuda devices
2015-07-17 15:35:16 -07:00
Benoit Steiner
943035e5bd
Pulled latest updates from trunk
2015-07-17 09:42:45 -07:00
Benoit Steiner
06a22ca5bd
Added support for sigmoid function to the tensor module
2015-07-17 09:29:00 -07:00
Nicolas Mellado
3275eddc24
Add const getters for LM parameters
2015-07-17 09:11:49 +02:00
Benoit Steiner
979b73cebf
Fixed a typo in Macro.h
2015-07-16 14:17:50 -07:00
Benoit Steiner
a5ec25f11c
Use the new EIGEN_HAS_INDEX_LIST define to enable the cxx11_tensor_index_list tests
2015-07-16 13:16:08 -07:00
Benoit Steiner
7a243959b4
Define EIGEN_HAS_INDEX_LIST whenever the class is defined. This makes it easier to support compilers that are cxx11 compliant and compilers that aren't.
2015-07-16 13:14:18 -07:00
Benoit Steiner
b756f6af5e
Added missing APIs to the Eigen::Sizes class
2015-07-16 12:14:18 -07:00
Benoit Steiner
05787f8367
Added support for tensor inflation.
2015-07-16 09:04:05 -07:00
Benoit Steiner
b900fe47d5
Avoid relying on a default value for the Vectorizable template parameter of the EvalRange functor
2015-07-15 17:17:04 -07:00
Benoit Steiner
4b3d697e12
Fixed compilation error in a cuda test
2015-07-15 17:14:24 -07:00
Benoit Steiner
8315e025e1
Updated the cuda tests to use the new GpuDevice constructor
2015-07-15 12:39:26 -07:00
Benoit Steiner
e892524efe
Added support for multi gpu configuration to the GpuDevice class
2015-07-15 12:38:34 -07:00
Gael Guennebaud
f5aa640862
Clean some previous changes and more cuda fixes
2015-07-15 10:57:55 +02:00
Nicolas Mellado
7cecd39a84
Merged eigen/eigen into default
2015-07-15 10:15:54 +02:00
Nicolas Mellado
592ee2a4b4
Add missing EIGEN_DEVICE_FUNC
2015-07-15 10:14:52 +02:00
Gael Guennebaud
6527dbb9f8
Merged in emartin/eigen (pull request PR-123)
...
Modify GEMM to handle m=0, n=0, and k=0 cases.
2015-07-13 23:58:30 +02:00
Benoit Steiner
b80036abec
Enabled the construction of a fixed sized tensor directly from an expression.
2015-07-13 11:16:37 -07:00
Benoit Steiner
3912ca0d53
Fixed a bug in the integer division code that caused some large numerators to be incorrectly handled
2015-07-13 11:14:59 -07:00
Christoph Hertzberg
ea87561564
bug #1039 : Redefining EIGEN_DEFAULT_DENSE_INDEX_TYPE may lead to errors
2015-07-13 16:08:25 +02:00
Gael Guennebaud
b8df8815f4
Fix operator<<(ostream,AlignedVector3)
2015-07-13 13:55:59 +02:00
Eric Martin
002c2923c2
Modify GEMM to handle m=0, n=0, and k=0 cases.
2015-07-11 21:46:13 -05:00
Nicolas Mellado
dbb3e2cf8a
Cleaning
2015-07-11 18:15:31 +00:00
Nicolas Mellado
0d09845562
Revert files to remove EIGEN_USING_NUMEXT_MATH
2015-07-11 20:11:36 +02:00
Nicolas Mellado
20b96025fd
Replace double constants by Scalar constants
2015-07-11 20:02:30 +02:00
Nicolas Mellado
1dd6a329e8
Cuda compatibility: remove explicit call to std math functions
2015-07-11 19:40:15 +02:00
Nicolas Mellado
bc40eb745d
Merged eigen/eigen into default
2015-07-11 19:33:43 +02:00
Benoit Steiner
e6297741c9
Added support for generation of random complex numbers on CUDA devices
2015-07-07 17:40:49 -07:00
Benoit Steiner
6de6fa9483
Use NumTraits<T>::RequireInitialization instead of internal::is_arithmetic<T>::value to check whether it's possible to bypass the type constructor in the tensor code.
2015-07-07 15:23:56 -07:00
Benoit Steiner
7b7df7b6b8
Updated internal::is_arithmetic::value to be true for complex numbers
2015-07-07 12:57:35 -07:00
Benoit Steiner
6e55284e51
Pulled latest changes from trunk
2015-07-07 08:54:37 -07:00
Benoit Steiner
a93af65938
Improved and cleaned up the 2d patch extraction code
2015-07-07 08:52:14 -07:00
Gael Guennebaud
7fa6fe8d8c
typo
2015-07-07 17:47:24 +02:00
Gael Guennebaud
fa17358c4b
Rotation2D: fix slerp to take the shortest path, and add convenient method to get the angle in [-pi,pi] or [0,pi]
2015-07-07 17:27:12 +02:00
Benoit Steiner
3f2101b03b
Use numext::swap instead of std::swap
2015-07-06 17:02:29 -07:00
Benoit Steiner
0485a2468d
use Eigen smart_copy instead of std::copy
2015-07-06 17:01:51 -07:00
Benoit Steiner
ebdacfc5ea
Fixed a compilation warning generated by clang
2015-07-06 15:03:11 -07:00
Benoit Steiner
81f9e968fd
Only attempt to use the texture path on GPUs when it's supported by CUDA
2015-07-06 13:32:38 -07:00
Nicolas Mellado
66b30728f8
Merged eigen/eigen into default
2015-07-06 20:58:31 +02:00
Nicolas Mellado
5359e5cdb2
Protect against compilation errors with nvcc and numext/complex.
...
Disable functions explicitely involving std::complex when compiling with nvcc.
Improve code compatilibity using the new macro EIGEN_USING_NUMEXT_MATH (same spirit than EIGEN_USING_STD_MATH but for numext functions)
2015-07-06 20:55:01 +02:00
Benoit Steiner
864318e508
Misc small fixes to the tensor slicing code.
2015-07-06 11:45:56 -07:00
Gael Guennebaud
c2019dfeb3
Merged in Emie/eigen (pull request PR-121)
...
typo correction in mathFunction
2015-07-06 16:48:54 +02:00
Emilie Guy
ea7113dd0c
typo correction in mathFunction
2015-07-06 14:31:08 +02:00
Nicolas Mellado
9115896590
Merged eigen/eigen into default
2015-07-03 00:41:11 +02:00
Benoit Steiner
95ef94f1ee
Fixed a typo in the patch
2015-07-02 07:06:55 +00:00
Benoit Steiner
8f1d547c92
Added a default value for the cuda stream in the GpuDevice constructor
2015-07-01 18:32:18 -07:00
Benoit Steiner
1e911b276c
Misc improvements and optimizations
2015-07-01 13:59:11 -07:00
Benoit Steiner
4ed213f97b
Improved a previous fix
2015-07-01 13:06:30 -07:00
Benoit Steiner
56e155dd60
Fixed a couple of mistakes in the previous commit.
2015-07-01 12:40:27 -07:00
Benoit Steiner
925d0d375a
Enabled the vectorized evaluation of several tensor expressions that was previously disabled by mistake
2015-07-01 11:32:04 -07:00
Benoit Steiner
44eedd8915
Marked the cast functions as EIGEN_DEVICE_FUNC to ensure that we can run casting on GPUs
2015-06-30 15:48:55 -07:00
Benoit Steiner
6021b68d8b
Silenced a compilation warning
2015-06-30 15:42:25 -07:00
Benoit Steiner
f1f480b116
Added support for user defined custom tensor op.
2015-06-30 15:36:29 -07:00
Benoit Steiner
dc31fcb9ba
Added support for 3D patch extraction
2015-06-30 14:48:26 -07:00
Benoit Steiner
f587075987
Made ThreadPoolDevice inherit from a new pure abstract ThreadPoolInterface class: this enables users to leverage their existing threadpool when using eigen tensors.
2015-06-30 14:21:24 -07:00
Benoit Steiner
28b36632ec
Turned Eigen::array::size into a function to make the code compatible with std::array
2015-06-30 13:23:05 -07:00
Benoit Steiner
109005c6c9
Added a test for multithreaded full reductions
2015-06-30 13:08:12 -07:00
Benoit Steiner
a4aa7c6217
Fixed a few compilation warnings
2015-06-30 10:36:17 -07:00
Benoit Steiner
7d41e97fa9
Silenced a number of compilation warnings
2015-06-29 14:47:40 -07:00
Benoit Steiner
fffe63045c
Added a test for full reductions on GPU
2015-06-29 14:10:32 -07:00
Benoit Steiner
db9dbbda32
Improved performance of full reduction by 2 order of magnitude on CPU and 3 orders of magnitude on GPU
2015-06-29 14:06:32 -07:00
Benoit Steiner
f0ce85b757
Improved support for fixed size tensors
2015-06-29 14:04:15 -07:00
Benoit Steiner
670c71d906
Express the full reduction operations (such as sum, max, min) using TensorDimensionList
2015-06-29 11:30:36 -07:00
Benoit Steiner
d8098ee7d5
Added support for tanh function to the tensor code
2015-06-29 11:14:42 -07:00
Benoit Steiner
3625734bc8
Moved some utilities to TensorMeta.h to make it easier to reuse them accross several tensor operations.
...
Created the TensorDimensionList class to encode the list of all the dimensions of a tensor of rank n. This could be done using TensorIndexList, however TensorIndexList require cxx11 which isn't yet supported as widely as we'd like.
2015-06-29 10:49:55 -07:00
Gael Guennebaud
392a30db82
Use VERIFY_IS_EQUAL instead of VERIFY(a==b) to get more feedback in case of failure
2015-06-26 16:22:49 +02:00
Gael Guennebaud
c911fc8dee
split compiler intensive bdcsvd_1 unit test
2015-06-26 16:14:23 +02:00
Gael Guennebaud
98ff17eb9e
Add special path for matrix<complex>/real.
...
This also fixes underflow issues when scaling complex matrices through complex/complex operator.
2015-06-26 16:08:15 +02:00
Gael Guennebaud
e102ddbf1f
bug #1026 : fix infinite loop for an empty input
2015-06-26 14:02:52 +02:00
Gael Guennebaud
555b9c6843
Doc: explain perf and multithreading issues in sparse iterative solvers
2015-06-26 10:49:40 +02:00
Gael Guennebaud
53b930887d
Enable OpenMP parallelization of row-major-sparse * dense products.
...
I observed significant speed-up of the CG solver.
2015-06-26 10:32:34 +02:00
Gael Guennebaud
3f49cf4c90
More msvc 2013/2015 workarounds
2015-06-26 09:07:53 +02:00
Gael Guennebaud
7f824dd613
Optimize CG to enable faster spare row-major * dense vector products when the input matrix is complete (Upper|Lower) but column major.
2015-06-25 17:17:38 +02:00
Gael Guennebaud
c5f9eafcbc
Fix assignement to selfadjoint-view when testing real-world problems
2015-06-25 17:08:58 +02:00
Gael Guennebaud
33e699c9fe
Remove redundant accessors in Reverse
2015-06-25 14:14:59 +02:00
Gael Guennebaud
6b4d255cab
Avoid division by a zero complex
2015-06-25 14:04:05 +02:00
Gael Guennebaud
973b0a90db
Clarify documentation of the tolerance and error returned in iterative solvers
2015-06-25 13:51:13 +02:00
Gael Guennebaud
84264ceebc
workaround msvc 2013/2015 wrong instanciation of isnan, isfinite, isinf
2015-06-25 10:00:26 +02:00
Gael Guennebaud
b4ab72678c
bug #1000 : MSVC 2013 does need the operator= workaround
2015-06-25 09:45:22 +02:00
Gael Guennebaud
788941d3b1
Workaround MSVC ambiguous instanciation
2015-06-24 23:35:17 +02:00
Gael Guennebaud
4c8cd13b35
Add explicit ctor for diagonal to sparse conversion
2015-06-24 18:11:06 +02:00
Gael Guennebaud
c38c195321
Document how cross behaves on complex numbers
2015-06-24 18:02:33 +02:00
Gael Guennebaud
23535ed31c
Add unit test for dense = SparseQR::matrixQ
2015-06-24 17:55:41 +02:00
Gael Guennebaud
62f21e2d11
Add support for sparse = diagonal
2015-06-24 17:55:00 +02:00
Gael Guennebaud
763c833637
Make SparseSelfAdjointView, twists, and SparseQR more evaluator friendly
2015-06-24 17:54:09 +02:00
Gael Guennebaud
36643eec0c
Add a call_assignment_no_alias_no_transpose shortcut
2015-06-24 17:50:43 +02:00
Gael Guennebaud
02db7c9bc6
Inherit operator+= and -= with 'using' kkeyword
2015-06-24 17:49:20 +02:00
Gael Guennebaud
53a61a067b
Fallback to CMAKE_CXX_COMPILER_VERSION if VS version unknown
2015-06-24 15:17:37 +02:00
Gael Guennebaud
95e19be381
Fix compilation of MKL Pardiso support
2015-06-24 14:53:43 +02:00
Gael Guennebaud
2a33075aeb
std::isnan is c++11 only
2015-06-24 10:29:17 +02:00
Gael Guennebaud
23da99492f
Add unit-test for Visual2013 ambiguous call to operator=
2015-06-24 10:27:02 +02:00
Benoit Steiner
6441befbb3
Added more checks to test the correctness of the pexp implementation
2015-06-23 19:12:46 -07:00
Gael Guennebaud
c3e398d138
Fix overflow when checking SVD accuracy
2015-06-23 15:05:20 +02:00
Gael Guennebaud
b0d08869a9
Fix underflow in 3x3 tridiagonalization
2015-06-23 14:54:31 +02:00
Gael Guennebaud
18c9d155f3
Fix the fact that float(int) != float(int(float(int)))
2015-06-23 14:33:00 +02:00
Gael Guennebaud
71523a2e25
Fix a warning with icc
2015-06-23 14:20:20 +02:00
Gael Guennebaud
d9778f3391
Enable VML's pow wrapper on windows (the previous wrapper used the Fortran interface)
2015-06-23 14:04:50 +02:00
Gael Guennebaud
5f9630d7f9
bug #923 : update support for Intel's VML wrt new evaluation mechanisms
2015-06-23 14:03:25 +02:00
Gael Guennebaud
793e4c6d77
bug #923 : fix EIGEN_USE_BLAS mode
2015-06-23 11:13:24 +02:00
Gael Guennebaud
307c4fc292
Workaround missalignment produced by first_aligned for PacketSize==1 and size==1
2015-06-23 10:10:17 +02:00
Gael Guennebaud
bb3a9b4941
Use Ref<> to bypass forceAlignmentIf
2015-06-22 17:48:28 +02:00
Gael Guennebaud
476beed7f8
bug #1017 : apply Christoph's patch preventing underflows in makeHouseholder
2015-06-22 16:51:45 +02:00
Gael Guennebaud
9fc1c92137
Fix isinf unit tests
2015-06-22 16:48:27 +02:00
Gael Guennebaud
9c7cfa7dab
Update list of main modules
2015-06-22 14:17:24 +02:00
Gael Guennebaud
3ccd23efc0
Update coeff-wise quick-reference doc.
2015-06-22 14:08:54 +02:00
Gael Guennebaud
0848ba0a6e
Fix return nullary return types: it must be based on the PlainObject type instead of the expression type.
2015-06-22 10:52:08 +02:00
Gael Guennebaud
b3b3dcad05
Reduce compiler memory consumption for SVD unit tests
2015-06-22 09:58:06 +02:00
Nicolas Mellado
ad5fdc7ddd
Fix double to Scalar unwanted promotions
2015-06-21 20:21:23 +02:00
Gael Guennebaud
40821876ea
Fix regression on CompressedStorage::operator=
2015-06-20 13:59:13 +02:00
Michael Abrahams
7043083be4
Use GCC flags in mingw
2015-06-20 18:54:41 +00:00
Gael Guennebaud
84aaef93ba
Merged in vanhoucke/eigen_vanhoucke (pull request PR-118)
...
Fix two small undefined behaviors caught by static analysis.
2015-06-20 13:56:48 +02:00
Gael Guennebaud
6b33b29f00
Get rid of must_nest_by_value
2015-06-19 18:12:40 +02:00
Gael Guennebaud
846b227bb7
Get rid of class internal::nested<> (still have to updated Tensor module)
2015-06-19 17:56:39 +02:00
vanhoucke
368ea23406
Fix undefined behavior. When resizing a default-constructed SparseArray, we end up calling memcpy(ptr, 0, 0), which is technically UB and gets caught by static analysis.
2015-06-19 15:53:30 +00:00
vanhoucke
4cc0c961f3
Fix undefined behavior.
2015-06-19 15:46:46 +00:00
Gael Guennebaud
386d9e5ebd
Fix usage of nested versus nested_eval
2015-06-19 17:42:27 +02:00
Gael Guennebaud
a5a7b68b76
Fix ambiguous instanciation using clean class-level SFINAE in product_evaluator
2015-06-19 17:25:13 +02:00
Gael Guennebaud
6fc5438205
Remove a few deprecated internal expressions
2015-06-19 17:06:12 +02:00
Gael Guennebaud
e9edb085c0
Check number of temporaries when applying permutations
2015-06-19 16:39:24 +02:00
Gael Guennebaud
6318d53b41
Factorize VERIFY_EVALUATION_COUNT in unit tests
2015-06-19 16:38:26 +02:00
Gael Guennebaud
5c84dd5665
Fix permutation/transposiitons products wrt nested_eval
2015-06-19 16:37:04 +02:00
Gael Guennebaud
0c8b0e007b
Introduce a AliasFreeProduct option for Permutations and Transpositions
2015-06-19 15:38:19 +02:00
Gael Guennebaud
3f6aa4cd5d
Remove useless specializations of evaluator_traits
2015-06-19 14:18:29 +02:00
Gael Guennebaud
4a8888dfbc
Improbe compatibility of Transpositions and evaluators
2015-06-19 14:10:44 +02:00
Gael Guennebaud
3af4c6c1c9
Make Transpositions use evaluators
2015-06-19 11:50:24 +02:00
Gael Guennebaud
82b6ac0864
Enforce eigenvectors to be column-major (for performance reasons)
2015-06-19 11:25:46 +02:00
Gael Guennebaud
fad36cc814
Clean implementation of permutation * matrix products.
2015-06-19 10:51:57 +02:00
Gael Guennebaud
06036d8bb1
Fix compilation of BDCSVD with DEFAULT_TO_ROWMAJOR
2015-06-19 10:37:25 +02:00
Gael Guennebaud
d2db15016b
Fix storage order computation in traits<Product>
2015-06-19 10:36:38 +02:00
Benoit Steiner
6a9a29e96f
Fixed a compilation warning
2015-06-17 10:14:13 -07:00
Gael Guennebaud
bb6acc561e
Workaround broken complex*real product on old clang versions
2015-06-17 16:11:58 +02:00
Gael Guennebaud
40f326ef2e
workaround clang's broken complex division
2015-06-17 15:33:09 +02:00
Benoit Steiner
ab5db86fe9
Fixed merge conflict
2015-06-16 19:52:20 -07:00
Benoit Steiner
ea160a898c
Pulled latest updates from trunk
2015-06-16 19:46:23 -07:00
Benoit Steiner
367794e668
Fixed compilation warnings triggered by clang
2015-06-16 19:43:49 -07:00
Gael Guennebaud
736a805883
Add unit test for bug #879
2015-06-16 22:11:41 +02:00
Gael Guennebaud
9ab8ac5c8b
Fix compilation in TensorImagePatch
2015-06-16 14:50:08 +02:00
Gael Guennebaud
38874b1651
Fix shadow warnings in Tensor module
2015-06-16 14:43:46 +02:00
Gael Guennebaud
e2e66930c6
Fix compilation of alignedvector3 unit test
2015-06-16 14:40:55 +02:00
Gael Guennebaud
7baa1ba03e
Remove the usage of result_of for DenseBase::redux as discussed in bug #1006
2015-06-15 22:40:18 +02:00
Gael Guennebaud
97cbe28829
Remove support of std::binder* in C++11
2015-06-15 15:34:05 +02:00
Gael Guennebaud
972a535288
Remove aligned-on-scalar assert and fallback to non vectorized path at runtime (first_aligned already had this runtime guard)
2015-06-14 15:04:07 +02:00
Gael Guennebaud
e5b490b654
Fix isfinite/isinf/isnan code snippets
2015-06-15 15:09:25 +02:00
Gael Guennebaud
a546be56e0
typo
2015-06-15 15:08:51 +02:00
Gael Guennebaud
3946c981b1
Relax tolerance when testing LDLT on singular problems
2015-06-15 15:08:16 +02:00
Gael Guennebaud
2212e40e95
Extend VERIFY_IS_APPROX to report the magnitude of the relative difference in case of failure. This will ease identifying strongest failing tests
2015-06-15 15:03:19 +02:00
Gael Guennebaud
321a2cbe3d
Add missing forward declaration of AlignedBox
2015-06-15 15:01:20 +02:00
Gael Guennebaud
2f2a441a4d
Fix use of unitialized buffers.
2015-06-13 22:19:40 +02:00
Gael Guennebaud
91b64a9c65
Relax aligned-on-scalar assert as in the 3.2 branch
2015-06-12 11:25:57 +02:00
Gael Guennebaud
84d103bee8
Enable C++11 math function in a more conservative manner.
2015-06-11 21:45:02 +02:00
Gael Guennebaud
916ef52fff
merge
2015-06-11 09:35:49 +02:00
Gael Guennebaud
d93ba137f2
Introduce EIGEN_PI, get rid of M_PI and acos(-1.0)
2015-06-10 17:12:10 +02:00
Gael Guennebaud
9756c7fb4d
Make more use of EIGEN_HAS_C99_MATH
2015-06-10 16:26:55 +02:00
Gael Guennebaud
93a62265dc
fix isinf(complex(inf,NaN)) to return false.
2015-06-10 16:19:10 +02:00
Gael Guennebaud
b0d5aaafcc
Rename free functions isFinite, isInf, isNaN to be compatible with c++11
2015-06-10 16:17:09 +02:00
Gael Guennebaud
25a98be948
bug #80 : merge with d_hood branch on adding more coefficient-wise unary array functors
2015-06-10 15:52:05 +02:00
Gael Guennebaud
192bce2795
bug #890 , add a more general routine to check that two dense object reference to the same data
2015-06-10 10:09:04 +02:00
Gael Guennebaud
e6832ce93d
Add regression test for bug #890
2015-06-10 09:32:10 +02:00
Gael Guennebaud
0b2cbb2bdc
bug #897 : make umfpack support use Ref<>
2015-06-09 23:30:06 +02:00
Gael Guennebaud
feaf76c001
bug #910 : add a StandardCompressedFormat option to Ref<SparseMatrix> to enforce standard compressed storage format.
...
If the input is not compressed, then this trigger a copy for a const Ref, and a runtime assert for non-const Ref.
2015-06-09 23:11:24 +02:00
Gael Guennebaud
f899aeb301
bug #650 : fix sparse * dense wrt noalias and compound assignment
2015-06-09 18:33:24 +02:00
Gael Guennebaud
785b9c0127
bug #1003 : assert in MapBase if the provided pointer is not aligned on scalar while it is expected to be. Also add a EIGEN_ALIGN8 macro.
2015-06-09 17:42:09 +02:00
Gael Guennebaud
0eb06f1391
Enable -Wshadow with clang
2015-06-09 17:44:18 +02:00
Gael Guennebaud
64753af3b7
code simplification
2015-06-09 15:35:34 +02:00
Gael Guennebaud
cacbc5679d
formatting
2015-06-09 15:23:08 +02:00
Gael Guennebaud
04665ef9e1
remove redundant dynamic allocations in GMRES
2015-06-09 15:18:21 +02:00
Gael Guennebaud
d4c574707e
fix some legitimate shadow warnings
2015-06-09 15:17:58 +02:00
Gael Guennebaud
f9350e70eb
fix unused variable warning
2015-06-09 15:17:21 +02:00
Gael Guennebaud
4aba24a1b2
Clean argument names of some functions
2015-06-09 13:32:12 +02:00
Gael Guennebaud
302cf8ffe2
Add missing documentation for TriangularViewImpl<MatrixType,Mode,Sparse>
2015-06-09 11:40:07 +02:00
Gael Guennebaud
3a4299b245
bug #872 : remove usage of deprecated bind1st.
2015-06-09 10:52:04 +02:00
Gael Guennebaud
9aef0db992
Skip too large real-world problems for solvers that do not scale (e.g., SimplicialLLT without reordering)
2015-06-09 09:29:53 +02:00
Gael Guennebaud
9a2447b0c9
Fix shadow warnings triggered by clang
2015-06-09 09:11:12 +02:00
Gael Guennebaud
cd8b996f99
Extend unit test and documentation of SelfAdjointEigenSolver::computeDirect
2015-06-08 16:16:42 +02:00
Gael Guennebaud
913a61870d
Update utility for experimenting with 3x3 eigenvalues
2015-06-08 15:54:53 +02:00
Gael Guennebaud
8f031a3cee
bug #997 : add missing evaluators for m.lazyProduct(v.homogeneous())
2015-06-08 15:43:41 +02:00
Gael Guennebaud
e6c5723dcd
Add unit test for m.replicate(...)(index).
2015-06-08 15:42:15 +02:00
Gael Guennebaud
274b1f5d7e
Fix homogeneous() for 1x1 matrix: in this case, homogeneous follows the storage order guaranteeing that v.transpose().homogeneous() == v.homogeneous().transpose()
2015-06-08 15:40:51 +02:00
Gael Guennebaud
cbe3a1a83e
Add missing accessors for 1D index based access to Replicate<> expressions.
2015-06-08 15:39:09 +02:00
Gael Guennebaud
a7ae628c9f
bug #1005 : fix regression regarding sparse coeff-wise binary operator that did not trigger a static assertion for mismatched storage
2015-06-08 10:14:08 +02:00
Gael Guennebaud
0a9b5d1396
bug #705 : fix handling of Lapack potrf return code
2015-06-05 15:59:13 +02:00
Gael Guennebaud
d0b7b5cb55
minor documentation fixes
2015-06-05 14:40:07 +02:00
Gael Guennebaud
56d4ef7ad6
BiCGSTAB: set default guess to 0, and improve restart mechanism by recomputing the accurate residual.
2015-06-05 14:37:57 +02:00
Gael Guennebaud
98a8d43457
Improve unit testing of real-word sparse problem (fix some shortcommings, use VERIFY, etc.)
2015-06-05 14:33:37 +02:00
Gael Guennebaud
b685660b22
Do go to full accuracy when testing BiCGSTAB.
2015-06-05 14:32:26 +02:00
Gael Guennebaud
8bc26562f4
Do not abort if the folder cannot be openned!
2015-06-05 14:31:29 +02:00
Gael Guennebaud
3e7bc8d686
Improve loading of symmetric sparse matrices in MatrixMarketIterator
2015-06-05 10:16:29 +02:00
Gael Guennebaud
acc761cf0c
Merged in FlorianGeorge/eigen_blaze_fork_2 (pull request PR-60)
...
Use trans(X) instead of X.transpose() in Blaze Benchmark
2015-06-04 09:15:22 +02:00
Benoit Steiner
ea1190486f
Fixed a compilation error triggered by nvcc 7
2015-05-28 11:57:51 -07:00
Benoit Steiner
0e5fed74e7
Worked around some constexpr related bugs in nvcc 7
2015-05-28 10:14:38 -07:00
Benoit Steiner
f13b3d4433
Added missing include files
2015-05-28 07:57:28 -07:00
Benoit Steiner
abec18bae0
Fixed potential compilation error
2015-05-26 10:11:15 -07:00
Benoit Steiner
9df186c140
Added a few more missing EIGEN_DEVICE_FUNC statements
2015-05-26 09:47:48 -07:00
Benoit Steiner
466bcc589e
Added a few missing EIGEN_DEVICE_FUNC statements
2015-05-26 09:37:23 -07:00
Gael Guennebaud
d457734a19
Avoid calling smart_copy with null pointers.
2015-05-25 22:30:56 +02:00
Benoit Steiner
6b800744ce
Moved away from std::async and std::future as the underlying mechnism for the thread pool device. On several platforms, the functions passed to std::async are not scheduled in the order in which they are given to std::async, which leads to massive performance issues in the contraction code.
...
Instead we now have a custom thread pool that ensures that the functions are picked up by the threads in the pool in the order in which they are enqueued in the pool.
2015-05-20 13:52:07 -07:00
Benoit Steiner
48f6b274e2
Fixed compilation error triggered by gcc 4.7
2015-05-20 08:54:44 -07:00
Benoit Steiner
2451679951
Avoid using the cuda memcpy for small tensor slices since the memcpy kernel is very expensive to launch
2015-05-19 15:19:01 -07:00
Benoit Steiner
a81d17b73a
Added new version of the TensorIntDiv class optimized for 32 bit signed integers. It saves 1 register on CPU and 2 on GPU.
2015-05-19 13:59:52 -07:00
Benoit Jacob
051d5325cc
Abandon blocking size lookup table approach. Not performing as well in real world as in microbenchmark.
2015-05-19 11:03:59 -04:00
Christoph Hertzberg
ebea530782
bug #1014 : More stable direct computation of eigenvalues and -vectors for 3x3 matrices
2015-05-17 21:54:32 +02:00
Benoit Jacob
c88e1abaf3
also uninitialized here, see previous cset
2015-05-15 11:34:57 -04:00
Benoit Jacob
807793ec3b
Fix uninitialized var warning. The compiler was clearing the register anyway, so this does not change resulting code
2015-05-15 11:15:53 -04:00
Pete Warden
140f85bb99
Check for the macro __ARM_NEON__ (with two underscores at the end) as well as __ARM_NEON. The second macro is correct according to the ARM language extensions specification, but historically the first one has been more common. Some older compilers (e.g. gcc v4.6 on a Beaglebone Black) only define the first, so without this patch NEON isn't enabled.
2015-05-12 16:03:43 -07:00
Gael Guennebaud
a852001196
Add regression test for bugs #854 and #1014 , and check that the eigenvector matrix is unitary.
2015-05-12 18:45:39 +02:00
Gael Guennebaud
e66caf48e8
Make test matrices for eigensolver/selfadjoint even more tricky
2015-05-12 18:44:46 +02:00
Gael Guennebaud
ef81730625
Ignore denormal numbers in selfadjoint eigensolver.
2015-05-12 18:38:43 +02:00
Christoph Hertzberg
a605a1d7df
Merged in MattPD/eigen/MattPD/doc-fix-wording-typos-in-templatekeywor-1431363009359 (pull request PR-116)
...
[Doc] Fix wording / typos in TemplateKeyword.dox
2015-05-11 23:37:52 +02:00
MattPD
447e060b81
[Doc] Fix wording / typos in TemplateKeyword.dox
2015-05-11 16:50:18 +00:00
Christoph Hertzberg
494fa991c3
bug #872 : Avoid deprecated binder1st/binder2nd usage by providing custom functors for comparison operators
2015-05-07 17:28:40 +02:00
Gael Guennebaud
4a936974a5
bug #1013 : fix 2x2 direct eigensolver for identical eiegnvalues
2015-05-07 15:55:12 +02:00
Gael Guennebaud
c2107d30ce
Extend unit tests of sefladjoint-eigensolver
2015-05-07 15:54:07 +02:00
Gael Guennebaud
ebf8ca4fa8
Fix bug #1010 : m_isInitialized was improperly updated
2015-05-07 14:20:42 +02:00
Konstantinos Margaritis
dd698e6680
Merged in doug_kwan/eigen (pull request PR-103)
...
Fix bug in pdiv<Packet1cd> which swaps 32-bit halves of a pair of
2015-05-05 20:50:14 +03:00
Benoit Steiner
1dded10cb7
Added a double-precision implementation of the exp() function for AVX.
2015-05-04 10:42:51 -07:00
Christoph Hertzberg
6273aca9b1
small typo
2015-05-04 15:26:31 +00:00
Christoph Hertzberg
4dd7d0b5dc
Merged in mvdyck/eigen-3/mvdyck/doc-multithreading-fix-old-n-eigennbthr-1430750928880 (pull request PR-114)
...
[Doc] Multi-threading fix
2015-05-04 17:23:21 +02:00
michiel van dyck
4b9eddaef8
[Doc] Multi-threading fix
...
OLD: n = Eigen::nbThreads( n );
NEW: n = Eigen::nbThreads( );
from:
You can query the number of threads that will be used with:
\code
n = Eigen::nbThreads( );
\endcode
Kr Michiel
2015-05-04 14:48:52 +00:00
Christoph Hertzberg
28a4c92cbf
bug #998 : Started fixing doxygen warnings
2015-05-01 22:10:41 +02:00
Christoph Hertzberg
173b34e9ab
bug #999 : clarify that behavior of empty AlignedBoxes is undefined, and further improvements in documentation
2015-04-30 19:30:36 +02:00
Christoph Hertzberg
da2baf685d
Regression test for bug #302
...
(transplanted from 80fd8fab87
)
Changed DenseIndex to Index
2015-04-26 21:05:33 +02:00
Christoph Hertzberg
8c6a3b5ace
Fix trivial warnings in LevenbergMarquardt module and test
2015-04-24 21:35:30 +02:00
Gael Guennebaud
de18cd413d
Disable posix_memalign on Solaris and SunOS, and allows to by-pass built-in posix_memalign detection rules.
2015-04-24 11:26:51 +02:00
Gael Guennebaud
1681a665d9
Extend unit test of Map<,,Stride<>> with stack allocated buffers and less trivial operations.
2015-04-24 10:38:28 +02:00
Gael Guennebaud
834f66e9fc
Extend unit test of Map<> with stack allocated buffers and less trivial operations.
2015-04-24 10:10:19 +02:00
Gael Guennebaud
40258078c6
bug #360 : add value_type typedef to DenseBase/SparseMatrixBase
2015-04-24 09:44:24 +02:00
Christoph Hertzberg
c460af414e
Fix bug #1000 : Manually inherit assignment operators for MSVC 2013 and later (as required by the standard).
2015-04-23 13:39:03 +02:00
Benoit Steiner
fd1d4bd86c
Silenced a few compilation warnings
2015-04-22 16:16:15 -07:00
Benoit Steiner
91359e1d0a
Added the ability to generate a tensor from a custom user defined 'generator'. This simplifies the creation of constant tensors initialized using specific regular patterns.
...
Created a gaussian window generator as a first use case.
2015-04-22 11:14:58 -07:00
Benoit Steiner
8838ed39f4
Added support for non-deterministic random number generation on GPU
2015-04-22 09:14:38 -07:00
Christoph Hertzberg
e7457e419d
Merge with dfa991cbae
2015-04-22 03:39:32 +02:00
Benoit Steiner
dfa991cbae
Make sure that the copy constructor of the evaluator is always called before launching the evaluation of a tensor expression on a cuda device.
2015-04-21 16:15:45 -07:00
Gael Guennebaud
dbd12b4cda
Make sure that BlockImpl<const SparseMatrix> ctor is called with the right type
2015-04-21 10:15:36 +02:00
Gael Guennebaud
d6a8b43b39
Fix typo in the definition of EIGEN_COMP_GNUC_STRICT
2015-04-21 10:12:38 +02:00
Benoit Steiner
e709488361
Silenced a few compilation warnings
2015-04-20 17:39:45 -07:00
Benoit Steiner
10a1f81822
Sped up the assignment of a tensor to a tensor slice, as well as the assigment of a constant slice to a tensor
2015-04-20 17:34:11 -07:00
Deanna Hood
e5048b5501
Use std::isfinite when available
2015-04-20 14:59:57 -04:00
Deanna Hood
249c48ba00
Incorporate C++11 check into EIGEN_HAS_C99_MATH macro
2015-04-20 14:57:04 -04:00
Deanna Hood
0250f4a9f2
Merged default into unary-array-cwise-functors
2015-04-20 14:01:35 -04:00
Deanna Hood
0339502a4f
Only use std::isnan and std::isinf if they are available
2015-04-20 13:14:06 -04:00
Benoit Steiner
43eb2ca6e1
Improved the tensor random number generators:
...
* Use a mersenne twister whenebver possible instead of the default entropy source since the default one isn't very good at all.
* Added the ability to seed the generators with a time based seed to make them non-deterministic.
2015-04-20 09:24:09 -07:00
Christoph Hertzberg
016c29f207
Merge with 70bc3b0668
2015-04-20 08:33:39 +02:00
Benoit Steiner
70bc3b0668
Silenced a warning in the tensor code
2015-04-19 12:38:00 -07:00
Benoit Steiner
3220eb2b93
Fixed some compilation warnings
2015-04-19 12:36:35 -07:00
Gael Guennebaud
fc2d5b86ce
simplify previous changeset: sub-expressions are nested by value
2015-04-18 22:50:16 +02:00
Gael Guennebaud
5a3c48e3c6
bug #942 : fix dangling references in evaluator of diagonal * sparse products.
2015-04-18 22:43:27 +02:00
Benoit Steiner
3b429b71e6
Fixed compilation warning triggered by gcc 4.7
2015-04-18 13:41:06 -07:00
Benoit Steiner
9c6b82bcd5
Use ptrdiff_t instead of size_t to encode fixed sizes. This silences several clang compilation warnings
...
(transplanted from 4400e4436ac7c5bbd305a03c21aa4bce24ae199b)
2015-04-17 09:12:18 -07:00
Christoph Hertzberg
4f126b862d
Add internal assertions to purely fixed-size DenseStorage, mark optional variables always as unused
2015-04-17 11:36:21 +02:00
Benoit Steiner
da5b98a94d
Updated the cxx11_tensor_convolution test to avoid using cxx11 features. This should enable the test to compile with gcc 4.7 and older
2015-04-16 12:29:16 -07:00
Benoit Steiner
d19d09ae6a
Updated a regression test to avoid compilation errors when compiling with gcc 4.7
2015-04-16 12:15:27 -07:00
Christoph Hertzberg
9d7843d0d0
Add internal assertions to DenseStorage constructor
2015-04-16 15:47:06 +02:00
Christoph Hertzberg
3be9f5c4d7
Constructing a Matrix/Array with implicit transpose could lead to memory leaks.
...
Also reduced code duplication for Matrix/Array constructors
2015-04-16 13:25:20 +02:00
Gael Guennebaud
e0cff9ae0d
Fix bug #996 : fix comparisons to 0 instead of Scalar(0)
2015-04-15 14:48:53 +02:00
Gael Guennebaud
5dbe758dc3
Backed out changeset 04c8c5d9ef
2015-04-15 14:47:08 +02:00
Gael Guennebaud
04c8c5d9ef
Fix bug #996 : fix comparisons to 0 instead of Scalar(0)
2015-04-15 14:44:57 +02:00
Benoit Steiner
0f82399fe9
Pulled latest changes from trunk
2015-04-14 19:13:34 -07:00
Christoph Hertzberg
761691f18d
Make conversion from 0 to Scalar explicit (issue reported by Brad Bell)
2015-04-13 17:15:00 +02:00
Benoit Steiner
5401fbcc50
Improved the blocking strategy to speedup multithreaded tensor contractions.
2015-04-09 16:44:10 -07:00
Deanna Hood
085aa8e601
Don't use M_PI since it's only guaranteed to be defined in Eigen/Geometry
2015-04-08 13:59:18 -05:00
Gael Guennebaud
0eb220c00d
add a note on bug #992
2015-04-08 09:25:34 +02:00
Benoit Jacob
d7f51feb07
bug #992 : don't select a 3p GEMM path with non-vectorizable scalar types, this hits unsupported paths in symm/triangular products code
2015-04-07 15:13:55 -04:00
Benoit Jacob
0e9753c8df
Fix compiler flags on Android/ARM:
...
- generate position-independent code (PIE), a requirement to run binaries on Android 5.0+ devices;
- correctly handle EIGEN_TEST_FMA + EIGEN_TEST_NEON to pass -mfpu=neon-vfpv4.
2015-04-07 14:03:21 -04:00
Benoit Steiner
1de49ef4c2
Fixed a bug when chipping tensors laid out in row major order.
2015-04-07 10:44:13 -07:00
Benoit Steiner
a1f1e1e51d
Fixed the order of 2 #includes
2015-04-06 10:41:39 -07:00
Benoit Steiner
7c18ab921c
Pulled latest updates from trunk
2015-04-04 20:07:04 -07:00
Gael Guennebaud
15b5adb327
Fix regression in DynamicSparseMatrix and SuperLUSupport wrt recent change on nonZeros/nonZerosEstimate
2015-04-02 22:21:41 +02:00
Benoit Steiner
74e558cfa8
Pulled latest updates from trunk
2015-04-01 23:24:11 -07:00
Benoit Steiner
03a0df2010
Fixed some compilation warnings triggered by pre-cxx11 comoilers
2015-04-01 22:51:33 -07:00
Benoit Steiner
b8b7807269
Fixed some compilation warning triggered by the cxx11 emulation code
2015-04-01 21:48:18 -07:00
Benoit Steiner
383b6dfafe
Fixed 2 typos
2015-04-01 16:44:36 -07:00
Gael Guennebaud
5861cfb55e
Remove unused GenericSparseBlockInnerIteratorImpl code.
2015-04-01 22:29:29 +02:00
Gael Guennebaud
3105986e71
bug #875 : remove broken SparseMatrixBase::nonZeros and introduce a nonZerosEstimate() method to sparse evaluators for internal uses.
...
Factorize some code in SparseCompressedBase.
2015-04-01 22:27:34 +02:00
Gael Guennebaud
39dcd01b0a
bug #973 : enable alignment of multiples of half-packet size (e.g., Vector6d with AVX)
2015-04-01 13:55:09 +02:00
Gael Guennebaud
8481dc21ea
bug #986 : add support for coefficient-based product with 0 depth.
2015-04-01 13:15:23 +02:00
Gael Guennebaud
79b4e6acaf
Fix bug #987 : wrong alignement guess in diagonal product.
2015-03-31 23:35:12 +02:00
Gael Guennebaud
3c38589984
Remove most of the dynamic memory allocations that occured in D&C SVD. Still remains the calls to JacobiSVD and UpperBidiagonalization.
2015-03-31 22:54:47 +02:00
Gael Guennebaud
8313fb7df7
Add row/column-wise reverseInPlace feature.
2015-03-31 21:35:53 +02:00
Gael Guennebaud
dfb674a25e
Make reverseInPlace really work in-place.
2015-03-31 20:17:10 +02:00
Gael Guennebaud
20d030f207
Fix vectorization of swap for non trivial expressions
2015-03-31 20:16:02 +02:00
Benoit Steiner
678207e02a
Added regression tests for tensor convolutions
2015-03-31 09:08:08 -07:00
Benoit Steiner
68d4afe985
Added support for convolution of tensors laid out in RowMajor mode
2015-03-31 09:07:09 -07:00
Benoit Steiner
f873686602
Added documentation for the convolution operation
2015-03-31 08:27:23 -07:00
Benoit Jacob
73cdeae1d3
Only use blocking sizes LUTs for single-thread products for now
2015-03-31 11:17:23 -04:00
Benoit Jacob
0cbd5ae3cb
Correctly detect Android with ndk_build
2015-03-31 11:17:21 -04:00
Gael Guennebaud
ae01c05e18
Fix computeProductBlockingSizes with m==0, and add respective unit test.
2015-03-31 15:19:57 +02:00
Gael Guennebaud
bd76d837e6
Fix sign of SuperLU::determinant
2015-03-31 14:57:32 +02:00
Gael Guennebaud
35d3053d55
Fix regression introduced in 3b169d792d
2015-03-31 09:23:53 +02:00
Benoit Steiner
731d7b84b4
Sharded a large test
2015-03-30 23:26:45 -07:00
Christoph Hertzberg
7bd578d11d
Change CMake warning to simple message for old Metis versions
2015-03-31 00:50:04 +02:00
Christoph Hertzberg
3b169d792d
Suppress unused variable warning
2015-03-31 00:49:08 +02:00
Christoph Hertzberg
3238ca6abc
Addendum to last patch: k is Index and not int
2015-03-31 00:42:14 +02:00
Christoph Hertzberg
1efae98fee
bug #985 : RealQZ failed when either matrix had zero rows or columns (report and patch by Ben Goodrich)
...
Also added a regression test
2015-03-30 23:56:20 +02:00
Benoit Steiner
35722fa022
Made the index type a template parameter of the tensor class instead of encoding it in the options.
2015-03-30 14:55:54 -07:00
Benoit Steiner
71950f02e5
Deleted unnecessary semicolons
2015-03-30 14:49:10 -07:00
Christoph Hertzberg
58af8bf90c
bug #982 : Make sure numext::maxi and numext::mini are called correctly, in case Scalar expressions return expression templates.
2015-03-30 16:47:22 +02:00
Gael Guennebaud
2adbf6b8ca
fix stupid warning with old GCC
2015-03-28 22:34:54 +01:00
Gael Guennebaud
41e20248f8
merge
2015-03-28 14:43:35 +01:00
Christoph Hertzberg
09a5361d1b
bug #983 : Pass Vector3 by const reference and not by value
2015-03-28 12:36:24 +01:00
Christoph Hertzberg
266a84558f
Optionally build the documentation when building unit tests.
2015-03-27 16:36:59 +01:00
Christoph Hertzberg
1b4bb20cf1
Merged in d_hood/eigen/sparse-tutorial-doc-fix (pull request PR-107)
...
[Doc] Fix missing image in sparse tutorial
2015-03-27 16:22:16 +01:00
Gael Guennebaud
eb7e4c2b9c
Pass Vector3 type by reference
2015-03-27 12:11:24 +01:00
Gael Guennebaud
ad044008da
Fix transpose versus adjoint.
2015-03-27 12:07:14 +01:00
Gael Guennebaud
79cb875249
merge
2015-03-27 10:56:04 +01:00
Gael Guennebaud
7e225b6fa4
Suppress some false negatives in SVD unit test
2015-03-27 10:55:53 +01:00
Gael Guennebaud
1b8cc9af43
Slight numerical stability improvement in 2x2 svd
2015-03-27 10:55:00 +01:00
Gael Guennebaud
3d59ae0203
Fix hypot(0,0).
2015-03-27 09:59:24 +01:00
Benoit Steiner
4df8b5a75e
Avoid making an unecessary copy of the tensor expression when evaluating it on a GPU device
2015-03-25 14:36:07 -07:00
Benoit Steiner
b3343bfdae
Fixed the vectorized implementation of the Tensor select() method
2015-03-25 13:25:53 -07:00
Benoit Steiner
ccf290a65c
Cleaned up the TensorDevice code a little bit.
2015-03-25 12:37:38 -07:00
Benoit Steiner
d3f7915aeb
Pulled latest update from the eigen main codebase
2015-03-24 13:12:14 -07:00
Benoit Steiner
abdbe8562e
Fixed the CUDA packet primitives
2015-03-24 10:45:46 -07:00
Gael Guennebaud
29eaa2b0f1
Make MatrixBase::is* methods aware of nested_eval.
2015-03-24 13:42:42 +01:00
Gael Guennebaud
f42b105f73
Add the possibility to make VERIFY* checks to output a warning instead of abording.
2015-03-24 13:39:14 +01:00
Gael Guennebaud
d27968eb7e
D&C SVD: directly falls back to JacobiSVD for very small problems (by-pass upper-bidiagonalization)
2015-03-24 13:38:07 +01:00
Gael Guennebaud
4472f3e578
Avoid SVD: consider denormalized small numbers as zero when computing the rank of the matrix
2015-03-23 09:40:21 +01:00
Deanna Hood
83e5b7656b
Use M_PI instead of acos(-1) for pi
2015-03-22 06:04:31 +10:00
Deanna Hood
4bab4790c0
Add \sa tags of isFinite/isInf for each other
2015-03-22 05:39:08 +10:00
Gael Guennebaud
4e2b18d909
Update approx. minimum ordering method to push and keep structural empty diagonal elements to the bottom-right part of the matrix
2015-03-20 16:33:48 +01:00
Gael Guennebaud
8d9bfb3a7b
fix loadMarket wrt Index versus int
2015-03-20 16:00:10 +01:00
Benoit Steiner
a6a628ca6b
Added the -= operator to the device classes
2015-03-19 23:22:19 -07:00
Benoit Steiner
e134226a03
Fixed a bug in the handling of packets by the MeanReducer
2015-03-19 23:11:42 -07:00
Gael Guennebaud
9ee62fdcd5
Fix random unit test for 32bits systems.
2015-03-19 21:39:37 +01:00
Gael Guennebaud
d6b2f300db
Fix MSVC compilation: aligned type must be passed by reference
2015-03-19 17:28:32 +01:00
Gael Guennebaud
61c45d7cfd
Fix comparison warning
2015-03-19 17:13:22 +01:00
Gael Guennebaud
d7698c18b7
Split sparse_basic unit test
2015-03-19 15:11:05 +01:00
Gael Guennebaud
f329d0908a
Improve random number generation for integer and add unit test
2015-03-19 15:10:36 +01:00
Deanna Hood
2ab4922431
Make html directory before generating output image there
2015-03-18 07:24:13 +10:00
Deanna Hood
41b717de25
More extensive unit tests for recent array-wise functors
2015-03-18 03:11:03 +10:00
Benoit Steiner
cc0f89eb3b
Changed the way lvalue operations are declared in TensorBase: this fixes constness isses that prevented some expressions mixing lvalues and rvalues from compiling.
2015-03-17 09:57:20 -07:00
Benoit Jacob
dc04f12967
use unsigned short instead of uint16_t which doesn't exist in c++98
2015-03-17 10:31:45 -04:00
Deanna Hood
8878e1c1de
Remove ambiguity with recent numext methods isNaN and isInf
2015-03-17 22:39:51 +10:00
Deanna Hood
596be3cd86
Use std::arg for real numbers when c++11 is used, custom implementation otherwise
2015-03-17 15:28:12 +10:00
Deanna Hood
e26134ed62
Use std::round when c++11 is used, custom implementation otherwise
2015-03-17 14:55:14 +10:00
Deanna Hood
e21e29a088
Update cost of arg call to depend on if the scalar is complex or not
2015-03-17 14:04:33 +10:00
Deanna Hood
447a5a6b01
Fix VML declarations to only be for real/complex as appropriate
2015-03-17 13:33:31 +10:00
Deanna Hood
f52b78491c
Remove packet isNaN, isInf, isFinite
2015-03-17 09:26:24 +10:00
Deanna Hood
1c78d6f2a6
Add boolean not operator (!) array support
2015-03-17 08:29:57 +10:00
Deanna Hood
85da0c2281
Remove test of now-missing floor, ceil, round complex implementations
2015-03-17 06:56:47 +10:00
Benoit Jacob
364cfd529d
Similar to cset 3589a9c115
...
, also in 2px4 kernel: actual_panel_rows computation should always be resilient to parameters not consistent with the known L1 cache size, see comment
2015-03-16 16:28:44 -04:00
Benoit Steiner
25664afacd
Pulled latest updates from trunk
2015-03-16 13:25:45 -07:00
Deanna Hood
e1d6e6c972
Make cube, inverse and abs2 free-functions
2015-03-17 06:25:24 +10:00
Benoit Jacob
577056aa94
Include stdint.h. Not going for cstdint because it is a C++11 addition. Needed for uint16_t at least, in lookup-table code.
2015-03-16 16:21:50 -04:00
Benoit Steiner
5144f66728
Fixed compilation warning
2015-03-16 13:17:52 -07:00
Benoit Steiner
0fd6d52724
Fixed compilation error with clang
2015-03-16 13:16:12 -07:00
Benoit Jacob
eb6929cb19
fix bug in maxsize calculation, which would cause products of size > 2048 to address the lookup table out of bounds
2015-03-16 16:15:47 -04:00
Benoit Steiner
f218c0181d
Fixes the Lvalue computation by actually setting the LvalueBit properly when instantiating tensors of const T. Added a test to check the fix.
2015-03-16 13:05:00 -07:00
Deanna Hood
fef4e071d7
Rename isinf to isInf
2015-03-17 05:58:47 +10:00
Deanna Hood
46cf9cda32
Add isfinite array support as isFinite
2015-03-17 04:33:12 +10:00
Deanna Hood
7b829940d1
Add code snippets for new methods
2015-03-17 03:40:28 +10:00
Deanna Hood
1d76ceab55
Remove floor, ceil, round for complex numbers
2015-03-17 02:36:07 +10:00
Deanna Hood
717b7954ce
Update cost of coeff-wise arg call
2015-03-17 02:11:57 +10:00
Deanna Hood
fb68b149cb
Rename isnan to isNaN
2015-03-17 02:04:42 +10:00
Benoit Jacob
35c3a8bb84
Update Nexus 5 lookup table from combining now 2 runs of the benchmark, using the analyze-blocking-sizes partition tool. Gives better worst-case performance.
2015-03-16 11:05:51 -04:00
Benoit Jacob
e274607d7f
fix compilation with GCC 4.8
2015-03-16 10:48:27 -04:00
Benoit Jacob
151b8b95c6
Fix bug in case where EIGEN_TEST_SPECIFIC_BLOCKING_SIZE is defined but false
2015-03-15 19:10:51 -04:00
Benoit Jacob
02babb9c0f
Provide a empirical lookup table for blocking sizes measured on a Nexus 5. Only for float, only for Android on ARM 32bit for now.
2015-03-15 18:13:12 -04:00
Benoit Jacob
3589a9c115
actual_panel_rows computation should always be resilient to parameters not consistent with the known L1 cache size, see comment
2015-03-15 18:12:18 -04:00
Benoit Jacob
1dd3d89818
Fix a unused-var warning
2015-03-15 18:07:19 -04:00
Benoit Jacob
ca5c12587b
Polish lookup tables generation
2015-03-15 18:05:53 -04:00
Benoit Jacob
e56aabf205
Refactor computeProductBlockingSizes to make room for the possibility of using lookup tables
2015-03-15 18:05:12 -04:00
Benoit Jacob
b6b88c0808
update perf_monitoring/gemm/changesets.txt
2015-03-13 14:57:05 -07:00
Benoit Jacob
488c15615a
organize a little our default cache sizes, and use a saner default L1 outside of x86 (10% faster on Nexus 5)
2015-03-13 14:51:26 -07:00
Gael Guennebaud
9f58524cbd
merge
2015-03-13 21:16:39 +01:00
Gael Guennebaud
1330f8bbd1
bug #973 , improve AVX support by enabling vectorization of Vector4i-like types, and enforcing alignement of Vector4f/Vector2d-like types to preserve compatibility with SSE and future Eigen versions that will vectorize them with AVX enabled.
2015-03-13 21:15:50 +01:00
Gael Guennebaud
d99ab35f9e
Fix internal::random(x,y) for integer types. The previous implementation could return y+1. The new implementation uses rejection sampling to get an unbiased behabior.
2015-03-13 21:12:46 +01:00
Gael Guennebaud
8580eb6808
bug #949 : add static assertion for incompatible scalar types in dense end-user decompositions.
2015-03-13 21:06:20 +01:00
Gael Guennebaud
a9df28c95b
SparseMatrix::insert: switch to a fully uncompressed mode if sequential insertion is not possible (otherwise an arbitrary large amount of memory was preallocated in some cases)
2015-03-13 21:00:21 +01:00
Gael Guennebaud
5ffe29cb9f
Bound pre-allocation to the maximal size representable by StorageIndex and throw bad_alloc if that's not possible.
2015-03-13 20:57:33 +01:00
Benoit Jacob
d73ccd717e
Add support for dumping blocking sizes tables
2015-03-13 10:36:01 -07:00
Gael Guennebaud
2f6f8bf31c
Add missing coeff/coeffRef members to Block<sparse>, and extend unit tests.
2015-03-13 16:24:40 +01:00
Benoit Jacob
f2c3e2b10f
Add --only-cubic-sizes option to analyze-blocking-sizes tool
2015-03-12 13:16:33 -07:00
Doug Kwan
657407227e
Fix bug in pdiv<Packet1cd> which swaps 32-bit halves of a pair of
...
doubles instead of swapping the doubles.
2015-03-11 15:13:37 -07:00
Deanna Hood
f89fcefa79
Add hyperbolic trigonometric functions from std array support
2015-03-11 13:13:30 +10:00
Deanna Hood
a5e49976f5
Add log10 array support
2015-03-11 08:56:42 +10:00
Deanna Hood
19a71056ae
Allow calling of square(array) in addition to array.square()
2015-03-11 06:59:28 +10:00
Deanna Hood
31fdd67756
Additional unary coeff-wise functors (isnan, round, arg, e.g.)
2015-03-11 06:39:23 +10:00
Gael Guennebaud
fd78874888
Fix compilation of iterative solvers with dense matrices
2015-03-09 21:31:03 +01:00
Gael Guennebaud
d4317a85e8
Add typedefs for return types of SparseMatrixBase::selfadjointView
2015-03-09 21:29:46 +01:00
Gael Guennebaud
9e885fb766
Add unit tests for CG and sparse-LLT for long int as storage-index
2015-03-09 14:33:15 +01:00
Gael Guennebaud
224a1fe4c6
bug #963 : make IncompleteLUT compatible with non-default storage index types.
2015-03-09 13:55:20 +01:00
Gael Guennebaud
cf9940e17b
Make sparse unit-test helpers aware of StorageIndex
2015-03-09 13:54:05 +01:00
Benoit Jacob
39228cb224
deserialization assumed benchmarks in same order, but we shuffle them.
2015-03-06 19:29:01 -05:00
Benoit Jacob
a4f956b1da
merge
2015-03-06 19:13:36 -05:00
Benoit Jacob
19bf13aa62
Automatically serialize partial results to disk, reboot, and resume, when timings are getting bad
2015-03-06 19:11:50 -05:00
Gael Guennebaud
0ee391863e
Avoid undeflow when blocking size are tuned manually.
2015-03-06 21:51:09 +01:00
Gael Guennebaud
14a5f135a3
bug #969 : workaround abiguous calls to Ref using enable_if.
2015-03-06 17:51:31 +01:00
Gael Guennebaud
d23fcc0672
bug #978 : add unit test for zero-sized products
2015-03-06 16:12:08 +01:00
Gael Guennebaud
87681e508f
bug #978 : early return for vanishing products
2015-03-06 16:11:22 +01:00
Gael Guennebaud
4c8eeeaed6
update gemm changeset list
2015-03-06 15:08:20 +01:00
Gael Guennebaud
cd3bbffa73
Improve blocking heuristic: if the lhs fit within L1, then block on the rhs in L1 (allows to keep packed rhs in L1)
2015-03-06 14:31:39 +01:00
Gael Guennebaud
eedd5063fd
Update gemm performance monitoring tool:
...
- permit to recompute a subset of changesets
- update changeset list
- add a few more cases
2015-03-06 11:47:13 +01:00
Gael Guennebaud
58740ce4c6
Improve product kernel: replace the previous dynamic loop swaping strategy by a more general one:
...
It consists in increasing the actual number of rows of lhs's micro horizontal panel for small depth such that L1 cache is fully exploited.
2015-03-06 10:30:35 +01:00
Benoit Jacob
4ab01f7c21
slightly increase tolerance to clock speed variation
2015-03-05 14:41:16 -05:00
Benoit Jacob
5db2baa573
Make benchmark-blocking-sizes detect changes to clock speed and be resilient to that.
2015-03-05 13:44:20 -05:00
Gael Guennebaud
4c8b95d5c5
Rename LSCG to LeastSquaresConjugateGradient
2015-03-05 10:16:32 +01:00
Gael Guennebaud
7550107028
Product optimization: implement a dynamic loop-swapping startegy to improve memory accesses to the destination matrix in the case of K-rank-update like products, i.e., for products of the kind: "large x small" * "small x large"
2015-03-05 10:03:46 +01:00
Gael Guennebaud
2dc968e453
bug #824 : improve accuracy of Quaternion::angularDistance using atan2 instead of acos.
2015-03-04 17:03:13 +01:00
Benoit Jacob
2231b3dece
output to cout, not cerr, the actual results
2015-03-04 09:45:12 -05:00
Benoit Jacob
00ea121881
Complete the tool to analyze the efficiency of default sizes.
2015-03-04 09:30:56 -05:00
Benoit Steiner
0196141938
Fixed the optimized AVX implementation of the fast rsqrt function
2015-03-02 13:49:39 -08:00
Benoit Steiner
b0f2b6f297
Updated the tensor type casting code as follow: in the case where TgtRatio < SrcRatio, disable the vectorization of the source expression unless is has direct-access.
2015-03-02 10:11:40 -08:00
Benoit Steiner
d9cb604a5d
Disabled the use of aligned memory loads when converting a tensor from float to doubles since alignment can't always be guaranteed.
2015-03-02 09:41:36 -08:00
Benoit Steiner
4fd7f47692
Added an optimized version of rsqrt for SSE and AVX that is used when EIGEN_FAST_MATH is defined.
2015-03-02 09:38:47 -08:00
Benoit Steiner
ae73859a0a
Fixed incorrect assertion
2015-02-28 08:02:02 -08:00
Benoit Steiner
131449298f
Fixed clang compilation warning
2015-02-28 03:01:19 -08:00
Benoit Steiner
56ea45ff0f
Silenced some compilation warnings
2015-02-28 02:37:41 -08:00
Benoit Steiner
bb483313f6
Fixed another batch of compilation warnings
2015-02-28 02:32:46 -08:00
Benoit Steiner
fb53384b0f
Improved the default implementation of prsqrt
2015-02-28 01:51:26 -08:00
Benoit Steiner
61409d9449
Silenced one more comilation warning
2015-02-28 01:49:09 -08:00
Benoit Steiner
1a7b84dc75
Silenced a few compilation warnings
2015-02-28 01:45:15 -08:00
Benoit Steiner
37357a310f
Fixed compilation warnings
2015-02-27 23:54:24 -08:00
Benoit Steiner
cf1eea11de
Fixed compilation warnings
2015-02-27 23:52:02 -08:00
Benoit Steiner
78732186ee
Fixed compilation warnings
2015-02-27 23:51:16 -08:00
Benoit Steiner
4250a0cab0
Fixed compilation warnings
2015-02-27 21:59:10 -08:00
Benoit Steiner
a4e37b0617
Reverted the README
2015-02-27 13:09:49 -08:00
Benoit Steiner
306fceccbe
Pulled latest updates from trunk
2015-02-27 13:05:26 -08:00
Benoit Steiner
75e7f381c8
Pulled latest updates from trunk
2015-02-27 12:57:55 -08:00
Benoit Steiner
2386fc8528
Added support for 32bit index on a per tensor/tensor expression. This enables us to use 32bit indices to evaluate expressions on GPU faster while keeping the ability to use 64 bit indices to manipulate large tensors on CPU in the same binary.
2015-02-27 12:57:13 -08:00
Benoit Steiner
e1f6a45b14
README.md edited online with Bitbucket
2015-02-27 20:44:24 +00:00
Benoit Steiner
90893bbe18
README.md edited online with Bitbucket
2015-02-27 20:44:10 +00:00
Benoit Steiner
473e6d4c3d
README.md edited online with Bitbucket
2015-02-27 20:41:45 +00:00
Benoit Steiner
4369538227
README.md edited online with Bitbucket
2015-02-27 20:41:33 +00:00
Benoit Steiner
99cfbd6e84
README.md edited online with Bitbucket
2015-02-27 20:41:14 +00:00
Benoit Jacob
6466fa63be
Reimplement the selection between rotating and non-rotating kernels
...
using templates instead of macros and if()'s.
That was needed to fix the build of unit tests on ARM, which I had
broken. My bad for not testing earlier.
2015-02-27 15:30:10 -05:00
Benoit Steiner
05089aba75
Switch to truncated casting when converting floating point types to integer. This ensures that vectorized casts are consistent with scalar casts
2015-02-27 09:27:30 -08:00
Benoit Steiner
bf9877a92a
Pulled latest updates from trunk
2015-02-27 09:23:22 -08:00
Benoit Steiner
90f4e90f1d
Fixed off-by-one error that prevented the evaluation of small tensor expressions from being vectorized
2015-02-27 09:22:37 -08:00
Benoit Steiner
573b377110
Added support for vectorized type casting of tensors
2015-02-27 08:46:04 -08:00
Benoit Jacob
2fc3b484d7
remove trailing comma
2015-02-27 11:37:45 -05:00
Benoit Jacob
33669348c4
Disable Packet2f/2i halfpacket support in NEON.
...
I believe that it was erroneously turned on, since Packet2f/2i intrinsics are unimplemented,
and code trying to use halfpackets just fails to compile on NEON, as it tries to use the
default implementation of pload/pstore and the types don't match.
2015-02-27 11:35:37 -05:00
Benoit Jacob
f5ff4d826f
Fix NEON build flags: in the current NDK, at least with the clang-3.5 toolchain,
...
-mfpu=neon is not enough to activate NEON, since it's incompatible with the default float ABI,
and I have to pass -mfloat-abi=softfp (which is what everyone does in practice).
In fact, it would be a good idea to pass -mfloat-abi=softfp all the time, regardless of NEON.
Also removing the -mcpu=cortex-a8, as 1) it's not needed and 2) if we really wanted to pass
a specific -mcpu flag, that would presumably to tune performance for benchmarks, and it would
then not really make sense to tune for the very old cortex-a8 (it reflects ARM CPUs from 5 years ago).
2015-02-27 10:56:50 -05:00
Benoit Jacob
b7fc8746e0
Replace a static assert by a runtime one, fixes the build of unit tests on ARM
...
Also safely assert in the non-implemented path that should never be taken in practice,
and would return wrong results.
2015-02-27 10:01:59 -05:00
Benoit Steiner
f074bb4b5f
Fixed another compilation problem with TensorIntDiv.h
2015-02-26 11:14:23 -08:00
Benoit Steiner
57154fdb32
Can now use the tensor 'reverse' operation as a lvalue
2015-02-26 11:13:42 -08:00
Benoit Steiner
f41b1f1666
Added support for fast reciprocal square root computation.
2015-02-26 09:42:41 -08:00
Benoit Steiner
2fffe69b1b
Added missing copy constructor
2015-02-26 09:27:53 -08:00
Gael Guennebaud
bcf9bb5c1f
Avoid packing rhs multiple-times when blocking on the lhs only.
2015-02-26 17:01:33 +01:00
Gael Guennebaud
4ec3f04b3a
Make sure that the block size computation is tested by our unit test.
2015-02-26 17:00:36 +01:00
Gael Guennebaud
2e9cb06a87
Update changeset list to be checked by perf_monitoring/gemm.
2015-02-26 16:13:33 +01:00
Gael Guennebaud
a46061ab7b
Make perf_monitoring/gemm script more flexible:
...
- skip existing dataset
- add a "-up" option to recompute the dataset (see script header)
- allow to specify a filename prefix
2015-02-26 16:12:58 +01:00
Gael Guennebaud
a8ad8887bf
Implement a more generic blocking-size selection algorithm. See explanations inlines.
...
It performs extremely well on Haswell. The main issue is to reliably and quickly find the
actual cache size to be used for our 2nd level of blocking, that is: max(l2,l3/nb_core_sharing_l3)
2015-02-26 16:04:35 +01:00
Gael Guennebaud
400becc591
Fix typos in block-size testing code, and set peeling on k to 8.
2015-02-26 15:57:06 +01:00
Benoit Steiner
bffb6bdf45
Made TensorIntDiv.h compile with MSVC
2015-02-25 23:54:43 -08:00
Benoit Steiner
27f3fb2bcc
Fixed another clang warning
2015-02-25 22:54:20 -08:00
Benoit Steiner
f8fbb3f9a6
Fixed several compilation warnings reported by clang
2015-02-25 22:22:37 -08:00
Benoit Steiner
8e817b65d0
Silenced a few more compilation warnings generated by nvcc
2015-02-25 17:46:20 -08:00
Benoit Steiner
410070e5ab
Added more tests to validate support for tensors laid out in RowMajor order.
2015-02-25 16:14:59 -08:00
Benoit Steiner
1cfd51908c
Added support for RowMajor layout to the tensor patch extraction cofde.
2015-02-25 13:29:12 -08:00
Benoit Steiner
eb21a8173e
Pulled latest changes from trunk
2015-02-25 09:49:44 -08:00
Benoit Steiner
8afce86e64
Added support for RowMajor layout to the image patch extraction code
...
Speeded up the unsupported_cxx11_tensor_image_patch test and reduced its memory footprint
2015-02-25 09:48:54 -08:00
Benoit Jacob
692136350b
So I extensively measured the impact of the offset in this prefetch. I tried offset values from 0 to 128 (on this float* pointer, so implicitly times 4 bytes).
...
On x86, I tested a Sandy Bridge with AVX with 12M cache and a Haswell with AVX+FMA with 6M cache on MatrixXf sizes up to 2400.
I could not see any significant impact of this offset.
On Nexus 5, the offset has a slight effect: values around 32 (times sizeof float) are worst. Anything else is the same: the current 64 (8*pk), or... 0.
So let's just go with 0!
Note that we needed a fix anyway for not accounting for the value of RhsProgress. 0 nicely avoids the issue altogether!
2015-02-25 12:37:14 -05:00
Christoph Hertzberg
531fa9de77
bug #970 : Add EIGEN_DEVICE_FUNC to RValue functions, in case Cuda supports RValue-references.
2015-02-24 21:03:28 +01:00
Benoit Jacob
26275b250a
Fix my recent prefetch changes:
...
- the first prefetch is actually harmful on Haswell with FMA,
but it is the most beneficial on ARM.
- the second prefetch... I was very stupid and multiplied by sizeof(scalar)
and offset of a scalar* pointer. The old offset was 64; pk = 8, so 64=pk*8.
So this effectively restores the older offset. Actually, there were
two prefetches here, one with offset 48 and one with offset 64. I could not
confirm any benefit from this strange 48 offset on either the haswell or
my ARM device.
2015-02-23 16:55:17 -05:00
Benoit Jacob
488874781b
Add analyze-blocking-sizes program under bench/ to analyze multiple logs
...
generated by benchmark-blocking-sizes.
2015-02-23 14:02:29 -05:00
Christoph Hertzberg
052b6b40f1
Fix two trivial warnings
2015-02-22 12:40:51 +01:00
Christoph Hertzberg
ecbf2a6656
log1p is defined only for real Scalars in C++11
2015-02-21 19:58:24 +01:00
Christoph Hertzberg
6af6cf0c2e
I can reproduce any problems that justified this hack. However it makes builds fail in C++11 mode.
2015-02-21 19:43:56 +01:00
Gael Guennebaud
3cf642baa3
Fix compilation of unit tests disabling assertion cheking
2015-02-21 14:13:48 +01:00
Benoit Jacob
458cf91cd9
Add benchmark-blocking-sizes.cpp to bench/ per mailing list discussion.
2015-02-20 17:08:04 -05:00
Gael Guennebaud
03ec601ff7
Initial version of a small script to help tracking performance regressions
2015-02-20 19:20:34 +01:00
Gael Guennebaud
333b497383
update bench_gemm
2015-02-20 11:59:49 +01:00
Gael Guennebaud
2da1594750
Fix doc of Ref<>
2015-02-20 11:52:22 +01:00
Gael Guennebaud
01b8440579
With C++11 Matrix<float> + Matrix<complex<float>> does not even compile
2015-02-20 09:32:49 +01:00
Gael Guennebaud
3594451ee0
Remove EIGEN_TEST_C++0x option and let EIGEN_TEST_CXX11 adds the -std=c++11 flag
2015-02-20 09:31:27 +01:00
Gael Guennebaud
b192e29eae
In C++11 destructors do not throw by default (fix CommaInitializer unit test)
2015-02-20 09:28:34 +01:00
Benoit Steiner
ab41652d81
Pulled latest changes from trunk
2015-02-19 21:23:37 -08:00
Benoit Steiner
7765039f1c
Marked the CUDA packet primitives as EIGEN_DEVICE_FUNC since they'll end up being executed on the GPU device.
2015-02-19 21:22:51 -08:00
Gael Guennebaud
a66f5fc2fd
Fix regression with C++11 support of lambda: now internal::result_of falls back to std::result_of in C++11.
2015-02-19 23:32:12 +01:00
Gael Guennebaud
ece6b440f9
Fix a C++11 compilation issue in unit test
2015-02-19 23:31:08 +01:00
Gael Guennebaud
1b7e12847d
Fix some calls to result_of on binary functors as unary ones.
2015-02-19 23:30:41 +01:00
Gael Guennebaud
0f4dd15dfc
Declare const some const variables
2015-02-19 23:28:57 +01:00
Benoit Steiner
92ceb02c6d
Pulle latest updates from trunk
2015-02-19 11:59:52 -08:00
Benoit Steiner
110fb90250
Improved the documentations
2015-02-19 11:59:04 -08:00
Gael Guennebaud
829dddd0fd
Add support for C++11 result_of/lambdas
2015-02-19 15:18:37 +01:00
Benoit Jacob
db05f2d01e
rotating kernel: avoid compiling anything outside of ARM
2015-02-18 15:43:52 -05:00
Benoit Jacob
0ed00d5438
remove a newly introduced redundant typedef - sorry.
2015-02-18 15:05:01 -05:00
Benoit Jacob
9bd8a4bab5
bug #955 - Implement a rotating kernel alternative in the 3px4 gebp path
...
This is substantially faster on ARM, where it's important to minimize the number of loads.
This is specific to the case where all packet types are of size 4. I made my best attempt to minimize how dirty this is... opinions welcome.
Eventually one could have a generic rotated kernel, but it would take some work to get there. Also, on sandy bridge, in my experience, it's not beneficial (even about 1% slower).
2015-02-18 15:03:35 -05:00
Hauke Heibel
ee27d50633
Fixed template parameter.
2015-02-18 18:51:08 +01:00
Gael Guennebaud
73a24de424
merge
2015-02-18 15:51:00 +01:00
Gael Guennebaud
63eb0f6fe6
Clean a bit computeProductBlockingSizes (use Index type, remove CEIL macro)
2015-02-18 15:49:05 +01:00
Gael Guennebaud
fc5c3e85e2
Fix bug #961 : eigen-doc.tgz included part of itself.
2015-02-18 15:47:01 +01:00
Benoit Jacob
4a3e6c8be1
bug #958 - Allow testing specific blocking sizes
...
This is only a debugging/testing patch. It allows testing specific
product blocking sizes, typically to study the impact on performance.
Example usage:
int testk, testm, testn;
#define EIGEN_TEST_SPECIFIC_BLOCKING_SIZES
#define EIGEN_TEST_SPECIFIC_BLOCKING_SIZE_K testk
#define EIGEN_TEST_SPECIFIC_BLOCKING_SIZE_M testm
#define EIGEN_TEST_SPECIFIC_BLOCKING_SIZE_N testn
#include <Eigen/Core>
2015-02-18 09:43:55 -05:00
Gael Guennebaud
c7bb1e8ea8
Fix a regression when using OpenMP, and fix bug #714 : the number of threads might be lower than the number of requested ones
2015-02-18 15:19:23 +01:00
Jan Blechta
168ceb271e
Really use zero guess in ConjugateGradients::solve as documented
...
and expected for consistency with other methods.
2015-02-18 14:26:10 +01:00
Gael Guennebaud
8fdcaded5e
merge
2015-03-04 10:18:08 +01:00
Gael Guennebaud
c43154bbc5
Check for no-reallocation in SparseMatrix::insert (bug #974 )
2015-03-04 10:16:46 +01:00
Gael Guennebaud
1ce0178363
Improve efficiency of SparseMatrix::insert/coeffRef for sequential outer-index insertion strategies (bug #974 )
2015-03-04 09:39:26 +01:00
Gael Guennebaud
3dca4a1efc
Update manual wrt new LSCG solver.
2015-03-04 09:35:30 +01:00
Gael Guennebaud
05274219a7
Add a CG-based solver for rectangular least-square problems (bug #975 ).
2015-03-04 09:34:27 +01:00
Benoit Jacob
2aa09e6b4e
Fix asm comments in 1px1 kernel
2015-03-03 13:44:00 -05:00
Benoit Steiner
5d2fd64a1a
Fixed compilation error when compiling with gcc4.7
2015-03-03 08:56:49 -08:00
Benoit Jacob
f64b4480af
Add missing copyright notices
2015-03-03 11:43:56 -05:00
Benoit Jacob
eae8e27b7d
Add a benchmark-default-sizes action to benchmark-blocking-sizes.cpp
2015-03-03 11:41:21 -05:00
Marc Glisse
37a93c4263
New scoring functor to select the pivot.
...
This is can be useful for non-floating point scalars, where choosing the biggest element is generally not the best choice.
2015-03-03 17:08:28 +01:00
Benoit Jacob
ccc1277a42
must also disable complex<double> when disabling double vectorization
2015-03-03 10:17:05 -05:00
Benoit Jacob
f839099512
Work around an ICE in Clang 3.5 in the iOS toolchain with double NEON intrinsics.
2015-03-03 09:35:22 -05:00
Benoit Jacob
9930e9583b
Improve analyze-blocking-sizes, and in particular give it a evaluate-defaults tool
...
that shows the efficiency of Eigen's default blocking sizes choices, using a
previously computed table from benchmark-blocking-sizes.
2015-03-02 18:08:38 -05:00
Benoit Jacob
1ec0f4fadf
HalfPacket also needed to be disabled for double, on ARMv8.
2015-03-02 16:08:54 -05:00
Gael Guennebaud
3109f0e74e
Add SSE vectorization of Quaternion::conjugate. Significant speed-up when combined with products like q1*q2.conjugate()
2015-03-02 20:09:33 +01:00
Abhijit Kundu
ef09ce4552
Fix for TensorIO for Fixed sized Tensors.
...
The following code snippet was failing to compile:
TensorFixedSize<double, Sizes<4, 3> > t_4x3;
cout << 4x3;
2015-02-28 21:30:31 -05:00
Abhijit Kundu
3a4b6827b4
Merged eigen/eigen into default
2015-02-28 20:15:28 -05:00
Christoph Hertzberg
31e2ffe82c
Replaced POSIX random() by internal::random
2015-02-28 18:39:37 +01:00
Christoph Hertzberg
73dd95e7b0
Use @CMAKE_MAKE_PROGRAM@ instead of make in buildtests.sh
2015-02-28 16:51:53 +01:00
Christoph Hertzberg
682196e9fc
Fixed MPRealSupport
2015-02-28 16:41:00 +01:00
Christoph Hertzberg
33f40b2883
Cygwin does not like weak linking either.
2015-02-28 14:53:11 +01:00
Christoph Hertzberg
0f82a1d7b7
bug #967 : Automatically add cxx11 suffix when building in C++11 mode
2015-02-28 14:52:26 +01:00
Gael Guennebaud
9aee1e300a
Increase unit-test L1 cache size to ensure we are doing at least 2 peeled loop within product kernel.
2015-02-27 22:55:12 +01:00
Gael Guennebaud
b10cd3afd2
Re-enbale detection of min/max parentheses protection, and re-enable mpreal_support unit test.
2015-02-27 22:38:00 +01:00
Abhijit Kundu
4084dce038
Added CMake support for Tensor module. CMake now installs CXX11 Tensor module like the rest of the unsupported modules
2015-02-26 16:50:09 -05:00
Gael Guennebaud
548b781380
Fix bug #945 : workaround MSVC warning
2015-02-18 12:53:49 +01:00
Gael Guennebaud
6f4adc9e94
Add missing install directives for arch/CUDA
2015-02-18 11:40:06 +01:00
Gael Guennebaud
371d3bef36
Workaround dead store warnings in unit tests.
2015-02-18 11:30:44 +01:00
Gael Guennebaud
63464754ef
Add an internal assertion in makeCompressed to catch a possible risk of null-pointer access.
2015-02-18 11:29:54 +01:00
Gael Guennebaud
eb563049f7
Remove some dead stores.
2015-02-18 11:26:48 +01:00
Gael Guennebaud
dc7e6acc05
Fix possible usage of a null pointer in CholmodSupport
2015-02-18 11:26:25 +01:00
Gael Guennebaud
d4eda01488
Big 957, workaround MSVC/ICC compilation issue
2015-02-18 11:24:32 +01:00
Christoph Hertzberg
24d65ac0b0
Removed redundant typedef which confused old gcc versions.
2015-02-18 01:03:32 +01:00
Gael Guennebaud
20cac72b82
Packet must be passed by const reference and not by value to avoid alignment issue.
2015-02-17 22:58:32 +01:00
Benoit Steiner
36c9d08274
Pulled latest updates from trunk
2015-02-17 10:04:25 -08:00
Benoit Steiner
f77054f43c
Silenced compilation warning
2015-02-17 10:02:04 -08:00
Benoit Steiner
1d3b64d32b
Added support for tensor concatenation as lvalue
2015-02-17 09:57:41 -08:00
Benoit Steiner
00f048d44f
Added support for tensor concatenation as lvalue
2015-02-17 09:54:40 -08:00
Christoph Hertzberg
97a36ecba4
Suppress some remaining Index conversion warnings
2015-02-17 18:52:39 +01:00
Gael Guennebaud
159fb181c2
Disable __m128* wrappers when compiling with AVX and -fabi-version=4
2015-02-17 16:27:20 +01:00
Gael Guennebaud
91ab2489dd
Fix compilation with GCC/AVX (workaround __m128 and __m256 being the same type with default ABI)
2015-02-17 16:08:07 +01:00
Gael Guennebaud
9daf8eba6f
Fix compilation of Cholmod*(matrix) ctor
2015-02-17 15:24:52 +01:00
Gael Guennebaud
3373c903b3
Fix compilation of int*complex with gcc
2015-02-16 19:18:12 +01:00
Gael Guennebaud
9f49f00feb
Extend sparse-determinant unitests
2015-02-16 19:09:48 +01:00
Gael Guennebaud
f0b1b1df9b
Fix SparseLU::signDeterminant() method, and add a SparseLU::determinant() method.
2015-02-16 19:09:22 +01:00
Gael Guennebaud
8768ff3c31
Add PermutationMatrix::determinant method.
2015-02-16 19:08:25 +01:00
Martin Drozdik
64b29e06b9
bug #956 : Fixed bug in move constructors of DenseStorage which caused "moved-from" objects to be in an invalid state.
2015-02-16 18:18:46 +09:00
Gael Guennebaud
1c0e8bcf09
Fix unused variable warning.
2015-02-16 17:21:30 +01:00
Gael Guennebaud
69fa405096
Update circulant custom expression example
2015-02-16 17:21:16 +01:00
Gael Guennebaud
0f464d9d87
bug #897 : fix regression in BiCGSTAB(mat) ctor (an all other iterative solvers).
...
Add respective regression unit test.
2015-02-16 17:05:10 +01:00
Gael Guennebaud
470d26d580
Remove some useless typedefs
2015-02-16 16:48:21 +01:00
Gael Guennebaud
4dded73227
bug #914 : fix compiler detection on windows
...
(grafted from 77af14fb62
)
2015-02-16 16:26:47 +01:00
Gael Guennebaud
953d5ccfd5
Doc: explain how to free allocated memory in SparseMAtrix
2015-02-16 15:56:11 +01:00
Gael Guennebaud
98604576d1
Merged in chtz/eigen-indexconversion (pull request PR-92)
...
bug #877 , bug #572 : Get rid of Index conversion warnings, summary of changes:
- Introduce a global typedef Eigen::Index making Eigen::DenseIndex and AnyExpr<>::Index deprecated (default is std::ptrdiff_t).
- Eigen::Index is used throughout the API to represent indices, offsets, and sizes.
- Classes storing an array of indices uses the type StorageIndex to store them. This is a template parameter of the class. Default is int.
- Methods that *explicitly* set or return an element of such an array take or return a StorageIndex type. In all other cases, the Index type is used.
2015-02-16 15:29:00 +01:00
Gael Guennebaud
45cbb0bbb1
The usage of DenseIndex is deprecated, so let's replace DenseIndex by Index
2015-02-16 15:05:41 +01:00
Gael Guennebaud
cc641aabb7
Remove deprecated usage of expr::Index.
2015-02-16 14:46:51 +01:00
Gael Guennebaud
aa6c516ec1
Fix many long to int conversion warnings:
...
- fix usage of Index (API) versus StorageIndex (when multiple indexes are stored)
- use StorageIndex(val) when the input has already been check
- use internal::convert_index<StorageIndex>(val) when val is potentially unsafe (directly comes from user input)
2015-02-16 13:19:05 +01:00
Christoph Hertzberg
bd511dde9d
bug #952 : Missing \endcode made doxygen fail to build ColPivHouseholderQR
2015-02-15 06:08:25 +01:00
Benoit Steiner
e2cfddf75f
Pulled latest updates from trunk
2015-02-13 16:21:59 -08:00
Benoit Steiner
0927801a84
Optimized version of the sin(), exp(), log() and sqrt() function for AVX
2015-02-13 16:07:08 -08:00
Benoit Jacob
e972b55ec4
bug #953 - Fix prefetches in 3px4 product kernel
...
This gives a 10% speedup on nexus 4 and on nexus 5.
2015-02-13 14:52:36 -05:00
Gael Guennebaud
fc202bab39
Index refactoring: StorageIndex must be used for storage only (and locally when it make sense). In all other cases use the global Index type.
2015-02-13 18:57:41 +01:00
Gael Guennebaud
fe51319980
Merge Index-refactoring branch with default, fix PastixSupport, remove some useless typedefs
2015-02-13 10:03:53 +01:00
Gael Guennebaud
0918c51e60
merge Tensor module within Eigen/unsupported and update gemv BLAS wrapper
2015-02-12 21:48:41 +01:00
Gael Guennebaud
409547a0c8
update EIGEN_FAST_MATH documentation
2015-02-12 21:04:31 +01:00
Benoit Steiner
4470c99975
Added a test to validate tensor casting on cuda devices
2015-02-10 14:40:18 -08:00
Benoit Steiner
6620aaa4b3
Silenced a few compilation warnings generated by nvcc
2015-02-10 14:34:42 -08:00
Benoit Steiner
f669f5656a
Marked a few functions as EIGEN_DEVICE_FUNC to enable the use of tensors in cuda kernels.
2015-02-10 14:29:47 -08:00
Gael Guennebaud
029d236ceb
merge
2015-02-10 23:12:47 +01:00
Gael Guennebaud
fe25f3b8e3
FMA has been wrongly disabled
2015-02-10 23:11:35 +01:00
Benoit Steiner
ceb4c9c10b
Pulled latest changes from trunk
2015-02-10 14:03:17 -08:00
Benoit Steiner
cc5d7ff523
Added vectorized implementation of the exponential function for ARM/NEON
2015-02-10 14:02:38 -08:00
Gael Guennebaud
d771295554
remove useless include
2015-02-10 22:59:27 +01:00
Benoit Steiner
fefec723aa
Fixed compilation error triggered when trying to vectorize a non vectorizable cuda kernel.
2015-02-10 13:16:22 -08:00
Benoit Steiner
780b2422e2
Silenced the last batch of compilation warnings triggered by gcc 4.8
2015-02-10 12:43:55 -08:00
Benoit Steiner
c21e45fbc5
Fixed a few more compilation warnings
2015-02-10 12:36:26 -08:00
Benoit Steiner
057cfd2f02
Silenced more compilation warnings
2015-02-10 12:25:02 -08:00
Benoit Steiner
114e863f08
Silcenced a few compilation warnings
2015-02-10 12:20:24 -08:00
Benoit Steiner
410895a7e4
Silenced several compilation warnings
2015-02-10 12:13:19 -08:00
Benoit Steiner
4716c2c666
Fixed compilation error
2015-02-10 12:06:19 -08:00
Benoit Steiner
91fe3a3004
Removed a debug printf statement.
2015-02-10 10:29:28 -08:00
Jan Blechta
c3f3580b8f
Fix bug #733 : step by step solving is not a good example for solveWithGuess
2015-02-10 14:24:39 +01:00
Gael Guennebaud
deecff97ed
typo
2015-02-10 19:22:05 +01:00
Gael Guennebaud
c6e8caf090
Allows Lower|Upper as a template argument of CG and MINRES: in this case the full matrix will be considered.
2015-02-10 18:57:41 +01:00
Gael Guennebaud
d10d6a40dd
bug #897 : Update unsupported iterative solvers based on IterativeSolverBased.
2015-02-10 13:02:59 +01:00
Gael Guennebaud
87629cd639
bug #897 : makes iterative sparse solvers use a Ref<SparseMatrix> instead of a SparseMatrix pointer. This fixes usage of iterative solvers with a Map<SparseMatrix>.
2015-02-09 11:41:25 +01:00
Gael Guennebaud
bde98df03f
merge
2015-02-09 11:15:37 +01:00
Gael Guennebaud
d4ec48575e
Make Block<SparseMatrix> inherit SparseCompressedBase in the case of an inner-panels and fix valuePtr() innerIndexPtr()
2015-02-09 11:14:36 +01:00
Gael Guennebaud
554aa9b31d
Add failtests for Ref<SparseMatrix>
2015-02-09 10:24:07 +01:00
Gael Guennebaud
3af29caae8
Cleaning and add more unit tests for Ref<SparseMatrix> and Map<SparseMatrix>
2015-02-09 10:23:45 +01:00
Gael Guennebaud
f2ff8c091e
Add a Ref<SparseMatrix> specialization.
2015-02-07 22:04:18 +01:00
Gael Guennebaud
f3be317614
Add a Map<SparseMatrix> specialization.
2015-02-07 22:03:25 +01:00
Gael Guennebaud
08081f8293
Make SparseTranspose inherit SparseCompressBase when possible
2015-02-07 22:02:14 +01:00
Gael Guennebaud
7838fda82c
Add a SparseCompressedBase class providing (un)compressed accessors (like data()/*Stride() for dense matrices),
...
and a CompressedAccessBit flag (similar to DirectAccessBit for dense matrices).
2015-02-07 22:00:46 +01:00
Benoit Steiner
3ba6647398
Fixed the cxx11_meta test
2015-02-06 06:00:59 -08:00
Benoit Steiner
01f7918788
Pulled latest fixes
2015-02-06 05:30:20 -08:00
Gael Guennebaud
b50ffaddf2
merge
2015-02-06 14:27:12 +01:00
Gael Guennebaud
74e460b995
Fix symmetric product
2015-02-06 14:26:24 +01:00
Gael Guennebaud
c03c73c9b7
Fix clang compilation
2015-02-06 14:26:12 +01:00
Gael Guennebaud
668518aed6
Fix non initialized entries and comparison of very small numbers
2015-02-06 14:25:41 +01:00
Benoit Steiner
c739102ef9
Pulled the latest changes from the trunk
2015-02-06 05:25:03 -08:00
Benoit Steiner
2559fa9b0f
Fixed compilation error in the tensor broadcasting test
2015-02-06 02:55:18 -08:00
Benoit Steiner
dcb2a8b184
Added the EIGEN_HAS_CONSTEXPR define
...
Gate the tensor index list code based on the value of EIGEN_HAS_CONSTEXPR
2015-02-06 02:51:59 -08:00
Filippo Basso
a8f2c6eec7
Using numext::pow instead of std::pow in poly_eval function.
2015-02-04 18:37:51 +00:00
Gael Guennebaud
b1eca55328
Use Ref<> to ensure that both x and b in Ax=b are compatible with Umfpack/SuperLU expectations
2015-02-03 23:46:05 +01:00
Gael Guennebaud
ebdf6a2dbb
SPQR: fix default threshold value
2015-02-03 22:32:34 +01:00
Benoit Steiner
f64045a060
Silenced a few more compilation warnings
2015-01-30 19:52:01 -08:00
Benoit Steiner
590f4b0aa3
Silenced some compilation warnings
2015-01-30 19:46:30 -08:00
Benoit Jacob
5ef95fabee
bug #936 , patch 3/3: Properly detect FMA support on ARM (requires VFPv4)
...
and use it instead of MLA when available, because it's both more accurate,
and faster.
2015-01-30 17:45:03 -05:00
Benoit Jacob
0f21613698
bug #936 , patch 2/3: Remove EIGEN_VECTORIZE_FMA, was redundant with EIGEN_HAS_SINGLE_INSTRUCTION_MADD
2015-01-30 17:44:26 -05:00
Benoit Jacob
340b8afb14
bug #936 , patch 1.5/3: rename _FUSED_ macros to _SINGLE_INSTRUCTION_,
...
because this is what they are about. "Fused" means "no intermediate rounding
between the mul and the add, only one rounding at the end". Instead,
what we are concerned about here is whether a temporary register is needed,
i.e. whether the MUL and ADD are separate instructions.
Concretely, on ARM NEON, a single-instruction mul-add is always available: VMLA.
But a true fused mul-add is only available on VFPv4: VFMA.
2015-01-31 14:15:57 -05:00
Benoit Jacob
9f99f61e69
bug #936 , patch 1/3: some cleanup and renaming for consistency.
2015-01-30 17:43:56 -05:00
Benoit Jacob
759bd92a85
bug #935 : Add asm comments in GEBP kernels to work around a bug
...
in both GCC and Clang on ARM/NEON, whereby they spill registers,
severely harming performance. The reason why the asm comments
make a difference is that they prevent the compiler from
reordering code across these boundaries, which has the effect
of extending the lifetime of local variables and increasing
register pressure on this register-tight code.
2015-01-30 17:27:56 -05:00
Gael Guennebaud
f1092d2f73
bug #941 : fix accuracy issue in ColPivHouseholderQR, do not stop decomposition on a small pivot
2015-01-30 19:04:04 +01:00
Gael Guennebaud
9d82f7e30d
Supernodes was disabled.
2015-01-30 17:24:40 +01:00
Benoit Steiner
e896c0ade7
Marked the contraction operation as read only, since its result can't be assigned.
2015-01-29 10:29:47 -08:00
Benoit Steiner
5a6ea4edf6
Added more tests to cover tensor reductions
2015-01-28 10:02:47 -08:00
Gael Guennebaud
a727a2c4ed
bug #933 : RealSchur, do not consider the input matrix norm to check negligible sub-diag entries. This also makes this test consistent with the complex and self-adjoint cases.
2015-01-28 16:07:51 +01:00
Benoit Steiner
9dfdbd7e56
mproved the performance of tensor reductions that preserve the inner most dimension(s).
2015-01-27 14:15:31 -08:00
Benoit Steiner
46fc881e4a
Added a few benchmarks for the tensor code
2015-01-26 17:46:40 -08:00
Gael Guennebaud
c6eb84aabc
Enable vectorization of transposeInPlace for PacketSize x PacketSize matrices
2015-01-26 17:09:01 +01:00
Gael Guennebaud
e1f1091fde
Add support for dense ?= diagonal
2015-01-24 10:32:49 +01:00
Gael Guennebaud
b9d314ae19
bug #329 : fix typo
2015-01-17 21:55:33 +01:00
Benoit Steiner
14f537c296
gcc doesn't consider that
...
template<typename OtherDerived> TensorStridingOp& operator = (const OtherDerived& other)
provides a valid assignment operator for the striding operation, and therefore refuses to compile code like:
result.stride(foo) = source.stride(bar);
Added the explicit
TensorStridingOp& operator = (const TensorStridingOp& other)
as a workaround to get the code to compile, and did the same in all the operations that can be used as lvalues.
2015-01-16 09:09:23 -08:00
Benoit Steiner
641e824c56
Added cube() operation
2015-01-15 11:11:48 -08:00
Benoit Steiner
b5124e7cfd
Created many additional tests
2015-01-14 15:46:04 -08:00
Benoit Steiner
54e3633b43
Updated the list of include files
2015-01-14 15:43:38 -08:00
Benoit Steiner
f697df7237
Improved support for RowMajor tensors
...
Misc fixes and API cleanups.
2015-01-14 15:38:48 -08:00
Benoit Steiner
6559d09c60
Ensured that each thread has it's own copy of the TensorEvaluator: this avoid race conditions when the evaluator calls a non thread safe functor, eg when generating random numbers.
2015-01-14 15:34:50 -08:00
Benoit Steiner
8a382aa119
Improved the resizing of tensors
2015-01-14 15:33:11 -08:00
Benoit Steiner
703c526355
Misc improvements
2015-01-14 15:31:52 -08:00
Benoit Steiner
4cdf3fe427
Misc fixes
2015-01-14 15:30:47 -08:00
Benoit Steiner
0feff6e987
Expanded the functionality of index lists
2015-01-14 15:29:48 -08:00
Gael Guennebaud
cd679f2c47
Fix doc: setConstant does not exist for SparseMatrix.
2015-01-14 22:06:09 +01:00
Benoit Steiner
1ac8600126
Fixed the return type of coefficient wise operations. For example, the abs function returns a floating point value when called on a complex input.
2015-01-14 12:47:46 -08:00
Benoit Steiner
378bdfb7f0
Added missing apis to the TensorMap class
2015-01-14 12:45:20 -08:00
Benoit Steiner
0526dc1bb4
Added missing apis to the tensor class
2015-01-14 12:44:08 -08:00
Benoit Steiner
1a36590e84
Fixed the printing of RowMajor tensors
2015-01-14 12:43:20 -08:00
Benoit Steiner
7e0b6c56b4
Added ability to initialize a tensor using an initializer list
2015-01-14 12:41:30 -08:00
Benoit Steiner
b12dd1ae3c
Misc improvements for fixed size tensors
2015-01-14 12:39:34 -08:00
Benoit Steiner
71676eaddd
Added support for RowMajor inputs to the contraction code.
2015-01-14 12:36:57 -08:00
Benoit Steiner
0a0ab6dd15
Increased the functionality of the tensor devices
2015-01-14 11:45:17 -08:00
Benoit Steiner
5692723c58
Improved the performance of the contraction code on CUDA
2015-01-14 11:42:52 -08:00
Benoit Steiner
8f4b8d204b
Improved the performance of tensor reductions
...
Added the ability to generate random numbers following a normal distribution
Created a test to validate the ability to generate random numbers.
2015-01-14 10:19:33 -08:00
Benoit Steiner
3bd2b41b2e
Created a test for tensor type casting
2015-01-14 10:17:02 -08:00
Benoit Steiner
4928ea1212
Added ability to reverse the order of the coefficients in a tensor
2015-01-14 10:15:58 -08:00
Benoit Steiner
b00fe1590d
Added ability to swap the layout of a tensor
2015-01-14 10:14:46 -08:00
Benoit Steiner
c94174b4fe
Improved tensor references
2015-01-14 10:13:08 -08:00
Benoit Steiner
91dd53e54d
Created some documentation
2015-01-13 16:07:51 -08:00
Gael Guennebaud
279786e987
Fix missing evaluator in outer-product
2015-01-13 10:25:50 +01:00
Gael Guennebaud
ae4644cc68
bug #907 , ARM64: workaround ICE in xcode/clang
2015-01-13 10:03:00 +01:00
Gael Guennebaud
36f7c1337f
bug #907 , ARM64: workaround vreinterpretq_u64_* not defined in xcode/clang
2015-01-13 09:57:37 +01:00
Gael Guennebaud
63974bcb88
Big 907: workaround some missing intrinsics in current NDK's gcc version (ARM64)
2015-01-07 09:44:25 +01:00
Gael Guennebaud
79f4a59ed9
bug #907 : fix compilation with ARM64
2015-01-07 09:41:56 +01:00
Benoit Steiner
9f98650d0a
Ensured that contractions that can be reduced to a matrix vector product work correctly even when the input coefficients aren't aligned.
2015-01-06 09:29:13 -08:00
Gael Guennebaud
db5b0741b5
Fix bug #925 : typo in MatLab versions of middleRows
2015-01-04 21:39:50 +01:00
Gael Guennebaud
f5f6e2c6f4
bug #921 : fix utilization of bitwise operation on enums in first_aligned
2014-12-19 14:41:59 +01:00
Gael Guennebaud
25c7d9164f
bug #920 : fix MSVC 2015 compilation issues
2014-12-18 22:58:15 +01:00
Gael Guennebaud
b8d9eaa19b
Use true compile time "if" for Transform::makeAffine
2014-12-13 22:16:39 +01:00
Gael Guennebaud
f806c23012
Fix false negatives in geo_transformations unit tests
2014-12-16 16:50:30 +01:00
Gael Guennebaud
99501a2c4c
Fix wrong negative in nullary unit test when extended precision is used (FPU).
2014-12-16 16:23:47 +01:00
Gael Guennebaud
7dad5f797e
bug #821 : workaround MSVC 2013 issue with using Base::Base::operator=
2014-12-16 13:33:43 +01:00
Christoph Hertzberg
dcad508986
At least CMAKE 2.8.4 is required for WORKING_DIRECTORY option in add_test
2014-12-15 12:45:29 +01:00
Christoph Hertzberg
608733415a
Free functions should only be declared as static in separate compilation units
...
(grafted from d85abc89c5
)
2014-12-12 12:01:03 +01:00
Gael Guennebaud
57ec399ec9
Remove unused fortran files
2014-12-13 21:41:25 +01:00
Gael Guennebaud
56ca44ad1a
Use f2c generated code instead of the original fortran code, except for dotc/dotu.
2014-12-11 17:03:41 +01:00
Christoph Hertzberg
e8cdbedefb
bug #877 , bug #572 : Introduce a global Index typedef. Rename Sparse*::Index to StorageIndex, make Dense*::StorageIndex an alias to DenseIndex. Overall this commit gets rid of all Index conversion warnings.
2014-12-04 22:48:53 +01:00
Gael Guennebaud
6ccf97f3e6
Fix GL support wrt evaluators
2014-12-04 22:05:28 +01:00
Gael Guennebaud
433bce5c3a
UmfPack support: fix redundant evaluation/copies when calling compute() and support generic expressions as input
2014-12-02 17:30:57 +01:00
Gael Guennebaud
775f7e5fbb
bug #697 : make sure empty classes are at the end in case of multiple inheritence
2014-12-02 14:40:19 +01:00
Gael Guennebaud
a819fa148d
Fix MSVC compilation issue
2014-12-02 14:35:31 +01:00
Gael Guennebaud
1a8dc85142
bug #897 : fix UmfPack usage with mapped sparse matrices
2014-12-02 13:57:13 +01:00
Gael Guennebaud
4974d1d2b4
Fix bug #911 : m_extractedDataAreDirty was not initialized in UmfPackLU
2014-12-02 13:54:06 +01:00
Gael Guennebaud
e2f3e4e4aa
Document non-const SparseMatrix::diagonal() method.
2014-12-01 14:45:15 +01:00
Gael Guennebaud
b26e697182
Make SparseMatrix::coeff() returns a const reference and add a non const version of SparseMatrix::diagonal()
2014-12-01 14:41:39 +01:00
Gael Guennebaud
b1f9f603a0
Simplify return type of diagonal(Index) (and ease compiler job)
2014-11-28 14:39:47 +01:00
Gael Guennebaud
5384e89147
Disable MatrixBase::bdcSvd with CUDA (just like MatrixBase::jacobiSvd
2014-11-26 22:29:29 +01:00
Gael Guennebaud
8518ba0bbc
Fix Hyperplane::Through(a,b,c) when points are aligned or identical. We use the stratgey as in Quaternion::setFromTwoVectors.
2014-11-26 15:01:53 +01:00
Tim Murray
80cae358b0
Adds a modified f2c-generated C implmentation for BLAS.
...
This adds an optional implementation for the BLAS library that does
not require the use of a FORTRAN compiler. It can be enabled with
EIGEN_USE_F2C_BLAS.
The C implementation uses the standard gfortran calling convention
and does not require the use of -ff2c when compiled with gfortran.
2014-11-24 10:56:30 -08:00
Gael Guennebaud
0efaff9b3b
Fix out-of-bounds write
2014-12-11 16:15:20 +01:00
Gael Guennebaud
41a20994cc
In simplicial cholesky: avoid deep copy of the input matrix is this later can be used readily
2014-12-08 17:56:33 +01:00
Gael Guennebaud
a910a7466e
Fix inner iterator type
2014-12-08 17:55:31 +01:00
Gael Guennebaud
4371911861
Remove useless and non standard numext::atanh2 function.
2014-12-08 16:44:34 +01:00
Gael Guennebaud
5fc4ce6449
bug #876 : remove usage of atanh2 in matrix power
2014-12-08 16:44:05 +01:00
Gael Guennebaud
77294047d6
bug #876 , matrix_log_compute_2x2: directly use logp1 instead of atanh2
2014-12-08 16:28:06 +01:00
Gael Guennebaud
bea36925db
bug #876 : implement a portable log1p function
2014-12-08 16:26:53 +01:00
Gael Guennebaud
7f7a712062
Optimize Simplicial Cholesky when NaturalOrdering is used.
2014-12-08 15:02:25 +01:00
Gael Guennebaud
30c849669d
Fix dynamic allocation in JacobiSVD (regression)
2014-12-08 14:45:04 +01:00
Gael Guennebaud
e0a8615b94
Merged in infinitei/eigen (pull request PR-91)
...
Added cmake uninstall target
2014-12-05 15:04:19 +01:00
Gael Guennebaud
8efd9142b3
Merged in infinitei/eigen-opengl-fixes (pull request PR-90)
...
Adding missing OPENGL_LIBRARIES for openglsupport test.
2014-12-05 12:54:57 +01:00
Gael Guennebaud
80ed5bd90c
Workaround various "returning reference to temporary" warnings.
2014-12-05 12:49:30 +01:00
Abhijit Kundu
eb3695d2fc
Added cmake uninstall target.
...
This adds a cmake command make uninstall
Running make uninstall removes the files installed by running make install
2014-12-04 02:57:03 -05:00
Abhijit Kundu
48db34a7b9
Adding missing OPENGL_LIBRARIES for openglsupport test. Also adding OpenGL include directories as a better pratice even though these are system include directories in most systems.
2014-12-04 01:18:47 -05:00
Gael Guennebaud
da584912b6
Fix memory pre-allocation when permuting inner vectors of a sparse matrix.
2014-11-24 17:31:59 +01:00
Benoit Steiner
509e4ddc02
Added reduction packet primitives for CUDA
2014-11-19 10:34:11 -08:00
Benoit Steiner
b33cf92878
Fixed the evaluation of expressions involving tensors of 2 or 3 elements on CUDA devices.
2014-11-18 14:32:41 -08:00
Benoit Steiner
1d3c8306f8
Fixed compilation errors with clang.
...
H: Enter commit message. Lines beginning with 'HG:' are removed.
2014-11-13 19:13:17 -08:00
Benoit Steiner
ec785b0180
Added support for extraction of patches from images
2014-11-13 09:28:54 -08:00
Benoit Steiner
eeabf7975e
Optimized broadcasting
2014-11-12 22:35:44 -08:00
Benoit Steiner
c2d1074932
Added support for static list of indices
2014-11-12 22:25:38 -08:00
Gael Guennebaud
722916e19d
bug #903 : clean swap API regarding extra enable_if parameters, and add failtests for swap
2014-11-06 09:25:26 +01:00
Benoit Steiner
cb37f818ca
Fixed a compilation error triggered by some operations on fixed sized tensors
2014-11-05 23:25:11 -08:00
Benoit Steiner
9a06a71627
Fixed a test
2014-11-05 07:49:51 -08:00
Gael Guennebaud
c6fefe5d8e
Big 853: replace enable_if in Ref<> ctor by static assertions and add failtests for Ref<>
2014-11-05 16:15:17 +01:00
Gael Guennebaud
ee06f78679
Introduce unified macros to identify compiler, OS, and architecture. They are all defined in util/Macros.h and prefixed with EIGEN_COMP_, EIGEN_OS_, and EIGEN_ARCH_ respectively.
2014-11-04 21:58:52 +01:00
Benoit Steiner
9ea09179b5
Fixed the return type of the coefficient-wise tensor operations.
2014-11-04 10:24:42 -08:00
Benoit Steiner
b1789c112b
Improved handling of 1d tensors
2014-11-03 08:51:33 -08:00
Benoit Steiner
2dde63499c
Generalized the matrix vector product code.
2014-10-31 16:33:51 -07:00
Benoit Steiner
7f2c6ed2fa
Fixed a compilation warning
2014-10-31 11:45:21 -07:00
Christoph Hertzberg
c5a3777666
Regression test for (invalid) bug #900 . We should make it possible somehow to increase the problem size depending on the available RAM.
2014-10-31 17:19:05 +01:00
Christoph Hertzberg
0833b82efd
Run sparse_basic unit tests also for rectangular matrices.
...
TriangularView with UnitDiag does not work properly yet (bug #901 )
2014-10-31 17:12:13 +01:00
Benoit Steiner
85c3389b28
Fixed a test
2014-10-31 00:04:13 -07:00
Benoit Steiner
67fcf47ecb
Merged from trunk
2014-10-30 21:59:22 -07:00
Benoit Steiner
fcecafde3a
Fixed a compilation error with clang
2014-10-30 21:58:14 -07:00
Benoit Steiner
d62bfe73a9
Use the proper index type in the padding code
2014-10-30 18:15:05 -07:00
Benoit Steiner
bc99c5f7db
fixed some potential alignment issues.
2014-10-30 18:09:53 -07:00
Benoit Steiner
1946cc4478
Added missing packet primitives for CUDA.
2014-10-30 17:52:32 -07:00
Benoit Steiner
5e62427e22
Use the proper index type
2014-10-30 17:49:39 -07:00
Christoph Hertzberg
4ec2f07a5b
Fixed bug in SparseBlock which caused a segfault in sparse_extra_3 test
2014-10-30 21:34:10 +01:00
Christoph Hertzberg
883168ed94
Make select CUDA compatible (comparison operators aren't yet, so no test case yet)
2014-10-30 20:16:16 +01:00
Christoph Hertzberg
e5f134006b
EIGEN_UNUSED_VARIABLE works better than casting to void. Make this also usable from CUDA code
2014-10-30 19:59:09 +01:00
Christoph Hertzberg
d2fc597d5b
Removed deprecated header (unsupported/Eigen/BDCSVD is included in Eigen/SVD now)
2014-10-29 17:51:14 +01:00
Christoph Hertzberg
3d25b1f5b8
Split up some test cases
2014-10-29 17:46:54 +01:00
Christoph Hertzberg
acecb7b09f
Fixed include in bdcsvd.cpp
2014-10-29 17:46:33 +01:00
Gael Guennebaud
21c0a2ce0c
Move D&C SVD to official SVD module.
2014-10-29 11:29:33 +01:00
Benoit Steiner
debc97821c
Added support for tensor references
2014-10-28 23:10:13 -07:00
Christoph Hertzberg
e2e7ba9f85
bug #898 : add inline hint to const_cast_ptr
2014-10-28 14:49:44 +01:00
Christoph Hertzberg
bd2d330b25
Temporary workaround for bug #875 :
...
Let TriangularView<Sparse>::nonZeros() return nonZeros() of the nested expression
2014-10-28 13:31:00 +01:00
Konstantinos Margaritis
79225db0b6
Merged in kmargar/eigen (pull request PR-87)
...
Extend NEON to add ARMv8 64-bit double support
2014-10-28 13:08:53 +02:00
Benjamin Chrétien
c426054767
BDCSVD: fix CMake install (missing separator).
2014-10-24 15:10:56 +02:00
Christoph Hertzberg
1fa793cb97
Removed weird self assignment.
2014-10-24 13:19:19 +02:00
Christoph Hertzberg
04ffb9956e
Replace TEST_SET_BUT_UNUSED_VARIABLE by already defined EIGEN_UNUSED_VARIABLE
2014-10-24 13:18:23 +02:00
Konstantinos Margaritis
94ed7c81e6
Bug #896 : Swap order of checking __VSX__/__ALTIVEC__
2014-10-22 06:15:18 -04:00
Konstantinos Margaritis
fcb3573d17
Merged eigen/eigen into default
2014-10-22 10:42:18 +03:00
Konstantinos Margaritis
fae4fd7a26
Added ARMv8 support
2014-10-22 07:39:49 +00:00
Christoph Hertzberg
cf09c5f687
Prevent CUDA calling a __host__ function from a __host__ __device__ function is not allowed error.
2014-10-21 20:40:09 +02:00
Konstantinos Margaritis
b508619392
working 64-bit support in PacketMath.h, Complex.h needed
2014-10-21 18:10:33 +00:00
Konstantinos Margaritis
0f65f2762d
add EIGEN_TEST_NEON64, but it's a dummy, AArch64 implies NEON support so extra CXXFLAGS are needed
2014-10-21 18:10:01 +00:00
Konstantinos Margaritis
87524922dc
check for __ARM_NEON instead as it's defined in arm64 as well
2014-10-21 18:08:50 +00:00
Gael Guennebaud
a303b6a733
bug #670 : add unit test for mapped input in sparse solver.
2014-10-20 16:46:47 +02:00
Gael Guennebaud
fe57b2f963
bug #701 : workaround (min) and (max) blocking ADL by introducing numext::mini and numext::maxi internal functions and a EIGEN_NOT_A_MACRO macro.
2014-10-20 15:55:32 +02:00
Christoph Hertzberg
c12b7896d0
bug #766 : Check minimum CUDA version
2014-10-20 14:23:11 +02:00
Gael Guennebaud
973e6a035f
bug #718 : Introduce a compilation error when using the wrong InnerIterator type with a SparseVector
2014-10-20 14:07:08 +02:00
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
Benoit Steiner
f786897e4b
Added access to the unerlying raw data of a tnsor slice/chip whenever possible
2014-10-17 15:33:27 -07:00
Benoit Steiner
7acd38d19e
Created some benchmarks for the tensor code
2014-10-17 09:49:03 -07: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
a13bc22204
Ignore automalically imported lapack source files
2014-10-17 15:34:39 +02:00
Gael Guennebaud
4b7c3abbea
Fix D&C SVD wrt zero matrices
2014-10-17 15:32:55 +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
Benoit Steiner
65af852b54
Silenced one last warning
2014-10-16 15:02:30 -07:00
Benoit Steiner
ae697b471c
Silenced a few compilation warnings
...
Generalized a TensorMap constructor
2014-10-16 14:52:50 -07:00
Benoit Steiner
94e47798f4
Fixed the return types of unary and binary expressions to properly handle the case where it is different from the input type (e.g. abs(complex<float>))
2014-10-16 10:41:07 -07:00
Benoit Steiner
d853adffdb
Avoid calling get_future() more than once on a given promise.
2014-10-16 10:10:04 -07: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
Gael Guennebaud
c566cfe2ba
Make SVD unit test even more tough
2014-10-15 23:37:47 +02:00
Benoit Steiner
dba55041ab
Added support for promises
...
Started to improve multithreaded contractions
2014-10-15 11:20:36 -07:00
Gael Guennebaud
fd1aaf4772
merge
2014-10-15 16:33:14 +02:00
Gael Guennebaud
c806009453
Extend svd unit tests to stress problems with duplicated singular values.
2014-10-15 16:32:16 +02:00
Gael Guennebaud
2cc41dbe83
D&C SVD: fix some numerical issues by truly skipping deflated singular values when computing them
2014-10-15 15:21:12 +02:00
Gael Guennebaud
c26e8a1af3
D&C SVD: fix deflation of repeated singular values, fix sorting of singular values, fix case of complete deflation
2014-10-15 11:59:21 +02:00
Christoph Hertzberg
0ec1fc9e11
bug #891 : Determine sizeof(void*) via CMAKE variable instead of test program
2014-10-14 14:14:25 +02:00
Benoit Steiner
99d75235a9
Misc improvements and cleanups
2014-10-13 17:02:09 -07:00
Benoit Steiner
4c70b0a762
Added support for patch extraction
2014-10-13 10:04:04 -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
Benoit Steiner
0219f8aed4
Added ability to print a tensor using an iostream.
2014-10-10 16:17:26 -07:00
Benoit Steiner
2ed1838aeb
Added support for tensor chips
2014-10-10 16:11:27 -07:00
Benoit Steiner
4b36c3591f
Fixed the tensor shuffling test
2014-10-10 15:43:21 -07:00
Benoit Steiner
a991f94c0e
Fixed the thread pool test
2014-10-10 15:20:37 -07:00
Benoit Steiner
498b7eed25
Rewrote the TensorBase::random method to support the generation of random number on gpu.
2014-10-09 15:39:13 -07:00
Benoit Steiner
767424af18
Improved the functors defined for standard reductions
...
Added a functor to encapsulate the generation of random numbers on cpu and gpu.
2014-10-09 15:36:23 -07: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
ccd70ba123
Various numerical fixes in D&C SVD: I cannot make it fail with double, but still need to tune for single precision, and carefully test with duplicated singular values
2014-10-09 23:29:01 +02:00
Benoit Steiner
44beee9d68
Removed dead code
2014-10-08 14:14:20 -07:00
Benoit Steiner
0a07ac574e
Added support for the *= and /* operators to TensorBase
2014-10-08 13:32:41 -07:00
Benoit Steiner
6c047d398d
Fixed a comment
2014-10-08 13:29:36 -07: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
118b1113d9
Workaround MSVC issue.
2014-10-07 09:53:39 +02:00
Gael Guennebaud
503c176d8e
Fix missing outer() member in DynamicSparseMatrix
2014-10-07 09:53:27 +02:00
Gael Guennebaud
dbdd8b0883
D&C SVD: add scaling to avoid overflow, fix handling of fixed size matrices
2014-10-06 19:35:57 +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
Gael Guennebaud
7a17639953
Extend unit tests to check uncompressed sparse inputs in sparse solvers
2014-10-06 11:41:50 +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
152f3218ac
Improved contraction test
2014-10-03 19:33:44 -07:00
Benoit Steiner
af2e5995e2
Improved support for CUDA devices.
...
Improved contractions on GPU
2014-10-03 19:18:07 -07:00
Benoit Steiner
1269392822
Created the IndexPair type to store pair of tensor indices. CUDA doesn't support std::pair so we can't use them when targeting GPUs.
...
Improved the performance on tensor contractions
2014-10-03 10:16:59 -07:00
Benoit Steiner
b7271dffb5
Generalized the gebp apis
2014-10-02 16:51:57 -07:00
Benoit Steiner
8b2afe33a1
Fixes for the forced evaluation of tensor expressions
...
More tests
2014-10-02 10:39:36 -07:00
Benoit Steiner
5cc23199be
More tests to validate the const-correctness of the tensor code.
2014-10-02 10:30:44 -07:00
Benoit Steiner
7caaf6453b
Added support for tensor reductions and concatenations
2014-10-01 20:38:22 -07:00
Benoit Steiner
1c236f4c9a
Added tests for tensors of const values and tensors of stringswwq::
2014-10-01 20:21:42 -07:00
Christoph Hertzberg
1fa6fe2abd
template keyword not allowed before non-template function call
2014-10-01 14:33:55 +02: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
0187504912
Avoid `unneeded-internal-declaration' warning
2014-09-30 16:43:52 +02:00
Christoph Hertzberg
6d26deb894
Missing outerStride in AlignedVector3 resulted in infinite recursion
2014-09-30 16:43:19 +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
Christoph Hertzberg
e404841235
make sure that regex does not match cmake
2014-09-29 19:28:10 +00:00
Christoph Hertzberg
15c946338f
Related to bug #880 : Accept make as well a gmake when searching the MakeCommand. And don't include \n in match expression
2014-09-29 19:20:01 +02:00
Gael Guennebaud
56a0bbbbee
Fix compilation with GCC
2014-09-29 18:28:18 +02:00
Gael Guennebaud
842e31cf5c
Let KroneckerProduct exploits the recently introduced generic InnerIterator class.
2014-09-29 13:37:49 +02:00
Gael Guennebaud
abd3502e9e
Introduce a generic InnerIterator classes compatible with evaluators.
2014-09-29 13:36:57 +02:00
Gael Guennebaud
76c3cf6949
Re-enable -Wshorten-64-to-32 compilation flag.
2014-09-29 10:33:16 +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
8a502233d8
Correcting the ReturnType in traits<KroneckerProduct<>> to include the correct Index type.
...
Fixed mixup of types Rhs::Index and Lhs:Index in various loop variables.
Added explicit type conversion for arithmetic expressions which may return a wider type.
2014-09-21 23:19:29 +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
Georg Drenkhahn
3bd31e21b5
Fixed compiler warning on implicit integer conversion by separating index type for matrix and permutation matrix which may not be equal.
2014-09-20 15:00:36 +02:00
Georg Drenkhahn
75e269c77b
Fixed warning on implicit integer conversion in test case code by using type VectorXd::Index instead of int.
2014-09-20 14:57:42 +02:00
Gael Guennebaud
74cde0c925
Add missing return derived() in ArrayBase::operator=
2014-09-28 09:16:13 +02:00
Jitse Niesen
ce2035af86
New doc page on implementing a new expression class.
2014-09-27 23:25:58 +01:00
Konstantinos Margaritis
6d0f0b8cec
add VSX identifier
2014-09-25 16:06:16 +00: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
Gael Guennebaud
13cbc751c9
bug #880 : automatically preserves buildtool flags when modifying DartConfiguration.tcl file.
2014-09-23 22:10:32 +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
72569f17ec
bug #882 : add const-correctness failtests for CwiseUnaryView, TriangularView, and SelfAdjointView.
2014-09-23 10:26:02 +02:00
Gael Guennebaud
3878e6f170
Add a true ctest unit test for failtests
2014-09-23 10:25:12 +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
ae514ddfe5
bug #880 : manually edit the DartConfiguration.tcl file to get it working with cmake 3.0.x
2014-09-22 22:49:20 +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
Gael Guennebaud
abba11bdcf
Many improvements in Divide&Conquer SVD:
...
- Fix many numerical issues, in particular regarding deflation.
- Add heavy debugging output to help track numerical issues (there are still fews)
- Make use of Eiegn's apply-inplane-rotation feature.
2014-09-22 15:22:52 +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
03dd4dd91a
Unify unit test for BDC and Jacobi SVD. This reveals some numerical issues in BDCSVD.
2014-09-19 15:25:48 +02: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
7b044c0ead
Added tag before-evaluators for changeset 9452eb38f8
2014-09-19 10:10:29 +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
e70506dd8f
Fix inner-stride of AlignedVector3
2014-09-18 22:46:46 +02:00
Gael Guennebaud
2ae20d558b
Update KroneckerProduct wrt evaluator changes
2014-09-18 22:08:49 +02:00
Gael Guennebaud
62bce6e5e6
Make MatrixFunction use nested_eval instead of nested
2014-09-18 17:31:17 +02:00
Gael Guennebaud
060e835ee9
Add evaluator for the experimental AlignedVector3
2014-09-18 17:30:21 +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
e44d78dab3
workaround ambiguous call
2014-09-16 17:10:25 -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
341ae8665d
avoid division by 0
2014-09-16 16:05:06 -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
0403d49006
Fix inverse unit test making sure we try to invert an invertible matrix
2014-09-14 20:12:07 +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
Benoit Steiner
efdff15749
Fixed a typo in the contraction code
2014-09-06 13:28:24 -07:00
Gael Guennebaud
dacd39ea76
Exploit sparse structure in naiveU and naiveV when updating them.
2014-09-05 17:51:46 +02:00
Benoit Steiner
74db22455a
Misc fixes.
2014-09-05 07:47:43 -07: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
Benoit Steiner
1abe4ed14c
Created more regression tests
2014-09-04 20:27:28 -07:00
Benoit Steiner
d43f737b4a
Added support for evaluation of tensor shuffling operations as lvalues
2014-09-04 20:02:28 -07:00
Benoit Steiner
f50548e86a
Added missing tensor copy constructors. As a result it is now possible to declare and initialize a tensor on the same line, as in:
...
Tensor<bla> T = A + B; or
Tensor<bla> T(A.reshape(new_shape));
2014-09-04 19:50:27 -07:00
Gael Guennebaud
15bad3670b
Apply Householder U and V in-place.
2014-09-04 09:17:01 +02:00
Gael Guennebaud
8846aa6d1b
Optimization: enable cache-efficient application of HouseholderSequence.
2014-09-04 09:15:59 +02:00
Gael Guennebaud
80993b95d3
Disable a test which had never worked without evalautors
2014-09-03 22:56:39 +02:00
Benoit Steiner
b24fe22b1a
Improved the performance of the tensor convolution code by a factor of about 4.
2014-09-03 11:38:13 -07: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
a96f3d629c
Clean bdcsvd
2014-09-02 22:30:23 +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
72c4f8ca8f
Disable a few unit tests in unsupported
2014-09-01 17:35:58 +02:00
Gael Guennebaud
b121eecf60
Fix regression is sparse-sparse product
2014-09-01 17:34:55 +02:00
Gael Guennebaud
8754341848
Fix remaining garbage during a merge.
2014-09-01 17:25:13 +02:00
Gael Guennebaud
daad9585a3
Fix Kronecker product in legacy mode.
2014-09-01 17:24:07 +02:00
Gael Guennebaud
b051bbd64f
Make unsupport sparse solvers use SparseSolverBase
2014-09-01 17:21:47 +02:00
Gael Guennebaud
b3d63b4db2
Add evaluator for DynamicSparseMatrix
2014-09-01 17:21:05 +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
01f3ca3e8d
Merged in georg_drenkhahn/eigen/georg_d/fix_warn_minmax (pull request PR-81)
...
Fix for warning on macro definitions of max() and min() in test.h
2014-08-29 14:34:00 +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
Georg Drenkhahn
e49e84d979
Added missing STL include of <list> in main.h
...
Removed duplicated include of <sstream>
Added comments on the background of min/max macro definitions and STL header includes
2014-08-29 10:41:05 +02:00
Freddie Witherden
c3e4080474
Allow LevenbergMarquardt to work with non-standard types.
2014-08-27 15:24:51 +01:00
Benoit Steiner
2959045f2f
Optimized the tensor padding code.
2014-08-26 09:47:18 -07:00
Benoit Steiner
36fffe48f7
Misc api improvements and cleanups
2014-08-23 14:35:41 -07:00
Benoit Steiner
fb5c1e9097
Optimized and cleaned up the tensor morphing code
2014-08-23 13:18:30 -07:00
Georg Drenkhahn
0ba490cf80
Fixed CMakeLists.txt files to prevent CMake 3.0.0 warnings about deprecated LOCATION target property.
...
Small whitespace cleanup in CMakelLists.txt.
2014-08-22 12:13:07 +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
Benoit Steiner
3d298da269
Added support for broadcasting
2014-08-20 17:00:50 -07: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
Christoph Hertzberg
4403800e11
Merged in vladimir_ch/eigen-1/vladimir_ch/fix-uninitialized-variable-warning-in-sp-1408513228472 (pull request PR-77)
...
Fix uninitialized variable warning in SparseQR
2014-08-20 11:12:18 +02:00
Christoph Hertzberg
9062f74d13
Merged in traversaro/eigen/traversaro/findeigen3cmake-add-reading-hints-of-eig-1407426517521 (pull request PR-76)
...
FindEigen3.cmake: Add reading hints of Eigen directory location from environment variables EIGEN3_ROOT and EIGEN3_ROOT_DIR .
2014-08-20 11:11:52 +02:00
Vladimir Chalupecky
6a3423da80
Fix uninitialized variable warning in SparseQR
2014-08-20 05:42:22 +00:00
Benoit Steiner
9ac3c821ea
Improved the speed of convolutions when running on cuda devices
2014-08-19 16:57:10 -07:00
Benoit Steiner
33c702c79f
Added support for fast integer divisions by a constant
...
Sped up tensor slicing by a factor of 3 by using these fast integer divisions.
2014-08-14 22:13:21 -07:00
Benoit Steiner
756292f8aa
Fixed compilation errors
2014-08-14 00:32:59 -07:00
Benoit Steiner
8c8db49331
Added a few regression tests
2014-08-14 00:25:22 -07:00
Benoit Steiner
eeb43f9e2b
Added support for padding, stridding, and shuffling
2014-08-14 00:22:47 -07:00
Benoit Steiner
16047c8d4a
Pulled in the latest changes from the Eigen trunk
2014-08-13 22:25:29 -07:00
Benoit Steiner
916ef48846
Added ability to get the nth element from an abstract array type.
2014-08-13 08:44:47 -07:00
Benoit Steiner
f1d8c13dbc
Fixed misc typos.
2014-08-13 08:40:26 -07:00
Benoit Steiner
9faad2932f
Added missing apis.
2014-08-13 08:36:33 -07:00
Benoit Steiner
f8fad09301
Updated the convolution and contraction evaluators to follow the new EvalSubExprsIfNeeded apu.
2014-08-13 08:33:18 -07:00
Benoit Steiner
72e7529708
Fixed a typo.
2014-08-13 08:29:40 -07:00
Benoit Steiner
1aa2bf8274
Support for in place evaluation of expressions containing slicing and reshaping operations
2014-08-13 08:27:58 -07:00
Benoit Steiner
b1892ab14d
Added suppor for in place evaluation to simple tensor expressions.
...
Use mempy to speedup tensor copies whenever possible.
2014-08-13 08:26:44 -07:00
Benoit Steiner
439feca139
Reworked the TensorExecutor code to support in place evaluation.
2014-08-13 08:22:05 -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
57f71a5552
Update bench_norm utility
2014-09-11 10:27:46 +02: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
84a7ead059
Add one more regression test for bug #791 .
2014-09-10 11:59:45 +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
Gael Guennebaud
fafc829424
bug #804 : copy group__TopicUnalignedArrayAssert.html to TopicUnalignedArrayAssert.html as the second is linked to by old Eigen versions.
2014-09-07 22:38:09 +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
60314beb38
Update reference value for testNistLanczos1 test
2014-09-02 17:35:11 +02:00
Gael Guennebaud
280661e67d
Remove LM::sqrt_() member function in favor of a shortcut for sqrt(epsilon())
2014-09-02 17:29:06 +02:00
Gael Guennebaud
ff9bfc45f7
relax some LM unit tests
2014-09-02 17:10:17 +02: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
Silvio Traversaro
50085d2c28
FindEigen3.cmake: Add reading hints of Eigen directory location from environment variables EIGEN3_ROOT and EIGEN3_ROOT_DIR .
2014-08-07 15:48:53 +00:00
Gael Guennebaud
e51da9c3a8
Memory allocated on the stack is freed at the function exit, so reduce iteration count to avoid stack overflow
2014-08-04 12:46:00 +02:00
Kolja Brix
953ec08089
Correct GMRES:
...
* Fix error in calculation of residual at restart.
* Use relative residual as stopping criterion.
* Improve documentation.
2014-08-02 18:39:15 +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
51357a6622
Fix geo_orthomethods unit test for complexes
2014-08-01 16:26:23 +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
Benoit Steiner
647622281e
The tensor assignment code now resizes the destination tensor as needed.
2014-07-31 17:39:04 -07:00
Gael Guennebaud
d79516660c
Make loadMarket use the sparse-matrix index type, thus enabling loading huge matrices.
2014-07-31 16:43:19 +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
5f5a8d97c0
Re-enable main unit tests which are now compiling and running fine with evaluators
2014-07-31 13:43:19 +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
Benoit Steiner
2116e261fb
Made sure that the data stored in fixed sized tensor is aligned.
2014-07-25 09:47:59 -07:00
Jitse Niesen
5f3d542b8a
Fix typo in MatrixExponential noticed by Markos.
2014-07-25 13:34:03 +01:00
Gael Guennebaud
a0a87410d0
Fix bug #61 : gemm was broken since we changed the blocking order
2014-07-24 22:08:10 +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
Benoit Steiner
1f371e78e6
Added a few tests to validate the behavior of the assignment operator.
2014-07-22 10:32:40 -07:00
Benoit Steiner
f7bb7ee3f3
Fixed the assignment operator of the Tensor and TensorMap classes.
2014-07-22 10:31:21 -07: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
946b99dd5c
Extend qr unit test
2014-07-21 11:45:54 +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
36e6c9064f
bug #770 : fix out of bounds access
2014-07-18 14:19:18 +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
5e72151ca5
bug #842 : warn user about MPFR++ being under the GPL
2014-07-17 12:06:20 +02:00
Gael Guennebaud
2cd38a6634
merge
2014-07-17 12:01:55 +02:00
Gael Guennebaud
84ad8ce7e3
Fix bug #770 : workaround thread safety in mpreal
2014-07-17 12:00:56 +02:00
Gael Guennebaud
40b74411e4
bug #842 : update mpreal copy (fix compilation with clang)
2014-07-17 11:59:51 +02:00
Christoph Hertzberg
14c8793a70
Remove unnecessary <bench/BenchTimer.h>include
2014-07-17 11:14:14 +02:00
Gael Guennebaud
424c3ad266
bug #842 : fix specialized product for mpreal
2014-07-17 09:41:33 +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
Christoph Hertzberg
cd0b433540
Regression test for bug #714 .
...
Note that the bug only occurs on some compilers and is not fixed yet
2014-07-16 15:41:10 +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
a0d1aac6c5
Extend unit test of dense triangular solvers
2014-07-15 11:15:36 +02:00
Gael Guennebaud
2bdb3b1afd
Extend dense*sparse product unit tests
2014-07-15 11:00:16 +02:00
Gael Guennebaud
3c7686630d
merge with default branch
2014-07-15 10:55:03 +02:00
Christoph Hertzberg
4f440b8123
Test vectorization logic for int
2014-07-14 14:36:20 +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
Hauke Heibel
5f1eedd655
Merged in complexzeros/eigen (pull request PR-69)
...
Added Spline interpolation with derivatives.
2014-07-11 12:03:10 +02:00
Gael Guennebaud
296cb40161
merge with default branch
2014-07-10 22:04:45 +02:00
Benoit Steiner
40bb98e76a
Added primitives to compare tensor dimensions
2014-07-10 11:29:51 -07:00
Benoit Steiner
9b7a6f0122
Added tests for tensor slicing
2014-07-10 11:27:27 -07:00
Benoit Steiner
ffd3654f67
Vectorized the evaluation of expressions involving tensor slices.
2014-07-10 11:09:46 -07:00
Jeff
b1169ce40c
Fixed index that would cause crash with two point, two derivative interpolation. Added static_cast.
2014-07-10 12:03:42 -06: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
Kolja Brix
e955725ff1
Fix GMRES: Initialize essential Householder vector with correct dimension. Add check if initial guess is already a sufficient approximation.
2014-07-10 08:20:55 +02:00
Benoit Steiner
25b2f6624d
Improved the speed of slicing operations.
2014-07-09 12:48:34 -07:00
Gael Guennebaud
23bb592a2d
Fix unit test when using 80bits FPU
2014-07-09 17:21:16 +02:00
Christoph Hertzberg
75d19bb087
Determine version of Metis library. Apparently, at least version 5.x is needed for Eigen/MetisSupport.
...
Marked some internal variables as advanced
2014-07-09 16:54:15 +02:00
Gael Guennebaud
62f948c56a
Generalize unit testing of pscatter
2014-07-09 16:01:24 +02:00
Gael Guennebaud
da1e356306
Merged in jdh8/eigen (pull request PR-72)
...
Fix bug #839
2014-07-09 13:07:39 +02:00
Gael Guennebaud
54fbbe7b4e
Add unit test for bug #839 .
2014-07-09 13:06:06 +02:00
Benoit Steiner
ea0906dfd8
Improved evaluation of tensor expressions when used as rvalues
2014-07-08 16:43:28 -07:00
Benoit Steiner
cc1bacea5b
Improved the efficiency of the tensor evaluation code on thread pools and gpus.
2014-07-08 16:39:28 -07:00
Benoit Steiner
c285fda7f4
Extended the functionality of the TensorDeviceType classes
2014-07-08 16:30:48 -07: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
5214466b7a
Fix implicit long to int conversions in blas interface
2014-07-08 19:01:49 +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
904509fbb6
Move using std::abs from Eigen's namespace to function scope.
2014-07-08 10:28:09 +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
Gael Guennebaud
7fa83e7374
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 09:56:09 +02:00
Benoit Steiner
7d53633e05
Added support for tensor slicing
2014-07-07 14:10:36 -07:00
Benoit Steiner
bc072c5cba
Added support for tensor slicing
2014-07-07 14:08:45 -07:00
Benoit Steiner
47981c5925
Added support for tensor slicing
2014-07-07 14:07:57 -07:00
Chen-Pang He
1eefa5a841
Find benchmark opponents also in /usr/lib64
2014-07-07 22:55:28 +08:00
Chen-Pang He
e4b6979334
Find OpenBLAS more aggressively. This made a difference on Fedora 20
2014-07-07 21:32:33 +08: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
Chen-Pang He
85777fc131
Mark internal namespace as \internal
2014-07-06 13:45:54 +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
Christoph Hertzberg
ef4a86d6b8
Fix trivial warnings in MPRealSupport
2014-07-18 16:39:58 +02:00
Christoph Hertzberg
68eafc10b1
Add note to EIGEN_DONT_PARALLELIZE into preprocessor documentation page (requested in IRC)
2014-07-18 15:42:12 +02:00
Christoph Hertzberg
1cb71a8782
bug #138 : Make building of internal documentation configurable via cmake flag
2014-07-18 14:34:58 +02:00
Gael Guennebaud
ac1bb3e5b3
bug #770 : fix out of bounds access
2014-07-18 14:22:33 +02:00
Chen-Pang He
4860da2de1
Percent "Eigen" in dox to prevent linking if not referring to the Eigen namespace
2014-07-05 23:01:27 +08: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
Jeff
08c615f1e4
IndexArray is now a typename.
...
Changed interpolate with derivatives test to use VERIFY_IS_APPROX.
2014-06-25 19:02:57 -06:00
Gael Guennebaud
54607665ab
Fix inverse evaluator
2014-06-25 23:44:59 +02:00
Christoph Hertzberg
d73ee84d37
Disabled HIDE_SCOPE_NAMES (default doxygen setting). This might help to avoid API confusions as in bug #830 .
2014-06-25 22:44:43 +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
Jeff
f9496d341f
Merged.
2014-06-23 20:24:31 -06:00
Jeff
e745a450de
Removed tabs and fixed indentation.
2014-06-23 20:18:16 -06:00
Jeff
e86adc87e9
Fixed type mixing issues.
2014-06-23 19:52:42 -06:00
Jeff
b59f045c07
Using LU decomposition with complete pivoting for better accuracy.
2014-06-23 19:04:52 -06: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
Jeff
957c2c291b
Changed uint to unsigned int.
2014-06-23 08:34:11 -06:00
Christoph Hertzberg
15c2c083e8
Additional unit tests for bug #826 by Gael
2014-06-23 11:21:40 +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
Christoph Hertzberg
0ddde223e9
Fixed typos
2014-06-23 11:00:52 +02:00
Gael Guennebaud
3849cc65ee
Implement binaryop and transpose evaluators for sparse matrices
2014-06-23 10:40:03 +02:00
Jeff
5dbbe6b400
Added Spline interpolation with derivatives.
2014-06-20 22:12:45 -06:00
Gael Guennebaud
ec0a8b2e6d
rm conflict
2014-06-20 16:30:34 +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
Gael Guennebaud
1fdef63d1f
Explain how to export sparse linear problems in matrix-market format.
2014-06-20 13:23:33 +02:00
Jitse Niesen
de150b1e14
Add documentation and very simple test for array atan(), part 2
...
(files I forget in the previous commit).
2014-06-19 15:12:33 +01: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
Gael Guennebaud
95ecd582a3
Update decompositions tables
2014-06-17 09:37:07 +02:00
Gael Guennebaud
b0979b8598
Merged in vladimir_ch/eigen/vladimir_ch/bug-796-fix-eigen3config.cmake (pull request PR-67)
...
Change variable names in Eigen3Config.cmake to EIGEN3_*
2014-06-17 09:20:37 +02:00
Benoit Steiner
774c3c1e0a
Created additional unit tests for the tensor code and improved existing ones.
2014-06-13 10:20:28 -07:00
Benoit Steiner
f80c8e17eb
Silenced a compilation warning
2014-06-13 10:12:12 -07:00
Benoit Steiner
38ab7e6ed0
Reworked the expression evaluation mechanism in order to make it possible to efficiently compute convolutions and contractions in the future:
...
* The scheduling of computation is moved out the the assignment code and into a new TensorExecutor class
* The assignment itself is now a regular node on the expression tree
* The expression evaluators start by recursively evaluating all their subexpressions if needed
2014-06-13 09:56:51 -07:00
Vladimir Chalupecky
1ee4e2db15
Change variable names in Eigen3Config.cmake to EIGEN3_*
2014-06-12 10:51:02 +09:00
Benoit Steiner
aa664eabb9
Fixed a few compilation errors.
2014-06-10 10:31:29 -07:00
Benoit Steiner
4304c73542
Pulled latest updates from the Eigen main trunk.
2014-06-10 10:23:32 -07:00
Benoit Steiner
925fb6b937
TensorEval are now typed on the device: this will make it possible to use partial template specialization to optimize the strategy of each evaluator for each device type.
...
Started work on partial evaluations.
2014-06-10 09:14:44 -07:00
Benoit Steiner
a77458a8ff
Fixes compilation errors triggered when compiling the tensor contraction code with cxx11 enabled.
2014-06-09 10:06:57 -07:00
Benoit Steiner
a669052f12
Improved support for rvalues in tensor expressions.
2014-06-09 09:45:30 -07:00
Benoit Steiner
36a2b2e9dc
Prevent the generation of unlaunchable cuda kernels when compiling in debug mode.
2014-06-09 09:43:51 -07:00
Benoit Steiner
2859a31ac8
Fixed compilation error
2014-06-09 09:42:34 -07:00
Benoit Steiner
d13711a363
Pulled latest changes from the main branch
2014-06-09 09:35:04 -07:00
Benoit Steiner
fe102248ac
Fixed the threadpool test
2014-06-09 09:19:21 -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
Benoit Steiner
79085e08e9
Fixed a typo
2014-06-06 20:16:13 -07:00
Benoit Steiner
a961d72e65
Added support for convolution and reshaping of tensors.
2014-06-06 16:25:16 -07:00
Gael Guennebaud
abc1ca0af1
The BLAS interface is complete.
2014-06-06 11:21:19 +02:00
Gael Guennebaud
c331ce6b8e
Fix bug #738 : use the "current" version of cmake project directories to ease the inclusion of Eigen within other projects.
2014-06-06 11:06:44 +02:00
Gael Guennebaud
ed37c44765
Enable LinearAccessBit in Block expression for inner-panels
2014-06-06 11:02:20 +02:00
Benoit Steiner
8998f4099e
Created additional tests for the tensor code.
2014-06-05 10:49:34 -07:00
Christian Seiler
96cb58fa3b
unsupported/TensorSymmetry: factor out completely from Tensor module
...
Remove the symCoeff() method of the the Tensor module and move the
functionality into a new operator() of the symmetry classes. This makes
the Tensor module now completely self-contained without symmetry
support (even though previously it was only a forward declaration and a
otherwise harmless trivial templated method) and also removes the
inconsistency with the rest of eigen w.r.t. the method's naming scheme.
2014-06-04 20:44:22 +02:00
Christian Seiler
ea99433523
unsupported/TensorSymmetry: make symgroup construction autodetect number of indices
...
When constructing a symmetry group, make the code automatically detect
the number of indices required from the indices of the group's
generators. Also, allow the symmetry group to be applied to lists of
indices that are larger than the number of indices of the symmetry
group.
Before:
SGroup<4, Symmetry<0, 1>, Symmetry<2,3>> group;
group.apply<SomeOp, int>(std::array<int,4>{{0, 1, 2, 3}}, 0);
After:
SGroup<Symmetry<0, 1>, Symmetry<2,3>> group;
group.apply<SomeOp, int>(std::array<int,4>{{0, 1, 2, 3}}, 0);
group.apply<SomeOp, int>(std::array<int,5>{{0, 1, 2, 3, 4}}, 0);
This should make the symmetry group easier to use - especially if one
wants to reuse the same symmetry group for different tensors of maybe
different rank.
static/runtime asserts remain for the case where the length of the
index list to which a symmetry group is to be applied is too small.
2014-06-04 20:27:42 +02:00
Christian Seiler
cee62018fc
unsupported/CXX11/Core: allow gen_numeric_list to have a starting point
...
Add a template parameter to gen_numeric_list that acts as a starting
point for the list, i.e. gen_numeric_list<int, 5, 4> will generate a
numeric_list<int, 4, 5, 6, 7, 8>.
2014-06-04 19:54:22 +02:00
Christian Seiler
58cfac9a12
unsupported/ C++11 workarounds: don't use hack for libc++ if not required
...
libc++ from 3.4 onwards supports constexpr std::get, but only if
compiled with -std=c++1y. Change the detection so that libc++'s
internals are only used if either -std=c++1y is not specified or the
library is too old, making the whole hack a bit more future-proof.
2014-06-04 18:47:42 +02:00
Christian Seiler
45515779d3
Fix compilation for CXX11/Tensor module if unsupported is not in include path
2014-06-04 18:31:02 +02:00
Benoit Steiner
6fa6cdd2b9
Added support for tensor contractions
...
Updated expression evaluation mechanism to also compute the size of the tensor result
Misc fixes and improvements.
2014-06-04 09:21:48 -07:00
Gael Guennebaud
0f1e321dd4
Fic bug #819 : include path of details.h
2014-06-04 11:58:01 +02:00
Jitse Niesen
789674809f
Fix test: EigenSolver on 1x1 matrix with NaN sets info to NumericalIssue.
...
This was changed in 3c66bb136b
.
2014-06-02 11:42:42 +01:00
Jitse Niesen
eb56461ac2
Fix doc'n of FullPivLU re permutation matrices (bug #815 ).
2014-05-31 23:05:18 +01:00
Benoit Steiner
736267cf6b
Added support for additional tensor operations:
...
* comparison (<, <=, ==, !=, ...)
* selection
* nullary ops such as random or constant generation
* misc unary ops such as log(), exp(), or a user defined unaryExpr()
Cleaned up the code a little.
2014-05-22 16:22:35 -07:00
Benoit Steiner
7402fea0a8
Vectorized the evaluation of tensor expression (using SSE, AVX, NEON, ...)
...
Added the ability to parallelize the evaluation of a tensor expression over multiple cpu cores.
Added the ability to offload the evaluation of a tensor expression to a GPU.
2014-05-16 15:08:05 -07:00
Mark Borgerding
e3ab46b8c9
AsciiQuickReference: added .real(), .imag()
...
(transplanted from 11462c1a29
)
2014-05-16 13:45:35 -04:00
Mark Borgerding
c794099e69
fixed AsciiQuickReference typo: LinSpace -> LinSpaced
...
(transplanted from e667819055
)
2014-05-08 15:14:12 -04:00
Christoph Hertzberg
aa524604b7
README.md edited online with Bitbucket
2014-05-21 14:08:04 +00:00
Benjamin Chrétien
c55c5763fe
PolynomialSolver: fix typo.
2014-05-19 19:24:02 +02:00
Benjamin Chrétien
eda79321be
PolynomialSolver: fix bugs related to linear polynomials.
2014-05-19 19:08:51 +02:00
Benjamin Chrétien
df92649379
PolynomialSolver: add missing constructors.
2014-05-19 18:40:29 +02:00
Benjamin Chrétien
0f94607947
PolynomialSolver: test template constructor in test suite.
2014-05-19 18:34:10 +02:00
Benjamin Chrétien
edebb15275
PolynomialSolver: add a test to reveal a bug.
2014-05-19 18:21:29 +02: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
Benoit Steiner
0320f7e3a7
Added support for fixed sized tensors.
...
Improved support for tensor expressions.
2014-05-06 11:18:37 -07:00
Christoph Hertzberg
5811e68dd1
Disabled unused warnings in Eigen2-tests
2014-05-06 12:53:18 +02: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
56de8d3816
Fixed unused variable warnings
2014-05-05 15:03:29 +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
Florian George
f56d452c7e
Enable atv in Blaze Benchmark
2014-05-04 17:07:17 +02:00
Florian George
af79b158a1
Use trans(X) instead of X.transpose() in Blaze Benchmark
2014-05-04 17:06:34 +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
2fb64578aa
Add a small benchmark to compare dense solvers for small to large problems.
2014-04-28 16:16:29 +02:00
Kolja Brix
ecf1f1d589
Make gdb pretty printer Python3-compatible (bug #800 ).
2014-04-28 14:10:22 +01: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
7388fdf560
pbroadcast4/2 assume aligned memory
2014-04-25 02:46:22 -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
ae4d9434e2
Add unit test for pbroadcast4/2
2014-04-25 11:21:18 +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
cf7eaed38d
Avoid blocking-size mismatch in unit tests calling Eigen's blas interface.
2014-04-25 11:04:02 +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
c354bd47f7
Make our gemm bench a little more powerful.
2014-04-17 21:03:26 +02:00
Gael Guennebaud
9777a5ca60
Various minor fixes in BTL
2014-04-17 21:01:45 +02:00
Gael Guennebaud
9746396d1b
Optimize AVX pset1 for complexes and ploaddup
2014-04-17 20:51:04 +02:00
Benjamin Chretien
e5d0cb54a5
Fix typo in Reductions tutorial.
2014-04-17 18:49:23 +02:00
Gael Guennebaud
1dd015fea6
Reduce block sizes in unit tests.
2014-04-17 16:27:58 +02:00
Gael Guennebaud
45a4aad572
add unit tests for ploadquad and predux4, and split packetmath unit test wrt real/complex
2014-04-17 16:27:22 +02:00
Gael Guennebaud
e1d461352e
Extend mixingtype unit test to check transposed cases.
2014-04-17 16:26:35 +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
20c840be15
Merged in benoitsteiner/eigen-fixes/nvcc_fixes (pull request PR-56)
...
Fixed a typo in CXX11Meta.h
2014-04-15 10:38:25 +02:00
Benoit Steiner
1afd50e0f3
Fixed a typo in CXX11Meta.h
2014-04-14 14:26:30 -07: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
d567e3b893
Merged in benoitsteiner/eigen-fixes (pull request PR-55)
...
CUDA fixes
2014-04-14 14:33:50 +02: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
7903d3f27b
Updated the compiler flags to enable nvcc to work with clang.
2014-04-12 23:39:37 -07:00
Benoit Steiner
a803ff18a9
Fixed a typo in cuda_basic.cu
2014-04-12 20:24:05 -07:00
Freddie Witherden
91288e9bf9
Add include LevenbergMarquardt in CMakeLists.txt.
...
This fixes bug #768 .
2014-04-12 12:53:09 +01:00
Jitse Niesen
fbd5eac7cf
Merged in benoitsteiner/eigen-fixes/nvcc_fixes (pull request PR-53)
...
Silenced a compilation warning produced by nvcc.
2014-04-11 14:16:08 +01: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
Benoit Steiner
a1fcf599fa
Silenced a compilation warning produced by nvcc.
2014-04-10 11:19:37 -07:00
Jitse Niesen
a91a7a1964
doc: Add references to Cholesky methods in SelfAdjointView.
2014-04-07 14:14:48 +01:00
Benoit Steiner
3b2321e3ab
Updated the geo_parametrizedline_2 test for AVX.
2014-04-04 17:08:47 -07:00
Benoit Steiner
b446ff037e
Deleted some dead code.
2014-04-04 14:12:24 -07:00
Jitse Niesen
5afcb4965c
Remove out-dated comment in cholesky test.
2014-04-04 16:48:13 +01:00
Christoph Hertzberg
096af59799
Fix bug #784 : Assert if assigning a product to a triangularView does not match the size.
2014-04-04 17:48:37 +02:00
Benoit Steiner
8044b00a7f
bug #782 : Workaround for gcc <= 4.4 compilation error on the NEON PacketMath code.
2014-04-03 23:41:47 +02:00
Benoit Steiner
aecc78325a
Pulled the latest updates from the eigen trunk.
2014-04-01 22:07:05 -07:00
Christoph Hertzberg
1cb8de1250
Make some actual verifications inside the autodiff unit test
2014-04-01 17:44:48 +02:00
Florian George
56c4851323
Fixed typo: symmretric -> symmetric
2014-04-01 15:52:25 +02:00
Gael Guennebaud
ceae5b4145
Fix lapack build
2014-04-01 11:52:23 +02:00
Gael Guennebaud
ec65e6648c
bug #775 : propagate generator when workingaround cmake bug #9220
2014-04-01 11:45:43 +02:00
Gael Guennebaud
d992634fbc
Fix bug #776 : it seems that mingw does not support weak linking
2014-04-01 11:31:21 +02:00
Benoit Steiner
5e8622477b
Rename the vector() factories defined in blas/common.h into make_vector() to prevent a possible name conflict with std::vector.
2014-04-01 11:23:28 +02:00
Gael Guennebaud
1221dd90aa
Fix no newline at end of file warning
2014-04-01 11:21:14 +02:00
Gael Guennebaud
93870d95b7
BTL: add blaze
2014-03-31 10:59:55 +02:00
Gael Guennebaud
f603823ef3
BTL: fix warnings and extend to 5k matrices, update GotoBlas to OpenBlas, etc.
2014-03-31 10:58:30 +02:00
Gael Guennebaud
8d0441052e
Finally, prefetching seems to help getting more stable performance
2014-03-31 10:42:19 +02:00
Gael Guennebaud
82c8163067
Enable repetition in mixing type unit test
2014-03-31 10:41:40 +02:00
Gael Guennebaud
1c0728043a
Workaround alignment warnings
2014-03-30 22:43:47 +02:00
Gael Guennebaud
e497a27ddc
Optimize gebp kernel:
...
1 - increase peeling level along the depth dimention (+5% for large matrices, i.e., >1000)
2 - improve pipelining when dealing with latest rows of the lhs
2014-03-30 21:57:05 +02:00
Benoit Steiner
ad59ade116
Vectorized the loop peeling of the inner loop of the block-panel matrix multiplication code. This speeds up the multiplication of matrices which size is not a multiple of the packet size.
2014-03-28 12:11:23 -07:00
Benoit Steiner
39bfbd43f0
Properly align the input data to prevent false failures of the packetmath.cpp test.
2014-03-28 12:00:08 -07:00
Gael Guennebaud
10aa14592a
Add a mechanism to recursively access to half-size packet types
2014-03-28 10:18:04 +01:00
Gael Guennebaud
8d2bb2c20d
merge with default branch
2014-03-28 09:24:18 +01:00
Gael Guennebaud
c94fde118a
Enable vectorization of gemv for PacketSize>4 through unaligned loads (still better than no vectorization)
2014-03-28 09:11:06 +01:00
Benoit Steiner
51e85c936d
Merged latest changes from parent.
2014-03-27 18:32:15 -07:00
Benoit Steiner
8a94cb3edd
Implemented the SSE version of the gather and scatter packet primitives.
2014-03-27 18:29:01 -07:00
Benoit Steiner
7f3162f707
Implemented the AVX version of the gather and scatter packet primitives.
2014-03-27 17:42:25 -07:00
Benoit Steiner
ee86679096
Introduced pscatter/pgather packet primitives. They will be used to optimize the loop peeling code of the block-panel matrix multiplication kernel.
2014-03-27 16:03:03 -07:00
Gael Guennebaud
58fe2fc2b2
enforce the use of vfmadd231ps for pmadd (gcc and clang stupidely generates the other fmadd variants plus some register moves...)
2014-03-27 23:38:50 +01:00
Benoit Steiner
729363114f
Fixed compilation error when FMA instructions are enabled.
2014-03-27 11:20:41 -07:00
Benoit Steiner
1697d7a179
Silenced "unused variable" warnings when compiling with FMA.
2014-03-27 11:00:47 -07:00
Benoit Steiner
3e1fe8e416
Vectorized the packing of a col-major matrix used as the right hand side argument in a matrix-matrix product when AVX instructions are used. No vectorization takes place when SSE instructions are used, however this doesn't seem to impact performance.
2014-03-27 10:38:41 -07:00
Benoit Steiner
b776458ccb
Vectorized the packing of a row-major matrix used as the left hand side argument in a matrix-matrix product.
2014-03-27 10:02:24 -07:00
Benoit Steiner
c4902a3d01
Implemented the AVX version of the ptranspose packet primitive.
2014-03-27 09:34:51 -07:00
Gael Guennebaud
7d73c7f18b
Change abi version when enabling AVX with GCC
2014-03-27 15:38:40 +01:00
Gael Guennebaud
6f123d209e
Fix geo_* unit tests with respect to AVX
2014-03-27 15:29:56 +01:00
Gael Guennebaud
052aedd394
Implement pcplflip, palign, predux and the likes from AVC/complexes
2014-03-27 14:47:00 +01:00
Gael Guennebaud
fb03b56647
Fix warning
2014-03-27 11:38:35 +01:00
Jitse Niesen
6a81594771
Merged in infinitei/eigen (pull request PR-50)
...
Fixed compilation error due to obsolete internal::abs and internal::sqrt function calls
2014-03-27 10:12:25 +00:00
Mark Borgerding
9ce0d78513
immintrin.h did not come until intel version 11
2014-03-26 22:26:07 -04:00
Benoit Steiner
a419cea4a0
Created the ptranspose packet primitive that can transpose an array of N packets, where N is the number of words in each packet. This primitive will be used to complete the vectorization of the gemm_pack_lhs and gemm_pack_rhs functions.
...
Implemented the primitive using SSE instructions.
2014-03-26 19:03:07 -07:00
Abhijit Kundu
ba3457cab2
Fixed compilation error due to obsolete internal::abs and internal::sqrt function calls
2014-03-26 22:02:48 -04:00
Benoit Steiner
14bc4b9704
Made sure that the version of gemm_pack_rhs specialized for row major matrices is vectorized when nr == 2*PacketSize (which is the case for SSE when compiling in 64bit mode).
2014-03-26 17:35:18 -07:00
Benoit Steiner
e45a6bed45
Specialized the pload1 packet primitive for Packet8f and Packet4d in order to take advantage of the vbroadcastss and vbroadcastsd instructions whenever possible.
2014-03-26 15:58:13 -07:00
Benoit Steiner
cc73164aa8
Merged latest updates from the parent branch
2014-03-26 15:23:59 -07:00
Gael Guennebaud
f0a4c9d5ab
Update gebp kernel to process a panle of 4 columns at once for the remaining ones.
2014-03-26 23:22:36 +01:00
Gael Guennebaud
8be011e776
Remove remaining bits of the dead working buffer
2014-03-26 23:14:44 +01:00
Benoit Steiner
a078f442a3
Vectorized the multiplication and division of complex numbers using AVX instructions.
2014-03-26 15:11:18 -07:00
Benoit Steiner
cf1a7bfbe1
Used AVX instructions to vectorize the complex version of the pfirst and ploaddup packet primitives.
...
Silenced a few compilation warnings.
2014-03-26 12:03:31 -07:00
Gael Guennebaud
bc401eb6fa
Implement new 1 packet x 8 gebp kernel
2014-03-26 18:53:00 +01:00
Gael Guennebaud
b286a1e75c
add pbroadcast2/4 generic intrinsics
2014-03-26 16:46:36 +01:00
Benoit Steiner
6bf3cc2732
Use AVX instructions to vectorize pset1<Packet2cd>, pset1<Packet4cf>, preverse<Packet2cd>, and preverse<Packet4cf>
2014-03-25 09:00:43 -07:00
Benoit Steiner
7ae9b0805d
Used AVX instructions to vectorize the predux_min<Packet8f>, predux_min<Packet4d>, predux_max<Packet8f>, and predux_max<Packet4d> packet primitives.
2014-03-24 13:33:40 -07:00
Benoit Steiner
08f7b3221d
Added proper support for AVX and FMA in the makefiles.
2014-03-24 09:52:45 -07:00
Benoit Steiner
72707a8664
Made sure that EIGEN_ALIGN is defined when EIGEN_DONT_VECTORIZE is set to true to prevent build failures when vectorization is disabled.
2014-03-21 11:40:29 -07:00
Benoit Steiner
8a0845ebd7
Merged latest changes from the parent
2014-03-18 12:58:08 -07:00
giacomo po
3e42b775ea
MINRES, bug #715 : add support for zero rhs, and remove square test.
2014-03-17 16:33:52 -07:00
Bo Li
dead9085c0
fixed Spline constructor dimension bug
2014-03-16 22:26:57 +08:00
Bo Li
4fe56a0e02
fix Spline constructor
2014-03-15 08:42:20 +08:00
Christoph Hertzberg
35a2c9cde7
clang does not accept this without template keyword
2014-03-14 16:48:29 +01:00
Gael Guennebaud
bb4b67cf39
Relax Ref such that Ref<MatrixXf> accepts a RowVectorXf which can be seen as a degenerate MatrixXf(1,N)
2014-03-13 18:04:19 +01:00
Gael Guennebaud
0a6c472335
A bit of cleaning
2014-03-13 15:44:20 +01:00
Christoph Hertzberg
2db792852f
Silence stupid parenthesis warnings for old GCC versions (<= 4.6.x)
2014-03-13 12:58:57 +01:00
Gael Guennebaud
847d801a4c
Fix bug #760 : complete Eigen's lapack interface with default Lapack for SPQR if there is no fortran compiler.
2014-03-12 21:33:45 +01:00
Gael Guennebaud
aceae8314b
Resurect EvalBeforeNestingBit to control nested_eval
2014-03-12 20:25:36 +01:00
Gael Guennebaud
16d4c7a5e8
Conditionally disable unit tests that are not supported by evaluators yet
2014-03-12 20:23:44 +01:00
Gael Guennebaud
a395024d44
More debug info and use lazyProd instead of operator* to query the right flags
2014-03-12 18:14:58 +01:00
Gael Guennebaud
f74ed34539
Fix regressions in redux_evaluator flags and evaluator<Block> flags
2014-03-12 18:14:08 +01:00
Gael Guennebaud
5e26b7cf9d
Extend evaluation traits debuging info
2014-03-12 18:13:18 +01:00
Gael Guennebaud
74b1d79d77
merge default and evaluator branches
2014-03-12 16:24:25 +01:00
Gael Guennebaud
0b362e0c9a
This file is not needed anymore
2014-03-12 16:18:54 +01:00
Gael Guennebaud
a6be1952f4
Fix a few regression when moving the flags
2014-03-12 16:18:34 +01:00
Christoph Hertzberg
2379ccffcb
bug #755 : CommaInitializer produced wrong assertions in absence of ReturnValueOptimization.
2014-03-12 13:48:09 +01:00
Christoph Hertzberg
88aa18df64
bug #759 : Removed hard-coded double-math from Quaternion::angularDistance.
...
Some documentation improvements
2014-03-12 13:43:19 +01:00
Gael Guennebaud
0bd5671b9e
Fix Eigenvalues module
2014-03-12 13:35:44 +01:00
Gael Guennebaud
8dd3b716e3
Move evaluation related flags from traits to evaluator and fix evaluators of MapBase and Replicate
2014-03-12 13:34:11 +01:00
Gael Guennebaud
7eefdb948c
Migrate JacobiSVD to Solver
2014-03-11 13:43:46 +01:00
Gael Guennebaud
082f7ddc37
Port Cholesky module to evaluators
2014-03-11 13:33:44 +01:00
Christoph Hertzberg
bbc0ada12a
Avoid stupid "enumeral mismatch in conditional expression" warnings in GCC
2014-03-11 12:18:32 +01:00
Gael Guennebaud
9be72cda2a
Port QR module to Solve/Inverse
2014-03-11 11:47:32 +01:00
Gael Guennebaud
ae40583965
Fix CoeffReadCost issues
2014-03-11 11:47:14 +01:00
Gael Guennebaud
5806e73800
It is not clear what XprType::Nested should be, so let's use nested<Xpr>::type as much as possible
2014-03-11 11:44:11 +01:00
Gael Guennebaud
2bf63c6b4a
Even ReturnByValue should not evaluate when assembling the expression
2014-03-11 11:42:07 +01:00
Christoph Hertzberg
1b3d7fc04c
Merged in abachrac/eigen (pull request PR-47)
...
Move the Base typedef's from private to public scope
2014-03-11 11:01:36 +01:00
Gael Guennebaud
da6ec81282
Move CoeffReadCost mechanism to evaluators
2014-03-10 23:24:40 +01:00
Gael Guennebaud
354bd8a428
Hide legacy dense assignment routines with EIGEN_TEST_EVALUATORS
2014-03-10 09:30:58 +01:00
Gael Guennebaud
5c0f294098
Fix evaluators unit test (i.e., when only EIGEN_ENABLE_EVALUATORS is defined
2014-03-10 09:28:00 +01:00
Abraham Bachrach
804ef2350d
Move the Base typedef's from private to public scope
...
Move the Quaternion::Base typedef from private to public scope so that one may
create child classes of Quaternion.
NOTE: This matches the semantics of MatrixBase.
2014-03-09 16:56:44 -07:00
Gael Guennebaud
a6b130c63c
swap 3.2 <-> default CTestConfig.cmake file
2014-03-05 10:07:44 +01:00
Benoit Steiner
8eac97138a
Merged latest changes from the main trunk
2014-02-24 13:59:43 -08:00
Benoit Steiner
1dd176b0b0
Pulled latest changes from the Eigen main trunk
2014-02-24 13:56:01 -08:00
Benoit Steiner
131027ee0a
Merged eigen/eigen into default
2014-02-24 13:54:07 -08:00
Benoit Steiner
db7d49efbb
Added support for FMA instructions
2014-02-24 13:45:32 -08:00
Gael Guennebaud
9fdc6258cf
Implement bug #317 : use a template function call to suppress unused variable warnings. This also fix the issue of the previous changeset in a much nicer way.
2014-02-24 18:13:49 +01:00
Gael Guennebaud
21fecd5252
Workaround clang ABI change with unsed arguments (ugly fix)
2014-02-24 17:12:17 +01:00
Jitse Niesen
6fecb6f1b6
Fix bug #748 - array_5 test fails for seed 1392781168.
2014-02-24 14:10:17 +00:00
Christoph Hertzberg
3e439889e0
Specify what non-resizeable objects are in transposeInPlace and adjointInPlace (cf bug #749 )
2014-02-24 13:12:10 +01:00
Gael Guennebaud
cbc572caf7
Split LU/Inverse.h to Core/Inverse.h for the generic Inverse expression, and LU/InverseImpl.h for the dense implementation of dense.inverse()
2014-02-24 11:49:30 +01:00
Gael Guennebaud
1e0c2f6ddb
Hide some deprecated classes.
2014-02-24 11:41:19 +01:00
Gael Guennebaud
c98881e130
By-pass ProductBase for triangular and selfadjoint products and get rid of ProductBase
2014-02-23 22:51:13 +01:00
Gael Guennebaud
d67548f345
Get rid of GeneralProduct<> for GemvProduct
2014-02-21 17:13:28 +01:00
Gael Guennebaud
6c7ab50811
Get rid of GeneralProduct<> for GemmProduct
2014-02-21 16:43:03 +01:00
Gael Guennebaud
728c3d2cb9
Get rid of GeneralProduct for outer-products, and get rid of ScaledProduct
2014-02-21 16:27:24 +01:00
Gael Guennebaud
af31b6c37a
Generalize evaluator<Inverse<>> such that there is no need to specialize it
2014-02-21 15:22:08 +01:00
Gael Guennebaud
93125e372d
Port LU module to evaluators (except image() and kernel())
2014-02-20 15:26:15 +01:00
Gael Guennebaud
b2e1453e1e
Some bit flags and internal structures are deprecated
2014-02-20 15:25:06 +01:00
Gael Guennebaud
9621333545
Fix dimension of Solve expression
2014-02-20 15:24:21 +01:00
Gael Guennebaud
5f6ec95291
Propagate LvalueBit flag to TriangularView
2014-02-20 15:24:00 +01:00
Gael Guennebaud
ecd2c8f37b
Add general Inverse<> expression with evaluator
2014-02-20 14:18:24 +01:00
Gael Guennebaud
5960befc20
More int versus Index fixes
2014-02-19 21:42:29 +01:00
Gael Guennebaud
2eee6eaf3c
Fix mixing scalar types with evaluators
2014-02-19 16:30:17 +01:00
Gael Guennebaud
8af02d19b2
ExprType::Nested has a new meaning now...
2014-02-19 15:16:11 +01:00
Gael Guennebaud
95b0a6707b
evaluator<Replicate> must evaluate its argument to avoid redundant evaluations
2014-02-19 14:51:46 +01:00
Gael Guennebaud
b1ab6a8e0b
Add missing assertion in swap()
2014-02-19 14:06:35 +01:00
Gael Guennebaud
61cff28618
Disable Flagged and ForceAlignedAccess
2014-02-19 14:05:56 +01:00
Gael Guennebaud
68e8ddaf94
Fix vectorization logic wrt assignment functors
2014-02-19 13:26:07 +01:00
Gael Guennebaud
3a735a6cf1
Fix lazy evaluation in Ref
2014-02-19 13:17:41 +01:00
Gael Guennebaud
ccc41128fb
Add a Solve expression for uniform treatment of solve() methods.
2014-02-19 11:33:29 +01:00
Gael Guennebaud
b3a07eecc5
Fix CoeffReadCost of products to handle Dynamic costs
2014-02-19 11:32:04 +01:00
Gael Guennebaud
c16b80746a
isApprox must honors nested_eval
2014-02-19 11:30:58 +01:00
Benoit Steiner
cbd7e98174
Merged the latest version of the code from eigen/eigen
2014-02-18 18:51:24 -08:00
Benoit Steiner
7ed9441ea4
Reverted the definition of the EIGEN_ALIGN to its former meaning (i.e. a boolean)
...
Created a new EIGEN_ALIGN_BYTES define to encode how the data should be aligned
Fixed a few remaining alignment issues exposed when the Eigen code is compiled with avx enabled.
Created a new EIGEN_ALIGN_DEFAULT define, which is set to the minimum alignment value required for the chosen instruction set. Use this value instead of EIGEN_ALIGN32 to preserve the existing alignment on SSE/Altivec/Neon.
2014-02-18 18:06:44 -08:00
Gael Guennebaud
5b78780def
Add evaluator shortcut for triangular ?= product
2014-02-18 17:43:16 +01:00
Gael Guennebaud
8169c6ac59
Simplify implementation of coeff-based products to fully exploit our reduxion mechanisms.
...
If this results in performance regressions, then we should optimize reduxion rather than
somehow duplicate the code.
2014-02-18 16:57:25 +01:00
Gael Guennebaud
463554c254
Merge with default branch
2014-02-18 15:45:39 +01:00
Gael Guennebaud
82c066b3c4
Cleaning
2014-02-18 15:44:32 +01:00
Gael Guennebaud
0543cb51b5
Product::coeff method are also OK for lazy products (including diagonal products)
2014-02-18 14:51:41 +01:00
Gael Guennebaud
99e27916cf
Fix all()/any() for evaluators
2014-02-18 14:26:25 +01:00
Gael Guennebaud
37a1d736bf
_MatrixTypeNested must be public in sparse Block
2014-02-18 13:35:24 +01:00
Gael Guennebaud
06545058bb
Temporary workaround for permutations
2014-02-18 13:33:04 +01:00
Gael Guennebaud
7002aa858f
Support Product::coeff(0,0) even for dynamic matrices
2014-02-18 13:32:30 +01:00
Gael Guennebaud
8cfb138e73
Finally, the simplest remains to deffer resizing at the latest
2014-02-18 13:31:44 +01:00
Gael Guennebaud
1b5de5a37b
Add evaluator for Ref
2014-02-18 13:30:16 +01:00
Gael Guennebaud
a08cba6b5f
Move is_diagonal to XprHelper, forward declare Ref
2014-02-18 11:03:59 +01:00
Gael Guennebaud
573c587e3d
New design for handling automatic transposition
2014-02-18 10:53:14 +01:00
Gael Guennebaud
551bf5c66a
Get rid of DiagonalProduct
2014-02-18 10:52:26 +01:00
Gael Guennebaud
2d136d3d7f
Get rid of SeflCwiseBinaryOp
2014-02-18 10:52:00 +01:00
Gael Guennebaud
873401032b
Fix scalar * product optimization when 'product' includes a selfadjoint matrix
2014-02-17 19:00:45 +01:00
Gael Guennebaud
d595fd31f5
Deal with automatic transposition in call_assignment, fix a few shortcomings
2014-02-17 16:11:55 +01:00
Gael Guennebaud
bffa15142c
Add evaluator support for diagonal products
2014-02-17 16:10:55 +01:00
Christoph Hertzberg
b14a4628af
Relaxed umeyama test. Problem was ill-posed if linear part was scaled with very small number. This should fix bug #744 .
2014-02-17 13:48:00 +01:00
Gael Guennebaud
3573a10712
Fix support for row (resp. column) of a column-major (resp. row-major) sparse matrix
2014-02-17 13:46:17 +01:00
Gael Guennebaud
bd6eca059d
Fix compilation of SPlines module
2014-02-17 10:00:38 +01:00
Gael Guennebaud
ed461ba9bc
Fix sparse_product/sparse_extra unit tests
2014-02-17 09:57:47 +01:00
Gael Guennebaud
3bb57e21a8
Fix FFTW unit test with clang
2014-02-17 09:56:46 +01:00
Gael Guennebaud
4b6b3f310f
Fix a few Index to int buggy conversions
2014-02-15 09:35:23 +01:00
Gael Guennebaud
cd606bbc94
Fix infinite loop in sparselu
2014-02-14 23:10:16 +01:00
Gael Guennebaud
0508af4287
Merged in martinhofernandes/eigen (pull request PR-40)
...
Better fix for bug #503
2014-02-14 15:31:39 +01:00
Gael Guennebaud
3283d98d13
optimize sparse-sparse Kronecker product
2014-02-14 14:46:01 +01:00
Gael Guennebaud
0d3f496233
Upload the 3.2 testing result to its own CDash project
2014-02-14 10:18:14 +01:00
Gael Guennebaud
6df3bee687
reduce false negative in the qr unit test
2014-02-14 09:58:30 +01:00
Gael Guennebaud
97965dde9b
alloca is not necessarily alligned on windows
2014-02-14 00:04:38 +01:00
Gael Guennebaud
0b1430ae10
Fix propagation of index type
2014-02-13 23:58:28 +01:00
Gael Guennebaud
c0e08e9e4b
fix stable norm benchmark
2014-02-13 15:53:51 +01:00
Gael Guennebaud
0715d49908
Fix stable_norm unit test for complexes
2014-02-13 15:49:54 +01:00
Gael Guennebaud
3291580630
Fix bug #740 : overflow issue in stableNorm
2014-02-13 15:44:01 +01:00
Gael Guennebaud
14422decc2
Fix Fortran compiler detection
2014-02-13 09:21:13 +01:00
Jitse Niesen
7ea6ef8969
Fix documentation of MatrixBase::applyOnTheLeft (bug #739 )
...
Add examples; move methods from EigenBase.h to MatrixBase.h
2014-02-12 14:03:39 +00:00
Gael Guennebaud
31c63ef0b4
fix compilation of Transform * UniformScaling
2014-02-12 13:37:23 +01:00
Christoph Hertzberg
e170e7070b
Added examples for casting, made better examples for Maps
2014-02-11 17:27:14 +01:00
Jitse Niesen
c1921ad3e2
Remove unused typedef in polynomialsolver test.
2014-02-08 20:31:35 +00:00
Jitse Niesen
c4f08cfc05
Merged in maksqwe/eigen/maksqwe/fix-typo-in-evalSolverSugarFunction (pull request PR-44)
...
fix typo in evalSolverSugarFunction()
2014-02-08 20:27:13 +00:00
Naumov Maks
9e71ecbeec
fix typo in evalSolverSugarFunction()
2014-02-08 10:40:51 +00:00
Jitse Niesen
ff8d81762d
Fix bug #736 : LDLT isPositive returns false for a positive semidefinite matrix
...
Add unit test covering this case.
2014-02-06 11:06:06 +00:00
Hauke Heibel
6c527bd811
Fixed assignment from QMatrix to Transform for compact storage.
2014-02-04 07:02:34 +01:00
Hauke Heibel
e722f36ffa
Fixed issue #734 (thanks to Philipp Büttgenbach for reporting the issue and proposing a fix).
...
Kept ColMajor layout if possible in order to keep derivatives of the same order adjacent in memory.
2014-02-01 20:49:48 +01:00
Christoph Hertzberg
febfc7b9b4
Fix bug #730 : Path of OpenGL headers is different on MacOS
2014-01-29 22:05:39 +01:00
Benoit Steiner
64a85800bd
Added support for AVX to Eigen.
2014-01-29 11:43:05 -08:00
Gael Guennebaud
94acccc126
Fix Random().normalized() by introducing a nested_eval helper (recall that the old nested<> class is deprecated)
2014-01-26 15:35:44 +01:00
Gael Guennebaud
34694d8828
Fix evaluator<Replicate> for fixed size objects
2014-01-26 15:34:26 +01:00
Gael Guennebaud
ee1c55f923
Add missing template keyword
2014-01-26 14:55:25 +01:00
Gael Guennebaud
f54e62e4a9
Port evaluation from selfadjoint to full to evaluators
2014-01-26 12:18:36 +01:00
Gael Guennebaud
5fa7262e4c
Refactor triangular assignment
2014-01-25 23:02:14 +01:00
Gael Guennebaud
fef534f52e
fix scalar * prod in evaluators unit test
2014-01-25 19:06:07 +01:00
Gael Guennebaud
a7621809fe
Remove useless register keyword, and optimize predux_min/max for SSE4
2014-01-25 16:54:13 +01:00
Gael Guennebaud
6cf938df53
Add a minimalistic page on CUDA with Eigen.
2014-01-24 13:24:30 +01:00
Gael Guennebaud
afcfb560a2
NVCC: add more debug info
2014-01-24 12:51:33 +01:00
Gael Guennebaud
40c42d9788
NVCC: no need to enforce host compiler
2014-01-24 12:51:05 +01:00
Gael Guennebaud
deab937d45
NVCC: fix closed-form eigenvalue decomposition, workaround gcc4.7/nvcc5.5 issue
2014-01-24 12:50:29 +01:00
Christoph Hertzberg
66f1c56aab
sparse_solve_retval_base::defaultEvalTo created extremely oversized temporary matrices in some cases
2014-01-19 03:04:51 +01:00
Jitse Niesen
aa0db35185
Add doc page on computing Least Squares.
2014-01-18 01:16:17 +00:00
Martinho Fernandes
4c08385b74
Merged eigen/eigen into default
2014-01-10 11:22:24 +01:00
Martinho Fernandes
4ccff2d028
Placement new must use void* to avoid user-specific overloads.
2014-01-10 11:20:40 +01:00
Martinho Fernandes
3a4616d6e3
Add C++11 allocator overloads to avoid implicit conversions.
2014-01-10 11:02:11 +01:00
Gael Guennebaud
92190a1caf
Add an example showing how to use C++11 random distributions
2014-01-07 20:23:35 +01:00
Gael Guennebaud
ac409f51f1
Document the fact that Random and setRandom are not reentrant (so not thread-safe)
2014-01-07 20:17:59 +01:00
Gael Guennebaud
a6a57748dd
Fix typo
2014-01-05 14:24:41 +01:00
Benoit Steiner
c8c81c1e74
Improved the efficiency if the block-panel matrix multiplication code: the change reduces the pressure on the L1 cache by removing the calls to gebp_traits::unpackRhs(). Instead the packetization of the rhs blocks is done on the fly in gebp_traits::loadRhs(). This adds numerous calls to pset1<ResPacket> (since we're packetizing on the fly in the inner loop) but this is more than compensated by the fact that we're decreasing the memory transfers by a factor RhsPacketSize.
2014-01-02 16:18:32 -08:00
Christoph Hertzberg
60cd361ebe
Fix bug #222 . Make temporary matrix column-major independently of EIGEN_DEFAULT_TO_ROW_MAJOR
2014-03-26 17:48:30 +01:00
Gael Guennebaud
c8bfbf4a7e
Merged in prclibo/eigen (pull request PR-49)
...
fixed a template type conversion bug in AngleAxis found by Pei Luo
2014-03-25 10:54:40 +01:00
Gael Guennebaud
01fd880424
Revert previous change and introduce a new workaround regarding gcc generating a shufps instruction instead of the more efficient pshufd instruction.
...
The trick consists in introducing a new pload1 function to be used in low level product kernels for which bug #203 does not apply.
Indeed, it turned out that using inline assembly prevents gcc of doing a good job at instructtion reordering.
2014-03-20 16:03:46 +01:00
Bo Li
e3fb190edf
merged incoming udpates
2014-03-20 22:11:13 +08:00
Bo Li
cfd3d6ce9c
fixed a template type conversion bug in AngleAxis found by Pei Luo
2014-03-20 22:05:40 +08:00
Gael Guennebaud
c39a3fa7a1
Makes gcc to generate a pshufd instruction for pset1
2014-03-20 10:14:26 +01:00
Gael Guennebaud
2a564695f0
Simpler and hopefully more future-proof fix for bug #503 (aligned_allocator with c++11)
2014-03-19 13:28:50 +01:00
Jitse Niesen
a58325ac2f
Minor corrections in QR docs.
2013-12-31 18:06:28 +00:00
Anton Gladky
4cd4be97a7
Port unsupported constrained CG to Eigen3
2014-01-15 17:49:52 +01:00
Gael Guennebaud
548216b7ca
QuaternionBase::slerp was documented twice and one explanation was ambiguous.
2014-01-12 11:09:06 +01:00
Gael Guennebaud
e15cb9f4f8
Make geo_hyperplane unit test more stable (bug #539 )
2014-01-11 20:04:36 +01:00
Christoph Hertzberg
bbf373bbe9
Applied patch from Richard JW Roberts, resolving bug #704
2013-12-21 22:14:03 +01:00
Christoph Hertzberg
1200bd2ef0
Grafted from 5725:cdedc9e90d21099e8b3191f95425680ebe710d6f
...
and resolved conflicts
2013-12-21 21:46:27 +01:00
Christoph Hertzberg
8a49dd5626
Fixed typos in comments
2013-12-19 11:55:17 +01:00
Benoit Steiner
ce99b502ce
Use vectorization when packing row-major rhs matrices. (bug #717 )
2013-12-17 10:49:43 -08:00
Henry de Valence
033ee7f6d9
Fix typo: 'explicitely' -> 'explicitly'
2014-03-08 00:44:56 -05:00
Gael Guennebaud
ba2f79e680
Fix selfadjoint_matrix_vector_product for complex with packet size > 2 (e.g., AVX)
2014-03-07 23:18:20 +01:00
Gael Guennebaud
72461be962
Fix typo and formating
2014-03-07 23:13:14 +01:00
Gael Guennebaud
33ca9b4ee6
Add support for OSX in BTL and fix a few warnings
2014-03-07 23:11:38 +01:00
Gael Guennebaud
ce41b72eb8
Extend sizeof unit test
2014-03-07 23:09:39 +01:00
Christoph Hertzberg
d5cc083782
Fixed bug #754 . Only inserted (!defined(_WIN32_WCE)) analog to alloc and free implementation (not tested, but should be correct).
2014-03-05 14:50:00 +01:00
Gael Guennebaud
7313f32efa
Help MSVC to inline some trivial functions
2014-03-04 17:24:00 +01:00
Christoph Hertzberg
04e1e38eed
bug #289 : Removed useless static keywords
2014-03-04 15:10:29 +01:00
Olivier Saut
47679c50ae
Typo in the example for Eigen::SelfAdjointEigenSolver::eigenvectors, the first eigenvector should be col(0) not col(1)
2014-03-03 14:44:39 +01:00
Gael Guennebaud
76d2ca27e5
Fix PaStiX support for Pastix 5.2
2014-02-28 13:11:39 +01:00
Christoph Hertzberg
41e89c73c7
Regression test for bug #752
2014-02-27 12:57:24 +01:00
Gael Guennebaud
ac69d8769f
Remove early termination in LDLT: the zero on the diagonal of the input matrix does not mean the matrix is not full rank. Typical examples are matrices coming from LS with linear equality constraints.
2014-02-26 10:12:27 +01:00
Christoph Hertzberg
6b6071866b
Make pivoting HouseholderQR compatible with custom scalar types
2014-02-25 18:55:16 +01:00
Gael Guennebaud
d357bbd9c0
Fix a few regression regarding temporaries and products
2013-12-14 22:53:47 +01:00
Gael Guennebaud
27c068e9d6
Make selfqdjoint products use evaluators
2013-12-13 18:09:07 +01:00
Gael Guennebaud
e94fe4cc3e
fix resizing in noalias for blocks, and make -=/+= use evaluators
2013-12-13 18:06:58 +01:00
Gael Guennebaud
2ca0ccd2f2
Add support for triangular products with evaluators
2013-12-07 17:17:47 +01:00
Gael Guennebaud
8d8acc3ab4
Move inner product special functions to a base class to avoid ambiguous calls
2013-12-04 22:58:19 +01:00
Gael Guennebaud
6c5e915e9a
Enable use of evaluators for noalias and lazyProduct, add conversion to scalar for inner products
2013-12-03 17:17:53 +01:00
Gael Guennebaud
f0b82c3ab9
Make reductions compatible with evaluators
2013-12-02 17:54:38 +01:00
Gael Guennebaud
6f1a0479b3
fix a typo triangular assignment
2013-12-02 17:54:15 +01:00
Gael Guennebaud
b5fd774775
Fix flags of Product<>
2013-12-02 17:53:26 +01:00
Gael Guennebaud
34ca81b1bf
Add direct assignment of products
2013-12-02 16:37:58 +01:00
Gael Guennebaud
7f917807c6
Fix product evaluator when TEST_EVALUATOR in not ON
2013-12-02 16:19:14 +01:00
Gael Guennebaud
8af1ba5346
Make swap unit test work with evaluators
2013-12-02 15:07:45 +01:00
Gael Guennebaud
c6f7337032
Get rid of call_dense_swap_loop
2013-12-02 14:44:13 +01:00
Gael Guennebaud
626821b0e3
Add evaluator/assignment to TriangularView expressions
2013-12-02 14:06:17 +01:00
Gael Guennebaud
27ca9437a1
Fix usage of Dense versus DenseShape
2013-12-02 14:05:34 +01:00
Gael Guennebaud
d0261bd26c
Fix swap in DenseBase
2013-11-30 10:42:23 +01:00
Christoph Hertzberg
276801b25a
Fixed and simplified Matlab code and added further block-related examples
2013-11-29 19:54:01 +01:00
Christoph Hertzberg
d61345f366
Fix bug #609 : Euler angles are in Range [0:pi]x[-pi:pi]x[-pi:pi].
...
Now the unit test verifies this (also that it is bijective in this range).
2013-11-29 19:42:11 +01:00
Gael Guennebaud
c15c65990f
First step toward the generalization of evaluators to triangular, sparse and other fancyness.
...
Remove product_tag template parameter to Product.
2013-11-29 17:50:59 +01:00
Gael Guennebaud
fb6e32a62f
Get rid of evalautor_impl
2013-11-29 16:45:47 +01:00
Gael Guennebaud
d331def6cc
add definition of product_tag
2013-11-29 16:18:22 +01:00
Gael Guennebaud
5584275325
Remove HasEvalTo and all at once eval mode
2013-11-29 13:38:59 +01:00
Gael Guennebaud
cc6dd878ee
Refactor dense product evaluators
2013-11-27 17:32:57 +01:00
Gael Guennebaud
fc6ecebc69
Simplify evaluator of EvalToTemp
2013-11-27 11:32:07 +01:00
Gael Guennebaud
49034d1570
Fix bug #708 : add placement new/delete for array
2013-11-27 09:46:59 +01:00
Gael Guennebaud
230f5c3aa9
Evaluator: introduce the main Assignment class, add call_assignment to bypass NoAlias and AssumeAliasing, and some bits of cleaning
2013-11-25 15:20:31 +01:00
Gael Guennebaud
c550a0e634
extend Map unit test to check buffers allocated on the stack
2013-11-21 10:39:47 +01:00
Gael Guennebaud
28b2abdbea
Fix FullPivHouseholderQR ctors for non squared fixed size matrix types
2013-11-19 12:53:46 +01:00
Gael Guennebaud
654eab3bd6
Add scaling in JacobiSVD to avoid overflows
2013-11-19 11:53:48 +01:00
Gael Guennebaud
5d1291a4de
Document how to reproduce matlab's rot90
2013-11-19 11:51:16 +01:00
Gael Guennebaud
8b4dd78d57
Merged in chris-se/eigen/tensor-for-merge (pull request PR-39)
...
Tensor support for Eigen
2013-11-16 11:12:05 +01:00
Christian Seiler
f6bac196d5
C++11/Tensor: Fix copyright headers
2013-11-16 00:03:23 +01:00
Gael Guennebaud
46dd1bb1be
Workaround fixing aliasing issue in x = SparseLU::solve(x)
2013-11-15 11:19:19 +01:00
Gael Guennebaud
6b471f205e
fix overflow and ambiguity in SparseLU memory allocation
2013-11-15 10:59:19 +01:00
Christian Seiler
03a956925a
CXX11/TensorSymmetry: add symmetry support for Tensor class
...
Add a symCoeff() method to the Tensor class template that allows the
user of the class to set multiple elements of a tensor at once if they
are connected by a symmetry operation with respect to the tensor's
indices (symmetry/antisymmetry/hermiticity/antihermiticity under
echange of two indices and combination thereof for different pairs of
indices).
A compile-time resolution of the required symmetry groups via meta
templates is also implemented. For small enough groups this is used to
unroll the loop that goes through all the elements of the Tensor that
are connected by this group. For larger groups or groups where the
symmetries are defined at run time, a standard run-time implementation
of the same algorithm is provided.
For example, the following code completely initializes all elements of
the totally antisymmetric tensor in three dimensions ('epsilon
tensor'):
SGroup<3, AntiSymmetry<0,1>, AntiSymmetry<1,2>> sym;
Eigen::Tensor<double, 3> epsilon(3,3,3);
epsilon.setZero();
epsilon.symCoeff(sym, 0, 1, 2) = 1;
2013-11-14 23:35:11 +01:00
Christian Seiler
f97b3cd024
CXX11/Tensor: add simple initial tensor implementation
...
This commit adds an initial implementation of a class template Tensor
that allows for the storage of objects with more than two indices.
Currently, only storing data and setting the object to zero for POD
data types are implemented.
2013-11-14 22:52:37 +01:00
Christian Seiler
5e28c41549
C++11: add template metaprogramming helpers
...
Create a new directory CXX11 under unsupported/Eigen that contains code
that requires C++11. In that directory, add a few generic templates
useful for any module relying on C++11. These templates may be included
with #include <[unsupported/]Eigen/CXX11/Core>. At the moment, this
will only provide templates in the Eigen::internal namespace.
2013-11-14 22:27:06 +01:00
Christoph Hertzberg
e59b38abef
Implement boolean reductions for zero-sized objects
2013-11-13 16:47:02 +01:00
Gael Guennebaud
8f2d068e84
Use the specialization of Block<SparseMatrix> for const matrices too
2013-11-10 16:16:50 +01:00
Gael Guennebaud
5c2d1b4710
Add missing nonZeros() overload in Block<SparseMatrixBase<>>
2013-11-10 15:26:07 +01:00
Leszek Swirski
b93520b1a5
Install functor folder with cmake
2013-11-08 14:07:11 +00:00
Gael Guennebaud
cb8da751a0
fix broken commit
2013-11-07 22:44:37 +01:00
Gael Guennebaud
fe0b44e876
Fix stupid mistake in CMakeLists.txt
2013-11-07 18:48:17 +01:00
Christoph Hertzberg
ae83f5ede9
Fixed bug #702 and added unit test.
...
Thanks to Alexander Werner for the report.
2013-11-07 18:32:24 +01:00
Gael Guennebaud
76c230a84d
Add an option to test evaluators globally
2013-11-07 16:38:14 +01:00
Gael Guennebaud
57327cc2d5
Drop evaluators for SwapWrapper and SelfCwiseBinaryOp
2013-11-07 14:07:27 +01:00
Gael Guennebaud
5887e82729
Clean evaluator_impl_base. It will probably be removed in the future
2013-11-07 14:02:47 +01:00
Gael Guennebaud
af9851d1d7
bug #99 : move the creation of the evaluator to a central place, and make generic_dense_assignment_kernel hold the destination and source evaluators
2013-11-07 12:03:12 +01:00
Gael Guennebaud
8fe609311d
Move internal::swap to numext to fix ambiguous call with std::swap
2013-11-07 09:01:26 +01:00
Gael Guennebaud
8edc964734
bug #99 : refactor assignment and compound assignment mechanism through "assignment functors" and "assignement kernels".
...
The former is very low level and generic. The later abstarct the former for dense expressions. This refactoring permits
to get rid of the very ugly SwapWrapper and SelfCwiseBinaryOp classes.
In the future, this will also permit to simplify all these evaluation loops and perhaps to reuse them for reduxions.
That will also permit to specialize for operations like expr1 += expr2 outside Eigen, and so for any kind
of expressions (dense, sparse, tensor, etc.)
2013-11-06 18:17:59 +01:00
Gael Guennebaud
a37bdfc955
Fix static/inline order
2013-11-06 11:13:31 +01:00
Gael Guennebaud
03de5c2410
Split the huge Functors.h file
2013-11-06 10:36:10 +01:00
Gael Guennebaud
4f572e4c14
Add minimalistic unit tests for NVCC support
2013-11-05 15:41:45 +01:00
Gael Guennebaud
87aee5fda1
Allow calling attributes of dynamic size objects from device
2013-11-05 15:40:58 +01:00
Gael Guennebaud
1bb1a57ef7
merge with default branch
2013-11-05 10:31:59 +01:00
Gael Guennebaud
7c9cdd6030
SparseLU: fix estimated non-zeros in U
2013-11-05 00:12:14 +01:00
Gael Guennebaud
a236e15048
JacobiSVD: fix a 0/0 issue for complexes
2013-11-04 23:58:18 +01:00
Gael Guennebaud
ad1dc50b57
Check for minimal norm solutions
2013-11-03 13:19:55 +01:00
Gael Guennebaud
019dcfc21d
JacobiSVD: move from Lapack to Matlab strategy for the default threshold
2013-11-03 13:18:56 +01:00
Gael Guennebaud
19521c83b8
bug #677 : fix usage of pld instrinsics for ccomplexes
2013-11-02 12:10:48 +01:00
Gael Guennebaud
bbd49d194a
Add a rank method with threshold control to JacobiSVD, and make solve uses it to return the minimal norm solution for rank-deficient problems
2013-11-01 18:21:46 +01:00
Gael Guennebaud
8f496cd3a3
Fix changeset 2702788da7
...
for fixed size matrices
2013-11-01 18:17:55 +01:00
Gael Guennebaud
6dc0e59b1e
Fix bug #677 : compilation issue on arm64 which does not have the PLD instruction
2013-10-31 13:52:43 +01:00
Gael Guennebaud
2702788da7
Fix bug #678 : vectors of row and columns transpositions were not properly resized in FullPivQR
2013-10-29 18:02:18 +01:00
Gael Guennebaud
58c0a6f0fd
Fix unused variable warnings
2013-10-29 17:51:19 +01:00
Gael Guennebaud
5974685866
Fix parenthesis min/max issue in mpreal
2013-10-29 17:43:21 +01:00
Christoph Hertzberg
7fae9b358d
Use aligned loads in Matrix-Vector product where possible. Fixes bug #689
2013-10-29 12:42:46 +01:00
Gael Guennebaud
e14f529dac
Merged in martinhofernandes/eigen (pull request PR-33)
...
Fix for bug #503
2013-10-29 11:39:20 +01:00
Gael Guennebaud
fe2f437642
Merged in xantares/eigen (pull request PR-36)
...
Add cmake config files
2013-10-29 11:31:28 +01:00
Gael Guennebaud
90b5d303db
Fix bug #672 : use exceptions in SuperLU if they are enabled only
2013-10-29 11:26:52 +01:00
Gael Guennebaud
9b863c1830
Merged in vanhoucke/eigen_vanhoucke_unused_variable (pull request PR-34)
...
Silence unused variable warning.
2013-10-29 11:04:47 +01:00
Gael Guennebaud
11fbbc51fa
Fix bug #359 : fix AlignedBit flag of CoeffBasedProduct thus enabling the vectorization of more matrix products
2013-10-28 17:48:32 +01:00
Gael Guennebaud
d3e84b747a
Clarify the meaning of AlignedBit (bug #359 )
2013-10-28 17:44:07 +01:00
Gael Guennebaud
2e606394b1
Fix bug #685 : document the range of Random and setRandom
2013-10-28 17:16:03 +01:00
Gael Guennebaud
285112fc55
Fix bug #688 : make it clearer that CG is for both dense and sparse matrices.
2013-10-28 15:56:30 +01:00
Gael Guennebaud
9f3f42d66a
fix a few "dead stores" warnings
2013-10-26 13:59:02 +02:00
Gael Guennebaud
a0e8577b49
Fix bug #684 : optimize vectorization of array-scalar and scalar-array
2013-10-18 14:56:36 +02:00
Thomas Capricelli
a6bff116f9
simplify/uniformize eigen_gen_docs
2013-10-18 12:56:15 +02:00
Christoph Hertzberg
36052c4911
Added comparisons scalar to array (previously only the array to scalar was possible) (Fixes bug #147 )
...
Extended the unit test for that
2013-10-17 15:37:29 +02:00
Christoph Hertzberg
3d2a3bc755
Copy all format flags (not only precision) from actual output stream when calculating the maximal width
2013-10-17 14:30:09 +02:00
Christoph Hertzberg
ad9dc05663
consider all columns for aligned output (fixes bug #616 )
2013-10-17 14:14:06 +02:00
Christoph Hertzberg
ff075def5c
Copy and paste mistake in last commit
2013-10-17 14:02:00 +02:00
Christoph Hertzberg
4d7dfafbe7
Don't add rowSpacer if columns are not to be aligned
2013-10-17 13:49:56 +02:00
Christoph Hertzberg
3390db099a
Fixes bug #681
...
Also fixed some spelling issues in the documentation
2013-10-17 00:03:00 +02:00
Gael Guennebaud
c6da881849
Fix bug #674 : typo in documentation example for BiCGSTAB. They are now proper snippet files.
2013-10-16 15:25:39 +02:00
Christoph Hertzberg
b61facb08b
Use != instead of < to check for emptiness of iterator range (fixes bug #664 )
2013-10-16 13:10:15 +02:00
Christoph Hertzberg
4a42843513
Make index type of Triplet default to SparseMatrix::Index as suggested by Kolja Brix. Fixes bug #665 .
2013-10-16 13:08:09 +02:00
Gael Guennebaud
b433fb2857
Allow .conservativeResize(rows,cols) on vectors
2013-10-16 12:07:33 +02:00
Gael Guennebaud
2c0303c89e
bug #679 : add respective unit test
2013-10-15 23:51:01 +02:00
Christoph Hertzberg
0bce534c8f
Fix bug #679
2013-10-15 19:09:09 +02:00
Thomas Capricelli
6bef527f9d
uniformize piwik code among branches
2013-10-11 20:46:18 +02:00
xantares
2d186da58a
Add cmake config files
2013-10-09 10:25:50 +02:00
vanhoucke
3736e00ae7
Silence unused variable warning.
2013-10-04 00:21:03 +00:00
Gael Guennebaud
40f1548b32
Sparse is stable now, so Eigen/Eigen should include Sparse
2013-10-02 23:31:59 +02:00
Gael Guennebaud
446320b226
Fix dot*w to return 0 for empty vectors (BLAS interface)
2013-10-01 22:37:10 +02:00
Desire NUENTSA
54e576c88a
Fix SPQR Solve() when assigning to a Map object
2013-09-26 15:00:22 +02:00
Desire NUENTSA
fe19f972e1
Fix leaked memory for successive calls to SPQR
2013-09-24 15:56:56 +02:00
Gael Guennebaud
00dc45d0f9
Reduce explicit zeros when applying SparseQR's matrix Q
2013-09-20 23:28:10 +02:00
Desire NUENTSA
4bb1c48f25
Add a block sparse matrix class. tests to be added
2013-09-20 18:54:17 +02:00
Desire NUENTSA
bd21c82a94
Fix assert bug in sparseQR
2013-09-20 18:49:32 +02:00
Gael Guennebaud
1b4623e713
Fix elimination tree and SparseQR with rows<cols
2013-09-12 22:16:35 +02:00
Martinho Fernandes
a1f056cf2a
Fix bug #503
...
C++11 support on simple allocators comes for free. `aligned_allocator` does not
need to add any `construct` overloads to work with C++11 compilers.
2013-09-10 17:08:04 +02:00
Gael Guennebaud
4612a1cd87
Fix ploaddup and lin-spaced with AltiVec.
2013-09-10 16:13:59 +02:00
Gael Guennebaud
07417bd03f
Fix bug #654 : allow implicit transposition in Array to Matrix and Matrix to Array constructors
2013-09-07 00:01:04 +02:00
Gael Guennebaud
7fa007e8bf
Fix sparse block
2013-09-07 00:00:13 +02:00
Gael Guennebaud
ed78a76161
Merged in advanpix/eigen-mp-devs (pull request PR-32)
...
Fixes for SparseMatrix to support non-POD scalar types
2013-09-03 22:05:14 +02:00
Gael Guennebaud
eda2f8948a
Another compilation fix with ICC/MSVC combo
2013-09-03 21:42:59 +02:00
Jitse Niesen
16cbd3d72d
BDCSVD: Use rational interpolation to solve secular equation.
...
Algorithm is rather ad-hoc and falls back on bisection if required.
2013-08-27 15:30:11 +01:00
Hauke Heibel
86daf2f75c
Added missing inline statements in order to prevent linker errors.
2013-08-27 15:41:18 +02:00
Hauke Heibel
69c057ccb1
Fixed InnerPanel definition in the Transformation class.
...
Added some inital documentation on InnerPanel.
2013-08-27 14:54:57 +02:00
Gael Guennebaud
94a7a1ec00
Use unblocked version if the matrix is too small, plus some cleaning.
2013-08-27 13:47:15 +02:00
Gael Guennebaud
5864e3fbd5
Implement a blocked upper-bidiagonalization algorithm. The computeUnblocked function is currently for benchmarking purpose.
2013-08-27 07:23:31 +02:00
Pavel Holoborodko
d2c4f4ab21
Updated mpfr::mpreal. Move semantic support, RVO, other new features
2013-08-26 00:22:18 +09:00
Pavel Holoborodko
41321e4366
Replaced memcpy & memmove to smart_* alternatives for non-POD scalar types
2013-08-25 18:12:15 +09:00
Pavel Holoborodko
e6462c2ce3
Switched to smart_copy to support non-trivial scalar types
2013-08-25 18:03:49 +09:00
Pavel Holoborodko
1472f4bc61
Fixed bug #647 by using smart_copy instead of bitwise memcpy.
2013-08-25 18:02:07 +09:00
Pavel Holoborodko
a147500dee
Added smart_memmove with support of non-POD scalars (e.g. needed in SparseBlock.h).
2013-08-25 18:00:28 +09:00
Jitse Niesen
d1c48f1606
BDCSVD: Use HouseholderSeq directly.
2013-08-21 14:34:48 +01:00
Gael Guennebaud
1b8394f71f
Fix compilation with ICC/MSVC combo
2013-08-21 15:28:53 +02:00
Gael Guennebaud
4ecfdc4716
Add explanations of the logic behind the matrix-vector products
2013-08-21 14:29:53 +02:00
Gael Guennebaud
d9381598bc
Allows EIGEN_STACK_ALLOCATION_LIMIT to be 0 for no limit
2013-08-21 14:29:00 +02:00
Jitse Niesen
403be74861
BDCSVD: Compute SVD of combined problem directly.
...
First step at implementing final stage in BDCSVD algorithm.
Uses bisection method to solve nonlinear equation.
Still lots of room for optimization.
2013-08-20 14:10:55 +01:00
Gael Guennebaud
1c61e28b32
Fix indentation
2013-08-20 14:13:41 +02:00
Gael Guennebaud
c06e373beb
Fix compilation with non-msvc compilers.
2013-08-20 14:12:42 +02:00
Gael Guennebaud
7bca2910c7
Make the static assertions on maximal fixed size object use EIGEN_STACK_ALLOCATION_LIMIT, and raise its default value to 128KB
2013-08-20 13:59:33 +02:00
Gael Guennebaud
2cf513e973
Merged in advanpix/eigen-mp-devs (pull request PR-31)
...
Added support for custom scalars in SparseLU
2013-08-20 12:10:38 +02:00
Gael Guennebaud
150c9fe536
Make FullPivHouseholderQR::solve returns the least-square solution instead of aborting if no exact solution exist
2013-08-20 11:52:48 +02:00
Pavel Holoborodko
e4ffb7729a
Removed unnecessary parentheses
2013-08-20 16:06:13 +09:00
Pavel Holoborodko
d908ccc01c
Added support for custom scalars
2013-08-20 15:00:28 +09:00
Gael Guennebaud
2b15e00106
Make ArrayBase operator+=(scalar) and -=(scalar) use SelfCwiseBinaryOp optimization
2013-08-19 16:40:50 +02:00
Gael Guennebaud
127d7f2071
Fix bug #643 : enable vectorization of compound assignement for fixed size objects
2013-08-19 16:34:09 +02:00
Gael Guennebaud
c47010e3d2
typo
2013-08-19 16:10:00 +02:00
Gael Guennebaud
d4dd6aaed2
Fix bug #642 : add vectorization of sqrt for doubles, and make sqrt really safe if EIGEN_FAST_MATH is disabled
2013-08-19 16:02:27 +02:00
Jitse Niesen
d3635b08da
Merged in advanpix/eigen-mp-devs (pull request PR-30)
...
Added support for custom-scalars
2013-08-19 11:41:22 +01:00
Pavel Holoborodko
ebd6a7a46c
Added support for custom-scalars
2013-09-02 19:09:39 +09:00
Christoph Hertzberg
e0dbc2913a
Documentation of deprecated struct. Closing bug #426 .
2013-08-16 16:43:02 +02:00
Christoph Hertzberg
1d89554f1b
Deprecate boolean sum operator (bug #426 )
2013-08-13 14:54:09 +02:00
Gael Guennebaud
ace2ed7b87
Fix broken link on transforming normals
2013-08-12 13:38:25 +02:00
Gael Guennebaud
956251b738
bug #638 : fix typos in sparse tutorial
2013-08-12 13:37:47 +02:00
Hauke Heibel
6f5f488a80
Switched to MPL2 license.
2013-08-12 07:39:24 +02:00
Gael Guennebaud
916d29e58f
Backout parts of changeset 6719e56b5b
...
(these changes were not intended to be commited)
2013-08-11 19:26:41 +02:00
Gael Guennebaud
bffdc491b3
Fix cost evaluation of partial reduxions -> improve performance of vectorwise/replicate expressions involving partial reduxions
2013-08-11 19:21:43 +02:00
Gael Guennebaud
6719e56b5b
Ref<> objects must be nested by reference because they potentially store a temporary object
2013-08-11 17:52:43 +02:00
Jitse Niesen
c13e9bbabf
QuickReference.dox: std::tan(array) --> tan(array), same for other functions.
2013-08-11 10:17:23 +01:00
Hauke Heibel
e4acd6e2fd
Added copy constructor and assignment to DenseStorage.
...
Required by the standard even when its not used but elided.
Added a test for DenseStorage copying and assignment.
2013-08-10 19:13:46 +02:00
Hauke Heibel
8a89ba9275
Added alternative C++11 detection.
2013-08-10 19:11:03 +02:00
Hauke Heibel
097a105603
Disabled std::log1p on Cygwin.
2013-08-10 19:10:23 +02:00
Jitse Niesen
306ce33e1c
BDCSVD: Streamline compute() and copyUV()
2013-08-07 16:34:34 +01:00
Jitse Niesen
616f9cc593
doc: Explain type of result for VectorwiseOp member functions.
...
Prompted by a question on the forum.
2013-08-06 09:49:44 +01:00
Jitse Niesen
2f0faf117e
Remove LinearLeastSquares.dox , which should not have been added.
...
Accidentally included in changeset e37ff98bbb
.
2013-08-06 08:03:39 +01:00
Hauke Heibel
8710440951
Removed errornous swap for stack storage.
2013-08-03 10:09:31 +02:00
Jitse Niesen
8fdffdd573
Move inheritance from Eigen example in stand-alone file.
...
Also fix a small mistake (Vector3d instead of VectorXd).
2013-08-02 22:33:12 +01:00
Hauke Heibel
3444f06f68
Removed a warning when rvalue references are not unsed.
2013-08-02 22:54:01 +02:00
Hauke Heibel
8f4d93a4b7
Fix compilation.
...
The Matrix is required to be mutable but it also needs to be a reference and
temporaries do not bind to non-const references - thus we need a hack and
cast away the constness.
2013-08-02 22:40:36 +02:00
Hauke Heibel
51b361b3bb
Ensure that (potentially aligned) stack objects are passed by reference.
2013-08-02 21:07:39 +02:00
Hauke Heibel
7c99b38b7c
Added move support for Matrix and Array.
...
Added EIGEN_HAVE_RVALUE_REFERENCES define.
Added move unit tests.
Removed superfluous 'inline' declarations in DenseStorage.
2013-08-02 19:59:43 +02:00
Gael Guennebaud
b72a686830
Fix bug #635 : add isCompressed to MappedSparseMatrix for compatibility
2013-08-02 11:11:21 +02:00
Gael Guennebaud
e3058dd88b
Make Pardiso solvers non copyabe
2013-08-02 11:09:02 +02:00
Gael Guennebaud
8ea7413a64
Fix compilation and warning of PARDISO
2013-08-02 11:05:00 +02:00
Gael Guennebaud
e90229a429
reduce cancellation probablity
2013-08-02 00:36:06 +02:00
Hauke Heibel
cf884a9815
Added build name support for VC11 and its service packs.
2013-08-01 16:38:05 +02:00
Gael Guennebaud
ddf7753631
Add nvcc support for small eigenvalues decompositions and workaround lack of support for std::swap and std::numeric_limits
2013-08-01 16:26:57 +02:00
Hauke Heibel
222eedf5f3
Removed unused testing files.
2013-08-01 12:14:03 +02:00
Gael Guennebaud
d0e543be26
Remove superfluous testing files (as changeset e41bc6cbbf
...
but more complete)
2013-07-31 23:11:43 +02:00
Hauke Heibel
8e6d0cba5f
Added a pattern which forces LF line endings for *.sh files.
2013-07-31 18:20:58 +02:00
Hauke Heibel
32d46dd9b8
Backed out changeset: e41bc6cbbf
2013-07-31 18:03:34 +02:00
Hauke Heibel
e41bc6cbbf
Removed unused test files.
2013-07-31 17:21:32 +02:00
Gael Guennebaud
55b57fcba6
Disable some shortcuts with nvcc
2013-07-31 16:56:31 +02:00
Hauke Heibel
39491e3b75
Enable support for minimal rebuilds.
2013-07-31 16:16:08 +02:00
Jitse Niesen
68168e9eae
MatrixFunctions: replace eval() by nested.
...
This eliminates an unnecessary copy in some situations, e.g. Map.
2013-07-31 14:57:20 +01:00
Gael Guennebaud
6126ad801f
Extend support for nvcc to Array objects and wrappers
2013-07-31 15:30:50 +02:00
Hauke Heibel
43df1e707c
Merged in advanpix/eigen-mp-3.2 (pull request PR-29)
...
Quick fix in order to be custom-scalar friendly.
2013-07-30 08:11:39 +02:00
Hauke Heibel
b1f4601bf9
Removed non-standard conforming (17.4.3.1.2/1) leading underscore.
2013-07-30 08:05:10 +02:00
Pavel Holoborodko
acb82c7f16
Quick fix in order to be custom-scalar friendly.
2013-07-29 20:13:52 +09:00
Hauke Heibel
9ef3645cc7
Removed 'T' prefix from types and thus fixed compilation for GCC.
2013-07-29 12:08:50 +02:00
Sven Strothoff
5f11db695b
bug #502 : add bool intersects() methods to AlignedBox
2013-07-28 23:59:37 +02:00
Hauke Heibel
2437215221
Fixed constness in Array- and MatrixWrapper.
...
This also fixes the compilation on VC11.
2013-07-28 22:46:38 +02:00
Hauke Heibel
dd27b5c4a8
Fixed dummy_precision evaluation.
2013-07-28 19:31:33 +02:00
Jitse Niesen
70131120ab
Fix bug in MatrixFunctions for matrices with multiple eigenvalues.
...
Store indices, not eigenvalues, in clusters.
Bug was introduced in changeset a3a55357db
.
2013-07-26 15:39:18 +01:00
Jitse Niesen
6d86cd7224
merge
2013-07-26 14:30:28 +01:00
Hauke Heibel
75dab1ce5e
Fixed floating point warning.
...
Fixed evaluation of matrix_exp_computeUV.
2013-07-26 15:13:54 +02:00
Jitse Niesen
e43934d60f
MatrixFunctions: Clean up StemFunction.h
2013-07-26 13:51:10 +01:00
Hauke Heibel
75edc7cc8b
Fixed VC11 compilation.
...
The typedefs Lhs/Rhs in the base class are now accessible by derived classes.
2013-07-26 11:05:21 +02:00
Hauke Heibel
5897695e8a
Merged simple geometry asserts.
2013-07-25 21:21:21 +02:00
Jitse Niesen
a3a55357db
Clean up MatrixFunction and MatrixLogarithm.
2013-07-25 15:08:53 +01:00
Jitse Niesen
084dc63b4c
Clean-up of MatrixSquareRoot.
2013-07-22 13:56:15 +01:00
Jitse Niesen
463343fb37
Clean-up of MatrixExponential:
...
* put internal stuff in the internal namespace
* replace member functions by free functions
2013-07-21 21:31:15 +01:00
Jitse Niesen
5879937f58
Merge in jdh8's branch.
...
* Enable singular matrix power and complex exponents.
* Eliminate unnecessary copying for sparse Kronecker product.
2013-07-21 20:50:15 +01:00
Chen-Pang He
01190b3544
Directly code failing example, or it breaks make doc.
2013-07-21 18:09:11 +08:00
Chen-Pang He
c00f688c64
Fix doc. (It is also used by computeFracPower)
2013-07-21 05:40:56 +08:00
Chen-Pang He
51573da3a4
Warn about power of a matrix with non-semisimple 0 eigenvalue.
2013-07-21 01:00:36 +08:00
Chen-Pang He
1191949e87
Improve documentation on Kronecker product module.
2013-07-21 00:19:46 +08:00
Chen-Pang He
3d94ed9fa0
Document on MatrixExponential::ScalingOp
2013-07-21 00:18:19 +08:00
Chen-Pang He
ede27f5780
Apply argument-dependent lookup on user-defined types. (using std::)
2013-07-20 23:30:37 +08:00
Chen-Pang He
dda869051d
Optimize MatrixPower::computeIntPower
2013-07-20 18:47:54 +08:00
Chen-Pang He
2320073e41
Comment on private members of MatrixPower.
2013-07-20 17:58:12 +08:00
Chen-Pang He
c587e63631
Simplify MatrixPower::split
2013-07-20 17:49:38 +08:00
Gael Guennebaud
660b905e12
Fix ICE with ICC 11
2013-07-19 11:46:54 +02:00
Gael Guennebaud
4f0bd557a4
Previous isFinite->hasNonFinite change was broken. After discussion let's rename it to allFinite
2013-07-18 11:27:04 +02:00
Desire NUENTSA
736fe99fbf
Fix bug #326 : expose tridiagonal eigensolver to end-users through ComputeFromTridiagonal()
2013-07-18 10:32:31 +02:00
Gael Guennebaud
6fab4012a3
Rename isFinite to hasNonFinite to avoid future naming collisions.
2013-07-17 21:13:45 +02:00
Gael Guennebaud
2f593ee67c
merge with main branch
2013-07-17 13:21:35 +02:00
Gael Guennebaud
20e535e142
Bump default branch to 3.2.90
2013-07-17 10:04:20 +02:00
Gael Guennebaud
bbaef8ebba
SparseLU: make COLAMDOrdering the default ordering method.
2013-07-17 09:30:25 +02:00
Gael Guennebaud
bd689ccc28
IncompleteLUT should not raise an assert in compute if factorize failed.
2013-07-17 09:21:07 +02:00
Gael Guennebaud
e3774e93b7
Fix vompilation of bdcsvd with ICC.
2013-07-17 09:20:30 +02:00
Gael Guennebaud
db8e88c936
Fix testing issues with x87 extra precision.
2013-07-16 17:35:08 +02:00
Desire NUENTSA
cfd7f9b84a
avoid unneeded const_cast
2013-07-16 15:56:05 +02:00
Desire NUENTSA
3e094af410
Fix Sparse LU for matrices in non compressed mode
2013-07-16 15:15:53 +02:00
Gael Guennebaud
adeaa657eb
Expose InnerSizeAtCompileTime in SparseMatrixBase (it was already present in DenseBase) and simplify sparse_vector_assign_selector (this also fix a stupid warning in old gcc versions)
2013-07-16 09:49:01 +02:00
Gael Guennebaud
f2aba7a768
Remove obsolete sentence on LPGL in MKL doc.
2013-07-15 23:25:01 +02:00
Gael Guennebaud
d02e329218
Fix adjoint unit test: test_isApproxWithRef works for positive quantities only.
2013-07-15 21:21:14 +02:00
Gael Guennebaud
c76990664b
Add bdcsvd unit test in CMakeLists
2013-07-15 21:16:57 +02:00
Chen-Pang He
4b780553e0
Eliminate unnecessary copying for sparse Kronecker product.
2013-07-15 09:10:17 +08:00
Chen-Pang He
9be658f701
generateTestMatrix can use processTriangularMatrix
2013-07-15 00:43:14 +08:00
Chen-Pang He
b8f0364a1c
Test singular matrix power with square roots. Exponent laws are too unstable.
2013-07-15 00:10:17 +08:00
Gael Guennebaud
ee244d54f4
SparseVector::assign: it is not always possible to reserve according to given non-zeros.
2013-07-14 11:56:08 +02:00
Chen-Pang He
cbe92de2b5
Fix typo in testSingular.
2013-07-14 17:27:44 +08:00
Chen-Pang He
eeb744dc8d
Add test3dRotation.
2013-07-14 02:00:50 +08:00
Gael Guennebaud
4bb0fff151
Rationalize assignment to sparse vectors
2013-07-13 19:45:05 +02:00
Chen-Pang He
d5501d3a90
Document on MatrixPowerAtomic.
2013-07-13 23:13:07 +08:00
Chen-Pang He
3c423ccfe2
Document on complex matrix power.
2013-07-13 22:12:09 +08:00
Chen-Pang He
738d75d3eb
Document on the return type of MatrixPower::operator()
2013-07-13 22:11:36 +08:00
Gael Guennebaud
9a16519d62
Extend the "functions taking Eigen type" doc page to present the Ref<> option.
2013-07-13 12:36:55 +02:00
Gael Guennebaud
06a5bcecf6
Stabilize eulerangle unit test.
2013-07-13 10:55:04 +02:00
Gael Guennebaud
7ee378d89d
Fix various scalar type conversion warnings.
2013-07-12 16:40:02 +02:00
Gael Guennebaud
61c3f55362
Relax slerp unit test
2013-07-12 14:30:28 +02:00
Gael Guennebaud
5431473d67
Fix SparseMatrix::conservativeResize() when one dimension is null
2013-07-12 14:10:02 +02:00
Desire Nuentsa
444c09e313
Fix constness of diagonal() and transpose() for MSVC.
2013-07-11 12:36:57 +02:00
Gael Guennebaud
84f52ad317
Remove double const qualifier
2013-07-10 23:54:53 +02:00
Gael Guennebaud
6d1f5dbaae
Add no_assignment_operator to a few classes that must not be assigned, and fix a couple of warnings.
2013-07-10 23:48:26 +02:00
Gael Guennebaud
71cccf0ed8
Rename map unit test to mapped_matrix: without splitting unit tests, this created a "map" binary file in the include path, not a good idea!
2013-07-10 23:26:35 +02:00
Gael Guennebaud
5a4519d2b4
Revisit the implementation of random_default_impl for integer to make sure avoid overflows and compiler warnings.
2013-07-10 21:11:41 +02:00
Chen-Pang He
a992fa74eb
Make non-conversion unary constructors explicit.
2013-07-11 02:31:13 +08:00
Chen-Pang He
4466875d54
The only(?) way to test complex matrix power.
2013-07-10 02:59:16 +08:00
Chen-Pang He
5c95892b83
Test power of singular matrices.
2013-07-10 02:57:54 +08:00
Chen-Pang He
639d03d900
These casts are unnecessary because isApprox already casts them.
2013-07-10 02:53:15 +08:00
Chen-Pang He
d204bb57d0
Remove unused struct definition in test.
2013-07-10 02:48:17 +08:00
Chen-Pang He
c52cbd9de9
Write doc for positive power of a matrix with a semisimple zero eigenvalue.
2013-07-10 02:44:38 +08:00
Chen-Pang He
159a3bed9e
Write doc for complex power of a matrix.
2013-07-10 02:43:10 +08:00
Chen-Pang He
25544dbec3
Add assertion against undefined matrix power.
2013-07-10 02:36:34 +08:00
Jitse Niesen
f850550e3e
merge
2013-07-08 14:11:25 +01:00
Chen-Pang He
04bd1e3fc0
Slightly optimize atanh2.
2013-07-08 16:49:27 +08:00
Gael Guennebaud
0567cf96cc
Ease setting build options when running ctest -D
2013-07-07 17:25:58 +02:00
Chen-Pang He
00e30a5fc4
We need not prohibit assignment here. Thanks to changeset 3edd4681f2
...
.
2013-07-07 19:57:23 +08:00
Chen-Pang He
55ec3cc6d5
Prevent copying with internal::noncopyable.
2013-07-07 19:34:13 +08:00
Gael Guennebaud
4f28ccdd0e
Rationalize the use of Index type in iterators
2013-07-06 22:05:49 +02:00
Gael Guennebaud
9b833aff42
Use numeric_limits to get NaN and inf
2013-07-06 22:01:14 +02:00
Gael Guennebaud
3edd4681f2
ReturnByValue should not be assignable!
2013-07-06 20:26:02 +02:00
Gael Guennebaud
d0142e963b
Fix ambiguity from the origin of Index type in BlockImpl<Sparse>::InnerIterator
2013-07-06 17:33:49 +02:00
Gael Guennebaud
8ba7ccf16a
bug #63 : add lapack unit tests. They are automatically downloaded and configured if EIGEN_ENABLE_LAPACK_TESTS is ON.
2013-07-06 15:08:42 +02:00
Gael Guennebaud
cc03c9d683
bug #556 : workaround mingw bug with -O3 or -fipa-cp-clone
2013-07-05 23:47:40 +02:00
Gael Guennebaud
4f14b3fa72
Fix bug #611 : diag * sparse * diag
2013-07-05 22:42:46 +02:00
Chen-Pang He
9e2b4eeac0
Const-correct the scaling functor.
2013-07-05 23:28:57 +08:00
Gael Guennebaud
9b9177f1ce
Fix a couple of warnings in unit tests.
2013-07-05 13:35:34 +02:00
Gael Guennebaud
7d8823c8b7
Use true compile-time branching in SparseVector::assign to handle automatic transposition.
2013-07-05 09:14:32 +02:00
Chen-Pang He
c273a6c37c
Avoid pow(Scalar, int) for C++11 conformance.
2013-07-05 03:33:56 +08:00
Chen-Pang He
04a9ad6e10
Let complex power fall back to "log, scale, exp".
2013-07-05 00:28:28 +08:00
Chen-Pang He
4e26057f66
Remove unused declarations for MatrixPowerProduct.
2013-07-05 00:08:11 +08:00
Desire NUENTSA
edba612f68
Fix unresolved typename bug for MSVC
2013-07-04 16:56:01 +02:00
Chen-Pang He
cce68d4e91
Remove unused inclusions.
2013-07-04 18:39:33 +08:00
Chen-Pang He
75b3391e3f
Enable singular matrix power using unitary similarities.
2013-07-04 18:37:46 +08:00
Gael Guennebaud
4020d4286f
Fix bug in sparse documentation.
2013-07-04 06:49:24 +02:00
Chen-Pang He
3cda1deb52
Simplify class hierarchy.
2013-07-04 05:10:43 +08:00
Chen-Pang He
eaf92ef48c
Remove unreachable MatrixPowerTriangular, paving the way to future cleanups.
2013-07-04 04:42:02 +08:00
Gael Guennebaud
155fa0ca83
Add missing namespace prefix in pconj
2013-07-03 11:36:12 +02:00
Jitse Niesen
4e458d309c
Fix some doxygen errors and warnings.
2013-07-02 14:08:12 +01:00
Jitse Niesen
419b5cff44
doc: Mention vec=vec.head(n) in aliasing page.
2013-07-02 13:35:36 +01:00
Gael Guennebaud
1caeb814f0
Fix bicgstab for complexes, and avoid a duplicate computation
2013-07-02 08:14:10 +02:00
Gael Guennebaud
f8e325356a
It's better to check that eigen_assert does raise an assert rather than testing the definition of NDEBUG
2013-07-01 13:48:21 +02:00
Gael Guennebaud
65cc51288a
On windows CE, assert.h defines NDEBUG if DEBUG is not defined
2013-07-01 13:47:25 +02:00
Gael Guennebaud
22820e950e
Improve BiCGSTAB robustness: fix a divide by zero and allow to restart with a new initial residual reference.
2013-07-01 11:49:23 +02:00
Gael Guennebaud
99bef0957b
Add missing sparse matrix constructor from sparse self-adjoint views, and add documentation for sparse time selfadjoint matrix
2013-06-28 22:56:26 +02:00
Desire NUENTSA
9f035c876a
Fiw bug #553 : add support for sparse matrix time sparse self-adjoint view products
2013-06-28 22:27:45 +02:00
Gael Guennebaud
fc27cbd914
Fix bug #611 : fix const qualifier in cwiseProduct(sparse,dense) and SparseDiagonalProduct::InnerIterator
2013-06-28 17:10:53 +02:00
Gael Guennebaud
a915f0292e
Fix bug #626 : add assertion on input ranges for coeff* and insert members for sparse objects
2013-06-28 16:16:02 +02:00
Gael Guennebaud
4cf742525f
bug #626 : add compiletime check of the Options template parameter of SparseMatrix and SparseVector. Fix eval and plain_object for sparse objects.
2013-06-28 15:56:43 +02:00
Gael Guennebaud
487d94f495
Fix bug #623 : inlining test_is_equal leads to failures with x87
2013-06-27 22:30:46 +02:00
Gael Guennebaud
74beb218d2
Fix bug #554 : include unistd.h before checking the presence of posix_memalign.
2013-06-26 22:49:14 +02:00
Jitse Niesen
ffbe04ae78
Merged in jdh8/eigen (pull request PR-27): Matrix power cleanup
2013-06-25 13:05:37 +01:00
Gael Guennebaud
95f8a738ea
Introduce a TEST_SET_BUT_UNUSED_VARIABLE macro for initialized but unused variables in the unit tests and also fix a few other warnings.
2013-06-25 11:42:04 +02:00
Gael Guennebaud
231d4a6fda
Workarounf nvcc not being able to find RowMajor when declaring a Matrix<...> inside another namespace.
2013-06-25 10:08:50 +02:00
Chen-Pang He
7b6e94fb58
Clean namespace pollution.
2013-06-25 02:56:30 +08:00
Chen-Pang He
b9543ce237
Matrix square root can process 0 eigenvalue.
2013-06-24 23:57:57 +08:00
Chen-Pang He
b9fc9d8f32
Remove mat.pow * vec specialization, which causes segfault for mat.pow * mat.pow
2013-06-24 23:56:17 +08:00
Gael Guennebaud
4cc9377941
fix casting from double* to void* in SuperLU and Cholmod support
2013-06-24 17:24:32 +02:00
Chen-Pang He
ee8a28fb85
Fix segfault and bug with equal eivals in matrix power (bug #614 ).
2013-06-24 13:58:51 +01:00
Gael Guennebaud
1330ca611b
CwiseUnaryView should not inherit no_assignment_operator!
2013-06-24 13:45:33 +02:00
Gael Guennebaud
c21a04bcf9
fix compilation of ArrayBase::transposeInPlace
2013-06-24 13:35:13 +02:00
Gael Guennebaud
c695cbf0fa
fix compilation of ArrayBase::transposeInPlace
2013-06-24 13:33:44 +02:00
Gael Guennebaud
8bbde351e7
bug #620 : fix robustness issue in JacobiSVD::solve (also fix a perf. issue)
2013-06-24 13:08:09 +02:00
Gael Guennebaud
d1d7a1ade9
Workaround a bunch of stupid warnings in unit tests
2013-06-23 19:11:32 +02:00
Simon Pilgrim
fab0235369
Fix bug #590 : NEON Duplicate lane load
2013-06-23 14:13:21 +02:00
Gael Guennebaud
bea4a67c92
that's getting harder and harder to make ICC, GCC and clang all happy: one wants type_name to be static and if it is so then the other one triggers 'unused function' warnings -> a forward declaration seems to do the trick
2013-06-22 10:51:45 +02:00
Gael Guennebaud
260a923334
explicit template specialization cannot have a storage class
2013-06-22 10:30:26 +02:00
Gael Guennebaud
3ed919e0ed
Fix an shut down a few ICC's remarks
2013-06-22 10:19:50 +02:00
Gael Guennebaud
dd964ec08c
Fix a couple of warnings
2013-06-21 19:06:45 +02:00
Gael Guennebaud
620e4277bc
Disable ASM comments on non x86 architecture and do not redfine if EIGEN_ASM_COMMENT is already defined
2013-06-21 17:49:36 +02:00
Gael Guennebaud
8cc9b12589
Add missing using std::pow in lpNorm.
2013-06-21 11:37:33 +02:00
Gael Guennebaud
cf5c5ed725
Fix warning typedef XXX locally defined but not used
2013-06-21 09:27:38 +02:00
Gael Guennebaud
7adfca5af2
Shutdown clang warning: argument unused during compilation: '-ansi' at linking time
2013-06-21 09:24:57 +02:00
Gael Guennebaud
c0cad44da6
Reduce maximum number of warnings/errors. (they took GBs even for limited period of time)
2013-06-20 17:39:15 +02:00
Gauthier Brun
8105b5ed3f
new unsupported and not finished SVD, using a divide and conquert algorithm, with tests and benchmark
2013-06-19 00:03:27 +02:00
Gael Guennebaud
ba79e39c5c
bug #71 : enable vectorization of diagonal products in more cases.
2013-06-18 17:44:25 +02:00
Gael Guennebaud
eef8d98139
Fix bug #542 : fix detection of compiler version on systems without the head command.
2013-06-18 17:25:37 +02:00
Jitse Niesen
4e6d746514
Avoid phrase "static allocation" for local storage on stack (bug #615 ).
2013-06-18 14:35:12 +01:00
Jitse Niesen
e37ff98bbb
Implement mixed static/dynamic-size .block() (bug #579 )
2013-06-18 14:29:15 +01:00
Kolja Brix
05da15bf40
bug #230 , fix compilation issues and wrong static assertions
2013-06-18 09:44:40 +02:00
Gael Guennebaud
33788b97dd
Fix compilation issue with some compilers (when doing using Base::foo;, foo must be visible in the direct base class)
2013-06-18 00:48:47 +02:00
Jitse Niesen
79bd6fa5ee
Require at least cmake version 2.8.2 (bug #606 ).
2013-06-17 22:12:01 +01:00
Jitse Niesen
a8494787f4
Merged in RhysU/eigen//fix-documentation-typo-1371479301909 (pull request PR-25)
...
Fix documentation typo
2013-06-17 15:35:44 +01:00
Rhys Ulerich
437e26d000
Fix documentation typo
2013-06-17 14:28:42 +00:00
Gael Guennebaud
55365566b2
Fix HouseholderSequence::conjugate() and ::adjoint() and add respective unit tests.
2013-06-17 00:14:42 +02:00
Gael Guennebaud
9f11f80db1
Make psqrt works with numeric_limits<float>::min
2013-06-14 10:55:05 +02:00
Gael Guennebaud
5f178e54e9
Extend sparse-block unit test to explicitly cover bug #584
2013-06-14 10:52:19 +02:00
Jeff Dean
d5fa5001a7
Fix bug #613 : psqrt was incorrect for small numbers
2013-06-13 18:17:27 +02:00
Gael Guennebaud
3352b8d873
Extend the magnitude range of tested numbers in packet math unit tests
2013-06-13 18:12:58 +02:00
Gael Guennebaud
d541765e85
Fix copy constructor signature
2013-06-12 18:02:13 +02:00
Gael Guennebaud
f75419c711
Add missing changes.
2013-06-12 17:56:15 +02:00
Gael Guennebaud
f3a029e957
Remove meaningless explicit qualifier
2013-06-12 13:05:23 +02:00
Gael Guennebaud
1b92d2ca33
Suppress warning #2304 : non-explicit constructor with single argument may cause implicit type conversion
2013-06-12 13:02:30 +02:00
Gael Guennebaud
f6c1841316
compilation fixes in unsupported
2013-06-12 12:52:41 +02:00
Gael Guennebaud
65c59307e2
Fix sparse_basic unit test conflict
2013-06-12 10:37:15 +02:00
Gael Guennebaud
62670c83a0
Fix bug #314 : move remaining math functions from internal to numext namespace
2013-06-10 23:40:56 +02:00
Gael Guennebaud
827843bbbd
Complete the lapack interface to make it complete enough for suitesparse QR.
2013-06-12 10:12:50 +02:00
Gael Guennebaud
76f4820560
Improve SuiteSparse cmake scripts
2013-06-12 10:12:05 +02:00
Gael Guennebaud
f0efe60924
Fix implicit conversion warnings
2013-06-12 09:25:58 +02:00
Gael Guennebaud
92eb807c30
Fix warning: explicitely initialize all member of IOFormat
2013-06-12 09:24:07 +02:00
Gael Guennebaud
7742eacfeb
Add default value for IsRepeatable in functor_traits
2013-06-12 09:22:59 +02:00
Gael Guennebaud
f3af423c70
Add missing dependency in SparseSholesky header
2013-06-11 21:13:30 +02:00
Desire NUENTSA
1bf18bd57f
Fix bug in SparseLU dfs for dense matrices
2013-06-11 14:48:04 +02:00
Desire NUENTSA
9266f65318
Fix bug #588 : Compute a determinant using SparseLU
2013-06-11 14:46:13 +02:00
Desire NUENTSA
4cd8245c96
Add support with unit test for off-diagonal sparse matrix views
2013-06-11 14:42:29 +02:00
Desire NUENTSA
b3fff170a0
Restore internal math functions for unit tests
2013-06-11 14:31:31 +02:00
Gael Guennebaud
18e476107e
Fix bug #583 : add compile-time check that DenseIndex is signed
2013-06-10 17:16:16 +02:00
Simon Pilgrim
ca67c60150
Fix bug #591 : minor optimization in NEON vectorization support
2013-06-10 15:59:03 +02:00
Gael Guennebaud
05c9be65ce
Fix bug #595 : typo
2013-06-10 13:10:36 +02:00
Gael Guennebaud
a4a575e2a3
fix bug #597 : typo in sparse documentation
2013-06-10 12:13:31 +02:00
Gael Guennebaud
26c35b95c7
Fix bug #598 : add explicit cast to Scalar type
2013-06-10 12:03:55 +02:00
Gael Guennebaud
0525874a03
Fix bug #599 : add missing documentation of some members in QR module.
2013-06-10 11:58:28 +02:00
Gael Guennebaud
2b6528effc
HouseholderSequence should expose standard enums (Rows/Cols, etc.))
2013-06-10 11:42:14 +02:00
Gael Guennebaud
47e89026d0
Check sparse matrices with short indices
2013-06-10 10:34:03 +02:00
Gael Guennebaud
e8c963568c
Simplify and generalize assign_selector logic
2013-06-10 10:32:29 +02:00
Gael Guennebaud
b6d3fcf6f2
Fix bug #605 : ambiguous call to std::min when calling .diagonal() on a sparse matrix with non default index type
2013-06-10 10:11:29 +02:00
Gael Guennebaud
e392948548
Fix bug #607 : handle implicit transposition from sparse vector to dense vector
2013-06-10 00:06:40 +02:00
Gael Guennebaud
4811b4526c
Add regression test for bug #608
2013-06-09 23:30:04 +02:00
Gael Guennebaud
a69b4b092b
Fix bug #608 : the sign computation in LDLT was broken
2013-06-09 23:19:32 +02:00
Gael Guennebaud
c98fd7a6ca
Fix bug #609 : avoid if statement and improve consistency of eulerAngles method
2013-06-09 23:14:45 +02:00
Gael Guennebaud
e04b59929e
fix unused variable warning
2013-06-09 21:03:32 +02:00
Gael Guennebaud
64054ee396
Add nvcc support for normalize, initializers, and fuzzy comparisons
2013-06-05 15:38:33 +02:00
Gael Guennebaud
b3adc4face
Add missing pconj specializations
2013-05-17 17:25:29 +02:00
Thomas Capricelli
62e337eb01
fix a weird typo I commited in ae76c97704
...
(Nov 10th, 2009)
2013-06-03 23:09:33 +02:00
Desire NUENTSA
d7cd957f10
Include misc struct declarations
2013-05-29 10:15:40 +02:00
Desire NUENTSA
e0566a817f
Delete unneeded resize in SparseQR
2013-05-22 10:44:12 +02:00
Desire NUENTSA
8e050bd681
Optimize Sparse setIdentity and add a unit test
2013-05-22 10:43:12 +02:00
Desire NUENTSA
cf939f154f
Fix bug #596 : Recover plain SparseMatrix from SparseQR matrixQ()
2013-05-21 17:35:10 +02:00
Gael Guennebaud
bd7511fc36
Fix return type of TriangularView::ReverseInnerIterator::operator++
2013-05-17 14:40:32 +02:00
Gael Guennebaud
bd0474adbb
Fix A=A with A a SparseMatrix
2013-05-17 14:39:31 +02:00
Gael Guennebaud
9ab3811cc5
Disallow implicit scalar conversion of SparseMatrix
2013-05-17 14:02:20 +02:00
Gael Guennebaud
b5e5b6aa57
Fix non const data() member in Array and Matrix wrappers.
2013-05-16 10:18:19 +02:00
Hauke Heibel
12e69ec896
Added asserts to AngleAxis class which verify that the initial axis is
...
normalized.
2013-05-15 12:05:01 +02:00
Hauke Heibel
8556ca3de5
Adapted settings for the eol extension.
2013-05-15 13:45:24 +02:00
Desire NUENTSA
f7bdbf69e1
Add support in SparseLU to solve with L and U factors independently
2013-05-14 17:15:23 +02:00
Desire NUENTSA
83736e9c61
Set back the default ordering method in SPQR support
2013-05-13 13:08:13 +02:00
Desire NUENTSA
122b16d841
fix memory leak from Cholmod data in SPQR support
2013-05-13 13:04:12 +02:00
Gael Guennebaud
43bb942365
Add missing support for x.noalias() = ReturnByValue<...>
2013-05-13 10:39:50 +02:00
Gael Guennebaud
fcdbfabf7a
Fix setFromTripplet with empty inputs
2013-05-03 14:28:37 +02:00
Gael Guennebaud
aa8b897607
document the evaluation order of the comma initializer
2013-04-19 14:03:16 +02:00
Gael Guennebaud
9cd2d14005
merge with default branch
2013-04-19 11:21:39 +02:00
Gael Guennebaud
4e2e615a7c
actually assertion are incompatible with nvcc even on host code
2013-04-19 11:14:17 +02:00
Gael Guennebaud
46755648ec
Add a few missing standard functions for ScalarWithExceptions type.
2013-04-17 10:24:31 +02:00
Gael Guennebaud
41b3c56e61
Disable "operands are evaluated in unspecified order" ICC's remark
2013-04-17 10:23:08 +02:00
Gael Guennebaud
9a4caf2b0f
Extend internal doc of ploaddup and palign
2013-04-17 09:17:34 +02:00
Gael Guennebaud
94e20f485c
Big 564: add hasNaN and isFinite members
2013-04-16 15:10:40 +02:00
Desire NUENTSA
d4b0c19a46
Fix a bug in Supernodal Matrix Iterator
2013-04-15 17:24:49 +02:00
Gael Guennebaud
db43205dc6
Fix ICC warning when defining both -ansi and -strict-ansi
2013-04-12 15:51:40 +02:00
Gael Guennebaud
9816e8532e
Fix bug #482 : pass scalar value by const reference (it remained a few cases)
2013-04-12 15:26:55 +02:00
Gael Guennebaud
43f4fd4d71
generalize testing flags to clang and ICC
2013-04-12 15:24:41 +02:00
Gael Guennebaud
7450b23fbb
Fix bug #563 : assignement to Block<SparseMatrix> is now allowed on non-compressed matrices
2013-04-12 13:20:13 +02:00
Gael Guennebaud
6eaff5a098
Enable SSE with ICC even when it mimics a gcc version lower than 4.2
2013-04-11 19:48:34 +02:00
Gael Guennebaud
1e38928c64
workaround strange compilation issue with ICC and -strict-ansi
2013-04-10 17:30:25 +02:00
Gael Guennebaud
ff661a7b6f
Add temporary check for triangularView += product
2013-04-10 23:13:04 +02:00
Gael Guennebaud
899c0c2b6c
Clean source code and unit tests with respect to -Wunused-local-typedefs
2013-04-10 22:27:35 +02:00
Gael Guennebaud
7e04d7db02
Fix a serious bug in handmade_aligned_realloc: original data have to be moved if the alignment offset differs.
2013-04-10 13:58:20 +02:00
Gael Guennebaud
f7e52d22d4
Fix missuse of unitialized values in unit tests
2013-04-10 09:46:16 +02:00
Gael Guennebaud
84637ca58c
Remove a useless variable in blueNorm
2013-04-10 09:41:42 +02:00
Gael Guennebaud
d7f3cfb56e
bug #564 : document the fact that minCoeff/maxCoeff members have undefined behavior if the matrix contains NaN.
2013-04-09 11:27:54 +02:00
Gael Guennebaud
3cb6e21f80
Fix bug #562 : add vector-wise normalized and normalize functions
2013-04-09 11:12:35 +02:00
Gael Guennebaud
d8f1035355
Fix a couple of int versus Index issues.
2013-04-09 09:43:00 +02:00
Gael Guennebaud
bff264283d
Add missing epsilon/dummy_precision function in NumTraits<Array>
2013-04-09 09:31:26 +02:00
Gael Guennebaud
8f44205671
Fix bug #581 : remove useless piece of code is blueNorm
2013-04-09 09:23:40 +02:00
Desire NUENTSA
d97cd746ae
Replace int by Index
2013-04-08 08:51:58 +02:00
Gael Guennebaud
12439e1249
Port SelfCwiseBinaryOp and Dot.h to nvcc, fix portability issue with std::min/max
2013-04-05 16:35:49 +02:00
Christoph Hertzberg
9b33ab62da
Fixing bug #578 . Thanks to Angelos <filiatra@gmail.com>
2013-04-03 16:29:16 +02:00
Gael Guennebaud
c3a6fa03a2
elif/elseif typo
2013-03-26 11:52:43 +01:00
Gael Guennebaud
0a1d9fb9ae
Fix warning: implicit conversion loses integer precision in SparseMatrix. No need to use std::ptrdiff_t instead of Index since this later is requested to be signed.
2013-03-20 21:58:24 +01:00
Gael Guennebaud
225fd0f579
adapt AutoDiff to scalar_product_traits
2013-03-20 21:20:13 +01:00
Gael Guennebaud
c519be2bac
Allow multiplication like binary operators to be applied on type couples supported by scalar_product_traits
2013-03-20 21:19:16 +01:00
Desire NUENTSA
f350f34560
Add complex support to dgmres and the unit test
2013-03-20 18:38:22 +01:00
Gael Guennebaud
d63712163c
Add SSE4 min/max for integers
2013-03-20 18:28:40 +01:00
Desire NUENTSA
da6219b19d
Bug567 : Fix iterative solvers to immediately return when the initial guess is the true solution and for trivial solution
2013-03-20 16:15:18 +01:00
Desire NUENTSA
22460edb49
Use a template Index for COLAMD ordering
2013-03-20 16:02:03 +01:00
Desire NUENTSA
4107b371e3
Handle zero right hand side in CG and GMRES
2013-03-20 11:22:45 +01:00
Gael Guennebaud
9bfeeba1c5
Add Official/Unsupported labels to unit tests and add a ctest driver to submit subprojects to cdash
2013-03-20 08:40:13 +01:00
Thomas Capricelli
11a9091084
fix a weird bug where a space was missing before a link
2013-03-19 20:09:13 +01:00
Thomas Capricelli
aba50d842e
fixes #568
...
(files from previous build were kept on the server, with outdated/garbled
information)
The documentation update script now wipes build/doc/html
before rebuilding stuff. Most of the time/cpu consuming is spent in
compiling snippets, so we don't loose that much.
2013-03-19 19:18:14 +01:00
Gael Guennebaud
f29b4c435b
Make cpuid not use %%esi -> dangerous if someone is using it.
2013-03-19 14:11:59 +01:00
Michael Schmidt
0d5a418048
Fix bug #566 : rbx register has to be saved when calling cpuid on x84_64 with -fPIC and medium or large code models.
2013-03-19 14:00:42 +01:00
Claas H. Köhler
d6d638c751
Forward compiler flags to Fortran workaround
2013-03-17 14:17:44 +01:00
Christoph Hertzberg
6357fd68da
Patch by Kolja Brix <brix@igpm.rwth-aachen.de> that fixes bug #565 and adds a testcase to verify that.
2013-03-17 13:55:31 +01:00
Desire NUENTSA
f8addac4e1
Include SparseLU and SparseQR
2013-03-13 18:01:47 +01:00
Gael Guennebaud
5d1a74da0a
Update matlab-eigen quick ascii reff
2013-03-11 21:20:12 +01:00
Desire NUENTSA
6c68f1d787
bug #563 : Sparse block assignments should be called on compressed matrices. Uncompressed matrices will be supported later
2013-03-11 19:21:18 +01:00
Jitse Niesen
79f93247c5
Relax tolerances in matrix_power tests to avoid intermittent failures.
2013-03-09 17:20:16 +00:00
Jitse Niesen
97c9e3c74f
Handle special case in atanh2(x,y) when y = 0.
...
This fixes matrix_power unit test on clang.
2013-03-09 16:58:05 +00:00
Gael Guennebaud
03373f41cb
Fix bug #561 : remove useless sign macro
2013-03-07 23:35:26 +01:00
Gael Guennebaud
f82ee241ac
Added tag 3.2-beta1 for changeset 2238592062
2013-03-07 08:51:23 +01:00
Gael Guennebaud
2238592062
bump to 3.2-beta1 (3.1.91)
2013-03-07 08:49:10 +01:00
Desire NUENTSA
4fdae4dda9
Fix bug in SparseLU kernel for 32bits indices
2013-03-06 16:35:12 +01:00
Gael Guennebaud
98ce4455dd
fix sparse vector assignment from a sparse matrix
2013-03-06 11:58:22 +01:00
Desire NUENTSA
69bd334d2b
Fix mismatched free/delete
2013-03-05 16:35:13 +01:00
Desire NUENTSA
a1ddf2e7a8
Update doc for the sparse module
2013-03-05 12:55:03 +01:00
Gael Guennebaud
24d81aeb20
Fix overlaping operands when calling memcpy
2013-03-04 17:47:45 +01:00
Gael Guennebaud
d2e5c9d892
Do not globally disable stupid warnings in our unit test since such warnings do affect user code.
2013-03-01 14:50:20 +01:00
Gael Guennebaud
b9fe79153b
Fix a couple of remaining warnings (missing newlines, inline-noinline, meaningless type qualifiers)
2013-03-01 14:42:36 +01:00
Gael Guennebaud
87142237b5
Fix "missing return statement at end of non-void function"
2013-03-01 14:33:11 +01:00
Gael Guennebaud
210a56ff48
Update to latest mpreal.
2013-03-01 14:31:11 +01:00
Gael Guennebaud
d70366d011
Remove assumption on RowMajorBit==RowMajor and ColMajor==0
2013-03-01 14:23:31 +01:00
Gael Guennebaud
01c6308d6e
Add missing template keyword in evaluators
2013-03-01 00:26:52 +01:00
Gael Guennebaud
858ac9ffe0
Add missing template keyword
2013-03-01 00:03:28 +01:00
Gael Guennebaud
1bb1945078
Fix "explicit instantiation of 'Eigen::Spline' must occur in namespace 'Eigen'" warnings
2013-02-28 20:22:26 +01:00
Gael Guennebaud
3930c9b086
Fix "routine is both "inline" and "noinline"" warnings
2013-02-28 19:31:03 +01:00
Gael Guennebaud
e5bf4440c0
Fix "type qualifiers are meaningless here" warnings
2013-02-28 19:29:32 +01:00
Gael Guennebaud
0fac91ac22
Fix "storage class is not first" warnings
2013-02-28 19:27:53 +01:00
Hauke Heibel
b5d8299ee7
Prevent calling .norm() on integer matrices in the unit tests.
2013-02-28 12:33:34 +01:00
Hauke Heibel
83aac6d54c
MSVC fix; the compiler failed to detect the correct overload.
2013-02-28 11:38:34 +01:00
Hauke Heibel
5882f1631d
Fixed compiler warning.
2013-02-28 10:15:19 +01:00
Hauke Heibel
5e8384df2e
MSVC fix; the base class typedef shadowed the local template parameter.
2013-02-28 08:47:38 +01:00
Gael Guennebaud
6dd93fc76e
The ref unit test cannot be easily written to work with EIGEN_DEFAULT_TO_ROW_MAJOR
2013-02-27 23:52:10 +01:00
Hauke Heibel
c754023e72
Fixed MSVC dashboard (Experimental/Continuous) build scripts.
2013-02-27 15:54:27 +01:00
Gael Guennebaud
455e6e38b6
Fix two numerical issues in unit tests.
2013-02-27 08:07:18 +01:00
Gael Guennebaud
61a2995d03
Remove ICC warning in nomalloc unit test.
2013-02-26 18:10:19 +01:00
Gael Guennebaud
fe2c8e1c36
Fix compilation with ICC that was unable to instanciate Scaling from Eigen's namespace.
2013-02-26 17:38:37 +01:00
Gael Guennebaud
fa17a6da75
Fix compilation with ICC that was unable to instanciate first_aligned
2013-02-26 17:32:42 +01:00
Gael Guennebaud
bb94f0ebc6
Add a unit test for Ref.h and fix an extra copy.
2013-02-26 15:10:00 +01:00
Gael Guennebaud
63135a7350
Fix computation of outer-stride when calling .real() or .imag()
2013-02-26 15:08:50 +01:00
Gael Guennebaud
e8ccd07671
Add the possibility to define a custom build-string suffix
2013-02-26 13:40:13 +01:00
Gael Guennebaud
0b187a40a1
workaround "may be used uninitialized in this function" warning
2013-02-26 12:09:08 +01:00
Gael Guennebaud
5dda7842ca
Add assertion on the input matrix size in factorizations relying on permutations of 32bits int
2013-02-26 11:42:32 +01:00
Gael Guennebaud
b73baa1ea4
Workaround warning: assuming signed overflow does not occur when...
2013-02-26 10:29:24 +01:00
Gael Guennebaud
5108ef01fc
Fix no newline warning.
2013-02-26 10:27:55 +01:00
Gael Guennebaud
b6dc2613ac
Fix bug #552 : disable EIGEN_GLIBC_MALLOC_ALREADY_ALIGNED when compiling with -fsanitize=address, and allow users to manually tell whether EIGEN_MALLOC_ALREADY_ALIGNED.
2013-02-25 19:17:13 +01:00
Gael Guennebaud
12a1313b09
bug #482 : pass scalar arguments by const references. Still remains a few cases that might affect the ABI (see the bug entry)
2013-02-25 18:05:57 +01:00
Desire NUENTSA
cc35c44256
Add reference for the default threshold in sparse QR
2013-02-25 14:26:55 +01:00
Desire NUENTSA
ced8dfc0d9
Fix the computation of the default pivot threshold for sparse QR
2013-02-25 13:41:59 +01:00
Gael Guennebaud
5a0c5c0393
Fix bug #483 : optimize outer-products to skip setZero and a scalar multiple when not needed.
2013-02-25 13:31:42 +01:00
Gael Guennebaud
96ad13abba
conservative_resize unit test was executed only once
2013-02-25 01:50:58 +01:00
Gael Guennebaud
41aa0fcc3b
Output random generator seed in case of failure so that we have it in CDash.
2013-02-25 01:46:59 +01:00
Gael Guennebaud
698de91c8a
Fix segfault in SparseBlock::InnerIterator
2013-02-25 01:30:18 +01:00
Gael Guennebaud
19bc418f5c
Remove erroneously committed debugging stuff.
2013-02-25 01:17:44 +01:00
Gael Guennebaud
80d2a65465
Fix visitor unit test.
2013-02-25 01:12:07 +01:00
Gael Guennebaud
04367447ac
Fix bug #496 : generalize internal rank1_update implementation to accept uplo(A) += v * w and make A.triangularView() += v * w uses it.
...
Update unit tests and blas interface respectively.
2013-02-24 23:05:42 +01:00
Gael Guennebaud
08388cc712
Remove superfluous cast.
2013-02-24 20:37:52 +01:00
Gael Guennebaud
1c137496c6
Extend sparseqr unit test to check linearly dependent columns
2013-02-24 20:36:54 +01:00
Gael Guennebaud
4eeaff6d38
Cleaning pass on SparseQR
2013-02-24 20:36:28 +01:00
Gael Guennebaud
28e139ad60
Fix another issue related to summing up many signed values.
2013-02-23 23:06:45 +01:00
Gael Guennebaud
42af5870a4
Fix array unit test: isApprox(log(0),log(0)) is false, and summing up signed float value might result in very small values and thus large numerical errors
2013-02-23 22:58:14 +01:00
Gael Guennebaud
274c24c262
Avoid problematic ternary operator ( http://forum.kde.org/viewtopic.php?f=74&t=109486 )
2013-02-23 20:13:21 +01:00
Sebastien Barthelemy
74438f8aa9
Fix EIGEN_INITIALIZE_MATRICES_BY_NAN.
2013-02-22 15:09:03 +01:00
Gael Guennebaud
7fe6419171
remove double parenthesis
2013-02-22 14:50:47 +01:00
Gael Guennebaud
e71bc79f2a
SparseLU does not accept row-major matrices for the destination.
2013-02-22 14:45:42 +01:00
Gael Guennebaud
bd8c9c69e4
Protect min with parenthesis in IncompleteLLT
2013-02-22 14:41:32 +01:00
Gael Guennebaud
d93c1c113b
NVCC: EIGEN_NO_DEBUG must be defined before including Macro.h
2013-02-21 19:05:23 +01:00
Desire NUENTSA
59f9400420
Clarify the doc for column-pivoting QR
2013-02-21 13:33:31 +01:00
Gael Guennebaud
968f7591f8
Make it compile without nvcc
2013-02-21 12:51:58 +01:00
Jitse Niesen
986f60127d
Guard against transposeInPlace on non-square non-resizable matrix.
...
Inspired by question by Martin Drozdik at stackoverflow.com/q/14954983
2013-02-20 14:03:14 +00:00
Jitse Niesen
a054b4ee27
Be more explicit about user-defined functions in Map tutorial.
...
See discussion on mailing list on 18 + 19 Feb 2013.
2013-02-20 13:44:40 +00:00
Desire NUENTSA
febf8e5d7b
Set built-in sparse QR as the default sparse solver and add ComputationInfo for Levenberg Marquardt,
2013-02-20 14:10:14 +01:00
Desire NUENTSA
dca7190e15
Add setPivotThreshold to Sparse QR
2013-02-20 14:00:28 +01:00
Desire NUENTSA
19de016fef
Correct the SPQR backend for rank-deficient matrices and delete some public functions
2013-02-20 13:59:56 +01:00
Desire NUENTSA
bc18e06fe3
Add matrixR() to get the triangular factor from the Householder QR
2013-02-20 13:58:26 +01:00
Desire NUENTSA
962c99d462
Metis ordering backend supports only squared matrices
2013-02-20 13:56:51 +01:00
Jitse Niesen
ba653105a2
Remove confusing transpose() in setLinSpaced() docs.
2013-02-18 17:27:41 +00:00
Jitse Niesen
b4f6aec195
Fix linear vectorized transversal in linspace (fixes bug #526 ).
2013-02-18 17:26:03 +00:00
Desire NUENTSA
1a056b408d
Add a rank-revealing feature to sparse QR
2013-02-15 16:35:28 +01:00
Gael Guennebaud
9fd465ea2b
Fix the following warning: "comparison between signed and unsigned integer expressions"
2013-02-15 14:31:38 +01:00
Gael Guennebaud
cf259ce590
Workaround the following warning: "assuming signed overflow does not occur when assuming that (X + c) < X is always false"
2013-02-15 14:28:20 +01:00
Gael Guennebaud
a1091caa43
Fix some unused or not initialized related warnings.
2013-02-15 14:05:37 +01:00
Gael Guennebaud
19f699ded0
"-Wno-psabi" option is not supported by all gcc version.
2013-02-15 14:01:30 +01:00
Gael Guennebaud
8745da14d8
Fix SSE plog<float> to return -INF on 0
2013-02-14 23:34:05 +01:00
Gael Guennebaud
912ba10efe
Remove the following note made by gcc: "The ABI of passing structure with complex float member has changed in GCC 4.4"
2013-02-14 21:52:12 +01:00
Gael Guennebaud
24e4a3af2b
Add missing using std::sqrt
2013-02-14 21:40:00 +01:00
Gael Guennebaud
a0fb885c82
Update adjoint unit test to avoid instantiating sqrt(int)
2013-02-14 21:33:42 +01:00
Gael Guennebaud
9cc016d3f9
Update basicstuff unit test to avoid instantiating the ambiguous sqrt(int)
2013-02-14 21:15:58 +01:00
Gael Guennebaud
f8407742c1
Fix some implicit int64 to int conversion warnings. However, the real issue
...
is that PermutationMatrix mixes the type of the stored indices and the "Index"
type used for the sizes, coeff indices, etc., which should be DenseIndex.
(transplanted from 66cbfd4d39
)
2013-02-14 18:16:51 +01:00
Gael Guennebaud
25bcbfb10c
Fix bug in aligned_free with windows CE
2013-02-13 19:09:31 +01:00
Gael Guennebaud
a143c5b78c
Fix bug #544 : assertion in JacobiSVD when compiling with EIGEN_NO_AUTOMATIC_RESIZING
2013-02-12 19:56:48 +01:00
Gael Guennebaud
3cd32996f1
Fix bug #551 : compilation issue when using EIGEN_DEFAULT_DENSE_INDEX_TYPE
2013-02-09 09:43:17 +01:00
Gael Guennebaud
5adcc6c7b4
Add support for NVCC5: most of the Core and part of LU are callable from CUDA code.
...
Still a lot to do.
2013-02-07 19:06:14 +01:00
Gael Guennebaud
5115f4c504
add EIGEN_INITIALIZE_MATRICES_BY_NAN
2013-02-07 18:07:07 +01:00
Gael Guennebaud
3c1ccca285
Add missing operator= in RefBase
2013-02-07 17:49:16 +01:00
Gael Guennebaud
e21dc15386
Add missing data member function in CwiseUnaryView
2013-02-07 17:44:24 +01:00
Gael Guennebaud
5154253933
Fix some MPL2/LGPL lisencing confusions
2013-02-06 11:30:33 +01:00
Jitse Niesen
14e2ab02b5
Replace assert() by eigen_assert() (fixes bug #548 ).
2013-02-02 22:04:42 +00:00
Desire NUENTSA
35647b0133
Correct bug in SPQR backend and replace matrixQR by matrixR
2013-01-29 17:48:30 +01:00
Desire NUENTSA
8bc00925e5
Change int to Index type for SparseLU
2013-01-29 16:21:24 +01:00
Hauke Heibel
57e50789f3
Added missing using std::sqrt.
2013-01-27 13:46:06 +01:00
Hauke Heibel
718535ac6c
Added Visual Studio 2012 debug visualizers.
2013-01-26 17:32:14 +01:00
Desire NUENTSA
7f0f7ab5b4
Add additional methods in SparseLU and Improve the naming conventions
2013-01-25 20:38:26 +01:00
Desire NUENTSA
d58056bde4
Merged local branch with main trunk
2013-01-25 19:05:33 +01:00
Desire NUENTSA
81d4bfa8d9
add support for solving with sparse right hand side
2013-01-25 18:17:17 +01:00
Gael Guennebaud
e4ec63aee7
Suppress annoying "may be used uninitialized in this function" warning with gcc >= 4.6
2013-01-24 11:59:17 +01:00
Gael Guennebaud
b74c0a4413
Check that NeedsToAlign is properly sets before checking alignment
2013-01-24 11:42:04 +01:00
Gael Guennebaud
7282a45a0a
Remove dummy code in MPRealSupport
2013-01-24 08:48:26 +01:00
Gael Guennebaud
29d395f769
Relax a bit the precision in mpreal unit test.
2013-01-23 23:57:28 +01:00
Gael Guennebaud
691e607d85
Specialize GEBP traits and kernel for mpreal to by-pass mpreal and remove the costly creation of many temporaries.
2013-01-23 23:56:57 +01:00
Gael Guennebaud
c22f7cef83
Workaround "error: floating-point literal cannot appear in a constant-expression" in mpreal.h when compiling with predantic.
...
(I really don't know how to properly fix this))
2013-01-23 20:51:38 +01:00
Gael Guennebaud
73026eab4d
Fix SparseLU special gemm kernel on 32 bits system w/o SSE
2013-01-23 19:34:01 +01:00
Gael Guennebaud
ee36eaefc6
remove dummy code in ColPivHouseholderQR::solve
2013-01-23 18:34:29 +01:00
Gael Guennebaud
19c78cf510
Workaround gcc-4.7 bug #53900 (too aggressive optimization in our alignment check)
2013-01-22 22:59:09 +01:00
Gael Guennebaud
67b9f42528
Recent UMFPACK library requires to link to libSuiteSparse
2013-01-22 22:53:28 +01:00
Desire NUENTSA
ad798231ec
Fix test for Metis
2013-01-21 15:43:15 +01:00
Desire NUENTSA
3d9150870d
Fix documentation for SparseLU
2013-01-21 15:39:18 +01:00
Desire NUENTSA
d2dd5063b6
Documentation for the ordering methods
2013-01-21 15:37:47 +01:00
Desire NUENTSA
5b9bb00265
Test for the sparse Blue norm
2013-01-21 15:37:06 +01:00
Desire NUENTSA
5dcf6caa36
Unit test for the Metis Ordering package
2013-01-21 15:36:18 +01:00
Gael Guennebaud
392ffce3b9
Fix traits of Map<Quaternion>, and respectively extend the unit tests
2013-01-20 10:21:54 +01:00
Gael Guennebaud
fb89b66229
Some minor documentation fixes in Quaternion
2013-01-20 10:20:39 +01:00
Chen-Pang He
23c87fcde6
I think it's OK to let XprHelper.h determine the nested type.
2012-10-15 00:14:32 +08:00
Chen-Pang He
fe0ef8e609
Remove unused typedef (traits<MatrixPowerProduct>::PlainObject) for brevity.
2012-10-14 22:30:52 +08:00
Chen-Pang He
40fce01648
Simplify traits<MatrixPowerProduct>: StorageKind must be Dense because MatrixPowerProduct is derived from MatrixBase.
2012-10-14 18:36:17 +08:00
Chen-Pang He
c890cf5489
Use the nested type instead of const reference
2012-10-14 03:02:16 +08:00
Chen-Pang He
daa65c5bce
Just tidy up: no need to specify template parameters inside class body.
2012-10-14 01:36:54 +08:00
Chen-Pang He
0017d8c58f
Make MatrixPowerTriangularAtomic::computePade static because it should be.
2012-10-07 02:25:00 +08:00
Chen-Pang He
a5d348e30a
Use simplified return type, trying to work around MSVC.
2012-10-03 19:42:02 +08:00
Chen-Pang He
4cfde4590f
Make use of TRMM (speed up), and remove useless condition (the triangular don't need LU)
2012-10-02 23:04:23 +08:00
Chen-Pang He
21c2b4e327
Make better decision on PartialPivLU vs inverse(): We have specialized inverse() only for FIXED matrices.
2012-10-02 19:53:38 +08:00
Chen-Pang He
e92fe88159
Add test for real MatrixPowerTriangular.
2012-09-30 19:21:53 +08:00
Chen-Pang He
eb33d307af
Avoid Schur decomposition on (quasi-)triangular matrices. (Huge speed up!)
2012-09-30 16:30:18 +08:00
Chen-Pang He
332eb36436
Implement complex MatrixPowerTriangular. There are still problems with real one.
2012-09-30 02:14:16 +08:00
Gael Guennebaud
209199a13e
Move the definition of DenseBase::InnerIterator to Core module. (needed to make blueNorm generic)
2013-01-15 22:03:54 +01:00
Desire NUENTSA
f813e83bc3
Delete unused variable in SparseLU
2013-01-14 16:03:46 +01:00
Desire NUENTSA
c05848a330
Move SparseColEtree common to SparseLU and SparseQR to SparseCore and fix build issue of sparseqr
2013-01-14 15:59:46 +01:00
Desire NUENTSA
904c2f137b
Fix the column permutation in SparseQR
2013-01-14 14:20:42 +01:00
Gael Guennebaud
a3b94d26c8
Remove TOC numbering, and minor improvement in overview.
2013-01-12 20:34:52 +01:00
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
1ccd90a927
Make the MatrixFunctions documentation page looks a bit better
2013-01-11 10:48:43 +01:00
Gael Guennebaud
cc444bbbf9
update unsupported module documentation to be conformed with new documentation style
2013-01-11 10:41:26 +01:00
Gael Guennebaud
b0cb5e6d48
remove the 'Unsupported Modules' meta module
2013-01-11 10:40:35 +01:00
Gael Guennebaud
109cbb6ad3
typos
2013-01-09 17:44:25 +01:00
Gael Guennebaud
dcc1754f05
update javascript hacks for doxygen 1.8.3
2013-01-09 00:40:48 +01:00
Gael Guennebaud
2abe7d8c6e
Rename the dox files: the number prefixes are not needed anymore
2013-01-06 23:57:54 +01:00
Gael Guennebaud
091a49cad5
Clean the manual page titles, links and intro.
2013-01-06 23:48:59 +01:00
Thomas Capricelli
c71c06b71f
fix typo
2013-01-06 14:39:20 +01:00
Gael Guennebaud
8a50ed86f3
Check that minCoeff(int*)/maxCoeff(int*) always pick the first entry in case of multiple extrema.
2013-01-05 23:49:47 +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
86983fa1ff
Update the overview page to reflect the new organisation
2013-01-05 21:25:41 +01:00
Gael Guennebaud
2de69c2f26
Doc presentation:
...
- remove the "modules|classes" link for module pages (they are already in the TOC)
- fine tune the TOC css
2013-01-05 17:14:14 +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
Jitse Niesen
eac676ff6c
Set matrix to zero before inserting entries (partially fixes bug #539 ).
2013-01-03 18:00:45 +00: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
204a09cb82
Fix compile error caused by incomplete SparseMatrixBase.
2012-10-16 00:06:49 +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
8284e7134b
Add doc for KroneckerProductSparse.
2012-10-15 00:31:09 +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
Chen-Pang He
f34db6578a
KroneckerProduct: we have const_cast_derived so why not use it?
2012-10-14 01:38:38 +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
2ea1e49a08
Doc: replace manual TOC by doxygen's \tableofcontents command
2012-12-28 18:58:07 +01:00
Gael Guennebaud
ded70b8b58
Doc: remove page margins and limits to 60em paragraphes only instaead of the entire page (many declarations and tables are larger than 60em anyway)
2012-12-28 18:57:10 +01:00
Gael Guennebaud
3f82401890
Update doxygen files to doxygen version 1.8
2012-12-28 18:52:53 +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
Gael Guennebaud
85005ffbd1
Make sure sqrt and the likes are not compiled for integer type in cwiseop unit test.
2012-12-20 18:08:26 +01:00
Christoph Hertzberg
b7ea59556d
Fix bug #507 : Mark variable as unused in NDEBUG case
2012-12-20 11:21:47 +01:00
Christoph Hertzberg
0fe264869a
Merge with 6300e8ca02
2012-12-17 17:01:24 +01:00
Christoph Hertzberg
6300e8ca02
replaced compiler specific __attribute__((noinline)) by EIGEN_DONT_INLINE
2012-12-17 16:55:14 +01:00
Christoph Hertzberg
c69577ea31
Fix bug #531 : Empty line in <table> made doxygen render it as paragraphs
2012-12-17 16:13:42 +01:00
Jakob Schwendner
22e6741da9
updated geometry benchmark to handle additional cases
2012-12-17 09:33:22 +01:00
Jakob Schwendner
98798e904b
added benchmark for test vectorization in geometry package
2012-12-16 23:30:56 +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
David Harmon
23ce05971b
Add arpack support module file
2012-12-16 19:11:24 +01:00
David Harmon
dbe1ab67ac
Added ARPACK support for standard and generalized eigenvalue problems. Currently self-adjoint only.
2012-10-06 17:18:09 -06: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
Gael Guennebaud
d85253ccf4
Backed out changeset 363e506776
2012-12-07 20:53:19 +01:00
Desire NUENTSA
363e506776
Rename the old LevenbergMarquardt class to LevenbergMarquardtLegacy
...
Split the levenberg marquardt test and the hybrid nonlinear test
2012-12-07 15:51:25 +01:00
Desire NUENTSA
cc0fef9807
Add tests for dense and sparse levenberg-Marquardt
2012-12-07 15:48:21 +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
71cb78e1ba
Fix Incomplete Cholesky factorization. Stable but need iterative robust shift
2012-12-07 15:33:26 +01:00
Desire NUENTSA
5afaacedc6
Update SPQR interface
2012-12-07 15:32:04 +01:00
Pavel Holoborodko
895d90d3e1
Fixed mpreal for IA64 architectures
2012-12-04 18:15:46 +09:00
Gael Guennebaud
8719b1bf16
fix geometry tutorial
2012-11-29 22:48:13 +08: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
6a790058f5
remove deprecated InnerVectorSet for the deprecated DynamicSparseMatrix class
2012-11-16 09:03:42 +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
b40a5b8b48
Improve the IncompleteLLT ... not yet robust
2012-11-13 18:14:34 +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
Desire NUENTSA
474716ec5b
Add restarted GMRES with deflation
2012-11-12 10:47:55 +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
959ef37006
Fix FindUmfpack when specifying manually the related cmake variables.
2012-11-05 23:21:02 +01:00
Gael Guennebaud
691fb92690
Disable opengl demo if Qt4 or OpenGL cannot be found.
...
(transplanted from caf24f1c9e
)
2012-10-31 11:36:45 +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
Desire NUENTSA
f7e203fb0c
Fix build error in matrixfunctions on MSVC
2012-10-30 11:30:37 +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
Pavel Holoborodko
7857118f2e
Fixed gcc warnings, John Westwood name and round_style function
2012-10-19 22:51:55 +09:00
Pavel Holoborodko
8b84e05739
Updated multiprecision module to support the most recent version of MPFR C++
2012-10-19 18:12:31 +09:00
Desire NUENTSA
77f92bf0b1
the repeated solves are already present in check_sparse_solving()
2012-10-09 13:30:48 +02:00
dnuentsa
f757034001
MINRES solver
2012-10-09 13:07:09 +02:00
Desire NUENTSA
fe78c86b4a
Discard failing tests in NonlinearOptimization
2012-10-09 12:20:21 +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
Desire NUENTSA
cfa8032ffb
bug #517 : Small typo in AsciiQuickReference
2012-10-03 09:48:33 +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
f30ca7ed7e
extend unit tests to check rectangular matrices for sparse*diagonal products
2012-10-02 23:03:06 +02:00
Gael Guennebaud
62b1f75a86
add an assertion when inserting an already existing element
2012-10-02 23:02:23 +02:00
giacomo po
bf81276dad
spd test instead of square test. Still missing complex version of MINRES.
2012-10-01 12:23:03 -07:00
Jitse Niesen
2008f76120
Merge
2012-09-29 17:35:15 +01:00
Chen-Pang He
d7d96f6694
Make testExponentLaws in matrix_power quiet. It was too noisy.
2012-09-29 17:45:59 +08:00
Chen-Pang He
50c07e50e8
Avoid memory manipulation for simplicity, efficiency, and safety.
2012-09-29 17:41:51 +08:00
Chen-Pang He
5814a5f1a0
Abort the extension. MatrixSquareRootTriangular only takes upper triangular matrices.
2012-09-29 17:41:06 +08:00
Chen-Pang He
067a5a98c8
Extend MatrixPowerTriangularAtomic for future implementation for triangular matrix power.
2012-09-29 02:02:12 +08:00
Desire NUENTSA
b68102d9a2
MSVC needs parentheses around min and max
2012-09-28 10:44:25 +02:00
giacomo po
01cb88fff8
compiling (but failing) unit test
2012-09-27 17:44:54 -07:00
Gael Guennebaud
87074d97e5
old gcc versions do not have immintrin.h file...
2012-09-27 23:35:54 +02:00
Chen-Pang He
ed18d6f2ad
Fix doc and tidy up
2012-09-28 02:08:14 +08:00
Desire NUENTSA
82c3ff3784
Fix Build error on MSVC
2012-09-27 12:04:59 +02:00
Desire NUENTSA
72bfed5e20
Add forgotten SparseLUBase
2012-09-27 11:34:56 +02:00
Chen-Pang He
3b88216d42
Move unshared items back to MatrixPower
2012-09-27 17:19:32 +08: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
44374788b5
fix bug #511 : pretty printers on windows
2012-09-26 23:48:48 +02:00
Gael Guennebaud
7c4b55fda9
fix bug #509 : warning with gcc 4.7
2012-09-26 23:32:22 +02:00
Chen-Pang He
73a0bfe261
Write doc on (matrix power) * (matrix expression)
2012-09-27 02:31:18 +08:00
Chen-Pang He
aa5acdb352
Create class MatrixPowerBase for further extension (like specialization for triangular or self-adjoint matrices)
2012-09-27 02:20:36 +08: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
Gael Guennebaud
1edb396542
fix minor typo in doc
2012-09-26 19:24:41 +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
giacomo po
fd0441baee
some clean-up and new comments.
2012-09-24 09:20:40 -07:00
Chen-Pang He
d387dfa9dc
Remove unnecessary code. lazyAssign seems to fix all (noalias, initialization, etc.)
2012-09-24 23:36:19 +08:00
giacomo po
18c41aa04f
Some minor optimization.
2012-09-24 08:33:11 -07:00
giacomo po
dd7ff3f493
moved MINRES to unsupported. Made unit test.
2012-09-24 07:47:38 -07:00
Chen-Pang He
334532b7f5
Remove class MatrixPowerEvaluator with enhanced existing MatrixPowerReturnValue to simplicity, but docs are not completed yet.
2012-09-23 23:49:50 +08:00
Chen-Pang He
1d402dac03
Fix bug in MatrixPower(expression) due to destruction of temporary objects. Sorry for ugly pointer manipulation but it prevents copying a PlainObject.
2012-09-23 18:49:44 +08:00
giacomo po
8c5e4fae61
working preconditioned MINRES solver
2012-09-22 15:29:00 -07:00
Chen-Pang He
963794b04a
Eliminate unnecessary evaluations
2012-09-23 00:20:19 +08:00
Chen-Pang He
7e64f78f65
Avoid inefficient 2x2 LU
2012-09-22 22:06:22 +08:00
Chen-Pang He
d7b1049cab
Fix my typo in MatrixPowerBase.h, no effect on the flow.
2012-09-22 19:13:02 +08:00
Chen-Pang He
dd8034bd1c
Fix cost evaluation. (chain product for integral power)
2012-09-22 17:37:14 +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
Chen-Pang He
87afd99433
Enable saving intermidiate (Schur decomposition) but disable unstable specialization for matrix power-matrix product.
2012-09-21 23:24:28 +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
Chen-Pang He
d5d99dd1f0
Optimize matrix functions: m_fT is triangular and trmm is faster than gemm
2012-09-16 14:42:42 +08: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
Gael Guennebaud
28528519e9
Merged in jdh8/eigen (pull request PR-17)
2012-09-11 21:36:05 +02:00
Gael Guennebaud
9e80822fc9
fix compilation on freebsd
2012-09-11 13:32:56 +02:00
Desire NUENTSA
45672e724e
Incomplete Cholesky preconditioner... not yet stable
2012-09-11 12:12:19 +02:00
Benoit Jacob
504edbddb1
Replace COPYING.LGPL by a copy of the LGPL 2.1 (instead of LGPL 3).
...
Indeed, all the LGPL code we use, is licensed under LGPL 2.1 (with some files being "2.1 or later").
2012-09-10 13:27:44 -04: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
Chen-Pang He
04f315d692
Fix rank-1 update for self-adjoint packed matrices.
2012-09-10 18:25:30 +08:00
Chen-Pang He
65caa40a3d
Implement packed triangular solver.
2012-09-10 06:29:02 +08:00
Chen-Pang He
3642ca4d46
Implement packed triangular matrix-vector product.
2012-09-09 23:34:45 +08:00
Chen-Pang He
2828c995c5
Use conj_expr_if to clarify what it's doing.
2012-09-09 21:35:28 +08:00
Chen-Pang He
669db3d776
Extend rank-1 updates for different storage orders.
2012-09-09 02:55:10 +08:00
Chen-Pang He
1b8f416408
Implement rank-1 update for self-adjoint packed matrices.
2012-09-08 22:51:40 +08:00
Chen-Pang He
dac5a8a37d
Simplify Rank2Update.h
2012-09-08 22:20:05 +08:00
Chen-Pang He
17c746523e
Comment FIXMEs on Rank2Update.h and remove unused files.
2012-09-08 21:25:09 +08: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
Chen-Pang He
e4e7585a24
Implement rank-2 update for packed matrices.
2012-09-08 17:29:44 +08:00
Chen-Pang He
b5f9bec8ac
Perform direct calls in xHEMV and xSYMV.
2012-09-08 15:47:33 +08:00
Gael Guennebaud
06d2fe453d
remove stupid assert in blue norm.
2012-09-07 23:19:24 +02:00
Chen-Pang He
1b61aadcbe
Implement SDSDOT with DSDOT and avoid allocating buffers in DSDOT.
2012-09-08 02:06:45 +08:00
Chen-Pang He
b0b9b4d6b2
Implement functors for rank-1 and rank-2 update.
2012-09-08 01:39:16 +08: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
Chen-Pang He
145f89cd5f
Fix memory leak in DSDOT.
2012-09-07 15:21:57 +08:00
Chen-Pang He
c86d047c2f
BLAS: implement DSDOT and SDSDOT; update test for them.
2012-09-05 18:59:32 +08: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
Desire NUENTSA
288e6aab14
Insert XSL styles into output XML files
2012-09-03 10:33:39 +02:00
Chen-Pang He
c4051d3d02
Fix a typo in blas/common.h
2012-09-03 15:31:19 +08:00
giacomo po
751501eade
added preconditioner with preconditioned-Lanczos iteration
2012-09-01 21:59:06 +02:00
Chen-Pang He
d4144583bb
Write dox for assertions
2012-08-31 21:53:02 +08: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
giacomo po
5f3880c5a8
some optimization in MINRES, not sure about convergence criterion
2012-08-30 13:10:08 +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
giacomo po
064f3eff95
first working version. Still no preconditioning
2012-08-30 10:01:34 +02:00
Chen-Pang He
d0ee31aea6
Fix dox and tabbing
2012-08-29 01:56:23 +08:00
Chen-Pang He
ba4e886376
Tidy up and write dox.
2012-08-28 01:55:13 +08:00
Chen-Pang He
5252d823c9
Optimize matrix power
2012-08-26 02:15:41 +08:00
Chen-Pang He
1cd4279b03
Fix a lot in MatrixPower.h
2012-08-25 01:09:20 +08:00
Jitse Niesen
edc7a09ee7
merge
2012-08-27 22:57:39 +01:00
Chen-Pang He
bfaa7f4ffe
Add test for matrix power.
...
Use Christoph Hertzberg's suggestion to use exponent laws.
2012-08-27 22:48:37 +01:00
Desire NUENTSA W.
fe9956defe
Read real and complex bench matrices from a unique folder
...
Output and display bench results using XML and XSLT
2012-08-27 22:52:43 +02:00
Chen-Pang He
b55d260ada
Replace atanh with atanh2
2012-08-27 21:43:41 +01: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
Gael Guennebaud
aa1aa36d6d
simplify eigen-doc.tgz file generation, and make it more future proof
2012-08-27 10:56:44 +02:00
Gael Guennebaud
904c2e6cfb
remove EXTRACT_ALL
2012-08-27 10:30:10 +02:00
Thomas Capricelli
edc496f087
add piwik code to documentation (web stats engine)
2012-08-21 22:36:29 +02:00
jdh8
1b4aed7255
Fix toc in dox and claim copyright
2012-08-20 03:04:28 +08:00
jdh8
573d88f81c
Dox in MatrixFunctions
2012-08-19 18:12:04 +08:00
jdh8
15dabd4db7
Bugfix in MatrixLogarithm.h
2012-08-18 21:28:05 +08:00
Hauke Heibel
42c1b9a8dd
Ensured that all branches of MatrixLogarithmAtomic::getPadeDegree return values.
2012-08-18 10:18:31 +02:00
jdh8
f047030104
Add specialization for float and long double
2012-08-18 02:27:47 +08:00
Jitse Niesen
dee866a99a
Undo incorrect fix in previous commit, and fix real mistake instead.
2012-08-17 15:36:37 +01:00
Jitse Niesen
5eefca637e
Documentation fixes. Thanks to Rodney Sparapani for reporting these.
2012-08-17 14:49:18 +01:00
jdh8
2337ea430b
Remove useless code (abort specialization for complex exponent temporarily)
2012-08-15 20:56:03 +08: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
jdh8
c5800a2452
using std::frexp instead of frexp
2012-08-08 17:50:56 +08:00
jdh8
8cddcaf839
Optimize getting exponent from IEEE floating points.
2012-08-08 01:27:11 +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
jdh8
93967b0dd6
Fix some typos in MatrixLogarithm to improve accuracy.
2012-08-03 23:54:42 +08: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
7dc39b7037
Add unit tests
2012-08-03 13:05:45 +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
e3ac608e41
bug #493 : multiple calls to FindUmfPack
...
(transplanted from 1914024965
)
2012-08-02 10:00:23 +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
Hauke Heibel
52a0e0d65e
Added a default constructor for Splines which creates zero (constant) splines.
2012-07-28 13:37:29 +02:00
Gael Guennebaud
f23dd7c6f1
Fix typo in the doc: s/Succeeded/Success
2012-07-28 13:07:45 +02: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
Benoit Jacob
3f08a6a126
add COPYING.MINPACK
2012-07-15 11:46:22 -04:00
Benoit Jacob
df06e5662d
MINPACK license is OK for MPL2 after all
2012-07-15 10:30:57 -04:00
Benoit Jacob
f28e95500b
add COPYING.README
2012-07-15 10:29:09 -04:00
Benoit Jacob
9bf3ec134e
add COPYING.MPL2
2012-07-15 10:20:59 -04:00
Benoit Jacob
b596f6c10c
remove outdated "Eigen itself is part of the KDE project" outside of eigen2 files
2012-07-15 10:33:40 -04: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
e59f95a9a0
clean old KDE mention and related
2012-07-14 10:04:26 +02:00
Gael Guennebaud
54559094ec
document EIGEN_MPL2_ONLY
2012-07-14 09:56:03 +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
Keir Mierle
d4ca0963bc
Add preliminary script to relicense Eigen to MPL2.
2012-07-11 11:29:52 -07: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
Gael Guennebaud
ff12a6cd43
fix include path
2012-07-08 16:18:51 +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
Jitse Niesen
60edf02f6f
doc: Typo in CustomizingEigen, introduced in previous commit.
...
Thanks to Christoph Hertzberg for noting this.
2012-07-05 13:56:28 +01:00
Jitse Niesen
37d5825c5a
merge
2012-07-05 13:39:06 +01:00
Jitse Niesen
b582b2ebdc
doc: Add constructor to example for inheritance.
...
See "Error in Inheriting Eigen::Vector3d" on forum.
2012-07-05 13:36:02 +01: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
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
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
Jitse Niesen
172af9facc
Fix an evaluator test which was wrong and failed in debug builds.
2012-06-24 17:31:19 +01:00
Gael Guennebaud
7c32904766
typo
2012-06-24 10:13:28 +02:00
Gael Guennebaud
e46fc8c05c
fix GMRES
2012-06-23 19:29:21 +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
b737850d38
Added tag 3.1.0-rc2 for changeset dd86165c13
2012-06-21 22:00:32 +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
d428b620aa
add the multithreading topic in the topic list
2012-06-21 10:54:16 +02:00
Gael Guennebaud
eb626877d7
fix sparse benchmark help
2012-06-21 10:53:36 +02:00
Gael Guennebaud
6f3057f624
extend documentation of *Support modules
2012-06-21 10:51:22 +02:00
Gael Guennebaud
5b5f3ecafa
MPreal: extended unit test, remove useless internal overloads, add support for internal::cast (needed for printing)
2012-06-21 10:02:32 +02:00
Gael Guennebaud
7380592bc2
patch mpfr c++ copy to fix warnings and min/max issues
2012-06-21 09:59:44 +02:00
Gael Guennebaud
b5093e2585
update internal mpfr C++ copy
2012-06-21 09:56:54 +02:00
Jitse Niesen
8c71d7314b
Fix some typos in sparse tutorial.
2012-06-20 09:52:45 +01: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
52dce0c126
significantly extend the tutorial of sparse matrices
2012-06-20 09:28:32 +02:00
Gael Guennebaud
882912b85f
comment two tests in nomalloc (there is no regression here, it's just I've been too optimistic when adding them recently)
2012-06-20 08:58:26 +02:00
Gael Guennebaud
1727373706
fix geometry tutorial about scalings.
2012-06-18 22:07:13 +02:00
Gael Guennebaud
47a77d3e38
update custom scalar type doc
2012-06-18 21:49:55 +02:00
Gael Guennebaud
791e28f25d
update adolc support wrt "new" NumTraits mechanism
2012-06-18 21:32:56 +02:00
Jitse Niesen
148587e229
Update custom scalar example, based on unstable/Eigen/AdolcForward .
2012-06-16 20:35:59 +01: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
3fd2beebc8
Matrix-Market: fix perf issue and infinite loop
2012-06-15 09:07:13 +02:00
Gael Guennebaud
c858fb353f
fix a few warnings
2012-06-15 09:06:32 +02:00
Gael Guennebaud
37d367a231
fix typo in unsupported/NumericalDiff
2012-06-15 07:56:55 +02:00
Gael Guennebaud
12e9f3b0fc
Added tag 3.1.0-rc1 for changeset 4ca5735de4
2012-06-14 21:26:11 +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
4e8523b835
update blas interface for trsm
2012-06-12 14:33:03 +02:00
Gael Guennebaud
88e051019b
extend nomalloc unit test to test the solve calls
2012-06-12 13:12:47 +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
Gael Guennebaud
bc580bbffb
fix typo
2012-06-11 18:49:30 +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
5cec86cb1e
BTL: add missing TRMM plots, update Eigen's interface
2012-06-07 18:35:38 +02:00
Gael Guennebaud
512e0b151b
clean the support for testing existing sparse problems
2012-06-07 18:31:09 +02:00
Gael Guennebaud
83c932ed15
fix a warning
2012-06-07 18:22:13 +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
c1edb7fd95
Added tag 3.1.0-beta1 for changeset b7a7285909
2012-06-06 22:34:08 +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
05af70a958
make sure we do not solve with a null right hand side
2012-06-06 17:11:50 +02:00
Gael Guennebaud
fd32697074
Fix stopping criteria of CG
2012-06-06 17:11:16 +02:00
Gael Guennebaud
b9f0eabd93
discourage users to user developer preprocessor directives
2012-06-06 15:36:08 +02:00
Gael Guennebaud
84d20720b2
fix umfpack for row-major
2012-06-06 09:44:53 +02:00
Gael Guennebaud
9d2b6dd71a
test block objects for sparse solving
2012-06-06 09:40:01 +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
cb64e587c5
Fix kdBVH unit test
2012-06-04 22:01:06 +02: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
Gael Guennebaud
1b20e16546
extend umfpack support
2012-06-04 10:39:57 +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
Desire NUENTSA
b202c5ed2f
The sparse quick reference guide is not ready
2012-05-25 18:02:38 +02:00
Desire NUENTSA
1b9097644d
Add common options to the benchmark interface
2012-05-25 17:58:43 +02:00
Desire NUENTSA
5cbe6a5fbf
Read header of Hermitian matrices
2012-05-25 17:53:37 +02:00
Desire NUENTSA
2fecd818c4
Add a preliminary reference guide on sparse interface
2012-05-25 17:52:11 +02:00
Gael Guennebaud
695a7ab9d7
protect min/max with parenthesis
2012-05-15 08:18:39 +02:00
Jitse Niesen
b5f70814c1
Warn users against dangerous macros.
...
Also, mark EIGEN_DEFAULT_TO_ROW_MAJOR as internal (see also bug #422 ).
2012-05-13 21:42:45 +01:00
Gael Guennebaud
ce2e2fe336
bug #455 : add support for c++11 in aligned_allocator
2012-05-03 11:55:30 +02:00
Jitse Niesen
823c44e4e5
merge
2012-05-02 17:21:29 +01:00
Philip Avery
cb3b1bb73e
AutoDiffScalar: fix bug with operator/, add missing functions
2012-05-02 17:17:12 +02:00
clusty
d062a8bd31
Got rid of a warning message by doing an explicit cast
2012-05-02 10:50:44 -04:00
Gael Guennebaud
8f47246475
fix lmdif1 with Scalar!=double
2012-05-01 14:46:02 +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
Hauke Heibel
84c93b048e
Added spline interpolation with pre-defined knot parameters.
2012-04-13 12:50:05 +02: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
a3ddb14426
remove use of GSL in polynomialsolver unit test
2012-04-11 09:48:01 +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
Thomas Capricelli
3018e80c59
uniformize eigen_gen_docs between branches / cleaning
2012-04-03 14:24:20 +02:00
Gael Guennebaud
a060e0b486
does not include MatrixMaketIterator on win32,
...
no "using whatever" in global scope in a header file
2012-03-31 18:01:43 +02:00
Gael Guennebaud
daaeddd581
rm unused gsl_helper file
2012-03-31 17:37:46 +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
2d35f88bcf
Cholmod does not compute a determinant
2012-03-29 19:07:13 +02:00
Desire NUENTSA
22cd65ee33
Adding a householder-GMRES implementation from Kolja Brix
2012-03-29 15:00:55 +02:00
Desire NUENTSA
f776c061a1
Correct a small bug in sparse_solver
2012-03-29 14:53:42 +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
Desire NUENTSA
ada9e79145
add a benchmark routine for all sparse linear solvers in Eigen
2012-03-29 14:29:55 +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
Gael Guennebaud
6c3b8b2ebc
we have a new server for hosting CDash reports.
2012-03-22 19:15:47 +01:00
Desire NUENTSA
afeddd80ab
Algorithm to equilibrate rows and columns of a square matrix
2012-03-22 16:18:34 +01:00
Desire NUENTSA
0d52b965c8
Add simple API to set Pastix parameters
2012-03-22 15:54:52 +01:00
Desire NUENTSA
f6cd3389a2
compress loaded market matrix
2012-03-22 15:53:25 +01:00
Gael Guennebaud
daad446d5d
workaround stupid gcc 4.7 warning
2012-03-22 00:01:03 +01:00
Gael Guennebaud
f0a1652113
s/__SSE3__/EIGEN_VECTORIZE_SSE3
2012-03-21 23:50:43 +01:00
Gael Guennebaud
b0fd94aa85
improve FindFFTW cmake module
2012-03-15 15:18:22 +01:00
Kolja Brix
30dee7d235
Add some documentation to existing methods in the Householder module.
2012-03-08 12:42:10 +01:00
Gael Guennebaud
77b05d5b7d
remove parenthesis suggestion warning
2012-03-14 17:38:21 +01:00
Gael Guennebaud
60daf70a20
add 2 missing ReverseInnerIterators
2012-03-14 17:37:28 +01:00
Hauke Heibel
dd9365e089
Fixed division by zero corner case in array unit test.
2012-03-09 14:04:13 +01:00
Gael Guennebaud
d7da6f63a8
declare Block::m_outerStride as Index (instead of int)
2012-03-09 13:54:22 +01:00
Gael Guennebaud
728ca6ad9c
export IsRowMajor in MappedSparseMatrix
2012-03-09 13:52:35 +01:00
Gael Guennebaud
9b1ad5e5bd
rm cC++11 features
2012-03-09 12:08:06 +01:00
Gael Guennebaud
fe9b7c2564
typo in variable name not revealed by ICC
2012-03-08 21:45:00 +01:00
Gael Guennebaud
48a3e0ed55
fix conversion warning
2012-03-08 21:31:49 +01:00
Desire NUENTSA
0d8466d317
Adding an interface to PaStiX, the multithreaded and distributed linear solver
2012-03-08 18:59:08 +01:00
Desire NUENTSA
37d2efd4f6
Adding support to read and write complex matrices in Matrix Market format
2012-03-08 18:45:47 +01:00
Hauke Heibel
c08521ea6b
Improved the unit tests for setLinSpaced.
...
Provide a default constructed step size as opposed to an int when the size is 1.
2012-03-07 16:18:35 +01:00
Hauke Heibel
ef022da28e
Fixed setLinSpaced for size==1.
2012-03-07 15:34:39 +01:00
Hauke Heibel
81c1336ab8
Added support for component-wise pow (equivalent to Matlab's operator .^).
2012-03-07 08:58:42 +01:00
Hauke Heibel
aee0db2e2c
Moved the operator/(Scalar,ArrayBase) into the Eigen namespace.
2012-03-02 16:58:12 +01:00
Hauke Heibel
8cb3e36e14
Added support for scalar / array division.
2012-03-02 16:27:27 +01:00
Hauke Heibel
8a7d16d523
Replicate ctor now uses Index instead of int.
2012-03-02 16:27:08 +01:00
Gael Guennebaud
553a0ae924
simplify and speedup sparse * dense matrix products
2012-03-01 10:13:13 +01:00
Desire NUENTSA
85b358097d
allow null elements in sparse assignments
2012-02-29 15:51:23 +01:00
Gael Guennebaud
fc85f91df0
fix MKL interface with LLT::rankUpdate
2012-02-28 16:19:40 +01:00
Gael Guennebaud
309b27b545
update unit test for Simplicial-Cholesky
2012-02-28 14:21:54 +01:00
Gael Guennebaud
0d3d46573e
fix assertion condition
2012-02-27 19:04:34 +01:00
Gael Guennebaud
5effdba2c6
SimplicialCholesky*: s/LLt/LLT and s/LDLt/LDLT for consistency with dense names
2012-02-27 14:28:07 +01:00
Gael Guennebaud
ece30e9e6f
fix a couple of warnings
2012-02-27 14:27:12 +01:00
Gael Guennebaud
eb168ef8ed
add analyzePattern/factorize API to iterative solvers and basic preconditioners
2012-02-27 14:10:26 +01:00
Gael Guennebaud
122f28626c
fix and clean Pardiso solver and s/PARDISOSupport/PardisoSupport
2012-02-27 13:23:21 +01:00
Gael Guennebaud
b240a3fad9
add unit tests for analyzePatter/factorize API
2012-02-27 13:22:38 +01:00
Gael Guennebaud
bc8188f6a1
fix symmetric permuatation for mixed storage orders
2012-02-27 13:21:41 +01:00
Gael Guennebaud
128ff9cf07
declare a ReverseInnerIterator in sparse CwiseBinaryOp. These ReverseInnerIterator should probably be removed anyway since we currently don't have real use cases for them. The only one in TriangularSolver could be advantageously replaced by a binary search.
2012-02-23 11:38:18 +01:00
Christoph Hertzberg
1edfa64f44
bug #419 : Add spaces between adjacent > in template arguments
2012-02-15 14:14:29 +01:00
Gael Guennebaud
eff167d2c8
SSOR is not there yet
2012-02-19 16:01:13 +01:00
Gael Guennebaud
4cc6d7aa62
clean a bit the ILUT code
2012-02-14 22:07:19 +01:00
Rhys Ulerich
ef448da57b
add Eigen::Array support to GDB pretty printers
2012-02-11 20:50:21 -06:00
Gael Guennebaud
7de3478027
<complex> must be included first
2012-02-10 22:49:09 +01:00
Gael Guennebaud
ef7f1371b2
some cleaning and add copyrights
2012-02-10 19:38:31 +01:00
Desire NUENTSA
16da7299dd
Add test in BiCGSTAB for ILUT
2012-02-10 18:57:38 +01:00
Desire NUENTSA
edbebb14de
Split the computation of the ILUT into two steps
2012-02-10 18:57:01 +01:00
Desire NUENTSA
a815d962da
Add the implementation of the Incomplete LU preconditioner with dual threshold (ILUT)
...
Modify the BiCGSTAB function to check the residual norm of the initial guess
2012-02-10 10:59:39 +01:00
Desire NUENTSA
9ed6a267a3
Modify the LinSpaced function to take only the two bounds
2012-02-10 10:21:11 +01:00
Desire NUENTSA
2ea98594c4
Modify the symmetric permutation to deal with nonsymmetric matrices
2012-02-10 10:18:38 +01:00
Gael Guennebaud
70284b7eff
suppress generation of TEMPLATE_RELATIONS: they are useful but take much too much space
2012-02-09 21:42:58 +01:00
Gael Guennebaud
8dd3ae282d
fix bug #417 : Map should be nested by value, not by reference
2012-02-09 15:25:42 +01:00
Tim Holy
44b19b432c
Add a tutorial page on the Map class, and add a section to FunctionsTakingEigenTypes about multiple-argument functions and the pitfalls when using Map/Expression types.
2012-02-08 22:11:12 +01:00
Gael Guennebaud
5bb34fd14c
fix bug #415 : wrong return in Rotation2D::operator*=
2012-02-08 21:50:51 +01:00
Desire NUENTSA
a1c7b5aa48
Adding support for twistedby on SparseMatrixBase
2012-02-08 18:22:48 +01:00
Gael Guennebaud
3836402631
Improve performance of some Transform<> operations by better preserving the alignment status.
...
There probably many other places in Transform.h where such optimizations could be done.
2012-02-07 17:12:15 +01:00
Gael Guennebaud
ff67676c0b
Added tag 3.1.0-alpha2 for changeset fe0350cf1b
2012-02-06 16:39:51 +01:00
Gael Guennebaud
fe0350cf1b
bump
2012-02-06 16:39:26 +01:00
Gael Guennebaud
99c694623a
fix a dozen of warnings with MSVC, and get rid of some useless throw()
2012-02-06 15:57:51 +01:00
Gael Guennebaud
6ad48c5d92
fix conjugation in packet_lhs
2012-02-05 18:18:38 +01:00
Gael Guennebaud
4ed87c59c7
Update the PARDISO interface to match other sparse solvers.
...
- Add support for Upper or Lower inputs.
- Add supports for sparse RHS
- Remove transposed cases, remove ordering method interface
- Add full access to PARDISO parameters
2012-02-04 14:20:56 +01:00
Gael Guennebaud
1763f86364
add the recent setFromTriplets() feature in the manual
2012-02-04 10:44:07 +01:00
Gael Guennebaud
fe85b7ebc6
fix several const qualifier issues: double ones, meaningless ones, some missing ones, etc.
...
(note that const qualifiers are set by internall::nested)
2012-02-03 23:18:26 +01:00
Gael Guennebaud
bc7b251cd9
fix compilation errors with ICC
2012-02-03 23:16:52 +01:00
Gael Guennebaud
a594d7ffd7
stop disabling this legitimate warning, recall that in the following the const on FooRef is really meaningless:
...
typedef Foo& FooRef;
const FooRef foo;
2012-02-03 23:16:11 +01:00
Gael Guennebaud
ad4aa7873f
remove unused variables
2012-02-03 13:30:48 +01:00
Gael Guennebaud
fd4aefadcd
fix ctest -D Foo with MSVC 2008
2012-02-03 10:50:49 +01:00
Zuiquan
a64407f086
Enable Eigen to compile on 'pure C/C++' Gcc environment (with no inline assembly or asm directive). Required if we want to use Eigen with Adobe Alchemy.
2012-02-02 12:05:02 +01:00
Gael Guennebaud
13abb37721
shutup floating point underflow warning for this specific unit test
2012-01-31 23:18:17 +01:00
Gael Guennebaud
7002639844
the default ctor had no sense because of the const reference member
2012-01-31 23:12:04 +01:00
Gael Guennebaud
13e46ad847
add missing return *this
2012-01-31 23:11:13 +01:00
Gael Guennebaud
9a954d29ec
rm non standard and useless overloads of is_arithmetic for long long
2012-01-31 21:45:03 +01:00
Gael Guennebaud
634fedaf68
proper C++ casting
2012-01-31 18:56:25 +01:00
Gael Guennebaud
10cd52350f
fix a few warnings: change of sign and missing return statement
2012-01-31 13:05:44 +01:00
Gael Guennebaud
9c86ee2695
fix static inline versus inline static issues (the former is the correct order)
2012-01-31 12:58:52 +01:00
Gael Guennebaud
8d6e394b06
workaround "empty macro argument" warning
2012-01-31 12:46:14 +01:00
Gael Guennebaud
670e3af5a8
add .data() member to Diagonal<>
2012-01-31 12:44:59 +01:00
Gael Guennebaud
18e3ac0f0d
fix some compilation errors with ICC and -strict-ansi
2012-01-31 09:14:01 +01:00
Gael Guennebaud
87138075da
add the possibility to assemble a SparseMatrix object from a random list of triplets that may contain duplicated elements. It works in linear time, with O(1) re-allocations.
2012-01-28 11:13:59 +01:00
Gael Guennebaud
fc2d85d139
fix memory leak in SuperLUSupport
2012-01-27 10:07:09 +01:00
Gael Guennebaud
27d222d23e
honor nested types in dense * sparse
2012-01-27 09:39:36 +01:00
Jitse Niesen
ed244e9c1a
Document that JacobiSVD also handles complex matrices.
...
Thanks to 'Jazzdude' for noting this on IRC.
2012-01-26 13:16:50 +00:00
Gael Guennebaud
0251bb6c1d
add missing inline keyword (linking issue)
2012-01-26 10:53:42 +01:00
Gael Guennebaud
65d5311c68
SimplicialCholesky: the shift offset must be real, and fix a comparison issue for complexes
2012-01-26 10:34:45 +01:00
Gael Guennebaud
d9f5840f7a
simple compilation fix
2012-01-26 08:52:20 +01:00
Gael Guennebaud
a108216af1
fix bug #410 : fix a possible out of range access in EigenSolver
2012-01-25 19:02:31 +01:00
Christoph Hertzberg
362fcabc44
Check for positive definiteness in SimplicialLLT
2012-01-14 22:34:18 +01:00
Gael Guennebaud
5e4dfa4a09
fix a nesting type issue in Sparse/TriangularView
2012-01-25 18:16:48 +01:00
Gael Guennebaud
606e204f6d
fix bug #406 : Using OpenMP and Eigen causes infinite loop/deadlock
...
(transplanted from fd52daae87
)
2012-01-25 17:42:22 +01:00
Gael Guennebaud
c68616b3b5
fix warning with gcc 4.6
2012-01-25 15:48:50 +01:00
Gael Guennebaud
87f2af5930
workaround ICC compilation error with -strict-ansi
2012-01-25 15:45:01 +01:00
Gael Guennebaud
d615d39af0
determine windows version from major.minor only, the patch number is irrelevant.
2012-01-23 21:56:46 +01:00
Gael Guennebaud
0d03492e1e
std::isfinite is non standard
2012-01-23 21:49:00 +01:00
Gael Guennebaud
ee9f3e34b0
LLT: improve rankUpdate to support downdates,
...
LDLT: add the missing info() function,
improve unit testing of rankUpdate()
2012-01-23 17:28:23 +01:00
Abraham Bachrach
039408cd66
added functions to allow for cwise min/max operations with scalar argument (bug #400 ).
...
added function for array.min(), array.max(), matrix.cwiseMin(), matrix.cwiseMax().
The matrix.cwiseMin/Max functions required the definition of the ConstantReturnType typedef.
However, it wasn't defined until after MatrixCwiseBinaryOps was included in Eigen/src/SparseCore/SparseMatrixBase.h,
so I moved those includes after the definition of the typedefs.
tests for both the regular and scalar min/max functions were added as well
2012-01-11 11:00:30 -05:00
Gael Guennebaud
238999045c
optimize the packing of lhs blocks for matrix-matrix products => significant speedup for small products
2012-01-21 19:34:28 +01:00
Jitse Niesen
0e1e0a2a58
Make sure that now-fixed assert is not triggered.
2012-01-19 14:30:44 +00:00
Keir Mierle
274f8a0947
Fix broken asserts releaved by Clang.
2012-01-18 15:03:27 -08:00
Gael Guennebaud
589cc627f8
fixe one more VC10 ICE
2012-01-18 17:45:22 +01:00
Gael Guennebaud
db8f528737
fix VC10 ICE
2012-01-18 17:42:13 +01:00
Jitse Niesen
d6bf9f848a
Correct description of rankUpdate() in quick reference guide.
...
Thanks to Sameer Agarwal for pointing out this mistake.
(transplanted from bc0fc5d21e
)
2012-01-09 12:57:11 +00:00
Keir Mierle
2d4fee0b40
Fix out-of-range int constant in 4x4 inverse.
...
(transplanted from 45bcad41b4
)
2012-01-05 23:15:09 -08:00
Gael Guennebaud
e7ef367db1
suppress unused variable warnings
2012-01-06 09:02:06 +01:00
Gael Guennebaud
bdee0c9baa
set the default number of iteration to the size of the problem
2011-12-27 16:38:05 +01:00
Gael Guennebaud
15ea999f84
pushed too fast the previous one
2011-12-23 23:22:31 +01:00
Gael Guennebaud
901bcdd2a8
the previous test works for Dynamic sizes only
2011-12-23 23:16:43 +01:00
Gael Guennebaud
96a18ef230
add a reconstruction test
2011-12-23 23:15:08 +01:00
Gael Guennebaud
8171adb7ff
fix bug #398 , the quaternion returned by slerp was not always normalized,
...
add a proper unit test for slerp
2011-12-23 22:39:32 +01:00
Gael Guennebaud
67ae94f3a2
fix compilation of sparse_basic unit test for complexes
2011-12-23 09:41:14 +01:00
Gael Guennebaud
e3e39ea26d
suppress an 'unused variable' warning
2011-12-22 14:06:16 +01:00
Gael Guennebaud
2c03e6fccc
evaluate 1D sparse expressions into SparseVector and make the sparse operator<< and dot honor nested types
2011-12-22 14:01:06 +01:00
Gael Guennebaud
7f04845023
fix assignment of a row-major sparse vector to a column major sparse one
2011-12-22 11:53:47 +01:00
Gael Guennebaud
e4cea957df
fix bug #391 : prune was for compressed format only, now it also turns the matrix into compressed form
2011-12-20 18:37:24 +01:00
Gael Guennebaud
7e866c447f
fix bug #391 : improper stream output for uncompressed mode, also avoid double debugging outputs for column major matrices
2011-12-20 18:31:00 +01:00
Gael Guennebaud
6f92b75874
add aliasing test for sparse*sparse product
2011-12-20 18:10:22 +01:00
Gael Guennebaud
50d756b9ea
fix bug #394 : innerVector::nonZeros() was broken for uncompressed mode
2011-12-20 18:10:02 +01:00
Gael Guennebaud
15d781b64c
we need to define EXTRACT_ALL to YES to get doxygen see the whole hierarchy. Exclude internal::* from the doc.
2011-12-20 10:25:54 +01:00
Gael Guennebaud
fcc966b40d
workaround doxygen limitation to follow the base class of PlainObjectBase
2011-12-19 22:13:11 +01:00
Gael Guennebaud
33e52a3943
rm local fill-in ratio estimation (was broken sometimes)
2011-12-16 16:29:46 +01:00
Gael Guennebaud
732a50d043
implement a more optimistic heuristic to predict the nnz of a saprse*sparse product
2011-12-16 15:59:44 +01:00
Gael Guennebaud
40c0f3af57
fig bug #396 : add a static assertion on the storage order of a sparse-sparse coeff-wise binary op
2011-12-15 19:23:20 +01:00
Jitse Niesen
3db6455896
Remove evaluators for 2.1 release.
...
We plan to re-instate them when we branch 2.2 (see bug #388 ).
2011-12-14 21:23:43 +00:00
Gael Guennebaud
0308c11849
remove a file that was not intended to be committed
2011-12-13 08:42:48 +01:00
Jitse Niesen
1e7712771e
Remove asserts that eigenvalue computation has converged (bug #354 ).
2011-12-12 17:17:38 +00:00
Gael Guennebaud
1aa6c7f122
fix sparse insertion example
2011-12-11 17:18:14 +01:00
Gael Guennebaud
d738bedc5b
remove redundant declaration (fix compilation with clang 3.0)
2011-12-11 11:45:03 +01:00
Gael Guennebaud
f60e6f5ee8
s/compressed()/isCompressed()
2011-12-10 23:08:10 +01:00
Gael Guennebaud
594fd2d11d
Cholmod: add support for uncompressed SparseMatrix objects
2011-12-10 22:53:31 +01:00
Gael Guennebaud
9d7d634897
add cholmod_support unit tests
2011-12-10 19:32:17 +01:00
Gael Guennebaud
f35708d2e0
enforce weak linking of xerbla
2011-12-10 19:30:36 +01:00
Gael Guennebaud
105e170d8b
trivial compilation fix
2011-12-10 16:17:12 +01:00
Gael Guennebaud
2600ba1731
feature 297: s/intersectionPoint/pointAt, fix documentation, add a unit test
2011-12-10 12:17:42 +01:00
Andy Somerville
c06ae325a4
feature 297: add ParametrizedLine::intersectionPoint() and intersectionParam()
...
-> intersection() is deprecated
2011-12-10 11:58:38 +01:00
Igor Krivenko
36457178f9
bug #352:properly cast constants
2011-12-09 23:38:41 +01:00
Gael Guennebaud
d400a6245e
fix compilation with EIGEN_NO_DEBUG
2011-12-09 23:42:39 +01:00
Gael Guennebaud
38277e8a9b
feature 319: fix LDLT::rankUpdate for complex/upper, simply the algortihm, update copyrights
2011-12-09 23:08:38 +01:00
Tim Holy
2d7c3eea53
feature 319: Add update and downdate functionality to LDLT
2011-12-09 21:04:44 +01:00
Gael Guennebaud
37f304a2e6
add a "using MKL" documentation page, add a minimal documentation of PARDISO wrapper classes, refine a bit the EIGEN_USE_* logic
2011-12-09 16:52:37 +01:00
Sebastian Lipponer
fff25a4b46
Fix MSVC integer overflow warning
2011-12-09 10:39:10 +00:00
Gael Guennebaud
57c6bfba08
add missing CMakeLists.txt
2011-12-09 10:53:12 +01:00
Gael Guennebaud
081abb701d
add user defined CXX and LINKER flag cmake variables for the unit tests
2011-12-09 10:50:13 +01:00
Gael Guennebaud
10447a7b57
mv blas.h to src/misc such that it would be possible to use any blas libraries,
...
however, this requires some more works:
- add const qualifiers in the declarations of blas.h
- add the possibility to add a suffix to blas function names
2011-12-09 10:40:35 +01:00
Gael Guennebaud
43cdd242d0
- split and rename defined tokens to enable the use of BLAS/Lapack/VML/etc
...
- include MKL headers outside the Eigen namespace.
2011-12-09 10:06:49 +01:00
karturov
015c331252
Intel(R) MKL support added.
...
* * *
License disclaimer changed to BSD license for MKL_support.h
* * *
Pardiso support fixed, test added.
blas/lapack tests fixed: Scalar parameter was added in Cholesky, product_matrix_vector_triangular remaned to triangular_matrix_vector_product.
* * *
PARDISO test was added physically.
2011-12-05 14:52:21 +07:00
Gael Guennebaud
e270a5656a
fix min/max clash with clang's header by including fstream beforehand
2011-12-08 23:27:10 +01:00
Gael Guennebaud
86bb20c431
remove dead code
2011-12-08 23:22:28 +01:00
Gael Guennebaud
e36a4c880a
suppress deprecated warning when compiling legacy tests
2011-12-08 23:15:07 +01:00
Gael Guennebaud
06450882ab
add missing CMakeLists.txt in Splines
2011-12-08 23:12:39 +01:00
Jitse Niesen
dd232e30b0
Document QuaternionBase, minor doc improvements.
...
* Document class QuaternionBase so that docs for members are displayed.
* Remove obsolete \redstar refering to Array module
* Fix typo in Constants.h
* Document EIGEN_NO_AUTOMATIC_RESIZING
2011-12-08 14:22:06 +00:00
Gael Guennebaud
a1fa05f14e
improve compiler name and version detection
2011-12-07 13:20:52 +01:00
Gael Guennebaud
a0da96e2f4
fix detection of ICC version
2011-12-06 22:07:20 +01:00
Gael Guennebaud
80f8ed9f9c
improve compiler and architecture detection
2011-12-06 19:54:34 +01:00
Thomas Capricelli
c3ad1f9382
eigen_gen_docs: dont try to update permissions on server
2011-12-06 15:55:20 +01:00
Gael Guennebaud
6ec0af6dc7
Added tag 3.1.0-alpha1 for changeset e017f798eb
2011-12-06 15:53:46 +01:00
Gael Guennebaud
e017f798eb
bump
2011-12-06 15:53:17 +01:00
Hauke Heibel
accae638b2
Fixed a typo.
2011-12-06 15:42:05 +01:00
Gael Guennebaud
84cf1b5b1d
fix QuaternionBase::cast.
...
It did not work with clang, and I'm unsure how it worked for gcc/msvc since QuaternionBase was introduced
2011-12-05 14:13:59 +01:00
Gael Guennebaud
9ca673daed
fix compilation with clang
2011-12-05 12:50:43 +01:00
Gael Guennebaud
dd504d6aae
fix bug #223 : SparseMatrix::Flags no longer encode triangularness information
2011-12-05 10:17:09 +01:00
Gael Guennebaud
59576014a9
fig bug #373 : compilation error with clang 2.9 when exceptions are disabled (cannot reproduce with clang 3.0 or 3.1)
2011-12-05 09:44:25 +01:00
Gael Guennebaud
b60624dc2a
fix bug #384 : add a static assertion on the Index type which has to be signed
2011-12-04 22:14:53 +01:00
Gael Guennebaud
82f9aa194d
fix bug #294 : add a diagonal() method to SparseMatrix (const)
2011-12-04 21:49:21 +01:00
Gael Guennebaud
69966e90e1
fix bug #221 : remove the dense to SparseVector conversion ctor.
2011-12-04 21:15:46 +01:00
Gael Guennebaud
5dc9650f11
fix bug #281 : replace csparse macros by template functions
2011-12-04 19:15:23 +01:00
Hauke Heibel
a8a2bf3b5a
Added docs to the spline module.
2011-12-04 18:44:01 +01:00
Gael Guennebaud
9bd902ed9c
fix bug #341 : trisove on MappedSparseMatrix
2011-12-04 14:57:43 +01:00
Gael Guennebaud
9353bbac4a
fix bug #356 : fix TriangularView::InnerIterator for unit diagonals
2011-12-04 14:39:24 +01:00
Gael Guennebaud
32917515df
make the accessors to internal sparse storage part of the public API and remove their "_" prefix.
2011-12-04 12:19:26 +01:00
Gael Guennebaud
1cdbae62db
add SparseVector::ReverseInnerIterator
2011-12-04 09:56:40 +01:00
Gael Guennebaud
91e392a042
add ReverseInnerIterators to loop over the elements in reverse order,
...
and partly fix bug #356 (issue in trisolve for upper-column major))
2011-12-03 23:49:37 +01:00
Gael Guennebaud
a09cc5d4c0
fix bug #282 : add the possibiliry to shift the diagonal coefficients via a linear function.
2011-12-03 18:26:08 +01:00
Gael Guennebaud
c861e05181
fix matrix names in the insertion example
2011-12-03 18:14:51 +01:00
Gael Guennebaud
9ae606866c
Eigen2sSupport: import some fixes from the 3.0 branch (MSVC fix)
2011-12-03 17:45:07 +01:00
Gael Guennebaud
950eeab4d7
RandomSetter: turns the matrix into compressed form before the filling
2011-12-03 17:35:21 +01:00
Gael Guennebaud
c0e36516f3
add a command to fix the permission of the uploaded documentation
2011-12-03 11:18:20 +01:00
Gael Guennebaud
3f56de2628
improve sparse manual
2011-12-03 10:26:00 +01:00
Gael Guennebaud
e759086dcd
improve documentation of some sparse related classes
2011-12-02 19:02:49 +01:00
Gael Guennebaud
4ca89f32ed
Sparse matrix insertion:
...
- automatically turn a SparseMatrix to uncompressed mode when calling insert(i,j).
- now coeffRef insert a new element when it does not already exist
2011-12-02 19:00:16 +01:00
Gael Guennebaud
f10bae74e8
- move CompressedStorage and AmbiVector into internal namespace
...
- remove innerVectorNonZeros(j) => use innerVector(j).nonZeros()
2011-12-02 10:00:24 +01:00
Jitse Niesen
a0bcaa88af
Extend tutorial page on broadcasting to reflect recent changes.
2011-12-01 21:16:07 +00:00
Gael Guennebaud
b85bcd91bf
remove GSL dependency in the unit tests
2011-12-01 18:17:19 +01:00
Gael Guennebaud
7aaae9d6df
remove useless blas reference code
2011-12-01 18:10:12 +01:00
Gael Guennebaud
3a4c78b588
add code for band triangular problems:
...
- currently available from the BLAS interface only
- and for vectors only
2011-12-01 18:06:28 +01:00
Gael Guennebaud
9fdb6a2ead
output error messages in blas unit tests
2011-12-01 18:04:01 +01:00
Hauke Heibel
b00a33bc70
Integrated spline class and simple spline fitting
2011-11-25 14:53:40 +01:00
Gael Guennebaud
49d652c600
fix assigment from uncompressed
2011-11-30 21:55:54 +01:00
Gael Guennebaud
6b8d6887ac
bug fix in SparseSelfAdjointTimeDenseProduct for empty rows or columns
2011-11-30 19:39:20 +01:00
Gael Guennebaud
00d4a360ba
bug fix in SparseView::incrementToNonZero
2011-11-30 19:31:11 +01:00
Gael Guennebaud
d1b54ecfa3
add more support for uncompressed mode
2011-11-30 19:24:43 +01:00
Gael Guennebaud
cda397b117
cleanning pass on the sparse modules:
...
- remove outdated/deprecated code
- improve a bit the documentation
2011-11-28 16:36:37 +01:00
Gael Guennebaud
2d621d235d
fix alignment computation in Block and MapBase such that aligned means aligned on 16 bytes and nothing else
...
(transplanted from dcb36e3d49
)
2011-11-28 13:43:10 +01:00
Marc Glisse
a2810aa32f
bug #383 - another c++11-user-defined-literal fix
2011-11-27 15:27:25 -05:00
Marc Glisse
8107b3da75
bug #383 - EIGEN_ASM_COMMENT broken in C++11
...
this is due to the new user-defined literals syntax.
2011-11-26 17:55:18 -05:00
Gael Guennebaud
f56316f7ed
add two alternative solutions to the problem of fixed size members
2011-11-25 13:46:48 +01:00
Gael Guennebaud
70206ab1e1
draft of the new sparse manual reflecting the new sparse module
2011-11-24 17:32:30 +01:00
Gael Guennebaud
57d1ccb2dc
fix compilation of doc (broken by changeset bc6d78982f
...
- General tightening/testing of vectorwise ops)
2011-11-24 17:30:55 +01:00
Gael Guennebaud
2d4fe54b73
fix CG example
2011-11-24 08:19:13 +01:00
Gael Guennebaud
01b4b6e456
improve accuracy of 3x3 direct eigenvector extraction
2011-11-23 22:43:40 +01:00
Gael Guennebaud
be9b87377f
typo
2011-11-23 08:30:10 +01:00
Jitse Niesen
63dcdb65fd
Install eigen3.pc in default directory if pkgconfig not found (bug #358 ).
2011-11-22 17:30:35 +00:00
Benoit Jacob
ffe6d1f901
Alignment fixes:
...
* Fix AlignedBit computation for Plain Objects
* use it for the conditional alignment of operator new
* only overload new in PlainObjectBase, don't overload again in Matrix and Array
2011-11-22 09:04:31 -05:00
Gael Guennebaud
f278a3eaba
stop fill pivoting LU only if the pivot is exactly 0
2011-11-22 09:18:54 +01:00
Benoit Jacob
bc6d78982f
Bugs 157 and 377 - General tightening/testing of vectorwise ops:
...
* add lots of static assertions making it very explicit when all these ops
are supposed to work:
** all ops require the rhs vector to go in the right direction
** all ops already require that the lhs and rhs are of the same kind
(matrix vs vector) otherwise we'd have to do complex work
** multiplicative ops (introduced Kibeom's patch) are restricted to arrays, if only because for matrices they could be ambiguous.
* add a new test, vectorwiseop.cpp.
* these compound-assign operators used to be implemented with for loops:
for(Index j=0; j<subVectors(); ++j)
subVector(j).array() += other.derived().array();
This didn't seem to be needed; replaced by using expressions like operator+ and operator- did.
2011-11-18 11:10:27 -05:00
Kibeom Kim
de22ad117c
bug #157 - Implemented *= /= * / operations for VectorwiseOp (e.g. mat.colwise())
2011-11-17 17:57:45 -05:00
Jitse Niesen
08c0edae86
Move EIGEN_USING_MATRIX_TYPEDEFS macros to Eigen2Support.
2011-11-16 14:32:50 +00:00
Dennis Schridde
db36e4204f
[Geometry/AlignedBox] New typedefs, like for Core/Matrix
...
Includes 1-4 and dynamic sized boxes for int, float and double type.
Also changes the tests to use these typedefs.
2011-11-09 22:12:28 +01:00
Gael Guennebaud
8fbbbe7521
fix some include paths
2011-11-16 09:27:38 +01:00
Gael Guennebaud
cb2f1944e2
add the new module headers
2011-11-12 15:22:35 +01:00
Gael Guennebaud
53fa851724
move sparse solvers from unsupported/ to main Eigen/ and remove the "not stable yet" warning
2011-11-12 14:11:27 +01:00
Gael Guennebaud
dcb66d6b40
fix ei_add_property
2011-11-12 10:54:16 +01:00
Gael Guennebaud
3e4a68cc60
optimize vectorized reductions by peeling the loop:
...
- x2 for squaredNorm() on double
- peeling the loop with a peeling factor of 4 leads to even better perf
for large vectors (e.g., >64) but it makes more difficult to keep good performance on smaller ones.
2011-11-12 09:19:48 +01:00
Gael Guennebaud
c110abb7d2
fix performance issue with SPMV
2011-11-11 06:04:31 +01:00
Gael Guennebaud
9d82a7e204
merge with hauke/eigen-cdash-improvements branch
2011-11-09 21:19:05 +01:00
Dennis Schridde
3a82aa1133
[Core/Matrix] Fix: Clear the right typedef macro
2011-11-09 12:25:55 +00:00
Gael Guennebaud
fb3aa7220f
reimplement abs2 not to use std::norm which is incredibly slow.
2011-11-08 22:42:51 +01:00
Jitse Niesen
45a6bb34c3
Add simple example on how to compute Cholesky decomposition.
2011-11-07 17:14:06 +00:00
Marton Danoczy
f422668d39
Patches to support ARM NEON with Clang 3.0 and LLVM-GCC
2011-11-04 16:37:10 +01:00
Benoit Jacob
1b98b73472
Refactor force-inlining macros and use EIGEN_ALWAYS_INLINE to force inlining of the integer overflow helpers, whose non-inlining caused major performance problems, see the mailing list thread 'Significant perf regression probably due to bug #363 patches'
2011-11-06 16:27:41 -05:00
Benoit Jacob
aa3e420df5
Add test for Matrix(x, y) ctor static assert added in previous changeset
2011-11-06 00:44:04 -04:00
Benoit Jacob
ab3f138b23
In the Matrix constructor taking (rows, cols), statically assert that the types are integer.
...
The 2D vector ctor taking (x, y) is not concerned.
2011-11-05 23:56:48 -04:00
Gael Guennebaud
478de03bd8
fix a couple of warnings in the unit tests
2011-11-05 23:30:49 +01:00
Gael Guennebaud
cdd3e85060
Automatically produce a tgz archive of the documentation.
2011-11-05 21:59:36 +01:00
Gael Guennebaud
b4d1d4a2e0
completely remove EIGEN_BUILD_BLAS_LAPACK option
2011-11-05 13:26:53 +01:00
Gael Guennebaud
c5ddaf0c87
fix compilation
2011-11-05 10:54:05 +01:00
Gael Guennebaud
1de769d122
remove deprecated assert
2011-11-04 14:42:54 +01:00
Gael Guennebaud
05de3dddca
use runtest.sh script iif /bin/bash does exist
2011-11-03 17:37:25 +01:00
Gael Guennebaud
94d87abbdb
fix fftw cmake stuff
2011-11-03 15:33:42 +01:00
Jitse Niesen
a594ac3966
Allow for more iterations in SelfAdjointEigenSolver (bug #354 ).
...
Add an assert to guard against using eigenvalues that have not converged.
Add call to info() in tutorial example to cover non-convergence.
2011-11-02 14:18:20 +00:00
Gael Guennebaud
57207239f3
Mention that the axis in AngleAxis have to be normalized.
2011-11-01 09:40:51 +01:00
Jan Oberländer
fa7c08a831
bug #365 - Rename B0 in GeneralBlockPanelKernel.h to avoid name clash
...
with termios.h on POSIX systems.
2011-10-31 10:44:09 -04:00
Benoit Jacob
0cf2a05f3e
bug #365 - Add test for non-usage of B0
2011-10-31 10:44:06 -04:00
Benoit Jacob
9df2f5c923
bug #369 - Quaternion alignment is broken
...
The problem was two-fold:
* missing aligned operator new
* Flags were mis-computed, the Aligned constant was misused
2011-10-31 09:23:41 -04:00
Benoit Jacob
0609dbeec6
fix more variable-set-but-not-used warnings on gcc 4.6
2011-10-31 00:51:36 -04:00
Benoit Jacob
6a1caf0351
Fix some unused-variable warnings with GCC 4.6
2011-10-30 23:55:20 -04:00
Adolfo Rodriguez Tsourouksdissian
4477843bdd
bug #206 - part 4: Removes heap allocations from JacobiSVD and its preconditioners
2011-10-30 23:55:20 -04:00
Adolfo Rodriguez Tsourouksdissian
5e431779f3
bug #206 - part 3: Reimplement FullPivHouseholderQR<T>::matrixQ() using ReturnByValue
2011-03-08 19:04:31 +01:00
Adolfo Rodriguez Tsourouksdissian
7bf0e8cd82
bug #206 - part 2: For HouseholderSequence objects, added non-allocating versions of evalTo() and applyThisOnTheRight/Left that take additional working vector parameters.
2011-10-30 23:55:16 -04:00
Benoit Jacob
bca18a13ea
The most important inline keyword ever? Without it, gcc failed to inline this function, which is called by all matrix constructors...
2011-10-25 20:45:26 -04:00
Gael Guennebaud
d7e70edfb3
remove the MSVC specific blas/lapack option
2011-10-24 13:40:01 +02:00
Gael Guennebaud
e44c19d1cc
hopefully this workaround of cmake bug #9220 works for MSVC too
2011-10-24 13:36:49 +02:00
Gael Guennebaud
1ddf88060b
update sparse*sparse product: the default is now a conservative algorithm preserving symbolic non zeros. The previous with auto pruning of the small value is avaible doing: (A*B).pruned() or (A*B).pruned(ref) or (A*B).pruned(ref,eps)
2011-10-24 11:44:53 +02:00
Gael Guennebaud
a997dacc67
mark deprecated sparse solvers as so.
2011-10-24 09:51:02 +02:00
Gael Guennebaud
39d4585bff
add the possiibility to disable deprectated warnings (useful for deprecated unit tests!)
2011-10-24 09:40:37 +02:00
Gael Guennebaud
5d43b4049d
factorize solving with guess
2011-10-24 09:33:24 +02:00
Gael Guennebaud
70df09b76d
move DynamicSparseMatrix to SparseExtra
2011-10-24 09:31:33 +02:00
Gael Guennebaud
a2d414f568
move the blas.h header to blas/ and remove declaration of function returning a complex
2011-10-19 16:29:43 +02:00
Benoit Jacob
de69129f56
forgot inline keyword
2011-10-17 08:49:59 -04:00
Benoit Jacob
16b638c159
Throw std::bad_alloc even when exceptions are disabled, by doing new int[size_t(-1)].
...
Don't throw exceptions on aligned_malloc(0) (just because malloc's retval is null doesn't mean error, if size==0).
Remove EIGEN_NO_EXCEPTIONS option, use only compiler standard defines. Either exceptions are enabled or they aren't.
2011-10-17 08:44:44 -04:00
Benoit Jacob
dcbc985a28
bug #363 - add test for integer overflow in size computations
2011-10-16 16:12:19 -04:00
Benoit Jacob
739559b08a
bug #363 - check for integer overflow in size=rows*cols computations
2011-10-16 16:12:19 -04:00
Benoit Jacob
0c6055c285
bug #363 - check for integer overflow in byte-size computations
2011-10-16 16:12:19 -04:00
Gael Guennebaud
c1170d2e93
update the decomposition catalogue
2011-10-14 21:21:38 +02:00
Gael Guennebaud
3fce43a704
add a basic ILU preconditioner
2011-10-11 20:41:43 +02:00
Gael Guennebaud
a5761d6dd7
fix sparse tri-solve for full matrices
2011-10-11 20:35:52 +02:00
Gael Guennebaud
15cb4f5b09
extend BiCGSTAB to arbitrary rhs
2011-10-11 19:53:18 +02:00
Gael Guennebaud
21d27c6f71
add proper bicgstab unit test
2011-10-11 19:38:36 +02:00
Gael Guennebaud
cd3c2451b6
add a unit test for permutation applied to sparse objects
2011-10-11 13:45:27 +02:00
Gael Guennebaud
3172749f32
refactor sparse solving unit tests
2011-10-11 11:32:26 +02:00
Gael Guennebaud
4f237f035c
extend SimplicialCholesky for sparse rhs, and add determinant
2011-10-11 11:31:12 +02:00
Gael Guennebaud
5dc8458293
extend CG for multiple right hand sides
2011-10-11 11:29:50 +02:00
Gael Guennebaud
b94c00226f
make it compatible with Diagonal<>
2011-10-11 11:28:13 +02:00
Gael Guennebaud
ae9c96a32d
fix assignment to a set of sparse inner vectors
2011-10-10 16:16:37 +02:00
Gael Guennebaud
4e7f38ffc7
fix nesting
2011-10-09 22:19:01 +02:00
Gael Guennebaud
e97879857b
DiagonalPrecond: fix potential segfault in case the diagonal contains explciit zeros
2011-10-09 22:17:37 +02:00
Gael Guennebaud
1beb8a6564
add a generic unit test for sparse SPD problems
2011-10-09 21:50:02 +02:00
Gael Guennebaud
2fc1b58cd2
split SimplicialCholesky into SimplicialLLt and SimplicialLDLt classes and add specific factor access functions
2011-10-09 21:45:55 +02:00
Hauke Heibel
e1dec359ba
Configured unsupported/test/mpreal/*.* as CRLF files.
2011-10-04 11:57:49 +02:00
Hauke Heibel
b96d0bd240
Added a flag to build blas/lapack.
2011-10-04 11:23:55 +02:00
Gael Guennebaud
683ea3c93f
fix superLU when the salver is called multiple times
2011-09-27 18:30:53 +02:00
Jitse Niesen
ac3ad9c1e7
Convert tabs to spaces.
2011-09-27 15:47:04 +01:00
Jitse Niesen
17c321617d
Fix bug #286 : Infinite loop in JacobiSVD with denormals
2011-09-27 14:25:02 +01:00
Bram de Jong
961a825b97
Add method which returns worst time (and make some methods const).
2011-09-26 14:39:23 +01:00
Gael Guennebaud
9bba0e7ba1
clean sparse LU tests
2011-09-24 17:15:37 +02:00
Gael Guennebaud
b2988375e8
fix a couple of issues in SuperLU support (memory and determinant)
2011-09-24 14:20:31 +02:00
Gael Guennebaud
6799fabba9
port umfpack support to new API
2011-09-24 14:19:39 +02:00
Gael Guennebaud
d8ae978b65
fix some compilation issues
2011-09-23 16:28:26 +02:00
Gael Guennebaud
823b2105b6
fix atan2 when tmp4==0
2011-09-22 17:34:25 +02:00
Gael Guennebaud
b0adbfbae7
BiCGSTAB does not like starting from 0...
2011-09-21 18:08:08 +02:00
Gael Guennebaud
c331c092d5
no comment
2011-09-21 14:20:41 +02:00
Gael Guennebaud
7301f4345c
quick workaround of MSVC9' ICE in pset1
2011-09-21 14:18:41 +02:00
Gael Guennebaud
83563dee3c
find macport' umfpack/cholmod
2011-09-21 10:28:09 +02:00
Gael Guennebaud
ebfed5a512
Enable incomplete BLAS/Lapack builds when no fortran compiler has been found.
...
Works here with gcc. Hopefully this will work for MSVC too.
2011-09-21 10:27:38 +02:00
Gael Guennebaud
1d796acb05
fix status after initialization
2011-09-20 18:45:50 +02:00
Gael Guennebaud
5d1836b182
accept both STL and Eigen's containers for reserve()
2011-09-20 02:04:03 +02:00
Jitse Niesen
e0a6ce50dd
Typo in geometry tutorial.
2011-09-19 21:57:26 +01:00
Jitse Niesen
2092b45d0d
Bug fix for matrix1 * matrix2 * scalar1 * scalar2.
...
See report on http://forum.kde.org/viewtopic.php?f=74&t=96947 .
2011-09-19 15:07:19 +01:00
Chen-Pang He
16b13596a6
mainly enhance MatrixLogarithm's performance for RealScalar != double
2011-09-17 21:00:55 +08:00
Gael Guennebaud
edf4c4b217
add support for macosx
2011-09-17 10:57:27 +02:00
Gael Guennebaud
9053729d68
add a bi conjugate gradient stabilized solver
2011-09-17 10:54:14 +02:00
Gael Guennebaud
f4122e9f94
add tan, acos, asin
2011-09-14 08:35:54 +02:00
Jitse Niesen
6b006772f1
Fix LDLT::solve() if matrix singular but solution exists (bug #241 ).
...
Clarify this in docs and add regression test.
2011-09-11 06:30:53 +01:00
Jitse Niesen
59b83c14fd
Write page on template and typename keywords in C++.
...
After yet another question on the forum, I decided to write something on this
common issue. Now we just need to link to this and get people to read it.
Thanks to mattb on the forum for some links. Caveat: IANALL (I am not a
language lawyer).
2011-09-10 09:18:18 +01:00
Gael Guennebaud
3e7aaadb1d
fix bench_gemm
2011-09-09 10:36:20 +02:00
Gael Guennebaud
d52d8e4a53
reactivate the sorting in the experimental sparse-sparse product
2011-09-08 13:43:32 +02:00
Gael Guennebaud
7706bafcfd
add the possibility to reserve room for inner vector in SparseMatrix
2011-09-08 13:42:54 +02:00
Jitse Niesen
7898281b2b
Put docs for unsupported modules in right place.
...
Doxygen was confused by the unsupported modules being partly in the doc/
directly, instead of completely in unsupported/doc/ . Thus, the link to
the unsupported modules on the server did not work (I think this manifested
itself after doxygen was upgraded on the server).
2011-09-07 04:19:12 +01:00
Jitse Niesen
b38d3b360e
Define log2() on FreeBSD (fixes bug #343 ).
2011-09-06 06:52:04 +01:00
Gael Guennebaud
f1d98aad1b
add atan2 support in AutoDiff and remove superfluous std:: specializations
2011-09-05 17:47:58 +02:00
Gael Guennebaud
063042bca3
Merged in trevorw/eigen (pull request PR-7)
2011-09-05 10:55:49 +02:00
Jitse Niesen
477d3e5726
Update docs of PlainObjectBase::Map(); fixes bug #335 .
...
Also fix some typos.
2011-09-03 15:18:21 +01:00
Jitse Niesen
a2feb6f3c7
Add defensive assert to MatrixExponential,
2011-09-03 04:58:06 +01:00
Chen-Pang He
dd598ef8ce
enhance efficacy via avoiding exception handling
2011-09-02 00:15:02 +08:00
Trevor Wennblom
6b31aa4bd1
resolve pkgconfig destination - #338
2011-08-30 19:15:16 -05:00
Jitse Niesen
7ee084f82f
Leverage triangular square root in matrix log.
2011-08-25 07:42:32 +01:00
Jitse Niesen
c01ed935dd
Split code for (quasi)triangular matrices from MatrixSquareRoot.
...
This way, (quasi)triangular matrices can avoid the costly Schur decomposition.
2011-08-25 07:42:21 +01:00
Chen-Pang He
8ddd1e390b
fix: <ctime> is necessary for srand(time(NULL))
2011-08-24 18:26:38 +08:00
Gael Guennebaud
8414be739b
fix bug #330 : Index to int conversion warning
2011-08-23 11:02:10 +02:00
Gael Guennebaud
b3f5fbbd9a
oops EIGEN_DEFINE_STL_VECTOR_SPECIALIZATION now perfroms full specialization,
...
no need for the typename keywords
2011-08-22 10:48:04 +02:00
Gael Guennebaud
b85c89c313
fix bug #262 : Compilation error of stdvector_overload test with GCC 4.6
...
Now our aligned allocator is automatically activatived only when the user
did not specified an allocator (or specified the default std::allocator).
2011-08-22 10:12:10 +02:00
Jitse Niesen
9bf4d709e4
Fix failures in redux test caused by underflow in .prod() test.
2011-08-21 00:51:15 +01:00
Jitse Niesen
9e667e28f5
Add coverage for long double to matrix_exponential test.
2011-08-21 00:20:29 +01:00
Chen-Pang He
6d7a32231d
add compatibility with long double
2011-08-20 12:33:51 +08:00
Gael Guennebaud
ea4a1960f0
mv the mpreal copy in its own folder
2011-08-19 15:08:29 +02:00
Gael Guennebaud
79ad55a901
update to latest mpreal and fix a min/max issue in mprel.h
2011-08-19 15:03:45 +02:00
Gael Guennebaud
42e2578ef9
the min/max macros to detect unprotected min/max were undefined by some std header,
...
so let's declare them after and do the respective fixes ;)
2011-08-19 14:18:05 +02:00
Gael Guennebaud
5734ee6df4
add the possibility to specialize assign_impl and still call the default implementations.
...
(yes I know this change will be deprecated as soon as the evaluators will be in shape but I need this now)
2011-08-18 10:19:25 +02:00
Gael Guennebaud
ca7d3dca79
fix linking issue
2011-08-12 22:38:53 +02:00
Gael Guennebaud
f162f7c323
fix a numerical issue in the direct 3x3 eigenvector extraction
2011-08-08 10:46:26 +02:00
Thomas Capricelli
a660e6425c
fix a bug where some rotations were not initialized
...
They actually were in the original minpack code, this is a bug introduced
by our migration.
Reported on #322 and
http://forum.kde.org/viewtopic.php?f=74&t=96197#p201158
2011-08-04 05:02:04 +02:00
Thomas Capricelli
5748d3c96f
wa2 was computed twice because of a confustion between changesets
...
746c787a76
and ee0e39284c
.
Reported on forum:
http://forum.kde.org/viewtopic.php?f=74&t=96197#p201158
2011-08-04 03:27:01 +02:00
Jitse Niesen
b12522f696
Remove unnecessary template keywords (breaks compilation under MSVC).
...
Thanks to Hauke for finding this.
2011-07-28 13:55:56 +01:00
Hauke Heibel
3431c052c6
Improved compilation errors for Transform initialization/assignment with different numeric types.
2011-07-28 09:35:17 +02:00
Gael Guennebaud
3a2cabc275
compilation fix with conjugate_gradient_solve_retval_with_guess
2011-07-26 14:43:20 +02:00
Gael Guennebaud
51f706b916
add the possibility to configure the preconditioner
2011-07-26 09:22:18 +02:00
Gael Guennebaud
66fa6f39a2
add a naive IdentityPreconditioner
2011-07-26 09:17:18 +02:00
Gael Guennebaud
80b1d1371d
add a conjugate gradient solver
2011-07-26 09:04:10 +02:00
Gael Guennebaud
8fa7e92e77
fix sparse selfadjoint time dense such that the other triangular part is not used at all
2011-07-26 09:02:41 +02:00
Gael Guennebaud
97ac0fd192
fix eigen2 support min/max garbage
2011-07-22 11:37:41 +02:00
Gael Guennebaud
e8313364c1
simplify a bit the 2x2 direct eigenvalue solver
2011-07-22 11:21:43 +02:00
Gael Guennebaud
47a2bca89f
integrate Hauke's 2x2 direct symmetric eigenvalues solver
2011-07-22 09:43:14 +02:00
Gael Guennebaud
26d7dad138
add a computeDirect method to SelfAdjointEigenSolver for fast eigen decomposition
2011-07-21 19:07:52 +02:00
Gael Guennebaud
22bff949c8
protect calls to min and max with parentheses to make Eigen compatible with default windows.h
...
(transplanted from 49b6e9143e
)
2011-07-21 11:19:36 +02:00
Gael Guennebaud
d4bd8bddb5
fix bug #320 (pretty gdb printer on mingw)
2011-07-20 11:15:42 +02:00
Hauke Heibel
705023fd85
Translation * RotationBase now returns an isometric transformation.
2011-07-19 11:13:40 +02:00
Gael Guennebaud
3fb65734ab
fix triangular unit test: it only accepts small matrices
2011-07-19 10:45:42 +02:00
Gael Guennebaud
22cc2b727b
fix trmv unit test
2011-07-19 10:44:44 +02:00
Gael Guennebaud
38a4e3053d
fix LLT rank one update for "upper" hermitian matrices
2011-07-19 10:09:43 +02:00
Gael Guennebaud
0d02182ae8
add an "InvalidInput" enum, used by the SuperLU interface
2011-07-18 13:37:41 +02:00
Gael Guennebaud
a8f66fec65
add the possibility to configure the maximal matrix size in the unit tests
2011-07-12 14:41:00 +02:00
Gael Guennebaud
bdb545ce3b
enable instalation of blas and lapack libs
2011-07-11 17:02:09 +02:00
Gael Guennebaud
5fdebc2fa5
fix bug #316 - SelfAdjointEigenSolver::compute does not handle matrices of size (1,1) correctly
2011-07-09 07:15:14 +02:00
Thomas Capricelli
08074843ac
fix few warnings reported by clang
2011-07-07 22:20:04 +02:00
Gael Guennebaud
c52268c649
suppress polluting EMPTY macro defined by SuperLU
2011-07-07 16:42:51 +02:00
Gael Guennebaud
2489c81562
add new interface to SuperLU
2011-07-07 14:19:42 +02:00
Gael Guennebaud
c98cd5e564
fix constness of intersection methods (bug #309 )
2011-06-27 13:15:01 +02:00
Jitse Niesen
0b308e79c4
Add DenseStorage specializations for dynamic size with MaxSize = 0 (bug #288 ).
...
This is necessary for instantiations like Matrix<float,Dynamic,Dynamic,0,0,0>.
2011-06-24 13:47:11 +01:00
Jitse Niesen
16db255333
Fix compilation of cholesky rank update test.
2011-06-24 13:41:23 +01:00
Thomas Capricelli
9b52fe0432
fix typo in doc for ParametrizedLine
2011-06-23 00:36:24 +02:00
Gael Guennebaud
3ecf7e8f6e
add a KroneckerProduct module (unsupported) from Kolja Brix and Andreas Platen materials.
2011-06-22 14:39:11 +02:00
Gael Guennebaud
7aabce7c76
rm confusing sentence
2011-06-17 09:46:05 +02:00
Tim Holy
16a2d896bc
Relatively straightforward changes to wording of documentation, focusing particularly on the sparse and (to a lesser extent) geometry pages.
2011-06-20 22:47:58 -05:00
Tim Holy
4a95badf74
A first tiny test commit: fix a spelling error in the documentation.
2011-06-19 14:39:19 -05:00
Gael Guennebaud
2f32e48517
New feature: add rank one update in Cholesky decomposition
2011-06-20 15:05:50 +02:00
Gael Guennebaud
a55c27a15f
fix documentation of norm
2011-06-18 08:30:34 +02:00
Zach Ploskey
642d452921
Suggest placing Eigen directory in system include path.
2011-06-17 15:46:50 -07:00
Zach Ploskey
e3491beb48
Fixed a few typos and cleaned up some language.
2011-06-17 15:42:15 -07:00
Benoit Jacob
a871f3cdb8
adapt test to the change reverting normalize() to returning void
2011-06-15 10:00:43 -04:00
Benoit Jacob
aedccbf52f
back out 842881cfb1
2011-06-15 09:59:10 -04:00
Benoit Jacob
d2673d89bd
add test for normalize() and normalized()
2011-06-15 00:30:46 -04:00
Andy Somerville
842881cfb1
bug #298 - let normalize() return a reference to *this
2011-06-15 00:30:11 -04:00
Gael Guennebaud
40287d2fd9
remove the use of non standard long long
2011-06-14 10:56:47 +02:00
Gael Guennebaud
f82b3ea241
fix aligned_allocator::allocate interface
2011-06-14 08:50:25 +02:00
Thomas Capricelli
cf04a7c682
fix typo in constant name
2011-06-12 23:54:28 +02:00
Gael Guennebaud
6d3dee1b66
introduce a smart_copy internal function and fix sparse matrices with non POD scalar type
2011-06-09 19:04:06 +02:00
Jitse Niesen
8c8ab9ae10
Implement matrix logarithm + test + docs.
...
Currently, test matrix_function_1 fails due to bug #288 .
2011-06-07 14:44:43 +01:00
Jitse Niesen
a6d42e28fe
Decouple MatrixFunction and MatrixFunctionAtomic
...
in preparation for implementation of matrix log.
2011-06-07 14:40:27 +01:00
Jitse Niesen
86ca35ccff
Fix and test MatrixSquareRoot for 1-by-1 matrices.
2011-06-07 14:32:16 +01:00
Gael Guennebaud
91fe1507d1
Sparse: more fixes regarding long int as index type
2011-06-07 11:28:16 +02:00
Gael Guennebaud
421ece38e1
Sparse: fix long int as index type in simplicial cholesky and other decompositions
2011-06-06 10:17:28 +02:00
Jitse Niesen
7a61a564ef
Fix snippets for operator|| and && by adding pair of parens.
2011-06-03 11:17:08 +01:00
Gael Guennebaud
5bc4abc45e
fix compilation with MinGW
2011-06-01 12:16:21 +02:00
Gael Guennebaud
562d3ea91d
forgot to include this file in previous commit
2011-06-01 10:49:36 +02:00
Gael Guennebaud
35c1158ee3
add boolean || and && operators
2011-05-31 22:17:34 +02:00
Gael Guennebaud
b495203310
update URL
2011-05-31 19:07:15 +02:00
Gael Guennebaud
5830f90983
add read/write routines for sparse matrices in the Market format
2011-05-31 18:58:04 +02:00
Jitse Niesen
9d6fdbced7
Fix truncated instructions for printers.py
...
... as noted by kp0987 on forum
2011-05-30 16:15:11 +01:00
Gael Guennebaud
5b71d44e18
fix bug #278 : geometry tutorial
...
(transplanted from 3cd1641dac
)
2011-05-28 22:12:15 +02:00
Gael Guennebaud
9464745385
do not directly call std::ceil
2011-05-28 16:46:38 +02:00
Gael Guennebaud
7b46d7ed0f
finish to fix bug #270 : we have to use EIGEN_ALIGN_STATICALLY and not EIGEN_DONT_ALIGN_STATICALLY...
2011-05-28 11:38:53 +02:00
Jitse Niesen
d23845c4cc
Fix typo ('using namespace' instead of 'using').
2011-05-26 09:52:36 +01:00
Gael Guennebaud
87ac09daa8
Simplify the use of custom scalar types, the rule is to never directly call a standard math function using std:: but rather put a using std::foo before and simply call foo:
...
using std::max;
max(a,b);
2011-05-25 08:41:45 +02:00
Gael Guennebaud
5541bcb769
bug #225 : add a unit test for memory leak
2011-05-23 14:20:49 +02:00
Gael Guennebaud
117d17ee58
bug #271 : fix copy/paste mistakes in doc
...
(transplanted from 145b9cad63101ee46924d446fa8b08ffb48c7f3a)
2011-05-23 13:39:26 +02:00
Gael Guennebaud
46bee5682f
clean a bit previous patch (ctor vs static_cast and a few bits)
2011-05-23 13:34:04 +02:00
David H. Bailey
074b067624
fix implicit scalar conversions (needed to support fancy scalar types, see bug #276 )
2011-05-23 11:20:13 +02:00
Gael Guennebaud
7209d6a126
fix gemv_static_vector_if on architectures that cannot aligned on the stack (e.g., ARM NEON)
2011-05-21 22:15:11 +02:00
Gael Guennebaud
96464f8563
clean several other assertion checking tests
2011-05-20 09:59:15 +02:00
Gael Guennebaud
501bc602ec
fix vectorization_logic when EIGEN_GCC_AND_ARCH_DOESNT_WANT_STACK_ALIGNMENT
2011-05-19 21:52:40 +02:00
Gael Guennebaud
f2837aebc4
NEON: fix plset
2011-05-18 21:12:08 +02:00
Gael Guennebaud
8170ef0b2d
add unit test for plset
2011-05-18 21:11:03 +02:00
Gael Guennebaud
7f2a88c91f
NEON: disable unaligned assertion checking for non vectorized types
2011-05-18 14:11:40 +02:00
Gael Guennebaud
85c137ccd4
NEON: fix ploaddup
2011-05-18 08:15:47 +02:00
Gael Guennebaud
179d42bb2b
fix bug #267 : alloca is not aligned on arm
2011-05-17 21:30:12 +02:00
Gael Guennebaud
d4fd298fbb
Autodiff: fix scalr - active_scalar
2011-05-14 22:38:41 +02:00
Jitse Niesen
9a06055870
Store light-weight objects in evaluators by value.
...
This resolves failure in unit test caused by dying temporaries.
2011-05-13 14:05:59 +01:00
Gael Guennebaud
a34a216e82
AutoDiff: add one missing operator- version
2011-05-12 23:40:19 +02:00
Gael Guennebaud
3de2f4b75a
AutoDiff: fix most of bug #234 (missing operators, used old internal math function interface, etc)
2011-05-12 23:36:33 +02:00
Gael Guennebaud
ae3b6cc324
AutoDiff: fix unary operator-
2011-05-12 22:27:51 +02:00
Jitse Niesen
e22a523021
Remove Eigen::internal::sqrt(), see bug #264 .
2011-05-12 16:52:56 +01:00
John Tytgat
0aa7425f15
fix bug #260 : broken Qt support for Transform
...
(transplanted from 84c8b6d5c5
)
2011-05-11 22:31:36 +02:00
Jitse Niesen
0c463a21c4
Forgot to 'hg add' example file in last commit.
2011-05-10 09:59:58 +01:00
Jitse Niesen
d7e3c949be
Implement and document MatrixBase::sqrt().
2011-05-09 22:20:20 +01:00
Jitse Niesen
dac4bb640a
Fix compilation error under GCC 4.5.
...
That version is stricter in forcing function prototype and definition
to match.
2011-05-09 13:57:06 +01:00
Jitse Niesen
837db08cbd
Add test for sqrt() on complex Arrays.
...
From Gael's dashboard output of matrix_square_root test, I suspect the
test committed here may fail on old gcc.
2011-05-09 10:17:41 +01:00
Jitse Niesen
6e1573f66a
Implement square root for real matrices via Schur.
2011-05-08 22:18:37 +01:00
Jitse Niesen
6b4e215710
Implement matrix square root for complex matrices.
...
I hope to implement the real case soon, but it's a bit more
complicated due to the 2-by-2 blocks in the real Schur decomposition.
2011-05-07 22:57:46 +01:00
Jitse Niesen
0896c6d97d
Get rid of wrong "subscript above bounds" warning (bug #149 ).
2011-05-07 18:44:11 +01:00
Gael Guennebaud
4e7e5d09e1
s/n=n/EIGEN_UNUSED_VARIABLE(n)
2011-05-06 21:29:19 +02:00
Gael Guennebaud
fb76452cbc
add missing .data() members to MatrixWrapper and ArrayWrapper
2011-05-06 21:15:05 +02:00
Gael Guennebaud
97b6d26f5b
fix compilation on ARM NEON (missing AlignedOnScalar)
2011-05-06 09:03:48 +02:00
Thomas Capricelli
883219041f
better fix for gcc 4.6.0 / ptrdiff_t, as suggested by Benoit
2011-05-05 18:48:18 +02:00
Thomas Capricelli
a18a1be42d
Fix compilation with gcc-4.6.0, patch provided by Anton Gladky <gladky.anton@gmail.com>,
...
working on debian packaging.
2011-05-05 00:44:24 +02:00
Jitse Niesen
012419166e
Bail out if preprocessor symbol Success is defined (bug #253 ).
2011-05-04 14:28:45 +01:00
Jitse Niesen
781e75cbd7
Document some more preprocessor symbols:
...
EIGEN_NO_MALLOC, EIGEN_RUNTIME_NO_MALLOC, eigen_assert.
2011-05-04 14:13:20 +01:00
Jitse Niesen
cc23b0a3d9
Remove unused enums in Constants.h .
2011-05-03 17:20:54 +01:00
Jitse Niesen
a96c849c20
Document enums in Constants.h (bug #248 ).
...
To get the links to work, I also had to document the Eigen namespace.
Unfortunately, this means that the word Eigen is linked whenever it appears
in the docs.
2011-05-03 17:08:14 +01:00
Gael Guennebaud
1947da39ab
fix bug #258 : asin/acos copy paste mistake
2011-05-02 13:26:44 +02:00
Hauke Heibel
10426b7647
Final working fix for the EOL extension.
...
MSVC debugger tools are now forced to CRLF.
2011-04-30 18:10:17 +02:00
Hauke Heibel
0358a8247c
This should fix the eol extension.
2011-04-30 17:46:40 +02:00
Hauke Heibel
9e0c8549ce
Fixed Unix script line ending conversions.
2011-04-30 17:35:51 +02:00
Jitse Niesen
06fb7cf470
Implement compound assignments using evaluator of SelfCwiseBinaryOp.
2011-04-28 16:57:35 +01:00
Jitse Niesen
3b60d2dbc4
Implement swap using evaluators.
2011-04-28 15:52:15 +01:00
Jitse Niesen
2d11041e24
Use copyCoeff/copyPacket in copy_using_evaluator.
2011-04-22 22:36:45 +01:00
Jitse Niesen
3457965bf5
Implement evaluator for Diagonal.
2011-04-22 22:36:45 +01:00
Jitse Niesen
f924722f3b
Implement evaluators for Reverse.
2011-04-22 22:36:45 +01:00
Jitse Niesen
bb2d70d211
Implement evaluators for ArrayWrapper and MatrixWrapper.
2011-04-22 22:36:45 +01:00
Gael Guennebaud
6441e8727b
fix aligned_stack_memory_handler for null pointers
2011-04-21 09:00:55 +02:00
Mathieu Gautier
392eb9fee8
Quaternion : add Flags on Quaternion's traits with the LvalueBit set if needed
...
Quaternion : change PacketAccess to IsAligned to mimic other traits
test : add a test and 4 failtest on Map<const Quaternion> based on Eigen::Map ones
2011-04-12 14:49:50 +02:00
Gael Guennebaud
f85db18c1c
I doubt this change was intented to be committed
...
ss: Enter commit message. Lines beginning with 'HG:' are removed.
2011-04-20 08:15:09 +02:00
Thomas Capricelli
50c00d14c8
be nice with the server : dont use -j3
2011-04-19 17:41:59 +02:00
Gael Guennebaud
e87f653924
fix bug #250 : compilation error with gcc 4.6 (STL header files no longer include cstddef)
2011-04-19 16:34:25 +02:00
Gael Guennebaud
67d50f539b
fix bug #242 : vectorization was wrongly enabled on MSVC 2005
2011-04-19 15:25:00 +02:00
Eamon Nerbonne
e48bc0dfe3
WIN32 isn't defined ?? but _WIN32 is.
2011-04-19 14:37:04 +02:00
Jitse Niesen
0b40b36d10
Make MapBase(PointerType) constructor explicit (fixes bug #251 )
2011-04-19 12:13:04 +01:00
Benoit Jacob
820545cddb
fix unaligned-array-assert link
2011-04-18 06:35:54 -04:00
Jitse Niesen
c9b5531d6c
Normalize eigenvectors returned by EigenSolver (fixes bug #249 )
...
because the documentation says that we do this.
Also, add a unit test to cover this.
2011-04-15 17:39:59 +01:00
Jitse Niesen
e654405900
Implement unrolling in copy_using_evaluator() .
2011-04-13 11:49:48 +01:00
Jitse Niesen
7e86324898
Implement evaluator for PartialReduxExpr as a dumb wrapper.
2011-04-13 09:49:10 +01:00
Jitse Niesen
11164830f5
Implement evaluator for Replicate.
2011-04-12 22:54:31 +01:00
Jitse Niesen
12a30a982f
Implement evaluator for Select.
2011-04-12 22:34:16 +01:00
Jitse Niesen
88b3116b99
Decouple AssignEvaluator.h from assign_traits from Assign.h
2011-04-12 13:35:08 +01:00
Gael Guennebaud
0c146bee1b
enforce no inlining of the GEBP product kernel: this is a big
...
function that makes no sense to inline, though GCC was thinking
the opposite. This even slighlty improve the perf. And as a side
effect this workaround a weird GCC-4.4 linking bug (see
"Problem with g++-4.4 -O2 and Eigen3" in the ML)
2011-04-07 18:49:45 +02:00
Jitse Niesen
eae5a6bb09
Decouple Cwise*Op evaluators from expression objects
2011-04-05 18:30:51 +01:00
Jitse Niesen
11ea81858a
Implement evaluator for CwiseUnaryView
2011-04-05 18:20:43 +01:00
Jitse Niesen
cca7b146a2
Implement evaluator for Map
2011-04-05 18:15:59 +01:00
Gael Guennebaud
a6b5314c20
Performance tunning for TRMM products
2011-04-05 11:20:50 +02:00
Jitse Niesen
ae06b8af5c
Make evaluators for Matrix and Array inherit from common base class.
...
This gets rid of some code duplication.
2011-04-04 15:35:14 +01:00
Jitse Niesen
afdd26f229
Do some of the actual work in evaluator for Block.
...
Also, add simple accessor methods to Block expression class.
2011-04-04 13:44:50 +01:00
Gael Guennebaud
0d58c36ffd
std::min/max are not implemented and they cannot be implemented easily
2011-04-04 16:26:43 +02:00
Jitse Niesen
70d5837e00
Correct typo in QuickReference doc, plus typographical improvements.
2011-04-01 16:58:51 +01:00
Gael Guennebaud
77a1373c3a
fix trmm unit test
2011-03-31 15:32:21 +02:00
Jitse Niesen
d90a8ee8bd
Evaluators: add Block evaluator as dumb wrapper, add slice vectorization.
2011-03-31 13:50:52 +01:00
Gael Guennebaud
b471161f28
fix typo and remove unused declaration.
2011-03-31 10:02:02 +02:00
Adam Szalkowski
969e92261d
fix bug #239 : the essential part was left uninitialized in some cases
2011-03-31 09:54:52 +02:00
Jitse Niesen
10dae8dd4d
Add directory containing split_test_helper.h to include path.
2011-03-29 14:17:49 +01:00
Jitse Niesen
8175fe43e0
Evaluators: Make inner vectorization more similar to default traversal.
2011-03-28 21:29:47 +01:00
Gael Guennebaud
00991b5b64
extend trmm/trmv unit test to thoroughly check all configurations
2011-03-28 17:45:16 +02:00
Gael Guennebaud
4f1419e9c3
add the possibility to specify a list of sub-test suffixes in a compact way
2011-03-28 17:43:59 +02:00
Gael Guennebaud
6feb1d3c0b
fix trmv for Strictly* triangular matrices and trapezoidal matrices
2011-03-28 17:42:26 +02:00
Gael Guennebaud
568478ffe5
fix trmm for some unusual trapezoidal cases (a dense set of columns or rows is zero)
2011-03-28 17:41:46 +02:00
Gael Guennebaud
f4ac7d2b43
automatically generate the CALL_SUBTEST_* macros
2011-03-28 17:39:05 +02:00
Jitse Niesen
b175bc464f
Evaluators: Implement linear traversal, better testing.
2011-03-27 22:08:48 +01:00
Jitse Niesen
1b17a674dd
Evaluators: Implement inner vectorization.
...
The implementation is minimal (I only wrote the functions called by
the unit test) and ugly (lots of copy and pasting).
2011-03-27 13:49:15 +01:00
Jitse Niesen
5c204d1ff7
Evaluators: Implement LinearVectorizedTraversal, packet ops in evaluators.
2011-03-25 16:30:41 +00:00
Gael Guennebaud
e6fa4a267a
improve computation of the sub panel width
2011-03-24 23:42:25 +01:00
Gael Guennebaud
931814d7c0
improve performance of trsm
2011-03-24 23:19:53 +01:00
Jitse Niesen
c6ad2deead
Bug fix in linspace_op::packetOp(row,col). Fixes bug #232 .
...
Also, add regression test.
2011-03-24 10:42:11 +00:00
Gael Guennebaud
42bc1f77be
impl basic product evaluator on top of previous one
2011-03-24 09:33:36 +01:00
Gael Guennebaud
abc8c0821c
makes evaluator test use VERIFY_IS_APPROX
2011-03-23 17:23:56 +01:00
Gael Guennebaud
4ada45bc76
BTL: add eigen2 backend
2011-03-23 16:59:12 +01:00
Gael Guennebaud
7d24cf283a
do not confuse Eigen3 or beta versions of Eigen3 with Eigen2
2011-03-23 16:58:45 +01:00
Gael Guennebaud
7bb4f6ae2f
BTL: do not enable GOTO1 if GOTO2 was found
2011-03-23 16:28:43 +01:00
Gael Guennebaud
3ef0da6efb
fix tridiagonalization action
2011-03-23 16:28:09 +01:00
Gael Guennebaud
816541d82c
add a stupid Product<A,B> expression produced by prod(a,b), and implement a first version of its evaluator
2011-03-23 16:12:21 +01:00
Gael Guennebaud
cfd5c2d74e
import evaluator works
2011-03-23 11:54:00 +01:00
Gael Guennebaud
611fc17894
add support for ublas
2011-03-23 11:39:35 +01:00
Gael Guennebaud
ec32d2c807
BTL: by default use current Eigen headers, and disable the novec version
2011-03-23 11:08:10 +01:00
Gael Guennebaud
b3e43246bc
BTL: add a Eigen-blas backend
2011-03-23 11:00:31 +01:00
Gael Guennebaud
f9da1ccc3b
BTL: clean the BLAS implementation
2011-03-23 10:35:54 +01:00
Gael Guennebaud
e35b1ef3f3
BTL: rm stupid backends
2011-03-23 10:07:24 +01:00
Gael Guennebaud
fe595e91ae
update plot settings
2011-03-23 10:03:01 +01:00
Gael Guennebaud
9cca79f5ca
update aat action to do a syrk operation, and remove (comment) ata action
2011-03-23 10:02:00 +01:00
Gael Guennebaud
da3f3586e0
BTl: GMM++ LU is not a full pivoting LU
2011-03-22 15:39:23 +01:00
Gael Guennebaud
22c7609d72
extend sparse product unit tests
2011-03-22 11:58:22 +01:00
Gael Guennebaud
5fda8cdfb3
fix 228 (ei_aligned_stack_delete does not exist anymore)
2011-03-21 21:59:42 +01:00
Benoit Jacob
eb9c6b6cfd
merge
2011-03-21 06:46:27 -04:00
Benoit Jacob
bb8a25e94b
fix typos
2011-03-21 06:45:57 -04:00
Gael Guennebaud
535a61ede8
port sparse LLT/LDLT to new stack allocation API
2011-03-20 17:10:43 +01:00
Benoit Jacob
eba023d082
make compile_snippet use Eigen/Dense
2011-03-20 11:48:53 -04:00
Gael Guennebaud
b8ecda5c66
clean a bit the stack allocation mechanism
2011-03-19 10:27:47 +01:00
Gael Guennebaud
bbb4b35dfc
test the new stack allocation mechanism
2011-03-19 08:51:38 +01:00
Gael Guennebaud
290205dfc0
fix memory leak when a custom scalar throw an exception
2011-03-19 01:06:50 +01:00
Benoit Jacob
5991d247f9
bump
2011-03-18 05:27:58 -04:00
Gael Guennebaud
37c5341d64
fix compilation for old but not so old versions of glew
2011-03-18 10:26:21 +01:00
Gael Guennebaud
2359486129
disable testing of aligned members when aligned static allocation is not enabled (e.g., for gcc 3.4)
2011-03-15 09:53:23 +01:00
Gael Guennebaud
dd2e4be741
fix array_for_matrix unit test
2011-03-15 09:42:22 +01:00
Benoit Jacob
c5ef8f9027
Added tag 3.0-rc1 for changeset 4931a719f4
2011-03-14 14:10:12 -04:00
Benoit Jacob
4931a719f4
bump
2011-03-14 14:10:05 -04:00
Jitse Niesen
27f34269d5
Document EIGEN_DEFAULT_DENSE_INDEX_TYPE.
...
Also, expand description of EIGEN_DONT_ALIGN.
2011-03-11 11:15:44 +00:00
Jitse Niesen
e7d2376688
Change int to Index in equalsIdentity().
...
This fixes compilation errors in nullary test on 64-bits machines.
2011-03-11 11:06:13 +00:00
Benoit Jacob
dc36efbb8f
fix bug #219 : Map Flags AlignedBit was miscomputed, didn't account for EIGEN_ALIGN
2011-03-10 10:17:17 -05:00
Benoit Jacob
9a47fb289b
add test for EIGEN_DONT_ALIGN and EIGEN_DONT_ALIGN_STATICALLY, cf recent bugs (214 etc) and changeset 56818d907e
2011-03-10 09:44:59 -05:00
Jitse Niesen
151e3294cf
Fix equalsIdentity() for rectangular matrices.
2011-03-10 13:49:06 +00:00
Oliver Ruepp
5d1263e7c5
bug #37 : fix resizing when the destination sparse matrix is row major
2011-03-08 16:37:59 +01:00
Gael Guennebaud
c6c6c34909
repeat nullary tests, and fix some tests
2011-03-07 16:41:59 +01:00
Jitse Niesen
931edea57d
Tweak geo_quaternion test to squash intermittent failures.
2011-03-07 11:42:55 +00:00
Benoit Jacob
bfcad536e8
* bug #206 : correctly forward computationOptions and work towards avoiding mallocs after preallocation, with unit test.
...
* added EIGEN_RUNTIME_NO_MALLOC and new set_is_malloc_allowed() function to implement that test
2011-03-06 20:59:25 -05:00
Benoit Jacob
b464fc19bc
try to fix a ICC 11.1 compiler error (bug #217 )
2011-03-06 19:27:31 -05:00
Benoit Jacob
c541d0a62e
disable ICC 12 warning 279 - controlling expression is constant
2011-03-06 19:06:44 -05:00
Benoit Jacob
b43d92a5a2
The Eigen2 intrusive std::vector hack really can't be supported in eigen3 (bug #215 )
2011-03-04 10:24:41 -05:00
Benoit Jacob
56818d907e
Make EIGEN_ALIGN16 always align to fix crashes with EIGEN_DONT_ALIGN_STATICALLY. New macro EIGEN_USER_ALIGN16 had the old behavior i.e. honors user preference.
2011-03-04 09:57:49 -05:00
Sameer Sheorey
e9868f438b
Changed debug/gdb/printers.py to correctly display variable sized matrices.
...
There is no python error now.
2011-03-02 10:47:54 -06:00
Gael Guennebaud
4f0909b5f0
fix bug #212 (installation of Eigen2Support/Geometry)
2011-03-04 14:16:58 +01:00
Jitse Niesen
6cac61ca3e
Copy fix of unit test when GSL is enabled to eigen2 test suite.
2011-03-04 11:04:07 +00:00
Jitse Niesen
1180ede36d
Escape hash character in docs as required by doxygen.
2011-03-03 15:19:11 +00:00
Jitse Niesen
99fa279ed1
Use copy_bool() workaround in Eigen2 test suite.
...
See bug #89 and changeset 59596efdf7
.
2011-03-03 14:17:23 +00:00
Jitse Niesen
dbab12d6b0
Fix bug #205 : eigen2_adjoint_5 test fails.
2011-03-02 22:00:48 +00:00
Gael Guennebaud
dc727d86f1
extend unit tests of Transform * MatrixBase and Transform * Homogeneous
2011-03-02 19:34:39 +01:00
Gael Guennebaud
5cec29162b
fix compilation in the case of 1D Transform
2011-03-02 19:29:55 +01:00
Gael Guennebaud
703c8a0cc6
fix compilation when mixing CompactAffine with Homogeneous objects
2011-03-02 19:27:13 +01:00
Gael Guennebaud
d30f0c0953
fix transform * matrix products: in particular it now truely considers the rhs as a set of (homogeneous) points and do not neglect the homogeneous coordinates in the case of affine transform
2011-03-02 19:26:38 +01:00
Gael Guennebaud
adacacb285
fix bug #204 : limit integer values to numbers which are representable using float
2011-03-02 14:24:26 +01:00
Gael Guennebaud
c8e1b679fa
re-enable fast pset1-pstore by introducing a new higher level pstore1 function
2011-03-02 10:55:44 +01:00
Gael Guennebaud
951e238430
now fixing "unsupported" "legacy" code...
2011-03-01 16:45:46 +01:00
Benoit Jacob
9c5c8d8916
Added tag 3.0-beta4 for changeset 77fc6a9914
2011-02-28 00:55:59 -05:00
Hauke Heibel
50a3cd678a
Improved site and buildname generation.
2011-02-20 11:54:07 +01:00