Functions

OpenTissue::math::big::details Namespace Reference

Functions

template<class T >
hypot (T const &a, T const &b)
template<typename ME >
void svd_impl1 (ublas::matrix_expression< ME > const &AE, ublas::matrix< typename ME::value_type > &U, ublas::vector< typename ME::value_type > &s, ublas::matrix< typename ME::value_type > &V)
template<typename ME >
void svd_impl_atlas (ublas::matrix_expression< ME > const &A, ublas::matrix< typename ME::value_type, ublas::column_major > &U, ublas::vector< typename ME::value_type > &s, ublas::matrix< typename ME::value_type, ublas::column_major > &VT)

Function Documentation

template<class T >
T OpenTissue::math::big::details::hypot ( T const &  a,
T const &  b 
) [inline]

Hypotenuse.

Parameters:
a A real value
b A real vlaue
Returns:
hypotenuse of real (non-complex) scalars a and b by avoiding underflow/overflow using (a * sqrt( 1 + (b/a) * (b/a))), rather than sqrt(a*a + b*b).
template<typename ME >
void OpenTissue::math::big::details::svd_impl1 ( ublas::matrix_expression< ME > const &  AE,
ublas::matrix< typename ME::value_type > &  U,
ublas::vector< typename ME::value_type > &  s,
ublas::matrix< typename ME::value_type > &  V 
) [inline]

Compute Singular Value Decomposition of a matrix.

A = U S VT

For an m-by-n matrix A with m >= n, the singular value decomposition is an m-by-n orthogonal matrix U, an n-by-n diagonal matrix S, and an n-by-n orthogonal matrix V so that A = U*S*V'.

The singular values, sigma(k) = S(k,k), are ordered so that sigma(0) >= sigma(1) >= ... >= sigma(n-1).

The singular value decompostion always exists, so the constructor will never fail. The matrix condition number and the effective numerical rank can be computed from this decomposition.

(Adapted from JAMA, a Java Matrix Library, developed by jointly by the Mathworks and NIST; see http://math.nist.gov/javanumerics/jama).

Parameters:
AE The input matrix.
U Upon return this matrix holds orthogonal columns.
s A vector containing the singular values.
V Upon return this matrix is an orthogonal matrix.
template<typename ME >
void OpenTissue::math::big::details::svd_impl_atlas ( ublas::matrix_expression< ME > const &  A,
ublas::matrix< typename ME::value_type, ublas::column_major > &  U,
ublas::vector< typename ME::value_type > &  s,
ublas::matrix< typename ME::value_type, ublas::column_major > &  VT 
) [inline]

Compute Singular Value Decomposition of a matrix.

A = U S VT

Parameters:
A The matrix.
U Upon return this matrix holds orthogonal columns.
s A vector containing the singular values.
VT Upon return this matrix is an orthogonal matrix.