double legendre( unsigned int n, double x ) or double legendre( unsigned int n, float x ) or double legendre( unsigned int n, long double x ) or float legendref( unsigned int n, float x ) or long double legendrel( unsigned int n, long double x )Parameters: The function accepts two mandatory parameters which are described below:
- n: it specifies the degree of the polynomial.
- x: it specifies the argument which denotes a value of a floating-point or integral type
// C++ program to illustrate the above // mentioned three functions #include <cmath> #include <iostream> using namespace std;
int main()
{ // int and double as parameter
cout << "legendre(2,0.3)= " << legendre(2,0.3);
// x as double type parameter
cout << "\nlegendre(3,(double)0.4)=" << legendre(3,( double )0.4);
// x as float
cout << "\nlegendre(3,(float)0.4)= " << legendre(3,( float )0.4);
// legendref
cout << "\nlegendref(3, 0.45)= " << legendref(3, 0.45);
// legendrel
cout << "\nlegendrel(7, 0.50)= " << legendrel(7, 0.50);
return 0;
} |
- If the argument is NaN, NaN is returned and domain error is not reported
- The function is not required to be defined for |x|>1
- If n is greater or equal than 128, the behavior is implementation-defined
// C++ program to illustrate the above // mentioned three functions // domain error #include <cmath> #include <iostream> using namespace std;
int main()
{ // int and double as parameter
cout << "legendre(129, 2)= " << legendre(129, 2);
return 0;
} |
terminate called after throwing an instance of 'std::domain_error' what(): Argument out of range in __poly_legendre_p. legendre(129, 2)=Program 2:
// C++ program to illustrate the above // mentioned three functions // when x is NaN #include <cmath> #include <iostream> using namespace std;
int main()
{ // int and double as parameter
cout << "legendre(129, NaN)= " << legendre(129, sqrt (-2));
return 0;
} |
legendre(129, NaN)= nanProgram 3:
// C++ program to illustrate the above // mentioned three functions // domain error #include <cmath> #include <iostream> using namespace std;
int main()
{ // int and double as parameter
cout << "legendre(129, 2)= " << legendre(129, 2);
return 0;
} |
terminate called after throwing an instance of 'std::domain_error' what(): Argument out of range in __poly_legendre_p.
Article Tags :
Recommended Articles
16. std::min in C++