Gael Guennebaud
ae38910693
The evalautor of Solve was missing the EvalBeforeNestingBit flag.
2015-10-09 14:57:19 +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
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
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
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
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
deb261f64b
Make abs2 compatible with custom complex types
2015-10-02 10:33:25 +02:00
Doug Kwan
5c9ee73eb9
Implement plog and pexp for AltiVec.
2015-07-30 11:12:42 -07: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
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
b5ad3d2cf7
Remove deprecated Flagged expression.
2015-09-02 14:53:50 +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
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
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
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
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
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