Teuchos Package Browser (Single Doxygen Collection)  Version of the Day
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
numerics/example/LAPACK/cxx_main.cpp
Go to the documentation of this file.
1 // @HEADER
2 // *****************************************************************************
3 // Teuchos: Common Tools Package
4 //
5 // Copyright 2004 NTESS and the Teuchos contributors.
6 // SPDX-License-Identifier: BSD-3-Clause
7 // *****************************************************************************
8 // @HEADER
9 
10 #include "Teuchos_LAPACK.hpp"
13 #include "Teuchos_Version.hpp"
14 
15 int main(int argc, char* argv[])
16 {
17  std::cout << Teuchos::Teuchos_Version() << std::endl << std::endl;
18 
19  // Creating an instance of the LAPACK class for double-precision routines looks like:
21 
22  // This instance provides the access to all the LAPACK routines.
25  My_Matrix.random();
26  My_Vector.random();
27 
28  // Perform an LU factorization of this matrix.
29  int ipiv[4], info;
30  char TRANS = 'N';
31  lapack.GETRF( 4, 4, My_Matrix.values(), My_Matrix.stride(), ipiv, &info );
32 
33  // Solve the linear system.
34  lapack.GETRS( TRANS, 4, 1, My_Matrix.values(), My_Matrix.stride(),
35  ipiv, My_Vector.values(), My_Vector.stride(), &info );
36 
37  // Print out the solution.
38  std::cout << printMat(My_Vector) << std::endl;
39 
40  return 0;
41 }
ScalarType * values() const
Data array access method.
Templated serial dense matrix class.
SerialBandDenseMatrixPrinter< OrdinalType, ScalarType > printMat(const SerialBandDenseMatrix< OrdinalType, ScalarType > &obj)
Return SerialBandDenseMatrix ostream manipulator Use as:
This class creates and provides basic support for dense vectors of templated type as a specialization...
void GETRF(const OrdinalType &m, const OrdinalType &n, ScalarType *A, const OrdinalType &lda, OrdinalType *IPIV, OrdinalType *info) const
Computes an LU factorization of a general m by n matrix A using partial pivoting with row interchange...
Templated interface class to LAPACK routines.
The Templated LAPACK Wrapper Class.
std::string Teuchos_Version()
int main(int argc, char *argv[])
int random()
Set all values in the matrix to be random numbers.
void GETRS(const char &TRANS, const OrdinalType &n, const OrdinalType &nrhs, const ScalarType *A, const OrdinalType &lda, const OrdinalType *IPIV, ScalarType *B, const OrdinalType &ldb, OrdinalType *info) const
Solves a system of linear equations A*X=B or A&#39;*X=B with a general n by n matrix A using the LU facto...
Templated serial dense vector class.
OrdinalType stride() const
Returns the stride between the columns of this matrix in memory.
This class creates and provides basic support for dense rectangular matrix of templated type...