Gael Guennebaud
8b9dc9f0df
bug #1144 : fix regression in x=y+A*x (aliasing), and move evaluator_traits::AssumeAliasing to evaluator_assume_aliasing.
2016-01-09 08:30:38 +01:00
Gael Guennebaud
df6f54ff63
Fix storage order of PartialRedux
2015-12-10 22:24:58 +01:00
Gael Guennebaud
0bb12fa614
Add LU::transpose().solve() and LU::adjoint().solve() API.
2015-12-01 14:38:47 +01:00
Gael Guennebaud
91a7059459
bug #1009 , part 1/2: make sure vector expressions expose LinearAccessBit flag.
2015-11-27 10:06:07 +01:00
Gael Guennebaud
77ff3386b7
Refactoring of the cost model:
...
- Dynamic is now an invalid value
- introduce a HugeCost constant to be used for runtime-cost values or arbitrarily huge cost
- add sanity checks for cost values: must be >=0 and not too large
This change provides several benefits:
- it fixes shortcoming is some cost computation where the Dynamic case was not properly handled.
- it simplifies cost computation logic, and should avoid future similar shortcomings.
- it allows to distinguish between different level of dynamic/huge/infinite cost
- it should enable further simplifications in the computation of costs (save compilation time)
2015-10-28 11:42:14 +01:00
Gael Guennebaud
8c66b6bc61
Simplify evaluator::Flags for Map<>
2015-10-27 11:06:42 +01: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
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
941a99ac1a
Add a few missing EIGEN_DEVICE_FUNC declarations
2015-09-03 14:14:54 +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
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
ce57dbd937
Let unpacket_traits<> exposes the required alignment and make use of it everywhere
2015-08-07 10:44: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
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
3f6aa4cd5d
Remove useless specializations of evaluator_traits
2015-06-19 14:18:29 +02:00
Gael Guennebaud
cbe3a1a83e
Add missing accessors for 1D index based access to Replicate<> expressions.
2015-06-08 15:39:09 +02:00
Benoit Jacob
1dd3d89818
Fix a unused-var warning
2015-03-15 18:07:19 -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
Gael Guennebaud
fe51319980
Merge Index-refactoring branch with default, fix PastixSupport, remove some useless typedefs
2015-02-13 10:03:53 +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
Christoph Hertzberg
883168ed94
Make select CUDA compatible (comparison operators aren't yet, so no test case yet)
2014-10-30 20:16:16 +01:00
Christoph Hertzberg
d3f52debc6
Make cuda_basic test compile again by adding lots of EIGEN_DEVICE_FUNC.
...
Although the test passes now, there might still be some missing.
2014-10-13 17:18:26 +02:00
Christoph Hertzberg
81517eebc1
Missing explicit
2014-09-30 16:42:04 +02:00
Gael Guennebaud
abd3502e9e
Introduce a generic InnerIterator classes compatible with evaluators.
2014-09-29 13:36:57 +02:00
Christoph Hertzberg
36448c9e28
Make constructors explicit if they could lead to unintended implicit conversion
2014-09-23 14:28:23 +02:00
Gael Guennebaud
466d6d41c6
Avoid a potential risk of recursive definition using traits to get he scalar type
2014-09-15 17:40:17 +02:00
Gael Guennebaud
188a13f9fe
Fix compilation of coeff(Index) on sub-inner-panels
2014-09-08 09:50:03 +02:00
Gael Guennebaud
107bb308c3
Fix various small issues detected by gcc
2014-08-01 16:24:23 +02:00
Gael Guennebaud
bae2e3327b
Call product_generic_impl by default, and remove lot of boilerplate code
2014-07-31 13:35:49 +02:00
Gael Guennebaud
3eba5e1101
Implement evaluator for sparse outer products
2014-07-19 14:55:56 +02:00
Gael Guennebaud
b868bfb84a
Make operator=(EigenBase<>) uses the new assignment mechanism and introduce a generic EigenBase to EigenBase assignment kind based on the previous evalTo mechanism.
2014-06-25 17:23:52 +02:00
Gael Guennebaud
e3ba5329ff
Implement evaluators for sparse Block.
2014-06-25 09:58:26 +02:00
Gael Guennebaud
3849cc65ee
Implement binaryop and transpose evaluators for sparse matrices
2014-06-23 10:40:03 +02:00
Gael Guennebaud
7fa87a8b12
Backport changes from old to new expression engines
2014-06-20 16:17:57 +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
Jitse Niesen
ffc995c9e4
Implement evaluator<ReturnByValue>.
...
All supported tests pass apart from Sparse and Geometry,
except test in adjoint_4 that a = a.transpose() raises an assert.
2014-04-16 18:16:36 +01:00
Gael Guennebaud
f74ed34539
Fix regressions in redux_evaluator flags and evaluator<Block> flags
2014-03-12 18:14:08 +01:00
Gael Guennebaud
a6be1952f4
Fix a few regression when moving the flags
2014-03-12 16:18:34 +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
da6ec81282
Move CoeffReadCost mechanism to evaluators
2014-03-10 23:24:40 +01:00
Gael Guennebaud
95b0a6707b
evaluator<Replicate> must evaluate its argument to avoid redundant evaluations
2014-02-19 14:51:46 +01:00
Gael Guennebaud
ccc41128fb
Add a Solve expression for uniform treatment of solve() methods.
2014-02-19 11:33:29 +01:00
Gael Guennebaud
1b5de5a37b
Add evaluator for Ref
2014-02-18 13:30:16 +01:00
Gael Guennebaud
34694d8828
Fix evaluator<Replicate> for fixed size objects
2014-01-26 15:34:26 +01:00