Deven Desai
38807a2575
merging updates from upstream
2018-07-11 09:17:33 -04:00
Gael Guennebaud
9357838f94
bug #1543 : improve linear indexing for general block expressions
2018-07-10 09:10:15 +02:00
Gael Guennebaud
de9e31a06d
Introduce the macro ei_declare_local_nested_eval to help allocating on the stack local temporaries via alloca, and let outer-products makes a good use of it.
...
If successful, we should use it everywhere nested_eval is used to declare local dense temporaries.
2018-07-09 15:41:14 +02:00
Gael Guennebaud
a937c50208
palign is not used anymore, so let's relax the unit test
2018-07-06 17:41:52 +02:00
Gael Guennebaud
56a33ae57d
test product kernel with half-floats.
2018-07-06 17:14:04 +02:00
Gael Guennebaud
f4d623ffa7
Complete Packet8h implementation and test it in packetmath unit test
2018-07-06 17:13:36 +02:00
Gael Guennebaud
a8ab6060df
Add unitests for inverse and selfadjoint-eigenvalues on CUDA
2018-07-06 09:58:45 +02:00
Deven Desai
b6cc0961b1
updates based on PR feedback
...
There are two major changes (and a few minor ones which are not listed here...see PR discussion for details)
1. Eigen::half implementations for HIP and CUDA have been merged.
This means that
- `CUDA/Half.h` and `HIP/hcc/Half.h` got merged to a new file `GPU/Half.h`
- `CUDA/PacketMathHalf.h` and `HIP/hcc/PacketMathHalf.h` got merged to a new file `GPU/PacketMathHalf.h`
- `CUDA/TypeCasting.h` and `HIP/hcc/TypeCasting.h` got merged to a new file `GPU/TypeCasting.h`
After this change the `HIP/hcc` directory only contains one file `math_constants.h`. That will go away too once that file becomes a part of the HIP install.
2. new macros EIGEN_GPUCC, EIGEN_GPU_COMPILE_PHASE and EIGEN_HAS_GPU_FP16 have been added and the code has been updated to use them where appropriate.
- `EIGEN_GPUCC` is the same as `(EIGEN_CUDACC || EIGEN_HIPCC)`
- `EIGEN_GPU_DEVICE_COMPILE` is the same as `(EIGEN_CUDA_ARCH || EIGEN_HIP_DEVICE_COMPILE)`
- `EIGEN_HAS_GPU_FP16` is the same as `(EIGEN_HAS_CUDA_FP16 or EIGEN_HAS_HIP_FP16)`
2018-06-14 10:21:54 -04:00
Deven Desai
d1d22ef0f4
syncing this fork with upstream
2018-06-13 12:09:52 -04:00
Gael Guennebaud
3ae2083e23
Make is_same_dense compatible with different scalar types.
2018-07-03 13:21:43 +02:00
Gael Guennebaud
d428a199ab
bug #1562 : optimize evaluation of small products of the form s*A*B by rewriting them as: s*(A.lazyProduct(B)) to save a costly temporary. Measured speedup from 2x to 5x...
2018-07-02 11:41:09 +02:00
Gael Guennebaud
a7b313a16c
Fix unit test
2018-07-01 22:45:47 +02:00
Gael Guennebaud
ee5864f72e
bug #1560 fix product with a 1x1 diagonal matrix
2018-06-25 10:30:12 +02:00
Gael Guennebaud
cb4c9a6a94
bug #1531 : make dedicatd unit testing for NumDimensions
2018-06-08 17:11:45 +02:00
Gael Guennebaud
89d65bb9d6
bug #1531 : expose NumDimensions for compatibility with Tensor
2018-06-08 16:50:17 +02:00
Gael Guennebaud
f4d1461874
Fix the way matrix folder is passed to the tests.
2018-06-08 09:55:46 +02:00
Deven Desai
8fbd47052b
Adding support for using Eigen in HIP kernels.
...
This commit enables the use of Eigen on HIP kernels / AMD GPUs. Support has been added along the same lines as what already exists for using Eigen in CUDA kernels / NVidia GPUs.
Application code needs to explicitly define EIGEN_USE_HIP when using Eigen in HIP kernels. This is because some of the CUDA headers get picked up by default during Eigen compile (irrespective of whether or not the underlying compiler is CUDACC/NVCC, for e.g. Eigen/src/Core/arch/CUDA/Half.h). In order to maintain this behavior, the EIGEN_USE_HIP macro is used to switch to using the HIP version of those header files (see Eigen/Core and unsupported/Eigen/CXX11/Tensor)
Use the "-DEIGEN_TEST_HIP" cmake option to enable the HIP specific unit tests.
2018-06-06 10:12:58 -04:00
Gael Guennebaud
999b552c16
Search for sequential Pastix.
2018-05-29 20:49:25 +02:00
Gael Guennebaud
eef4b7bd87
Fix handling of path names containing spaces and the likes.
2018-05-29 20:49:06 +02:00
Christoph Hertzberg
750af06362
Add an option to test with external BLAS library
2018-05-22 21:04:32 +02:00
Christoph Hertzberg
d06a753d10
Make qr_fullpivoting unit test run for fixed-sized matrices
2018-05-22 20:29:17 +02:00
Gael Guennebaud
4dd767f455
add some internal checks
2018-05-18 13:59:55 +02:00
Gael Guennebaud
345c0ab450
check that all integer types are properly handled by mat(i,j)
2018-05-18 13:46:46 +02:00
Jeff Trull
e7147f69ae
Add tests for sparseQR results (value and size) covering bugs #1522 and #1544
2018-04-21 10:26:30 -07:00
Gael Guennebaud
55774b48e4
Fix short vs long
2018-06-07 15:26:25 +02:00
Gael Guennebaud
b3fd93207b
Fix typos found using codespell
2018-06-07 14:43:02 +02:00
Gael Guennebaud
097dd4616d
Fix unit test for SIMD engine not supporting sqrt
2018-04-26 10:47:39 +02:00
Gael Guennebaud
5679e439e0
bug #1543 : fix linear indexing in generic block evaluation (this completes the fix in commit 12efc7d41b
...
)
2018-04-23 14:40:16 +02:00
Gael Guennebaud
35b31353ab
Fix unit test
2018-04-22 22:49:08 +02:00
Christoph Hertzberg
775766d175
Add parenthesis to fix compiler warnings
2018-04-15 18:43:56 +02:00
Christoph Hertzberg
42715533f1
bug #1493 : Make representation of HouseholderSequence consistent and working for complex numbers. Made corresponding unit test actually test that. Also simplify implementation of QR decompositions
2018-04-15 10:15:28 +02:00
Christoph Hertzberg
c8b19702bc
Limit test size for sparse Cholesky solvers to EIGEN_TEST_MAX_SIZE
2018-04-13 20:36:58 +02:00
Christoph Hertzberg
2cbb00b18e
No need to make noise, if KLU is found
2018-04-13 19:14:25 +02:00
Gael Guennebaud
c91906b065
Umfpack: UF_long has been removed in recent versions of suitesparse, and fix a few long-to-int conversions issues.
2018-04-11 09:59:59 +02:00
Gael Guennebaud
0050709ea7
Merged in v_huber/eigen (pull request PR-378)
...
Add interface to umfpack_*l_* functions
2018-04-11 07:43:04 +00:00
vhuber
08008f67e1
Add unitTest
2018-04-09 17:07:46 +02:00
Gael Guennebaud
2f833b1c64
bug #1509 : fix computeInverseWithCheck for complexes
2018-04-04 15:47:46 +02:00
Gael Guennebaud
403f09ccef
Make stableNorm and blueNorm compatible with 2D matrices.
2018-04-04 15:13:31 +02:00
Gael Guennebaud
73729025a4
bug #1521 : add unit test dedicated to numbest::hypos
2018-04-04 13:45:34 +02:00
Gael Guennebaud
a1292395d6
Fix compilation of product with inverse transpositions (e.g., mat * Transpositions().inverse())
2018-04-03 23:06:44 +02:00
Gael Guennebaud
8d0ffe3655
bug #1516 : add assertion for out-of-range diagonal index in MatrixBase::diagonal(i)
2018-04-03 16:15:43 +02:00
Gael Guennebaud
584951ca4d
Rename predux_downto4 to be more accurate on its semantic.
2018-04-03 14:28:38 +02:00
Gael Guennebaud
d43b2f01f4
Fix unit testing of predux_downto4 (bad name), and add unit testing of prsqrt
2018-04-03 14:14:00 +02:00
luz.paz
e3912f5e63
MIsc. source and comment typos
...
Found using `codespell` and `grep` from downstream FreeCAD
2018-03-11 10:01:44 -04:00
Gael Guennebaud
f7d17689a5
Add static assertion for fixed sizes Ref<>
2018-03-09 10:11:13 +01:00
Gael Guennebaud
f6be7289d7
Implement better static assertion checking to make sure that the first assertion is a static one and not a runtime one.
2018-03-09 10:00:51 +01:00
Gael Guennebaud
d820ab9edc
Add static assertion on selfadjoint-view's UpLo parameter.
2018-03-09 09:33:43 +01:00
Gael Guennebaud
937ad18221
add unit test for SimplicialCholesky and Boost multiprec.
2018-02-16 22:25:11 +04:00
Gael Guennebaud
5deeb19e7b
bug #1517 : fix triangular product with unit diagonal and nested scaling factor: (s*A).triangularView<UpperUnit>()*B
2018-02-09 16:52:35 +01:00
Gael Guennebaud
12efc7d41b
Fix linear indexing in generic block evaluation.
2018-02-09 16:45:49 +01:00