32 #if defined(__cpp_lib_math_special_functions) || !defined(NUMCPP_NO_USE_BOOST)
39 #ifndef __cpp_lib_math_special_functions
40 #include "boost/math/special_functions/ellint_3.hpp"
43 #include <type_traits>
60 template<
typename dtype1,
typename dtype2,
typename dtype3>
61 auto ellint_3(dtype1 inK, dtype2 inV, dtype3 inP)
67 #ifdef __cpp_lib_math_special_functions
85 template<
typename dtype1,
typename dtype2,
typename dtype3>
88 if (inArrayK.
size() != inArrayV.
size() || inArrayK.
size() != inArrayP.
size())
93 NdArray<decltype(
ellint_3(dtype1{ 0 }, dtype2{ 0 }, dtype3{ 0 }))> returnArray(inArrayK.
shape());
97 returnArray[i] =
ellint_3(inArrayK[i], inArrayV[i], inArrayP[i]);
#define THROW_INVALID_ARGUMENT_ERROR(msg)
Definition: Error.hpp:36
#define STATIC_ASSERT_ARITHMETIC(dtype)
Definition: StaticAsserts.hpp:37
Holds 1D and 2D arrays, the main work horse of the NumCpp library.
Definition: NdArrayCore.hpp:72
size_type size() const noexcept
Definition: NdArrayCore.hpp:4289
Shape shape() const noexcept
Definition: NdArrayCore.hpp:4276
auto ellint_3(dtype1 inK, dtype2 inV, dtype3 inP)
Definition: ellint_3.hpp:61
auto ellint_3(const NdArray< dtype1 > &inArrayK, const NdArray< dtype2 > &inArrayV, const NdArray< dtype3 > &inArrayP)
Definition: ellint_3.hpp:86
Definition: Coordinate.hpp:45
std::uint32_t uint32
Definition: Types.hpp:40