Gael Guennebaud
a93e354d92
Add some pre-allocation unit tests (not working yet)
2016-08-29 11:08:44 +02:00
Gael Guennebaud
6cd7b9ea6b
Fix compilation with cuda 8
2016-08-29 11:06:08 +02:00
Gael Guennebaud
441b7eaab2
Add support for non trivial scalar factor in sparse selfadjoint * dense products, and enable +=/-= assignement for such products.
...
This changeset also improves the performance by working on column of the result at once.
2016-08-24 13:06:34 +02:00
Gael Guennebaud
8132a12625
bug #1268 : detect faillure in LDLT and report them through info()
2016-08-23 23:15:55 +02:00
Gael Guennebaud
326320ec7b
Fix compilation in non C++11 mode.
2016-08-23 19:28:57 +02:00
Gael Guennebaud
00b2666853
bug #645 : patch from Tobias Wood implementing the extraction of eigenvectors in GeneralizedEigenSolver
2016-08-23 17:37:38 +02:00
Gael Guennebaud
504a4404f1
Optimize expression matching "d?=a-b*c" as "d?=a; d?=b*c;"
2016-08-23 16:52:22 +02:00
Gael Guennebaud
e47a8928ec
Fix compilation in check_for_aliasing due to ambiguous specializations
2016-08-23 16:19:10 +02:00
Gael Guennebaud
82147cefff
Fix possible overflow and biais in integer random generator
2016-08-23 13:25:31 +02:00
Christoph Hertzberg
c83b754ee0
bug #1272 : Disable assertion when total number of columns is zero.
...
Also moved assertion to finished() method and adapted unit-test
2016-08-12 15:15:34 +02:00
Igor Babuschkin
aee693ac52
Add log1p support for CUDA and half floats
2016-08-08 20:24:59 +01:00
Christoph Hertzberg
3e4a33d4ba
bug #1272 : Let CommaInitializer work for more border cases (enhances fix of bug #1242 ).
...
The unit test tests all combinations of 2x2 block-sizes from 0 to 3.
2016-08-08 17:26:48 +02:00
Benoit Steiner
373bb12dc6
Check that it's possible to forward declare the hlaf type.
2016-08-03 16:07:31 -07:00
Gael Guennebaud
7995cec90c
Fix vectorization logic for coeff-based product for some corner cases.
2016-07-31 15:20:22 +02:00
Gael Guennebaud
fd2f989b1d
Fix testing of nearly zero input matrices.
2016-07-26 14:46:02 +02:00
Gael Guennebaud
c9e3e438eb
Add more very small numbers in the list of nearly "zero" values when testing SVD and EVD algorithms
2016-07-26 14:45:44 +02:00
Gael Guennebaud
757971e7ea
bug #1258 : fix compilation of Map<SparseMatrix>::coeffRef
2016-07-26 09:40:19 +02:00
Gael Guennebaud
9908020d36
Add minimal support for Array<string>, and fix Tensor<string>
2016-07-25 14:25:56 +02:00
Gael Guennebaud
4184a3e544
Extend boost.multiprec unit test with ET on, complexes, and general/generalized eigenvalue solvers.
2016-07-25 12:36:22 +02:00
Gael Guennebaud
1b2049fbda
Enforce scalar types in calls to max/min (helps with expression template scalar types)
2016-07-25 12:35:10 +02:00
Gael Guennebaud
32d95e86c9
merge
2016-07-22 16:43:12 +02:00
Gael Guennebaud
60d5980a41
add a note
2016-07-22 15:46:23 +02:00
Gael Guennebaud
24af67a6cc
Fix boostmultiprec for C++03
2016-07-22 15:30:54 +02:00
Gael Guennebaud
d075d122ea
Move half unit test from unsupported to main tests
2016-07-22 14:34:19 +02:00
Gael Guennebaud
72950effdf
enable testing of Boost.Multiprecision with expression templates
2016-07-20 18:21:30 +02:00
Gael Guennebaud
b64b9d0172
Add a unit test to stress our solvers with Boost.Multiprecision
2016-07-20 15:20:14 +02:00
Gael Guennebaud
5e4dda8a12
Enable custom scalar types in some unit tests.
2016-07-20 15:19:17 +02:00
Gael Guennebaud
87d480d785
Make use of EIGEN_TEST_MAX_SIZE
2016-07-20 15:14:20 +02:00
Gael Guennebaud
9e8476ef22
Add missing Eigen::rsqrt global function
2016-07-20 11:59:49 +02:00
Gael Guennebaud
db9b154193
Add missing non-const reverse method in VectorwiseOp.
2016-07-16 15:19:28 +02:00
Gael Guennebaud
263993a7b6
Fix test for nearly null input
2016-07-12 17:19:26 +02:00
Benoit Steiner
03b71c273e
Made the packetmath test compile again. A better fix would be to move the special function tests to the unsupported directory where the code now resides.
2016-07-11 13:50:24 -07:00
Gael Guennebaud
fd60966310
merge
2016-07-11 18:11:47 +02:00
Gael Guennebaud
57113e00f9
Relax strict equality
2016-07-09 23:37:11 +02:00
Gael Guennebaud
2f7e2614e7
bug #1232 : refactor special functions as a new SpecialFunctions module, currently in unsupported/.
2016-07-08 11:13:55 +02:00
Gael Guennebaud
c684e37d32
Prevent division by zero.
2016-07-07 11:03:01 +02:00
Gael Guennebaud
5ca2457fa5
Fix unit test.
2016-07-06 22:25:24 +02:00
Gael Guennebaud
9b68ed4537
Relax is_equal to is_approx because scaling might modify last bit.
2016-07-06 15:02:49 +02:00
Gael Guennebaud
5b3a6f51d3
Improve numerical robustness of RealSchur: add scaling and compare sub-diag entries to largest diagonal entry instead of the 2 neighbors.
2016-07-06 13:45:30 +02:00
Gael Guennebaud
d2b5a19e0f
Fix warning.
2016-07-06 11:05:30 +02:00
Gael Guennebaud
43696ede8f
Revert unwanted changes.
2016-07-04 22:40:36 +02:00
Gael Guennebaud
b39fd8217f
Fix nesting of SolveWithGuess, and add unit test.
2016-07-04 17:47:47 +02:00
Gael Guennebaud
fbcfc2f862
Add unit test for solveWithGuess, and fix template resolution.
2016-07-04 17:19:38 +02:00
Gael Guennebaud
32a41ee659
bug #707 : add inplace decomposition through Ref<> for Cholesky, LU and QR decompositions.
2016-07-04 15:13:35 +02:00
Gael Guennebaud
e61cee7a50
Fix compilation of some unit tests with msvc
2016-07-04 11:49:03 +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
Gael Guennebaud
76faf4a965
Introduce a NumTraits<T>::Literal type to be used for literals, and
...
improve mixing type support in operations between arrays and scalars:
- 2 * ArrayXcf is now optimized in the sense that the integer 2 is properly promoted to a float instead of a complex<float> (fix a regression)
- 2.1 * ArrayXi is now forbiden (previously, 2.1 was converted to 2)
- This mechanism should be applicable to any custom scalar type, assuming NumTraits<T>::Literal is properly defined (it defaults to T)
2016-06-23 14:27:20 +02:00
Gael Guennebaud
a3f7edf7e7
Biug 1242: fix comma init with empty matrices.
2016-06-23 10:25:04 +02:00
Gael Guennebaud
76236cdea4
merge
2016-06-14 15:33:47 +02:00
Gael Guennebaud
70dad84b73
Generalize expr/expr and scalar/expr wrt scalar types.
2016-06-14 15:26:37 +02: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
a8c08e8b8e
Implement expr+scalar, scalar+expr, expr-scalar, and scalar-expr as binary expressions, and generalize supported scalar types.
...
The following functors are now deprecated: scalar_add_op, scalar_sub_op, and scalar_rsub_op.
2016-06-14 12:06:10 +02:00
Gael Guennebaud
12350d3ac7
Add unit test for AlignedBox::center
2016-06-14 11:31:52 +02:00
Gael Guennebaud
bcc0f38f98
Add unittesting plugins to scalar_product_op and scalar_quotient_op to help chaking that types are properly propagated.
2016-06-14 11:31:27 +02:00
Gael Guennebaud
64fcfd314f
Implement scalar multiples and division by a scalar as a binary-expression with a constant expression.
...
This slightly complexifies the type of the expressions and implies that we now have to distinguish between scalar*expr and expr*scalar to catch scalar-multiple expression (e.g., see BlasUtil.h), but this brings several advantages:
- it makes it clear on each side the scalar is applied,
- it clearly reflects that we are dealing with a binary-expression,
- the complexity of the type is hidden through macros defined at the end of Macros.h,
- distinguishing between "scalar op expr" and "expr op scalar" is important to support non commutative fields (like quaternions)
- "scalar op expr" is now fully equivalent to "ConstantExpr(scalar) op expr"
- scalar_multiple_op, scalar_quotient1_op and scalar_quotient2_op are not used anymore in officially supported modules (still used in Tensor)
2016-06-14 11:26:57 +02:00
Gael Guennebaud
39781dc1e2
Fix compilation of evaluator unit test
2016-06-14 11:03:26 +02:00
Gael Guennebaud
2ca2ffb65e
check for mixing types in "array / scalar" expressions
2016-06-13 16:15:32 +02:00
Gael Guennebaud
a3a4714aba
Add debug output.
2016-06-11 14:41:53 +02:00
Gael Guennebaud
5de8d7036b
Add real.pow(complex), complex.pow(real) unit tests.
2016-06-10 15:58:22 +02:00
Gael Guennebaud
3d71d3918e
Disable shortcuts for res ?= prod when the scalar types do not match exactly.
2016-06-06 23:10:55 +02:00
Gael Guennebaud
66e99ab6a1
Relax mixing-type constraints for binary coefficient-wise operators:
...
- Replace internal::scalar_product_traits<A,B> by Eigen::ScalarBinaryOpTraits<A,B,OP>
- Remove the "functor_is_product_like" helper (was pretty ugly)
- Currently, OP is not used, but it is available to the user for fine grained tuning
- Currently, only the following operators have been generalized: *,/,+,-,=,*=,/=,+=,-=
- TODO: generalize all other binray operators (comparisons,pow,etc.)
- TODO: handle "scalar op array" operators (currently only * is handled)
- TODO: move the handling of the "void" scalar type to ScalarBinaryOpTraits
2016-06-06 15:11:41 +02:00
Eugene Brevdo
c53687dd14
Add randomized properties tests for betainc special function.
2016-06-05 11:10:30 -07:00
Gael Guennebaud
15890c304e
Add unit test for non symmetric generalized eigenvalues
2016-06-09 16:17:27 +02:00
Christoph Hertzberg
9dd9d58273
Copied a regression test from 3.2 branch.
2016-06-08 15:36:42 +02: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
82293f38d6
Fix unit test.
2016-06-03 08:12:14 +02:00
Gael Guennebaud
8b6f53222b
bug #1193 : fix lpNorm<Infinity> for empty input.
2016-06-02 15:29:59 +02:00
Gael Guennebaud
d616a81294
Disable MSVC's "decorated name length exceeded, name was truncated" warning in unit tests.
2016-06-02 14:48:38 +02:00
Gael Guennebaud
61a32f2a4c
Fix pointer to long conversion warning.
2016-06-02 14:45:45 +02:00
Gael Guennebaud
89099b0cf7
Expose log1p to Array.
2016-06-01 17:00:08 +02:00
Gael Guennebaud
2c1b56f4c1
bug #1238 : fix SparseMatrix::sum() overload for un-compressed mode.
2016-05-31 10:56:53 +02:00
Christoph Hertzberg
f2c86384f4
Cleaner implementation of dont_over_optimize.
2016-05-27 11:13:38 +02:00
Gael Guennebaud
35df3a32eb
Disabled GCC6's ignored-attributes warning in packetmath unit test.
2016-05-26 17:42:58 +02:00
Gael Guennebaud
db62719eda
Fix some conversion warnings in unit tests.
2016-05-26 17:42:12 +02:00
Gael Guennebaud
fdcad686ee
Fix numerous pointer-to-integer conversion warnings in unit tests.
2016-05-26 17:41:28 +02:00
Gael Guennebaud
f57260a997
Fix typo in dont_over_optimize
2016-05-25 11:17:53 +02:00
Gael Guennebaud
2cd32be70b
Fix warning.
2016-05-25 11:15:54 +02:00
Gael Guennebaud
0fd953c217
Workaround clang/llvm bug in code generation.
2016-05-24 21:55:46 +02: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
Benoit Steiner
7aa5bc9558
Fixed a typo in the array.cpp test
2016-05-23 14:39:51 -07:00
Christoph Hertzberg
718521d5cf
Silenced several double-promotion warnings
2016-05-22 18:17:04 +02:00
Gael Guennebaud
abd1c1af7a
Make EIGEN_HAS_STD_RESULT_OF user configurable
2016-05-20 15:01:27 +02:00
Gael Guennebaud
1395056fc0
Make EIGEN_HAS_C99_MATH user configurable
2016-05-20 14:58:19 +02:00
Gael Guennebaud
48bf5ec216
Make EIGEN_HAS_RVALUE_REFERENCES user configurable
2016-05-20 14:54:20 +02:00
Gael Guennebaud
f43ae88892
Rename EIGEN_HAVE_RVALUE_REFERENCES to EIGEN_HAS_RVALUE_REFERENCES
2016-05-20 14:48:51 +02:00
Gael Guennebaud
8d6bd5691b
polygamma is C99/C++11 only
2016-05-20 14:45:33 +02:00
Gael Guennebaud
0ba32f99bd
Rename UniformRandom to UnitRandom.
2016-05-20 13:21:34 +02:00
Joseph Mirabel
eb0cc2573a
bug #823 : add static method to Quaternion for uniform random rotations.
2016-05-20 13:15:40 +02:00
Gael Guennebaud
575bc44c3f
Fix unit test.
2016-05-19 22:48:16 +02:00
Gael Guennebaud
ccb408ee6a
Improve unit tests of zeta, polygamma, and digamma
2016-05-19 18:34:41 +02:00
Gael Guennebaud
df9a5e13c6
Fix SelfAdjointEigenSolver for some input expression types, and add new regression unit tests for sparse and selfadjointview inputs.
2016-05-19 13:07:33 +02:00
Gael Guennebaud
a226f6af6b
Add support for SelfAdjointView::diagonal()
2016-05-19 13:05:33 +02:00
Gael Guennebaud
b6b8578a67
bug #1230 : add support for SelfadjointView::triangularView.
2016-05-19 11:36:38 +02:00
Gael Guennebaud
84df9142e7
bug #1231 : fix compilation regression regarding complex_array/=real_array and add respective unit tests
2016-05-18 23:00:13 +02:00
Gael Guennebaud
8456bbbadb
bug #1224 : fix regression in (dense*dense).sparseView() by specializing evaluator<SparseView<Product>> for sparse products only.
2016-05-18 16:53:28 +02:00
Gael Guennebaud
1fa15ceee6
Extend sparse*sparse product unit test to check that the expected implementation is used (conservative vs auto pruning).
2016-05-18 16:50:54 +02:00
Gael Guennebaud
5a71eb5985
Big 1213: add regression unit test.
2016-05-18 14:03:03 +02:00
Benoit Steiner
2d74ef9682
Avoid float to double conversion
2016-05-17 07:20:11 -07:00
Christoph Hertzberg
7268b10203
Split unit test
2016-05-11 19:41:53 +02:00
Christoph Hertzberg
8d4ef391b0
Don't flood test output with successful VERIFY_IS_NOT_EQUAL tests.
2016-05-11 19:40:45 +02:00
Benoit Steiner
217d984abc
Fixed a typo in my previous commit
2016-05-11 10:22:15 -07:00
Benoit Steiner
bf185c3c28
Extended the tests for ptanh
2016-05-10 16:21:43 -07:00
Benoit Steiner
1660e749b4
Avoid double promotion
2016-05-06 08:15:12 -07:00
Christoph Hertzberg
dacb469bc9
Enable and fix -Wdouble-conversion warnings
2016-05-05 13:35:45 +02:00
Benoit Steiner
577a07a86e
Re-enabled the product_small test now that everything compiles correctly.
2016-05-03 13:11:38 -07:00
Benoit Steiner
3b8da4be5a
Extended the packetmath test to cover all the alignments made possible by avx512 instructions.
2016-04-29 14:13:43 -07:00
Benoit Steiner
07a247dcf4
Pulled latest updates from upstream
2016-04-29 13:41:26 -07:00
Benoit Steiner
3ec81fc00f
Fixed compilation error with clang.
2016-04-27 19:32:12 -07:00
Gael Guennebaud
1e80bddde3
Fix trmv for mixing types.
2016-04-15 17:58:36 +02:00
Benoit Steiner
bebb89acfa
Enabled the new threadpool tests
2016-04-14 16:44:10 -07:00
Gael Guennebaud
68897c52f3
Add extreme values to the imaginary part for SVD unit tests.
2016-04-14 22:47:30 +02:00
Benoit Steiner
7b3d7acebe
Added support for fp16 to test_isApprox, test_isMuchSmallerThan, and test_isApproxOrLessThan
2016-04-14 10:25:50 -07:00
Gael Guennebaud
ea7087ef31
Merged in rmlarsen/eigen (pull request PR-174)
...
Add matrix condition number estimation module.
2016-04-14 15:11:33 +02:00
Gael Guennebaud
2c9e4fa417
Add debug output for random unit test
2016-04-13 22:56:12 +02:00
Gael Guennebaud
f4e12272f1
Fix corner case in unit test.
2016-04-13 22:18:02 +02:00
Gael Guennebaud
a95e1a273e
Fix warning in unit tests
2016-04-13 22:00:38 +02:00
Gael Guennebaud
512ba0ac76
Add regression unit tests for half-packet vectorization
2016-04-13 18:16:35 +02:00
Benoit Steiner
25d05c4b8f
Fixed the vectorization logic test
2016-04-12 14:13:25 -07:00
Rasmus Larsen
6498dadc2f
Merged eigen/eigen into default
2016-04-11 17:42:05 -07:00
Benoit Steiner
d6e596174d
Pull latest updates from upstream
2016-04-11 17:20:17 -07:00
Till Hoffmann
643b697649
Proper handling of domain errors.
2016-04-10 00:37:53 +01:00
Rasmus Larsen
7a8176587b
Merged eigen/eigen into default
2016-04-09 12:47:41 -07:00
Benoit Steiner
0d2a532fc3
Created the new EIGEN_TEST_CUDA_CLANG option to compile the CUDA tests using clang instead of nvcc
2016-04-08 13:16:08 -07:00
Rasmus Larsen
c34e55c62b
Merged eigen/eigen into default
2016-04-07 20:23:03 -07:00
Benoit Steiner
10bdd8e378
Merged in tillahoffmann/eigen (pull request PR-173)
...
Added zeta function of two arguments and polygamma function
2016-04-06 09:40:17 -07:00
Benoit Steiner
7781f865cb
Renamed the EIGEN_TEST_NVCC cmake option into EIGEN_TEST_CUDA per the discussion in bug #1173 .
2016-04-06 09:35:23 -07:00
Konstantinos Margaritis
2bba4ee2cf
Merged kmargar/eigen/tip into default
2016-04-05 22:22:08 +03:00
Konstantinos Margaritis
644d0f91d2
enable all tests again
2016-04-05 05:59:54 -04:00
Rasmus Munk Larsen
86e0ed81f8
Addresses comments on Eigen pull request PR-174.
...
* Get rid of code-duplication for real vs. complex matrices.
* Fix flipped arguments to select.
* Make the condition estimation functions free functions.
* Use Vector::Unit() to generate canonical unit vectors.
* Misc. cleanup.
2016-04-04 14:20:01 -07:00
Rasmus Munk Larsen
9d51f7c457
Add rcond method to LDLT.
2016-04-01 16:48:38 -07:00
Rasmus Munk Larsen
f54137606e
Add condition estimation to Cholesky (LLT) factorization.
2016-04-01 16:19:45 -07:00
Rasmus Munk Larsen
91414e0042
Fix comments in ConditionEstimator and minor cleanup.
2016-04-01 11:58:17 -07:00
Rasmus Munk Larsen
1aa89fb855
Add matrix condition estimator module that implements the Higham/Hager algorithm from http://www.maths.manchester.ac.uk/~higham/narep/narep135.pdf used in LPACK. Add rcond() methods to FullPivLU and PartialPivLU.
2016-04-01 10:27:59 -07:00
Till Hoffmann
3cb0a237c1
Fixed suggestions by Eugene Brevdo.
2016-04-01 17:51:39 +01:00
Till Hoffmann
57239f4a81
Added polygamma function.
2016-04-01 14:35:21 +01:00
Till Hoffmann
dd5d390daf
Added zeta function.
2016-04-01 13:32:29 +01:00
Gael Guennebaud
09ad31aa85
Add regression test for nesting type handling in blas_traits
2016-03-29 22:33:57 +02:00
Konstantinos Margaritis
01e7298fe6
actually include ZVector files, passes most basic tests (float still fails)
2016-03-28 10:58:02 -04:00
Konstantinos Margaritis
f48011119e
Merged eigen/eigen into default
2016-03-28 01:48:45 +03:00
Konstantinos Margaritis
ed6b9d08f1
some primitives ported, but missing intrinsics and crash with asm() are a problem
2016-03-27 18:47:49 -04:00
Christoph Hertzberg
9642fd7a93
Replace all M_PI by EIGEN_PI and add a check to the testsuite.
2016-03-23 15:37:45 +01:00
Benoit Steiner
28e02996df
Merged patch 672 from Justin Lebar: Don't use long doubles with cuda
2016-03-22 16:53:57 -07:00
Eugene Brevdo
9550be925d
Merge specfun branch.
2016-03-13 15:46:51 -07:00
Eugene Brevdo
b1a9afe9a9
Add tests in array.cpp that check igamma/igammac properties.
...
This adds to the set of existing tests, which compare a specific
set of values to third party calculated ground truth.
2016-03-13 15:45:34 -07:00
Eugene Brevdo
73220d2bb0
Resolve bad merge.
2016-03-08 17:28:21 -08:00
Eugene Brevdo
0b9e0abc96
Make igamma and igammac work correctly.
...
This required replacing ::abs with std::abs.
Modified some unit tests.
2016-03-04 21:12:10 -08:00
Eugene Brevdo
7ea35bfa1c
Initial implementation of igamma and igammac.
2016-03-03 19:39:41 -08:00
Gael Guennebaud
e9bea614ec
Fix shortcoming in fixed-value deduction of startRow/startCol
2016-02-29 10:31:27 +01:00
Gael Guennebaud
2af04f1a57
Extend unit test to stress smart_copy with empty input/output.
2016-02-19 22:59:28 +01:00