#include <mbd_optimized_ublas_math_policy.h>
The Typebinder takes a template parameter: math_policy_. This template parameter passes along all math types to the mbd engine.
This class implements an optimized math policy using boost uBLAS and highly specialized for the non-linear projected Gauss-Seidel solver.
typedef OpenTissue::math::BasicMathTypes<real_type_,size_t> OpenTissue::mbd::optimized_ublas_math_policy< real_type_ >::basic_math_types |
typedef ublas::vector_range< idx_vector_type > OpenTissue::mbd::optimized_ublas_math_policy< real_type_ >::idx_vector_range |
typedef ublas::vector<index_type> OpenTissue::mbd::optimized_ublas_math_policy< real_type_ >::idx_vector_type |
typedef basic_math_types::index_type OpenTissue::mbd::optimized_ublas_math_policy< real_type_ >::index_type |
Reimplemented from OpenTissue::math::BasicMathTypes< real_type_, size_t >.
typedef ublas::matrix_range< matrix_type > OpenTissue::mbd::optimized_ublas_math_policy< real_type_ >::matrix_range |
typedef ublas::compressed_matrix<real_type_> OpenTissue::mbd::optimized_ublas_math_policy< real_type_ >::matrix_type |
typedef basic_math_types::real_type OpenTissue::mbd::optimized_ublas_math_policy< real_type_ >::real_type |
Reimplemented from OpenTissue::math::BasicMathTypes< real_type_, size_t >.
typedef vector_type::size_type OpenTissue::mbd::optimized_ublas_math_policy< real_type_ >::size_type |
typedef ublas::vector_range< vector_type > OpenTissue::mbd::optimized_ublas_math_policy< real_type_ >::vector_range |
typedef ublas::vector<real_type_> OpenTissue::mbd::optimized_ublas_math_policy< real_type_ >::vector_type |
static void OpenTissue::mbd::optimized_ublas_math_policy< real_type_ >::assign_minus | ( | vector_type const & | y, | |
vector_type & | x | |||
) | [inline, static] |
computes: x = -y
static void OpenTissue::mbd::optimized_ublas_math_policy< real_type_ >::compute_system_matrix | ( | matrix_type const & | invM, | |
matrix_type const & | J, | |||
system_matrix_type & | A | |||
) | [inline, static] |
static void OpenTissue::mbd::optimized_ublas_math_policy< real_type_ >::get_dimension | ( | vector_type const & | v, | |
size_type & | n | |||
) | [inline, static] |
static void OpenTissue::mbd::optimized_ublas_math_policy< real_type_ >::get_dimensions | ( | matrix_type const & | A, | |
size_type & | m, | |||
size_type & | n | |||
) | [inline, static] |
static void OpenTissue::mbd::optimized_ublas_math_policy< real_type_ >::init_system_matrix | ( | system_matrix_type & | A, | |
vector_type const & | x | |||
) | [inline, static] |
This method is specifically introduced to support the GaussSeidel NCP solver.
static void OpenTissue::mbd::optimized_ublas_math_policy< real_type_ >::prod | ( | vector_type & | x, | |
real_type const & | s | |||
) | [inline, static] |
computes: x *= s
static void OpenTissue::mbd::optimized_ublas_math_policy< real_type_ >::prod | ( | matrix_type const & | A, | |
vector_type const & | x, | |||
vector_type const & | b, | |||
vector_type & | y | |||
) | [inline, static] |
computes: y = prod(A,x) + b
static void OpenTissue::mbd::optimized_ublas_math_policy< real_type_ >::prod | ( | system_matrix_type const & | A, | |
vector_type const & | x, | |||
vector_type const & | b, | |||
vector_type & | y | |||
) | [inline, static] |
static void OpenTissue::mbd::optimized_ublas_math_policy< real_type_ >::prod | ( | matrix_type const & | A, | |
vector_type const & | x, | |||
vector_type & | y | |||
) | [inline, static] |
computes: y = prod(A,x)
static void OpenTissue::mbd::optimized_ublas_math_policy< real_type_ >::prod | ( | matrix_type const & | A, | |
vector_type const & | x, | |||
vector_type & | y, | |||
real_type const & | s | |||
) | [inline, static] |
computes: y = prod(A,x)*s
static void OpenTissue::mbd::optimized_ublas_math_policy< real_type_ >::prod_add | ( | matrix_type const & | A, | |
vector_type const & | x, | |||
vector_type & | y | |||
) | [inline, static] |
computes: y += prod(A,x)
static void OpenTissue::mbd::optimized_ublas_math_policy< real_type_ >::prod_add | ( | matrix_type const & | A, | |
vector_type const & | x, | |||
vector_type & | y, | |||
real_type const & | s | |||
) | [inline, static] |
computes: y += prod(A,x)*s
static void OpenTissue::mbd::optimized_ublas_math_policy< real_type_ >::prod_minus | ( | matrix_type const & | A, | |
vector_type const & | x, | |||
vector_type const & | b, | |||
vector_type & | y | |||
) | [inline, static] |
computes: y = prod(A,x) - b
static void OpenTissue::mbd::optimized_ublas_math_policy< real_type_ >::prod_trans | ( | matrix_type const & | A, | |
vector_type const & | x, | |||
vector_type const & | b, | |||
vector_type & | y | |||
) | [inline, static] |
computes: y = prod(trans(A),x) + b
static void OpenTissue::mbd::optimized_ublas_math_policy< real_type_ >::prod_trans | ( | matrix_type const & | A, | |
vector_type const & | x, | |||
vector_type & | y | |||
) | [inline, static] |
computes: y = prod(trans(A),x)
static void OpenTissue::mbd::optimized_ublas_math_policy< real_type_ >::resize | ( | matrix_type & | A, | |
size_type | m, | |||
size_type | n | |||
) | [inline, static] |
static void OpenTissue::mbd::optimized_ublas_math_policy< real_type_ >::resize | ( | vector_type & | x, | |
size_type | n | |||
) | [inline, static] |
static void OpenTissue::mbd::optimized_ublas_math_policy< real_type_ >::resize | ( | idx_vector_type & | x, | |
size_type | n | |||
) | [inline, static] |
static real_type OpenTissue::mbd::optimized_ublas_math_policy< real_type_ >::row_prod | ( | system_matrix_type const & | A, | |
size_type | i, | |||
vector_type const & | x | |||
) | [inline, static] |
< Interface to support the GaussSeidel NCP solver.
static idx_vector_range OpenTissue::mbd::optimized_ublas_math_policy< real_type_ >::subrange | ( | idx_vector_type & | v, | |
size_type | start, | |||
size_type | stop | |||
) | [inline, static] |
static matrix_range OpenTissue::mbd::optimized_ublas_math_policy< real_type_ >::subrange | ( | matrix_type & | M, | |
size_type | start1, | |||
size_type | stop1, | |||
size_type | start2, | |||
size_type | stop2 | |||
) | [inline, static] |
static vector_range OpenTissue::mbd::optimized_ublas_math_policy< real_type_ >::subrange | ( | vector_type & | v, | |
size_type | start, | |||
size_type | stop | |||
) | [inline, static] |
static void OpenTissue::mbd::optimized_ublas_math_policy< real_type_ >::update_system_matrix | ( | system_matrix_type & | A, | |
size_type | i, | |||
real_type const & | dx | |||
) | [inline, static] |
This method is specifically introduced to support the GaussSeidel NCP solver.