diff --git a/CHANGELOG.md b/CHANGELOG.md index f2ad67edf49..1860bb8aafa 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -19,6 +19,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 * Added implementation of `dpnp.piecewise` [#2550](https://github.com/IntelPython/dpnp/pull/2550) * Added implementation of `dpnp.linalg.lu_solve` for 2D inputs (SciPy-compatible) [#2575](https://github.com/IntelPython/dpnp/pull/2575) * Added implementation of `dpnp.special.erfc` [#2588](https://github.com/IntelPython/dpnp/pull/2588) +* Added implementation of `dpnp.special.erfcx` [#2596](https://github.com/IntelPython/dpnp/pull/2596) ### Changed diff --git a/doc/reference/special.rst b/doc/reference/special.rst index 5e6735a6afb..3efc836fa89 100644 --- a/doc/reference/special.rst +++ b/doc/reference/special.rst @@ -15,6 +15,5 @@ Error function and Fresnel integrals erf erfc erfcx - erfi erfinv erfcinv diff --git a/dpnp/backend/extensions/ufunc/elementwise_functions/erf_funcs.cpp b/dpnp/backend/extensions/ufunc/elementwise_functions/erf_funcs.cpp index 1a441d23e83..1f6f15be424 100644 --- a/dpnp/backend/extensions/ufunc/elementwise_functions/erf_funcs.cpp +++ b/dpnp/backend/extensions/ufunc/elementwise_functions/erf_funcs.cpp @@ -209,6 +209,7 @@ static void populate(py::module_ m, MACRO_DEFINE_IMPL(erf, Erf); MACRO_DEFINE_IMPL(erfc, Erfc); +MACRO_DEFINE_IMPL(erfcx, Erfcx); } // namespace impl void init_erf_funcs(py::module_ m) @@ -228,5 +229,9 @@ void init_erf_funcs(py::module_ m) impl::populate( m, "_erfc", "", impl::erfc_contig_dispatch_vector, impl::erfc_strided_dispatch_vector); + + impl::populate( + m, "_erfcx", "", impl::erfcx_contig_dispatch_vector, + impl::erfcx_strided_dispatch_vector); } } // namespace dpnp::extensions::ufunc diff --git a/dpnp/backend/extensions/vm/erf_funcs.cpp b/dpnp/backend/extensions/vm/erf_funcs.cpp index 2414c56a9e5..4630ccc10be 100644 --- a/dpnp/backend/extensions/vm/erf_funcs.cpp +++ b/dpnp/backend/extensions/vm/erf_funcs.cpp @@ -130,6 +130,7 @@ using ew_cmn_ns::unary_contig_impl_fn_ptr_t; MACRO_DEFINE_IMPL(erf, Erf); MACRO_DEFINE_IMPL(erfc, Erfc); +MACRO_DEFINE_IMPL(erfcx, Erfcx); template