23 template<
typename T,
typename T_FP>
36 std::complex<double> log_value, log_value_cpu;
46 CHECK(log_value == ComplexApprox(log_value_cpu));
56 using FullPrecValue = std::complex<double>;
57 using Value = std::complex<TestType>;
59 using FullPrecValue = double;
60 using Value = TestType;
63 SECTION(
"N=117") { test_inverse<Value, FullPrecValue>(117); }
65 SECTION(
"N=911") { test_inverse<Value, FullPrecValue>(911); }
sycl::queue & getSYCLDefaultDeviceDefaultQueue()
return a reference to the per-device default queue
helper functions for EinsplineSetBuilder
CHECKED_ELSE(check_matrix_result.result)
void resize(size_type n, size_type m)
Resize the container.
implements matrix inversion via cuSolverDN
void makeRngSpdMatrix(testing::RandomForTest< RngValueType< T >> &rng, Matrix< T > &mat_spd)
helper class to compute matrix inversion and the log value of determinant
void test_inverse(const std::int64_t N)
CheckMatrixResult checkMatrix(M1 &a_mat, M2 &b_mat, const bool check_all=false, std::optional< const double > eps=std::nullopt)
This function checks equality a_mat and b_mat elements M1, M2 need to have their element type declare...
CHECK(log_values[0]==ComplexApprox(std::complex< double >{ 5.603777579195571, -6.1586603331188225 }))
TEMPLATE_TEST_CASE("RandomRotationMatrix", "[numerics]", float, double)
std::enable_if_t< std::is_same< T_FP, TMAT >::value > invert_transpose(const Matrix< TMAT, ALLOC1 > &amat, Matrix< TMAT, ALLOC2 > &invMat, std::complex< TREAL > &LogDet)
compute the inverse of the transpose of matrix A and its determinant value in log when T_FP and TMAT ...
std::enable_if_t< std::is_same< TMAT, T_FP >::value > invert_transpose(const Matrix< TMAT > &logdetT, Matrix< TMAT > &Ainv, Matrix< TMAT, SYCLAllocator< TMAT >> &Ainv_gpu, std::complex< TREAL > &log_value, sycl::queue &m_queue)
compute the inverse of the transpose of matrix A and its determinant value in log when T_FP and TMAT ...
Functor to provide scope for rng when making SpdMatrix for testing.