2010-10-13 02:23:52 +08:00
|
|
|
|
2013-03-20 15:40:13 +08:00
|
|
|
set_property(GLOBAL PROPERTY EIGEN_CURRENT_SUBPROJECT "Unsupported")
|
|
|
|
add_custom_target(BuildUnsupported)
|
|
|
|
|
2011-03-29 21:17:49 +08:00
|
|
|
include_directories(../../test ../../unsupported ../../Eigen
|
|
|
|
${CMAKE_CURRENT_BINARY_DIR}/../../test)
|
2009-02-28 00:19:13 +08:00
|
|
|
|
2010-06-18 17:28:30 +08:00
|
|
|
find_package(GoogleHash)
|
|
|
|
if(GOOGLEHASH_FOUND)
|
|
|
|
add_definitions("-DEIGEN_GOOGLEHASH_SUPPORT")
|
|
|
|
include_directories(${GOOGLEHASH_INCLUDES})
|
|
|
|
ei_add_property(EIGEN_TESTED_BACKENDS "GoogleHash, ")
|
|
|
|
else(GOOGLEHASH_FOUND)
|
|
|
|
ei_add_property(EIGEN_MISSING_BACKENDS "GoogleHash, ")
|
|
|
|
endif(GOOGLEHASH_FOUND)
|
|
|
|
|
2010-10-13 02:23:52 +08:00
|
|
|
find_package(Adolc)
|
2009-02-28 00:19:13 +08:00
|
|
|
if(ADOLC_FOUND)
|
|
|
|
include_directories(${ADOLC_INCLUDES})
|
2010-07-15 22:29:04 +08:00
|
|
|
ei_add_property(EIGEN_TESTED_BACKENDS "Adolc, ")
|
2010-10-28 22:44:20 +08:00
|
|
|
ei_add_test(forward_adolc "" ${ADOLC_LIBRARIES})
|
2009-02-28 00:19:13 +08:00
|
|
|
else(ADOLC_FOUND)
|
2010-07-15 22:29:04 +08:00
|
|
|
ei_add_property(EIGEN_MISSING_BACKENDS "Adolc, ")
|
2009-03-19 04:06:06 +08:00
|
|
|
endif(ADOLC_FOUND)
|
|
|
|
|
2010-08-18 21:11:01 +08:00
|
|
|
# this test seems to never have been successful on x87, so is considered to contain a FP-related bug.
|
|
|
|
# see thread: "non-linear optimization test summary"
|
2012-12-08 03:53:19 +08:00
|
|
|
ei_add_test(NonLinearOptimization)
|
|
|
|
|
2009-09-28 08:43:07 +08:00
|
|
|
ei_add_test(NumericalDiff)
|
2013-11-08 01:32:24 +08:00
|
|
|
ei_add_test(autodiff_scalar)
|
2009-04-01 22:43:37 +08:00
|
|
|
ei_add_test(autodiff)
|
2011-02-28 10:37:34 +08:00
|
|
|
|
|
|
|
if (NOT CMAKE_CXX_COMPILER MATCHES "clang\\+\\+$")
|
2009-03-19 04:06:06 +08:00
|
|
|
ei_add_test(BVH)
|
2011-02-28 10:37:34 +08:00
|
|
|
endif()
|
|
|
|
|
2009-12-29 06:30:08 +08:00
|
|
|
ei_add_test(matrix_exponential)
|
2010-01-12 02:05:30 +08:00
|
|
|
ei_add_test(matrix_function)
|
2012-08-28 05:48:37 +08:00
|
|
|
ei_add_test(matrix_power)
|
2011-05-08 05:57:46 +08:00
|
|
|
ei_add_test(matrix_square_root)
|
2009-05-04 01:19:19 +08:00
|
|
|
ei_add_test(alignedvector3)
|
2009-05-19 12:21:04 +08:00
|
|
|
ei_add_test(FFT)
|
2009-12-02 23:03:16 +08:00
|
|
|
|
2010-07-19 19:26:52 +08:00
|
|
|
find_package(MPFR 2.3.0)
|
2010-10-17 23:04:43 +08:00
|
|
|
find_package(GMP)
|
2010-07-15 22:29:04 +08:00
|
|
|
if(MPFR_FOUND)
|
2011-08-19 21:08:29 +08:00
|
|
|
include_directories(${MPFR_INCLUDES} ./mpreal)
|
2010-07-15 22:29:04 +08:00
|
|
|
ei_add_property(EIGEN_TESTED_BACKENDS "MPFR C++, ")
|
2010-10-17 23:04:43 +08:00
|
|
|
set(EIGEN_MPFR_TEST_LIBRARIES ${MPFR_LIBRARIES} ${GMP_LIBRARIES})
|
2010-10-28 22:44:20 +08:00
|
|
|
ei_add_test(mpreal_support "" "${EIGEN_MPFR_TEST_LIBRARIES}" )
|
2010-07-15 22:29:04 +08:00
|
|
|
else()
|
|
|
|
ei_add_property(EIGEN_MISSING_BACKENDS "MPFR C++, ")
|
|
|
|
endif()
|
|
|
|
|
2010-10-28 22:44:20 +08:00
|
|
|
ei_add_test(sparse_extra "" "")
|
2010-06-18 17:28:30 +08:00
|
|
|
|
2009-06-11 10:16:32 +08:00
|
|
|
find_package(FFTW)
|
|
|
|
if(FFTW_FOUND)
|
2010-07-22 22:08:58 +08:00
|
|
|
ei_add_property(EIGEN_TESTED_BACKENDS "fftw, ")
|
2012-03-15 22:18:22 +08:00
|
|
|
include_directories( ${FFTW_INCLUDES} )
|
2011-01-28 23:54:01 +08:00
|
|
|
if(FFTWL_LIB)
|
2011-11-03 22:33:42 +08:00
|
|
|
ei_add_test(FFTW "-DEIGEN_FFTW_DEFAULT -DEIGEN_HAS_FFTWL" "${FFTW_LIBRARIES}" )
|
2011-01-28 23:54:01 +08:00
|
|
|
else()
|
2012-03-15 22:18:22 +08:00
|
|
|
ei_add_test(FFTW "-DEIGEN_FFTW_DEFAULT" "${FFTW_LIBRARIES}" )
|
2011-01-28 23:54:01 +08:00
|
|
|
endif()
|
2010-07-22 22:08:58 +08:00
|
|
|
else()
|
|
|
|
ei_add_property(EIGEN_MISSING_BACKENDS "fftw, ")
|
|
|
|
endif()
|
|
|
|
|
2010-10-13 02:23:52 +08:00
|
|
|
option(EIGEN_TEST_NO_OPENGL "Disable OpenGL support in unit tests" OFF)
|
|
|
|
if(NOT EIGEN_TEST_NO_OPENGL)
|
2010-10-17 23:21:10 +08:00
|
|
|
find_package(OpenGL)
|
|
|
|
find_package(GLUT)
|
|
|
|
find_package(GLEW)
|
|
|
|
if(OPENGL_FOUND AND GLUT_FOUND AND GLEW_FOUND)
|
|
|
|
ei_add_property(EIGEN_TESTED_BACKENDS "OpenGL, ")
|
|
|
|
set(EIGEN_GL_LIB ${GLUT_LIBRARIES} ${GLEW_LIBRARIES})
|
|
|
|
ei_add_test(openglsupport "" "${EIGEN_GL_LIB}" )
|
|
|
|
else()
|
|
|
|
ei_add_property(EIGEN_MISSING_BACKENDS "OpenGL, ")
|
|
|
|
endif()
|
2011-02-17 01:01:06 +08:00
|
|
|
else()
|
|
|
|
ei_add_property(EIGEN_MISSING_BACKENDS "OpenGL, ")
|
|
|
|
endif()
|
2009-06-11 10:16:32 +08:00
|
|
|
|
2012-04-11 15:48:01 +08:00
|
|
|
ei_add_test(polynomialsolver)
|
2010-03-25 10:15:05 +08:00
|
|
|
ei_add_test(polynomialutils)
|
2011-06-22 20:39:11 +08:00
|
|
|
ei_add_test(kronecker_product)
|
2011-11-25 21:53:40 +08:00
|
|
|
ei_add_test(splines)
|
2012-03-29 21:00:55 +08:00
|
|
|
ei_add_test(gmres)
|
2012-09-24 22:47:38 +08:00
|
|
|
ei_add_test(minres)
|
2012-12-09 01:22:23 +08:00
|
|
|
ei_add_test(levenberg_marquardt)
|
2013-07-16 03:16:57 +08:00
|
|
|
ei_add_test(bdcsvd)
|
2013-11-15 05:27:06 +08:00
|
|
|
|
2014-04-29 01:32:27 +08:00
|
|
|
option(EIGEN_TEST_CXX11 "Enable testing of C++11 features (e.g. Tensor module)." ON)
|
2013-11-15 05:27:06 +08:00
|
|
|
if(EIGEN_TEST_CXX11)
|
2014-06-11 01:31:29 +08:00
|
|
|
# It should be safe to always run these tests as there is some fallback code for
|
|
|
|
# older compiler that don't support cxx11.
|
2013-11-15 05:27:06 +08:00
|
|
|
ei_add_test(cxx11_meta "-std=c++0x")
|
2013-11-15 05:52:37 +08:00
|
|
|
ei_add_test(cxx11_tensor_simple "-std=c++0x")
|
CXX11/TensorSymmetry: add symmetry support for Tensor class
Add a symCoeff() method to the Tensor class template that allows the
user of the class to set multiple elements of a tensor at once if they
are connected by a symmetry operation with respect to the tensor's
indices (symmetry/antisymmetry/hermiticity/antihermiticity under
echange of two indices and combination thereof for different pairs of
indices).
A compile-time resolution of the required symmetry groups via meta
templates is also implemented. For small enough groups this is used to
unroll the loop that goes through all the elements of the Tensor that
are connected by this group. For larger groups or groups where the
symmetries are defined at run time, a standard run-time implementation
of the same algorithm is provided.
For example, the following code completely initializes all elements of
the totally antisymmetric tensor in three dimensions ('epsilon
tensor'):
SGroup<3, AntiSymmetry<0,1>, AntiSymmetry<1,2>> sym;
Eigen::Tensor<double, 3> epsilon(3,3,3);
epsilon.setZero();
epsilon.symCoeff(sym, 0, 1, 2) = 1;
2013-11-15 06:35:11 +08:00
|
|
|
ei_add_test(cxx11_tensor_symmetry "-std=c++0x")
|
2014-04-29 01:32:27 +08:00
|
|
|
ei_add_test(cxx11_tensor_assign "-std=c++0x")
|
2014-06-07 11:16:13 +08:00
|
|
|
ei_add_test(cxx11_tensor_comparisons "-std=c++0x")
|
2014-06-06 01:49:34 +08:00
|
|
|
ei_add_test(cxx11_tensor_contraction "-std=c++0x")
|
2014-06-11 01:23:32 +08:00
|
|
|
ei_add_test(cxx11_tensor_convolution "-std=c++0x")
|
2014-04-29 01:32:27 +08:00
|
|
|
ei_add_test(cxx11_tensor_expr "-std=c++0x")
|
2014-06-14 01:20:28 +08:00
|
|
|
# ei_add_test(cxx11_tensor_fixed_size "-std=c++0x")
|
|
|
|
ei_add_test(cxx11_tensor_lvalue "-std=c++0x")
|
2014-04-29 01:32:27 +08:00
|
|
|
ei_add_test(cxx11_tensor_map "-std=c++0x")
|
2014-06-14 01:20:28 +08:00
|
|
|
ei_add_test(cxx11_tensor_morphing "-std=c++0x")
|
2014-06-11 01:31:29 +08:00
|
|
|
# ei_add_test(cxx11_tensor_device "-std=c++0x")
|
2014-05-17 06:08:05 +08:00
|
|
|
# ei_add_test(cxx11_tensor_fixed_size "-std=c++0x")
|
2014-06-11 01:31:29 +08:00
|
|
|
# ei_add_test(cxx11_tensor_thread_pool "-std=c++0x")
|
2013-11-15 05:27:06 +08:00
|
|
|
endif()
|