825 Commits

Author SHA1 Message Date
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
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
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
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
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
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
Gael Guennebaud
d6a8b43b39 Fix typo in the definition of EIGEN_COMP_GNUC_STRICT 2015-04-21 10:12:38 +02:00
Benoit Steiner
74e558cfa8 Pulled latest updates from trunk 2015-04-01 23:24:11 -07:00
Benoit Jacob
0cbd5ae3cb Correctly detect Android with ndk_build 2015-03-31 11:17:21 -04: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
d3f7915aeb Pulled latest update from the eigen main codebase 2015-03-24 13:12:14 -07:00
Gael Guennebaud
d6b2f300db Fix MSVC compilation: aligned type must be passed by reference 2015-03-19 17:28:32 +01:00
Benoit Jacob
e56aabf205 Refactor computeProductBlockingSizes to make room for the possibility of using lookup tables 2015-03-15 18:05:12 -04: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
Benoit Steiner
306fceccbe Pulled latest updates from trunk 2015-02-27 13:05:26 -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 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
f41b1f1666 Added support for fast reciprocal square root computation. 2015-02-26 09:42:41 -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
829dddd0fd Add support for C++11 result_of/lambdas 2015-02-19 15:18:37 +01: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
Gael Guennebaud
63eb0f6fe6 Clean a bit computeProductBlockingSizes (use Index type, remove CEIL macro) 2015-02-18 15:49:05 +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
Gael Guennebaud
cc641aabb7 Remove deprecated usage of expr::Index. 2015-02-16 14:46:51 +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
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
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
c739102ef9 Pulled the latest changes from the trunk 2015-02-06 05:25:03 -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
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
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
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
80ed5bd90c Workaround various "returning reference to temporary" warnings. 2014-12-05 12:49:30 +01: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
2dde63499c Generalized the matrix vector product code. 2014-10-31 16:33:51 -07:00
Benoit Steiner
bc99c5f7db fixed some potential alignment issues. 2014-10-30 18:09:53 -07: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
Gael Guennebaud
21c0a2ce0c Move D&C SVD to official SVD module. 2014-10-29 11:29:33 +01:00
Christoph Hertzberg
e2e7ba9f85 bug #898: add inline hint to const_cast_ptr 2014-10-28 14:49:44 +01: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
Gael Guennebaud
8472e697ca Add lapack interface to JacobiSVD and BDCSVD 2014-10-17 15:31:11 +02:00
Gael Guennebaud
48d537f59f Fix indentation 2014-10-09 23:35:26 +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
Benoit Steiner
b7271dffb5 Generalized the gebp apis 2014-10-02 16:51:57 -07:00
Benoit Steiner
5cc23199be More tests to validate the const-correctness of the tensor code. 2014-10-02 10:30:44 -07:00
Gael Guennebaud
abd3502e9e Introduce a generic InnerIterator classes compatible with evaluators. 2014-09-29 13:36:57 +02:00