aboutsummaryrefslogtreecommitdiffhomepage
path: root/Eigen/src/Core/AssignEvaluator.h
Commit message (Collapse)AuthorAge
...
* Let unpacket_traits<> exposes the required alignment and make use of it ↵Gravatar Gael Guennebaud2015-08-07
| | | | everywhere
* Generalize first_aligned to take the requested alignment as a template ↵Gravatar Gael Guennebaud2015-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 ↵Gravatar Gael Guennebaud2015-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.
* bug #1039: Redefining EIGEN_DEFAULT_DENSE_INDEX_TYPE may lead to errorsGravatar Christoph Hertzberg2015-07-13
|
* Add a call_assignment_no_alias_no_transpose shortcutGravatar Gael Guennebaud2015-06-24
|
* Remove aligned-on-scalar assert and fallback to non vectorized path at ↵Gravatar Gael Guennebaud2015-06-14
| | | | runtime (first_aligned already had this runtime guard)
* bug #877, bug #572: Introduce a global Index typedef. Rename Sparse*::Index ↵Gravatar Christoph Hertzberg2014-12-04
| | | | to StorageIndex, make Dense*::StorageIndex an alias to DenseIndex. Overall this commit gets rid of all Index conversion warnings.
* Introduce unified macros to identify compiler, OS, and architecture. They ↵Gravatar Gael Guennebaud2014-11-04
| | | | are all defined in util/Macros.h and prefixed with EIGEN_COMP_, EIGEN_OS_, and EIGEN_ARCH_ respectively.
* Make cuda_basic test compile again by adding lots of EIGEN_DEVICE_FUNC.Gravatar Christoph Hertzberg2014-10-13
| | | | Although the test passes now, there might still be some missing.
* Using Kernel::Index type instead of int to prevent possible implicit ↵Gravatar Georg Drenkhahn2014-09-21
| | | | conversion from long to int.
* Remove deprecated code not used by evaluatorsGravatar Gael Guennebaud2014-09-18
|
* Favor column major storage for inner productsGravatar Gael Guennebaud2014-09-14
|
* Re-enable aliasing checks when using evaluatorsGravatar Gael Guennebaud2014-09-14
|
* Resizing is done by call_assignment_noalias, so no need to perform it when ↵Gravatar Gael Guennebaud2014-07-21
| | | | dealing with aliasing.
* Make sure we evaluate into temporaries matching evaluator storage order ↵Gravatar Gael Guennebaud2014-07-19
| | | | requirements
* Make operator=(EigenBase<>) uses the new assignment mechanism and introduce ↵Gravatar Gael Guennebaud2014-06-25
| | | | a generic EigenBase to EigenBase assignment kind based on the previous evalTo mechanism.
* Implement binaryop and transpose evaluators for sparse matricesGravatar Gael Guennebaud2014-06-23
|
* Extend evaluation traits debuging infoGravatar Gael Guennebaud2014-03-12
|
* Fix a few regression when moving the flagsGravatar Gael Guennebaud2014-03-12
|
* Move evaluation related flags from traits to evaluator and fix evaluators of ↵Gravatar Gael Guennebaud2014-03-12
| | | | MapBase and Replicate
* Move CoeffReadCost mechanism to evaluatorsGravatar Gael Guennebaud2014-03-10
|
* Generalize evaluator<Inverse<>> such that there is no need to specialize itGravatar Gael Guennebaud2014-02-21
|
* Port LU module to evaluators (except image() and kernel())Gravatar Gael Guennebaud2014-02-20
|
* Fix mixing scalar types with evaluatorsGravatar Gael Guennebaud2014-02-19
|
* Fix vectorization logic wrt assignment functorsGravatar Gael Guennebaud2014-02-19
|
* CleaningGravatar Gael Guennebaud2014-02-18
|
* Finally, the simplest remains to deffer resizing at the latestGravatar Gael Guennebaud2014-02-18
|
* New design for handling automatic transpositionGravatar Gael Guennebaud2014-02-18
|
* Deal with automatic transposition in call_assignment, fix a few shortcomingsGravatar Gael Guennebaud2014-02-17
|
* Add missing template keywordGravatar Gael Guennebaud2014-01-26
|
* Refactor triangular assignmentGravatar Gael Guennebaud2014-01-25
|
* Add direct assignment of productsGravatar Gael Guennebaud2013-12-02
|
* Get rid of call_dense_swap_loopGravatar Gael Guennebaud2013-12-02
|
* Fix usage of Dense versus DenseShapeGravatar Gael Guennebaud2013-12-02
|
* First step toward the generalization of evaluators to triangular, sparse and ↵Gravatar Gael Guennebaud2013-11-29
| | | | | | other fancyness. Remove product_tag template parameter to Product.
* Remove HasEvalTo and all at once eval modeGravatar Gael Guennebaud2013-11-29
|
* Evaluator: introduce the main Assignment class, add call_assignment to ↵Gravatar Gael Guennebaud2013-11-25
| | | | bypass NoAlias and AssumeAliasing, and some bits of cleaning
* bug #99: move the creation of the evaluator to a central place, and make ↵Gravatar Gael Guennebaud2013-11-07
| | | | generic_dense_assignment_kernel hold the destination and source evaluators
* bug #99: refactor assignment and compound assignment mechanism through ↵Gravatar Gael Guennebaud2013-11-06
| | | | | | | | | | "assignment functors" and "assignement kernels". The former is very low level and generic. The later abstarct the former for dense expressions. This refactoring permits to get rid of the very ugly SwapWrapper and SelfCwiseBinaryOp classes. In the future, this will also permit to simplify all these evaluation loops and perhaps to reuse them for reduxions. That will also permit to specialize for operations like expr1 += expr2 outside Eigen, and so for any kind of expressions (dense, sparse, tensor, etc.)
* Fix static/inline orderGravatar Gael Guennebaud2013-11-06
|
* Clean source code and unit tests with respect to -Wunused-local-typedefsGravatar Gael Guennebaud2013-04-10
|
* Fix "storage class is not first" warningsGravatar Gael Guennebaud2013-02-28
|
* Fix compilation with ICC that was unable to instanciate first_alignedGravatar Gael Guennebaud2013-02-26
|
* Automatic relicensing to MPL2 using Keirs script. Manual fixup follows.Gravatar Benoit Jacob2012-07-13
|
* Implement A.noalias() = B * C without temporariesGravatar Jitse Niesen2012-06-29
| | | | | | | | * Wrap expression inside EvalToTemp in copy_using_evaluators() if we assume aliasing for that expression (that is, for products) * Remove temporary kludge of evaluating expression to temporary in AllAtOnce traversal * Implement EvalToTemp expression object
* Make product eval-at-once.Gravatar Jitse Niesen2012-06-29
| | | | | | | | | * Make product EvalAtOnce in cases OuterProduct, GemmProduct and GemvProduct * Ensure that product evaluators are nested inside EvalToTemp evaluator * As temporary kludge, evaluate expression to temporary in AllAtOnce traversal and pass expression operator to evalTo()
* Implement eval-at-once in evaluator.Gravatar Jitse Niesen2012-06-29
| | | | | | | | - Add evaluator_traits with HasEvalTo flag, which is true if evaluator has evalTo() function. - Add AllAtOnce traversal, which calls evalTo() in evaluator. - If source evaluator in copy_using_evaluator has HasEvalTo set, then use AllAtOnce traversal.
* Implement interface for NoAlias assignments.Gravatar Jitse Niesen2012-06-29
| | | | | | | | * Rename the old copy_using_evaluators to noalias_copy_using_evaluators. * Write a new copy_using_evaluators which strips NoAlias expression, if present, and calls noalias_copy_using_evaluators; in future, it will also take care of aliasing in products. * Add expression() getter to NoAlias.
* Resize lhs automatically in copy_using_evaluator().Gravatar Jitse Niesen2012-06-28
|
* Fix bug in evaluators with sliced vectorization.Gravatar Jitse Niesen2012-06-24
|