diff --git a/cxx/src/integrals/ao_integrals/uq_atom_symm_blocked_driver.cpp b/cxx/src/integrals/ao_integrals/uq_atom_symm_blocked_driver.cpp index 3458b632..b59a651f 100644 --- a/cxx/src/integrals/ao_integrals/uq_atom_symm_blocked_driver.cpp +++ b/cxx/src/integrals/ao_integrals/uq_atom_symm_blocked_driver.cpp @@ -339,6 +339,9 @@ MODULE_RUN(UQAtomSymmBlockedDriver) { Kernel k(shape, aos, mean); t_w_error = visit_contiguous_buffer(k, t_buffer, e_buffer); + } else if(uq_type == "taylor model") { + Kernel k(shape, aos, mean); + t_w_error = visit_contiguous_buffer(k, t_buffer, e_buffer); } else { throw std::runtime_error( "integrals::ao_integrals::UQAtomSymmBlockedDriver: Invalid UQ type " diff --git a/cxx/src/integrals/ao_integrals/uq_driver.cpp b/cxx/src/integrals/ao_integrals/uq_driver.cpp index 7ceea6a7..f53d8e69 100644 --- a/cxx/src/integrals/ao_integrals/uq_driver.cpp +++ b/cxx/src/integrals/ao_integrals/uq_driver.cpp @@ -145,6 +145,9 @@ MODULE_RUN(UQDriver) { } else if(uq_type == "thresholded affine") { Kernel k(shape, mean); t_w_error = visit_contiguous_buffer(k, t_buffer, error_buffer); + } else if(uq_type == "taylor model") { + Kernel k(shape, mean); + t_w_error = visit_contiguous_buffer(k, t_buffer, error_buffer); } else { throw std::runtime_error( "integrals::ao_integrals::UQDriver: Invalid UQ type name " + uq_type); diff --git a/cxx/src/integrals/libint/libint.cpp b/cxx/src/integrals/libint/libint.cpp index f453ddfb..2b9a27c2 100644 --- a/cxx/src/integrals/libint/libint.cpp +++ b/cxx/src/integrals/libint/libint.cpp @@ -65,6 +65,11 @@ TEMPLATED_MODULE_RUN(Libint, BraKetType) { tensorwrapper::types::thresholded_affine_type; t = detail_::fill_tensor(basis_sets, op, rv, thresh); + } else if(uq_type == "taylor model") { + using taylor_model_type = + tensorwrapper::types::taylor_model_type; + t = detail_::fill_tensor(basis_sets, op, rv, + thresh); } else { throw std::runtime_error( "integrals::libint::Libint: Invalid UQ type name " + uq_type); diff --git a/tests/cxx/unit/integrals/ao_integrals/test_uq_atom_symm_blocked_driver.cpp b/tests/cxx/unit/integrals/ao_integrals/test_uq_atom_symm_blocked_driver.cpp index a3e0762b..e1637d2a 100644 --- a/tests/cxx/unit/integrals/ao_integrals/test_uq_atom_symm_blocked_driver.cpp +++ b/tests/cxx/unit/integrals/ao_integrals/test_uq_atom_symm_blocked_driver.cpp @@ -105,7 +105,8 @@ auto corr_answer_no_mean(const simde::type::tensor& T, using uq_types = std::tuple, tensorwrapper::types::affine_type, - tensorwrapper::types::thresholded_affine_type>; + tensorwrapper::types::thresholded_affine_type, + tensorwrapper::types::taylor_model_type>; TEMPLATE_LIST_TEST_CASE("UQ Atom Symm Blocked Driver", "", uq_types) { using float_type = TestType; using test_pt = simde::ERI4; @@ -145,6 +146,9 @@ TEMPLATE_LIST_TEST_CASE("UQ Atom Symm Blocked Driver", "", uq_types) { } else if constexpr(tensorwrapper::types::is_thresholded_affine_v< float_type>) { return "thresholded affine"; + } else if constexpr(tensorwrapper::types::is_taylor_model_v< + float_type>) { + return "taylor model"; } else { return ""; // Won't be used because of static assert below. } diff --git a/tests/cxx/unit/integrals/ao_integrals/test_uq_driver.cpp b/tests/cxx/unit/integrals/ao_integrals/test_uq_driver.cpp index d8b66f45..16e81c88 100644 --- a/tests/cxx/unit/integrals/ao_integrals/test_uq_driver.cpp +++ b/tests/cxx/unit/integrals/ao_integrals/test_uq_driver.cpp @@ -162,7 +162,8 @@ auto corr_geometric_mean_answer(const simde::type::tensor& T) { using uq_types = std::tuple, - tensorwrapper::types::thresholded_affine_type>; + tensorwrapper::types::thresholded_affine_type, + tensorwrapper::types::taylor_model_type>; TEMPLATE_LIST_TEST_CASE("UQ Driver", "", uq_types) { using float_type = TestType; using test_pt = simde::ERI4; @@ -199,6 +200,9 @@ TEMPLATE_LIST_TEST_CASE("UQ Driver", "", uq_types) { } else if constexpr(tensorwrapper::types::is_thresholded_affine_v< float_type>) { return "thresholded affine"; + } else if constexpr(tensorwrapper::types::is_taylor_model_v< + float_type>) { + return "taylor model"; } else { return ""; // Won't be used because of static assert below. }