# 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 static abs_type linalg_traits< T >::sqrt ( norm_type n ) ` [inline, static]`
 Method to return the square root of a norm_type. Generically: std::sqrt(). This throws an error if std::sqrt(norm_type) 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 1.4.4