Teuchos Package Browser (Single Doxygen Collection)  Version of the Day
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Private Types | List of all members
Teuchos::BLAS< OrdinalType, ScalarType > Class Template Reference

Templated BLAS wrapper. More...

#include <Teuchos_BLAS.hpp>

Inheritance diagram for Teuchos::BLAS< OrdinalType, ScalarType >:
Inheritance graph
[legend]

Private Types

typedef Teuchos::ScalarTraits
< ScalarType >::magnitudeType 
MagnitudeType
 

Constructor/Destructor.

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

Detailed Description

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

Templated BLAS wrapper.

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 vector sums, inner products, and norms (the BLAS 1 routines), dense matrix-vector multiplication and triangular solve (the BLAS 2 routines), and dense matrix-matrix multiplication and triangular solve with multiple right-hand sides (the BLAS 3 routines).

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 to the standard BLAS functionality, Teuchos::BLAS also provides a generic fall-back implementation for any ScalarType class that defines the +, - * and / operators.

Teuchos::BLAS only operates within a single shared-memory space, just like the BLAS. It does not attempt to implement distributed-memory parallel matrix operations.

Note
This class has specializations for ScalarType=float and double, which use the BLAS library directly. If you configure Teuchos to enable complex arithmetic support, via the CMake option -DTeuchos_ENABLE_COMPLEX:BOOL=ON, then this class will also invoke the BLAS library directly for ScalarType=std::complex<float> and std::complex<double>.

Definition at line 244 of file Teuchos_BLAS.hpp.

Member Typedef Documentation

template<typename OrdinalType, typename ScalarType>
typedef Teuchos::ScalarTraits<ScalarType>::magnitudeType Teuchos::BLAS< OrdinalType, ScalarType >::MagnitudeType
private

Definition at line 247 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 254 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 257 of file Teuchos_BLAS.hpp.

template<typename OrdinalType, typename ScalarType>
virtual Teuchos::BLAS< OrdinalType, ScalarType >::~BLAS ( void  )
inlinevirtual

Destructor.

Definition at line 260 of file Teuchos_BLAS.hpp.


The documentation for this class was generated from the following file: