Doxygen 1.9.1
Toolkit for Adaptive Stochastic Modeling and Non-Intrusive ApproximatioN: Tasmanian v8.2 (development)
TasGrid::TasmanianDenseSolver Namespace Reference

Methods for dense linear algebra. More...

Functions

void 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 solveLeastSquares (AccelerationContext const *acceleration, int n, int m, double A[], double b[], double *x)
 The same solver, but uses LAPACK dgels method (if enabled).
 
template<typename scalar_type >
void solvesLeastSquares (AccelerationContext const *acceleration, int n, int m, scalar_type A[], int nrhs, scalar_type B[])
 Least squares solver, operates on multiple right-hand sides and row-major matrices. More...
 
template<typename scalar_type >
void solvesLeastSquaresGPU (AccelerationContext const *acceleration, int n, int m, scalar_type A[], int nrhs, scalar_type B[])
 Overload that accepts arrays on the GPU device.
 

Detailed Description

Methods for dense linear algebra.

Most of these build on BLAS and LAPACK, but some come with basic reference implementations. For example, the general least-squares is used with a single right-hand-size and size of x of 10 - 20, hence a reference solution is sufficient.

Function Documentation

◆ solvesLeastSquares()

template<typename scalar_type >
void TasGrid::TasmanianDenseSolver::solvesLeastSquares ( AccelerationContext const *  acceleration,
int  n,
int  m,
scalar_type  A[],
int  nrhs,
scalar_type  B[] 
)

Least squares solver, operates on multiple right-hand sides and row-major matrices.

Solves $ \min_x \| A x - B \|_2 $ where A is an n by m matrix (row major format), B is n by nrhs. The main difference in this overload is that the matrices are row-major format.