Commit message (Collapse) | Author | Age | ||
---|---|---|---|---|
... | ||||
* | 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. | |||
* | bug #1039: Redefining EIGEN_DEFAULT_DENSE_INDEX_TYPE may lead to errors | 2015-07-13 | ||
| | ||||
* | Add a call_assignment_no_alias_no_transpose shortcut | 2015-06-24 | ||
| | ||||
* | Remove aligned-on-scalar assert and fallback to non vectorized path at ↵ | 2015-06-14 | ||
| | | | | runtime (first_aligned already had this runtime guard) | |||
* | bug #877, bug #572: Introduce a global Index typedef. Rename Sparse*::Index ↵ | 2014-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 ↵ | 2014-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. | 2014-10-13 | ||
| | | | | Although the test passes now, there might still be some missing. | |||
* | Using Kernel::Index type instead of int to prevent possible implicit ↵ | 2014-09-21 | ||
| | | | | conversion from long to int. | |||
* | Remove deprecated code not used by evaluators | 2014-09-18 | ||
| | ||||
* | Favor column major storage for inner products | 2014-09-14 | ||
| | ||||
* | Re-enable aliasing checks when using evaluators | 2014-09-14 | ||
| | ||||
* | Resizing is done by call_assignment_noalias, so no need to perform it when ↵ | 2014-07-21 | ||
| | | | | dealing with aliasing. | |||
* | Make sure we evaluate into temporaries matching evaluator storage order ↵ | 2014-07-19 | ||
| | | | | requirements | |||
* | Make operator=(EigenBase<>) uses the new assignment mechanism and introduce ↵ | 2014-06-25 | ||
| | | | | a generic EigenBase to EigenBase assignment kind based on the previous evalTo mechanism. | |||
* | Implement binaryop and transpose evaluators for sparse matrices | 2014-06-23 | ||
| | ||||
* | Extend evaluation traits debuging info | 2014-03-12 | ||
| | ||||
* | Fix a few regression when moving the flags | 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 | ||
| | ||||
* | Generalize evaluator<Inverse<>> such that there is no need to specialize it | 2014-02-21 | ||
| | ||||
* | Port LU module to evaluators (except image() and kernel()) | 2014-02-20 | ||
| | ||||
* | Fix mixing scalar types with evaluators | 2014-02-19 | ||
| | ||||
* | Fix vectorization logic wrt assignment functors | 2014-02-19 | ||
| | ||||
* | Cleaning | 2014-02-18 | ||
| | ||||
* | Finally, the simplest remains to deffer resizing at the latest | 2014-02-18 | ||
| | ||||
* | New design for handling automatic transposition | 2014-02-18 | ||
| | ||||
* | Deal with automatic transposition in call_assignment, fix a few shortcomings | 2014-02-17 | ||
| | ||||
* | Add missing template keyword | 2014-01-26 | ||
| | ||||
* | Refactor triangular assignment | 2014-01-25 | ||
| | ||||
* | Add direct assignment of products | 2013-12-02 | ||
| | ||||
* | Get rid of call_dense_swap_loop | 2013-12-02 | ||
| | ||||
* | Fix usage of Dense versus DenseShape | 2013-12-02 | ||
| | ||||
* | First step toward the generalization of evaluators to triangular, sparse and ↵ | 2013-11-29 | ||
| | | | | | | other fancyness. Remove product_tag template parameter to Product. | |||
* | Remove HasEvalTo and all at once eval mode | 2013-11-29 | ||
| | ||||
* | Evaluator: introduce the main Assignment class, add call_assignment to ↵ | 2013-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 ↵ | 2013-11-07 | ||
| | | | | generic_dense_assignment_kernel hold the destination and source evaluators | |||
* | bug #99: refactor assignment and compound assignment mechanism through ↵ | 2013-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 order | 2013-11-06 | ||
| | ||||
* | Clean source code and unit tests with respect to -Wunused-local-typedefs | 2013-04-10 | ||
| | ||||
* | Fix "storage class is not first" warnings | 2013-02-28 | ||
| | ||||
* | Fix compilation with ICC that was unable to instanciate first_aligned | 2013-02-26 | ||
| | ||||
* | Automatic relicensing to MPL2 using Keirs script. Manual fixup follows. | 2012-07-13 | ||
| | ||||
* | Implement A.noalias() = B * C without temporaries | 2012-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. | 2012-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. | 2012-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. | 2012-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(). | 2012-06-28 | ||
| | ||||
* | Fix bug in evaluators with sliced vectorization. | 2012-06-24 | ||
| |