Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members

linalg_traits< T > Class Template Reference
[Useful ancillary stuff]

Helper class defining relationships between numerical types; e.g. of what type is norm(T)? More...

#include <linalg_abstract.h>

List of all members.

Public Types

typedef T conjugate_type
 The type of conjugate(T). For most types, conjugate_type<T> = T.
typedef T norm_type
 In general, the type of T*conjugate(T).
typedef T abs_type
 The type of the absolute value of a T; typically the same as norm_type<T>.
typedef T general_eigenvalue_type
 The type of the eigenvalues of a Matrix<T>.
typedef T general_eigenvector_type
 The type of the elements of an eigenvector of a Matrix<T>.

Static Public Member Functions

static conjugate_type conjugate (T t)
 Method to return the conjugate of a T. Generic types are invariant under conjugation.
static norm_type norm (T t)
 Method to return the squared 2-norm of a T. Generically: t*conjugate(t).
static abs_type sqrt (norm_type n)
 Method to return the square root of a norm_type<T>.


Detailed Description

template<typename T>
class linalg_traits< T >

Helper class defining relationships between numerical types; e.g. of what type is norm(T)?

The purpose of linalg_traits<T> is to allow a linear algebra object templated on T to discern properties of T at compile-time. These properties include everything necessary to perform all the member methods of standard Vector and Matrix classes.

linalg_traits<T> is currently specialized for T = double and T = std::complex<double>.


Member Function Documentation

template<typename T>
static abs_type linalg_traits< T >::sqrt norm_type  n  )  [inline, static]
 

Method to return the square root of a norm_type<T>.

Generically: std::sqrt(). This throws an error if std::sqrt(norm_type<T>) is not defined.


The documentation for this class was generated from the following file:
Generated on Wed Jun 14 22:25:28 2006 for linalg by  doxygen 1.4.4