|
Teuchos - Trilinos Tools Package
Version of the Day
|
This is an example of how to use the Teuchos::SerialDenseMatrix class.
#include "Teuchos_Version.hpp"
int main(int argc, char* argv[])
{
std::cout << Teuchos::Teuchos_Version() << std::endl << std::endl;
int rows, cols, stride;
Empty_Matrix.
shape( 3, 3 );
My_Copy1.putScalar( 1.0 );
My_Copy2(1,1) = 10.0;
Empty_Matrix = My_Matrix;
x = 1.0;
y = 1.0;
double d;
1.0, My_Matrix, My_Copy3, 0.0 );
My_Copy2 += My_Matrix;
d = x.dot( y );
(void)d;
double *My_Array=0, *My_Column=0;
My_Array = My_Matrix.
values();
My_Column = My_Matrix[2];
(void)My_Array;
(void)My_Column;
double norm_one, norm_inf, norm_fro;
(void)norm_one;
(void)norm_inf;
(void)norm_fro;
if (Empty_Matrix == My_Matrix) {
std::cout<< "The matrices are the same!" <<std::endl;
}
if (My_Copy2 != My_Matrix) {
std::cout<< "The matrices are different!" <<std::endl;
}
X.putScalar(1.0);
X.putScalar(0.0);
int info = 0;
if (info != 0)
std::cout << "Teuchos::SerialDenseSolver::factor() returned : " << info << std::endl;
info = My_Solver.
solve();
if (info != 0)
std::cout << "Teuchos::SerialDenseSolver::solve() returned : " << info << std::endl;
std::cout<< std::endl <<
printMat(My_Matrix) << std::endl;
return 0;
}
Reference-counted pointer class and non-member templated function implementations.
ScalarTraits< ScalarType >::magnitudeType normOne() const
Returns the 1-norm of the matrix.
SerialBandDenseMatrixPrinter< OrdinalType, ScalarType > printMat(const SerialBandDenseMatrix< OrdinalType, ScalarType > &obj)
Return SerialBandDenseMatrix ostream manipulator Use as:
OrdinalType numRows() const
Returns the row dimension of this matrix.
ScalarType * values() const
Data array access method.
TEUCHOS_DEPRECATED RCP< T > rcp(T *p, Dealloc_T dealloc, bool owns_mem)
Deprecated.
int solve()
Computes the solution X to AX = B for the this matrix and the B provided to SetVectors()....
OrdinalType stride() const
Returns the stride between the columns of this matrix in memory.
ScalarTraits< ScalarType >::magnitudeType normFrobenius() const
Returns the Frobenius-norm of the matrix.
int shape(OrdinalType numRows, OrdinalType numCols)
Shape method for changing the size of a SerialDenseMatrix, initializing entries to zero.
int reshape(OrdinalType numRows, OrdinalType numCols)
Reshaping method for changing the size of a SerialDenseMatrix, keeping the entries.
int factor()
Computes the in-place LU factorization of the matrix using the LAPACK routine _GETRF.
#define TEUCHOS_ASSERT_EQUALITY(val1, val2)
This macro is checks that to numbers are equal and if not then throws an exception with a good error ...
int setMatrix(const RCP< SerialDenseMatrix< OrdinalType, ScalarType > > &A)
Sets the pointers for coefficient matrix.
A class for solving dense linear problems.
OrdinalType numCols() const
Returns the column dimension of this matrix.
Templated serial dense matrix class.
ScalarTraits< ScalarType >::magnitudeType normInf() const
Returns the Infinity-norm of the matrix.
int scale(const ScalarType alpha)
Scale this matrix by alpha; *this = alpha**this.
This class creates and provides basic support for dense vectors of templated type as a specialization...
This class creates and provides basic support for dense rectangular matrix of templated type.
int multiply(ETransp transa, ETransp transb, ScalarType alpha, const SerialDenseMatrix< OrdinalType, ScalarType > &A, const SerialDenseMatrix< OrdinalType, ScalarType > &B, ScalarType beta)
Multiply A * B and add them to this; this = beta * this + alpha*A*B.
int setVectors(const RCP< SerialDenseMatrix< OrdinalType, ScalarType > > &X, const RCP< SerialDenseMatrix< OrdinalType, ScalarType > > &B)
Sets the pointers for left and right hand side vector(s).
Templated serial dense vector class.
Templated class for solving dense linear problems.
int random()
Set all values in the matrix to be random numbers.