tesseract 4.1.1
Loading...
Searching...
No Matches
BandTriMatrix< T > Class Template Reference

#include <matrix.h>

Inheritance diagram for BandTriMatrix< T >:
GENERIC_2D_ARRAY< T >

Public Member Functions

 BandTriMatrix (int dim1, int dim2, const T &empty)
 
int dimension () const
 
int bandwidth () const
 
int index (int column, int row) const override
 
void AttachOnCorner (BandTriMatrix< T > *array2)
 
- Public Member Functions inherited from GENERIC_2D_ARRAY< T >
 GENERIC_2D_ARRAY (int dim1, int dim2, const T &empty, T *array)
 
 GENERIC_2D_ARRAY (int dim1, int dim2, const T &empty)
 
 GENERIC_2D_ARRAY ()
 
 GENERIC_2D_ARRAY (const GENERIC_2D_ARRAY< T > &src)
 
virtual ~GENERIC_2D_ARRAY ()
 
void operator= (const GENERIC_2D_ARRAY< T > &src)
 
void ResizeNoInit (int size1, int size2, int pad=0)
 
void Resize (int size1, int size2, const T &empty)
 
void ResizeWithCopy (int size1, int size2)
 
void Clear ()
 
bool Serialize (FILE *fp) const
 
bool Serialize (tesseract::TFile *fp) const
 
bool DeSerialize (bool swap, FILE *fp)
 
bool DeSerialize (tesseract::TFile *fp)
 
bool SerializeClasses (FILE *fp) const
 
bool DeSerializeClasses (bool swap, FILE *fp)
 
int dim1 () const
 
int dim2 () const
 
virtual int num_elements () const
 
virtual int index (int column, int row) const
 
void put (ICOORD pos, const T &thing)
 
void put (int column, int row, const T &thing)
 
get (ICOORD pos) const
 
get (int column, int row) const
 
const T & operator() (int column, int row) const
 
T & operator() (int column, int row)
 
T * operator[] (int column)
 
const T * operator[] (int column) const
 
void operator+= (const GENERIC_2D_ARRAY< T > &addend)
 
void operator-= (const GENERIC_2D_ARRAY< T > &minuend)
 
void operator+= (const T &addend)
 
void operator*= (const T &factor)
 
void Clip (const T &rangemin, const T &rangemax)
 
bool WithinBounds (const T &rangemin, const T &rangemax) const
 
double Normalize ()
 
Max () const
 
MaxAbs () const
 
void SumSquares (const GENERIC_2D_ARRAY< T > &src, const T &decay_factor)
 
void AdamUpdate (const GENERIC_2D_ARRAY< T > &sum, const GENERIC_2D_ARRAY< T > &sqsum, const T &epsilon)
 
void AssertFinite () const
 
void RotatingTranspose (const int *dims, int num_dims, int src_dim, int dest_dim, GENERIC_2D_ARRAY< T > *result) const
 
void delete_matrix_pointers ()
 

Additional Inherited Members

- Protected Member Functions inherited from GENERIC_2D_ARRAY< T >
bool SerializeSize (FILE *fp) const
 
bool SerializeSize (tesseract::TFile *fp) const
 
bool DeSerializeSize (bool swap, FILE *fp)
 
bool DeSerializeSize (tesseract::TFile *fp)
 
- Protected Attributes inherited from GENERIC_2D_ARRAY< T >
T * array_
 
empty_
 
int dim1_
 
int dim2_
 
int size_allocated_
 

Detailed Description

template<class T>
class BandTriMatrix< T >

Definition at line 524 of file matrix.h.

Constructor & Destructor Documentation

◆ BandTriMatrix()

template<class T >
BandTriMatrix< T >::BandTriMatrix ( int  dim1,
int  dim2,
const T &  empty 
)
inline

Definition at line 529 of file matrix.h.

530 : GENERIC_2D_ARRAY<T>(dim1, dim2, empty) {
531 }
int dim2() const
Definition: matrix.h:210
int dim1() const
Definition: matrix.h:209

Member Function Documentation

◆ AttachOnCorner()

template<class T >
void BandTriMatrix< T >::AttachOnCorner ( BandTriMatrix< T > *  array2)
inline

Definition at line 553 of file matrix.h.

553 {
554 int new_dim1 = this->dim1_ + array2->dim1_;
555 int new_dim2 = std::max(this->dim2_, array2->dim2_);
556 T* new_array = new T[new_dim1 * new_dim2];
557 for (int col = 0; col < new_dim1; ++col) {
558 for (int j = 0; j < new_dim2; ++j) {
559 int new_index = col * new_dim2 + j;
560 if (col < this->dim1_ && j < this->dim2_) {
561 new_array[new_index] = this->get(col, col + j);
562 } else if (col >= this->dim1_ && j < array2->dim2_) {
563 new_array[new_index] = array2->get(col - this->dim1_,
564 col - this->dim1_ + j);
565 array2->put(col - this->dim1_, col - this->dim1_ + j, nullptr);
566 } else {
567 new_array[new_index] = this->empty_;
568 }
569 }
570 }
571 delete[] this->array_;
572 this->array_ = new_array;
573 this->dim1_ = new_dim1;
574 this->dim2_ = new_dim2;
575 }
T get(ICOORD pos) const
Definition: matrix.h:231
void put(ICOORD pos, const T &thing)
Definition: matrix.h:223

◆ bandwidth()

template<class T >
int BandTriMatrix< T >::bandwidth ( ) const
inline

Definition at line 538 of file matrix.h.

538{ return this->dim2_; }

◆ dimension()

template<class T >
int BandTriMatrix< T >::dimension ( ) const
inline

Definition at line 536 of file matrix.h.

536{ return this->dim1_; }

◆ index()

template<class T >
int BandTriMatrix< T >::index ( int  column,
int  row 
) const
inlineoverridevirtual

Reimplemented from GENERIC_2D_ARRAY< T >.

Definition at line 543 of file matrix.h.

543 {
544 ASSERT_HOST(row >= column);
545 ASSERT_HOST(row - column < this->dim2_);
546 return column * this->dim2_ + row - column;
547 }
#define ASSERT_HOST(x)
Definition: errcode.h:88

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