Commit Graph

1409 Commits

Author SHA1 Message Date
Benoit Steiner
f8e7b9590d Fixed compilation error triggered by gcc 4.7 2015-10-26 10:47:37 -07:00
Gael Guennebaud
a5324a131f bug #1092: fix iterative solver ctors for expressions as input 2015-10-26 16:16:24 +01:00
Gael Guennebaud
af2e25d482 Merged in infinitei/eigen (pull request PR-140)
bug #1097 Added ArpackSupport to cmake install target
2015-10-26 15:31:39 +01:00
Abhijit Kundu
0ed41bdefa ArpackSupport was missing here also. 2015-10-16 18:21:02 -07:00
Abhijit Kundu
1127ca8586 Added ArpackSupport to cmake install target 2015-10-16 16:41:33 -07:00
Benoit Steiner
de1e9f29f4 Updated the custom indexing code: we can now use any container that provides the [] operator to index a tensor. Added unit tests to validate the use of std::map and a few more types as valid custom index containers 2015-10-15 14:58:49 -07:00
Benoit Steiner
6585efc553 Tightened the definition of isOfNormalIndex to take into account integer types in addition to arrays of indices
Only compile the custom index code  when EIGEN_HAS_SFINAE is defined. For the time beeing, EIGEN_HAS_SFINAE is a synonym for EIGEN_HAS_VARIADIC_TEMPLATES, but this might evolve in the future.
Moved some code around.
2015-10-14 09:31:37 -07:00
Gabriel Nützi
fc7478c04d name changes 2
user: Gabriel Nützi <gnuetzi@gmx.ch>
branch 'default'
changed unsupported/Eigen/CXX11/src/Tensor/Tensor.h
changed unsupported/Eigen/CXX11/src/Tensor/TensorMeta.h
2015-10-09 19:10:08 +02:00
Gabriel Nützi
7b34834f64 name changes
user: Gabriel Nützi <gnuetzi@gmx.ch>
branch 'default'
changed unsupported/Eigen/CXX11/src/Tensor/Tensor.h
2015-10-09 19:08:14 +02:00
Gabriel Nützi
6edae2d30d added CustomIndex capability only to Tensor and not yet to TensorBase.
using Sfinae and is_base_of to select correct template which converts to array<Index,NumIndices>


 user: Gabriel Nützi <gnuetzi@gmx.ch>
 branch 'default'
 added unsupported/Eigen/CXX11/src/Tensor/TensorMetaMacros.h
 added unsupported/test/cxx11_tensor_customIndex.cpp
 changed unsupported/Eigen/CXX11/Tensor
 changed unsupported/Eigen/CXX11/src/Tensor/Tensor.h
 changed unsupported/Eigen/CXX11/src/Tensor/TensorMeta.h
 changed unsupported/test/CMakeLists.txt
2015-10-09 18:52:48 +02:00
Gael Guennebaud
ac22b66f1c Fix macro issues 2015-10-13 10:18:09 +02:00
Gael Guennebaud
3e32f6b554 update mpreal.h 2015-10-13 09:58:54 +02:00
Gael Guennebaud
186ec1437c Cleanup EIGEN_SPARSE_PUBLIC_INTERFACE, it is now a simple alias to EIGEN_GENERIC_PUBLIC_INTERFACE 2015-10-08 22:06:49 +02:00
Gael Guennebaud
1b148d9e2e Move IncompleteCholesky to official modules 2015-10-08 11:32:46 +02:00
Gael Guennebaud
632e7705b1 Improve doc of IncompleteCholesky 2015-10-08 10:54:36 +02:00
Gael Guennebaud
131db3c552 Fix return by value versus ref typo in IncompleteCholesky 2015-10-07 16:37:46 +02:00
Gael Guennebaud
752a0e5339 bug #1076: fix scaling in IncompleteCholesky, improve doc, add read-only access to the different factors, remove debugging code. 2015-10-06 13:25:45 +02:00
Gael Guennebaud
ddb5650530 bug #1070: propagate last three Matrix template arguments for NumTraits<AutoDiffScalar<>>::Real 2015-09-28 15:07:03 +02:00
Benoit Steiner
13aee4463e Cleaned up a test 2015-09-18 09:42:08 -07:00
Benoit Steiner
58a6453d48 Fixed compilation warning 2015-09-17 10:18:49 -07:00
Benoit Steiner
31afdcb4c2 Fix return type for TensorEvaluator<TensorSlicingOp>::data 2015-09-17 09:40:21 -07:00
Benoit Steiner
84e0c27b61 Fixed a compilation warning 2015-09-08 17:05:35 -07:00
Benoit Steiner
05f2f94f2b Fixed a compilation warning 2015-09-08 17:04:03 -07:00
Gael Guennebaud
3942db9d7c Use inline versus static free functions. 2015-09-03 13:42:54 +02: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
c40c2ceb27 Reordered the code of fft constructor to prevent compilation warnings 2015-10-23 09:38:19 -07:00
Benoit Steiner
a586fdaa91 Reworked the tensor contraction mapper code to make it compile on Android 2015-10-23 09:33:41 -07:00
Benoit Steiner
29c3b7513e Pulled latest updates from trunk 2015-10-23 09:16:14 -07:00
Benoit Steiner
9ea39ce13c Refined the #ifdef __CUDACC__ guard to ensure that when trying to compile gpu code with a non cuda compiler results in a linking error instead of bogus code. 2015-10-23 09:15:34 -07:00
Gael Guennebaud
c244081490 disable usage of INTMAX_T 2015-10-23 14:48:54 +02:00
Gael Guennebaud
0905ed5390 remove useless cstdint header 2015-10-23 14:41:25 +02:00
Benoit Steiner
ac99b49249 Added missing glue logic 2015-10-22 16:54:21 -07:00
Benoit Steiner
2dd9446613 Added mapping between a specific device and the corresponding packet type 2015-10-22 16:53:36 -07:00
Benoit Steiner
2495e2479f Added tests for the fft code 2015-10-22 16:52:55 -07:00
Benoit Steiner
a147c62998 Added support for fourier transforms (code courtesy of thucjw@gmail.com) 2015-10-22 16:51:30 -07:00
Benoit Steiner
825146c8fd Fixed incorrect expected value 2015-10-22 11:56:00 -07:00
Benoit Steiner
4cf7da63de Added a constructor to simplify the construction of tensormap from tensor 2015-10-22 11:48:02 -07:00
Benoit Steiner
b178cc3479 Added some syntactic sugar to make it simpler to compare a tensor to a scalar. 2015-10-21 11:28:28 -07:00
Benoit Steiner
0af63493fd Disable SFINAE for versions of gcc older than 4.8 2015-10-20 11:53:30 -07:00
Benoit Steiner
73b8e719ae Removed bogus assertion 2015-10-20 11:42:34 -07:00
Benoit Steiner
eaf4b98180 Added support for boolean reductions (ie 'and' & 'or' reductions) 2015-10-20 11:41:22 -07:00
Benoit Steiner
f5c1587e4e Fixed a bug in the tensor conversion op 2015-10-20 11:37:44 -07:00
Christoph Hertzberg
5ad7981f73 Use full packet size for Dynamic-sized objects (otherwise, the unalignedcount unit test fails with AVX enabled) 2015-09-02 22:51:43 +02:00
Gael Guennebaud
51455824ea Fix AlignedVector3 wrt previous change 2015-09-02 21:51:58 +02:00
Benoit Steiner
f41831e445 Added support for argmax/argmin 2015-08-31 08:18:53 -07:00
Benoit Steiner
2ab603316a Use numext::mini/numext::maxi instead of std::min/std::max in the tensor code 2015-08-28 08:14:15 -07:00
Christoph Hertzberg
1bdd06a199 Fix some trivial warnings 2015-08-19 21:38:18 +02:00
Christoph Hertzberg
0721690dbb Use standard include syntax in Tensor module (<> for include-path and "" for relative path) 2015-08-18 14:34:00 +02:00
Gael Guennebaud
dc2c103b3b merge 2015-08-16 14:22:02 +02:00
Christoph Hertzberg
d6a4805fdf Protect further isnan/isfinite/isinf calls 2015-08-16 14:00:02 +02:00
Gael Guennebaud
0d5e673baa Fix Tensor module wrt nullary functor recent change 2015-08-09 21:20:24 +02:00
Gael Guennebaud
7e0d7a76b8 Remove dense nested loops in IncompleteCholesky 2015-08-04 18:01:38 +02:00
Gael Guennebaud
e31fc50280 Numerous fixes for IncompleteCholesky. Still have to make it fully exploit the sparse structure of the L factor, and improve robustness to illconditionned problems. 2015-08-04 16:16:02 +02:00
Gael Guennebaud
9a4713e505 Add a unit test for IncompleteCholesky 2015-08-04 16:14:06 +02:00
Benoit Steiner
cbce0e3b12 Fixed compilation warning 2015-08-03 21:52:29 -07:00
Benoit Steiner
a5dc49e7e8 Fixed 2 compilation warnings generated by llvm 2015-07-29 15:06:08 -07:00
Benoit Steiner
e1d28b7ea7 Added a test for shuffling 2015-07-29 15:01:21 -07:00
Benoit Steiner
0570594f2c Fixed a few compilation warnings triggered by clang 2015-07-29 11:48:38 -07:00
Benoit Steiner
099597406f Simplified and generalized the DividerTraits code 2015-07-29 10:02:42 -07:00
Gael Guennebaud
6db3a557f4 Add missing specialization of struct DividerTraits<long> 2015-07-29 11:38:53 +02:00
Gael Guennebaud
aec4814370 Many files were missing in previous changeset. 2015-07-29 11:11:23 +02:00
Benoit Steiner
b9db19aec4 Pulled latest updates from trunk. 2015-07-27 09:39:57 -07:00
Benoit Steiner
f84417d97b Removed an incorrect assertion. 2015-07-27 09:25:22 -07:00
Godeffroy Valet
2195822df6 Allowed tensor contraction operation with an empty array of dimension pairs, which performs a tensor product. 2015-07-25 11:58:36 +02:00
Benoit Steiner
f6282e451a Fixed a typo in an assertion. 2015-07-24 17:35:47 -07:00
Benoit Steiner
4200bdec24 Extended the range of value inputs for TensorIntDiv to support tensors with more than 4 billion elements. 2015-07-22 17:02:30 -07:00
Benoit Steiner
0dda72316f The eigen_check macro doesn't exist anymore: use assert instead 2015-07-21 17:34:15 -07:00
Gael Guennebaud
d3e5db9a80 add regression unit test for previous changeset 2015-07-21 22:23:17 +02:00
Valentin Roussellet
5e635f9ca1 AlignedVector3 accepts implicit conversions from more operators. 2015-07-21 16:42:52 +00:00
Benoit Steiner
6799c26cd6 Fixed a typo in a test and a compilation warning 2015-07-17 16:50:47 -07:00
Benoit Steiner
7a39439904 Rewrote Eigen::dimensions_match to prevent a static assertion when the rank of the tensors is different. 2015-07-17 16:46:30 -07:00
Benoit Steiner
e94f9eb637 Fixed a const correctness issue in TensorLayoutSwap 2015-07-17 15:44:26 -07:00
Benoit Steiner
943035e5bd Pulled latest updates from trunk 2015-07-17 09:42:45 -07:00
Benoit Steiner
06a22ca5bd Added support for sigmoid function to the tensor module 2015-07-17 09:29:00 -07:00
Nicolas Mellado
3275eddc24 Add const getters for LM parameters 2015-07-17 09:11:49 +02:00
Benoit Steiner
a5ec25f11c Use the new EIGEN_HAS_INDEX_LIST define to enable the cxx11_tensor_index_list tests 2015-07-16 13:16:08 -07:00
Benoit Steiner
7a243959b4 Define EIGEN_HAS_INDEX_LIST whenever the class is defined. This makes it easier to support compilers that are cxx11 compliant and compilers that aren't. 2015-07-16 13:14:18 -07:00
Benoit Steiner
b756f6af5e Added missing APIs to the Eigen::Sizes class 2015-07-16 12:14:18 -07:00
Benoit Steiner
05787f8367 Added support for tensor inflation. 2015-07-16 09:04:05 -07:00
Benoit Steiner
b900fe47d5 Avoid relying on a default value for the Vectorizable template parameter of the EvalRange functor 2015-07-15 17:17:04 -07:00
Benoit Steiner
4b3d697e12 Fixed compilation error in a cuda test 2015-07-15 17:14:24 -07:00
Benoit Steiner
8315e025e1 Updated the cuda tests to use the new GpuDevice constructor 2015-07-15 12:39:26 -07:00
Benoit Steiner
e892524efe Added support for multi gpu configuration to the GpuDevice class 2015-07-15 12:38:34 -07:00
Benoit Steiner
b80036abec Enabled the construction of a fixed sized tensor directly from an expression. 2015-07-13 11:16:37 -07:00
Benoit Steiner
3912ca0d53 Fixed a bug in the integer division code that caused some large numerators to be incorrectly handled 2015-07-13 11:14:59 -07:00
Gael Guennebaud
b8df8815f4 Fix operator<<(ostream,AlignedVector3) 2015-07-13 13:55:59 +02:00
Benoit Steiner
e6297741c9 Added support for generation of random complex numbers on CUDA devices 2015-07-07 17:40:49 -07:00
Benoit Steiner
6de6fa9483 Use NumTraits<T>::RequireInitialization instead of internal::is_arithmetic<T>::value to check whether it's possible to bypass the type constructor in the tensor code. 2015-07-07 15:23:56 -07:00
Benoit Steiner
a93af65938 Improved and cleaned up the 2d patch extraction code 2015-07-07 08:52:14 -07:00
Benoit Steiner
3f2101b03b Use numext::swap instead of std::swap 2015-07-06 17:02:29 -07:00
Benoit Steiner
0485a2468d use Eigen smart_copy instead of std::copy 2015-07-06 17:01:51 -07:00
Benoit Steiner
ebdacfc5ea Fixed a compilation warning generated by clang 2015-07-06 15:03:11 -07:00
Benoit Steiner
81f9e968fd Only attempt to use the texture path on GPUs when it's supported by CUDA 2015-07-06 13:32:38 -07:00
Benoit Steiner
864318e508 Misc small fixes to the tensor slicing code. 2015-07-06 11:45:56 -07:00
Benoit Steiner
8f1d547c92 Added a default value for the cuda stream in the GpuDevice constructor 2015-07-01 18:32:18 -07:00
Benoit Steiner
1e911b276c Misc improvements and optimizations 2015-07-01 13:59:11 -07:00
Benoit Steiner
4ed213f97b Improved a previous fix 2015-07-01 13:06:30 -07:00
Benoit Steiner
56e155dd60 Fixed a couple of mistakes in the previous commit. 2015-07-01 12:40:27 -07:00
Benoit Steiner
925d0d375a Enabled the vectorized evaluation of several tensor expressions that was previously disabled by mistake 2015-07-01 11:32:04 -07:00
Benoit Steiner
6021b68d8b Silenced a compilation warning 2015-06-30 15:42:25 -07:00
Benoit Steiner
f1f480b116 Added support for user defined custom tensor op. 2015-06-30 15:36:29 -07:00
Benoit Steiner
dc31fcb9ba Added support for 3D patch extraction 2015-06-30 14:48:26 -07:00
Benoit Steiner
f587075987 Made ThreadPoolDevice inherit from a new pure abstract ThreadPoolInterface class: this enables users to leverage their existing threadpool when using eigen tensors. 2015-06-30 14:21:24 -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
109005c6c9 Added a test for multithreaded full reductions 2015-06-30 13:08:12 -07:00
Benoit Steiner
a4aa7c6217 Fixed a few compilation warnings 2015-06-30 10:36:17 -07:00
Benoit Steiner
7d41e97fa9 Silenced a number of compilation warnings 2015-06-29 14:47:40 -07:00
Benoit Steiner
fffe63045c Added a test for full reductions on GPU 2015-06-29 14:10:32 -07:00
Benoit Steiner
db9dbbda32 Improved performance of full reduction by 2 order of magnitude on CPU and 3 orders of magnitude on GPU 2015-06-29 14:06:32 -07:00
Benoit Steiner
f0ce85b757 Improved support for fixed size tensors 2015-06-29 14:04:15 -07:00
Benoit Steiner
670c71d906 Express the full reduction operations (such as sum, max, min) using TensorDimensionList 2015-06-29 11:30:36 -07:00
Benoit Steiner
d8098ee7d5 Added support for tanh function to the tensor code 2015-06-29 11:14:42 -07:00
Benoit Steiner
3625734bc8 Moved some utilities to TensorMeta.h to make it easier to reuse them accross several tensor operations.
Created the TensorDimensionList class to encode the list of all the dimensions of a tensor of rank n. This could be done using TensorIndexList, however TensorIndexList require cxx11 which isn't yet supported as widely as we'd like.
2015-06-29 10:49:55 -07:00
Gael Guennebaud
84aaef93ba Merged in vanhoucke/eigen_vanhoucke (pull request PR-118)
Fix two small undefined behaviors caught by static analysis.
2015-06-20 13:56:48 +02:00
Gael Guennebaud
846b227bb7 Get rid of class internal::nested<> (still have to updated Tensor module) 2015-06-19 17:56:39 +02:00
vanhoucke
4cc0c961f3 Fix undefined behavior. 2015-06-19 15:46:46 +00:00
Benoit Steiner
6a9a29e96f Fixed a compilation warning 2015-06-17 10:14:13 -07:00
Benoit Steiner
ab5db86fe9 Fixed merge conflict 2015-06-16 19:52:20 -07:00
Benoit Steiner
ea160a898c Pulled latest updates from trunk 2015-06-16 19:46:23 -07:00
Benoit Steiner
367794e668 Fixed compilation warnings triggered by clang 2015-06-16 19:43:49 -07:00
Gael Guennebaud
9ab8ac5c8b Fix compilation in TensorImagePatch 2015-06-16 14:50:08 +02:00
Gael Guennebaud
38874b1651 Fix shadow warnings in Tensor module 2015-06-16 14:43:46 +02:00
Gael Guennebaud
e2e66930c6 Fix compilation of alignedvector3 unit test 2015-06-16 14:40:55 +02:00
Gael Guennebaud
64753af3b7 code simplification 2015-06-09 15:35:34 +02:00
Gael Guennebaud
cacbc5679d formatting 2015-06-09 15:23:08 +02:00
Gael Guennebaud
04665ef9e1 remove redundant dynamic allocations in GMRES 2015-06-09 15:18:21 +02:00
Gael Guennebaud
d4c574707e fix some legitimate shadow warnings 2015-06-09 15:17:58 +02:00
Gael Guennebaud
8bc26562f4 Do not abort if the folder cannot be openned! 2015-06-05 14:31:29 +02:00
Gael Guennebaud
3e7bc8d686 Improve loading of symmetric sparse matrices in MatrixMarketIterator 2015-06-05 10:16:29 +02:00
Benoit Steiner
ea1190486f Fixed a compilation error triggered by nvcc 7 2015-05-28 11:57:51 -07:00
Benoit Steiner
0e5fed74e7 Worked around some constexpr related bugs in nvcc 7 2015-05-28 10:14:38 -07:00
Benoit Steiner
f13b3d4433 Added missing include files 2015-05-28 07:57:28 -07:00
Benoit Steiner
abec18bae0 Fixed potential compilation error 2015-05-26 10:11:15 -07:00
Benoit Steiner
9df186c140 Added a few more missing EIGEN_DEVICE_FUNC statements 2015-05-26 09:47:48 -07:00
Benoit Steiner
466bcc589e Added a few missing EIGEN_DEVICE_FUNC statements 2015-05-26 09:37:23 -07:00
Benoit Steiner
6b800744ce Moved away from std::async and std::future as the underlying mechnism for the thread pool device. On several platforms, the functions passed to std::async are not scheduled in the order in which they are given to std::async, which leads to massive performance issues in the contraction code.
Instead we now have a custom thread pool that ensures that the functions are picked up by the threads in the pool in the order in which they are enqueued in the pool.
2015-05-20 13:52:07 -07:00
Benoit Steiner
48f6b274e2 Fixed compilation error triggered by gcc 4.7 2015-05-20 08:54:44 -07:00
Benoit Steiner
2451679951 Avoid using the cuda memcpy for small tensor slices since the memcpy kernel is very expensive to launch 2015-05-19 15:19:01 -07:00
Benoit Steiner
a81d17b73a Added new version of the TensorIntDiv class optimized for 32 bit signed integers. It saves 1 register on CPU and 2 on GPU. 2015-05-19 13:59:52 -07:00
Christoph Hertzberg
8c6a3b5ace Fix trivial warnings in LevenbergMarquardt module and test 2015-04-24 21:35:30 +02:00
Benoit Steiner
fd1d4bd86c Silenced a few compilation warnings 2015-04-22 16:16:15 -07:00
Benoit Steiner
91359e1d0a Added the ability to generate a tensor from a custom user defined 'generator'. This simplifies the creation of constant tensors initialized using specific regular patterns.
Created a gaussian window generator as a first use case.
2015-04-22 11:14:58 -07:00
Benoit Steiner
8838ed39f4 Added support for non-deterministic random number generation on GPU 2015-04-22 09:14:38 -07:00
Benoit Steiner
dfa991cbae Make sure that the copy constructor of the evaluator is always called before launching the evaluation of a tensor expression on a cuda device. 2015-04-21 16:15:45 -07:00
Benoit Steiner
e709488361 Silenced a few compilation warnings 2015-04-20 17:39:45 -07:00
Benoit Steiner
10a1f81822 Sped up the assignment of a tensor to a tensor slice, as well as the assigment of a constant slice to a tensor 2015-04-20 17:34:11 -07:00
Benoit Steiner
43eb2ca6e1 Improved the tensor random number generators:
* Use a mersenne twister whenebver possible instead of the default entropy source since the default one isn't very good at all.
 * Added the ability to seed the generators with a time based seed to make them non-deterministic.
2015-04-20 09:24:09 -07:00
Benoit Steiner
70bc3b0668 Silenced a warning in the tensor code 2015-04-19 12:38:00 -07:00
Benoit Steiner
3220eb2b93 Fixed some compilation warnings 2015-04-19 12:36:35 -07:00