aboutsummaryrefslogtreecommitdiffhomepage
path: root/Eigen/src/Core/CoreEvaluators.h
Commit message (Collapse)AuthorAge
* Disable previous workaround.Gravatar Gael Guennebaud2016-09-06
|
* Workaround MSVC instantiation faillure of has_*ary_operator at the level of ↵Gravatar Gael Guennebaud2016-09-06
| | | | triats<Ref>::match so that the has_*ary_operator are really properly instantiated throughout the compilation unit.
* Fix shadowing wrt Eigen::IndexGravatar Gael Guennebaud2016-09-05
|
* Workaround a weird msvc 2012 compilation error.Gravatar Gael Guennebaud2016-09-05
|
* Fix for msvc 2012 and olderGravatar Gael Guennebaud2016-09-05
|
* Turned the Index type used by the nullary wrapper into a template parameter.Gravatar Benoit Steiner2016-09-02
|
* Fix compilation with nvccGravatar Gael Guennebaud2016-09-01
|
* bug #1286: automatically detect the available prototypes of functors passed ↵Gravatar Gael Guennebaud2016-08-31
| | | | | | | | | to CwiseNullaryExpr such that functors have only to implement the operators that matters among: operator()() operator()(i) operator()(i,j) Linear access is also automatically detected based on the availability of operator()(i,j).
* Add TernaryFunctors and the betainc SpecialFunction.Gravatar Eugene Brevdo2016-06-02
| | | | | | | | | | | | | | | | | | | TernaryFunctors and their executors allow operations on 3-tuples of inputs. API fully implemented for Arrays and Tensors based on binary functors. Ported the cephes betainc function (regularized incomplete beta integral) to Eigen, with support for CPU and GPU, floats, doubles, and half types. Added unit tests in array.cpp and cxx11_tensor_cuda.cu Collapsed revision * Merged helper methods for betainc across floats and doubles. * Added TensorGlobalFunctions with betainc(). Removed betainc() from TensorBase. * Clean up CwiseTernaryOp checks, change igamma_helper to cephes_helper. * betainc: merge incbcf and incbd into incbeta_cfe. and more cleanup. * Update TernaryOp and SpecialFunctions (betainc) based on review comments.
* 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.
* Block<> should not disable vectorization based on inner-size, this is the ↵Gravatar Gael Guennebaud2016-05-24
| | | | responsibilty of the assignment logic.
* DiagonalWrapper is a vector, so it must expose the LinearAccessBit flag.Gravatar Gael Guennebaud2016-05-19
|
* Fix performance regression: with AVX, unaligned stores were emitted instead ↵Gravatar Gael Guennebaud2016-05-01
| | | | of aligned ones for fixed size assignement.
* Fix shortcoming in fixed-value deduction of startRow/startColGravatar Gael Guennebaud2016-02-29
|
* 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 #1158: PartialReduxExpr is a vector expression, and it thus must expose ↵Gravatar Gael Guennebaud2016-01-28
| | | | the LinearAccessBit flag
* bug #1144: fix regression in x=y+A*x (aliasing), and move ↵Gravatar Gael Guennebaud2016-01-09
| | | | evaluator_traits::AssumeAliasing to evaluator_assume_aliasing.
* Fix storage order of PartialReduxGravatar Gael Guennebaud2015-12-10
|
* Add LU::transpose().solve() and LU::adjoint().solve() API.Gravatar Gael Guennebaud2015-12-01
|
* bug #1009, part 1/2: make sure vector expressions expose LinearAccessBit flag.Gravatar Gael Guennebaud2015-11-27
|
* 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)
* Simplify evaluator::Flags for Map<>Gravatar Gael Guennebaud2015-10-27
|
* Re-enable vectorization of LinSpaced, plus some cleaningGravatar Gael Guennebaud2015-10-08
|
* Clean evaluator<EvalToTemp>Gravatar Gael Guennebaud2015-10-08
|
* Properly implement PartialReduxExpr on top of evaluators, and fix multiple ↵Gravatar Gael Guennebaud2015-10-08
| | | | evaluation of nested expression
* Some cleaning in evaluatorsGravatar Gael Guennebaud2015-10-08
|
* Add a few missing EIGEN_DEVICE_FUNC declarationsGravatar Gael Guennebaud2015-09-03
|
* Since there is no reason for evaluators to be nested by reference, let's ↵Gravatar Gael Guennebaud2015-09-02
| | | | remove the evaluator<>::nestedType indirection.
* Make evaluators non-copyable. This guarantee that evaluators storing ↵Gravatar Gael Guennebaud2015-09-02
| | | | temporaries do not introduce unwanted copy overhead.
* Cleaning pass on evaluators: remove the useless and error prone ↵Gravatar Gael Guennebaud2015-09-02
| | | | evaluator<>::type indirection.
* 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
* 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 #973: update macro-level control of alignement by introducing ↵Gravatar Gael Guennebaud2015-07-29
| | | | user-controllable EIGEN_MAX_ALIGN_BYTES and EIGEN_MAX_STATIC_ALIGN_BYTES macros. This changeset also removes EIGEN_ALIGN (replaced by EIGEN_MAX_ALIGN_BYTES>0), EIGEN_ALIGN_STATICALLY (replaced by EIGEN_MAX_STATIC_ALIGN_BYTES>0), EIGEN_USER_ALIGN*, EIGEN_ALIGN_DEFAULT (replaced by EIGEN_ALIGN_MAX).
* Remove useless specializations of evaluator_traitsGravatar Gael Guennebaud2015-06-19
|
* Add missing accessors for 1D index based access to Replicate<> expressions.Gravatar Gael Guennebaud2015-06-08
|
* Fix a unused-var warningGravatar Benoit Jacob2015-03-15
|
* bug #973, improve AVX support by enabling vectorization of Vector4i-like ↵Gravatar Gael Guennebaud2015-03-13
| | | | types, and enforcing alignement of Vector4f/Vector2d-like types to preserve compatibility with SSE and future Eigen versions that will vectorize them with AVX enabled.
* Merge Index-refactoring branch with default, fix PastixSupport, remove some ↵Gravatar Gael Guennebaud2015-02-13
|\ | | | | | | useless typedefs
* | 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.
| * Workaround various "returning reference to temporary" warnings.Gravatar Gael Guennebaud2014-12-05
|/
* Make select CUDA compatible (comparison operators aren't yet, so no test ↵Gravatar Christoph Hertzberg2014-10-30
| | | | case yet)
* 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.
* Missing explicitGravatar Christoph Hertzberg2014-09-30
|
* Introduce a generic InnerIterator classes compatible with evaluators.Gravatar Gael Guennebaud2014-09-29
|
* Make constructors explicit if they could lead to unintended implicit conversionGravatar Christoph Hertzberg2014-09-23
|
* Avoid a potential risk of recursive definition using traits to get he scalar ↵Gravatar Gael Guennebaud2014-09-15
| | | | type
* Fix compilation of coeff(Index) on sub-inner-panelsGravatar Gael Guennebaud2014-09-08
|
* Fix various small issues detected by gccGravatar Gael Guennebaud2014-08-01
|
* Call product_generic_impl by default, and remove lot of boilerplate codeGravatar Gael Guennebaud2014-07-31
|