Commit Graph

161 Commits

Author SHA1 Message Date
Benoit Steiner
c61170e87d fpclassify isn't portable enough. In particular, the return values of the function are not available on all the platforms Eigen supportes: remove it from Eigen. 2016-04-27 14:22:20 -07:00
Benoit Steiner
6744d776ba Added support for fpclassify in Eigen::Numext 2016-04-27 12:10:25 -07:00
Benoit Steiner
10b69810d1 Improved support for trigonometric functions on GPU 2016-04-13 16:00:51 -07:00
Benoit Steiner
bf3f6688f0 Added support for computing cos, sin, tan, and tanh on GPU. 2016-04-13 11:55:08 -07:00
Benoit Steiner
5da90fc8dd Use numext::abs instead of std::abs in scalar_fuzzy_default_impl to make it usable inside GPU kernels. 2016-04-08 19:40:48 -07:00
Benoit Steiner
01bd577288 Fixed the implementation of Eigen::numext::isfinite, Eigen::numext::isnan, andEigen::numext::isinf on CUDA devices 2016-04-08 16:40:10 -07:00
Benoit Steiner
89a3dc35a3 Fixed isfinite_impl: NumTraits<T>::highest() and NumTraits<T>::lowest() are finite numbers. 2016-04-08 15:56:16 -07:00
Benoit Steiner
b89d3f78b2 Updated the isnan, isinf and isfinite functions to make compatible with cuda devices. 2016-04-07 10:08:49 -07:00
Benoit Steiner
1108b4f218 Fixed the signature of numext::abs to make it compatible with complex numbers 2016-04-04 11:09:25 -07:00
Benoit Steiner
1841d6d4c3 Added missing cuda template specializations for numext::ceil 2016-03-29 13:29:34 -07:00
Benoit Steiner
c38295f0a0 Added support for fmod 2016-03-28 15:53:02 -07:00
Eugene Brevdo
1f69a1b65f Change the header guard around certain numext functions to be CUDA specific. 2016-03-16 12:44:35 -07:00
Eugene Brevdo
836e92a051 Update MathFunctions/SpecialFunctions with intelligent header guards. 2016-03-09 09:04:45 -08:00
Eugene Brevdo
14f0fde51f Add certain functions to numext (log, exp, tan) because CUDA doesn't support std::
Use these in SpecialFunctions.
2016-03-08 17:17:44 -08:00
Benoit Steiner
3628f7655d Made it possible to run the scalar_binary_pow_op functor on GPU 2016-02-11 15:05:03 -08:00
Gael Guennebaud
b4d87fff4a Fix MSVC warning. 2016-01-28 12:12:30 +01:00
Gael Guennebaud
9c8f7dfe94 bug #1156: fix several function declarations whose arguments were passed by value instead of being passed by reference 2016-01-27 18:34:42 +01:00
Gael Guennebaud
8dca9f97e3 Add numext::sqrt function to enable custom optimized implementation.
This changeset add two specializations for float/double on SSE. Those
are mostly usefull with GCC for which std::sqrt add an extra and costly
check on the result of _mm_sqrt_*. Clang does not add this burden.

In this changeset, only DenseBase::norm() makes use of it.
2016-01-21 20:18:51 +01:00
Gael Guennebaud
8b0d1eb0f7 Fix numerous doxygen shortcomings, and workaround some clang -Wdocumentation warnings 2016-01-01 21:45:06 +01:00
Gael Guennebaud
35c17a3fc8 Use overload instead of template full specialization to please old MSVC 2015-11-22 22:09:57 +01:00
Gael Guennebaud
4fc36079e7 Fix overload instantiation for clang 2015-11-20 15:29:03 +01:00
Gael Guennebaud
e1b27bcb0b Workaround MSVC missing overloads of std::fpclassify for integral types 2015-11-20 13:55:34 +01:00
Gael Guennebaud
29a94c8055 compilation issue 2015-11-02 16:11:59 +01:00
Gael Guennebaud
b32948c642 bug #1102: fix multiple definition linking issue 2015-10-30 22:25:59 +01:00
Gael Guennebaud
c688cc28d6 fix copy/paste typo 2015-10-28 20:20:05 +01:00
Gael Guennebaud
28ddb5158d Enable std::isfinite/nan/inf on MSVC 2013 and newer and clang. Fix isinf for gcc4.4 and older msvc with fast-math. 2015-10-28 16:27:20 +01:00
Gael Guennebaud
e3031d7bfa bug #1008: improve handling of fast-math mode for older gcc versions. 2015-10-27 16:43:23 +01:00
Gael Guennebaud
2475a1de48 bug #1008: stabilize isfinite/isinf/isnan/hasNaN/allFinite functions for fast-math mode. 2015-10-27 15:39:50 +01:00
Gael Guennebaud
deb261f64b Make abs2 compatible with custom complex types 2015-10-02 10:33:25 +02:00
Benoit Steiner
d46bacb6bb Call numext::mini instead of std::min in several places. 2015-09-28 10:40:41 -07:00
Benoit Steiner
2ed1495eec nvcc doesn't support std::min or std::max on GPU. Use our own custom implementation instead 2015-08-27 16:59:55 -07:00
Christoph Hertzberg
61e0977e10 Protect all calls to isnan, isinf and isfinite with parentheses. 2015-08-14 17:32:34 +02:00
Gael Guennebaud
c11971de37 Fix compilation of isnan(complex) 2015-07-20 12:56:01 +02:00
Gael Guennebaud
f5aa640862 Clean some previous changes and more cuda fixes 2015-07-15 10:57:55 +02:00
Nicolas Mellado
20b96025fd Replace double constants by Scalar constants 2015-07-11 20:02:30 +02:00
Nicolas Mellado
5359e5cdb2 Protect against compilation errors with nvcc and numext/complex.
Disable functions explicitely involving std::complex when compiling with nvcc.
Improve code compatilibity using the new macro EIGEN_USING_NUMEXT_MATH (same spirit than EIGEN_USING_STD_MATH but for numext functions)
2015-07-06 20:55:01 +02:00
Emilie Guy
ea7113dd0c typo correction in mathFunction 2015-07-06 14:31:08 +02:00
Benoit Steiner
44eedd8915 Marked the cast functions as EIGEN_DEVICE_FUNC to ensure that we can run casting on GPUs 2015-06-30 15:48:55 -07:00
Gael Guennebaud
84d103bee8 Enable C++11 math function in a more conservative manner. 2015-06-11 21:45:02 +02:00
Gael Guennebaud
d93ba137f2 Introduce EIGEN_PI, get rid of M_PI and acos(-1.0) 2015-06-10 17:12:10 +02:00
Gael Guennebaud
9756c7fb4d Make more use of EIGEN_HAS_C99_MATH 2015-06-10 16:26:55 +02:00
Gael Guennebaud
93a62265dc fix isinf(complex(inf,NaN)) to return false. 2015-06-10 16:19:10 +02:00
Gael Guennebaud
b0d5aaafcc Rename free functions isFinite, isInf, isNaN to be compatible with c++11 2015-06-10 16:17:09 +02:00
Deanna Hood
e5048b5501 Use std::isfinite when available 2015-04-20 14:59:57 -04:00
Deanna Hood
249c48ba00 Incorporate C++11 check into EIGEN_HAS_C99_MATH macro 2015-04-20 14:57:04 -04:00
Deanna Hood
0250f4a9f2 Merged default into unary-array-cwise-functors 2015-04-20 14:01:35 -04:00
Deanna Hood
0339502a4f Only use std::isnan and std::isinf if they are available 2015-04-20 13:14:06 -04:00
Deanna Hood
085aa8e601 Don't use M_PI since it's only guaranteed to be defined in Eigen/Geometry 2015-04-08 13:59:18 -05:00
Gael Guennebaud
3d59ae0203 Fix hypot(0,0). 2015-03-27 09:59:24 +01:00
Deanna Hood
83e5b7656b Use M_PI instead of acos(-1) for pi 2015-03-22 06:04:31 +10:00