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