OSSIM - Open Source Software Image Map  Version 1.9.0 (20180803)
Public Member Functions | Private Member Functions | Friends | List of all members
ScaledMatrix Class Reference

#include <newmat.h>

Inheritance diagram for ScaledMatrix:
ShiftedMatrix BaseMatrix

Public Member Functions

 ~ScaledMatrix ()
 
GeneralMatrixEvaluate (MatrixType mt=MatrixTypeUnSp)
 
MatrixBandWidth BandWidth () const
 
- Public Member Functions inherited from ShiftedMatrix
 ~ShiftedMatrix ()
 
- Public Member Functions inherited from BaseMatrix
AddedMatrix operator+ (const BaseMatrix &) const
 
MultipliedMatrix operator* (const BaseMatrix &) const
 
SubtractedMatrix operator- (const BaseMatrix &) const
 
ConcatenatedMatrix operator| (const BaseMatrix &) const
 
StackedMatrix operator & (const BaseMatrix &) const
 
ShiftedMatrix operator+ (Real) const
 
ScaledMatrix operator* (Real) const
 
ScaledMatrix operator/ (Real) const
 
ShiftedMatrix operator- (Real) const
 
TransposedMatrix t () const
 
NegatedMatrix operator- () const
 
ReversedMatrix Reverse () const
 
InvertedMatrix i () const
 
RowedMatrix AsRow () const
 
ColedMatrix AsColumn () const
 
DiagedMatrix AsDiagonal () const
 
MatedMatrix AsMatrix (int, int) const
 
GetSubMatrix SubMatrix (int, int, int, int) const
 
GetSubMatrix SymSubMatrix (int, int) const
 
GetSubMatrix Row (int) const
 
GetSubMatrix Rows (int, int) const
 
GetSubMatrix Column (int) const
 
GetSubMatrix Columns (int, int) const
 
Real AsScalar () const
 
virtual LogAndSign LogDeterminant () const
 
Real Determinant () const
 
virtual Real SumSquare () const
 
Real NormFrobenius () const
 
virtual Real SumAbsoluteValue () const
 
virtual Real Sum () const
 
virtual Real MaximumAbsoluteValue () const
 
virtual Real MaximumAbsoluteValue1 (int &i) const
 
virtual Real MaximumAbsoluteValue2 (int &i, int &j) const
 
virtual Real MinimumAbsoluteValue () const
 
virtual Real MinimumAbsoluteValue1 (int &i) const
 
virtual Real MinimumAbsoluteValue2 (int &i, int &j) const
 
virtual Real Maximum () const
 
virtual Real Maximum1 (int &i) const
 
virtual Real Maximum2 (int &i, int &j) const
 
virtual Real Minimum () const
 
virtual Real Minimum1 (int &i) const
 
virtual Real Minimum2 (int &i, int &j) const
 
virtual Real Trace () const
 
Real Norm1 () const
 
Real NormInfinity () const
 
virtual void CleanUp ()
 
void IEQND () const
 

Private Member Functions

 ScaledMatrix (const BaseMatrix *bmx, Real fx)
 

Friends

class BaseMatrix
 
class GeneralMatrix
 
class GenericMatrix
 
ScaledMatrix operator* (Real f, const BaseMatrix &BM)
 

Additional Inherited Members

- Protected Member Functions inherited from ShiftedMatrix
 ShiftedMatrix (const BaseMatrix *bmx, Real fx)
 
int search (const BaseMatrix *) const
 
- Protected Attributes inherited from ShiftedMatrix
union {
   const BaseMatrix *   bm
 
   GeneralMatrix *   gm
 
}; 
 
Real f
 

Detailed Description

Definition at line 1376 of file newmat.h.

Constructor & Destructor Documentation

◆ ScaledMatrix()

ScaledMatrix::ScaledMatrix ( const BaseMatrix bmx,
Real  fx 
)
inlineprivate

Definition at line 1378 of file newmat.h.

1378 : ShiftedMatrix(bmx,fx) {}
ShiftedMatrix(const BaseMatrix *bmx, Real fx)
Definition: newmat.h:1350

◆ ~ScaledMatrix()

ScaledMatrix::~ScaledMatrix ( )
inline

Definition at line 1383 of file newmat.h.

1383 {}

Member Function Documentation

◆ BandWidth()

MatrixBandWidth ScaledMatrix::BandWidth ( ) const
virtual

Reimplemented from BaseMatrix.

Definition at line 494 of file newmat4.cpp.

References BaseMatrix::BandWidth(), ShiftedMatrix::gm, and REPORT.

495  { REPORT return gm->BandWidth(); }
virtual MatrixBandWidth BandWidth() const
Definition: newmat4.cpp:431
#define REPORT
Definition: newmat4.cpp:19
GeneralMatrix * gm
Definition: newmat.h:1348

◆ Evaluate()

GeneralMatrix * ScaledMatrix::Evaluate ( MatrixType  mt = MatrixTypeUnSp)
virtual

Reimplemented from ShiftedMatrix.

Definition at line 150 of file newmat5.cpp.

References Compare(), DirectPart, GeneralMatrix::Evaluate(), LoadOnEntry, MatrixRowCol::Multiply(), MatrixType::New(), MatrixRow::Next(), GeneralMatrix::Nrows(), GeneralMatrix::ReleaseAndDelete(), REPORT, StoreOnExit, and GeneralMatrix::Type().

Referenced by GenericMatrix::operator*=().

151 {
152  gm=((BaseMatrix*&)bm)->Evaluate();
153  int nr=gm->Nrows(); int nc=gm->Ncols();
154  if (Compare(gm->Type(),mt))
155  {
156  if (gm->reuse())
157  {
158  REPORT gm->Multiply(f);
159  return gm;
160  }
161  else
162  {
163  REPORT GeneralMatrix* gmx = gm->Type().New(nr,nc,this);
164  gmx->ReleaseAndDelete(); gmx->Multiply(gm,f);
165  return gmx;
166  }
167  }
168  else
169  {
170  REPORT
171  GeneralMatrix* gmx = mt.New(nr,nc,this);
172  MatrixRow mr(gm, LoadOnEntry);
173  MatrixRow mrx(gmx, StoreOnExit+DirectPart);
174  while (nr--) { mrx.Multiply(mr,f); mrx.Next(); mr.Next(); }
175  gmx->ReleaseAndDelete(); gm->tDelete();
176  return gmx;
177  }
178 }
void tDelete()
Definition: newmat4.cpp:535
int Ncols() const
Definition: newmat.h:431
GeneralMatrix * Evaluate(MatrixType mt=MatrixTypeUnSp)
Definition: newmat5.cpp:79
GeneralMatrix * New() const
bool Compare(const MatrixType &source, MatrixType &destination)
Definition: newmat4.cpp:729
const BaseMatrix * bm
Definition: newmat.h:1348
void ReleaseAndDelete()
Definition: newmat.h:442
bool reuse()
Definition: newmat4.cpp:568
#define REPORT
Definition: newmat5.cpp:20
void Multiply(GeneralMatrix *, Real)
Definition: newmat5.cpp:368
virtual MatrixType Type() const =0
int Nrows() const
Definition: newmat.h:430
GeneralMatrix * gm
Definition: newmat.h:1348

Friends And Related Function Documentation

◆ BaseMatrix

friend class BaseMatrix
friend

Definition at line 1379 of file newmat.h.

◆ GeneralMatrix

friend class GeneralMatrix
friend

Definition at line 1380 of file newmat.h.

◆ GenericMatrix

friend class GenericMatrix
friend

Definition at line 1381 of file newmat.h.

◆ operator*

ScaledMatrix operator* ( Real  f,
const BaseMatrix BM 
)
friend

Definition at line 310 of file newmat6.cpp.

311 { REPORT return ScaledMatrix(&BM, f); }
ScaledMatrix(const BaseMatrix *bmx, Real fx)
Definition: newmat.h:1378
#define REPORT
Definition: newmat6.cpp:19

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