ARTS
2.2.66
|
Go to the source code of this file.
Classes | |
class | Joker |
The Joker class. More... | |
class | Range |
The range class. More... | |
class | Iterator1D |
The iterator class for sub vectors. More... | |
class | ConstIterator1D |
The constant iterator class for sub vectors. More... | |
class | ConstVectorView |
A constant view of a Vector. More... | |
class | VectorView |
The VectorView class. More... | |
class | Iterator2D |
The row iterator class for sub matrices. More... | |
class | ConstIterator2D |
The const row iterator class for sub matrices. More... | |
class | Vector |
The Vector class. More... | |
class | ConstMatrixView |
A constant view of a Matrix. More... | |
class | MatrixView |
The MatrixView class. More... | |
class | Matrix |
The Matrix class. More... | |
Functions | |
void | copy (ConstIterator1D origin, const ConstIterator1D &end, Iterator1D target) |
Copy data between begin and end to target. More... | |
void | copy (Numeric x, Iterator1D target, const Iterator1D &end) |
Copy a scalar to all elements. More... | |
void | copy (ConstIterator2D origin, const ConstIterator2D &end, Iterator2D target) |
Copy data between begin and end to target. More... | |
void | copy (Numeric x, Iterator2D target, const Iterator2D &end) |
Copy a scalar to all elements. More... | |
void | mult (VectorView y, const ConstMatrixView &M, const ConstVectorView &x) |
Matrix Vector multiplication. More... | |
void | mult (MatrixView A, const ConstMatrixView &B, const ConstMatrixView &C) |
Matrix multiplication. More... | |
void | cross3 (VectorView c, const ConstVectorView &a, const ConstVectorView &b) |
cross3 More... | |
Numeric | vector_angle (ConstVectorView a, ConstVectorView b) |
void | proj (Vector &c, ConstVectorView a, ConstVectorView b) |
ConstMatrixView | transpose (ConstMatrixView m) |
Const version of transpose. More... | |
MatrixView | transpose (MatrixView m) |
Returns the transpose. More... | |
void | transform (VectorView y, double(&my_func)(double), ConstVectorView x) |
A generic transform function for vectors, which can be used to implement mathematical functions operating on all elements. More... | |
void | transform (MatrixView y, double(&my_func)(double), ConstMatrixView x) |
A generic transform function for matrices, which can be used to implement mathematical functions operating on all elements. More... | |
Numeric | max (const ConstVectorView &x) |
Max function, vector version. More... | |
Numeric | max (const ConstMatrixView &x) |
Max function, matrix version. More... | |
Numeric | min (const ConstVectorView &x) |
Min function, vector version. More... | |
Numeric | min (const ConstMatrixView &x) |
Min function, matrix version. More... | |
Numeric | mean (const ConstVectorView &x) |
Mean function, vector version. More... | |
Numeric | mean (const ConstMatrixView &x) |
Mean function, matrix version. More... | |
Numeric | operator* (const ConstVectorView &a, const ConstVectorView &b) |
Scalar product. More... | |
std::ostream & | operator<< (std::ostream &os, const ConstVectorView &v) |
Output operator. More... | |
std::ostream & | operator<< (std::ostream &os, const ConstMatrixView &v) |
Output operator. More... | |
Numeric | debug_matrixview_get_elem (MatrixView &mv, Index r, Index c) |
Helper function to access matrix elements. More... | |
Variables | |
const Joker | joker |
void copy | ( | ConstIterator1D | origin, |
const ConstIterator1D & | end, | ||
Iterator1D | target | ||
) |
Copy data between begin and end to target.
Target must be a valid area of memory. Note that the strides in the iterators can be different, so that we can for example copy data between different kinds of subvectors.
Definition at line 612 of file matpackI.cc.
References VectorView::end(), Iterator1D::mstride, ConstIterator1D::mstride, Iterator1D::mx, and ConstIterator1D::mx.
Referenced by abs(), Matrix::get_raw_data(), Sparse::insert_row(), Matrix::Matrix(), Iterator1D::operator!=(), ConstIterator1D::operator!=(), Array< XMLAttribute >::operator=(), VectorView::operator=(), MatrixView::operator=(), Matrix::operator=(), and Vector::Vector().
void copy | ( | Numeric | x, |
Iterator1D | target, | ||
const Iterator1D & | end | ||
) |
Copy a scalar to all elements.
Definition at line 626 of file matpackI.cc.
References VectorView::end().
void copy | ( | ConstIterator2D | origin, |
const ConstIterator2D & | end, | ||
Iterator2D | target | ||
) |
Copy data between begin and end to target.
Target must be a valid area of memory. Note that the strides in the iterators can be different, so that we can for example copy data between different kinds of subvectors.
Origin, end, and target are 2D iterators, marking rows in a matrix. For each row the 1D iterator is obtained and used to copy the elements.
Definition at line 1428 of file matpackI.cc.
References ConstVectorView::begin(), VectorView::begin(), ConstVectorView::end(), and MatrixView::end().
void copy | ( | Numeric | x, |
Iterator2D | target, | ||
const Iterator2D & | end | ||
) |
Copy a scalar to all elements.
Definition at line 1443 of file matpackI.cc.
References VectorView::begin(), VectorView::end(), and MatrixView::end().
void cross3 | ( | VectorView | c, |
const ConstVectorView & | a, | ||
const ConstVectorView & | b | ||
) |
cross3
Calculates the cross product between two vectors of length 3.
c = a x b, for 3D vectors. The vector c must have length 3 and can not be the same variable as a or b.
param c Out: The cross product vector
a | In: A vector of length 3. |
b | In: A vector of length 3. |
Definition at line 1743 of file matpackI.cc.
References ConstVectorView::nelem().
Referenced by Matrix::get_raw_data(), propmat_clearskyAddZeeman(), and specular_losCalc().
Numeric debug_matrixview_get_elem | ( | MatrixView & | mv, |
Index | r, | ||
Index | c | ||
) |
Helper function to access matrix elements.
Because of function inlining the operator() is not accessible from the debuggger. This function helps to access Matrix elements from within the debugger.
mv | MatrixView |
r | Row index |
c | Column index |
Definition at line 2054 of file matpackI.cc.
Referenced by Matrix::get_raw_data().
Numeric max | ( | const ConstVectorView & | x | ) |
Max function, vector version.
Definition at line 1892 of file matpackI.cc.
References ConstVectorView::begin(), ConstVectorView::end(), and max().
Referenced by Matrix::get_raw_data(), and max().
Numeric max | ( | const ConstMatrixView & | x | ) |
Max function, matrix version.
Definition at line 1910 of file matpackI.cc.
References ConstVectorView::begin(), ConstMatrixView::begin(), ConstVectorView::end(), ConstMatrixView::end(), and max().
Numeric mean | ( | const ConstVectorView & | x | ) |
Mean function, vector version.
Definition at line 1972 of file matpackI.cc.
References ConstVectorView::begin(), ConstVectorView::end(), mean(), and ConstVectorView::nelem().
Referenced by abs_lookupSetup(), abs_lookupTestAccMC(), get_ppath_ext(), Matrix::get_raw_data(), mean(), and polynomial_basis_func().
Numeric mean | ( | const ConstMatrixView & | x | ) |
Mean function, matrix version.
Definition at line 1988 of file matpackI.cc.
References ConstVectorView::begin(), ConstMatrixView::begin(), ConstVectorView::end(), ConstMatrixView::end(), mean(), ConstMatrixView::ncols(), and ConstMatrixView::nrows().
Numeric min | ( | const ConstVectorView & | x | ) |
Min function, vector version.
Definition at line 1932 of file matpackI.cc.
References ConstVectorView::begin(), ConstVectorView::end(), and min().
Referenced by Matrix::get_raw_data(), and min().
Numeric min | ( | const ConstMatrixView & | x | ) |
Min function, matrix version.
Definition at line 1950 of file matpackI.cc.
References ConstVectorView::begin(), ConstMatrixView::begin(), ConstVectorView::end(), ConstMatrixView::end(), and min().
void mult | ( | VectorView | y, |
const ConstMatrixView & | M, | ||
const ConstVectorView & | x | ||
) |
y = M*x. Note that the order is different from MTL, output comes first! Dimensions of y, M, and x must match. No memory reallocation takes place, only the data is copied. Using this function on overlapping MatrixViews belonging to the same Matrix will lead to unpredictable results. In particular, this means that A and B must not be the same matrix! The implementation here is different from the other multiplication routines. It does not use iterators but a more drastic approach to gain maximum performance.
Definition at line 1648 of file matpackI.cc.
References ConstMatrixView::mcr, ConstVectorView::mdata, ConstMatrixView::mdata, Range::mextent, ConstVectorView::mrange, ConstMatrixView::mrr, Range::mstart, and Range::mstride.
Referenced by cloud_RT_surface(), emission_rtstep(), fos(), get_ppath_trans(), get_ppath_trans2(), Matrix::get_raw_data(), interpTArray(), iy_transmission_mult(), iyCloudRadar(), iyEmissionStandard(), iyRadioLink(), iyTransmissionStandard(), jacobianCalcAbsSpeciesPerturbations(), jacobianCalcFreqShift(), jacobianCalcFreqStretch(), jacobianCalcPointingZaInterp(), jacobianCalcPointingZaRecalc(), jacobianCalcTemperaturePerturbations(), main(), map_daa(), matrix_exp(), MatrixMatrixMultiply(), MCGeneral(), MCIPA(), mcPathTraceGeneral(), mcPathTraceIPA(), rte_step_doit(), sensor_responseAntenna(), sensor_responseBackend(), sensor_responseBeamSwitching(), sensor_responseFillFgrid(), sensor_responseFrequencySwitching(), sensor_responseMixer(), sensor_responsePolarisation(), sensor_responseStokesRotation(), sensor_responseWMRF(), SparseSparseMultiply(), surface_calc(), surfaceFlatReflectivity(), test32(), test4(), test40(), test42(), test45(), test5(), test_lusolve4D(), VectorMatrixMultiply(), xsec_species_line_mixing_wrapper_with_zeeman(), yCalc(), yCalc_mblock_loop_body(), and ySimpleSpectrometer().
void mult | ( | MatrixView | A, |
const ConstMatrixView & | B, | ||
const ConstMatrixView & | C | ||
) |
Matrix multiplication.
A = B*C. Note that the order is different from MTL, output comes first! Dimensions of A, B, and C must match. No memory reallocation takes place, only the data is copied. Using this function on overlapping MatrixViews belonging to the same Matrix will lead to unpredictable results. In particular, this means that A and B must not be the same matrix!
Definition at line 1693 of file matpackI.cc.
References VectorView::begin(), ConstMatrixView::begin(), MatrixView::begin(), VectorView::end(), MatrixView::end(), ConstMatrixView::ncols(), ConstMatrixView::nrows(), and MatrixView::transpose.
Numeric operator* | ( | const ConstVectorView & | a, |
const ConstVectorView & | b | ||
) |
Scalar product.
The two vectors may be identical.
Definition at line 1623 of file matpackI.cc.
References ConstVectorView::begin(), ConstVectorView::end(), and ConstVectorView::nelem().
Referenced by ConstVectorView::get(), and Matrix::get_raw_data().
std::ostream& operator<< | ( | std::ostream & | os, |
const ConstVectorView & | v | ||
) |
Output operator.
This demonstrates how iterators can be used to traverse the vector. The iterators know which part of the vector is `active', and also the stride.
Definition at line 285 of file matpackI.cc.
References ConstVectorView::begin(), and ConstVectorView::end().
Referenced by Matrix::get_raw_data().
std::ostream& operator<< | ( | std::ostream & | os, |
const ConstMatrixView & | v | ||
) |
Output operator.
This demonstrates how iterators can be used to traverse the matrix. The iterators know which part of the matrix is `active', and also the strides in both directions. This function is a bit more complicated than necessary to illustrate the concept, because the formating should look nice. This means that the first row, and the first element in each row, have to be treated individually.
Definition at line 950 of file matpackI.cc.
References ConstVectorView::begin(), ConstMatrixView::begin(), ConstVectorView::end(), and ConstMatrixView::end().
void proj | ( | Vector & | c, |
ConstVectorView | a, | ||
ConstVectorView | b | ||
) |
Calculates the projection of two vectors of equal length.
c = proj_a(b). Projecting b on a. The vector c must have the same length but can not be the same variable as a or b.
c | Out: The projection of b on a. |
a | In: A vector of length N. |
b | In: A vector of length N. |
Definition at line 1787 of file matpackI.cc.
References C, and ConstVectorView::nelem().
Referenced by Matrix::get_raw_data(), and propmat_clearskyAddZeeman().
void transform | ( | VectorView | y, |
double(&)(double) | my_func, | ||
ConstVectorView | x | ||
) |
A generic transform function for vectors, which can be used to implement mathematical functions operating on all elements.
Because we have this, we don't need explicit functions like sqrt for matrices! The type of the mathematical function is double (&my_func)(double). Numeric would not work here, since mathematical functions for float do not exist!
transform(y,sin,x) computes y = sin(x)
Although the matrix version of this can also be used for vectors, thanks to the automatic interpretation of a vector as a one column matrix, this one is slightly more efficient. However, the difference is very small (only a few percent).
The two views may be the same one, in which case the conversion happens in place.
y | Output: The results of the function acting on each element of x. |
my_func | A function (e.g., sqrt). |
x | A vector. |
Definition at line 1838 of file matpackI.cc.
References ConstVectorView::begin(), VectorView::begin(), ConstVectorView::end(), and ConstVectorView::nelem().
Referenced by abs_lookupCalc(), abs_lookupSetup(), abs_lookupSetupBatch(), abs_lookupSetupWide(), GasAbsLookup::Adapt(), AtmFieldsRefinePgrid(), chk_interpolation_pgrids(), chk_interpolation_pgrids_loose_no_data_check(), Matrix::get_raw_data(), itw2p(), p2gridpos(), p2gridpos_poly(), test2(), test31(), test6(), test7(), my_basic_string< char >::tolower(), my_basic_string< char >::toupper(), and VectorLogSpace().
void transform | ( | MatrixView | y, |
double(&)(double) | my_func, | ||
ConstMatrixView | x | ||
) |
A generic transform function for matrices, which can be used to implement mathematical functions operating on all elements.
Because we have this, we don't need explicit functions like sqrt for matrices! The type of the mathematical function is double (&my_func)(double). Numeric would not work here, since mathematical functions for float do not exist!
transform(y,sin,x) computes y = sin(x)
This function can also be used for Vectors, because there is a conversion to MatrixView.
The two Matrix views may be the same one, in which case the conversion happens in place.
y | Output: The results of the function acting on each element of x. |
my_func | A function (e.g., sqrt). |
x | A matrix. |
Definition at line 1870 of file matpackI.cc.
References ConstVectorView::begin(), VectorView::begin(), ConstMatrixView::begin(), MatrixView::begin(), ConstVectorView::end(), ConstMatrixView::end(), ConstMatrixView::ncols(), and ConstMatrixView::nrows().
ConstMatrixView transpose | ( | ConstMatrixView | m | ) |
Const version of transpose.
Definition at line 1799 of file matpackI.cc.
References ConstMatrixView::ConstMatrixView(), ConstMatrixView::mcr, ConstMatrixView::mdata, and ConstMatrixView::mrr.
Referenced by Append(), Matrix::get_raw_data(), iyEmissionStandard(), test1(), test33(), test41(), test42(), test46(), test5(), WMRFSelectChannels(), and yApplyUnit().
MatrixView transpose | ( | MatrixView | m | ) |
Returns the transpose.
This creates a special MatrixView for the transpose. The original is not changed!
Definition at line 1806 of file matpackI.cc.
References MatrixView::MatrixView(), ConstMatrixView::mcr, ConstMatrixView::mdata, and ConstMatrixView::mrr.
Numeric vector_angle | ( | ConstVectorView | a, |
ConstVectorView | b | ||
) |
Returns numeric angle between two vectors in degrees.
a | In: A vector of length N. |
b | In: A vector of length N. |
Definition at line 1763 of file matpackI.cc.
References ConstVectorView::nelem().
Referenced by Matrix::get_raw_data(), and propmat_clearskyAddZeeman().
const Joker joker |