Special Products

Functions

template<class V, class E1, class E2> BOOST_UBLAS_INLINE V &  axpy_prod (const matrix_expression< E1 > &e1, const vector_expression< E2 > &e2, V &v, bool init=true)
  computes v += A x or v = A x in an optimized fashion.

template<class V, class E1, class E2> BOOST_UBLAS_INLINE V &  axpy_prod (const vector_expression< E1 > &e1, const matrix_expression< E2 > &e2, V &v, bool init=true)
  computes v += AT x or v = AT x in an optimized fashion.

template<class M, class E1, class E2> BOOST_UBLAS_INLINE M &  axpy_prod (const matrix_expression< E1 > &e1, const matrix_expression< E2 > &e2, M &m, bool init=true)
  computes M += A X or M = A X in an optimized fashion.

template<class M, class E1, class E2> BOOST_UBLAS_INLINE M &  opb_prod (const matrix_expression< E1 > &e1, const matrix_expression< E2 > &e2, M &m, bool init=true)
  computes M += A X or M = A X in an optimized fashion.


BOOST_UBLAS_INLINE V& axpy_prod const matrix_expression< E1 > &  e1,
const vector_expression< E2 > &  e2,
V &  v,
bool  init = true
 

computes v += A x or v = A x in an optimized fashion.

Parameters:
e1 the matrix expression A
e2 the vector expression x
v the result vector v
init a boolean parameter
axpy_prod(A, x, v, init) implements the well known axpy-product. Setting init to true is equivalent to call v.clear() before axpy_prod. Currently init defaults to true, but this may change in the future.

Up to now there are some specialisation for compressed matrices that give a large speed up compared to prod.

BOOST_UBLAS_INLINE V& axpy_prod const vector_expression< E1 > &  e1,
const matrix_expression< E2 > &  e2,
V &  v,
bool  init = true
 

computes v += AT x or v = AT x in an optimized fashion.

Parameters:
e1 the vector expression x
e2 the matrix expression A
v the result vector v
init a boolean parameter
axpy_prod(x, A, v, init) implements the well known axpy-product. Setting init to true is equivalent to call v.clear() before axpy_prod. Currently init defaults to true, but this may change in the future.

Up to now there are some specialisation for compressed matrices that give a large speed up compared to prod.

BOOST_UBLAS_INLINE M& axpy_prod const matrix_expression< E1 > &  e1,
const matrix_expression< E2 > &  e2,
M &  m,
bool  init = true
 

computes M += A X or M = A X in an optimized fashion.

Parameters:
e1 the matrix expression A
e2 the matrix expression X
m the result matrix M
init a boolean parameter
axpy_prod(A, X, M, init) implements the well known axpy-product. Setting init to true is equivalent to call M.clear() before axpy_prod. Currently init defaults to true, but this may change in the future.

Up to now there are no specialisations.

BOOST_UBLAS_INLINE M& opb_prod const matrix_expression< E1 > &  e1,
const matrix_expression< E2 > &  e2,
M &  m,
bool  init = true
 

computes M += A X or M = A X in an optimized fashion.

Parameters:
e1 the matrix expression A
e2 the matrix expression X
m the result matrix M
init a boolean parameter
opb_prod(A, X, M, init) implements the well known axpy-product. Setting init to true is equivalent to call M.clear() before opb_prod. Currently init defaults to true, but this may change in the future.

This function may give a speedup if A has less columns than rows, because the product is computed as a sum of outer products.


Copyright (©) 2000-2004 Michael Stevens, Mathias Koch, Joerg Walter, Gunter Winkler
Permission to copy, use, modify, sell and distribute this document is granted provided this copyright notice appears in all copies. This document is provided ``as is'' without express or implied warranty, and with no claim as to its suitability for any purpose.