linbox
Sliced< _Domain > Class Template Reference

The Sliced Matrix class _Domain must be a GF(3) rep, BaseT must be an unsigned int type. More...

#include <dense-sliced.h>

+ Inheritance diagram for Sliced< _Domain >:

Public Types

enum  op_t {
  ADD , SMUL , AXPY , ZERO ,
  COPY
}
 
typedef _Domain Domain
 
typedef Domain::Scalar Scalar
 
typedef Domain::Word_T SlicedWord
 
typedef SlicedBase< SlicedWordSlicedUnit
 
typedef DenseMat< SlicedBase< typename _Domain::Word_T > > Base_T
 
typedef Base_T::RawIterator RawIterator
 
typedef Base_T Matrix
 
typedef ConstSubMatIterator< SlicedBase< _Domain::Word_T > > ConstRawIterator
 
typedef DenseMat< SlicedBase< _Domain::Word_T > > Self_t
 Self type.
 

Public Member Functions

 Sliced ()
 
 Sliced (Domain d)
 
 Sliced (Domain d, size_t m, size_t n, bool colP=false)
 
void size (size_t m=0, size_t n=0, bool cp=false)
 
void init (size_t m=0, size_t n=0)
 
void init (size_t m, size_t n, const Scalar &filler)
 
void shiftSubMatDown (int i)
 
Slicedsubmatrix (Sliced &other, size_t i, size_t j, size_t m, size_t n)
 
const Domainfield () const
 
Domainfield ()
 
 Sliced (Sliced &other, size_t i, size_t j, size_t m, size_t n)
 
void compatible ()
 
void splitOp (SlicedUnit &a, op_t t, bool last, int offset, Scalar &arg, SlicedUnit &b)
 
Sliceds_addin (Sliced &other)
 
Sliceds_smulin (Scalar &x)
 
Sliceds_axpyin (RawIterator &rit, Scalar &s, RawIterator &o)
 
Sliceds_copy (Sliced &other)
 
std::ostream & s_write_bin (std::ostream &os)
 
std::ostream & s_write_bin_r (std::ostream &os)
 
std::ostream & s_wb (std::ostream &os)
 
std::istream & s_read_bin_r (std::istream &is)
 
std::istream & s_rb (std::istream &is)
 
Slicedaddin (Sliced &other)
 
Slicedsmulin (Scalar &x)
 
const ScalarsetEntry (size_t i, size_t j, const Scalar &a_ij)
 
Scalar getEntry (size_t i, size_t j)
 
ScalargetEntry (Scalar &x, size_t i, size_t j)
 
Slicedaxpyin (RawIterator &b, RawIterator &e, Scalar &s, RawIterator &ob)
 
template<class Gettable>
Slicedmul (Gettable &A, Sliced &B)
 
std::ostream & write (std::ostream &os=std::cerr, size_t offset=0)
 
SlicedWord randomLL ()
 
Slicedrandom (size_t seed=0)
 
Slicedzero ()
 
bool isEqual (Sliced &other)
 
bool isZero ()
 
Sliceddeepcopy (Sliced &other)
 
std::ostream & writeRep (std::ostream &os=std::cerr)
 
size_t memSize ()
 
std::ostream & writeBinary (std::ostream &os)
 
std::istream & readBinary (std::istream &is)
 
void munmapBinaryFile ()
 
_Domain & domain ()
 
size_t rows ()
 
size_t cols ()
 
size_t rowdim () const
 
size_t coldim () const
 
size_t l ()
 
size_t r ()
 
void pinfo ()
 
void sinfo ()
 
RawIterator rawBegin ()
 
ConstRawIterator rawBegin () const
 
RawIterator rawEnd ()
 
ConstRawIterator rawEnd () const
 
RawIterator rowBegin (size_t i)
 
ConstRawIterator rowBegin (size_t i) const
 
RawIterator rowEnd (size_t i)
 
ConstRawIterator rowEnd (size_t i) const
 
EntrygetEntry (Entry &x, size_t i, size_t j) const
 
EntrysetEntry (size_t i, size_t j, const Entry &x)
 
void init (size_t m, size_t n, const Entry &filler)
 
void submatrix (const DenseMat &A, size_t i, size_t j, size_t m, size_t n)
 Set this to be an m by n submatrix of A with upper left corner at i,j position of A.
 
void size (size_t m, size_t n)
 
int did_swapback (vp &swaps, size_t hot, size_t l, size_t r)
 
void flocs (vp &tos, vp &swaps)
 
size_t final_loc (vp &swaps, size_t j)
 
void randomColPermutation ()
 
void randomLowerTriangularColTransform ()
 
std::istream & read (std::istream &file, const Field &field)
 Read the matrix from an input stream.
 
std::ostream & write (std::ostream &os, const Field &field, bool mapleFormat=false) const
 Write the matrix to an output stream.
 
std::ostream & write (std::ostream &os, bool mapleFormat=false) const
 Write the matrix to an output stream.
 

Data Fields

size_t _stride
 
Entry_rep
 
bool _alloc
 
size_t _rows
 
size_t _cols
 

Detailed Description

template<class _Domain>
class LinBox::Sliced< _Domain >

The Sliced Matrix class _Domain must be a GF(3) rep, BaseT must be an unsigned int type.

TODO more docs, discuss row/col slicing

Member Typedef Documentation

◆ Domain

template<class _Domain>
typedef _Domain Domain

◆ Scalar

template<class _Domain>
typedef Domain::Scalar Scalar

◆ SlicedWord

template<class _Domain>
typedef Domain::Word_T SlicedWord

◆ SlicedUnit

template<class _Domain>
typedef SlicedBase<SlicedWord> SlicedUnit

◆ Base_T

template<class _Domain>
typedef DenseMat<SlicedBase<typename _Domain::Word_T> > Base_T

◆ RawIterator

template<class _Domain>
typedef Base_T::RawIterator RawIterator

◆ Matrix

template<class _Domain>
typedef Base_T Matrix

◆ ConstRawIterator

typedef ConstSubMatIterator<SlicedBase< _Domain::Word_T >> ConstRawIterator
inherited

◆ Self_t

typedef DenseMat<SlicedBase< _Domain::Word_T >> Self_t
inherited

Self type.

Member Enumeration Documentation

◆ op_t

template<class _Domain>
enum op_t
Enumerator
ADD 
SMUL 
AXPY 
ZERO 
COPY 

Constructor & Destructor Documentation

◆ Sliced() [1/4]

template<class _Domain>
Sliced ( )
inline

◆ Sliced() [2/4]

template<class _Domain>
Sliced ( Domain d)
inline

◆ Sliced() [3/4]

template<class _Domain>
Sliced ( Domain d,
size_t m,
size_t n,
bool colP = false )
inline

◆ Sliced() [4/4]

template<class _Domain>
Sliced ( Sliced< _Domain > & other,
size_t i,
size_t j,
size_t m,
size_t n )
inline

Member Function Documentation

◆ size() [1/2]

template<class _Domain>
void size ( size_t m = 0,
size_t n = 0,
bool cp = false )
inline

◆ init() [1/3]

template<class _Domain>
void init ( size_t m = 0,
size_t n = 0 )
inline

◆ init() [2/3]

template<class _Domain>
void init ( size_t m,
size_t n,
const Scalar & filler )
inline

◆ shiftSubMatDown()

template<class _Domain>
void shiftSubMatDown ( int i)
inline

◆ submatrix() [1/2]

template<class _Domain>
Sliced & submatrix ( Sliced< _Domain > & other,
size_t i,
size_t j,
size_t m,
size_t n )
inline

◆ field() [1/2]

template<class _Domain>
const Domain & field ( ) const
inline

◆ field() [2/2]

template<class _Domain>
Domain & field ( )
inline

◆ compatible()

template<class _Domain>
void compatible ( )
inline

◆ splitOp()

template<class _Domain>
void splitOp ( SlicedUnit & a,
op_t t,
bool last,
int offset,
Scalar & arg,
SlicedUnit & b )
inline

◆ s_addin()

template<class _Domain>
Sliced & s_addin ( Sliced< _Domain > & other)
inline

◆ s_smulin()

template<class _Domain>
Sliced & s_smulin ( Scalar & x)
inline

◆ s_axpyin()

template<class _Domain>
Sliced & s_axpyin ( RawIterator & rit,
Scalar & s,
RawIterator & o )
inline

◆ s_copy()

template<class _Domain>
Sliced & s_copy ( Sliced< _Domain > & other)
inline

◆ s_write_bin()

template<class _Domain>
std::ostream & s_write_bin ( std::ostream & os)
inline

◆ s_write_bin_r()

template<class _Domain>
std::ostream & s_write_bin_r ( std::ostream & os)
inline

◆ s_wb()

template<class _Domain>
std::ostream & s_wb ( std::ostream & os)
inline

◆ s_read_bin_r()

template<class _Domain>
std::istream & s_read_bin_r ( std::istream & is)
inline

◆ s_rb()

template<class _Domain>
std::istream & s_rb ( std::istream & is)
inline

◆ addin()

template<class _Domain>
Sliced & addin ( Sliced< _Domain > & other)
inline

◆ smulin()

template<class _Domain>
Sliced & smulin ( Scalar & x)
inline

◆ setEntry() [1/2]

template<class _Domain>
const Scalar & setEntry ( size_t i,
size_t j,
const Scalar & a_ij )
inline

◆ getEntry() [1/3]

template<class _Domain>
Scalar getEntry ( size_t i,
size_t j )
inline

◆ getEntry() [2/3]

template<class _Domain>
Scalar & getEntry ( Scalar & x,
size_t i,
size_t j )
inline

◆ axpyin()

template<class _Domain>
Sliced & axpyin ( RawIterator & b,
RawIterator & e,
Scalar & s,
RawIterator & ob )
inline

◆ mul()

template<class _Domain>
template<class Gettable>
Sliced & mul ( Gettable & A,
Sliced< _Domain > & B )
inline

◆ write() [1/3]

template<class _Domain>
std::ostream & write ( std::ostream & os = std::cerr,
size_t offset = 0 )
inline

◆ randomLL()

template<class _Domain>
SlicedWord randomLL ( )
inline

◆ random()

template<class _Domain>
Sliced & random ( size_t seed = 0)
inline

◆ zero()

template<class _Domain>
Sliced & zero ( )
inline

◆ isEqual()

template<class _Domain>
bool isEqual ( Sliced< _Domain > & other)
inline

◆ isZero()

template<class _Domain>
bool isZero ( )
inline

◆ deepcopy()

template<class _Domain>
Sliced & deepcopy ( Sliced< _Domain > & other)
inline

◆ writeRep()

template<class _Domain>
std::ostream & writeRep ( std::ostream & os = std::cerr)
inline

◆ memSize()

template<class _Domain>
size_t memSize ( )
inline

◆ writeBinary()

template<class _Domain>
std::ostream & writeBinary ( std::ostream & os)
inline

◆ readBinary()

template<class _Domain>
std::istream & readBinary ( std::istream & is)
inline

◆ munmapBinaryFile()

template<class _Domain>
void munmapBinaryFile ( )
inline

◆ domain()

template<class _Domain>
_Domain & domain ( )
inline

◆ rows()

template<class _Domain>
size_t rows ( )
inline

◆ cols()

template<class _Domain>
size_t cols ( )
inline

◆ rowdim()

template<class _Domain>
size_t rowdim ( ) const
inline

◆ coldim()

template<class _Domain>
size_t coldim ( ) const
inline

◆ l()

template<class _Domain>
size_t l ( )
inline

◆ r()

template<class _Domain>
size_t r ( )
inline

◆ pinfo()

template<class _Domain>
void pinfo ( )
inline

◆ sinfo()

template<class _Domain>
void sinfo ( )
inline

◆ rawBegin() [1/2]

template<class _Domain>
RawIterator rawBegin ( )
inline

◆ rawBegin() [2/2]

template<class _Domain>
ConstRawIterator rawBegin ( ) const
inline

◆ rawEnd() [1/2]

template<class _Domain>
RawIterator rawEnd ( )
inline

◆ rawEnd() [2/2]

template<class _Domain>
ConstRawIterator rawEnd ( ) const
inline

◆ rowBegin() [1/2]

template<class _Domain>
RawIterator rowBegin ( size_t i)
inline

◆ rowBegin() [2/2]

template<class _Domain>
ConstRawIterator rowBegin ( size_t i) const
inline

◆ rowEnd() [1/2]

template<class _Domain>
RawIterator rowEnd ( size_t i)
inline

◆ rowEnd() [2/2]

template<class _Domain>
ConstRawIterator rowEnd ( size_t i) const
inline

◆ getEntry() [3/3]

Entry & getEntry ( Entry & x,
size_t i,
size_t j ) const
inlineinherited

◆ setEntry() [2/2]

Entry & setEntry ( size_t i,
size_t j,
const Entry & x )
inlineinherited

◆ init() [3/3]

void init ( size_t m,
size_t n,
const Entry & filler )
inlineinherited

◆ submatrix() [2/2]

void submatrix ( const DenseMat< SlicedBase< _Domain::Word_T > > & A,
size_t i,
size_t j,
size_t m,
size_t n )
inlineinherited

Set this to be an m by n submatrix of A with upper left corner at i,j position of A.

Requires i+m <= A.rowdim(), j+n <= A.coldim().

For instance, B.submatrix(A, i, 0, 1, A.coldim()) makes B the i-th row of A.

◆ size() [2/2]

void size ( size_t m,
size_t n )
inlineinherited

◆ did_swapback()

int did_swapback ( vp & swaps,
size_t hot,
size_t l,
size_t r )
inlineinherited

◆ flocs()

void flocs ( vp & tos,
vp & swaps )
inlineinherited

◆ final_loc()

size_t final_loc ( vp & swaps,
size_t j )
inlineinherited

◆ randomColPermutation()

void randomColPermutation ( )
inlineinherited

◆ randomLowerTriangularColTransform()

void randomLowerTriangularColTransform ( )
inlineinherited

◆ read()

std::istream & read ( std::istream & file,
const Field & field )
inherited

Read the matrix from an input stream.

MatrixTraits.

Parameters
fileInput stream from which to read
field

◆ write() [2/3]

std::ostream & write ( std::ostream & os,
const Field & field,
bool mapleFormat = false ) const
inherited

Write the matrix to an output stream.

Parameters
osOutput stream to which to write
field
mapleFormatwrite in Maple(r) format ?

◆ write() [3/3]

std::ostream & write ( std::ostream & os,
bool mapleFormat = false ) const
inherited

Write the matrix to an output stream.

This a raw version of write(os,F) (no field is given).

Parameters
osOutput stream to which to write
mapleFormatwrite in Maple(r) format ?

Field Documentation

◆ _stride

template<class _Domain>
size_t _stride

◆ _rep

template<class _Domain>
Entry* _rep

◆ _alloc

template<class _Domain>
bool _alloc

◆ _rows

size_t _rows
inherited

◆ _cols

size_t _cols
inherited

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