Commit Graph

29 Commits

Author SHA1 Message Date
Benoit Steiner
7a1316fcc5 Fixed compilation error with xcode. 2015-11-12 11:05:54 -08:00
Benoit Steiner
737d237722 Made it possible to run some of the CXXMeta functions on a CUDA device. 2015-11-12 09:02:59 -08:00
Benoit Steiner
1e072424e8 Moved the array code into it's own file. 2015-11-12 08:57:04 -08:00
Benoit Steiner
9fa10fe52d Don't use std::array when compiling with nvcc since nvidia doesn't support the use of STL containers on GPU. 2015-11-11 15:38:30 -08:00
Benoit Steiner
0d7a23d34e Extended the reduction code so that reducing an empty set returns the neural element for the operation 2015-10-29 17:29:49 -07:00
Benoit Steiner
9dc236bc83 Fixed compilation warning 2015-10-26 12:41:48 -07:00
Benoit Steiner
56983f6d43 Fixed compilation warning 2015-10-23 12:03:42 -07:00
Benoit Steiner
57857775b4 Added support for arrays of size 0 2015-10-23 10:20:51 -07:00
Benoit Steiner
0485a2468d use Eigen smart_copy instead of std::copy 2015-07-06 17:01:51 -07:00
Benoit Steiner
28b36632ec Turned Eigen::array::size into a function to make the code compatible with std::array 2015-06-30 13:23:05 -07:00
Benoit Steiner
74e558cfa8 Pulled latest updates from trunk 2015-04-01 23:24:11 -07:00
Benoit Steiner
b8b7807269 Fixed some compilation warning triggered by the cxx11 emulation code 2015-04-01 21:48:18 -07:00
Benoit Steiner
71950f02e5 Deleted unnecessary semicolons 2015-03-30 14:49:10 -07:00
Abhijit Kundu
4084dce038 Added CMake support for Tensor module. CMake now installs CXX11 Tensor module like the rest of the unsupported modules 2015-02-26 16:50:09 -05:00
Benoit Steiner
3ba6647398 Fixed the cxx11_meta test 2015-02-06 06:00:59 -08:00
Benoit Steiner
703c526355 Misc improvements 2015-01-14 15:31:52 -08:00
Benoit Steiner
99d75235a9 Misc improvements and cleanups 2014-10-13 17:02:09 -07:00
Benoit Steiner
1269392822 Created the IndexPair type to store pair of tensor indices. CUDA doesn't support std::pair so we can't use them when targeting GPUs.
Improved the performance on tensor contractions
2014-10-03 10:16:59 -07:00
Benoit Steiner
916ef48846 Added ability to get the nth element from an abstract array type. 2014-08-13 08:44:47 -07:00
Benoit Steiner
4304c73542 Pulled latest updates from the Eigen main trunk. 2014-06-10 10:23:32 -07:00
Benoit Steiner
a77458a8ff Fixes compilation errors triggered when compiling the tensor contraction code with cxx11 enabled. 2014-06-09 10:06:57 -07:00
Christian Seiler
cee62018fc unsupported/CXX11/Core: allow gen_numeric_list to have a starting point
Add a template parameter to gen_numeric_list that acts as a starting
point for the list, i.e. gen_numeric_list<int, 5, 4> will generate a
numeric_list<int, 4, 5, 6, 7, 8>.
2014-06-04 19:54:22 +02:00
Christian Seiler
58cfac9a12 unsupported/ C++11 workarounds: don't use hack for libc++ if not required
libc++ from 3.4 onwards supports constexpr std::get, but only if
compiled with -std=c++1y. Change the detection so that libc++'s
internals are only used if either -std=c++1y is not specified or the
library is too old, making the whole hack a bit more future-proof.
2014-06-04 18:47:42 +02:00
Benoit Steiner
6fa6cdd2b9 Added support for tensor contractions
Updated expression evaluation mechanism to also compute the size of the tensor result
Misc fixes and improvements.
2014-06-04 09:21:48 -07:00
Benoit Steiner
0320f7e3a7 Added support for fixed sized tensors.
Improved support for tensor expressions.
2014-05-06 11:18:37 -07:00
Benoit Steiner
c0f2cb016e Extended support for Tensors:
* Added ability to map a region of the memory to a tensor
  * Added basic support for unary and binary coefficient wise expressions, such as addition or square root
  * Provided an emulation layer to make it possible to compile the code with compilers (such as nvcc) that don't support cxx11.
2014-04-28 10:32:27 -07:00
Benoit Steiner
1afd50e0f3 Fixed a typo in CXX11Meta.h 2014-04-14 14:26:30 -07:00
Christian Seiler
f6bac196d5 C++11/Tensor: Fix copyright headers 2013-11-16 00:03:23 +01:00
Christian Seiler
5e28c41549 C++11: add template metaprogramming helpers
Create a new directory CXX11 under unsupported/Eigen that contains code
that requires C++11. In that directory, add a few generic templates
useful for any module relying on C++11. These templates may be included
with #include <[unsupported/]Eigen/CXX11/Core>. At the moment, this
will only provide templates in the Eigen::internal namespace.
2013-11-14 22:27:06 +01:00