Commit message (Collapse) | Author | Age | |
---|---|---|---|
* | Operators += and -= do not resize! | Gael Guennebaud | 2016-12-02 |
| | |||
* | Fix a performance regression in (mat*mat)*vec for which mat*mat was ↵ | Gael Guennebaud | 2016-11-30 |
| | | | | evaluated multiple times. | ||
* | Fix regression in X = (X*X.transpose())/s with X rectangular by deferring ↵ | Gael Guennebaud | 2016-10-26 |
| | | | | resizing of the destination after the creation of the evaluator of the source expression. | ||
* | Fix ICC warnings | Gael Guennebaud | 2016-10-25 |
| | |||
* | Use explicit type casting to generate packets of zeros. | Benoit Steiner | 2016-10-04 |
| | |||
* | bug #1308: fix compilation of some small products involving nullary-expressions. | Gael Guennebaud | 2016-09-29 |
| | |||
* | Add debug info. | Gael Guennebaud | 2016-09-26 |
| | |||
* | bug #1311: fix alignment logic in some cases of ↵ | Gael Guennebaud | 2016-09-26 |
| | | | | (scalar*small).lazyProduct(small) | ||
* | bug #1308: fix compilation of vector * rowvector::nullary. | Gael Guennebaud | 2016-09-25 |
| | |||
* | bug #1283: quick fix for products involving uncommon general block access to ↵ | Gael Guennebaud | 2016-08-31 |
| | | | | vectors. | ||
* | Optimize expression matching "d?=a-b*c" as "d?=a; d?=b*c;" | Gael Guennebaud | 2016-08-23 |
| | |||
* | Fix vectorization logic for coeff-based product for some corner cases. | Gael Guennebaud | 2016-07-31 |
| | |||
* | Vectorize more small product expressions by letting the general assignement ↵ | Gael Guennebaud | 2016-07-28 |
| | | | | logic decides on the sizes that are OK for vectorization. | ||
* | Allows the compiler to inline outer products (the change from default to ↵ | Gael Guennebaud | 2016-07-22 |
| | | | | | | dont-inline in changeset 737bed19c1fdb01568706bca19666531dda681a7 was not motivated) | ||
* | Re-enable some specializations for Assignment<.,Product<>> | Gael Guennebaud | 2016-07-05 |
| | |||
* | Fix template resolution. | Gael Guennebaud | 2016-07-04 |
| | |||
* | Implement scalar multiples and division by a scalar as a binary-expression ↵ | Gael Guennebaud | 2016-06-14 |
| | | | | | | | | | | | | with a constant expression. This slightly complexifies the type of the expressions and implies that we now have to distinguish between scalar*expr and expr*scalar to catch scalar-multiple expression (e.g., see BlasUtil.h), but this brings several advantages: - it makes it clear on each side the scalar is applied, - it clearly reflects that we are dealing with a binary-expression, - the complexity of the type is hidden through macros defined at the end of Macros.h, - distinguishing between "scalar op expr" and "expr op scalar" is important to support non commutative fields (like quaternions) - "scalar op expr" is now fully equivalent to "ConstantExpr(scalar) op expr" - scalar_multiple_op, scalar_quotient1_op and scalar_quotient2_op are not used anymore in officially supported modules (still used in Tensor) | ||
* | Disable shortcuts for res ?= prod when the scalar types do not match exactly. | Gael Guennebaud | 2016-06-06 |
| | |||
* | Relax mixing-type constraints for binary coefficient-wise operators: | Gael Guennebaud | 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 #1181: help MSVC inlining. | Gael Guennebaud | 2016-05-31 |
| | |||
* | Fix static/inline order. | Gael Guennebaud | 2016-05-25 |
| | |||
* | bug #1207: Add and fix logical-op warnings | Christoph Hertzberg | 2016-05-11 |
| | |||
* | Make use of is_same_dense helper instead of extract_data to detect ↵ | Gael Guennebaud | 2016-04-13 |
| | | | | input/outputs are the same. | ||
* | Fix incomplete previous patch on matrix comparision. | Gael Guennebaud | 2016-04-13 |
| | |||
* | Fix detection of same matrices when both matrices are not handled by ↵ | Gael Guennebaud | 2016-04-13 |
| | | | | extract_data. | ||
* | Enable the use of half-packet in coeff-based product. | Gael Guennebaud | 2016-04-12 |
| | | | | For instance, Matrix4f*Vector4f is now vectorized again when using AVX. | ||
* | Removed executable bit from header files | Benoit Steiner | 2016-03-23 |
| | |||
* | Improve inlining | Gael Guennebaud | 2016-02-08 |
| | |||
* | bug #1144: fix regression in x=y+A*x (aliasing), and move ↵ | Gael Guennebaud | 2016-01-09 |
| | | | | evaluator_traits::AssumeAliasing to evaluator_assume_aliasing. | ||
* | Fix sign-unsigned issue in enum | Gael Guennebaud | 2015-12-09 |
| | |||
* | Fix Alignment in coeff-based product, and enable unaligned vectorization | Gael Guennebaud | 2015-12-08 |
| | |||
* | bug #1009, part 1/2: make sure vector expressions expose LinearAccessBit flag. | Gael Guennebaud | 2015-11-27 |
| | |||
* | Simplify cost computations based on HugeCost being smaller that unrolling limit | Gael Guennebaud | 2015-10-28 |
| | |||
* | Refactoring of the cost model: | Gael Guennebaud | 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) | ||
* | Fix ambiguous instantiation issues of product_evaluator. | Gael Guennebaud | 2015-10-14 |
| | |||
* | Implement temporary-free path for "D.nolias() ?= C + A*B". (I thought it was ↵ | Gael Guennebaud | 2015-10-09 |
| | | | | already implemented) | ||
* | Fix nesting sub-expression in outer-products | Gael Guennebaud | 2015-10-08 |
| | |||
* | Fix propagation of AssumeAliasing for expression as: "scalar * (A*B)" | Gael Guennebaud | 2015-10-08 |
| | |||
* | Clean a bit the implementation of inverse permutations | Gael Guennebaud | 2015-10-08 |
| | |||
* | Re-enable vectorization of LinSpaced, plus some cleaning | Gael Guennebaud | 2015-10-08 |
| | |||
* | Help clang to inline some functions, thus fixing some regressions | Gael Guennebaud | 2015-10-07 |
| | |||
* | Remove debuging prod() and lazyprod() function, plus some cleaning in ↵ | Gael Guennebaud | 2015-10-07 |
| | | | | noalias assignment | ||
* | Fix bug #1067: naming conflict | Gael Guennebaud | 2015-09-19 |
| | |||
* | Since there is no reason for evaluators to be nested by reference, let's ↵ | Gael Guennebaud | 2015-09-02 |
| | | | | remove the evaluator<>::nestedType indirection. | ||
* | Cleaning pass on evaluators: remove the useless and error prone ↵ | Gael Guennebaud | 2015-09-02 |
| | | | | evaluator<>::type indirection. | ||
* | Allow to use arbitrary packet-types during evaluation. | Gael Guennebaud | 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 ↵ | Gael Guennebaud | 2015-08-07 |
| | | | | everywhere | ||
* | First part of a big refactoring of alignment control to enable the handling ↵ | Gael Guennebaud | 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. | ||
* | Fix a warning with icc | Gael Guennebaud | 2015-06-23 |
| | |||
* | Fix ambiguous instanciation using clean class-level SFINAE in product_evaluator | Gael Guennebaud | 2015-06-19 |
| |