eigen/test
Anuj Rawat 8c7a6feb8e Adding lowlevel APIs for optimized RHS packet load in TensorFlow
SpatialConvolution

Low-level APIs are added in order to optimized packet load in gemm_pack_rhs
in TensorFlow SpatialConvolution. The optimization is for scenario when a
packet is split across 2 adjacent columns. In this case we read it as two
'partial' packets and then merge these into 1. Currently this only works for
Packet16f (AVX512) and Packet8f (AVX2). We plan to add this for other
packet types (such as Packet8d) also.

This optimization shows significant speedup in SpatialConvolution with
certain parameters. Some examples are below.

Benchmark parameters are specified as:
Batch size, Input dim, Depth, Num of filters, Filter dim

Speedup numbers are specified for number of threads 1, 2, 4, 8, 16.

AVX512:

Parameters                  | Speedup (Num of threads: 1, 2, 4, 8, 16)
----------------------------|------------------------------------------
128,   24x24,  3, 64,   5x5 |2.18X, 2.13X, 1.73X, 1.64X, 1.66X
128,   24x24,  1, 64,   8x8 |2.00X, 1.98X, 1.93X, 1.91X, 1.91X
 32,   24x24,  3, 64,   5x5 |2.26X, 2.14X, 2.17X, 2.22X, 2.33X
128,   24x24,  3, 64,   3x3 |1.51X, 1.45X, 1.45X, 1.67X, 1.57X
 32,   14x14, 24, 64,   5x5 |1.21X, 1.19X, 1.16X, 1.70X, 1.17X
128, 128x128,  3, 96, 11x11 |2.17X, 2.18X, 2.19X, 2.20X, 2.18X

AVX2:

Parameters                  | Speedup (Num of threads: 1, 2, 4, 8, 16)
----------------------------|------------------------------------------
128,   24x24,  3, 64,   5x5 | 1.66X, 1.65X, 1.61X, 1.56X, 1.49X
 32,   24x24,  3, 64,   5x5 | 1.71X, 1.63X, 1.77X, 1.58X, 1.68X
128,   24x24,  1, 64,   5x5 | 1.44X, 1.40X, 1.38X, 1.37X, 1.33X
128,   24x24,  3, 64,   3x3 | 1.68X, 1.63X, 1.58X, 1.56X, 1.62X
128, 128x128,  3, 96, 11x11 | 1.36X, 1.36X, 1.37X, 1.37X, 1.37X

In the higher level benchmark cifar10, we observe a runtime improvement
of around 6% for AVX512 on Intel Skylake server (8 cores).

On lower level PackRhs micro-benchmarks specified in TensorFlow
tensorflow/core/kernels/eigen_spatial_convolutions_test.cc, we observe
the following runtime numbers:

AVX512:

Parameters                                                     | Runtime without patch (ns) | Runtime with patch (ns) | Speedup
---------------------------------------------------------------|----------------------------|-------------------------|---------
BM_RHS_NAME(PackRhs, 128, 24, 24, 3, 64, 5, 5, 1, 1, 256, 56)  |  41350                     | 15073                   | 2.74X
BM_RHS_NAME(PackRhs, 32, 64, 64, 32, 64, 5, 5, 1, 1, 256, 56)  |   7277                     |  7341                   | 0.99X
BM_RHS_NAME(PackRhs, 32, 64, 64, 32, 64, 5, 5, 2, 2, 256, 56)  |   8675                     |  8681                   | 1.00X
BM_RHS_NAME(PackRhs, 32, 64, 64, 30, 64, 5, 5, 1, 1, 256, 56)  |  24155                     | 16079                   | 1.50X
BM_RHS_NAME(PackRhs, 32, 64, 64, 30, 64, 5, 5, 2, 2, 256, 56)  |  25052                     | 17152                   | 1.46X
BM_RHS_NAME(PackRhs, 32, 256, 256, 4, 16, 8, 8, 1, 1, 256, 56) |  18269                     | 18345                   | 1.00X
BM_RHS_NAME(PackRhs, 32, 256, 256, 4, 16, 8, 8, 2, 4, 256, 56) |  19468                     | 19872                   | 0.98X
BM_RHS_NAME(PackRhs, 32, 64, 64, 4, 16, 3, 3, 1, 1, 36, 432)   | 156060                     | 42432                   | 3.68X
BM_RHS_NAME(PackRhs, 32, 64, 64, 4, 16, 3, 3, 2, 2, 36, 432)   | 132701                     | 36944                   | 3.59X

AVX2:

Parameters                                                     | Runtime without patch (ns) | Runtime with patch (ns) | Speedup
---------------------------------------------------------------|----------------------------|-------------------------|---------
BM_RHS_NAME(PackRhs, 128, 24, 24, 3, 64, 5, 5, 1, 1, 256, 56)  | 26233                      | 12393                   | 2.12X
BM_RHS_NAME(PackRhs, 32, 64, 64, 32, 64, 5, 5, 1, 1, 256, 56)  |  6091                      |  6062                   | 1.00X
BM_RHS_NAME(PackRhs, 32, 64, 64, 32, 64, 5, 5, 2, 2, 256, 56)  |  7427                      |  7408                   | 1.00X
BM_RHS_NAME(PackRhs, 32, 64, 64, 30, 64, 5, 5, 1, 1, 256, 56)  | 23453                      | 20826                   | 1.13X
BM_RHS_NAME(PackRhs, 32, 64, 64, 30, 64, 5, 5, 2, 2, 256, 56)  | 23167                      | 22091                   | 1.09X
BM_RHS_NAME(PackRhs, 32, 256, 256, 4, 16, 8, 8, 1, 1, 256, 56) | 23422                      | 23682                   | 0.99X
BM_RHS_NAME(PackRhs, 32, 256, 256, 4, 16, 8, 8, 2, 4, 256, 56) | 23165                      | 23663                   | 0.98X
BM_RHS_NAME(PackRhs, 32, 64, 64, 4, 16, 3, 3, 1, 1, 36, 432)   | 72689                      | 44969                   | 1.62X
BM_RHS_NAME(PackRhs, 32, 64, 64, 4, 16, 3, 3, 2, 2, 36, 432)   | 61732                      | 39779                   | 1.55X

All benchmarks on Intel Skylake server with 8 cores.
2019-04-20 06:46:43 +00:00
..
adjoint.cpp Add conjugateIf<bool> members to DesneBase, TriangularView, SelfadjointView, and make PartialPivLU use it. 2019-01-17 11:33:43 +01:00
AnnoyingScalar.h bug #1577: fix msvc compilation of unit test, msvc defines ptrdiff_t as long long 2018-07-30 14:52:15 +02:00
array_cwise.cpp Add more extensive tests of Array ctors, including {} variants 2019-01-22 15:30:50 +01:00
array_for_matrix.cpp Extend unit tests for partial reductions 2018-10-09 22:54:54 +02:00
array_of_string.cpp Get rid of EIGEN_TEST_FUNC, unit tests must now be declared with EIGEN_DECLARE_TEST(mytest) { /* code */ }. 2018-07-17 14:46:15 +02:00
array_replicate.cpp Get rid of EIGEN_TEST_FUNC, unit tests must now be declared with EIGEN_DECLARE_TEST(mytest) { /* code */ }. 2018-07-17 14:46:15 +02:00
array_reverse.cpp revert debug stuff 2019-03-14 10:08:12 +01:00
bandmatrix.cpp Get rid of EIGEN_TEST_FUNC, unit tests must now be declared with EIGEN_DECLARE_TEST(mytest) { /* code */ }. 2018-07-17 14:46:15 +02:00
basicstuff.cpp Remove usage of #if EIGEN_TEST_PART_XX in unit tests that does not require them (splitting can thus be avoided for them) 2018-07-17 15:52:58 +02:00
bdcsvd.cpp PR 567: makes all dense solvers inherit SoverBase (LU,Cholesky,QR,SVD). 2019-01-17 01:17:39 +01:00
bicgstab.cpp Avoid I as an identifier, since it may clash with the C-header complex.h 2019-01-25 14:54:39 +01:00
block.cpp Fix detection of vector-at-time: use Rows/Cols instead of MaxRow/MaxCols. 2019-01-15 15:09:49 +01:00
boostmultiprec.cpp Avoid I as an identifier, since it may clash with the C-header complex.h 2019-01-25 14:54:39 +01:00
bug1213_main.cpp
bug1213.cpp
bug1213.h
cholesky.cpp PR 567: makes all dense solvers inherit SoverBase (LU,Cholesky,QR,SVD). 2019-01-17 01:17:39 +01:00
cholmod_support.cpp Get rid of EIGEN_TEST_FUNC, unit tests must now be declared with EIGEN_DECLARE_TEST(mytest) { /* code */ }. 2018-07-17 14:46:15 +02:00
CMakeLists.txt PR 593: Add variadtic ctor for DiagonalMatrix with unit tests 2019-03-14 10:18:24 +01:00
commainitializer.cpp Get rid of EIGEN_TEST_FUNC, unit tests must now be declared with EIGEN_DECLARE_TEST(mytest) { /* code */ }. 2018-07-17 14:46:15 +02:00
conjugate_gradient.cpp Avoid I as an identifier, since it may clash with the C-header complex.h 2019-01-25 14:54:39 +01:00
conservative_resize.cpp bug #1432: fix conservativeResize for non-relocatable scalar types. For those we need to by-pass realloc routines and fall-back to allocate as new - copy - delete. The remaining problem is that we don't have any mechanism to accurately determine whether a type is relocatable or not, so currently let's be super conservative using either RequireInitialization or std::is_trivially_copyable 2018-07-18 23:33:07 +02:00
constructor.cpp fix unit test in c++03: c++03 does not allow passing local or anonymous enum as template param 2019-03-18 11:38:36 +01:00
corners.cpp Get rid of EIGEN_TEST_FUNC, unit tests must now be declared with EIGEN_DECLARE_TEST(mytest) { /* code */ }. 2018-07-17 14:46:15 +02:00
ctorleak.cpp check two ctors 2018-11-23 15:37:09 +01:00
dense_storage.cpp bug #1046: add unit tests for correct propagation of alignment through std::alignment_of 2019-02-19 10:31:56 +01:00
denseLM.cpp Get rid of EIGEN_TEST_FUNC, unit tests must now be declared with EIGEN_DECLARE_TEST(mytest) { /* code */ }. 2018-07-17 14:46:15 +02:00
determinant.cpp Get rid of EIGEN_TEST_FUNC, unit tests must now be declared with EIGEN_DECLARE_TEST(mytest) { /* code */ }. 2018-07-17 14:46:15 +02:00
diagonal_matrix_variadic_ctor.cpp PR 593: Add variadtic ctor for DiagonalMatrix with unit tests 2019-03-14 10:18:24 +01:00
diagonal.cpp Get rid of EIGEN_TEST_FUNC, unit tests must now be declared with EIGEN_DECLARE_TEST(mytest) { /* code */ }. 2018-07-17 14:46:15 +02:00
diagonalmatrices.cpp bug #520: add diagmat +/- diagmat operators. 2018-10-10 23:38:22 +02:00
dontalign.cpp Get rid of EIGEN_TEST_FUNC, unit tests must now be declared with EIGEN_DECLARE_TEST(mytest) { /* code */ }. 2018-07-17 14:46:15 +02:00
dynalloc.cpp bug #1409: make EIGEN_MAKE_ALIGNED_OPERATOR_NEW* macros empty in c++17 mode: 2019-02-20 13:52:11 +01:00
eigen2support.cpp Get rid of EIGEN_TEST_FUNC, unit tests must now be declared with EIGEN_DECLARE_TEST(mytest) { /* code */ }. 2018-07-17 14:46:15 +02:00
eigensolver_complex.cpp Get rid of EIGEN_TEST_FUNC, unit tests must now be declared with EIGEN_DECLARE_TEST(mytest) { /* code */ }. 2018-07-17 14:46:15 +02:00
eigensolver_generalized_real.cpp Get rid of EIGEN_TEST_FUNC, unit tests must now be declared with EIGEN_DECLARE_TEST(mytest) { /* code */ }. 2018-07-17 14:46:15 +02:00
eigensolver_generic.cpp After fixing bug #1557, boostmultiprec_7 failed with NumericalIssue instead of NoConvergence (all that matters here is no Success) 2019-01-17 19:14:07 +01:00
eigensolver_selfadjoint.cpp Get rid of EIGEN_TEST_FUNC, unit tests must now be declared with EIGEN_DECLARE_TEST(mytest) { /* code */ }. 2018-07-17 14:46:15 +02:00
evaluator_common.h
evaluators.cpp Add explicit regression test for bug #1622 2018-11-16 11:24:51 +01:00
exceptions.cpp Generalize ScalarWithExceptions to a full non-copyable and trowing scalar type to be used in other unit tests. 2018-07-18 23:27:37 +02:00
fastmath.cpp Relaxed fastmath unit test: if std::foo fails, then let's only trigger a warning is numext::foo fails too. 2018-10-11 09:45:30 +02:00
first_aligned.cpp Get rid of EIGEN_TEST_FUNC, unit tests must now be declared with EIGEN_DECLARE_TEST(mytest) { /* code */ }. 2018-07-17 14:46:15 +02:00
geo_alignedbox.cpp Get rid of EIGEN_TEST_FUNC, unit tests must now be declared with EIGEN_DECLARE_TEST(mytest) { /* code */ }. 2018-07-17 14:46:15 +02:00
geo_eulerangles.cpp Get rid of EIGEN_TEST_FUNC, unit tests must now be declared with EIGEN_DECLARE_TEST(mytest) { /* code */ }. 2018-07-17 14:46:15 +02:00
geo_homogeneous.cpp Get rid of EIGEN_TEST_FUNC, unit tests must now be declared with EIGEN_DECLARE_TEST(mytest) { /* code */ }. 2018-07-17 14:46:15 +02:00
geo_hyperplane.cpp Get rid of EIGEN_TEST_FUNC, unit tests must now be declared with EIGEN_DECLARE_TEST(mytest) { /* code */ }. 2018-07-17 14:46:15 +02:00
geo_orthomethods.cpp Get rid of EIGEN_TEST_FUNC, unit tests must now be declared with EIGEN_DECLARE_TEST(mytest) { /* code */ }. 2018-07-17 14:46:15 +02:00
geo_parametrizedline.cpp Get rid of EIGEN_TEST_FUNC, unit tests must now be declared with EIGEN_DECLARE_TEST(mytest) { /* code */ }. 2018-07-17 14:46:15 +02:00
geo_quaternion.cpp bug #1573: workaround gcc 4.7 and 4.8 bug 2018-08-27 10:38:20 +02:00
geo_transformations.cpp Make Transform::rotation() an alias to Transform::linear() in the case of an Isometry 2019-01-15 22:50:42 +01:00
gpu_basic.cu Get rid of EIGEN_TEST_FUNC, unit tests must now be declared with EIGEN_DECLARE_TEST(mytest) { /* code */ }. 2018-07-17 14:46:15 +02:00
gpu_common.h Updates to fix HIP-clang specific compile errors. 2018-08-30 20:22:16 +00:00
half_float.cpp Get rid of EIGEN_TEST_FUNC, unit tests must now be declared with EIGEN_DECLARE_TEST(mytest) { /* code */ }. 2018-07-17 14:46:15 +02:00
hessenberg.cpp Get rid of EIGEN_TEST_FUNC, unit tests must now be declared with EIGEN_DECLARE_TEST(mytest) { /* code */ }. 2018-07-17 14:46:15 +02:00
householder.cpp Get rid of EIGEN_TEST_FUNC, unit tests must now be declared with EIGEN_DECLARE_TEST(mytest) { /* code */ }. 2018-07-17 14:46:15 +02:00
incomplete_cholesky.cpp Avoid I as an identifier, since it may clash with the C-header complex.h 2019-01-25 14:54:39 +01:00
indexed_view.cpp fix unit compilation in c++17: std::ptr_fun has been removed. 2019-02-19 14:05:22 +01:00
initializer_list_construction.cpp Remove undefined std::complex<int> 2019-03-14 11:40:28 +01:00
inplace_decomposition.cpp Get rid of EIGEN_TEST_FUNC, unit tests must now be declared with EIGEN_DECLARE_TEST(mytest) { /* code */ }. 2018-07-17 14:46:15 +02:00
integer_types.cpp Fix 'template argument uses local type'-warnings (when compiled in C++03 mode) 2018-09-10 18:57:28 +02:00
inverse.cpp bug #1669: fix PartialPivLU/inverse with zero-sized matrices. 2019-01-29 10:27:13 +01:00
is_same_dense.cpp Get rid of EIGEN_TEST_FUNC, unit tests must now be declared with EIGEN_DECLARE_TEST(mytest) { /* code */ }. 2018-07-17 14:46:15 +02:00
jacobi.cpp Move regression test to right unit test file 2018-11-21 15:59:47 +01:00
jacobisvd.cpp PR 567: makes all dense solvers inherit SoverBase (LU,Cholesky,QR,SVD). 2019-01-17 01:17:39 +01:00
klu_support.cpp Get rid of EIGEN_TEST_FUNC, unit tests must now be declared with EIGEN_DECLARE_TEST(mytest) { /* code */ }. 2018-07-17 14:46:15 +02:00
linearstructure.cpp Remove usage of #if EIGEN_TEST_PART_XX in unit tests that does not require them (splitting can thus be avoided for them) 2018-07-17 15:52:58 +02:00
lscg.cpp Get rid of EIGEN_TEST_FUNC, unit tests must now be declared with EIGEN_DECLARE_TEST(mytest) { /* code */ }. 2018-07-17 14:46:15 +02:00
lu.cpp Enable unit tests of PartialPivLU on fixed size matrices, and increase tested matrix size (blocking was not tested!) 2019-02-11 17:56:20 +01:00
main.h bug #1672: fix unit test compilation with MSVC by adding overloads of test_is* for long long (and factorize copy/paste code through a macro) 2019-01-28 13:47:28 +01:00
mapped_matrix.cpp Fix weird issue with MSVC 2013 2018-07-18 02:26:43 -07:00
mapstaticmethods.cpp Fix numerous shadow-warnings for GCC<=4.8 2018-08-28 18:32:39 +02:00
mapstride.cpp Get rid of EIGEN_TEST_FUNC, unit tests must now be declared with EIGEN_DECLARE_TEST(mytest) { /* code */ }. 2018-07-17 14:46:15 +02:00
meta.cpp Disable a bonus unit-test which is broken with gcc 4.7 2018-08-27 13:07:34 +02:00
metis_support.cpp Get rid of EIGEN_TEST_FUNC, unit tests must now be declared with EIGEN_DECLARE_TEST(mytest) { /* code */ }. 2018-07-17 14:46:15 +02:00
miscmatrices.cpp Get rid of EIGEN_TEST_FUNC, unit tests must now be declared with EIGEN_DECLARE_TEST(mytest) { /* code */ }. 2018-07-17 14:46:15 +02:00
mixingtypes.cpp DIsable static assertions only when necessary and disable double-promotion warnings in that case as well 2018-07-26 00:01:24 +02:00
mpl2only.cpp bug #1392: fix #include <Eigen/Sparse> with mpl2-only 2017-02-11 10:35:01 +01:00
nestbyvalue.cpp Make nestByValue works again (broken since 3.3) and add unit tests. 2019-01-17 18:27:25 +01:00
nesting_ops.cpp Get rid of EIGEN_TEST_FUNC, unit tests must now be declared with EIGEN_DECLARE_TEST(mytest) { /* code */ }. 2018-07-17 14:46:15 +02:00
nomalloc.cpp Get rid of EIGEN_TEST_FUNC, unit tests must now be declared with EIGEN_DECLARE_TEST(mytest) { /* code */ }. 2018-07-17 14:46:15 +02:00
nullary.cpp Add unit test for LinSpaced and complex numbers. 2019-02-18 22:03:47 +01:00
num_dimensions.cpp Get rid of EIGEN_TEST_FUNC, unit tests must now be declared with EIGEN_DECLARE_TEST(mytest) { /* code */ }. 2018-07-17 14:46:15 +02:00
numext.cpp fix always true warning with gcc 4.7 2019-01-15 11:18:48 +01:00
packetmath.cpp Adding lowlevel APIs for optimized RHS packet load in TensorFlow 2019-04-20 06:46:43 +00:00
pardiso_support.cpp Get rid of EIGEN_TEST_FUNC, unit tests must now be declared with EIGEN_DECLARE_TEST(mytest) { /* code */ }. 2018-07-17 14:46:15 +02:00
pastix_support.cpp Get rid of EIGEN_TEST_FUNC, unit tests must now be declared with EIGEN_DECLARE_TEST(mytest) { /* code */ }. 2018-07-17 14:46:15 +02:00
permutationmatrices.cpp bug #1609: add inplace transposition unit test 2018-10-10 21:48:58 +02:00
prec_inverse_4x4.cpp Get rid of EIGEN_TEST_FUNC, unit tests must now be declared with EIGEN_DECLARE_TEST(mytest) { /* code */ }. 2018-07-17 14:46:15 +02:00
product_extra.cpp Get rid of EIGEN_TEST_FUNC, unit tests must now be declared with EIGEN_DECLARE_TEST(mytest) { /* code */ }. 2018-07-17 14:46:15 +02:00
product_large.cpp Add explicit regression test for bug #1622 2018-11-16 11:24:51 +01:00
product_mmtr.cpp Get rid of EIGEN_TEST_FUNC, unit tests must now be declared with EIGEN_DECLARE_TEST(mytest) { /* code */ }. 2018-07-17 14:46:15 +02:00
product_notemporary.cpp Fix regression: .conjugate() was popped out but not re-introduced. 2019-02-18 14:45:55 +01:00
product_selfadjoint.cpp Get rid of EIGEN_TEST_FUNC, unit tests must now be declared with EIGEN_DECLARE_TEST(mytest) { /* code */ }. 2018-07-17 14:46:15 +02:00
product_small.cpp Remove usage of #if EIGEN_TEST_PART_XX in unit tests that does not require them (splitting can thus be avoided for them) 2018-07-17 15:52:58 +02:00
product_symm.cpp Get rid of EIGEN_TEST_FUNC, unit tests must now be declared with EIGEN_DECLARE_TEST(mytest) { /* code */ }. 2018-07-17 14:46:15 +02:00
product_syrk.cpp Get rid of EIGEN_TEST_FUNC, unit tests must now be declared with EIGEN_DECLARE_TEST(mytest) { /* code */ }. 2018-07-17 14:46:15 +02:00
product_trmm.cpp Get rid of EIGEN_TEST_FUNC, unit tests must now be declared with EIGEN_DECLARE_TEST(mytest) { /* code */ }. 2018-07-17 14:46:15 +02:00
product_trmv.cpp Get rid of EIGEN_TEST_FUNC, unit tests must now be declared with EIGEN_DECLARE_TEST(mytest) { /* code */ }. 2018-07-17 14:46:15 +02:00
product_trsolve.cpp bug #1617: add unit tests for empty triangular solve. 2019-01-16 15:24:59 +01:00
product.h bug #1562: optimize evaluation of small products of the form s*A*B by rewriting them as: s*(A.lazyProduct(B)) to save a costly temporary. Measured speedup from 2x to 5x... 2018-07-02 11:41:09 +02:00
qr_colpivoting.cpp PR 567: makes all dense solvers inherit SoverBase (LU,Cholesky,QR,SVD). 2019-01-17 01:17:39 +01:00
qr_fullpivoting.cpp PR 567: makes all dense solvers inherit SoverBase (LU,Cholesky,QR,SVD). 2019-01-17 01:17:39 +01:00
qr.cpp PR 567: makes all dense solvers inherit SoverBase (LU,Cholesky,QR,SVD). 2019-01-17 01:17:39 +01:00
qtvector.cpp Get rid of EIGEN_TEST_FUNC, unit tests must now be declared with EIGEN_DECLARE_TEST(mytest) { /* code */ }. 2018-07-17 14:46:15 +02:00
rand.cpp Get rid of EIGEN_TEST_FUNC, unit tests must now be declared with EIGEN_DECLARE_TEST(mytest) { /* code */ }. 2018-07-17 14:46:15 +02:00
real_qz.cpp Get rid of EIGEN_TEST_FUNC, unit tests must now be declared with EIGEN_DECLARE_TEST(mytest) { /* code */ }. 2018-07-17 14:46:15 +02:00
redux.cpp Fix bug in partial reduction of expressions requiring evaluation 2018-10-10 13:23:52 -07:00
ref.cpp Enable construction of Ref<VectorType> from a runtime vector. 2019-03-03 15:25:25 +01:00
reshape.cpp Extend reshaped unit tests and remove useless const_cast 2019-01-17 17:35:32 +01:00
resize.cpp Get rid of EIGEN_TEST_FUNC, unit tests must now be declared with EIGEN_DECLARE_TEST(mytest) { /* code */ }. 2018-07-17 14:46:15 +02:00
rvalue_types.cpp Get rid of EIGEN_TEST_FUNC, unit tests must now be declared with EIGEN_DECLARE_TEST(mytest) { /* code */ }. 2018-07-17 14:46:15 +02:00
schur_complex.cpp Get rid of EIGEN_TEST_FUNC, unit tests must now be declared with EIGEN_DECLARE_TEST(mytest) { /* code */ }. 2018-07-17 14:46:15 +02:00
schur_real.cpp Get rid of EIGEN_TEST_FUNC, unit tests must now be declared with EIGEN_DECLARE_TEST(mytest) { /* code */ }. 2018-07-17 14:46:15 +02:00
selfadjoint.cpp Get rid of EIGEN_TEST_FUNC, unit tests must now be declared with EIGEN_DECLARE_TEST(mytest) { /* code */ }. 2018-07-17 14:46:15 +02:00
simplicial_cholesky.cpp Avoid I as an identifier, since it may clash with the C-header complex.h 2019-01-25 14:54:39 +01:00
sizeof.cpp Get rid of EIGEN_TEST_FUNC, unit tests must now be declared with EIGEN_DECLARE_TEST(mytest) { /* code */ }. 2018-07-17 14:46:15 +02:00
sizeoverflow.cpp Get rid of EIGEN_TEST_FUNC, unit tests must now be declared with EIGEN_DECLARE_TEST(mytest) { /* code */ }. 2018-07-17 14:46:15 +02:00
smallvectors.cpp Get rid of EIGEN_TEST_FUNC, unit tests must now be declared with EIGEN_DECLARE_TEST(mytest) { /* code */ }. 2018-07-17 14:46:15 +02:00
solverbase.h PR 567: makes all dense solvers inherit SoverBase (LU,Cholesky,QR,SVD). 2019-01-17 01:17:39 +01:00
sparse_basic.cpp bug #1574: implement "sparse_matrix =,+=,-= diagonal_matrix" with smart insertion strategies of missing diagonal coeffs. 2019-01-28 17:29:50 +01:00
sparse_block.cpp bug #1432: fix conservativeResize for non-relocatable scalar types. For those we need to by-pass realloc routines and fall-back to allocate as new - copy - delete. The remaining problem is that we don't have any mechanism to accurately determine whether a type is relocatable or not, so currently let's be super conservative using either RequireInitialization or std::is_trivially_copyable 2018-07-18 23:33:07 +02:00
sparse_permutations.cpp Get rid of EIGEN_TEST_FUNC, unit tests must now be declared with EIGEN_DECLARE_TEST(mytest) { /* code */ }. 2018-07-17 14:46:15 +02:00
sparse_product.cpp Oopps, EIGEN_COMP_MSVC is not available before including Eigen. 2018-07-20 17:51:17 +02:00
sparse_ref.cpp Get rid of EIGEN_TEST_FUNC, unit tests must now be declared with EIGEN_DECLARE_TEST(mytest) { /* code */ }. 2018-07-17 14:46:15 +02:00
sparse_solver.h Show call stack in case of failing sparse solving. 2018-10-16 00:43:44 +02:00
sparse_solvers.cpp bug #1617: add unit tests for empty triangular solve. 2019-01-16 15:24:59 +01:00
sparse_vector.cpp Get rid of EIGEN_TEST_FUNC, unit tests must now be declared with EIGEN_DECLARE_TEST(mytest) { /* code */ }. 2018-07-17 14:46:15 +02:00
sparse.h Fix compilation with gcc and remove TR1 stuff. 2019-02-20 13:59:34 +01:00
sparseLM.cpp Get rid of EIGEN_TEST_FUNC, unit tests must now be declared with EIGEN_DECLARE_TEST(mytest) { /* code */ }. 2018-07-17 14:46:15 +02:00
sparselu.cpp Get rid of EIGEN_TEST_FUNC, unit tests must now be declared with EIGEN_DECLARE_TEST(mytest) { /* code */ }. 2018-07-17 14:46:15 +02:00
sparseqr.cpp bug #899: make sparseqr unit test more stable by 1) trying with larger threshold and 2) relax rank computation for rank-deficient problems. 2019-02-19 22:57:51 +01:00
special_numbers.cpp Get rid of EIGEN_TEST_FUNC, unit tests must now be declared with EIGEN_DECLARE_TEST(mytest) { /* code */ }. 2018-07-17 14:46:15 +02:00
split_test_helper.h Simplify handling and non-splitted tests and include split_test_helper.h instead of re-generating it. This also allows us to modify it without breaking existing build folder. 2018-07-16 18:55:40 +02:00
spqr_support.cpp Get rid of EIGEN_TEST_FUNC, unit tests must now be declared with EIGEN_DECLARE_TEST(mytest) { /* code */ }. 2018-07-17 14:46:15 +02:00
stable_norm.cpp Get rid of EIGEN_TEST_FUNC, unit tests must now be declared with EIGEN_DECLARE_TEST(mytest) { /* code */ }. 2018-07-17 14:46:15 +02:00
stddeque_overload.cpp Fix gcc 8.1 warning: "maybe use uninitialized" 2018-10-07 21:54:49 +02:00
stddeque.cpp Fix gcc 8.1 warning: "maybe use uninitialized" 2018-10-07 21:54:49 +02:00
stdlist_overload.cpp Fix gcc 8.1 warning: "maybe use uninitialized" 2018-10-07 21:54:49 +02:00
stdlist.cpp Fix gcc 8.1 warning: "maybe use uninitialized" 2018-10-07 21:54:49 +02:00
stdvector_overload.cpp Fix gcc 8.1 warning: "maybe use uninitialized" 2018-10-07 21:54:49 +02:00
stdvector.cpp Fix gcc 8.1 warning: "maybe use uninitialized" 2018-10-07 21:54:49 +02:00
stl_iterators.cpp bug #1619: fix mixing of const and non-const generic iterators 2018-11-09 21:45:10 +01:00
superlu_support.cpp Get rid of EIGEN_TEST_FUNC, unit tests must now be declared with EIGEN_DECLARE_TEST(mytest) { /* code */ }. 2018-07-17 14:46:15 +02:00
svd_common.h PR 567: makes all dense solvers inherit SoverBase (LU,Cholesky,QR,SVD). 2019-01-17 01:17:39 +01:00
svd_fill.h Remove local Index typedef from unit-tests 2018-07-12 17:16:40 +02:00
swap.cpp Get rid of EIGEN_TEST_FUNC, unit tests must now be declared with EIGEN_DECLARE_TEST(mytest) { /* code */ }. 2018-07-17 14:46:15 +02:00
symbolic_index.cpp cleanup 2019-01-15 10:51:03 +01:00
triangular.cpp Add conjugateIf<bool> members to DesneBase, TriangularView, SelfadjointView, and make PartialPivLU use it. 2019-01-17 11:33:43 +01:00
type_alias.cpp Add fully generic Vector<Type,Size> and RowVector<Type,Size> type aliases. 2019-02-20 15:23:23 +01:00
umeyama.cpp Fix double = bool ! 2018-11-23 15:12:06 +01:00
umfpack_support.cpp Get rid of EIGEN_TEST_FUNC, unit tests must now be declared with EIGEN_DECLARE_TEST(mytest) { /* code */ }. 2018-07-17 14:46:15 +02:00
unalignedassert.cpp Get rid of EIGEN_TEST_FUNC, unit tests must now be declared with EIGEN_DECLARE_TEST(mytest) { /* code */ }. 2018-07-17 14:46:15 +02:00
unalignedcount.cpp fix unalignedcount for avx512 2018-09-21 14:40:26 +02:00
upperbidiagonalization.cpp Get rid of EIGEN_TEST_FUNC, unit tests must now be declared with EIGEN_DECLARE_TEST(mytest) { /* code */ }. 2018-07-17 14:46:15 +02:00
vectorization_logic.cpp fix test regarding AVX512 vectorization of complexes. 2018-12-06 16:55:00 +01:00
vectorwiseop.cpp Cleanup useless const_cast and add missing broadcast assignment tests 2019-01-17 16:55:42 +01:00
visitor.cpp Get rid of EIGEN_TEST_FUNC, unit tests must now be declared with EIGEN_DECLARE_TEST(mytest) { /* code */ }. 2018-07-17 14:46:15 +02:00
zerosized.cpp Enable visitor on empty matrices (the visitor is left unchanged), and protect min/maxCoeff(Index*,Index*) on empty matrices by an assertion (+ doc & unit tests) 2019-01-15 15:21:14 +01:00