linbox  1
Public Member Functions
Compose< _Blackbox1, _Blackbox2 > Class Template Reference

Blackbox of a product: C := AB, i.e. Cx := A(Bx). More...

#include <compose.h>

Inheritance diagram for Compose< _Blackbox1, _Blackbox2 >:
BlackboxInterface

List of all members.

Public Member Functions

 Compose (const Blackbox1 &A, const Blackbox2 &B)
 Compose (const Blackbox1 *A_ptr, const Blackbox2 *B_ptr)
 Compose (const Compose< Blackbox1, Blackbox2 > &M)
 ~Compose ()
 Destructor.
template<class OutVector , class InVector >
OutVector & apply (OutVector &y, const InVector &x) const
template<class OutVector , class InVector >
OutVector & applyTranspose (OutVector &y, const InVector &x) const
size_t rowdim (void) const
 The number of rows.
size_t coldim (void) const
 The number of columns.
const Field & field () const
 The field.

Detailed Description

template<class _Blackbox1, class _Blackbox2 = _Blackbox1>
class LinBox::Compose< _Blackbox1, _Blackbox2 >

Blackbox of a product: C := AB, i.e. Cx := A(Bx).

This is a class that multiplies two matrices by implementing an apply method that calls the apply methods of both of the consituent matrices, one after the other.

This class, like the Black Box archetype from which it is derived, is templatized by the vector type to which the matrix is applied. Both constituent matrices must also use this same vector type. For specification of the blackbox members see BlackboxArchetype}.

{ Template parameter:} must meet the Vector} requirement. General case


Constructor & Destructor Documentation

Compose ( const Blackbox1 &  A,
const Blackbox2 &  B 
) [inline]

Constructor of C := A*B from blackbox matrices A and B. Build the product A*B of any two black box matrices of compatible dimensions. Requires A.coldim() equals B.rowdim().

Compose ( const Blackbox1 *  A_ptr,
const Blackbox2 *  B_ptr 
) [inline]

Constructor of C := (*A_ptr)*(*B_ptr). This constructor creates a matrix that is a product of two black box matrices: A*B from pointers to them.

Compose ( const Compose< Blackbox1, Blackbox2 > &  M) [inline]

Copy constructor. Copies the composed matrix (a small handle). The underlying two matrices are not copied.


Member Function Documentation

OutVector& apply ( OutVector &  y,
const InVector &  x 
) const [inline]

Matrix * column vector product. y= (A*B)*x. Applies B, then A.

Returns:
reference to vector y containing output.
Parameters:
xconstant reference to vector to contain input
OutVector& applyTranspose ( OutVector &  y,
const InVector &  x 
) const [inline]

row vector * matrix produc y= transpose(A*B)*x. Applies A^t then B^t.

Returns:
reference to vector y containing output.
Parameters:
xconstant reference to vector to contain input

The documentation for this class was generated from the following file: