Teuchos - Trilinos Tools Package Version of the Day
Teuchos::BLAS< OrdinalType, ScalarType > Class Template Reference

The Templated BLAS Wrapper Class. More...

#include <Teuchos_BLAS.hpp>

Inheritance diagram for Teuchos::BLAS< OrdinalType, ScalarType >:
Teuchos::DefaultBLASImpl< OrdinalType, ScalarType > Teuchos::SerialDenseMatrix< OrdinalType, ScalarType > Teuchos::SerialDenseSolver< OrdinalType, ScalarType > Teuchos::SerialSpdDenseSolver< OrdinalType, ScalarType > Teuchos::SerialSymDenseMatrix< OrdinalType, ScalarType > Teuchos::SerialDenseVector< OrdinalType, ScalarType >

List of all members.

Public Member Functions

Constructor/Destructor.
 BLAS (void)
 Default constructor.
 BLAS (const BLAS< OrdinalType, ScalarType > &)
 Copy constructor.
virtual ~BLAS (void)
 Destructor.

Detailed Description

template<typename OrdinalType, typename ScalarType>
class Teuchos::BLAS< OrdinalType, ScalarType >

The Templated BLAS Wrapper Class.

The Teuchos::BLAS class provides functionality similar to the BLAS (Basic Linear Algebra Subprograms). The BLAS provide portable, high- performance implementations of kernels such as dense std::vector multiplication, dot products, dense matrix-std::vector multiplication and dense matrix-matrix multiplication.

The standard BLAS interface is Fortran-specific. Unfortunately, the interface between C++ and Fortran is not standard across all computer platforms. The Teuchos_BLAS class provides C++ bindings for the BLAS kernels in order to insulate the rest of Petra from the details of C++ to Fortran translation.

In addition to giving access the standard BLAS functionality. Teuchos::BLAS also provide functionality for any <ScalarType> class that defines the +, - * and / operators.

Teuchos::BLAS is a single memory image interface only. This is appropriate since the standard BLAS are only specified for serial execution (or shared memory parallel).

Note:
  1. These templates are specialized to use the Fortran BLAS routines for scalar types float and double.

  2. If Teuchos is configured with -DTeuchos_ENABLE_COMPLEX:BOOL=ON then these templates are specialized for scalar types std::complex<float> and std::complex<double> also.
Examples:

BLAS/cxx_main.cpp.

Definition at line 239 of file Teuchos_BLAS.hpp.


Constructor & Destructor Documentation

template<typename OrdinalType, typename ScalarType>
Teuchos::BLAS< OrdinalType, ScalarType >::BLAS ( void  ) [inline]

Default constructor.

Definition at line 249 of file Teuchos_BLAS.hpp.

template<typename OrdinalType, typename ScalarType>
Teuchos::BLAS< OrdinalType, ScalarType >::BLAS ( const BLAS< OrdinalType, ScalarType > &  ) [inline]

Copy constructor.

Definition at line 252 of file Teuchos_BLAS.hpp.

template<typename OrdinalType, typename ScalarType>
virtual Teuchos::BLAS< OrdinalType, ScalarType >::~BLAS ( void  ) [inline, virtual]

Destructor.

Definition at line 255 of file Teuchos_BLAS.hpp.


The documentation for this class was generated from the following file:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines