Benoit Steiner
c92faf9d84
Merged in mehdi_goli/upstr_benoit/HiperbolicOP (pull request PR-13)
...
Adding hyperbolic operations for sycl.
* Adding hyperbolic operations.
* Adding the hyperbolic operations for CPU as well.
2017-07-06 05:05:57 +00:00
Gael Guennebaud
561f777075
Fix a gcc7 warning about bool * bool in abs2 default implementation.
2017-06-27 12:05:17 +02:00
Gael Guennebaud
498aa95a8b
bug #1424 : add numext::abs specialization for unsigned integer types.
2017-06-09 11:53:49 +02:00
Ilya Biryukov
1c03d43a5c
Fixed compilation with cuda-clang
2017-03-06 12:01:12 +01:00
Srinivas Vasudevan
e6c8b5500c
Change comparisons to use Scalar instead of RealScalar.
2016-12-05 14:01:45 -08:00
Srinivas Vasudevan
218764ee1f
Added support for expm1 in Eigen.
2016-12-02 14:13:01 -08:00
Mehdi Goli
79aa2b784e
Adding sycl backend for TensorPadding.h; disbaling __unit128 for sycl in TensorIntDiv.h; disabling cashsize for sycl in tensorDeviceDefault.h; adding sycl backend for StrideSliceOP ; removing sycl compiler warning for creating an array of size 0 in CXX11Meta.h; cleaning up the sycl backend code.
2016-12-01 13:02:27 +00:00
Luke Iwanski
5159675c33
Added isnan, isfinite and isinf for SYCL device. Plus test for that.
2016-11-18 16:01:48 +00:00
Luke Iwanski
c5130dedbe
Specialised basic math functions for SYCL device.
2016-11-17 11:47:13 +00:00
Benoit Steiner
2a69290ddb
Added a specialization of Eigen::numext::real and Eigen::numext::imag for std::complex<T> to be used when compiling a cuda kernel. This is unfortunately necessary to be able to process complex numbers from a CUDA kernel on MacOS.
2016-09-22 15:52:23 -07:00
Benoit Steiner
50e3bbfc90
Calls x.imag() instead of imag(x) when x is a complex number since the former
...
is a constexpr while the later isn't. This fixes compilation errors triggered by nvcc on Mac.
2016-09-22 13:17:25 -07:00
Benoit Steiner
c0d56a543e
Added several missing EIGEN_DEVICE_FUNC qualifiers
2016-09-14 14:06:21 -07:00
Benoit Steiner
5f50f12d2c
Added the ability to compute the absolute value of a complex number on GPU, as well as a test to catch the problem.
2016-09-12 13:46:13 -07:00
Gael Guennebaud
68d1897e8a
Make sure that our log1p implementation is called as a last resort only.
2016-08-26 15:30:55 +02:00
Gael Guennebaud
fe60856fed
Add overload of numext::log1p for float/double in CUDA
2016-08-26 15:28:59 +02:00
Gael Guennebaud
a4c266f827
Factorize the 4 copies of tanh implementations, make numext::tanh consistent with array::tanh, enable fast tanh in fast-math mode only.
2016-08-23 14:23:08 +02:00
Gael Guennebaud
82147cefff
Fix possible overflow and biais in integer random generator
2016-08-23 13:25:31 +02:00
Gael Guennebaud
d476cadbb8
bug #1247 : fix regression in compilation of pow(integer,integer), and add respective unit tests.
2016-06-25 10:12:06 +02:00
Gael Guennebaud
7c6561485a
merge PR 194
2016-06-23 15:29:57 +02:00
Benoit Steiner
b055590e91
Made log1p_impl usable inside a GPU kernel
2016-06-16 11:37:40 -07:00
Gael Guennebaud
396d9cfb6e
Generalize expr.pow(scalar), pow(expr,scalar) and pow(scalar,expr).
...
Internal: scalar_pow_op (unary) is removed, and scalar_binary_pow_op is renamed scalar_pow_op.
2016-06-14 14:10:07 +02:00
Gael Guennebaud
5fdd703629
Enable mixing types in numext::pow
2016-06-10 15:58:04 +02:00
Benoit Steiner
ff4a289572
Cleaned up the fp16 code
2016-05-24 18:50:09 -07:00
Benoit Steiner
a5a3ba2b80
Avoid unnecessary float to double conversions
2016-05-23 17:16:09 -07:00
Christoph Hertzberg
718521d5cf
Silenced several double-promotion warnings
2016-05-22 18:17:04 +02:00
Christoph Hertzberg
dacb469bc9
Enable and fix -Wdouble-conversion warnings
2016-05-05 13:35:45 +02:00
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