Commit Graph

3061 Commits

Author SHA1 Message Date
Benoit Steiner
1f1e0b9e30 Silenced compilation warning 2016-06-05 12:59:11 -07:00
Benoit Steiner
5b95b4daf9 Moved static assertions into the class constructor to make the code more portable 2016-06-05 12:57:48 -07:00
Eugene Brevdo
39baff850c Add TernaryFunctors and the betainc SpecialFunction.
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.
2016-06-02 17:04:19 -07:00
Gael Guennebaud
8d97ba6b22 bug #725: make move ctor/assignment noexcept. 2016-06-03 14:28:25 +02:00
Gael Guennebaud
f2c2465acc Fix function dependencies 2016-06-03 07:44:18 +02:00
Gael Guennebaud
53feb73b45 Remove dead code. 2016-06-02 22:19:55 +02:00
Gael Guennebaud
2c00ac0b53 Implement generic scalar*expr and expr*scalar operator based on scalar_product_traits.
This is especially useful for custom scalar types, e.g., to enable float*expr<multi_prec> without conversion.
2016-06-02 22:16:37 +02:00
Gael Guennebaud
8b6f53222b bug #1193: fix lpNorm<Infinity> for empty input. 2016-06-02 15:29:59 +02:00
Gael Guennebaud
360e311b66 Doc: add some cross references (also fix empty macro argument warning) 2016-06-01 23:34:09 +02:00
Gael Guennebaud
89099b0cf7 Expose log1p to Array. 2016-06-01 17:00:08 +02:00
Gael Guennebaud
afd33539dd Doc: makes the global unary math functions visible to doxygen (and docuement them) 2016-06-01 15:27:13 +02:00
Gael Guennebaud
da4970ead2 Doc: disable inlining of inherited members, workaround Doxygen's limited C++ parsing abilities, and improve doc of MapBase. 2016-06-01 09:38:49 +02:00
Benoit Steiner
099b354ca7 Pulled latest updates from trunk 2016-05-31 10:34:16 -07:00
Benoit Steiner
b6e306f189 Improved support for CUDA 8.0 2016-05-31 09:47:59 -07:00
Gael Guennebaud
1d3b253329 bug #1181: help MSVC inlining. 2016-05-31 17:23:42 +02:00
Gael Guennebaud
d79eee05ef Fix compilation with old icc 2016-05-31 17:13:51 +02:00
Benoit Steiner
c4bd3b1f21 Silenced some compilation warnings triggered by nvcc 8.0 2016-05-27 14:40:49 -07:00
Benoit Steiner
3a5d6a3c38 Disable the use of MMX instructions since the code is broken on many platforms 2016-05-27 09:13:26 -07:00
Gael Guennebaud
e0cb73b46b Fix compilation with old ICC version (use C99 types instead of C++11 ones) 2016-05-27 10:28:09 +02:00
Benoit Steiner
094f4a56c8 Deleted extra namespace 2016-05-26 14:49:51 -07:00
Gael Guennebaud
7ff5fadcc0 Disable usage of MMX with msvc. 2016-05-26 17:58:46 +02:00
Gael Guennebaud
c7f54b11ec linspaced's divisor for integer is better stored as the underlying scalar type. 2016-05-26 17:36:54 +02:00
Gael Guennebaud
2f56d91063 Fix a pointer to integer conversion warning 2016-05-26 17:31:45 +02:00
Gael Guennebaud
2a44a70142 Handle some Index to int conversions in BLAS/LAPACK support. 2016-05-26 17:29:04 +02:00
Gael Guennebaud
f253e19296 Disable some long to float conversion warnings 2016-05-26 17:27:14 +02:00
Gael Guennebaud
37197b602b Remove debuging code. 2016-05-26 11:53:10 +02:00
Gael Guennebaud
27f0434233 Introduce internal's UIntPtr and IntPtr types for pointer to integer conversions.
This fixes "conversion from pointer to same-sized integral type" warnings by ICC.
Ideally, we would use the std::[u]intptr_t types all the time, but since they are C99/C++11 only,
let's be safe.
2016-05-26 10:52:12 +02:00
Gael Guennebaud
40e4637d79 Turn off ICC's conversion warning in is_convertible implementation 2016-05-26 10:48:43 +02:00
Gael Guennebaud
cc1ab64f29 Add missing inclusion of mmintrin.h 2016-05-26 09:51:50 +02:00
Benoit Steiner
3585ff585e Silenced a compilation warning 2016-05-25 22:09:19 -07:00
Benoit Steiner
efeb89dcdb Specify the rounding mode in the correct location 2016-05-25 17:53:24 -07:00
Benoit Steiner
0322c66a3f Explicitly specify the rounding mode when converting floats to fp16 2016-05-25 15:56:15 -07:00
Benoit Steiner
ed783872ab Disable the use of MMX instructions on x86_64 since too many compilers only support them in 32bit mode 2016-05-25 08:27:26 -07:00
Benoit Steiner
bcfff64f9e Use numext:: instead of std:: functions. 2016-05-25 08:08:21 -07:00
Gael Guennebaud
bbf9109e25 Fix compilation with ICC. 2016-05-25 10:00:55 +02:00
Gael Guennebaud
2a1bff67fd Fix static/inline order. 2016-05-25 10:00:11 +02:00
Benoit Steiner
d041a528da Cleaned up the fp16 code a little more 2016-05-24 22:43:26 -07:00
Benoit Steiner
cb26784d07 Pulled latest updates from trunk 2016-05-24 18:51:39 -07:00
Benoit Steiner
ff4a289572 Cleaned up the fp16 code 2016-05-24 18:50:09 -07:00
Gael Guennebaud
e68e165a23 bug #256: enable vectorization with unaligned loads/stores.
This concerns all architectures and all sizes.
This new behavior can be disabled by defining EIGEN_UNALIGNED_VECTORIZE=0
2016-05-24 21:54:03 +02:00
Gael Guennebaud
78390e4189 Block<> should not disable vectorization based on inner-size, this is the responsibilty of the assignment logic. 2016-05-24 17:14:01 +02:00
Gael Guennebaud
64bb7576eb Clean propagation of Dest/Src alignments. 2016-05-24 17:12:12 +02:00
Benoit Jacob
40a16282c7 Remove now-unused protate PacketMath func 2016-05-24 11:01:18 -04:00
Benoit Jacob
6136f4fdd4 Remove the rotating kernel. It was only useful on some ARM CPUs (Qualcomm Krait) that are not as ubiquitous today as they were when I introduced it. 2016-05-24 10:00:32 -04:00
Benoit Steiner
e617711306 Don't attempt to use MMX instructions with visualstudio since they're only partially supported. 2016-05-24 06:43:58 -07:00
Benoit Steiner
334e76537f Worked around missing clang intrinsic 2016-05-24 00:29:28 -07:00
Benoit Steiner
b517ab349b Use the generic ploadquad intrinsics since it does the job 2016-05-24 00:11:17 -07:00
Benoit Steiner
646872cb3b Worked around missing clang intrinsics 2016-05-24 00:07:08 -07:00
Benoit Steiner
3dfc391a61 Added missing EIGEN_DEVICE_FUNC qualifier 2016-05-23 20:56:59 -07:00
Benoit Steiner
33a94f5dc7 Use the Index type instead of integers to specify the strides in pgather/pscatter 2016-05-23 20:37:30 -07:00