ARTS
2.3.1285(git:92a29ea9-dirty)
|
Go to the source code of this file.
Functions | |
Numeric | fac (const Index n) |
fac More... | |
Index | integer_div (const Index &x, const Index &y) |
integer_div More... | |
Numeric | last (ConstVectorView x) |
last More... | |
Index | last (const ArrayOfIndex &x) |
last More... | |
void | linspace (Vector &x, const Numeric start, const Numeric stop, const Numeric step) |
linspace More... | |
void | nlinspace (Vector &x, const Numeric start, const Numeric stop, const Index n) |
nlinspace More... | |
void | nlinspace (VectorView x, const Numeric start, const Numeric stop, const Index n) |
void | nlogspace (Vector &x, const Numeric start, const Numeric stop, const Index n) |
nlogspace More... | |
Numeric | AngIntegrate_trapezoid (ConstMatrixView Integrand, ConstVectorView za_grid, ConstVectorView aa_grid) |
AngIntegrate_trapezoid. More... | |
Numeric | AngIntegrate_trapezoid (ConstVectorView Integrand, ConstVectorView za_grid) |
AngIntegrate_trapezoid. More... | |
Numeric | AngIntegrate_trapezoid_opti (ConstMatrixView Integrand, ConstVectorView za_grid, ConstVectorView aa_grid, ConstVectorView grid_stepsize) |
AngIntegrate_trapezoid_opti. More... | |
Numeric | sign (const Numeric &x) |
sign More... | |
void | mgd (VectorView psd, const Vector &x, const Numeric &n0, const Numeric &mu, const Numeric &la, const Numeric &ga) |
void | mgd_with_derivatives (VectorView psd, MatrixView jac_data, const Vector &x, const Numeric &n0, const Numeric &mu, const Numeric &la, const Numeric &ga, const bool &do_n0_jac, const bool &do_mu_jac, const bool &do_la_jac, const bool &do_ga_jac) |
void | delanoe_shape_with_derivative (VectorView psd, MatrixView jac_data, const Vector &x, const Numeric &alpha, const Numeric &beta) |
! Shape functions for normalized PSD. More... | |
Numeric | mod_gamma_dist (Numeric x, Numeric N0, Numeric Lambda, Numeric mu, Numeric gamma) |
Generalized Modified Gamma Distribution. More... | |
void | unitl (Vector &x) |
unitl More... | |
void | flat (VectorView x, ConstMatrixView X) |
flat More... | |
void | flat (VectorView x, ConstTensor3View X) |
flat More... | |
void | reshape (MatrixView X, ConstVectorView x) |
reshape More... | |
void | reshape (Tensor3View X, ConstVectorView x) |
reshape More... | |
void | calculate_weights_linear (Vector &x, Vector &w, const Index nph) |
calculate_weights_linear More... | |
Contains the decleration of the functions in math_funcs.cc.
Definition in file math_funcs.h.
Numeric AngIntegrate_trapezoid | ( | ConstMatrixView | Integrand, |
ConstVectorView | za_grid, | ||
ConstVectorView | aa_grid | ||
) |
AngIntegrate_trapezoid.
Performs an integration of a matrix over all directions defined in angular grids using the trapezoidal integration method.
Integrand | The Matrix to be integrated |
za_grid | The zenith angle grid |
aa_grid | The azimuth angle grid |
Definition at line 296 of file math_funcs.cc.
References DEG2RAD, i, is_size(), n, and ConstVectorView::nelem().
Referenced by AngIntegrate_trapezoid_opti(), doit_scat_fieldCalc(), doit_scat_fieldCalcLimb(), doit_scat_fieldNormalize(), get_stepwise_scattersky_source(), scat_dataCheck(), and scat_dataReduceT().
Numeric AngIntegrate_trapezoid | ( | ConstVectorView | Integrand, |
ConstVectorView | za_grid | ||
) |
AngIntegrate_trapezoid.
Performs an integration of a matrix over all directions defined in angular grids using the trapezoidal integration method. The integrand is independant of the azimuth angle. The integration over the azimuth angle gives a 2*PI
Integrand | Input : The vector to be integrated |
za_grid | Input : The zenith angle grid |
Definition at line 393 of file math_funcs.cc.
References DEG2RAD, i, is_size(), n, ConstVectorView::nelem(), and PI.
Numeric AngIntegrate_trapezoid_opti | ( | ConstMatrixView | Integrand, |
ConstVectorView | za_grid, | ||
ConstVectorView | aa_grid, | ||
ConstVectorView | grid_stepsize | ||
) |
AngIntegrate_trapezoid_opti.
Performs an integration of a matrix over all directions defined in angular grids using the trapezoidal integration method.
In addition to the "old fashined" integration method, it checks whether the stepsize is constant. If it is, it uses a faster method, if not, it uses the old one.
Integrand | Input : The Matrix to be integrated |
za_grid | Input : The zenith angle grid |
aa_grid | Input : The azimuth angle grid |
grid_stepsize | Input : stepsize of the grid |
Definition at line 340 of file math_funcs.cc.
References AngIntegrate_trapezoid(), DEG2RAD, i, is_size(), n, ConstVectorView::nelem(), and temp.
Referenced by doit_scat_fieldCalc(), doit_scat_fieldCalcLimb(), and test_AngIntegrate_trapezoid_opti().
calculate_weights_linear
Function to set the evaluation points and the corresponding weights for numerical integration on the domain from [-1,1]
[out] | x | evaluation points [out] w integration weights |
[in] | nph | number of evaluation points per hemisphere |
Definition at line 813 of file math_funcs.cc.
References i, N, ConstVectorView::nelem(), nlinspace(), and Vector::resize().
Referenced by AngularGridsSetFluxCalc().
void delanoe_shape_with_derivative | ( | VectorView | psd, |
MatrixView | jac_data, | ||
const Vector & | x, | ||
const Numeric & | alpha, | ||
const Numeric & | beta | ||
) |
! Shape functions for normalized PSD.
This function implements the shape function F(X, alpha, beta) from as proposed by Delanoe et al. in "Normalized particle size distribution for remote sensing application".
Definition at line 619 of file math_funcs.cc.
References i, ConstVectorView::nelem(), and pow().
Referenced by psdDelanoeEtAl14().
fac
Calculates the factorial.
The function asserts that n must be >= 0
n | Nominator |
Definition at line 63 of file math_funcs.cc.
References i.
Referenced by Linefunctions::apply_VVW_scaling(), faddeeva_algorithm_916(), g_legendre_poly_norm_schmidt(), g_legendre_poly_norm_schmidt_deriv(), g_legendre_poly_norm_schmidt_deriv1(), g_legendre_poly_norm_schmidt_deriv2(), g_legendre_poly_norm_schmidt_deriv3(), g_legendre_poly_norm_schmidt_deriv4(), hui_etal_1978_lineshape(), legendre_poly_norm_schmidt(), legendre_poly_norm_schmidt_deriv(), lineshape_CO2_lorentz(), lineshape_doppler(), lineshape_lorentz(), lineshape_mirrored_lorentz(), lineshape_o2nonresonant(), lineshape_voigt_drayson(), lineshape_voigt_kuntz6(), Absorption::PredefinedModel::makarov2020_o2_lines_mpm(), MCRadar(), MPM93_N2_continuum(), LineFunctions::set_faddeeva_algorithm916(), LineFunctions::set_faddeeva_from_full_linemixing(), LineFunctions::set_hui_etal_1978(), LineFunctions::set_o2_non_resonant(), Linefunctions::set_voigt(), and specular_losCalc().
void flat | ( | VectorView | x, |
ConstMatrixView | X | ||
) |
flat
Flattens a matrix to a vector
The matrix is read from front, i.e. rows are looped first. In Matlab this equals x=X(:).
[out] | x | The vector. Should already be sized |
[in] | X | The matrix. |
Definition at line 707 of file math_funcs.cc.
References i, ConstMatrixView::ncols(), ConstVectorView::nelem(), and ConstMatrixView::nrows().
Referenced by xaStandard().
void flat | ( | VectorView | x, |
ConstTensor3View | X | ||
) |
flat
Converts Tensor3 to a vector
The matrix is read from front, i.e. pages are looped first, followed by rows. In Matlab this equals x=X(:).
[out] | x | The vector. Should already be sized |
[in] | X | The tensor. |
Definition at line 733 of file math_funcs.cc.
References i, ConstTensor3View::ncols(), ConstVectorView::nelem(), ConstTensor3View::npages(), and ConstTensor3View::nrows().
integer_div
Performs an integer division.
The function asserts that the reminder of the division x/y is 0.
x | Nominator |
y | Denominator |
Definition at line 87 of file math_funcs.cc.
References is_multiple().
Numeric last | ( | ConstVectorView | x | ) |
last
Returns the last value of a vector.
x | A vector. |
Definition at line 165 of file math_funcs.cc.
References ConstVectorView::nelem().
Referenced by chk_scat_data(), find_effective_channel_boundaries(), mixer_matrix(), pos2refell_r(), scat_data_singleTmatrix(), ScatSpeciesExtendTemperature(), sensor_responseAntenna(), sensor_responseBackend(), sensor_responseMixer(), and ySimpleSpectrometer().
Index last | ( | const ArrayOfIndex & | x | ) |
last
Returns the last value of an index array.
x | An index array. |
Definition at line 180 of file math_funcs.cc.
References Array< base >::nelem().
linspace
Linearly spaced vector with specified spacing.
The first element of x is always start. The next value is start+step etc. Note that the last value can deviate from stop. The step can be both positive and negative. (in Matlab notation: start:step:stop)
Size of result is adjusted within this function!
x | Output: linearly spaced vector |
start | first value in x |
stop | last value of x <= stop |
step | distance between values in x |
Definition at line 204 of file math_funcs.cc.
References i, n, and Vector::resize().
void mgd | ( | VectorView | psd, |
const Vector & | x, | ||
const Numeric & | n0, | ||
const Numeric & | mu, | ||
const Numeric & | la, | ||
const Numeric & | ga | ||
) |
Modified gamma distribution
Uses all four free parameters (n0, mu, la, ga) to calculate psd(D) = n0 * D^mu * exp( -la * x^ga )
Reference: Eq 1 of Petty & Huang, JAS, (2011).
psd | Particle number density per x-interval. Sizing of vector should be done before calling the function. |
x | Mass or size. |
n0 | See above. |
mu | See above. |
la | See above. |
ga | See above. |
Definition at line 451 of file math_funcs.cc.
References ConstVectorView::nelem(), pow(), and _CS_basic_sstream_base< _CS_cT, _CS_Tr, _CS_Al >::str().
void mgd_with_derivatives | ( | VectorView | psd, |
MatrixView | jac_data, | ||
const Vector & | x, | ||
const Numeric & | n0, | ||
const Numeric & | mu, | ||
const Numeric & | la, | ||
const Numeric & | ga, | ||
const bool & | do_n0_jac, | ||
const bool & | do_mu_jac, | ||
const bool & | do_la_jac, | ||
const bool & | do_ga_jac | ||
) |
Modified gamma distribution, and derivatives
As mgd, but this version can also return the derivate of psd with respect to the four parameters.
psd | Particle number density per x-interval. Sizing of vector should be done before calling the function. |
jac_data | Container for returning jacobian data. Shall be a matrix with four rows, where the rows match n0, mu, la and ga. Number of columns same as length of psd. |
x | Mass or size. |
n0 | See above. |
mu | See above. |
la | See above. |
ga | See above. |
do_n0_jac | Flag to actually calculate d_psd/d_n0 |
do_mu_jac | Flag to actually calculate d_psd/d_mu |
do_la_jac | Flag to actually calculate d_psd/d_la |
do_ga_jac | Flag to actually calculate d_psd/d_ga |
Definition at line 530 of file math_funcs.cc.
References ConstMatrixView::ncols(), ConstVectorView::nelem(), ConstMatrixView::nrows(), pow(), and _CS_basic_sstream_base< _CS_cT, _CS_Tr, _CS_Al >::str().
Referenced by psd_mgd_mass_and_something(), psdModifiedGamma(), and psdModifiedGammaMass().
Generalized Modified Gamma Distribution.
Returns number density per unit of 'x' as function of 'x'.
x | Numeric |
N0 | Numeric, Scaling parameter |
Lambda | Numeric, Shape parameter |
mu | Numeric, Shape parameter |
gamma | Numeric, Shape parameter |
Definition at line 653 of file math_funcs.cc.
References dN, pow(), and _CS_basic_sstream_base< _CS_cT, _CS_Tr, _CS_Al >::str().
Referenced by psd_MY05().
nlinspace
Linearly spaced vector with specified length.
Returns a vector equally and linearly spaced between start and stop of length n. (equals the Matlab function linspace)
The length must be > 1.
x | Output: linearly spaced vector |
start | first value in x |
stop | last value of x <= stop |
n | length of x |
Definition at line 231 of file math_funcs.cc.
References i, Vector::resize(), and Zeeman::start().
Referenced by AngularGridsSetFluxCalc(), AntennaConstantGaussian1D(), calc_ssp_fixed_test(), calc_ssp_random_test(), calculate_weights_linear(), DOAngularGridsSet(), doit_scat_fieldCalcLimb(), DoitScatteringDataPrepare(), f_gridFromSensorAMSU(), f_gridFromSensorHIRS(), fillSpeciesAuxDataWithPartitionFunctionsFromSpeciesData(), FouComp_1ScatElem(), gaussian_response_autogrid(), get_angs(), iyHybrid(), iyHybrid2(), pha_mat_sptFromDataDOITOpt(), pha_mat_sptFromMonoData(), pnd_fieldZero(), sensor_responseFillFgrid(), test46(), test_ecs20(), test_mpm20(), VectorNLinSpace(), and xml_read_from_stream().
void nlinspace | ( | VectorView | x, |
const Numeric | start, | ||
const Numeric | stop, | ||
const Index | n | ||
) |
Definition at line 241 of file math_funcs.cc.
References i, and Zeeman::start().
nlogspace
Logarithmically spaced vector with specified length.
Returns a vector logarithmically spaced vector between start and stop of length n (equals the Matlab function logspace)
The length must be > 1.
x | Output: logarithmically spaced vector |
start | first value in x |
stop | last value of x <= stop |
n | length of x |
Definition at line 267 of file math_funcs.cc.
References i, Vector::resize(), and Zeeman::start().
Referenced by VectorNLogSpace().
void reshape | ( | MatrixView | X, |
ConstVectorView | x | ||
) |
reshape
Converts vector to Matrix
The matrix is filled from front, i.e. rows are looped first, followed by cols. In Matlab this equals X = reshape( x, [ X.nrows(), X.ncols() ]
[out] | X | The matrix. Should already be sized |
[in] | x | The vector. |
Definition at line 789 of file math_funcs.cc.
References i, ConstMatrixView::ncols(), ConstVectorView::nelem(), and ConstMatrixView::nrows().
void reshape | ( | Tensor3View | X, |
ConstVectorView | x | ||
) |
reshape
Converts vector to Tensor3
The tensor is filled from front, i.e. pages are looped first, followed by rows. In Matlab this equals X = reshape( x, [ X.npages(), X.nrows(), X.ncols() ]
[out] | X | The tensor. Should already be sized |
[in] | x | The vector. |
Definition at line 761 of file math_funcs.cc.
References i, ConstTensor3View::ncols(), ConstVectorView::nelem(), ConstTensor3View::npages(), and ConstTensor3View::nrows().
Referenced by AtmFieldPerturb(), and x2artsAtmAndSurf().
sign
Returns the sign of a numeric value.
The function returns 1 if the value is greater than zero, 0 if it equals zero and -1 if it is less than zero.
x | A Numeric. |
Definition at line 423 of file math_funcs.cc.
Referenced by error_if_limb_ppath(), binostream::float2ieee_double(), binostream::float2ieee_single(), geompath_from_r1_to_r2(), binistream::ieee_double2float(), binistream::ieee_single2float(), poslos2cart(), r_crossing_2d(), raytrace_2d_linear_basic(), specular_losCalc(), specular_losCalcNoTopography(), and surfaceSemiSpecularBy3beams().
void unitl | ( | Vector & | x | ) |
unitl
Normalises a vector to have unit length.
The standard Euclidean norm is used (2-norm).
param x In/Out: A vector.
Definition at line 687 of file math_funcs.cc.
References i, ConstVectorView::nelem(), and sqrt().