nag_legendre_p (s22aac) (PDF version)
s Chapter Contents
s Chapter Introduction
NAG Library Manual

NAG Library Function Document

nag_legendre_p (s22aac)

+ Contents

    1  Purpose
    7  Accuracy

1  Purpose

nag_legendre_p (s22aac) returns a sequence of values for either the unnormalized or normalized Legendre functions of the first kind Pnmx or Pnm¯x for real x of a given order m and degree n=0,1,,N.

2  Specification

#include <nag.h>
#include <nags.h>
void  nag_legendre_p (Integer mode, double x, Integer m, Integer nl, double p[], NagError *fail)

3  Description

nag_legendre_p (s22aac) evaluates a sequence of values for either the unnormalized or normalized Legendre (m=0) or associated Legendre (m0) functions of the first kind Pnmx or Pnm¯x, where x is real with -1x1, of order m and degree n=0,1,,N defined by
Pnmx = 1-x2m/2 dmdxm Pnx   if ​m0, Pnmx = n+m! n-m! Pn-mx   if ​m<0  and Pnm¯x = 2n+1 2 n-m! n+m! Pnmx
respectively; Pnx is the (unassociated) Legendre polynomial of degree n given by
PnxPn0x=12nn! dndxn x2-1n
(the Rodrigues formula). Note that some authors (e.g., Abramowitz and Stegun (1972)) include an additional factor of -1m (the Condon–Shortley Phase) in the definitions of Pnmx and Pnm¯x. They use the notation Pmnx-1mPnmx in order to distinguish between the two cases.
nag_legendre_p (s22aac) is based on a standard recurrence relation described in Section 8.5.3 of Abramowitz and Stegun (1972). Constraints are placed on the values of m and n in order to avoid the possibility of machine overflow. It also sets the appropriate elements of the array p (see Section 5) to zero whenever the required function is not defined for certain values of m and n (e.g., m=-5 and n=3).

4  References

Abramowitz M and Stegun I A (1972) Handbook of Mathematical Functions (3rd Edition) Dover Publications

5  Arguments

1:     modeIntegerInput
On entry: indicates whether the sequence of function values is to be returned unnormalized or normalized.
mode=1
The sequence of function values is returned unnormalized.
mode=2
The sequence of function values is returned normalized.
Constraint: mode=1 or 2.
2:     xdoubleInput
On entry: the argument x of the function.
Constraint: absx1.0.
3:     mIntegerInput
On entry: the order m of the function.
Constraint: absm 27 .
4:     nlIntegerInput
On entry: the degree N of the last function required in the sequence.
Constraints:
  • nl0;
  • if m=0, nl100;
  • if m0, nl 55 - absm .
5:     p[nl+1]doubleOutput
On exit: the required sequence of function values as follows:
  • if mode=1, p[n] contains Pnm x , for n=0,1,,N;
  • if mode=2, p[n] contains Pnm ¯ x , for n=0,1,,N.
6:     failNagError *Input/Output
The NAG error argument (see Section 3.6 in the Essential Introduction).

6  Error Indicators and Warnings

NE_BAD_PARAM
On entry, argument value had an illegal value.
NE_INT
On entry, m=value.
Constraint: m27.
On entry, mode=value.
Constraint: mode2.
On entry, mode=value.
Constraint: mode1.
On entry, nl=value.
Constraint: nl0.
NE_INT_2
On entry, nl=value and m=value.
Constraint: nl+m55.
On entry, nl=value.
Constraint: nl100 when m=0.
NE_INTERNAL_ERROR
An internal error has occurred in this function. Check the function call and any array sizes. If the call is correct then please contact NAG for assistance.
NE_REAL
On entry, x=value.
Constraint: x1.0.

7  Accuracy

The computed function values should be accurate to within a small multiple of the machine precision except when underflow (or overflow) occurs, in which case the true function values are within a small multiple of the underflow (or overflow) threshold of the machine.

8  Parallelism and Performance

Not applicable.

9  Further Comments

None.

10  Example

This example reads the values of the arguments x, m and N from a file, calculates the sequence of unnormalized associated Legendre function values Pnmx,Pn+1mx,,Pn+Nmx, and prints the results.

10.1  Program Text

Program Text (s22aace.c)

10.2  Program Data

Program Data (s22aace.d)

10.3  Program Results

Program Results (s22aace.r)


nag_legendre_p (s22aac) (PDF version)
s Chapter Contents
s Chapter Introduction
NAG Library Manual

© The Numerical Algorithms Group Ltd, Oxford, UK. 2014