Commit message (Collapse) | Author | Age | |
---|---|---|---|
* | Move scalar/expr to ArrayBase and fix documentation | Gael Guennebaud | 2016-06-15 |
| | |||
* | Propagate functor to ScalarBinaryOpTraits | Gael Guennebaud | 2016-06-15 |
| | |||
* | Include the cost of stores in unrolling of triangular expressions. | Gael Guennebaud | 2016-06-15 |
| | |||
* | Cleanup useless helper: internal::product_result_scalar | Gael Guennebaud | 2016-06-15 |
| | |||
* | Include the cost of stores in unrolling (also fix infinite unrolling with ↵ | Gael Guennebaud | 2016-06-15 |
| | | | | expression costing 0 like Constant) | ||
* | merge | Gael Guennebaud | 2016-06-14 |
|\ | |||
* | | Cleanup unused functors. | Gael Guennebaud | 2016-06-14 |
| | | |||
* | | Generalize expr/expr and scalar/expr wrt scalar types. | Gael Guennebaud | 2016-06-14 |
| | | |||
* | | Update AutoDiffScalar wrt to scalar-multiple. | Gael Guennebaud | 2016-06-14 |
| | | |||
* | | Generalize expr.pow(scalar), pow(expr,scalar) and pow(scalar,expr). | Gael Guennebaud | 2016-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 ↵ | Gael Guennebaud | 2016-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 ↵ | Gael Guennebaud | 2016-06-14 |
| | | | | | | | | chaking that types are properly propagated. | ||
* | | Set cost of constant expression to 0 (the cost should be amortized through ↵ | Gael Guennebaud | 2016-06-14 |
| | | | | | | | | the expression) | ||
* | | Move MatrixBase::operaotr*(UniformScaling) as a free function in Scaling.h, ↵ | Gael Guennebaud | 2016-06-14 |
| | | | | | | | | and fix return type. | ||
* | | Implement scalar multiples and division by a scalar as a binary-expression ↵ | Gael Guennebaud | 2016-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 ↵ | Gael Guennebaud | 2016-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. | Gael Guennebaud | 2016-06-13 |
| | | | | | | | | This enhences backward compatibility. | ||
* | | Enable mixing types in numext::pow | Gael Guennebaud | 2016-06-10 |
| | | |||
* | | Big 279: enable mixing types for comparisons, min, and max. | Gael Guennebaud | 2016-06-10 |
| | | |||
| * | bug #1240: Remove any assumption on NEON vector types. | Gael Guennebaud | 2016-06-09 |
| | | |||
* | | Clean handling for void type in EIGEN_CHECK_BINARY_COMPATIBILIY | Gael Guennebaud | 2016-06-06 |
| | | |||
* | | Disable shortcuts for res ?= prod when the scalar types do not match exactly. | Gael Guennebaud | 2016-06-06 |
| | | |||
* | | Relax mixing-type constraints for binary coefficient-wise operators: | Gael Guennebaud | 2016-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.20 | Sean Templeton | 2016-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 noexcept | Gael Guennebaud | 2016-06-09 |
| | | |||
| * | Enable the vectorization of adds and mults of fp16 | Benoit Steiner | 2016-06-07 |
| | | |||
| * | Implement result_of for the new ternary functors | Benoit Steiner | 2016-06-06 |
|/ | |||
* | Silenced compilation warning | Benoit Steiner | 2016-06-05 |
| | |||
* | Moved static assertions into the class constructor to make the code more ↵ | Benoit Steiner | 2016-06-05 |
| | | | | portable | ||
* | Add TernaryFunctors and the betainc SpecialFunction. | Eugene Brevdo | 2016-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. | Gael Guennebaud | 2016-06-03 |
| | |||
* | Fix function dependencies | Gael Guennebaud | 2016-06-03 |
| | |||
* | Remove dead code. | Gael Guennebaud | 2016-06-02 |
| | |||
* | Implement generic scalar*expr and expr*scalar operator based on ↵ | Gael Guennebaud | 2016-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. | Gael Guennebaud | 2016-06-02 |
| | |||
* | Doc: add some cross references (also fix empty macro argument warning) | Gael Guennebaud | 2016-06-01 |
| | |||
* | Expose log1p to Array. | Gael Guennebaud | 2016-06-01 |
| | |||
* | Doc: makes the global unary math functions visible to doxygen (and docuement ↵ | Gael Guennebaud | 2016-06-01 |
| | | | | them) | ||
* | Doc: disable inlining of inherited members, workaround Doxygen's limited C++ ↵ | Gael Guennebaud | 2016-06-01 |
| | | | | parsing abilities, and improve doc of MapBase. | ||
* | Pulled latest updates from trunk | Benoit Steiner | 2016-05-31 |
|\ | |||
* | | Improved support for CUDA 8.0 | Benoit Steiner | 2016-05-31 |
| | | |||
| * | bug #1181: help MSVC inlining. | Gael Guennebaud | 2016-05-31 |
| | | |||
| * | Fix compilation with old icc | Gael Guennebaud | 2016-05-31 |
|/ | |||
* | Silenced some compilation warnings triggered by nvcc 8.0 | Benoit Steiner | 2016-05-27 |
| | |||
* | Disable the use of MMX instructions since the code is broken on many platforms | Benoit Steiner | 2016-05-27 |
| | |||
* | Fix compilation with old ICC version (use C99 types instead of C++11 ones) | Gael Guennebaud | 2016-05-27 |
| | |||
* | Deleted extra namespace | Benoit Steiner | 2016-05-26 |
| | |||
* | Disable usage of MMX with msvc. | Gael Guennebaud | 2016-05-26 |
| | |||
* | linspaced's divisor for integer is better stored as the underlying scalar type. | Gael Guennebaud | 2016-05-26 |
| | |||
* | Fix a pointer to integer conversion warning | Gael Guennebaud | 2016-05-26 |
| |