aboutsummaryrefslogtreecommitdiffhomepage
path: root/Eigen/src/Core/AssignEvaluator.h
Commit message (Collapse)AuthorAge
* Remove debuging code.Gravatar Gael Guennebaud2016-05-26
|
* Introduce internal's UIntPtr and IntPtr types for pointer to integer ↵Gravatar Gael Guennebaud2016-05-26
| | | | | | | | conversions. This fixes "conversion from pointer to same-sized integral type" warnings by ICC. Ideally, we would use the std::[u]intptr_t types all the time, but since they are C99/C++11 only, let's be safe.
* bug #256: enable vectorization with unaligned loads/stores.Gravatar Gael Guennebaud2016-05-24
| | | | | This concerns all architectures and all sizes. This new behavior can be disabled by defining EIGEN_UNALIGNED_VECTORIZE=0
* Clean propagation of Dest/Src alignments.Gravatar Gael Guennebaud2016-05-24
|
* bug #1207: Add and fix logical-op warningsGravatar Christoph Hertzberg2016-05-11
|
* Fix performance regression: with AVX, unaligned stores were emitted instead ↵Gravatar Gael Guennebaud2016-05-01
| | | | of aligned ones for fixed size assignement.
* Improve half-packet vectorization logic to distinguish linear versus inner ↵Gravatar Gael Guennebaud2016-04-13
| | | | traversal modes.
* Fix static/inline keywords order.Gravatar Gael Guennebaud2016-04-11
|
* Removed executable bit from header filesGravatar Benoit Steiner2016-03-23
|
* Improve inliningGravatar Gael Guennebaud2016-02-08
|
* bug #667: declare several critical functions as FORECE_INLINE to make ICC ↵Gravatar Gael Guennebaud2016-01-31
| | | | | | | happier. <g.gael@free.fr> HG: branch 'default' HG: changed Eigen/src/Core/ArrayBase.h HG: changed Eigen/src/Core/AssignEvaluator.h HG: changed Eigen/src/Core/CoreEvaluators.h HG: changed Eigen/src/Core/CwiseUnaryOp.h HG: changed Eigen/src/Core/DenseBase.h HG: changed Eigen/src/Core/MatrixBase.h
* bug #1144: fix regression in x=y+A*x (aliasing), and move ↵Gravatar Gael Guennebaud2016-01-09
| | | | evaluator_traits::AssumeAliasing to evaluator_assume_aliasing.
* Remove useless "explicit", and fix inline/static order.Gravatar Gael Guennebaud2015-12-11
|
* Simplify cost computations based on HugeCost being smaller that unrolling limitGravatar Gael Guennebaud2015-10-28
|
* Refactoring of the cost model:Gravatar Gael Guennebaud2015-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 assign vectorization logic with respect to fixed outer-strideGravatar Gael Guennebaud2015-10-27
|
* Improve readibility of EIGEN_DEBUG_ASSIGN mode.Gravatar Gael Guennebaud2015-10-27
|
* Some cleaning in evaluatorsGravatar Gael Guennebaud2015-10-08
|
* Help clang to inline some functions, thus fixing some regressionsGravatar Gael Guennebaud2015-10-07
|
* Remove debuging prod() and lazyprod() function, plus some cleaning in ↵Gravatar Gael Guennebaud2015-10-07
| | | | noalias assignment
* Define Permutation*<>::Scalar to 'void', re-enable scalar type compatibility ↵Gravatar Gael Guennebaud2015-10-06
| | | | check in assignment while relaxing this test for void types.
* Some cleaningGravatar Gael Guennebaud2015-10-06
|
* Cleaning pass on evaluators: remove the useless and error prone ↵Gravatar Gael Guennebaud2015-09-02
| | | | evaluator<>::type indirection.
* Enable vectorization with half-packetsGravatar Gael Guennebaud2015-08-07
|
* Allow to use arbitrary packet-types during evaluation.Gravatar Gael Guennebaud2015-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 ↵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
|