|
mxlib
c++ tools for analyzing astronomical data and other tasks by Jared R. Males. [git repo]
|
| int | mx::sigproc::noll_nm (int &n, int &m, int j) |
| Get the Zernike coefficients n,m corrresponding the Noll index j. | |
| int | mx::sigproc::noll_j (unsigned n, int m) |
| Get the Noll index j corresponding to Zernike coefficients n,m. | |
| int | mx::sigproc::nZernRadOrd (unsigned n) |
| Get the number of Zernikes up to and including a radial order. | |
| template<typename realT> | |
| int | mx::sigproc::zernikeRCoeffs (std::vector< realT > &c, int n, int m) |
| Calculate the coefficients of a Zernike radial polynomial. | |
| template<typename realT, typename calcRealT> | |
| realT | mx::sigproc::zernikeR (realT rho, int n, int m, std::vector< calcRealT > &c) |
| Calculate the value of a Zernike radial polynomial at a given separation. | |
| template<typename realT, typename calcRealT> | |
| realT | mx::sigproc::zernikeR (realT rho, int n, int m) |
| Calculate the value of a Zernike radial polynomial at a given separation. | |
| template<typename realT, typename calcRealT> | |
| realT | mx::sigproc::zernike (realT rho, realT phi, int n, int m, std::vector< calcRealT > &c) |
| Calculate the value of a Zernike radial polynomial at a given radius and angle. | |
| template<typename realT, typename calcRealT> | |
| realT | mx::sigproc::zernike (realT rho, realT phi, int n, int m) |
| Calculate the value of a Zernike radial polynomial at a given radius and angle. | |
| template<typename realT, typename calcRealT> | |
| realT | mx::sigproc::zernike (realT rho, realT phi, int j) |
| Calculate the value of a Zernike radial polynomial at a given radius and angle. | |
| template<typename arrayT, typename calcRealT, int overscan = 2> | |
| int | mx::sigproc::zernike (arrayT &arr, int n, int m, typename arrayT::Scalar xcen, typename arrayT::Scalar ycen, typename arrayT::Scalar rad=-1) |
| Fill in an Eigen-like array with a Zernike polynomial. | |
| template<typename arrayT, typename calcRealT> | |
| int | mx::sigproc::zernike (arrayT &arr, int j, typename arrayT::Scalar xcen, typename arrayT::Scalar ycen, typename arrayT::Scalar rad=-1) |
| Fill in an Eigen-like array with a Zernike polynomial. | |
| template<typename arrayT, typename calcRealT> | |
| int | mx::sigproc::zernike (arrayT &arr, int n, int m, typename arrayT::Scalar rad=-1) |
| Fill in an Eigen-like array with a Zernike polynomial. | |
| template<typename arrayT, typename calcRealT> | |
| int | mx::sigproc::zernike (arrayT &arr, int j, typename arrayT::Scalar rad=-1) |
| Fill in an Eigen-like array with a Zernike polynomial. | |
| template<typename cubeT, typename calcRealT> | |
| int | mx::sigproc::zernikeBasis (cubeT &cube, typename cubeT::Scalar rad=-1, int minj=2) |
| Fill in an Eigencube-like array with Zernike polynomials in Noll order. | |
| template<typename realT> | |
| std::complex< realT > | mx::sigproc::zernikeQ (realT k, realT phi, int n, int m) |
| Calculate the square-normed Fourier transform of a Zernike polynomial at position (k,phi). | |
| template<typename realT> | |
| realT | mx::sigproc::zernikeQNorm (realT k, realT phi, int n, int m) |
| Calculate the square-normed Fourier transform of a Zernike polynomial at position (k,phi). | |
| template<typename realT> | |
| realT | mx::sigproc::zernikeQNorm (realT k, realT phi, int j) |
| Calculate the square-normed Fourier transform of a Zernike polynomial at position (k,phi). | |
| template<typename arrayT> | |
| int | mx::sigproc::zernikeQNorm (arrayT &arr, arrayT &k, arrayT &phi, int j) |
| Fill in an Eigen-like array with the square-normed Fourier transform of a Zernike polynomial. | |
| template<typename realT> | |
| realT | mx::sigproc::zernikePPiston (const realT &kD) |
| Calculate the spatial power spectrum of Piston. | |
| template<typename realT> | |
| realT | mx::sigproc::zernikePTipTilt (const realT &kD) |
| Calculate the spatial power spectrum of Tip & Tilt. | |
| template<typename realT> | |
| realT | mx::sigproc::zernikePDefocus (const realT &kD) |
| Calculate the spatial power spectrum of Defocus. | |
| template<typename realT> | |
| realT | mx::sigproc::zernikePAstig (const realT &kD) |
| Calculate the spatial power spectrum of Astigmatism. | |
| template<typename realT> | |
| realT | mx::sigproc::zernikePComa (const realT &kD) |
| Calculate the spatial power spectrum of Coma. | |
| template<typename realT> | |
| realT | mx::sigproc::zernikePTrefoil (const realT &kD) |
| Calculate the spatial power spectrum of Trefoil. | |
| template<typename realT> | |
| realT | mx::sigproc::zernikeModeDOCKolmogorov (unsigned noll_j) |
| Get the degrees of correction coefficient for Zernike polynomials in Kolmogorov turbulence. | |
| template<typename realT> | |
| realT | mx::sigproc::zernikeModeDOCKolmogorov (unsigned noll_j, realT D, realT r_0) |
| Get the degrees of correction for Zernike polynomials in Kolmogorov turbulence. | |
| template<typename realT> | |
| realT | mx::sigproc::zernikeModeDOCDiffKolmogorov (unsigned noll_j) |
| Get the difference in degrees of correction coefficient for Zernike polynomials in Kolmogorov turbulence. | |
| template<typename realT> | |
| realT | mx::sigproc::zernikeModeDOCDiffKolmogorov (unsigned noll_j, realT D, realT r_0) |
| Get the variance for a single Zernike polynomial in Kolmogorov turbulence. | |
| int mx::sigproc::noll_j | ( | unsigned | n, |
| int | m ) |
Get the Noll index j corresponding to Zernike coefficients n,m.
Calculates the value j for(n,m) following Noll (1976) [24] See also: http://en.wikipedia.org/wiki/Zernike_polynomials
| >= | 0 on success |
| -1 | on error (n-m odd) |
| [in] | n | n the radial index of the Zernike polynomial |
| [in] | m | m the azimuthal index of the Zernnike polynomial. |
Referenced by zernikeModeDOCDiffKolmogorov(), zernikeModeDOCDiffKolmogorov(), zernikeModeDOCKolmogorov(), and zernikeModeDOCKolmogorov().
| int mx::sigproc::noll_nm | ( | int & | n, |
| int & | m, | ||
| int | j ) |
Get the Zernike coefficients n,m corrresponding the Noll index j.
Calculates the values of (n,m) for an index j following Noll (1976) [24] See also: http://en.wikipedia.org/wiki/Zernike_polynomials
If j is odd, this returns m <= 0.
| 0 | on success |
| -1 | on error (j < 1) |
| [out] | n | n the radial index of the Zernike polynomial |
| [out] | m | m the azimuthal index of the Zernnike polynomial. m < 0 if j odd. |
| [in] | j | j the Noll index, j > 0. |
Definition at line 35 of file zernike.cpp.
References mx::invalidarg, mx::internal::mxlib_error_report(), and mx::math::func::sign().
Referenced by mx::AO::analysis::zernikeTemporalPSD< _realT, aosysT >::singleLayerPSD(), TEST_CASE(), zernike(), zernike(), zernikeQNorm(), and zernikeQNorm().
| int mx::sigproc::nZernRadOrd | ( | unsigned | n | ) |
Get the number of Zernikes up to and including a radial order.
Calculates the total number of Zernike polynomials through radial order n. See Noll (1976) [24] See also: http://en.wikipedia.org/wiki/Zernike_polynomials
| the | number of |
| -1 | on error (n-m odd) |
| n | [n] the radial order |
| int mx::sigproc::zernike | ( | arrayT & | arr, |
| int | j, | ||
| typename arrayT::Scalar | rad = -1 ) |
Fill in an Eigen-like array with a Zernike polynomial.
The geometric center of the array, 0.5*(arr.rows()-1), 0.5*(arr.cols()-1), is used as the center. Sets any pixel which is at rad <= r < rad+0.5 pixels to rho = 1, to be consistent with mx::circularPupil
| arrayT | is an Eigen-like array of real floating type |
| calcRealT | is a real floating type used for internal calculations, should be at least double |
| [out] | arr | the allocated array with an Eigen-like interface. The rows() and cols() members are used to size the polynomial. |
| [in] | j | the Noll index of the polynomial |
| [in] | rad | [opt] the desired radius. If rad <= 0, then the maximum radius based on dimensions of m is used. |
Definition at line 482 of file zernike.hpp.
References zernike().
| int mx::sigproc::zernike | ( | arrayT & | arr, |
| int | j, | ||
| typename arrayT::Scalar | xcen, | ||
| typename arrayT::Scalar | ycen, | ||
| typename arrayT::Scalar | rad = -1 ) |
Fill in an Eigen-like array with a Zernike polynomial.
Sets any pixel which is at rad <= r <= rad+0.5 pixels to rho = 1, to be consistent with mx::circularPupil
| realT | is a real floating type |
| calcRealT | is a real floating type used for internal calculations, should be at least double |
| [out] | arr | is the allocated array with an Eigen-like interface. The rows() and cols() members are used to size the polynomial. |
| [in] | j | is the Noll index of the polynomial |
| [in] | xcen | is the x coordinate of the desired center of the polynomial, in pixels |
| [in] | ycen | is the y coordinate of the desired center of the polynomial, in pixels |
| [in] | rad | is the desired radius. If rad <= 0, then the maximum radius based on dimensions of m is used. |
Definition at line 431 of file zernike.hpp.
| int mx::sigproc::zernike | ( | arrayT & | arr, |
| int | n, | ||
| int | m, | ||
| typename arrayT::Scalar | rad = -1 ) |
Fill in an Eigen-like array with a Zernike polynomial.
The geometric center of the array, 0.5*(arr.rows()-1), 0.5*(arr.cols()-1), is used as the center. Sets any pixel which is at rad <= r < rad+0.5 pixels to rho = 1, to be consistent with mx::circularPupil
| realT | is a real floating type |
| calcRealT | is a real floating type used for internal calculations, should be at least double |
| [out] | arr | allocated array with an Eigen-like interface. The rows() and cols() members are used to size the polynomial. |
| [in] | n | the radial index of the polynomial |
| [in] | m | the azimuthal index of the polynomial |
| [in] | rad | [opt] the desired radius. If rad <= 0, then the maximum radius based on dimensions of m is used. |
Definition at line 459 of file zernike.hpp.
References zernike().
| int mx::sigproc::zernike | ( | arrayT & | arr, |
| int | n, | ||
| int | m, | ||
| typename arrayT::Scalar | xcen, | ||
| typename arrayT::Scalar | ycen, | ||
| typename arrayT::Scalar | rad = -1 ) |
Fill in an Eigen-like array with a Zernike polynomial.
Sets any pixel which is at rad <= r < rad+0.5 pixels to rho = 1, to be consistent with mx::circularPupil
| realT | is a real floating type |
| calcRealT | is a real floating type used for internal calculations, should be at least double |
| [out] | arr | allocated array with an Eigen-like interface. The rows() and cols() members are used to size the polynomial. |
| [in] | n | the radial index of the polynomial |
| [in] | m | the azimuthal index of the polynomial |
| [in] | xcen | the x coordinate of the desired center of the polynomial, in pixels |
| [in] | ycen | the y coordinate of the desired center of the polynomial, in pixels |
| [in] | rad | the desired radius. If rad <= 0, then the maximum radius based on dimensions of m is used. |
Definition at line 365 of file zernike.hpp.
References zernike(), and zernikeRCoeffs().
| realT mx::sigproc::zernike | ( | realT | rho, |
| realT | phi, | ||
| int | j ) |
Calculate the value of a Zernike radial polynomial at a given radius and angle.
| -9999 | indicates a possible error |
| R | the value of the Zernike radial polynomial otherwise |
| realT | is a real floating type |
| calcRealT | is a real floating type used for internal calculations, should be at least double |
| [in] | rho | the radial coordinate, \( 0 \le \rho \le 1 \). |
| [in] | phi | the azimuthal angle (in radians) |
| [in] | j | the Noll index of the Zernike polynomial. |
Definition at line 334 of file zernike.hpp.
| realT mx::sigproc::zernike | ( | realT | rho, |
| realT | phi, | ||
| int | n, | ||
| int | m ) |
Calculate the value of a Zernike radial polynomial at a given radius and angle.
| -9999 | indicates a possible error |
| R | the value of the Zernike radial polynomial otherwise |
| realT | is a real floating type |
| calcRealT | is a real floating type used for internal calculations, should be at least double |
| [in] | rho | the radial coordinate, \( 0 \le \rho \le 1 \). |
| [in] | phi | the azimuthal angle (in radians) |
| [in] | n | the radial index of the Zernike polynomial. |
| [in] | m | the azimuthal index of the Zernike polynomial. |
Definition at line 300 of file zernike.hpp.
References zernike(), and zernikeRCoeffs().
| realT mx::sigproc::zernike | ( | realT | rho, |
| realT | phi, | ||
| int | n, | ||
| int | m, | ||
| std::vector< calcRealT > & | c ) |
Calculate the value of a Zernike radial polynomial at a given radius and angle.
| -9999 | indicates a possible error |
| R | the value of the Zernike radial polynomial otherwise |
| realT | is a real floating type |
| calcRealT | is a real floating type used for internal calculations, should be at least double |
| [in] | rho | the radial coordinate, \( 0 \le \rho \le 1 \). |
| [in] | phi | the azimuthal angle (in radians) |
| [in] | n | the radial index of the Zernike polynomial. |
| [in] | m | the azimuthal index of the Zernike polynomial. |
| [in] | c | contains the radial polynomial coeeficients, and must be of length \( 0.5(n-m)+1\). |
Definition at line 247 of file zernike.hpp.
References mx::math::root_two(), and zernikeR().
Referenced by zernike(), zernike(), zernike(), zernike(), zernike(), zernike(), and zernikeBasis().
| int mx::sigproc::zernikeBasis | ( | cubeT & | cube, |
| typename cubeT::Scalar | rad = -1, | ||
| int | minj = 2 ) |
Fill in an Eigencube-like array with Zernike polynomials in Noll order.
The cube is pre-allocated to set the image size and the number of modes.
| cubeT | is an Eigencube-like array with real floating point type |
| calcRealT | is a real floating type used for internal calculations, should be at least double |
| cube | [in/out] the pre-allocated cube which will be filled with the Zernike basis | |
| [in] | rad | [opt] the radius of the aperture. If -1 then the full image size is used. |
| [in] | minj | [opt] the minimum j value to include. The default is j=2, which skips piston (j=1). |
Definition at line 506 of file zernike.hpp.
References zernike().
Referenced by mx::AO::makeModfBasis(), and mx::AO::makeZernikeBasis().
| realT mx::sigproc::zernikeModeDOCDiffKolmogorov | ( | unsigned | noll_j | ) |
Get the difference in degrees of correction coefficient for Zernike polynomials in Kolmogorov turbulence.
Returns the difference in coefficients from Table IV of Noll (1976) [24] for the given index from the previous mode. Given this, the variance in radians-squared at wavelength \(\lambda\) for a diameter \(D\) aperture in the \(j\)-th mode can be calculated from
\[realT c = zernikeModeDOCDiffKolmogorov( j ); var_j_lambda = c * pow(D/r_0_lambda, math::five_thirds<realT>) \]
| [in] | noll_j | the mode index, must be greater than 1 |
Definition at line 888 of file zernike.hpp.
References mx::math::half_root_three(), and noll_j().
Referenced by zernikeModeDOCDiffKolmogorov().
| realT mx::sigproc::zernikeModeDOCDiffKolmogorov | ( | unsigned | noll_j, |
| realT | D, | ||
| realT | r_0 ) |
Get the variance for a single Zernike polynomial in Kolmogorov turbulence.
Returns the variance from Table IV of Noll (1976) [24] for the given mode index. For the $j$-th mode on a diameter $D$ aperture and Fried parameter $r_0$ this is equivalent to calculating
\[realT c = zernikeModeDOCDiffKolmogorov( j ); var_j_lambda = c * pow(D/r_0_lambda, math::five_thirds<realT>) \]
| noll_j | mode in radians squared. |
| [in] | noll_j | the mode index, must be greater than 0 |
| [in] | D | the aperture diameter, in same units as r_0 |
| r_0 | <[in] the Fried parameter, in same units as D |
Definition at line 982 of file zernike.hpp.
References mx::math::five_thirds(), noll_j(), and zernikeModeDOCDiffKolmogorov().
| realT mx::sigproc::zernikeModeDOCKolmogorov | ( | unsigned | noll_j | ) |
Get the degrees of correction coefficient for Zernike polynomials in Kolmogorov turbulence.
Returns the coefficient from Table IV of Noll (1976) [24] for the given index. Given this, the total variance in radians at wavelength \(\lambda\) for a diameter \(D\) aperture after correcting \(j\) modes can be calculated from
\[realT c = zernikeModeDOCKolmogorov( j ); var_lambda = c * pow(D/r_0_lambda, math::five_thirds<realT>) \]
| [in] | noll_j | the mode index, must be greater than 0 |
Definition at line 769 of file zernike.hpp.
References mx::math::half_root_three(), and noll_j().
Referenced by zernikeModeDOCKolmogorov().
| realT mx::sigproc::zernikeModeDOCKolmogorov | ( | unsigned | noll_j, |
| realT | D, | ||
| realT | r_0 ) |
Get the degrees of correction for Zernike polynomials in Kolmogorov turbulence.
Returns the degree of correction from Table IV of Noll (1976) [24] for the given index. This is the total variance in radians for Fried parameter $r_0$ for a diameter $D$. Equivalent to:
\[realT c = zernikeModeDOCKolmogorov( j ); var_lambda = c * pow(D/r_0_lambda, math::five_thirds<realT>) \]
| [in] | noll_j | the mode index, must be greater than 0 |
| [in] | D | the aperture diameter, in same units as r_0 |
| r_0 | <[in] the Fried parameter, in same units as D |
Definition at line 862 of file zernike.hpp.
References mx::math::five_thirds(), noll_j(), and zernikeModeDOCKolmogorov().
| realT mx::sigproc::zernikePAstig | ( | const realT & | kD | ) |
Calculate the spatial power spectrum of Astigmatism.
| [in] | kD | Spatial frequency in diameter units, i.e. cycles per aperture. |
Definition at line 738 of file zernike.hpp.
References mx::math::func::jincN(), and mx::math::pi().
| realT mx::sigproc::zernikePComa | ( | const realT & | kD | ) |
Calculate the spatial power spectrum of Coma.
| [in] | kD | Spatial frequency in diameter units, i.e. cycles per aperture. |
Definition at line 745 of file zernike.hpp.
References mx::math::func::jincN(), and mx::math::pi().
| realT mx::sigproc::zernikePDefocus | ( | const realT & | kD | ) |
Calculate the spatial power spectrum of Defocus.
| [in] | kD | Spatial frequency in diameter units, i.e. cycles per aperture. |
Definition at line 731 of file zernike.hpp.
References mx::math::func::jincN(), and mx::math::pi().
| realT mx::sigproc::zernikePPiston | ( | const realT & | kD | ) |
Calculate the spatial power spectrum of Piston.
| [in] | kD | Spatial frequency in diameter units, i.e. cycles per aperture. |
Definition at line 717 of file zernike.hpp.
References mx::math::func::jinc(), and mx::math::pi().
| realT mx::sigproc::zernikePTipTilt | ( | const realT & | kD | ) |
Calculate the spatial power spectrum of Tip & Tilt.
| [in] | kD | Spatial frequency in diameter units, i.e. cycles per aperture. |
Definition at line 724 of file zernike.hpp.
References mx::math::func::jincN(), and mx::math::pi().
| realT mx::sigproc::zernikePTrefoil | ( | const realT & | kD | ) |
Calculate the spatial power spectrum of Trefoil.
| [in] | kD | Spatial frequency in diameter units, i.e. cycles per aperture. |
Definition at line 752 of file zernike.hpp.
References mx::math::func::jincN(), and mx::math::pi().
| std::complex< realT > mx::sigproc::zernikeQ | ( | realT | k, |
| realT | phi, | ||
| int | n, | ||
| int | m ) |
Calculate the square-normed Fourier transform of a Zernike polynomial at position (k,phi).
Implements Equation (8) of Noll (1976) [24].
| realT | is the floating point type used for arithmetic |
| [in] | k | the radial coordinate of normalized spatial frequency. This is in the [24] convention of cycles-per-radius. |
| [in] | phi | the azimuthal coordinate of normalized spatial frequency |
| [in] | n | the Zernike polynomial n |
| [in] | m | the Zernike polynomial m |
Definition at line 546 of file zernike.hpp.
References mx::math::func::bessel_j(), mx::math::pi(), and mx::math::two_pi().
| int mx::sigproc::zernikeQNorm | ( | arrayT & | arr, |
| arrayT & | k, | ||
| arrayT & | phi, | ||
| int | j ) |
Fill in an Eigen-like array with the square-normed Fourier transform of a Zernike polynomial.
The array is filled in with \(\lvert Q(k,\phi)\rvert^2\) according to Equation (8) of Noll (1976).
| arrayT | is the Eigen-like array type. Arithmetic will be done in arrayT::Scalar. |
| [out] | arr | the allocated array. The rows() and cols() members are used to size the transform. |
| [in] | k | the normalized spatial frequency magnitude at each pixel, in the Noll (1976) convention of cycles-per-radius. |
| [in] | phi | the spatial frequency angle at each pixel |
| [in] | j | the polynomial index in the Noll convention [24] |
Definition at line 681 of file zernike.hpp.
References mx::invalidarg, mx::internal::mxlib_error_report(), noll_nm(), and zernikeQNorm().
| realT mx::sigproc::zernikeQNorm | ( | realT | k, |
| realT | phi, | ||
| int | j ) |
Calculate the square-normed Fourier transform of a Zernike polynomial at position (k,phi).
Implements Equation (8) of Noll (1976) [24].
| realT | is the floating point type used for arithmetic |
| [in] | k | the radial coordinate of normalized spatial frequency. This is in the [24] convention of cycles-per-radius. |
| [in] | phi | the azimuthal coordinate of normalized spatial frequency |
| [in] | j | the Zernike polynomial index j (Noll convention) |
Definition at line 658 of file zernike.hpp.
References noll_nm(), and zernikeQNorm().
| realT mx::sigproc::zernikeQNorm | ( | realT | k, |
| realT | phi, | ||
| int | n, | ||
| int | m ) |
Calculate the square-normed Fourier transform of a Zernike polynomial at position (k,phi).
Implements Equation (8) of Noll (1976) [24].
| realT | is the floating point type used for arithmetic |
| [in] | k | the radial coordinate of normalized spatial frequency. This is in the [24] convention of cycles-per-radius. |
| [in] | phi | the azimuthal coordinate of normalized spatial frequency |
| [in] | n | the Zernike polynomial n |
| [in] | m | the Zernike polynomial m |
Definition at line 598 of file zernike.hpp.
References mx::math::func::bessel_j(), mx::math::pi(), and mx::math::two_pi().
Referenced by mx::AO::analysis::F_zernike(), TEST_CASE(), zernikeQNorm(), and zernikeQNorm().
| realT mx::sigproc::zernikeR | ( | realT | rho, |
| int | n, | ||
| int | m ) |
Calculate the value of a Zernike radial polynomial at a given separation.
| -9999 | indicates a possible error |
| R | the value of the Zernike radial polynomial otherwise |
| realT | is a real floating type |
| calcRealT | is a real floating type used for internal calculations, should be at least double |
| [in] | rho | the radial coordinate, \( 0 \le \rho \le 1 \). |
| [in] | n | the radial index of the Zernike polynomial. |
| [in] | m | the azimuthal index of the Zernike polynomial. |
Definition at line 207 of file zernike.hpp.
References zernikeR(), and zernikeRCoeffs().
| realT mx::sigproc::zernikeR | ( | realT | rho, |
| int | n, | ||
| int | m, | ||
| std::vector< calcRealT > & | c ) |
Calculate the value of a Zernike radial polynomial at a given separation.
| -9999 | indicates a possible error |
| R | the value of the Zernike radial polynomial otherwise |
| realT | is a real floating type |
| calcRealT | is a real floating type used for internal calcs, should be at least double. |
| [in] | rho | the radial coordinate, \( 0 \le \rho \le 1 \). |
| [in] | n | the radial index of the Zernike polynomial. |
| [in] | m | the azimuthal index of the Zernike polynomial. |
| [in] | c | contains the radial polynomial coeeficients, and must be of length \( 0.5(n-m)+1\). |
Definition at line 156 of file zernike.hpp.
References mx::invalidarg, and mx::internal::mxlib_error_report().
Referenced by zernike(), and zernikeR().
| int mx::sigproc::zernikeRCoeffs | ( | std::vector< realT > & | c, |
| int | n, | ||
| int | m ) |
Calculate the coefficients of a Zernike radial polynomial.
| 0 | on success |
| -1 | on error |
| realT | is a real floating type |
| [out] | c | allocated to length \( 0.5(n-m)+1\) and filled with the coefficients. |
| [in] | n | the radial index of the Zernike polynomial. |
| [in] | m | the azimuthal index of the Zernike polynomial. |
Definition at line 100 of file zernike.hpp.
References mx::math::func::factorial(), mx::invalidarg, and mx::internal::mxlib_error_report().
Referenced by zernike(), zernike(), and zernikeR().