Doxygen
1.9.1
|
Files | |
file | tsgLinearSolvers.hpp |
Linear solvers. | |
Classes | |
class | TasGrid::TasSparse::WaveletBasisMatrix |
Used to manipulate the wavelet values and solve for the wavelet coefficients. More... | |
Functions | |
void | TasGrid::TasmanianDenseSolver::solveLeastSquares (int n, int m, const double A[], double b[], double *x) |
Least squares solver, used to infer anisotropic coefficients and thus rarely exceeds 10 - 20. More... | |
void | TasGrid::TasmanianFourierTransform::fast_fourier_transform (std::vector< std::vector< std::complex< double >>> &data, std::vector< int > &num_points) |
Transfrom the data for a multi-dimensional tensor. More... | |
void | TasGrid::TasmanianFourierTransform::fast_fourier_transform1D (std::vector< std::vector< std::complex< double >>> &data, std::vector< int > &indexes) |
Perform one dimensional fast-fourier-transform (using radix-3). More... | |
void TasGrid::TasmanianDenseSolver::solveLeastSquares | ( | int | n, |
int | m, | ||
const double | A[], | ||
double | b[], | ||
double * | x | ||
) |
Least squares solver, used to infer anisotropic coefficients and thus rarely exceeds 10 - 20.
Solves where A is an n by m matrix (column major format), and b and x are vectors with sizes n and m. The assumption here is that n is larger than m (the problem is over-determined) and A has full column rank. The use case is for the rates of anisotropic decay which never exceed twice the number of dimensions and are hence not too large and expensive.
void TasGrid::TasmanianFourierTransform::fast_fourier_transform | ( | std::vector< std::vector< std::complex< double >>> & | data, |
std::vector< int > & | num_points | ||
) |
Transfrom the data for a multi-dimensional tensor.
The num_points vector defines the number of points used by the tensor in different directions. The data holds the values for each point in the tensor, each point has a vector of values with size equal to the number of model outputs.
The data is split into one-dimensional lines and each is tackled with fast_fourier_transform1D()
void TasGrid::TasmanianFourierTransform::fast_fourier_transform1D | ( | std::vector< std::vector< std::complex< double >>> & | data, |
std::vector< int > & | indexes | ||
) |
Perform one dimensional fast-fourier-transform (using radix-3).
Consider the line which is a subset of data defined by indexes and perform the radix-3 fast-fourier-transform. Called from fast_fourier_transform().