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

Blackbox of a difference: C := A - B, i.e Cx = Ax - Bx. More...

#include <dif.h>

Inherits BlackboxInterface.

Public Member Functions

 Dif (const Blackbox1 &A, const Blackbox2 &B)
 Build this as A - B from blackboxes A, B. More...
 
 Dif (const Blackbox1 *A_ptr, const Blackbox2 *B_ptr)
 Build this as A - B from blackbox pointers A_ptr, B_ptr. More...
 
 Dif (const Dif< Blackbox1, Blackbox2 > &M)
 Makes a deep copy. More...
 
 ~Dif (void)
 Destructor.
 
template<class OutVector , class InVector >
OutVector & apply (OutVector &y, const InVector &x) const
 Application of BlackBox matrix. More...
 
template<class OutVector , class InVector >
OutVector & applyTranspose (OutVector &y, const InVector &x) const
 Application of BlackBox matrix transpose. More...
 
size_t rowdim (void) const
 Retreive row dimensions of BlackBox matrix. More...
 
size_t coldim (void) const
 Retreive column dimensions of BlackBox matrix. More...
 

Detailed Description

template<class _Blackbox1, class _Blackbox2>
class LinBox::Dif< _Blackbox1, _Blackbox2 >

Blackbox of a difference: C := A - B, i.e Cx = Ax - Bx.

Template parameters: Field is the class of the entry domain, Vector is a LinBox dense or sparse vector of field elements class.

Constructor & Destructor Documentation

◆ Dif() [1/3]

Dif ( const Blackbox1 &  A,
const Blackbox2 &  B 
)
inline

Build this as A - B from blackboxes A, B.

A and B must have the same shape and be over the same field. Their data is not copied. A subsequent change to one of them also changes this difference.

◆ Dif() [2/3]

Dif ( const Blackbox1 *  A_ptr,
const Blackbox2 *  B_ptr 
)
inline

Build this as A - B from blackbox pointers A_ptr, B_ptr.

The two matrices must have the same shape and be over the same field. Their data is copied. I don't know why.

◆ Dif() [3/3]

Dif ( const Dif< Blackbox1, Blackbox2 > &  M)
inline

Makes a deep copy.

Creates new black box objects in dynamic memory.

Parameters
Mconstant reference to compose black box matrix

Member Function Documentation

◆ apply()

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

Application of BlackBox matrix.

y= (A+B)*x. Requires one vector conforming to the LinBox vector archetype. Required by abstract base class.

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

◆ applyTranspose()

OutVector& applyTranspose ( OutVector &  y,
const InVector &  x 
) const
inline

Application of BlackBox matrix transpose.

y= transpose(A+B)*x. Requires one vector conforming to the LinBox vector archetype. Required by abstract base class.

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

◆ rowdim()

size_t rowdim ( void  ) const
inline

Retreive row dimensions of BlackBox matrix.

This may be needed for applying preconditioners. Required by abstract base class.

Returns
integer number of rows of black box matrix.

◆ coldim()

size_t coldim ( void  ) const
inline

Retreive column dimensions of BlackBox matrix.

Required by abstract base class.

Returns
integer number of columns of black box matrix.

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