#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.
1.7.1