void test_mapstride() { for(int i = 0; i < g_repeat; i++) { EIGEN_UNUSED int maxn = 30; CALL_SUBTEST_1( map_class_vector<Aligned>(Matrix<float, 1, 1>()) ); CALL_SUBTEST_1( map_class_vector<Unaligned>(Matrix<float, 1, 1>()) ); CALL_SUBTEST_2( map_class_vector<Aligned>(Vector4d()) ); CALL_SUBTEST_2( map_class_vector<Unaligned>(Vector4d()) ); CALL_SUBTEST_3( map_class_vector<Aligned>(RowVector4f()) ); CALL_SUBTEST_3( map_class_vector<Unaligned>(RowVector4f()) ); CALL_SUBTEST_4( map_class_vector<Aligned>(VectorXcf(internal::random<int>(1,maxn))) ); CALL_SUBTEST_4( map_class_vector<Unaligned>(VectorXcf(internal::random<int>(1,maxn))) ); CALL_SUBTEST_5( map_class_vector<Aligned>(VectorXi(internal::random<int>(1,maxn))) ); CALL_SUBTEST_5( map_class_vector<Unaligned>(VectorXi(internal::random<int>(1,maxn))) ); CALL_SUBTEST_1( map_class_matrix<Aligned>(Matrix<float, 1, 1>()) ); CALL_SUBTEST_1( map_class_matrix<Unaligned>(Matrix<float, 1, 1>()) ); CALL_SUBTEST_2( map_class_matrix<Aligned>(Matrix4d()) ); CALL_SUBTEST_2( map_class_matrix<Unaligned>(Matrix4d()) ); CALL_SUBTEST_3( map_class_matrix<Aligned>(Matrix<float,3,5>()) ); CALL_SUBTEST_3( map_class_matrix<Unaligned>(Matrix<float,3,5>()) ); CALL_SUBTEST_3( map_class_matrix<Aligned>(Matrix<float,4,8>()) ); CALL_SUBTEST_3( map_class_matrix<Unaligned>(Matrix<float,4,8>()) ); CALL_SUBTEST_4( map_class_matrix<Aligned>(MatrixXcf(internal::random<int>(1,maxn),internal::random<int>(1,maxn))) ); CALL_SUBTEST_4( map_class_matrix<Unaligned>(MatrixXcf(internal::random<int>(1,maxn),internal::random<int>(1,maxn))) ); CALL_SUBTEST_5( map_class_matrix<Aligned>(MatrixXi(internal::random<int>(1,maxn),internal::random<int>(1,maxn))) ); CALL_SUBTEST_5( map_class_matrix<Unaligned>(MatrixXi(internal::random<int>(1,maxn),internal::random<int>(1,maxn))) ); CALL_SUBTEST_6( map_class_matrix<Aligned>(MatrixXcd(internal::random<int>(1,maxn),internal::random<int>(1,maxn))) ); CALL_SUBTEST_6( map_class_matrix<Unaligned>(MatrixXcd(internal::random<int>(1,maxn),internal::random<int>(1,maxn))) ); } }
void test_eigensolver_selfadjoint() { int s = 0; for(int i = 0; i < g_repeat; i++) { // very important to test 3x3 and 2x2 matrices since we provide special paths for them CALL_SUBTEST_1( selfadjointeigensolver(Matrix2f()) ); CALL_SUBTEST_1( selfadjointeigensolver(Matrix2d()) ); CALL_SUBTEST_1( selfadjointeigensolver(Matrix3f()) ); CALL_SUBTEST_1( selfadjointeigensolver(Matrix3d()) ); CALL_SUBTEST_2( selfadjointeigensolver(Matrix4d()) ); s = internal::random<int>(1,EIGEN_TEST_MAX_SIZE/4); CALL_SUBTEST_3( selfadjointeigensolver(MatrixXf(s,s)) ); s = internal::random<int>(1,EIGEN_TEST_MAX_SIZE/4); CALL_SUBTEST_4( selfadjointeigensolver(MatrixXd(s,s)) ); s = internal::random<int>(1,EIGEN_TEST_MAX_SIZE/4); CALL_SUBTEST_5( selfadjointeigensolver(MatrixXcd(s,s)) ); s = internal::random<int>(1,EIGEN_TEST_MAX_SIZE/4); CALL_SUBTEST_9( selfadjointeigensolver(Matrix<std::complex<double>,Dynamic,Dynamic,RowMajor>(s,s)) ); // some trivial but implementation-wise tricky cases CALL_SUBTEST_4( selfadjointeigensolver(MatrixXd(1,1)) ); CALL_SUBTEST_4( selfadjointeigensolver(MatrixXd(2,2)) ); CALL_SUBTEST_6( selfadjointeigensolver(Matrix<double,1,1>()) ); CALL_SUBTEST_7( selfadjointeigensolver(Matrix<double,2,2>()) ); } // Test problem size constructors s = internal::random<int>(1,EIGEN_TEST_MAX_SIZE/4); CALL_SUBTEST_8(SelfAdjointEigenSolver<MatrixXf> tmp1(s)); CALL_SUBTEST_8(Tridiagonalization<MatrixXf> tmp2(s)); TEST_SET_BUT_UNUSED_VARIABLE(s) }
void test_sizeof() { CALL_SUBTEST(verifySizeOf(Matrix<float, 1, 1>()) ); CALL_SUBTEST(verifySizeOf(Array<float, 2, 1>()) ); CALL_SUBTEST(verifySizeOf(Array<float, 3, 1>()) ); CALL_SUBTEST(verifySizeOf(Array<float, 4, 1>()) ); CALL_SUBTEST(verifySizeOf(Array<float, 5, 1>()) ); CALL_SUBTEST(verifySizeOf(Array<float, 6, 1>()) ); CALL_SUBTEST(verifySizeOf(Array<float, 7, 1>()) ); CALL_SUBTEST(verifySizeOf(Array<float, 8, 1>()) ); CALL_SUBTEST(verifySizeOf(Array<float, 9, 1>()) ); CALL_SUBTEST(verifySizeOf(Array<float, 10, 1>()) ); CALL_SUBTEST(verifySizeOf(Array<float, 11, 1>()) ); CALL_SUBTEST(verifySizeOf(Array<float, 12, 1>()) ); CALL_SUBTEST(verifySizeOf(Vector2d()) ); CALL_SUBTEST(verifySizeOf(Vector4f()) ); CALL_SUBTEST(verifySizeOf(Matrix4d()) ); CALL_SUBTEST(verifySizeOf(Matrix<double, 4, 2>()) ); CALL_SUBTEST(verifySizeOf(Matrix<bool, 7, 5>()) ); CALL_SUBTEST(verifySizeOf(MatrixXcf(3, 3)) ); CALL_SUBTEST(verifySizeOf(MatrixXi(8, 12)) ); CALL_SUBTEST(verifySizeOf(MatrixXcd(20, 20)) ); CALL_SUBTEST(verifySizeOf(Matrix<float, 100, 100>()) ); VERIFY(sizeof(std::complex<float>) == 2*sizeof(float)); VERIFY(sizeof(std::complex<double>) == 2*sizeof(double)); }
void test_bdcsvd() { CALL_SUBTEST_3(( svd_verify_assert<BDCSVD<Matrix3f> >(Matrix3f()) )); CALL_SUBTEST_4(( svd_verify_assert<BDCSVD<Matrix4d> >(Matrix4d()) )); CALL_SUBTEST_7(( svd_verify_assert<BDCSVD<MatrixXf> >(MatrixXf(10,12)) )); CALL_SUBTEST_8(( svd_verify_assert<BDCSVD<MatrixXcd> >(MatrixXcd(7,5)) )); CALL_SUBTEST_101(( svd_all_trivial_2x2(bdcsvd<Matrix2cd>) )); CALL_SUBTEST_102(( svd_all_trivial_2x2(bdcsvd<Matrix2d>) )); for(int i = 0; i < g_repeat; i++) { CALL_SUBTEST_3(( bdcsvd<Matrix3f>() )); CALL_SUBTEST_4(( bdcsvd<Matrix4d>() )); CALL_SUBTEST_5(( bdcsvd<Matrix<float,3,5> >() )); int r = internal::random<int>(1, EIGEN_TEST_MAX_SIZE/2), c = internal::random<int>(1, EIGEN_TEST_MAX_SIZE/2); TEST_SET_BUT_UNUSED_VARIABLE(r) TEST_SET_BUT_UNUSED_VARIABLE(c) CALL_SUBTEST_6(( bdcsvd(Matrix<double,Dynamic,2>(r,2)) )); CALL_SUBTEST_7(( bdcsvd(MatrixXf(r,c)) )); CALL_SUBTEST_7(( compare_bdc_jacobi(MatrixXf(r,c)) )); CALL_SUBTEST_10(( bdcsvd(MatrixXd(r,c)) )); CALL_SUBTEST_10(( compare_bdc_jacobi(MatrixXd(r,c)) )); CALL_SUBTEST_8(( bdcsvd(MatrixXcd(r,c)) )); CALL_SUBTEST_8(( compare_bdc_jacobi(MatrixXcd(r,c)) )); // Test on inf/nan matrix CALL_SUBTEST_7( (svd_inf_nan<BDCSVD<MatrixXf>, MatrixXf>()) ); CALL_SUBTEST_10( (svd_inf_nan<BDCSVD<MatrixXd>, MatrixXd>()) ); } // test matrixbase method CALL_SUBTEST_1(( bdcsvd_method<Matrix2cd>() )); CALL_SUBTEST_3(( bdcsvd_method<Matrix3f>() )); // Test problem size constructors CALL_SUBTEST_7( BDCSVD<MatrixXf>(10,10) ); // Check that preallocation avoids subsequent mallocs // Disbaled because not supported by BDCSVD // CALL_SUBTEST_9( svd_preallocate<void>() ); CALL_SUBTEST_2( svd_underoverflow<void>() ); }
void test_basicstuff() { for(int i = 0; i < g_repeat; i++) { CALL_SUBTEST_1( basicStuff(Matrix<float, 1, 1>()) ); CALL_SUBTEST_2( basicStuff(Matrix4d()) ); CALL_SUBTEST_3( basicStuff(MatrixXcf(ei_random<int>(1,100), ei_random<int>(1,100))) ); CALL_SUBTEST_4( basicStuff(MatrixXi(ei_random<int>(1,100), ei_random<int>(1,100))) ); CALL_SUBTEST_5( basicStuff(MatrixXcd(ei_random<int>(1,100), ei_random<int>(1,100))) ); CALL_SUBTEST_6( basicStuff(Matrix<float, 100, 100>()) ); CALL_SUBTEST_7( basicStuff(Matrix<long double,Dynamic,Dynamic>(ei_random<int>(1,100),ei_random<int>(1,100))) ); CALL_SUBTEST_3( basicStuffComplex(MatrixXcf(ei_random<int>(1,100), ei_random<int>(1,100))) ); CALL_SUBTEST_5( basicStuffComplex(MatrixXcd(ei_random<int>(1,100), ei_random<int>(1,100))) ); } CALL_SUBTEST_2(casting()); }
void test_basicstuff() { for(int i = 0; i < g_repeat; i++) { CALL_SUBTEST_1( basicStuff(Matrix<float, 1, 1>()) ); CALL_SUBTEST_2( basicStuff(Matrix4d()) ); CALL_SUBTEST_3( basicStuff(MatrixXcf(3, 3)) ); CALL_SUBTEST_4( basicStuff(MatrixXi(8, 12)) ); CALL_SUBTEST_5( basicStuff(MatrixXcd(20, 20)) ); CALL_SUBTEST_6( basicStuff(Matrix<float, 100, 100>()) ); CALL_SUBTEST_7( basicStuff(Matrix<long double,Dynamic,Dynamic>(10,10)) ); CALL_SUBTEST_3( basicStuffComplex(MatrixXcf(21, 17)) ); CALL_SUBTEST_5( basicStuffComplex(MatrixXcd(2, 3)) ); } CALL_SUBTEST_2(casting()); }
void test_miscmatrices() { for(int i = 0; i < g_repeat; i++) { CALL_SUBTEST_1( miscMatrices(Matrix<float, 1, 1>()) ); CALL_SUBTEST_2( miscMatrices(Matrix4d()) ); CALL_SUBTEST_3( miscMatrices(MatrixXcf(3, 3)) ); CALL_SUBTEST_4( miscMatrices(MatrixXi(8, 12)) ); CALL_SUBTEST_5( miscMatrices(MatrixXcd(20, 20)) ); } }
void test_qr() { for(int i = 0; i < 1; i++) { CALL_SUBTEST( qr(Matrix2f()) ); CALL_SUBTEST( qr(Matrix4d()) ); CALL_SUBTEST( qr(MatrixXf(12,8)) ); CALL_SUBTEST( qr(MatrixXcd(5,5)) ); CALL_SUBTEST( qr(MatrixXcd(7,3)) ); } // small isFullRank test { Matrix3d mat; mat << 1, 45, 1, 2, 2, 2, 1, 2, 3; VERIFY(mat.qr().isFullRank()); mat << 1, 1, 1, 2, 2, 2, 1, 2, 3; VERIFY(!mat.qr().isFullRank()); } }
void test_product_notemporary() { int s; for(int i = 0; i < g_repeat; i++) { s = ei_random<int>(16,320); CALL_SUBTEST_1( product_notemporary(MatrixXf(s, s)) ); s = ei_random<int>(16,120); CALL_SUBTEST_2( product_notemporary(MatrixXcd(s,s)) ); } }
void test_product_extra() { for(int i = 0; i < g_repeat; i++) { CALL_SUBTEST_1( product_extra(MatrixXf(internal::random<int>(1,EIGEN_TEST_MAX_SIZE), internal::random<int>(1,EIGEN_TEST_MAX_SIZE))) ); CALL_SUBTEST_2( product_extra(MatrixXd(internal::random<int>(1,EIGEN_TEST_MAX_SIZE), internal::random<int>(1,EIGEN_TEST_MAX_SIZE))) ); CALL_SUBTEST_2( mat_mat_scalar_scalar_product() ); CALL_SUBTEST_3( product_extra(MatrixXcf(internal::random<int>(1,EIGEN_TEST_MAX_SIZE/2), internal::random<int>(1,EIGEN_TEST_MAX_SIZE/2))) ); CALL_SUBTEST_4( product_extra(MatrixXcd(internal::random<int>(1,EIGEN_TEST_MAX_SIZE/2), internal::random<int>(1,EIGEN_TEST_MAX_SIZE/2))) ); CALL_SUBTEST_5( zero_sized_objects() ); } }
void test_eigen2_inverse() { for(int i = 0; i < g_repeat; i++) { CALL_SUBTEST_1( inverse(Matrix<double,1,1>()) ); CALL_SUBTEST_2( inverse(Matrix2d()) ); CALL_SUBTEST_3( inverse(Matrix3f()) ); CALL_SUBTEST_4( inverse(Matrix4f()) ); CALL_SUBTEST_5( inverse(MatrixXf(8,8)) ); CALL_SUBTEST_6( inverse(MatrixXcd(7,7)) ); } }
void test_upperbidiagonalization() { for(int i = 0; i < g_repeat; i++) { CALL_SUBTEST_1( upperbidiag(MatrixXf(3,3)) ); CALL_SUBTEST_2( upperbidiag(MatrixXd(17,12)) ); CALL_SUBTEST_3( upperbidiag(MatrixXcf(20,20)) ); CALL_SUBTEST_4( upperbidiag(MatrixXcd(16,15)) ); CALL_SUBTEST_5( upperbidiag(Matrix<float,6,4>()) ); CALL_SUBTEST_6( upperbidiag(Matrix<float,5,5>()) ); CALL_SUBTEST_7( upperbidiag(Matrix<double,4,3>()) ); } }
void test_eigensolver_complex() { int s = 0; for(int i = 0; i < g_repeat; i++) { CALL_SUBTEST_1( eigensolver(Matrix4cf()) ); s = internal::random<int>(1,EIGEN_TEST_MAX_SIZE/4); CALL_SUBTEST_2( eigensolver(MatrixXcd(s,s)) ); CALL_SUBTEST_3( eigensolver(Matrix<std::complex<float>, 1, 1>()) ); CALL_SUBTEST_4( eigensolver(Matrix3f()) ); } CALL_SUBTEST_1( eigensolver_verify_assert(Matrix4cf()) ); s = internal::random<int>(1,EIGEN_TEST_MAX_SIZE/4); CALL_SUBTEST_2( eigensolver_verify_assert(MatrixXcd(s,s)) ); CALL_SUBTEST_3( eigensolver_verify_assert(Matrix<std::complex<float>, 1, 1>()) ); CALL_SUBTEST_4( eigensolver_verify_assert(Matrix3f()) ); // Test problem size constructors CALL_SUBTEST_5(ComplexEigenSolver<MatrixXf> tmp(s)); TEST_SET_BUT_UNUSED_VARIABLE(s) }
void test_basicstuff() { for(int i = 0; i < g_repeat; i++) { CALL_SUBTEST_1( basicStuff(Matrix<float, 1, 1>()) ); CALL_SUBTEST_2( basicStuff(Matrix4d()) ); CALL_SUBTEST_3( basicStuff(MatrixXcf(internal::random<int>(1,EIGEN_TEST_MAX_SIZE), internal::random<int>(1,EIGEN_TEST_MAX_SIZE))) ); CALL_SUBTEST_4( basicStuff(MatrixXi(internal::random<int>(1,EIGEN_TEST_MAX_SIZE), internal::random<int>(1,EIGEN_TEST_MAX_SIZE))) ); CALL_SUBTEST_5( basicStuff(MatrixXcd(internal::random<int>(1,EIGEN_TEST_MAX_SIZE), internal::random<int>(1,EIGEN_TEST_MAX_SIZE))) ); CALL_SUBTEST_6( basicStuff(Matrix<float, 100, 100>()) ); CALL_SUBTEST_7( basicStuff(Matrix<long double,Dynamic,Dynamic>(internal::random<int>(1,EIGEN_TEST_MAX_SIZE),internal::random<int>(1,EIGEN_TEST_MAX_SIZE))) ); CALL_SUBTEST_3( basicStuffComplex(MatrixXcf(internal::random<int>(1,EIGEN_TEST_MAX_SIZE), internal::random<int>(1,EIGEN_TEST_MAX_SIZE))) ); CALL_SUBTEST_5( basicStuffComplex(MatrixXcd(internal::random<int>(1,EIGEN_TEST_MAX_SIZE), internal::random<int>(1,EIGEN_TEST_MAX_SIZE))) ); } CALL_SUBTEST_1(fixedSizeMatrixConstruction<unsigned char>()); CALL_SUBTEST_1(fixedSizeMatrixConstruction<double>()); CALL_SUBTEST_1(fixedSizeMatrixConstruction<double>()); CALL_SUBTEST_2(casting()); }
void test_triangular() { for(int i = 0; i < g_repeat ; i++) { int r = ei_random<int>(2,20); EIGEN_UNUSED_VARIABLE(r); int c = ei_random<int>(2,20); EIGEN_UNUSED_VARIABLE(c); CALL_SUBTEST_1( triangular_square(Matrix<float, 1, 1>()) ); CALL_SUBTEST_2( triangular_square(Matrix<float, 2, 2>()) ); CALL_SUBTEST_3( triangular_square(Matrix3d()) ); CALL_SUBTEST_4( triangular_square(Matrix<std::complex<float>,8, 8>()) ); CALL_SUBTEST_5( triangular_square(MatrixXcd(r,r)) ); CALL_SUBTEST_6( triangular_square(Matrix<float,Dynamic,Dynamic,RowMajor>(r, r)) ); CALL_SUBTEST_7( triangular_rect(Matrix<float, 4, 5>()) ); CALL_SUBTEST_8( triangular_rect(Matrix<double, 6, 2>()) ); CALL_SUBTEST_9( triangular_rect(MatrixXcf(r, c)) ); CALL_SUBTEST_5( triangular_rect(MatrixXcd(r, c)) ); CALL_SUBTEST_6( triangular_rect(Matrix<float,Dynamic,Dynamic,RowMajor>(r, c)) ); } }
void test_eigen2_linearstructure() { for(int i = 0; i < g_repeat; i++) { CALL_SUBTEST_1( linearStructure(Matrix<float, 1, 1>()) ); CALL_SUBTEST_2( linearStructure(Matrix2f()) ); CALL_SUBTEST_3( linearStructure(Vector3d()) ); CALL_SUBTEST_4( linearStructure(Matrix4d()) ); CALL_SUBTEST_5( linearStructure(MatrixXcf(3, 3)) ); CALL_SUBTEST_6( linearStructure(MatrixXf(8, 12)) ); CALL_SUBTEST_7( linearStructure(MatrixXi(8, 12)) ); CALL_SUBTEST_8( linearStructure(MatrixXcd(20, 20)) ); } }
void test_eigen2_qr() { for(int i = 0; i < 1; i++) { CALL_SUBTEST_1( qr(Matrix2f()) ); CALL_SUBTEST_2( qr(Matrix4d()) ); CALL_SUBTEST_3( qr(MatrixXf(12,8)) ); CALL_SUBTEST_4( qr(MatrixXcd(5,5)) ); CALL_SUBTEST_4( qr(MatrixXcd(7,3)) ); } #ifdef EIGEN_TEST_PART_5 // small isFullRank test { Matrix3d mat; mat << 1, 45, 1, 2, 2, 2, 1, 2, 3; VERIFY(mat.qr().isFullRank()); mat << 1, 1, 1, 2, 2, 2, 1, 2, 3; //always returns true in eigen2support //VERIFY(!mat.qr().isFullRank()); } #endif }
void test_product_notemporary() { int s; for(int i = 0; i < g_repeat; i++) { s = internal::random<int>(16,EIGEN_TEST_MAX_SIZE); CALL_SUBTEST_1( product_notemporary(MatrixXf(s, s)) ); s = internal::random<int>(16,EIGEN_TEST_MAX_SIZE); CALL_SUBTEST_2( product_notemporary(MatrixXd(s, s)) ); s = internal::random<int>(16,EIGEN_TEST_MAX_SIZE/2); CALL_SUBTEST_3( product_notemporary(MatrixXcf(s,s)) ); s = internal::random<int>(16,EIGEN_TEST_MAX_SIZE/2); CALL_SUBTEST_4( product_notemporary(MatrixXcd(s,s)) ); } }
void test_linearstructure() { for(int i = 0; i < g_repeat; i++) { CALL_SUBTEST_1( linearStructure(Matrix<float, 1, 1>()) ); CALL_SUBTEST_2( linearStructure(Matrix2f()) ); CALL_SUBTEST_3( linearStructure(Vector3d()) ); CALL_SUBTEST_4( linearStructure(Matrix4d()) ); CALL_SUBTEST_5( linearStructure(MatrixXcf(internal::random<int>(1,EIGEN_TEST_MAX_SIZE/2), internal::random<int>(1,EIGEN_TEST_MAX_SIZE/2))) ); CALL_SUBTEST_6( linearStructure(MatrixXf (internal::random<int>(1,EIGEN_TEST_MAX_SIZE), internal::random<int>(1,EIGEN_TEST_MAX_SIZE))) ); CALL_SUBTEST_7( linearStructure(MatrixXi (internal::random<int>(1,EIGEN_TEST_MAX_SIZE), internal::random<int>(1,EIGEN_TEST_MAX_SIZE))) ); CALL_SUBTEST_8( linearStructure(MatrixXcd(internal::random<int>(1,EIGEN_TEST_MAX_SIZE/2), internal::random<int>(1,EIGEN_TEST_MAX_SIZE/2))) ); CALL_SUBTEST_9( linearStructure(ArrayXXf (internal::random<int>(1,EIGEN_TEST_MAX_SIZE), internal::random<int>(1,EIGEN_TEST_MAX_SIZE))) ); } }
void test_sizeof() { CALL_SUBTEST(verifySizeOf(Matrix<float, 1, 1>()) ); CALL_SUBTEST(verifySizeOf(Matrix4d()) ); CALL_SUBTEST(verifySizeOf(Matrix<double, 4, 2>()) ); CALL_SUBTEST(verifySizeOf(Matrix<bool, 7, 5>()) ); CALL_SUBTEST(verifySizeOf(MatrixXcf(3, 3)) ); CALL_SUBTEST(verifySizeOf(MatrixXi(8, 12)) ); CALL_SUBTEST(verifySizeOf(MatrixXcd(20, 20)) ); CALL_SUBTEST(verifySizeOf(Matrix<float, 100, 100>()) ); VERIFY(sizeof(std::complex<float>) == 2*sizeof(float)); VERIFY(sizeof(std::complex<double>) == 2*sizeof(double)); }
void test_eigen2_eigensolver() { for(int i = 0; i < g_repeat; i++) { // very important to test a 3x3 matrix since we provide a special path for it CALL_SUBTEST_1( selfadjointeigensolver(Matrix3f()) ); CALL_SUBTEST_2( selfadjointeigensolver(Matrix4d()) ); CALL_SUBTEST_3( selfadjointeigensolver(MatrixXf(7,7)) ); CALL_SUBTEST_4( selfadjointeigensolver(MatrixXcd(5,5)) ); CALL_SUBTEST_5( selfadjointeigensolver(MatrixXd(19,19)) ); CALL_SUBTEST_6( eigensolver(Matrix4f()) ); CALL_SUBTEST_5( eigensolver(MatrixXd(17,17)) ); } }
void test_diagonal() { for(int i = 0; i < g_repeat; i++) { CALL_SUBTEST_1( diagonal(Matrix<float, 1, 1>()) ); CALL_SUBTEST_1( diagonal(Matrix<float, 4, 9>()) ); CALL_SUBTEST_1( diagonal(Matrix<float, 7, 3>()) ); CALL_SUBTEST_2( diagonal(Matrix4d()) ); CALL_SUBTEST_2( diagonal(MatrixXcf(internal::random<int>(1,EIGEN_TEST_MAX_SIZE), internal::random<int>(1,EIGEN_TEST_MAX_SIZE))) ); CALL_SUBTEST_2( diagonal(MatrixXi(internal::random<int>(1,EIGEN_TEST_MAX_SIZE), internal::random<int>(1,EIGEN_TEST_MAX_SIZE))) ); CALL_SUBTEST_2( diagonal(MatrixXcd(internal::random<int>(1,EIGEN_TEST_MAX_SIZE), internal::random<int>(1,EIGEN_TEST_MAX_SIZE))) ); CALL_SUBTEST_1( diagonal(MatrixXf(internal::random<int>(1,EIGEN_TEST_MAX_SIZE), internal::random<int>(1,EIGEN_TEST_MAX_SIZE))) ); CALL_SUBTEST_1( diagonal(Matrix<float,Dynamic,4>(3, 4)) ); } }
void test_product_trmv() { int s; for(int i = 0; i < g_repeat ; i++) { CALL_SUBTEST_1( trmv(Matrix<float, 1, 1>()) ); CALL_SUBTEST_2( trmv(Matrix<float, 2, 2>()) ); CALL_SUBTEST_3( trmv(Matrix3d()) ); s = ei_random<int>(1,200); CALL_SUBTEST_4( trmv(MatrixXcf(s,s)) ); s = ei_random<int>(1,200); CALL_SUBTEST_5( trmv(MatrixXcd(s,s)) ); s = ei_random<int>(1,320); CALL_SUBTEST_6( trmv(Matrix<float,Dynamic,Dynamic,RowMajor>(s, s)) ); } }
void test_selfadjoint() { for(int i = 0; i < g_repeat ; i++) { int s = internal::random<int>(1,20); EIGEN_UNUSED_VARIABLE(s); CALL_SUBTEST_1( selfadjoint(Matrix<float, 1, 1>()) ); CALL_SUBTEST_2( selfadjoint(Matrix<float, 2, 2>()) ); CALL_SUBTEST_3( selfadjoint(Matrix3cf()) ); CALL_SUBTEST_4( selfadjoint(MatrixXcd(s,s)) ); CALL_SUBTEST_5( selfadjoint(Matrix<float,Dynamic,Dynamic,RowMajor>(s, s)) ); } CALL_SUBTEST_1( bug_159() ); }
void test_product_syrk() { for(int i = 0; i < g_repeat ; i++) { int s; s = internal::random<int>(1,320); CALL_SUBTEST_1( syrk(MatrixXf(s, s)) ); s = internal::random<int>(1,320); CALL_SUBTEST_2( syrk(MatrixXd(s, s)) ); s = internal::random<int>(1,200); CALL_SUBTEST_3( syrk(MatrixXcf(s, s)) ); s = internal::random<int>(1,200); CALL_SUBTEST_4( syrk(MatrixXcd(s, s)) ); } }
void test_product_syrk() { for(int i = 0; i < g_repeat ; i++) { int s; s = internal::random<int>(1,EIGEN_TEST_MAX_SIZE); CALL_SUBTEST_1( syrk(MatrixXf(s, s)) ); CALL_SUBTEST_2( syrk(MatrixXd(s, s)) ); TEST_SET_BUT_UNUSED_VARIABLE(s) s = internal::random<int>(1,EIGEN_TEST_MAX_SIZE/2); CALL_SUBTEST_3( syrk(MatrixXcf(s, s)) ); CALL_SUBTEST_4( syrk(MatrixXcd(s, s)) ); TEST_SET_BUT_UNUSED_VARIABLE(s) } }
void test_product_trmv() { int s; for(int i = 0; i < g_repeat ; i++) { CALL_SUBTEST_1( trmv(Matrix<float, 1, 1>()) ); CALL_SUBTEST_2( trmv(Matrix<float, 2, 2>()) ); CALL_SUBTEST_3( trmv(Matrix3d()) ); s = internal::random<int>(1,EIGEN_TEST_MAX_SIZE/2); CALL_SUBTEST_4( trmv(MatrixXcf(s,s)) ); s = internal::random<int>(1,EIGEN_TEST_MAX_SIZE/2); CALL_SUBTEST_5( trmv(MatrixXcd(s,s)) ); s = internal::random<int>(1,EIGEN_TEST_MAX_SIZE); CALL_SUBTEST_6( trmv(Matrix<float,Dynamic,Dynamic,RowMajor>(s, s)) ); } EIGEN_UNUSED_VARIABLE(s); }
void test_inverse() { int s; for(int i = 0; i < g_repeat; i++) { CALL_SUBTEST_1( inverse(Matrix<double,1,1>()) ); CALL_SUBTEST_2( inverse(Matrix2d()) ); CALL_SUBTEST_3( inverse(Matrix3f()) ); CALL_SUBTEST_4( inverse(Matrix4f()) ); CALL_SUBTEST_4( inverse(Matrix<float,4,4,DontAlign>()) ); s = internal::random<int>(50,320); CALL_SUBTEST_5( inverse(MatrixXf(s,s)) ); s = internal::random<int>(25,100); CALL_SUBTEST_6( inverse(MatrixXcd(s,s)) ); CALL_SUBTEST_7( inverse(Matrix4d()) ); CALL_SUBTEST_7( inverse(Matrix<double,4,4,DontAlign>()) ); } }
void test_product_selfadjoint() { int s = 0; for(int i = 0; i < g_repeat ; i++) { CALL_SUBTEST_1( product_selfadjoint(Matrix<float, 1, 1>()) ); CALL_SUBTEST_2( product_selfadjoint(Matrix<float, 2, 2>()) ); CALL_SUBTEST_3( product_selfadjoint(Matrix3d()) ); s = internal::random<int>(1,EIGEN_TEST_MAX_SIZE/2); CALL_SUBTEST_4( product_selfadjoint(MatrixXcf(s, s)) ); s = internal::random<int>(1,EIGEN_TEST_MAX_SIZE/2); CALL_SUBTEST_5( product_selfadjoint(MatrixXcd(s,s)) ); s = internal::random<int>(1,EIGEN_TEST_MAX_SIZE); CALL_SUBTEST_6( product_selfadjoint(MatrixXd(s,s)) ); s = internal::random<int>(1,EIGEN_TEST_MAX_SIZE); CALL_SUBTEST_7( product_selfadjoint(Matrix<float,Dynamic,Dynamic,RowMajor>(s,s)) ); } TEST_SET_BUT_UNUSED_VARIABLE(s) }
void test_block() { for(int i = 0; i < g_repeat; i++) { CALL_SUBTEST_1( block(Matrix<float, 1, 1>()) ); CALL_SUBTEST_2( block(Matrix4d()) ); CALL_SUBTEST_3( block(MatrixXcf(3, 3)) ); CALL_SUBTEST_4( block(MatrixXi(8, 12)) ); CALL_SUBTEST_5( block(MatrixXcd(20, 20)) ); CALL_SUBTEST_6( block(MatrixXf(20, 20)) ); CALL_SUBTEST_8( block(Matrix<float,Dynamic,4>(3, 4)) ); #ifndef EIGEN_DEFAULT_TO_ROW_MAJOR CALL_SUBTEST_6( data_and_stride(MatrixXf(internal::random(5,50), internal::random(5,50))) ); CALL_SUBTEST_7( data_and_stride(Matrix<int,Dynamic,Dynamic,RowMajor>(internal::random(5,50), internal::random(5,50))) ); #endif } }