aboutsummaryrefslogtreecommitdiffhomepage
path: root/Eigen/src/Core/functors
Commit message (Collapse)AuthorAge
...
* Adding support for using Eigen in HIP kernels.Gravatar Deven Desai2018-06-06
| | | | | | | | | This commit enables the use of Eigen on HIP kernels / AMD GPUs. Support has been added along the same lines as what already exists for using Eigen in CUDA kernels / NVidia GPUs. Application code needs to explicitly define EIGEN_USE_HIP when using Eigen in HIP kernels. This is because some of the CUDA headers get picked up by default during Eigen compile (irrespective of whether or not the underlying compiler is CUDACC/NVCC, for e.g. Eigen/src/Core/arch/CUDA/Half.h). In order to maintain this behavior, the EIGEN_USE_HIP macro is used to switch to using the HIP version of those header files (see Eigen/Core and unsupported/Eigen/CXX11/Tensor) Use the "-DEIGEN_TEST_HIP" cmake option to enable the HIP specific unit tests.
* Factories code between numext::hypot and scalar_hyot_op functor.Gravatar Gael Guennebaud2018-04-04
|
* bug #1532: disable stl::*_negate in C++17 (they are deprecated)Gravatar Gael Guennebaud2018-04-03
|
* Add a EIGEN_NO_CUDA option, and introduce EIGEN_CUDACC and EIGEN_CUDA_ARCH ↵Gravatar Gael Guennebaud2017-07-17
| | | | aliases
* bug #1417: make LinSpace compatible with std::complexGravatar Gael Guennebaud2017-06-06
|
* bug #1383: fix regression in LinSpaced for integers and high<lowGravatar Gael Guennebaud2017-01-25
|
* bug #1383: Fix regression from 3.2 with LinSpaced(n,0,n-1) with n==0.Gravatar Gael Guennebaud2017-01-25
|
* bug #1376: add missing assertion on size mismatch with compound assignment ↵Gravatar Gael Guennebaud2017-01-23
| | | | operators (e.g., mat += mat.col(j))
* MSVC 2015 has all we want about c++11 and MSVC 2017 fails on binder1st/binder2ndGravatar Gael Guennebaud2017-01-06
|
* use numext::absGravatar Angelos Mantzaflaris2016-12-02
| | | | | (grafted from 0a08d4c60b652d1f24b2fa062c818c4b93890c59 )
* 1. Add explicit template to abs2 (resolves deduction for some arithmetic types)Gravatar Angelos Mantzaflaris2016-12-02
| | | | | | 2. Avoid signed-unsigned conversion in comparison (warning in case Scalar is unsigned) (grafted from 4086187e49760d4bde72750dfa20ae9451263417 )
* Added support for expm1 in Eigen.Gravatar Srinivas Vasudevan2016-12-02
|
* bug #1351: fix compilation of random with old compilersGravatar Gael Guennebaud2016-11-30
|
* Added isnan, isfinite and isinf for SYCL device. Plus test for that.Gravatar Luke Iwanski2016-11-18
|
* bug #1004: improve accuracy of LinSpaced for abs(low) >> abs(high).Gravatar Gael Guennebaud2016-11-02
|
* bug #1004: one more rewrite of LinSpaced for floating point numbers to ↵Gravatar Gael Guennebaud2016-10-25
| | | | | | | | guarantee both interpolation and monotonicity. This version simply does low+i*step plus a branch to return high if i==size-1. Vectorization is accomplished with a branch and the help of pinsertlast. Some quick benchmark revealed that the overhead is really marginal, even when filling small vectors.
* bug #1004: remove the inaccurate "sequential" path for LinSpaced, mark ↵Gravatar Gael Guennebaud2016-10-24
| | | | | | respective function as deprecated, and enforce strict interpolation of the higher range using a correction term. Now, even with floating point precision, both the 'low' and 'high' bounds are exactly reproduced at i=0 and i=size-1 respectively.
* bug #698: rewrite LinSpaced for integer scalar types to avoid overflow and ↵Gravatar Gael Guennebaud2016-10-24
| | | | | | | guarantee an even spacing when possible. Otherwise, the "high" bound is implicitly lowered to the largest value allowing for an even distribution. This changeset also disable vectorization for this integer path.
* Adding EIGEN_DEVICE_FUNC in the Geometry module.Gravatar Robert Lukierski2016-10-12
| | | | | Additional CUDA necessary fixes in the Core (mostly usage of EIGEN_USING_STD_MATH).
* bug #1195: move NumTraits::Div<>::Cost to internal::scalar_div_cost (with ↵Gravatar Gael Guennebaud2016-09-08
| | | | some specializations in arch/SSE and arch/AVX)
* Fix shadowing wrt Eigen::IndexGravatar Gael Guennebaud2016-09-05
|
* 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).
* bug #1167: simplify installation of header files using cmake's ↵Gravatar Gael Guennebaud2016-08-29
| | | | install(DIRECTORY ...) command.
* Cleanup cost of tanhGravatar Gael Guennebaud2016-08-23
|
* Factorize the 4 copies of tanh implementations, make numext::tanh consistent ↵Gravatar Gael Guennebaud2016-08-23
| | | | with array::tanh, enable fast tanh in fast-math mode only.
* fix tanh inconsistentGravatar Ziming Dong2016-08-06
|
* bug #1232: refactor special functions as a new SpecialFunctions module, ↵Gravatar Gael Guennebaud2016-07-08
| | | | currently in unsupported/.
* Cleanup unused functors.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)
* 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.
* 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
|
* 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
* 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.
* Expose log1p to Array.Gravatar Gael Guennebaud2016-06-01
|
* linspaced's divisor for integer is better stored as the underlying scalar type.Gravatar Gael Guennebaud2016-05-26
|
* bug #1231: fix compilation regression regarding complex_array/=real_array ↵Gravatar Gael Guennebaud2016-05-18
| | | | and add respective unit tests
* Roll back changes to core. Move include of TensorFunctors.h up to satisfy ↵Gravatar Rasmus Munk Larsen2016-05-17
| | | | dependence in TensorCostModel.h.
* Improvements to parallelFor.Gravatar Rasmus Munk Larsen2016-05-12
| | | | Move some scalar functors from TensorFunctors. to Eigen core.
* Fixed a typo in my previous commitGravatar Benoit Steiner2016-05-11
|
* Enable and fix -Wdouble-conversion warningsGravatar Christoph Hertzberg2016-05-05
|
* Added support for exclusive orGravatar Benoit Steiner2016-04-14
|
* Improved support for trigonometric functions on GPUGravatar Benoit Steiner2016-04-13
|
* Added support for computing cos, sin, tan, and tanh on GPU.Gravatar Benoit Steiner2016-04-13
|
* Don't put a command at the end of an enumerator listGravatar Benoit Steiner2016-04-12
|
* More accurate cost estimates for exp, log, tanh, and sqrt.Gravatar Benoit Steiner2016-04-11
|
* Updated the unary functors to use the numext implementation of typicall ↵Gravatar Benoit Steiner2016-04-07
| | | | functions instead of the one provided in the standard library. The standard library functions aren't supported officially by cuda, so we're better off using the numext implementations.