#include <MatrixFuncs.h>
|
static unsigned int | CalculateIndex (unsigned int curRow, unsigned int curColumn) |
|
template<typename DataType > |
static void | Invert (unsigned int rows, unsigned int columns, Array< OneD, DataType > &data) |
|
static std::tuple< unsigned int, unsigned int > | Advance (const unsigned int totalRows, const unsigned int totalColumns, const unsigned int curRow, const unsigned int curColumn) |
|
static unsigned int | GetRequiredStorageSize (unsigned int rows, unsigned int columns) |
|
Definition at line 222 of file MatrixFuncs.h.
◆ Advance()
std::tuple< unsigned int, unsigned int > Nektar::SymmetricMatrixFuncs::Advance |
( |
const unsigned int |
totalRows, |
|
|
const unsigned int |
totalColumns, |
|
|
const unsigned int |
curRow, |
|
|
const unsigned int |
curColumn |
|
) |
| |
|
static |
Definition at line 295 of file MatrixFuncs.cpp.
299 ASSERTL1(totalRows == totalColumns,
"Symmetric matrices must be square.");
301 "Attemping to iterate through an element on row " +
302 std::to_string(curRow) +
" of a (" +
303 std::to_string(totalRows) +
", " +
304 std::to_string(totalColumns) +
" symmetric matrix.");
306 "Attemping to iterate through an element on row " +
307 std::to_string(curColumn) +
" of a (" +
308 std::to_string(totalRows) +
", " +
309 std::to_string(totalColumns) +
" symmetric matrix.");
311 unsigned int nextRow = curRow;
312 unsigned int nextColumn = curColumn;
314 if (nextRow < totalRows)
319 if (nextRow >= totalRows)
325 if (nextColumn >= totalColumns)
327 nextRow = std::numeric_limits<unsigned int>::max();
328 nextColumn = std::numeric_limits<unsigned int>::max();
331 return std::tuple<unsigned int, unsigned int>(nextRow, nextColumn);
#define ASSERTL1(condition, msg)
Assert Level 1 – Debugging which is used whether in FULLDEBUG or DEBUG compilation mode....
References ASSERTL1.
Referenced by Nektar::NekMatrix< DataType, StandardMatrixTag >::Advance().
◆ CalculateIndex()
unsigned int Nektar::SymmetricMatrixFuncs::CalculateIndex |
( |
unsigned int |
curRow, |
|
|
unsigned int |
curColumn |
|
) |
| |
|
static |
◆ GetRequiredStorageSize()
unsigned int Nektar::TriangularMatrixFuncs::GetRequiredStorageSize |
|
static |
◆ Invert()
template<typename DataType >
static void Nektar::SymmetricMatrixFuncs::Invert |
( |
unsigned int |
rows, |
|
|
unsigned int |
columns, |
|
|
Array< OneD, DataType > & |
data |
|
) |
| |
|
inlinestatic |
Definition at line 230 of file MatrixFuncs.h.
233 ASSERTL0(rows == columns,
"Only square matrices can be inverted.");
237 Array<OneD, int> ipivot(n);
238 Array<OneD, DataType> work(n);
244 std::string message =
245 "ERROR: The " + std::to_string(-info) +
246 "th parameter had an illegal parameter for dsptrf";
251 std::string message =
"ERROR: Element u_" + std::to_string(info) +
252 std::to_string(info) +
" is 0 from dsptrf";
260 std::string message =
261 "ERROR: The " + std::to_string(-info) +
262 "th parameter had an illegal parameter for dsptri";
267 std::string message =
"ERROR: Element u_" + std::to_string(info) +
268 std::to_string(info) +
" is 0 from dsptri";
static void DoSsptrf(const char &uplo, const int &n, double *ap, int *ipiv, int &info)
factor a real packed-symmetric matrix using Bunch-Kaufman pivoting.
static void DoSsptri(const char &uplo, const int &n, const double *ap, const int *ipiv, double *work, int &info)
Invert a real symmetric matrix problem.
References ASSERTL0, Lapack::DoSsptrf(), Lapack::DoSsptri(), and Nektar::Array< OneD, DataType >::get().
Referenced by Nektar::NekMatrix< DataType, StandardMatrixTag >::Invert().