ITS.Propagation.LFMF 1.1
Part of the NTIA/ITS Propagation Library
|
Implements a function to find roots of equations involving Airy functions. More...
Functions | |
std::complex< double > | ITS::Propagation::LFMF::WiRoot (const int i, std::complex< double > &DWi, const std::complex< double > q, std::complex< double > &Wi, const AiryKind kind, const AiryScaling scaling) |
Finds the roots to the equation \( Wi'(ti) - q*Wi(ti) = 0 \). | |
Implements a function to find roots of equations involving Airy functions.
std::complex< double > ITS::Propagation::LFMF::WiRoot | ( | const int | i, |
std::complex< double > & | DWi, | ||
const std::complex< double > | q, | ||
std::complex< double > & | Wi, | ||
const AiryKind | kind, | ||
const AiryScaling | scaling ) |
Finds the roots to the equation \( Wi'(ti) - q*Wi(ti) = 0 \).
The parameter i
selects the \(i\)-th root of the equation. The function \( Wi(ti) \) is the "Airy function of the third kind" as defined by Hufford [1] and Wait. The root is found by iteration starting from a real root.
Wi
and DWi
will not be the same. The input parameters for kind and scale are used here as they are in Airy()
for consistency.[in] | i | The \( i \)-th complex root of \( Wi'^{(2)}(ti) - q*Wi^{(2)}(ti) \), starting with 1. |
[in] | q | Intermediate value: \( -j \nu \delta \) |
[in] | kind | Kind of Airy function to use, either WONE or WTWO |
[in] | scaling | Type of scaling to use, either HUFFORD or WAIT |
[out] | DWi | Derivative of "Airy function of the third kind" \( Wi'^{(2)}(ti) \) |
[out] | Wi | "Airy function of the third kind" \( Wi^{(2)}(ti) \) |
std::invalid_argument | If the values provided for i , kind , or scaling are not valid for this function. |
std::runtime_error | If the root finding algorithm fails to converge. |
References