Gael Guennebaud
72bd05b6d8
Cleaning in Redux.h
2015-10-09 12:07:42 +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
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
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
7baa1ba03e
Remove the usage of result_of for DenseBase::redux as discussed in bug #1006
2015-06-15 22:40:18 +02:00
Gael Guennebaud
1b7e12847d
Fix some calls to result_of on binary functors as unary ones.
2015-02-19 23:30:41 +01:00
Gael Guennebaud
cc641aabb7
Remove deprecated usage of expr::Index.
2015-02-16 14:46:51 +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
36448c9e28
Make constructors explicit if they could lead to unintended implicit conversion
2014-09-23 14:28:23 +02:00
Gael Guennebaud
0ca43f7e9a
Remove deprecated code not used by evaluators
2014-09-18 15:15:27 +02:00
Gael Guennebaud
749b56f6af
merge with default branch
2014-09-14 17:34:54 +02:00
Gael Guennebaud
6162672dc5
Runtime alignement is not possible if AlignedOnScalar is not true (e.g., for complex<double>)
2014-09-08 10:04:26 +02:00
Gael Guennebaud
4dd55a2958
Optimize reduxions for Homogeneous
2014-08-01 17:00:20 +02:00
Gael Guennebaud
b29b81a1f4
merge with default branch
2014-06-20 15:55:44 +02:00
Gael Guennebaud
f74ed34539
Fix regressions in redux_evaluator flags and evaluator<Block> flags
2014-03-12 18:14:08 +01:00
Gael Guennebaud
5e26b7cf9d
Extend evaluation traits debuging info
2014-03-12 18:13:18 +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
Benoit Steiner
64a85800bd
Added support for AVX to Eigen.
2014-01-29 11:43:05 -08:00
Gael Guennebaud
f0b82c3ab9
Make reductions compatible with evaluators
2013-12-02 17:54:38 +01:00
Gael Guennebaud
9cd2d14005
merge with default branch
2013-04-19 11:21:39 +02:00
Gael Guennebaud
d7f3cfb56e
bug #564 : document the fact that minCoeff/maxCoeff members have undefined behavior if the matrix contains NaN.
2013-04-09 11:27:54 +02:00
Gael Guennebaud
5adcc6c7b4
Add support for NVCC5: most of the Core and part of LU are callable from CUDA code.
...
Still a lot to do.
2013-02-07 19:06:14 +01:00
Benoit Jacob
69124cfca2
Automatic relicensing to MPL2 using Keirs script. Manual fixup follows.
2012-07-13 14:42:47 -04:00
Jitse Niesen
3c412183b2
Get rid of include directives inside namespace blocks (bug #339 ).
2012-04-15 11:06:28 +01:00
Gael Guennebaud
9c86ee2695
fix static inline versus inline static issues (the former is the correct order)
2012-01-31 12:58:52 +01:00
Gael Guennebaud
87f2af5930
workaround ICC compilation error with -strict-ansi
2012-01-25 15:45:01 +01:00
Gael Guennebaud
3e4a68cc60
optimize vectorized reductions by peeling the loop:
...
- x2 for squaredNorm() on double
- peeling the loop with a peeling factor of 4 leads to even better perf
for large vectors (e.g., >64) but it makes more difficult to keep good performance on smaller ones.
2011-11-12 09:19:48 +01:00
Benoit Jacob
25579df2d4
'fix' a couple of clang -Wconstant-logical-operand warnings (still not convinced about the pertinence of that warning)
2011-02-22 08:54:55 -05:00
Hauke Heibel
c738cd56eb
Renamed cleantype to remove_all since it is close to remove_{const|pointer|reference}.
2010-10-26 16:47:01 +02:00
Benoit Jacob
4716040703
bug #86 : use internal:: namespace instead of ei_ prefix
2010-10-25 10:15:22 -04:00
Gael Guennebaud
044424b0e2
fix sum()/prod() on empty matrix making sure this does not affect fixed sized object, extend related unit tests including partial reduction
2010-07-16 14:02:20 +02:00
Gael Guennebaud
28e64b0da3
email change
2010-06-24 23:21:58 +02:00
Benoit Jacob
d72d538747
merge my Dynamic -> -1 change
2010-06-11 08:04:06 -04:00
Benoit Jacob
bdd7c6c88a
change the value of Dynamic to -1, since the index type is now configurable.
...
remove EIGEN_ENUM_MIN/MAX, implement new macros instead
2010-06-11 07:56:50 -04:00
Hauke Heibel
e40852d282
Fixes #104 .
2010-06-02 19:17:41 +02:00
Benoit Jacob
aaaade4b3d
the Index types change.
...
As discussed on the list (too long to explain here).
2010-05-30 16:00:58 -04:00
Gael Guennebaud
42a1c983c1
fix bug in sliced redux
2010-05-13 23:22:18 +02:00
Benoit Jacob
92da574ec2
* allow matrix dimensions to be 0 (also at compile time) and provide a specialization
...
of ei_matrix_array for size 0
* adapt many xprs to have the right storage order, now that it matters
* add static assert on expressions to check that vector xprs
have the righ storage order
* adapt ei_plain_matrix_type_(column|row)_major
* implement assignment of selfadjointview to matrix
(was before failing to compile) and add nestedExpression() methods
* expand product_symm test
* in ei_gemv_selector, use the PlainObject type instead of a custom Matrix<...> type
* fix VectorBlock and Block mistakes
2010-03-21 11:28:03 -04:00
Benoit Jacob
814e40c72a
let redux use the new ByOuterInner accessors
2010-02-26 21:46:43 -05:00
Hauke Heibel
871698d3aa
Introduced NestParentByRefBit and NestByRefBit - this should fix temporaries related to nested products.
...
Fixed a few typos and a few warnings.
2010-02-06 17:43:32 +01:00
Gael Guennebaud
52167be4c8
make sure the correct diagoanl() function is called in trace()
2010-02-04 18:51:29 +01:00
Hauke Heibel
d0b4ef81f0
Prevent temporaries for reductions.
2010-02-04 14:26:03 +01:00
Hauke Heibel
6dee5440e4
Adapted mean to work with complex numbers.
...
Added regression test.
2010-01-29 12:12:02 +01:00
Gael Guennebaud
9d9e00b608
merge and add start/end to Eigen2Support
2010-01-05 13:07:32 +01:00
Benoit Jacob
25f8adfa6c
* Fix bug #79 : ei_alignmentOffset was assuming that ptr is multiple of
...
sizeof(Scalar), and that assumption breaks with double on linux x86-32.
* Rename ei_alignmentOffset to ei_first_aligned
* Rewrite its documentation and part of its body
* The variant taking a MatrixBase doesn't need a separate size argument.
2010-01-02 12:38:16 -05:00
Gael Guennebaud
eaaba30cac
merge with default branch
2009-12-22 22:51:08 +01:00
Benoit Jacob
5cb779e5e1
* introduce ei_alignmentOffset(MatrixBase&,Integer)
...
couldnt put it in Memory.h as it needs the definition of MatrixBase
* make Redux use it
2009-12-16 08:53:14 -05:00