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
a325d1cb1e
merge with default branch
2014-07-18 11:02:22 +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
Gael Guennebaud
296cb40161
merge with default branch
2014-07-10 22:04:45 +02:00
Christoph Hertzberg
e25e674852
bug #837 : Always re-align the result of EIGEN_ALLOCA.
2014-07-08 13:57:26 +02: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
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
Gael Guennebaud
61b88d2feb
merge with default branch
2014-07-02 09:35:37 +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
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
3b19b466a7
Generalize static assertions on matching sizes to avoid the need for SizeAtCompileTime
2014-06-25 17:22:12 +02: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
Christoph Hertzberg
1c3843bf86
Fix bug #729 : Use alloca if it is defined
2014-06-23 11:04:12 +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
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
Benoit Steiner
4304c73542
Pulled latest updates from the Eigen main trunk.
2014-06-10 10:23:32 -07: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
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
934ce93886
merge with default branch
2014-04-22 17:00:38 +02:00
Gael Guennebaud
6d665d446b
Fixes for fixed sizes and non vectorizable types
2014-04-17 23:26:34 +02:00
Gael Guennebaud
de8336a9bc
Enable alloca on MAC OSX
2014-04-16 23:14:58 +02: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
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
Benoit Steiner
cc73164aa8
Merged latest updates from the parent branch
2014-03-26 15:23:59 -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
Gael Guennebaud
aceae8314b
Resurect EvalBeforeNestingBit to control nested_eval
2014-03-12 20:25:36 +01:00
Gael Guennebaud
74b1d79d77
merge default and evaluator branches
2014-03-12 16:24:25 +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
082f7ddc37
Port Cholesky module to evaluators
2014-03-11 13:33:44 +01:00
Gael Guennebaud
da6ec81282
Move CoeffReadCost mechanism to evaluators
2014-03-10 23:24:40 +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
Benoit Steiner
131027ee0a
Merged eigen/eigen into default
2014-02-24 13:54:07 -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
b2e1453e1e
Some bit flags and internal structures are deprecated
2014-02-20 15:25:06 +01:00
Gael Guennebaud
ecd2c8f37b
Add general Inverse<> expression with evaluator
2014-02-20 14:18:24 +01:00
Gael Guennebaud
2eee6eaf3c
Fix mixing scalar types with evaluators
2014-02-19 16:30:17 +01:00
Gael Guennebaud
ccc41128fb
Add a Solve expression for uniform treatment of solve() methods.
2014-02-19 11:33:29 +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
463554c254
Merge with default branch
2014-02-18 15:45:39 +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
a08cba6b5f
Move is_diagonal to XprHelper, forward declare Ref
2014-02-18 11:03:59 +01:00