maxframe.tensor.special.elliprj#
- maxframe.tensor.special.elliprj(x, y, z, p, **kwargs)[source]#
Symmetric elliptic integral of the third kind.
The function RJ is defined as [1]
\[R_{\mathrm{J}}(x, y, z, p) = \frac{3}{2} \int_0^{+\infty} [(t + x) (t + y) (t + z)]^{-1/2} (t + p)^{-1} dt\]Warning
This function should be considered experimental when the inputs are unbalanced. Check correctness with another independent implementation.
- Parameters:
x (array_like) – Real or complex input parameters. x, y, or z are numbers in the complex plane cut along the negative real axis (subject to further constraints, see Notes), and at most one of them can be zero. p must be non-zero.
y (array_like) – Real or complex input parameters. x, y, or z are numbers in the complex plane cut along the negative real axis (subject to further constraints, see Notes), and at most one of them can be zero. p must be non-zero.
z (array_like) – Real or complex input parameters. x, y, or z are numbers in the complex plane cut along the negative real axis (subject to further constraints, see Notes), and at most one of them can be zero. p must be non-zero.
p (array_like) – Real or complex input parameters. x, y, or z are numbers in the complex plane cut along the negative real axis (subject to further constraints, see Notes), and at most one of them can be zero. p must be non-zero.
out (ndarray, optional) – Optional output array for the function values
- Returns:
R – Value of the integral. If all of x, y, z, and p are real, the return value is real. Otherwise, the return value is complex.
If p is real and negative, while x, y, and z are real, non-negative, and at most one of them is zero, the Cauchy principal value is returned. [1] [2]
- Return type:
scalar or ndarray
See also
Notes
The code implements Carlson’s algorithm based on the duplication theorems and series expansion up to the 7th order. [3] The algorithm is slightly different from its earlier incarnation as it appears in [1], in that the call to elliprc (or
atan/atanh, see [4]) is no longer needed in the inner loop. Asymptotic approximations are used where arguments differ widely in the order of magnitude. [5]The input values are subject to certain sufficient but not necessary constraints when input arguments are complex. Notably,
x,y, andzmust have non-negative real parts, unless two of them are non-negative and complex-conjugates to each other while the other is a real non-negative number. [1] If the inputs do not satisfy the sufficient condition described in Ref. [1] they are rejected outright with the output set to NaN.In the case where one of
x,y, andzis equal top, the functionelliprdshould be preferred because of its less restrictive domain.References