Teuchos Package Browser (Single Doxygen Collection)
Version of the Day
|
This class creates and provides basic support for banded dense matrices of templated type. More...
#include <Teuchos_SerialBandDenseMatrix.hpp>
Public Types | |
typedef OrdinalType | ordinalType |
Typedef for ordinal type. More... | |
typedef ScalarType | scalarType |
Typedef for scalar type. More... | |
![]() | |
typedef details::GivensRotator< ScalarType >::c_type | rotg_c_type |
The type used for c in ROTG. More... | |
Protected Member Functions | |
void | copyMat (ScalarType *inputMatrix, OrdinalType strideInput, OrdinalType numRows, OrdinalType numCols, ScalarType *outputMatrix, OrdinalType strideOutput, OrdinalType startCol, ScalarType alpha=ScalarTraits< ScalarType >::zero()) |
void | deleteArrays () |
void | checkIndex (OrdinalType rowIndex, OrdinalType colIndex=0) const |
Protected Attributes | |
OrdinalType | numRows_ |
OrdinalType | numCols_ |
OrdinalType | stride_ |
OrdinalType | kl_ |
OrdinalType | ku_ |
bool | valuesCopied_ |
ScalarType * | values_ |
![]() | |
Flops * | flopCounter_ |
Related Functions | |
(Note that these are not member functions.) | |
template<typename OrdinalType , typename ScalarType > | |
Teuchos::RCP< SerialBandDenseMatrix< OrdinalType, ScalarType > > | generalToBanded (const RCP< SerialDenseMatrix< OrdinalType, ScalarType > > &A, const OrdinalType kl, const OrdinalType ku, const bool factorFormat) |
A templated, non-member, helper function for converting a SerialDenseMatrix to a SerialBandDenseMatrix. More... | |
template<typename OrdinalType , typename ScalarType > | |
Teuchos::RCP< SerialDenseMatrix< OrdinalType, ScalarType > > | bandedToGeneral (const RCP< SerialBandDenseMatrix< OrdinalType, ScalarType > > &AB) |
A templated, non-member, helper function for converting a SerialBandDenseMatrix to a SerialDenseMatrix. More... | |
![]() | |
std::ostream & | operator<< (std::ostream &os, const Teuchos::Object &obj) |
Print the given Object to the given output stream. More... | |
Constructor/Destructor methods. | |
SerialBandDenseMatrix () | |
Default Constructor. More... | |
SerialBandDenseMatrix (OrdinalType numRows, OrdinalType numCols, OrdinalType kl, OrdinalType ku, bool zeroOut=true) | |
Shaped Constructor. More... | |
SerialBandDenseMatrix (DataAccess CV, ScalarType *values, OrdinalType stride, OrdinalType numRows, OrdinalType numCols, OrdinalType kl, OrdinalType ku) | |
Shaped Constructor with Values. More... | |
SerialBandDenseMatrix (const SerialBandDenseMatrix< OrdinalType, ScalarType > &Source, ETransp trans=Teuchos::NO_TRANS) | |
Copy Constructor. More... | |
SerialBandDenseMatrix (DataAccess CV, const SerialBandDenseMatrix< OrdinalType, ScalarType > &Source, OrdinalType numRows, OrdinalType numCols, OrdinalType startCol=0) | |
Submatrix Copy Constructor. More... | |
virtual | ~SerialBandDenseMatrix () |
Destructor. More... | |
Shaping methods. | |
int | shape (OrdinalType numRows, OrdinalType numCols, OrdinalType kl, OrdinalType ku) |
Shape method for changing the size of a SerialBandDenseMatrix, initializing entries to zero. More... | |
int | shapeUninitialized (OrdinalType numRows, OrdinalType numCols, OrdinalType kl, OrdinalType ku) |
Same as shape() except leaves uninitialized. More... | |
int | reshape (OrdinalType numRows, OrdinalType numCols, OrdinalType kl, OrdinalType ku) |
Reshaping method for changing the size of a SerialBandDenseMatrix, keeping the entries. More... | |
Set methods. | |
SerialBandDenseMatrix< OrdinalType, ScalarType > & | operator= (const SerialBandDenseMatrix< OrdinalType, ScalarType > &Source) |
Copies values from one matrix to another. More... | |
SerialBandDenseMatrix< OrdinalType, ScalarType > & | assign (const SerialBandDenseMatrix< OrdinalType, ScalarType > &Source) |
Copies values from one matrix to another. More... | |
SerialBandDenseMatrix< OrdinalType, ScalarType > & | operator= (const ScalarType value) |
Set all values in the matrix to a constant value. More... | |
int | putScalar (const ScalarType value=Teuchos::ScalarTraits< ScalarType >::zero()) |
Set all values in the matrix to a constant value. More... | |
int | random () |
Set all values in the matrix to be random numbers. More... | |
Accessor methods. | |
ScalarType & | operator() (OrdinalType rowIndex, OrdinalType colIndex) |
Element access method (non-const). More... | |
const ScalarType & | operator() (OrdinalType rowIndex, OrdinalType colIndex) const |
Element access method (const). More... | |
ScalarType * | operator[] (OrdinalType colIndex) |
Column access method (non-const). More... | |
const ScalarType * | operator[] (OrdinalType colIndex) const |
Column access method (const). More... | |
ScalarType * | values () const |
Data array access method. More... | |
Mathematical methods. | |
SerialBandDenseMatrix< OrdinalType, ScalarType > & | operator+= (const SerialBandDenseMatrix< OrdinalType, ScalarType > &Source) |
Add another matrix to this matrix. More... | |
SerialBandDenseMatrix< OrdinalType, ScalarType > & | operator-= (const SerialBandDenseMatrix< OrdinalType, ScalarType > &Source) |
Subtract another matrix from this matrix. More... | |
SerialBandDenseMatrix< OrdinalType, ScalarType > & | operator*= (const ScalarType alpha) |
Scale this matrix by alpha ; *this = alpha* More... | |
int | scale (const ScalarType alpha) |
Scale this matrix by alpha ; *this = alpha* More... | |
int | scale (const SerialBandDenseMatrix< OrdinalType, ScalarType > &A) |
Point-wise scale this matrix by A ; i.e. *this(i,j) *= A(i,j) More... | |
Comparison methods. | |
bool | operator== (const SerialBandDenseMatrix< OrdinalType, ScalarType > &Operand) const |
Equality of two matrices. More... | |
bool | operator!= (const SerialBandDenseMatrix< OrdinalType, ScalarType > &Operand) const |
Inequality of two matrices. More... | |
Attribute methods. | |
OrdinalType | numRows () const |
Returns the row dimension of this matrix. More... | |
OrdinalType | numCols () const |
Returns the column dimension of this matrix. More... | |
OrdinalType | lowerBandwidth () const |
Returns the lower bandwidth of this matrix. More... | |
OrdinalType | upperBandwidth () const |
Returns the upper bandwidth of this matrix. More... | |
OrdinalType | stride () const |
Returns the stride between the columns of this matrix in memory. More... | |
bool | empty () const |
Returns whether this matrix is empty. More... | |
Norm methods. | |
ScalarTraits< ScalarType >::magnitudeType | normOne () const |
Returns the 1-norm of the matrix. More... | |
ScalarTraits< ScalarType >::magnitudeType | normInf () const |
Returns the Infinity-norm of the matrix. More... | |
ScalarTraits< ScalarType >::magnitudeType | normFrobenius () const |
Returns the Frobenius-norm of the matrix. More... | |
I/O methods. | |
virtual void | print (std::ostream &os) const |
Print method. Defines the behavior of the std::ostream << operator inherited from the Object class. More... | |
Additional Inherited Members | |
![]() | |
CompObject () | |
Default constructor. More... | |
CompObject (const CompObject &source) | |
Copy Constructor. More... | |
virtual | ~CompObject () |
Destructor. More... | |
void | setFlopCounter (const Flops &FlopCounter) |
Set the internal Teuchos::Flops() pointer. More... | |
void | setFlopCounter (const CompObject &compObject) |
Set the internal Teuchos::Flops() pointer to the flop counter of another Teuchos::CompObject. More... | |
void | unsetFlopCounter () |
Set the internal Teuchos::Flops() pointer to 0 (no flops counted). More... | |
Flops * | getFlopCounter () const |
Get the pointer to the Teuchos::Flops() object associated with this object, returns 0 if none. More... | |
void | resetFlops () const |
Resets the number of floating point operations to zero for this multi-std::vector. More... | |
double | getFlops () const |
Returns the number of floating point operations with this multi-std::vector. More... | |
void | updateFlops (int addflops) const |
Increment Flop count for this object. More... | |
void | updateFlops (long int addflops) const |
Increment Flop count for this object. More... | |
void | updateFlops (double addflops) const |
Increment Flop count for this object. More... | |
void | updateFlops (float addflops) const |
Increment Flop count for this object. More... | |
![]() | |
Object (int tracebackModeIn=-1) | |
Default Constructor. More... | |
Object (const char *label, int tracebackModeIn=-1) | |
Labeling Constructor. More... | |
Object (const std::string &label, int tracebackModeIn=-1) | |
Create an Object with the given label, and optionally, with the given traceback mode. More... | |
virtual | ~Object () |
Destructor (virtual, for safety of derived classes). More... | |
virtual void | setLabel (const char *theLabel) |
virtual const char * | label () const |
Access the object's label (LEGACY; return std::string instead). More... | |
virtual int | reportError (const std::string message, int errorCode) const |
Report an error with this Object. More... | |
![]() | |
BLAS (void) | |
Default constructor. More... | |
BLAS (const BLAS< OrdinalType, ScalarType > &) | |
Copy constructor. More... | |
virtual | ~BLAS (void) |
Destructor. More... | |
![]() | |
DefaultBLASImpl (void) | |
Default constructor. More... | |
DefaultBLASImpl (const DefaultBLASImpl< OrdinalType, ScalarType > &) | |
Copy constructor. More... | |
virtual | ~DefaultBLASImpl (void) |
Destructor. More... | |
void | ROTG (ScalarType *da, ScalarType *db, rotg_c_type *c, ScalarType *s) const |
Computes a Givens plane rotation. More... | |
void | ROT (const OrdinalType n, ScalarType *dx, const OrdinalType incx, ScalarType *dy, const OrdinalType incy, MagnitudeType *c, ScalarType *s) const |
Applies a Givens plane rotation. More... | |
void | SCAL (const OrdinalType n, const ScalarType alpha, ScalarType *x, const OrdinalType incx) const |
Scale the vector x by the constant alpha . More... | |
void | COPY (const OrdinalType n, const ScalarType *x, const OrdinalType incx, ScalarType *y, const OrdinalType incy) const |
Copy the vector x to the vector y . More... | |
template<typename alpha_type , typename x_type > | |
void | AXPY (const OrdinalType n, const alpha_type alpha, const x_type *x, const OrdinalType incx, ScalarType *y, const OrdinalType incy) const |
Perform the operation: y <- y+alpha*x . More... | |
ScalarTraits< ScalarType >::magnitudeType | ASUM (const OrdinalType n, const ScalarType *x, const OrdinalType incx) const |
Sum the absolute values of the entries of x . More... | |
template<typename x_type , typename y_type > | |
ScalarType | DOT (const OrdinalType n, const x_type *x, const OrdinalType incx, const y_type *y, const OrdinalType incy) const |
Form the dot product of the vectors x and y . More... | |
ScalarTraits< ScalarType >::magnitudeType | NRM2 (const OrdinalType n, const ScalarType *x, const OrdinalType incx) const |
Compute the 2-norm of the vector x . More... | |
OrdinalType | IAMAX (const OrdinalType n, const ScalarType *x, const OrdinalType incx) const |
Return the index of the element of x with the maximum magnitude. More... | |
template<typename alpha_type , typename A_type , typename x_type , typename beta_type > | |
void | GEMV (ETransp trans, const OrdinalType m, const OrdinalType n, const alpha_type alpha, const A_type *A, const OrdinalType lda, const x_type *x, const OrdinalType incx, const beta_type beta, ScalarType *y, const OrdinalType incy) const |
Performs the matrix-vector operation: y <- alpha*A*x+beta*y or y <- alpha*A'*x+beta*y where A is a general m by n matrix. More... | |
template<typename A_type > | |
void | TRMV (EUplo uplo, ETransp trans, EDiag diag, const OrdinalType n, const A_type *A, const OrdinalType lda, ScalarType *x, const OrdinalType incx) const |
Performs the matrix-vector operation: x <- A*x or x <- A'*x where A is a unit/non-unit n by n upper/lower triangular matrix. More... | |
template<typename alpha_type , typename x_type , typename y_type > | |
void | GER (const OrdinalType m, const OrdinalType n, const alpha_type alpha, const x_type *x, const OrdinalType incx, const y_type *y, const OrdinalType incy, ScalarType *A, const OrdinalType lda) const |
Performs the rank 1 operation: A <- alpha*x*y'+A . More... | |
template<typename alpha_type , typename A_type , typename B_type , typename beta_type > | |
void | GEMM (ETransp transa, ETransp transb, const OrdinalType m, const OrdinalType n, const OrdinalType k, const alpha_type alpha, const A_type *A, const OrdinalType lda, const B_type *B, const OrdinalType ldb, const beta_type beta, ScalarType *C, const OrdinalType ldc) const |
General matrix-matrix multiply. More... | |
void | SWAP (const OrdinalType n, ScalarType *const x, const OrdinalType incx, ScalarType *const y, const OrdinalType incy) const |
Swap the entries of x and y. More... | |
template<typename alpha_type , typename A_type , typename B_type , typename beta_type > | |
void | SYMM (ESide side, EUplo uplo, const OrdinalType m, const OrdinalType n, const alpha_type alpha, const A_type *A, const OrdinalType lda, const B_type *B, const OrdinalType ldb, const beta_type beta, ScalarType *C, const OrdinalType ldc) const |
Performs the matrix-matrix operation: C <- alpha*A*B+beta*C or C <- alpha*B*A+beta*C where A is an m by m or n by n symmetric matrix and B is a general matrix. More... | |
template<typename alpha_type , typename A_type , typename beta_type > | |
void | SYRK (EUplo uplo, ETransp trans, const OrdinalType n, const OrdinalType k, const alpha_type alpha, const A_type *A, const OrdinalType lda, const beta_type beta, ScalarType *C, const OrdinalType ldc) const |
Performs the symmetric rank k operation: C <- alpha*A*A'+beta*C or C <- alpha*A'*A+beta*C , where alpha and beta are scalars, C is an n by n symmetric matrix and A is an n by k matrix in the first case or k by n matrix in the second case. More... | |
template<typename alpha_type , typename A_type > | |
void | TRMM (ESide side, EUplo uplo, ETransp transa, EDiag diag, const OrdinalType m, const OrdinalType n, const alpha_type alpha, const A_type *A, const OrdinalType lda, ScalarType *B, const OrdinalType ldb) const |
Performs the matrix-matrix operation: B <- alpha*op (A)*B or B <- alpha*B*op (A) where op(A) is an unit/non-unit, upper/lower triangular matrix and B is a general matrix. More... | |
template<typename alpha_type , typename A_type > | |
void | TRSM (ESide side, EUplo uplo, ETransp transa, EDiag diag, const OrdinalType m, const OrdinalType n, const alpha_type alpha, const A_type *A, const OrdinalType lda, ScalarType *B, const OrdinalType ldb) const |
Solves the matrix equations: op(A)*X=alpha*B or X*op (A)=alpha*B where X and B are m by n matrices, A is a unit/non-unit, upper/lower triangular matrix and op(A) is A or A' . The matrix X is overwritten on B . More... | |
![]() | |
static void | setTracebackMode (int tracebackModeValue) |
Set the value of the Object error traceback report mode. More... | |
static int | getTracebackMode () |
Get the value of the Object error traceback report mode. More... | |
![]() | |
static int | tracebackMode = -1 |
This class creates and provides basic support for banded dense matrices of templated type.
The Teuchos_SerialBandDenseMatrix class enables the construction and use of banded dense matrices of templated type.
The Teuchos::SerialBandDenseMatrix class is intended to provide full-featured support for solving linear and eigen system problems for banded matrices. It is written on top of BLAS and LAPACK and thus has excellent performance and numerical capabilities. Using this class, one can either perform simple factorizations and solves or apply all the tricks available in LAPACK to get the best possible solution for very ill-conditioned problems.
Teuchos::SerialBandDenseMatrix vs. Teuchos::LAPACK
The Teuchos::LAPACK class provides access to most of the same functionality as Teuchos::SerialBandDenseMatrix. The primary difference is that Teuchos::LAPACK is a "thin" layer on top of LAPACK and Teuchos::SerialBandDenseMatrix attempts to provide easy access to the more sophisticated aspects of solving dense linear and eigensystems.
Constructing Teuchos::SerialBandDenseMatrix Objects
There are three Teuchos::SerialBandDenseMatrix constructors. The first constructs a zero-sized object which should be made to appropriate length using the Shape() or Reshape() functions and then filled with the [] or () operators. The second is a constructor that accepts user data as a 2D array, the third is a copy constructor. The second constructor has two data access modes (specified by the Teuchos::DataAccess argument):
Format of the matrix A
The matrix A is stored as a banded matrix AB according to the LAPACK format. Consider using the non-member conversion routines generalToBanded and bandedToGeneral if the full Teuchos::SerialDenseMatrix is already in storage. However, it is more efficient to simply construct the Teuchos::SerialBandDenseMatrix with the desired parameters and use the provided matrix access operators to assign (legal) entries so that the full rectangular matrix does not need to be stored. A full description of the LAPACK banded format can be found at http://www.netlib.org/lapack/lug/node124.html. Briefly, the banded storage format of AB used internally is as follows:
Extracting Data from Teuchos::SerialBandDenseMatrix Objects
Once a Teuchos::SerialBandDenseMatrix is constructed, it is possible to view the data via access functions.
Vector and Utility Functions
Once a Teuchos::SerialBandDenseMatrix is constructed, several mathematical functions can be applied to the object. Specifically:
Definition at line 133 of file Teuchos_SerialBandDenseMatrix.hpp.
typedef OrdinalType Teuchos::SerialBandDenseMatrix< OrdinalType, ScalarType >::ordinalType |
Typedef for ordinal type.
Definition at line 138 of file Teuchos_SerialBandDenseMatrix.hpp.
typedef ScalarType Teuchos::SerialBandDenseMatrix< OrdinalType, ScalarType >::scalarType |
Typedef for scalar type.
Definition at line 140 of file Teuchos_SerialBandDenseMatrix.hpp.
Teuchos::SerialBandDenseMatrix< OrdinalType, ScalarType >::SerialBandDenseMatrix | ( | ) |
Default Constructor.
Creates a empty matrix of no dimension. The Shaping methods should be used to size this matrix. Values of this matrix should be set using the [], (), or = operators.
Definition at line 449 of file Teuchos_SerialBandDenseMatrix.hpp.
Teuchos::SerialBandDenseMatrix< OrdinalType, ScalarType >::SerialBandDenseMatrix | ( | OrdinalType | numRows, |
OrdinalType | numCols, | ||
OrdinalType | kl, | ||
OrdinalType | ku, | ||
bool | zeroOut = true |
||
) |
Shaped Constructor.
numRows | - Number of rows in matrix. |
numCols | - Number of columns in matrix. |
kl | - Lower bandwidth of matrix. |
ku | - Upper bandwidth of matrix. |
zeroOut | - Initializes values to 0 if true (default) |
Creates a shaped matrix with numRows
rows and numCols
cols. All values are initialized to 0 when zeroOut
is true. Values of this matrix should be set using the [] or the () operators.
Definition at line 464 of file Teuchos_SerialBandDenseMatrix.hpp.
Teuchos::SerialBandDenseMatrix< OrdinalType, ScalarType >::SerialBandDenseMatrix | ( | DataAccess | CV, |
ScalarType * | values, | ||
OrdinalType | stride, | ||
OrdinalType | numRows, | ||
OrdinalType | numCols, | ||
OrdinalType | kl, | ||
OrdinalType | ku | ||
) |
Shaped Constructor with Values.
CV | - Enumerated type set to Teuchos::Copy or Teuchos::View. |
values | - Pointer to an array of ScalarType. The first column starts at values , the second at values+stride , etc. |
stride | - The stride between the columns of the matrix in memory. |
numRows | - Number of rows in matrix. |
numCols | - Number of columns in matrix. |
kl | - Lower bandwidth of matrix. |
ku | - Upper bandwidth of matrix. |
Definition at line 488 of file Teuchos_SerialBandDenseMatrix.hpp.
Teuchos::SerialBandDenseMatrix< OrdinalType, ScalarType >::SerialBandDenseMatrix | ( | const SerialBandDenseMatrix< OrdinalType, ScalarType > & | Source, |
ETransp | trans = Teuchos::NO_TRANS |
||
) |
Copy Constructor.
Source
transposed can be obtained if trans=Teuchos::TRANS
, else
a non-transposed copy of Source
is made. There is no storage of the transpose state of the matrix within the SerialBandDenseMatrix class, so this information will not propogate to any operation performed on a matrix that has been copy constructed in transpose. Definition at line 516 of file Teuchos_SerialBandDenseMatrix.hpp.
Teuchos::SerialBandDenseMatrix< OrdinalType, ScalarType >::SerialBandDenseMatrix | ( | DataAccess | CV, |
const SerialBandDenseMatrix< OrdinalType, ScalarType > & | Source, | ||
OrdinalType | numRows, | ||
OrdinalType | numCols, | ||
OrdinalType | startCol = 0 |
||
) |
Submatrix Copy Constructor.
CV | - Enumerated type set to Teuchos::Copy or Teuchos::View. |
Source | - Reference to another dense matrix from which values are to be copied. |
numRows | - The number of rows in this matrix. |
numCols | - The number of columns in this matrix. |
kl | - Lower bandwidth of matrix. |
ku | - Upper bandwidth of matrix. |
startRow | - The row of Source from which the submatrix copy should start. |
startCol | - The column of Source from which the submatrix copy should start. |
Creates a shaped matrix with numRows
rows and numCols
columns, which is a submatrix of Source
. If startRow
and startCol
are not given, then the submatrix is the leading submatrix of Source
. Otherwise, the (1,1) entry in the copied matrix is the (startRow
, startCol
) entry of Source
.
Definition at line 571 of file Teuchos_SerialBandDenseMatrix.hpp.
|
virtual |
Destructor.
Definition at line 598 of file Teuchos_SerialBandDenseMatrix.hpp.
int Teuchos::SerialBandDenseMatrix< OrdinalType, ScalarType >::shape | ( | OrdinalType | numRows, |
OrdinalType | numCols, | ||
OrdinalType | kl, | ||
OrdinalType | ku | ||
) |
Shape method for changing the size of a SerialBandDenseMatrix, initializing entries to zero.
numRows | - The number of rows in this matrix. |
numCols | - The number of columns in this matrix. |
kl | - Lower bandwidth of matrix. |
ku | - Upper bandwidth of matrix. |
This method allows the user to define the dimensions of a SerialBandDenseMatrix at any point. This method can be called at any point after construction. Any values previously in this object will be destroyed and the resized matrix starts of with all zero values.
Definition at line 608 of file Teuchos_SerialBandDenseMatrix.hpp.
int Teuchos::SerialBandDenseMatrix< OrdinalType, ScalarType >::shapeUninitialized | ( | OrdinalType | numRows, |
OrdinalType | numCols, | ||
OrdinalType | kl, | ||
OrdinalType | ku | ||
) |
Same as shape()
except leaves uninitialized.
Definition at line 626 of file Teuchos_SerialBandDenseMatrix.hpp.
int Teuchos::SerialBandDenseMatrix< OrdinalType, ScalarType >::reshape | ( | OrdinalType | numRows, |
OrdinalType | numCols, | ||
OrdinalType | kl, | ||
OrdinalType | ku | ||
) |
Reshaping method for changing the size of a SerialBandDenseMatrix, keeping the entries.
numRows | - The number of rows in this matrix. |
numCols | - The number of columns in this matrix. |
kl | - Lower bandwidth of matrix. |
ku | - Upper bandwidth of matrix. |
This method allows the user to redefine the dimensions of a SerialBandDenseMatrix at any point. This method can be called at any point after construction. Any values previously in this object will be copied into the reshaped matrix.
Definition at line 643 of file Teuchos_SerialBandDenseMatrix.hpp.
SerialBandDenseMatrix< OrdinalType, ScalarType > & Teuchos::SerialBandDenseMatrix< OrdinalType, ScalarType >::operator= | ( | const SerialBandDenseMatrix< OrdinalType, ScalarType > & | Source | ) |
Copies values from one matrix to another.
The operator= copies the values from one existing SerialBandDenseMatrix to another. If Source
is a view (i.e. CV = Teuchos::View), then this method will return a view. Otherwise, it will return a copy of Source
. this object will be resized if it is not large enough to copy Source
into.
Definition at line 706 of file Teuchos_SerialBandDenseMatrix.hpp.
SerialBandDenseMatrix< OrdinalType, ScalarType > & Teuchos::SerialBandDenseMatrix< OrdinalType, ScalarType >::assign | ( | const SerialBandDenseMatrix< OrdinalType, ScalarType > & | Source | ) |
Copies values from one matrix to another.
The operator= copies the values from one existing SerialBandDenseMatrix to another if the dimension of both matrices are the same. If not, this matrix will be returned unchanged.
Definition at line 798 of file Teuchos_SerialBandDenseMatrix.hpp.
|
inline |
Set all values in the matrix to a constant value.
value | - Value to use; |
Definition at line 268 of file Teuchos_SerialBandDenseMatrix.hpp.
int Teuchos::SerialBandDenseMatrix< OrdinalType, ScalarType >::putScalar | ( | const ScalarType | value = Teuchos::ScalarTraits<ScalarType>::zero() | ) |
Set all values in the matrix to a constant value.
value | - Value to use; zero if none specified. |
Definition at line 677 of file Teuchos_SerialBandDenseMatrix.hpp.
int Teuchos::SerialBandDenseMatrix< OrdinalType, ScalarType >::random | ( | ) |
Set all values in the matrix to be random numbers.
Definition at line 691 of file Teuchos_SerialBandDenseMatrix.hpp.
|
inline |
Element access method (non-const).
Returns the element in the ith row and jth column if A(i,j) is specified, the expression A[j][i] will return the same element.
rowIndex
row and colIndex
column. rowIndex
and colIndex
will only be checked if Teuchos is configured with –enable-teuchos-abc. Definition at line 819 of file Teuchos_SerialBandDenseMatrix.hpp.
|
inline |
Element access method (const).
Returns the element in the ith row and jth column if A(i,j) is specified, the expression A[j][i] will return the same element.
rowIndex
row and colIndex
column. rowIndex
and colIndex
will only be checked if Teuchos is configured with –enable-teuchos-abc. Definition at line 828 of file Teuchos_SerialBandDenseMatrix.hpp.
|
inline |
Column access method (non-const).
Returns the pointer to the ScalarType array at the jth column if A[j] is specified, the expression A[j][i] will return the same element as A(i,j).
colIndex
column ( values_+colIndex*stride_
). colIndex
will only be checked if Teuchos is configured with –enable-teuchos-abc. Definition at line 846 of file Teuchos_SerialBandDenseMatrix.hpp.
|
inline |
Column access method (const).
Returns the pointer to the ScalarType array at the jth column if A[j] is specified, the expression A[j][i] will return the same element as A(i,j).
colIndex
column ( values_+colIndex*stride_
). colIndex
will only be checked if Teuchos is configured with –enable-teuchos-abc. Definition at line 837 of file Teuchos_SerialBandDenseMatrix.hpp.
|
inline |
Data array access method.
Definition at line 327 of file Teuchos_SerialBandDenseMatrix.hpp.
SerialBandDenseMatrix< OrdinalType, ScalarType > & Teuchos::SerialBandDenseMatrix< OrdinalType, ScalarType >::operator+= | ( | const SerialBandDenseMatrix< OrdinalType, ScalarType > & | Source | ) |
Add another matrix to this matrix.
Add Source
to this if the dimension of both matrices are the same. If not, this matrix will be returned unchanged.
Definition at line 772 of file Teuchos_SerialBandDenseMatrix.hpp.
SerialBandDenseMatrix< OrdinalType, ScalarType > & Teuchos::SerialBandDenseMatrix< OrdinalType, ScalarType >::operator-= | ( | const SerialBandDenseMatrix< OrdinalType, ScalarType > & | Source | ) |
Subtract another matrix from this matrix.
Subtract Source
from this if the dimension of both matrices are the same. If not, this matrix will be returned unchanged.
Definition at line 785 of file Teuchos_SerialBandDenseMatrix.hpp.
SerialBandDenseMatrix< OrdinalType, ScalarType > & Teuchos::SerialBandDenseMatrix< OrdinalType, ScalarType >::operator*= | ( | const ScalarType | alpha | ) |
Scale this
matrix by alpha
; *this
= alpha*
*this
.
alpha | Scalar to multiply this by. |
Definition at line 953 of file Teuchos_SerialBandDenseMatrix.hpp.
int Teuchos::SerialBandDenseMatrix< OrdinalType, ScalarType >::scale | ( | const ScalarType | alpha | ) |
Scale this
matrix by alpha
; *this
= alpha*
*this
.
alpha | Scalar to multiply this by. |
Definition at line 960 of file Teuchos_SerialBandDenseMatrix.hpp.
int Teuchos::SerialBandDenseMatrix< OrdinalType, ScalarType >::scale | ( | const SerialBandDenseMatrix< OrdinalType, ScalarType > & | A | ) |
Point-wise scale this
matrix by A
; i.e. *this(i,j) *= A(i,j)
The values of *this
matrix will be point-wise scaled by the values in A. If A and this
matrix are not the same dimension this
will be returned unchanged.
B | Teuchos::SerialBandDenseMatrix used to perform element-wise scaling of this. |
Definition at line 978 of file Teuchos_SerialBandDenseMatrix.hpp.
bool Teuchos::SerialBandDenseMatrix< OrdinalType, ScalarType >::operator== | ( | const SerialBandDenseMatrix< OrdinalType, ScalarType > & | Operand | ) | const |
Equality of two matrices.
Operand
are of the same shape (rows and columns) and have the same entries, else False will be returned. Definition at line 922 of file Teuchos_SerialBandDenseMatrix.hpp.
bool Teuchos::SerialBandDenseMatrix< OrdinalType, ScalarType >::operator!= | ( | const SerialBandDenseMatrix< OrdinalType, ScalarType > & | Operand | ) | const |
Inequality of two matrices.
Operand
of not of the same shape (rows and columns) or don't have the same entries, else False will be returned. Definition at line 943 of file Teuchos_SerialBandDenseMatrix.hpp.
|
inline |
Returns the row dimension of this matrix.
Definition at line 391 of file Teuchos_SerialBandDenseMatrix.hpp.
|
inline |
Returns the column dimension of this matrix.
Definition at line 394 of file Teuchos_SerialBandDenseMatrix.hpp.
|
inline |
Returns the lower bandwidth of this matrix.
Definition at line 397 of file Teuchos_SerialBandDenseMatrix.hpp.
|
inline |
Returns the upper bandwidth of this matrix.
Definition at line 400 of file Teuchos_SerialBandDenseMatrix.hpp.
|
inline |
Returns the stride between the columns of this matrix in memory.
Definition at line 403 of file Teuchos_SerialBandDenseMatrix.hpp.
|
inline |
Returns whether this matrix is empty.
Definition at line 406 of file Teuchos_SerialBandDenseMatrix.hpp.
ScalarTraits< ScalarType >::magnitudeType Teuchos::SerialBandDenseMatrix< OrdinalType, ScalarType >::normOne | ( | ) | const |
Returns the 1-norm of the matrix.
Definition at line 859 of file Teuchos_SerialBandDenseMatrix.hpp.
ScalarTraits< ScalarType >::magnitudeType Teuchos::SerialBandDenseMatrix< OrdinalType, ScalarType >::normInf | ( | ) | const |
Returns the Infinity-norm of the matrix.
Definition at line 883 of file Teuchos_SerialBandDenseMatrix.hpp.
ScalarTraits< ScalarType >::magnitudeType Teuchos::SerialBandDenseMatrix< OrdinalType, ScalarType >::normFrobenius | ( | ) | const |
Returns the Frobenius-norm of the matrix.
Definition at line 901 of file Teuchos_SerialBandDenseMatrix.hpp.
|
virtual |
Print method. Defines the behavior of the std::ostream << operator inherited from the Object class.
Reimplemented from Teuchos::Object.
Definition at line 1000 of file Teuchos_SerialBandDenseMatrix.hpp.
|
protected |
Definition at line 1054 of file Teuchos_SerialBandDenseMatrix.hpp.
|
protected |
Definition at line 1044 of file Teuchos_SerialBandDenseMatrix.hpp.
|
inlineprotected |
Definition at line 1030 of file Teuchos_SerialBandDenseMatrix.hpp.
|
related |
A templated, non-member, helper function for converting a SerialDenseMatrix to a SerialBandDenseMatrix.
A | - [in] SerialDenseMatrix to be converted |
kl | - [in] Integer indicating desired lower bandwidth of band matrix. |
ku | - [in] Integer indicating desired upper bandwidth of band matrix. |
factorFormat | - [in] Bool indicating whether kl extra superdiagonals should be stored to be used by factorization. |
Teuchos::SerialBandDenseMatrix<int,double> AB = Teuchos::generalToBanded<int,double>( A, kl, ku, true )
Definition at line 197 of file Teuchos_SerialDenseHelpers.hpp.
|
related |
A templated, non-member, helper function for converting a SerialBandDenseMatrix to a SerialDenseMatrix.
A | - [in] SerialBandDenseMatrix to be converted |
Teuchos::SerialDenseMatrix<int,double> A = Teuchos::bandedToGeneral<int,double>( AB )
Definition at line 233 of file Teuchos_SerialDenseHelpers.hpp.
|
protected |
Definition at line 434 of file Teuchos_SerialBandDenseMatrix.hpp.
|
protected |
Definition at line 435 of file Teuchos_SerialBandDenseMatrix.hpp.
|
protected |
Definition at line 436 of file Teuchos_SerialBandDenseMatrix.hpp.
|
protected |
Definition at line 437 of file Teuchos_SerialBandDenseMatrix.hpp.
|
protected |
Definition at line 438 of file Teuchos_SerialBandDenseMatrix.hpp.
|
protected |
Definition at line 439 of file Teuchos_SerialBandDenseMatrix.hpp.
|
protected |
Definition at line 440 of file Teuchos_SerialBandDenseMatrix.hpp.