linbox
DirectSum< _Blackbox1, _Blackbox2 > Class Template Reference

If C = DirectSum(A, B) and y = xA and z = wB, then (y,z) = (x,w)C. More...

#include <direct-sum.h>

+ Inheritance diagram for DirectSum< _Blackbox1, _Blackbox2 >:

Data Structures

struct  rebind
 

Public Types

typedef _Blackbox1 Blackbox1
 
typedef _Blackbox2 Blackbox2
 
typedef Blackbox1::Field Field
 
typedef Blackbox1::Element Element
 

Public Member Functions

 DirectSum (const Blackbox1 &A, const Blackbox2 &B)
 Constructor from two black box matrices.
 
 DirectSum (const Blackbox1 *Ap, const Blackbox2 *Bp)
 Constructor from two black box matrix pointers.
 
 DirectSum (const DirectSum< Blackbox1, Blackbox2 > &M)
 Copy constructor.
 
 ~DirectSum (void)
 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
 
size_t coldim (void) const
 
const Fieldfield () const
 
const Blackbox1getLeftPtr () const
 
const Blackbox2getRightPtr () const
 
std::ostream & write (std::ostream &os) const
 

Protected Attributes

const Blackbox1_Ap
 
const Blackbox2_Bp
 

Detailed Description

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

If C = DirectSum(A, B) and y = xA and z = wB, then (y,z) = (x,w)C.

And similarly for apply.

Member Typedef Documentation

◆ Blackbox1

template<class _Blackbox1, class _Blackbox2>
typedef _Blackbox1 Blackbox1

◆ Blackbox2

template<class _Blackbox1, class _Blackbox2>
typedef _Blackbox2 Blackbox2

◆ Field

template<class _Blackbox1, class _Blackbox2>
typedef Blackbox1::Field Field

◆ Element

template<class _Blackbox1, class _Blackbox2>
typedef Blackbox1::Element Element

Constructor & Destructor Documentation

◆ DirectSum() [1/3]

template<class _Blackbox1, class _Blackbox2>
DirectSum ( const Blackbox1 & A,
const Blackbox2 & B )
inline

Constructor from two black box matrices.

This becomes direct sum of A and B. They may be rectangular.

Parameters
Ablack box matrices over a common field.
Bblack box matrices over a common field.

◆ DirectSum() [2/3]

template<class _Blackbox1, class _Blackbox2>
DirectSum ( const Blackbox1 * Ap,
const Blackbox2 * Bp )
inline

Constructor from two black box matrix pointers.

This becomes direct sum of A and B. They may be rectangular. They must be over the same field (or ring).

Parameters
Appointer to black box matrix A.
Bppointer to black box matrix B.

◆ DirectSum() [3/3]

template<class _Blackbox1, class _Blackbox2>
DirectSum ( const DirectSum< Blackbox1, Blackbox2 > & M)
inline

Copy constructor.

◆ ~DirectSum()

template<class _Blackbox1, class _Blackbox2>
~DirectSum ( void )
inline

Destructor.

Member Function Documentation

◆ apply()

template<class _Blackbox1, class _Blackbox2>
template<class OutVector, class InVector>
OutVector & apply ( OutVector & y,
const InVector & x ) const
inline

◆ applyTranspose()

template<class _Blackbox1, class _Blackbox2>
template<class OutVector, class InVector>
OutVector & applyTranspose ( OutVector & y,
const InVector & x ) const
inline

◆ rowdim()

template<class _Blackbox1, class _Blackbox2>
size_t rowdim ( void ) const
inline

◆ coldim()

template<class _Blackbox1, class _Blackbox2>
size_t coldim ( void ) const
inline

◆ field()

template<class _Blackbox1, class _Blackbox2>
const Field & field ( ) const
inline

◆ getLeftPtr()

template<class _Blackbox1, class _Blackbox2>
const Blackbox1 * getLeftPtr ( ) const
inline

◆ getRightPtr()

template<class _Blackbox1, class _Blackbox2>
const Blackbox2 * getRightPtr ( ) const
inline

◆ write()

template<class _Blackbox1, class _Blackbox2>
std::ostream & write ( std::ostream & os) const
inline

Field Documentation

◆ _Ap

template<class _Blackbox1, class _Blackbox2>
const Blackbox1* _Ap
protected

◆ _Bp

template<class _Blackbox1, class _Blackbox2>
const Blackbox2* _Bp
protected

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