Namespaces
Variants
Views
Actions

std::sph_neumann, std::sph_neumannf, std::sph_neumannl

From cppreference.com
double      sph_neumann ( unsigned n, double x );

double      sph_neumann ( unsigned n, float x );
double      sph_neumann ( unsigned n, long double x );
float       sph_neumannf( unsigned n, float x  );

long double sph_neumannl( unsigned n, long double x );
(1) (since C++17)
double       sph_neumann( unsigned n, Integral x );
(2) (since C++17)
1) Computes the spherical Bessel function of the second kind, also known as the spherical Neumann function, of n and x.
2) A set of overloads or a function template accepting an argument of any integral type. Equivalent to (1) after casting the argument to double.

Contents

[edit] Parameters

n - the order of the function
x - the argument of the function

[edit] Return value

If no errors occur, returns the value of the spherical Bessel function of the second kind (spherical Neumann function) of n and x, that is n
n
(x) = (π/2x)1/2
N
n+1/2
(x)
where N
n
(x)
is std::cyl_neumann(n,x)) and x≥0

[edit] Error handling

Errors may be reported as specified in math_errhandling

  • If the argument is NaN, NaN is returned and domain error is not reported
  • If n>=128, the behavior is implementation-defined

[edit] Notes

Implementations that do not support C++17, but support ISO 29124:2010, provide this function if __STDCPP_MATH_SPEC_FUNCS__ is defined by the implementation to a value at least 201003L and if the user defines __STDCPP_WANT_MATH_SPEC_FUNCS__ before including any standard library headers.

Implementations that do not support ISO 29124:2010 but support TR 19768:2007 (TR1), provide this function in the header tr1/cmath and namespace std::tr1

An implementation of this function is also available in boost.math

[edit] Example

#include <cmath>
#include <iostream>
int main()
{
    // spot check for n == 1
    double x = 1.2345;
    std::cout << "n_1(" << x << ") = " << std::sph_neumann(1, x) << '\n';
 
    // exact solution for n_1
    std::cout << "-(cos x)/x^2 - (sin x)/x = "
              << -std::cos(x)/(x*x) - std::sin(x)/x << '\n';
}

Output:

n_1(1.2345) = -0.981201
-(cos x)/x^2 - (sin x)/x = -0.981201

[edit] External links

Weisstein, Eric W. "Spherical Bessel Function of the Second Kind." From MathWorld--A Wolfram Web Resource.

[edit] See also

cylindrical Neumann functions
(function) [edit]
spherical Bessel functions (of the first kind)
(function) [edit]