aboutsummaryrefslogtreecommitdiffhomepage
path: root/Eigen/src/Core
Commit message (Collapse)AuthorAge
* Move scalar/expr to ArrayBase and fix documentationGravatar Gael Guennebaud2016-06-15
|
* Propagate functor to ScalarBinaryOpTraitsGravatar Gael Guennebaud2016-06-15
|
* Include the cost of stores in unrolling of triangular expressions.Gravatar Gael Guennebaud2016-06-15
|
* Cleanup useless helper: internal::product_result_scalarGravatar Gael Guennebaud2016-06-15
|
* Include the cost of stores in unrolling (also fix infinite unrolling with ↵Gravatar Gael Guennebaud2016-06-15
| | | | expression costing 0 like Constant)
* mergeGravatar Gael Guennebaud2016-06-14
|\
* | Cleanup unused functors.Gravatar Gael Guennebaud2016-06-14
| |
* | Generalize expr/expr and scalar/expr wrt scalar types.Gravatar Gael Guennebaud2016-06-14
| |
* | Update AutoDiffScalar wrt to scalar-multiple.Gravatar Gael Guennebaud2016-06-14
| |
* | Generalize expr.pow(scalar), pow(expr,scalar) and pow(scalar,expr).Gravatar Gael Guennebaud2016-06-14
| | | | | | | | Internal: scalar_pow_op (unary) is removed, and scalar_binary_pow_op is renamed scalar_pow_op.
* | Implement expr+scalar, scalar+expr, expr-scalar, and scalar-expr as binary ↵Gravatar Gael Guennebaud2016-06-14
| | | | | | | | | | | | expressions, and generalize supported scalar types. The following functors are now deprecated: scalar_add_op, scalar_sub_op, and scalar_rsub_op.
* | Add unittesting plugins to scalar_product_op and scalar_quotient_op to help ↵Gravatar Gael Guennebaud2016-06-14
| | | | | | | | chaking that types are properly propagated.
* | Set cost of constant expression to 0 (the cost should be amortized through ↵Gravatar Gael Guennebaud2016-06-14
| | | | | | | | the expression)
* | Move MatrixBase::operaotr*(UniformScaling) as a free function in Scaling.h, ↵Gravatar Gael Guennebaud2016-06-14
| | | | | | | | and fix return type.
* | Implement scalar multiples and division by a scalar as a binary-expression ↵Gravatar Gael Guennebaud2016-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)
* | Add bind1st_op and bind2nd_op helpers to turn binary functors into unary ↵Gravatar Gael Guennebaud2016-06-13
| | | | | | | | ones, and implement scalar_multiple2 and scalar_quotient2 on top of them.
* | Add default template parameters for the second scalar type of binary functors.Gravatar Gael Guennebaud2016-06-13
| | | | | | | | This enhences backward compatibility.
* | Enable mixing types in numext::powGravatar Gael Guennebaud2016-06-10
| |
* | Big 279: enable mixing types for comparisons, min, and max.Gravatar Gael Guennebaud2016-06-10
| |
| * bug #1240: Remove any assumption on NEON vector types.Gravatar Gael Guennebaud2016-06-09
| |
* | Clean handling for void type in EIGEN_CHECK_BINARY_COMPATIBILIYGravatar Gael Guennebaud2016-06-06
| |
* | Disable shortcuts for res ?= prod when the scalar types do not match exactly.Gravatar Gael Guennebaud2016-06-06
| |
* | Relax mixing-type constraints for binary coefficient-wise operators:Gravatar Gael Guennebaud2016-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
| * Fix compile errors initializing packets on ARM DS-5 5.20Gravatar Sean Templeton2016-06-03
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The ARM DS-5 5.20 compiler fails compiling with the following errors: "src/Core/arch/NEON/PacketMath.h", line 113: Error: #146: too many initializer values Packet4f countdown = EIGEN_INIT_NEON_PACKET4(0, 1, 2, 3); ^ "src/Core/arch/NEON/PacketMath.h", line 118: Error: #146: too many initializer values Packet4i countdown = EIGEN_INIT_NEON_PACKET4(0, 1, 2, 3); ^ "src/Core/arch/NEON/Complex.h", line 30: Error: #146: too many initializer values static uint32x4_t p4ui_CONJ_XOR = EIGEN_INIT_NEON_PACKET4(0x00000000, 0x80000000, 0x00000000, 0x80000000); ^ "src/Core/arch/NEON/Complex.h", line 31: Error: #146: too many initializer values static uint32x2_t p2ui_CONJ_XOR = EIGEN_INIT_NEON_PACKET2(0x00000000, 0x80000000); ^ The vectors are implemented as two doubles, hence the too many initializer values error. Changed the code to use intrinsic load functions which all compilers implementing NEON should have.
| * Make Arrays's ctor/assignment noexceptGravatar Gael Guennebaud2016-06-09
| |
| * Enable the vectorization of adds and mults of fp16Gravatar Benoit Steiner2016-06-07
| |
| * Implement result_of for the new ternary functorsGravatar Benoit Steiner2016-06-06
|/
* Silenced compilation warningGravatar Benoit Steiner2016-06-05
|
* Moved static assertions into the class constructor to make the code more ↵Gravatar Benoit Steiner2016-06-05
| | | | portable
* 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.
* bug #725: make move ctor/assignment noexcept.Gravatar Gael Guennebaud2016-06-03
|
* Fix function dependenciesGravatar Gael Guennebaud2016-06-03
|
* Remove dead code.Gravatar Gael Guennebaud2016-06-02
|
* Implement generic scalar*expr and expr*scalar operator based on ↵Gravatar Gael Guennebaud2016-06-02
| | | | | | scalar_product_traits. This is especially useful for custom scalar types, e.g., to enable float*expr<multi_prec> without conversion.
* bug #1193: fix lpNorm<Infinity> for empty input.Gravatar Gael Guennebaud2016-06-02
|
* Doc: add some cross references (also fix empty macro argument warning)Gravatar Gael Guennebaud2016-06-01
|
* Expose log1p to Array.Gravatar Gael Guennebaud2016-06-01
|
* Doc: makes the global unary math functions visible to doxygen (and docuement ↵Gravatar Gael Guennebaud2016-06-01
| | | | them)
* Doc: disable inlining of inherited members, workaround Doxygen's limited C++ ↵Gravatar Gael Guennebaud2016-06-01
| | | | parsing abilities, and improve doc of MapBase.
* Pulled latest updates from trunkGravatar Benoit Steiner2016-05-31
|\
* | Improved support for CUDA 8.0Gravatar Benoit Steiner2016-05-31
| |
| * bug #1181: help MSVC inlining.Gravatar Gael Guennebaud2016-05-31
| |
| * Fix compilation with old iccGravatar Gael Guennebaud2016-05-31
|/
* Silenced some compilation warnings triggered by nvcc 8.0Gravatar Benoit Steiner2016-05-27
|
* Disable the use of MMX instructions since the code is broken on many platformsGravatar Benoit Steiner2016-05-27
|
* Fix compilation with old ICC version (use C99 types instead of C++11 ones)Gravatar Gael Guennebaud2016-05-27
|
* Deleted extra namespaceGravatar Benoit Steiner2016-05-26
|
* Disable usage of MMX with msvc.Gravatar Gael Guennebaud2016-05-26
|
* linspaced's divisor for integer is better stored as the underlying scalar type.Gravatar Gael Guennebaud2016-05-26
|
* Fix a pointer to integer conversion warningGravatar Gael Guennebaud2016-05-26
|