Commit message (Collapse) | Author | Age | |
---|---|---|---|
* | bug #1680: improve MSVC inlining by declaring many triavial constructors and ↵ | 2019-02-15 | |
| | | | | accessors as STRONG_INLINE. | ||
* | Enable visitor on empty matrices (the visitor is left unchanged), and ↵ | 2019-01-15 | |
| | | | | protect min/maxCoeff(Index*,Index*) on empty matrices by an assertion (+ doc & unit tests) | ||
* | Make redux_vec_unroller more flexible regarding packet-type | 2018-10-09 | |
| | |||
* | Demangle Travseral and Unrolling in Redux | 2018-09-21 | |
| | |||
* | Improve slice-vectorization logic for redux (significant speed-up for ↵ | 2018-09-21 | |
| | | | | reduxion of blocks) | ||
* | fix unused warning | 2018-07-12 | |
| | |||
* | bug #1565: help MSVC to generatenot too bad ASM in reductions. | 2018-07-05 | |
| | |||
* | Simplify redux_evaluator using inheritance, and properly rename parameters ↵ | 2018-07-02 | |
| | | | | in reducers. | ||
* | Adds missing EIGEN_STRONG_INLINE to support MSVC properly inlining small ↵ | 2017-10-26 | |
| | | | | | | vector calculations When working with MSVC often small vector operations are not properly inlined. This behaviour is observed even on the most recent compiler versions. | ||
* | Added missing EIGEN_DEVICE_FUNC qualifiers | 2017-02-28 | |
| | |||
* | Big 279: enable mixing types for comparisons, min, and max. | 2016-06-10 | |
| | |||
* | Relax mixing-type constraints for binary coefficient-wise operators: | 2016-06-06 | |
| | | | | | | | | | | - Replace internal::scalar_product_traits<A,B> by Eigen::ScalarBinaryOpTraits<A,B,OP> - Remove the "functor_is_product_like" helper (was pretty ugly) - Currently, OP is not used, but it is available to the user for fine grained tuning - Currently, only the following operators have been generalized: *,/,+,-,=,*=,/=,+=,-= - TODO: generalize all other binray operators (comparisons,pow,etc.) - TODO: handle "scalar op array" operators (currently only * is handled) - TODO: move the handling of the "void" scalar type to ScalarBinaryOpTraits | ||
* | bug #1193: fix lpNorm<Infinity> for empty input. | 2016-06-02 | |
| | |||
* | Disable some long to float conversion warnings | 2016-05-26 | |
| | |||
* | bug #1207: Add and fix logical-op warnings | 2016-05-11 | |
| | |||
* | Enable half-packet in reduxions. | 2016-04-13 | |
| | |||
* | Simplify cost computations based on HugeCost being smaller that unrolling limit | 2015-10-28 | |
| | |||
* | Refactoring of the cost model: | 2015-10-28 | |
| | | | | | | | | | | | - 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) | ||
* | bug #1090: fix a shortcoming in redux logic for which slice-vectorization ↵ | 2015-10-21 | |
| | | | | plus unrolling might happen. | ||
* | Cleaning in Redux.h | 2015-10-09 | |
| | |||
* | Since there is no reason for evaluators to be nested by reference, let's ↵ | 2015-09-02 | |
| | | | | remove the evaluator<>::nestedType indirection. | ||
* | Allow to use arbitrary packet-types during evaluation. | 2015-08-07 | |
| | | | | This is implemented by adding a PacketType template parameter to packet and writePacket members of evaluator<>. | ||
* | Let unpacket_traits<> exposes the required alignment and make use of it ↵ | 2015-08-07 | |
| | | | | everywhere | ||
* | Generalize first_aligned to take the requested alignment as a template ↵ | 2015-08-06 | |
| | | | | parameter, and add a first_default_aligned variante calling first_aligned with the requirement of the largest packet for the given scalar type. | ||
* | First part of a big refactoring of alignment control to enable the handling ↵ | 2015-08-06 | |
| | | | | | | | | | 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. | ||
* | Remove the usage of result_of for DenseBase::redux as discussed in bug #1006 | 2015-06-15 | |
| | |||
* | Fix some calls to result_of on binary functors as unary ones. | 2015-02-19 | |
| | |||
* | Remove deprecated usage of expr::Index. | 2015-02-16 | |
| | |||
* | Make cuda_basic test compile again by adding lots of EIGEN_DEVICE_FUNC. | 2014-10-13 | |
| | | | | Although the test passes now, there might still be some missing. | ||
* | Make constructors explicit if they could lead to unintended implicit conversion | 2014-09-23 | |
| | |||
* | Remove deprecated code not used by evaluators | 2014-09-18 | |
| | |||
* | merge with default branch | 2014-09-14 | |
|\ | |||
| * | Runtime alignement is not possible if AlignedOnScalar is not true (e.g., for ↵ | 2014-09-08 | |
| | | | | | | | | complex<double>) | ||
* | | Optimize reduxions for Homogeneous | 2014-08-01 | |
| | | |||
* | | merge with default branch | 2014-06-20 | |
|\| | |||
* | | Fix regressions in redux_evaluator flags and evaluator<Block> flags | 2014-03-12 | |
| | | |||
* | | Extend evaluation traits debuging info | 2014-03-12 | |
| | | |||
* | | Move evaluation related flags from traits to evaluator and fix evaluators of ↵ | 2014-03-12 | |
| | | | | | | | | MapBase and Replicate | ||
* | | Move CoeffReadCost mechanism to evaluators | 2014-03-10 | |
| | | |||
| * | Added support for AVX to Eigen. | 2014-01-29 | |
| | | |||
* | | Make reductions compatible with evaluators | 2013-12-02 | |
|/ | |||
* | merge with default branch | 2013-04-19 | |
|\ | |||
| * | bug #564: document the fact that minCoeff/maxCoeff members have undefined ↵ | 2013-04-09 | |
| | | | | | | | | behavior if the matrix contains NaN. | ||
* | | Add support for NVCC5: most of the Core and part of LU are callable from ↵ | 2013-02-07 | |
|/ | | | | | | CUDA code. Still a lot to do. | ||
* | Automatic relicensing to MPL2 using Keirs script. Manual fixup follows. | 2012-07-13 | |
| | |||
* | Get rid of include directives inside namespace blocks (bug #339). | 2012-04-15 | |
| | |||
* | fix static inline versus inline static issues (the former is the correct order) | 2012-01-31 | |
| | |||
* | workaround ICC compilation error with -strict-ansi | 2012-01-25 | |
| | |||
* | optimize vectorized reductions by peeling the loop: | 2011-11-12 | |
| | | | | | | - 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. | ||
* | 'fix' a couple of clang -Wconstant-logical-operand warnings (still not ↵ | 2011-02-22 | |
| | | | | convinced about the pertinence of that warning) |