OSSIM - Open Source Software Image Map  Version 1.9.0 (20180803)
Public Member Functions | Protected Member Functions | Protected Attributes | Private Member Functions | Friends | List of all members
GeneralMatrix Class Referenceabstract

#include <newmat.h>

Inheritance diagram for GeneralMatrix:
BaseMatrix BandLUMatrix BandMatrix CroutMatrix DiagonalMatrix IdentityMatrix LowerTriangularMatrix Matrix SymmetricBandMatrix SymmetricMatrix UpperTriangularMatrix

Public Member Functions

GeneralMatrixEvaluate (MatrixType mt=MatrixTypeUnSp)
 
virtual MatrixType Type () const =0
 
int Nrows () const
 
int Ncols () const
 
int Storage () const
 
RealStore () const
 
virtual ~GeneralMatrix ()
 
void tDelete ()
 
bool reuse ()
 
void Protect ()
 
int Tag () const
 
bool IsZero () const
 
void Release ()
 
void Release (int t)
 
void ReleaseAndDelete ()
 
void operator<< (const Real *)
 
void operator<< (const int *)
 
void operator<< (const BaseMatrix &X)
 
void Inject (const GeneralMatrix &)
 
void operator+= (const BaseMatrix &)
 
void operator-= (const BaseMatrix &)
 
void operator*= (const BaseMatrix &)
 
void operator|= (const BaseMatrix &)
 
void operator &= (const BaseMatrix &)
 
void operator+= (Real)
 
void operator-= (Real r)
 
void operator*= (Real)
 
void operator/= (Real r)
 
virtual GeneralMatrixMakeSolver ()
 
virtual void Solver (MatrixColX &, const MatrixColX &)
 
virtual void GetRow (MatrixRowCol &)=0
 
virtual void RestoreRow (MatrixRowCol &)
 
virtual void NextRow (MatrixRowCol &)
 
virtual void GetCol (MatrixRowCol &)=0
 
virtual void GetCol (MatrixColX &)=0
 
virtual void RestoreCol (MatrixRowCol &)
 
virtual void RestoreCol (MatrixColX &)
 
virtual void NextCol (MatrixRowCol &)
 
virtual void NextCol (MatrixColX &)
 
Real SumSquare () const
 
Real SumAbsoluteValue () const
 
Real Sum () const
 
Real MaximumAbsoluteValue1 (int &i) const
 
Real MinimumAbsoluteValue1 (int &i) const
 
Real Maximum1 (int &i) const
 
Real Minimum1 (int &i) const
 
Real MaximumAbsoluteValue () const
 
Real MaximumAbsoluteValue2 (int &i, int &j) const
 
Real MinimumAbsoluteValue () const
 
Real MinimumAbsoluteValue2 (int &i, int &j) const
 
Real Maximum () const
 
Real Maximum2 (int &i, int &j) const
 
Real Minimum () const
 
Real Minimum2 (int &i, int &j) const
 
LogAndSign LogDeterminant () const
 
virtual bool IsEqual (const GeneralMatrix &) const
 
void CheckStore () const
 
virtual void SetParameters (const GeneralMatrix *)
 
 operator ReturnMatrix () const
 
ReturnMatrix ForReturn () const
 
virtual bool SameStorageType (const GeneralMatrix &A) const
 
virtual void ReSizeForAdd (const GeneralMatrix &A, const GeneralMatrix &B)
 
virtual void ReSizeForSP (const GeneralMatrix &A, const GeneralMatrix &B)
 
virtual void ReSize (const GeneralMatrix &A)
 
MatrixInput operator<< (Real)
 
MatrixInput operator<< (int f)
 
void CleanUp ()
 
- 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
 
Real Determinant () const
 
Real NormFrobenius () const
 
virtual Real Trace () const
 
Real Norm1 () const
 
Real NormInfinity () const
 
virtual MatrixBandWidth BandWidth () const
 
void IEQND () const
 

Protected Member Functions

 GeneralMatrix ()
 
 GeneralMatrix (ArrayLengthSpecifier)
 
void Add (GeneralMatrix *, Real)
 
void Add (Real)
 
void NegAdd (GeneralMatrix *, Real)
 
void NegAdd (Real)
 
void Multiply (GeneralMatrix *, Real)
 
void Multiply (Real)
 
void Negate (GeneralMatrix *)
 
void Negate ()
 
void ReverseElements ()
 
void ReverseElements (GeneralMatrix *)
 
void operator= (Real)
 
Real * GetStore ()
 
GeneralMatrixBorrowStore (GeneralMatrix *, MatrixType)
 
void GetMatrix (const GeneralMatrix *)
 
void Eq (const BaseMatrix &, MatrixType)
 
void Eq (const GeneralMatrix &)
 
void Eq (const BaseMatrix &, MatrixType, bool)
 
void Eq2 (const BaseMatrix &, MatrixType)
 
int search (const BaseMatrix *) const
 
virtual GeneralMatrixTranspose (TransposedMatrix *, MatrixType)
 
void CheckConversion (const BaseMatrix &)
 
void ReSize (int, int, int)
 
virtual short SimpleAddOK (const GeneralMatrix *)
 
virtual void MiniCleanUp ()
 
void PlusEqual (const GeneralMatrix &gm)
 
void MinusEqual (const GeneralMatrix &gm)
 
void PlusEqual (Real f)
 
void MinusEqual (Real f)
 

Protected Attributes

int tag
 
int nrows
 
int ncols
 
int storage
 
Realstore
 

Private Member Functions

virtual GeneralMatrixImage () const
 

Friends

class Matrix
 
class SquareMatrix
 
class nricMatrix
 
class SymmetricMatrix
 
class UpperTriangularMatrix
 
class LowerTriangularMatrix
 
class DiagonalMatrix
 
class CroutMatrix
 
class RowVector
 
class ColumnVector
 
class BandMatrix
 
class LowerBandMatrix
 
class UpperBandMatrix
 
class SymmetricBandMatrix
 
class BaseMatrix
 
class AddedMatrix
 
class MultipliedMatrix
 
class SubtractedMatrix
 
class SPMatrix
 
class KPMatrix
 
class ConcatenatedMatrix
 
class StackedMatrix
 
class SolvedMatrix
 
class ShiftedMatrix
 
class NegShiftedMatrix
 
class ScaledMatrix
 
class TransposedMatrix
 
class ReversedMatrix
 
class NegatedMatrix
 
class InvertedMatrix
 
class RowedMatrix
 
class ColedMatrix
 
class DiagedMatrix
 
class MatedMatrix
 
class GetSubMatrix
 
class ReturnMatrix
 
class LinearEquationSolver
 
class GenericMatrix
 

Detailed Description

Definition at line 386 of file newmat.h.

Constructor & Destructor Documentation

◆ GeneralMatrix() [1/2]

GeneralMatrix::GeneralMatrix ( )
protected

Definition at line 33 of file newmat4.cpp.

34 { store=0; storage=0; nrows=0; ncols=0; tag=-1; }
Real * store
Definition: newmat.h:393
int storage
Definition: newmat.h:392

◆ GeneralMatrix() [2/2]

GeneralMatrix::GeneralMatrix ( ArrayLengthSpecifier  s)
protected

Definition at line 36 of file newmat4.cpp.

References MatrixErrorNoSpace(), MONITOR_REAL_NEW, REPORT, and ArrayLengthSpecifier::Value().

37 {
38  REPORT
39  storage=s.Value(); tag=-1;
40  if (storage)
41  {
43  MONITOR_REAL_NEW("Make (GenMatrix)",storage,store)
44  }
45  else store = 0;
46 }
double Real
Definition: include.h:57
void MatrixErrorNoSpace(const void *)
Definition: newmatex.cpp:292
#define REPORT
Definition: newmat4.cpp:19
int Value() const
Definition: newmat.h:219
#define MONITOR_REAL_NEW(Operation, Size, Pointer)
Definition: myexcept.h:317
Real * store
Definition: newmat.h:393
int storage
Definition: newmat.h:392

◆ ~GeneralMatrix()

GeneralMatrix::~GeneralMatrix ( )
virtual

Definition at line 161 of file newmat4.cpp.

References MONITOR_REAL_DELETE, storage, and store.

162 {
163  if (store)
164  {
165  MONITOR_REAL_DELETE("Free (GenMatrix)",storage,store)
166  delete [] store;
167  }
168 }
#define MONITOR_REAL_DELETE(Operation, Size, Pointer)
Definition: myexcept.h:319
Real * store
Definition: newmat.h:393
int storage
Definition: newmat.h:392

Member Function Documentation

◆ Add() [1/2]

void GeneralMatrix::Add ( GeneralMatrix gm1,
Real  f 
)
protected

Definition at line 311 of file newmat5.cpp.

References REPORT, and store.

Referenced by Matrix::operator+=(), SquareMatrix::operator+=(), nricMatrix::operator+=(), SymmetricMatrix::operator+=(), RowVector::operator+=(), ColumnVector::operator+=(), Matrix::operator-=(), SquareMatrix::operator-=(), nricMatrix::operator-=(), SymmetricMatrix::operator-=(), RowVector::operator-=(), and ColumnVector::operator-=().

312 {
313  REPORT
314  Real* s1=gm1->store; Real* s=store; int i=(storage >> 2);
315  while (i--)
316  { *s++ = *s1++ + f; *s++ = *s1++ + f; *s++ = *s1++ + f; *s++ = *s1++ + f; }
317  i = storage & 3; while (i--) *s++ = *s1++ + f;
318 }
double Real
Definition: include.h:57
InvertedMatrix i() const
Definition: newmat6.cpp:325
#define REPORT
Definition: newmat5.cpp:20
Real * store
Definition: newmat.h:393
int storage
Definition: newmat.h:392

◆ Add() [2/2]

void GeneralMatrix::Add ( Real  f)
protected

Definition at line 320 of file newmat5.cpp.

References REPORT.

321 {
322  REPORT
323  Real* s=store; int i=(storage >> 2);
324  while (i--) { *s++ += f; *s++ += f; *s++ += f; *s++ += f; }
325  i = storage & 3; while (i--) *s++ += f;
326 }
double Real
Definition: include.h:57
InvertedMatrix i() const
Definition: newmat6.cpp:325
#define REPORT
Definition: newmat5.cpp:20
Real * store
Definition: newmat.h:393
int storage
Definition: newmat.h:392

◆ BorrowStore()

GeneralMatrix * GeneralMatrix::BorrowStore ( GeneralMatrix gmx,
MatrixType  mt 
)
protected

Definition at line 617 of file newmat4.cpp.

References Compare(), Evaluate(), GetStore(), REPORT, store, tag, tDelete(), and Type().

620 {
621  if (!mt)
622  {
623  if (tag == -1) { REPORT gmx->tag = -2; gmx->store = store; }
624  else { REPORT gmx->tag = 0; gmx->store = GetStore(); }
625  }
626  else if (Compare(gmx->Type(),mt))
627  { REPORT gmx->tag = 0; gmx->store = GetStore(); }
628  else
629  {
630  REPORT gmx->tag = -2; gmx->store = store;
631  gmx = gmx->Evaluate(mt); gmx->tag = 0; tDelete();
632  }
633 
634  return gmx;
635 }
Real * GetStore()
Definition: newmat4.cpp:587
void tDelete()
Definition: newmat4.cpp:535
GeneralMatrix * Evaluate(MatrixType mt=MatrixTypeUnSp)
Definition: newmat5.cpp:79
bool Compare(const MatrixType &source, MatrixType &destination)
Definition: newmat4.cpp:729
#define REPORT
Definition: newmat4.cpp:19
Real * store
Definition: newmat.h:393
virtual MatrixType Type() const =0

◆ CheckConversion()

void GeneralMatrix::CheckConversion ( const BaseMatrix )
protected

◆ CheckStore()

void GeneralMatrix::CheckStore ( ) const

Definition at line 864 of file newmat4.cpp.

References REPORT, and store.

865 {
866  REPORT
867  if (!store)
868  Throw(ProgramException("NRIC accessing matrix with unset dimensions"));
869 }
#define REPORT
Definition: newmat4.cpp:19
Real * store
Definition: newmat.h:393

◆ CleanUp()

void GeneralMatrix::CleanUp ( )
virtual

Reimplemented from BaseMatrix.

Reimplemented in BandLUMatrix, CroutMatrix, ColumnVector, RowVector, and nricMatrix.

Definition at line 874 of file newmat4.cpp.

References MONITOR_REAL_DELETE, ncols, nrows, REPORT, storage, store, and tag.

Referenced by nricMatrix::CleanUp(), RowVector::CleanUp(), ColumnVector::CleanUp(), CroutMatrix::CleanUp(), and BandLUMatrix::CleanUp().

875 {
876  // set matrix dimensions to zero, delete storage
877  REPORT
878  if (store && storage)
879  {
880  MONITOR_REAL_DELETE("Free (CleanUp) ",storage,store)
881  REPORT delete [] store;
882  }
883  store=0; storage=0; nrows=0; ncols=0; tag = -1;
884 }
#define REPORT
Definition: newmat4.cpp:19
#define MONITOR_REAL_DELETE(Operation, Size, Pointer)
Definition: myexcept.h:319
Real * store
Definition: newmat.h:393
int storage
Definition: newmat.h:392

◆ Eq() [1/3]

void GeneralMatrix::Eq ( const BaseMatrix X,
MatrixType  mt 
)
protected

Definition at line 637 of file newmat4.cpp.

References Evaluate(), GetMatrix(), MONITOR_REAL_DELETE, Protect(), Release(), REPORT, BaseMatrix::search(), storage, and store.

Referenced by Eq().

642 {
643 #ifdef DO_SEARCH
644  int counter=X.search(this);
645  if (counter==0)
646  {
647  REPORT
648  if (store)
649  {
650  MONITOR_REAL_DELETE("Free (operator=)",storage,store)
651  REPORT delete [] store; storage = 0; store = 0;
652  }
653  }
654  else { REPORT Release(counter); }
655  GeneralMatrix* gmx = ((BaseMatrix&)X).Evaluate(mt);
656  if (gmx!=this) { REPORT GetMatrix(gmx); }
657  else { REPORT }
658  Protect();
659 #else
660  GeneralMatrix* gmx = ((BaseMatrix&)X).Evaluate(mt);
661  if (gmx!=this)
662  {
663  REPORT
664  if (store)
665  {
666  MONITOR_REAL_DELETE("Free (operator=)",storage,store)
667  REPORT delete [] store; storage = 0; store = 0;
668  }
669  GetMatrix(gmx);
670  }
671  else { REPORT }
672  Protect();
673 #endif
674 }
void Release()
Definition: newmat.h:440
virtual int search(const BaseMatrix *) const =0
GeneralMatrix * Evaluate(MatrixType mt=MatrixTypeUnSp)
Definition: newmat5.cpp:79
#define REPORT
Definition: newmat4.cpp:19
#define MONITOR_REAL_DELETE(Operation, Size, Pointer)
Definition: myexcept.h:319
Real * store
Definition: newmat.h:393
void Protect()
Definition: newmat.h:437
int storage
Definition: newmat.h:392
void GetMatrix(const GeneralMatrix *)
Definition: newmat4.cpp:610

◆ Eq() [2/3]

void GeneralMatrix::Eq ( const GeneralMatrix X)
protected

Definition at line 677 of file newmat4.cpp.

References GetMatrix(), MONITOR_REAL_DELETE, Protect(), REPORT, storage, and store.

678 {
679  GeneralMatrix* gmx = (GeneralMatrix*)&X;
680  if (gmx!=this)
681  {
682  REPORT
683  if (store)
684  {
685  MONITOR_REAL_DELETE("Free (operator=)",storage,store)
686  REPORT delete [] store; storage = 0; store = 0;
687  }
688  GetMatrix(gmx);
689  }
690  else { REPORT }
691  Protect();
692 }
#define REPORT
Definition: newmat4.cpp:19
#define MONITOR_REAL_DELETE(Operation, Size, Pointer)
Definition: myexcept.h:319
Real * store
Definition: newmat.h:393
void Protect()
Definition: newmat.h:437
int storage
Definition: newmat.h:392
void GetMatrix(const GeneralMatrix *)
Definition: newmat4.cpp:610

◆ Eq() [3/3]

void GeneralMatrix::Eq ( const BaseMatrix X,
MatrixType  mt,
bool  ldok 
)
protected

Definition at line 695 of file newmat4.cpp.

References Eq(), REPORT, and MatrixType::SetDataLossOK().

696 {
697  REPORT
698  if (ldok) mt.SetDataLossOK();
699  Eq(X, mt);
700 }
#define REPORT
Definition: newmat4.cpp:19
void Eq(const BaseMatrix &, MatrixType)
Definition: newmat4.cpp:637
void SetDataLossOK()
Definition: newmat.h:142

◆ Eq2()

void GeneralMatrix::Eq2 ( const BaseMatrix X,
MatrixType  mt 
)
protected

Definition at line 702 of file newmat4.cpp.

References Evaluate(), GetMatrix(), Protect(), and REPORT.

707 {
708  GeneralMatrix* gmx = ((BaseMatrix&)X).Evaluate(mt);
709  if (gmx!=this) { REPORT GetMatrix(gmx); } // simplify GetMatrix ?
710  else { REPORT }
711  Protect();
712 }
GeneralMatrix * Evaluate(MatrixType mt=MatrixTypeUnSp)
Definition: newmat5.cpp:79
#define REPORT
Definition: newmat4.cpp:19
void Protect()
Definition: newmat.h:437
void GetMatrix(const GeneralMatrix *)
Definition: newmat4.cpp:610

◆ Evaluate()

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

Implements BaseMatrix.

Definition at line 79 of file newmat5.cpp.

References Compare(), MatrixRowCol::Copy(), DirectPart, LoadOnEntry, MatrixType::New(), MatrixRow::Next(), REPORT, and StoreOnExit.

Referenced by BaseMatrix::AsScalar(), BandLUMatrix::BandLUMatrix(), BandMatrix::BandMatrix(), BorrowStore(), CroutMatrix::CroutMatrix(), BaseMatrix::Determinant(), DiagonalMatrix::DiagonalMatrix(), Eq(), Eq2(), AddedMatrix::Evaluate(), SPMatrix::Evaluate(), ConcatenatedMatrix::Evaluate(), StackedMatrix::Evaluate(), SubtractedMatrix::Evaluate(), ShiftedMatrix::Evaluate(), NegShiftedMatrix::Evaluate(), ScaledMatrix::Evaluate(), NegatedMatrix::Evaluate(), ReversedMatrix::Evaluate(), InvertedMatrix::Evaluate(), RowedMatrix::Evaluate(), ColedMatrix::Evaluate(), DiagedMatrix::Evaluate(), ReturnMatrix::Evaluate(), GenericMatrix::GenericMatrix(), IdentityMatrix::IdentityMatrix(), IsZero(), LinearEquationSolver::LinearEquationSolver(), BaseMatrix::LogDeterminant(), LowerBandMatrix::LowerBandMatrix(), LowerTriangularMatrix::LowerTriangularMatrix(), Matrix::Matrix(), BaseMatrix::Maximum(), BaseMatrix::Maximum1(), BaseMatrix::Maximum2(), BaseMatrix::MaximumAbsoluteValue(), BaseMatrix::MaximumAbsoluteValue1(), BaseMatrix::MaximumAbsoluteValue2(), BaseMatrix::Minimum(), BaseMatrix::Minimum1(), BaseMatrix::Minimum2(), BaseMatrix::MinimumAbsoluteValue(), BaseMatrix::MinimumAbsoluteValue1(), BaseMatrix::MinimumAbsoluteValue2(), BaseMatrix::Norm1(), BaseMatrix::NormInfinity(), operator*=(), GenericMatrix::operator*=(), operator+=(), GenericMatrix::operator+=(), GetSubMatrix::operator+=(), operator-=(), GenericMatrix::operator-=(), GetSubMatrix::operator-=(), operator<<(), GetSubMatrix::operator<<(), GenericMatrix::operator=(), GetSubMatrix::operator=(), operator|=(), GenericMatrix::operator|=(), GetSubMatrix::SetUpLHS(), BaseMatrix::Sum(), BaseMatrix::SumAbsoluteValue(), BaseMatrix::SumSquare(), SymmetricBandMatrix::SymmetricBandMatrix(), SymmetricMatrix::SymmetricMatrix(), BaseMatrix::Trace(), UpperBandMatrix::UpperBandMatrix(), and UpperTriangularMatrix::UpperTriangularMatrix().

80 {
81  if (Compare(this->Type(),mt)) { REPORT return this; }
82  REPORT
83  GeneralMatrix* gmx = mt.New(nrows,ncols,this);
84  MatrixRow mr(this, LoadOnEntry);
86  int i=nrows;
87  while (i--) { mrx.Copy(mr); mrx.Next(); mr.Next(); }
88  tDelete(); gmx->ReleaseAndDelete(); return gmx;
89 }
void tDelete()
Definition: newmat4.cpp:535
InvertedMatrix i() const
Definition: newmat6.cpp:325
GeneralMatrix * New() const
bool Compare(const MatrixType &source, MatrixType &destination)
Definition: newmat4.cpp:729
#define REPORT
Definition: newmat5.cpp:20
virtual MatrixType Type() const =0

◆ ForReturn()

ReturnMatrix GeneralMatrix::ForReturn ( ) const

Definition at line 206 of file newmat4.cpp.

References Image(), REPORT, and ReturnMatrix.

Referenced by Cholesky().

207 {
208  REPORT
209  GeneralMatrix* gm = Image(); gm->ReleaseAndDelete();
210  return ReturnMatrix(gm);
211 }
#define REPORT
Definition: newmat4.cpp:19
virtual GeneralMatrix * Image() const
Definition: newmat4.cpp:838
friend class ReturnMatrix
Definition: newmat.h:535

◆ GetCol() [1/2]

virtual void GeneralMatrix::GetCol ( MatrixRowCol )
pure virtual

◆ GetCol() [2/2]

virtual void GeneralMatrix::GetCol ( MatrixColX )
pure virtual

◆ GetMatrix()

void GeneralMatrix::GetMatrix ( const GeneralMatrix gmx)
protected

◆ GetRow()

virtual void GeneralMatrix::GetRow ( MatrixRowCol )
pure virtual

◆ GetStore()

Real * GeneralMatrix::GetStore ( )
protected

Definition at line 587 of file newmat4.cpp.

References MatrixErrorNoSpace(), MONITOR_REAL_NEW, and storage.

Referenced by BorrowStore().

588 {
589  if (tag<0 || tag>1)
590  {
591  Real* s;
592  if (storage)
593  {
594  s = new Real [storage]; MatrixErrorNoSpace(s);
595  MONITOR_REAL_NEW("Make (GetStore)",storage,s)
596  BlockCopy(storage, store, s);
597  }
598  else s = 0;
599  if (tag > 1) { REPORT tag--; }
600  else if (tag < -1) { REPORT store = 0; delete this; } // borrowed store
601  else { REPORT }
602  return s;
603  }
604  Real* s = store; // CleanUp - done later
605  if (tag==0) { REPORT store = 0; delete this; }
606  else { REPORT MiniCleanUp(); }
607  return s;
608 }
double Real
Definition: include.h:57
virtual void MiniCleanUp()
Definition: newmat.h:421
void MatrixErrorNoSpace(const void *)
Definition: newmatex.cpp:292
#define REPORT
Definition: newmat4.cpp:19
Real * store
Definition: newmat.h:393
#define MONITOR_REAL_NEW(Operation, Size, Pointer)
Definition: myexcept.h:317
int storage
Definition: newmat.h:392

◆ Image()

GeneralMatrix * GeneralMatrix::Image ( ) const
privatevirtual

◆ Inject()

void GeneralMatrix::Inject ( const GeneralMatrix X)

Definition at line 714 of file newmat4.cpp.

References DirectPart, BaseMatrix::i(), MatrixRowCol::Inject(), LoadOnEntry, ncols, MatrixRow::Next(), nrows, REPORT, and StoreOnExit.

716 {
717  REPORT
718  Tracer tr("Inject");
719  if (nrows != X.nrows || ncols != X.ncols)
723  int i=nrows;
724  while (i--) { mrx.Inject(mr); mrx.Next(); mr.Next(); }
725 }
InvertedMatrix i() const
Definition: newmat6.cpp:325
#define REPORT
Definition: newmat4.cpp:19

◆ IsEqual()

bool GeneralMatrix::IsEqual ( const GeneralMatrix A) const
virtual

Reimplemented in BandLUMatrix, and CroutMatrix.

Definition at line 903 of file newmat7.cpp.

References A, and REPORT.

904 {
905  Tracer tr("GeneralMatrix IsEqual");
906  if (A.Type() != Type()) // not same types
907  { REPORT return false; }
908  if (&A == this) // same matrix
909  { REPORT return true; }
910  if (A.nrows != nrows || A.ncols != ncols)
911  // different dimensions
912  { REPORT return false; }
913  // is matrix storage the same - compare store
914  REPORT
915  return RealEqual(A.store,store,storage);
916 }
#define A(r, c)
#define REPORT
Definition: newmat7.cpp:18
Real * store
Definition: newmat.h:393
virtual MatrixType Type() const =0
int storage
Definition: newmat.h:392

◆ IsZero()

bool GeneralMatrix::IsZero ( ) const

Definition at line 876 of file newmat7.cpp.

References REPORT.

Referenced by IsZero().

877 {
878  REPORT
879  Real* s=store; int i = storage >> 2;
880  while (i--)
881  {
882  if (*s++) return false; if (*s++) return false;
883  if (*s++) return false; if (*s++) return false;
884  }
885  i = storage & 3; while (i--) if (*s++) return false;
886  return true;
887 }
double Real
Definition: include.h:57
InvertedMatrix i() const
Definition: newmat6.cpp:325
#define REPORT
Definition: newmat7.cpp:18
Real * store
Definition: newmat.h:393
int storage
Definition: newmat.h:392

◆ LogDeterminant()

LogAndSign GeneralMatrix::LogDeterminant ( ) const
virtual

Reimplemented from BaseMatrix.

Reimplemented in IdentityMatrix, BandLUMatrix, SymmetricBandMatrix, LowerBandMatrix, UpperBandMatrix, BandMatrix, CroutMatrix, DiagonalMatrix, LowerTriangularMatrix, and UpperTriangularMatrix.

Definition at line 688 of file newmat8.cpp.

References REPORT.

689 {
690  REPORT
691  Tracer tr("LogDeterminant");
692  if (nrows != ncols) Throw(NotSquareException(*this));
693  CroutMatrix C(*this); return C.LogDeterminant();
694 }
#define REPORT
Definition: newmat8.cpp:21

◆ MakeSolver()

GeneralMatrix * GeneralMatrix::MakeSolver ( )
virtual

Reimplemented in IdentityMatrix, BandLUMatrix, SymmetricBandMatrix, LowerBandMatrix, UpperBandMatrix, BandMatrix, CroutMatrix, DiagonalMatrix, LowerTriangularMatrix, UpperTriangularMatrix, and Matrix.

Definition at line 24 of file newmat7.cpp.

References MatrixErrorNoSpace(), and REPORT.

Referenced by LinearEquationSolver::LinearEquationSolver().

25 {
26  REPORT
27  GeneralMatrix* gm = new CroutMatrix(*this);
28  MatrixErrorNoSpace(gm); gm->ReleaseAndDelete(); return gm;
29 }
#define REPORT
Definition: newmat7.cpp:18
friend class CroutMatrix
Definition: newmat.h:507
void MatrixErrorNoSpace(const void *)
Definition: newmatex.cpp:292

◆ Maximum()

Real GeneralMatrix::Maximum ( ) const
virtual

Reimplemented from BaseMatrix.

Reimplemented in SymmetricBandMatrix, and BandMatrix.

Definition at line 254 of file newmat8.cpp.

References REPORT.

255 {
256  REPORT
257  if (storage == 0) NullMatrixError(this);
258  int l = storage - 1; Real* s = store; Real maxval = *s++;
259  while (l--) { Real a = *s++; if (maxval < a) maxval = a; }
260  ((GeneralMatrix&)*this).tDelete(); return maxval;
261 }
double Real
Definition: include.h:57
#define REPORT
Definition: newmat8.cpp:21
Real * store
Definition: newmat.h:393
int storage
Definition: newmat.h:392

◆ Maximum1()

Real GeneralMatrix::Maximum1 ( int &  i) const
virtual

Reimplemented from BaseMatrix.

Definition at line 263 of file newmat8.cpp.

References REPORT.

Referenced by Matrix::Maximum2().

264 {
265  REPORT
266  if (storage == 0) NullMatrixError(this);
267  int l = storage - 1; Real* s = store; Real maxval = *s++; int li = l;
268  while (l--) { Real a = *s++; if (maxval <= a) { maxval = a; li = l; } }
269  i = storage - li;
270  ((GeneralMatrix&)*this).tDelete(); return maxval;
271 }
double Real
Definition: include.h:57
InvertedMatrix i() const
Definition: newmat6.cpp:325
#define REPORT
Definition: newmat8.cpp:21
Real * store
Definition: newmat.h:393
int storage
Definition: newmat.h:392

◆ Maximum2()

Real GeneralMatrix::Maximum2 ( int &  i,
int &  j 
) const
virtual

Reimplemented from BaseMatrix.

Reimplemented in Matrix.

Definition at line 322 of file newmat8.cpp.

References REPORT.

Referenced by BandMatrix::Maximum(), and SymmetricBandMatrix::Maximum().

323 {
324  REPORT
325  if (storage == 0) NullMatrixError(this);
326  Real maxval = -FloatingPointPrecision::Maximum(); int nr = Nrows();
328  for (int r = 1; r <= nr; r++)
329  {
330  int c; maxval = mr.Maximum1(maxval, c);
331  if (c > 0) { i = r; j = c; }
332  mr.Next();
333  }
334  ((GeneralMatrix&)*this).tDelete(); return maxval;
335 }
double Real
Definition: include.h:57
Real Maximum(const BaseMatrix &B)
Definition: newmat.h:1766
InvertedMatrix i() const
Definition: newmat6.cpp:325
#define REPORT
Definition: newmat8.cpp:21
int Nrows() const
Definition: newmat.h:430
int storage
Definition: newmat.h:392

◆ MaximumAbsoluteValue()

Real GeneralMatrix::MaximumAbsoluteValue ( ) const
virtual

Reimplemented from BaseMatrix.

Reimplemented in SymmetricBandMatrix, and BandMatrix.

Definition at line 214 of file newmat8.cpp.

References REPORT.

Referenced by BandMatrix::MaximumAbsoluteValue(), SymmetricBandMatrix::MaximumAbsoluteValue(), Norm1(), and NormInfinity().

215 {
216  REPORT
217  if (storage == 0) NullMatrixError(this);
218  Real maxval = 0.0; int l = storage; Real* s = store;
219  while (l--) { Real a = fabs(*s++); if (maxval < a) maxval = a; }
220  ((GeneralMatrix&)*this).tDelete(); return maxval;
221 }
double Real
Definition: include.h:57
#define REPORT
Definition: newmat8.cpp:21
Real * store
Definition: newmat.h:393
int storage
Definition: newmat.h:392

◆ MaximumAbsoluteValue1()

Real GeneralMatrix::MaximumAbsoluteValue1 ( int &  i) const
virtual

Reimplemented from BaseMatrix.

Definition at line 223 of file newmat8.cpp.

References REPORT.

Referenced by Matrix::MaximumAbsoluteValue2().

224 {
225  REPORT
226  if (storage == 0) NullMatrixError(this);
227  Real maxval = 0.0; int l = storage; Real* s = store; int li = storage;
228  while (l--)
229  { Real a = fabs(*s++); if (maxval <= a) { maxval = a; li = l; } }
230  i = storage - li;
231  ((GeneralMatrix&)*this).tDelete(); return maxval;
232 }
double Real
Definition: include.h:57
InvertedMatrix i() const
Definition: newmat6.cpp:325
#define REPORT
Definition: newmat8.cpp:21
Real * store
Definition: newmat.h:393
int storage
Definition: newmat.h:392

◆ MaximumAbsoluteValue2()

Real GeneralMatrix::MaximumAbsoluteValue2 ( int &  i,
int &  j 
) const
virtual

Reimplemented from BaseMatrix.

Reimplemented in Matrix.

Definition at line 292 of file newmat8.cpp.

References REPORT.

293 {
294  REPORT
295  if (storage == 0) NullMatrixError(this);
296  Real maxval = 0.0; int nr = Nrows();
298  for (int r = 1; r <= nr; r++)
299  {
300  int c; maxval = mr.MaximumAbsoluteValue1(maxval, c);
301  if (c > 0) { i = r; j = c; }
302  mr.Next();
303  }
304  ((GeneralMatrix&)*this).tDelete(); return maxval;
305 }
double Real
Definition: include.h:57
InvertedMatrix i() const
Definition: newmat6.cpp:325
#define REPORT
Definition: newmat8.cpp:21
int Nrows() const
Definition: newmat.h:430
int storage
Definition: newmat.h:392

◆ MiniCleanUp()

virtual void GeneralMatrix::MiniCleanUp ( )
inlineprotectedvirtual

Reimplemented in BandLUMatrix, CroutMatrix, ColumnVector, RowVector, and nricMatrix.

Definition at line 421 of file newmat.h.

Referenced by nricMatrix::MiniCleanUp(), CroutMatrix::MiniCleanUp(), BandLUMatrix::MiniCleanUp(), and tDelete().

421 { store = 0; storage = 0; nrows = 0; ncols = 0; tag = -1;}
Real * store
Definition: newmat.h:393
int storage
Definition: newmat.h:392

◆ Minimum()

Real GeneralMatrix::Minimum ( ) const
virtual

Reimplemented from BaseMatrix.

Reimplemented in SymmetricBandMatrix, and BandMatrix.

Definition at line 273 of file newmat8.cpp.

References REPORT.

274 {
275  REPORT
276  if (storage == 0) NullMatrixError(this);
277  int l = storage - 1; Real* s = store; Real minval = *s++;
278  while (l--) { Real a = *s++; if (minval > a) minval = a; }
279  ((GeneralMatrix&)*this).tDelete(); return minval;
280 }
double Real
Definition: include.h:57
#define REPORT
Definition: newmat8.cpp:21
Real * store
Definition: newmat.h:393
int storage
Definition: newmat.h:392

◆ Minimum1()

Real GeneralMatrix::Minimum1 ( int &  i) const
virtual

Reimplemented from BaseMatrix.

Definition at line 282 of file newmat8.cpp.

References REPORT.

Referenced by Matrix::Minimum2().

283 {
284  REPORT
285  if (storage == 0) NullMatrixError(this);
286  int l = storage - 1; Real* s = store; Real minval = *s++; int li = l;
287  while (l--) { Real a = *s++; if (minval >= a) { minval = a; li = l; } }
288  i = storage - li;
289  ((GeneralMatrix&)*this).tDelete(); return minval;
290 }
double Real
Definition: include.h:57
InvertedMatrix i() const
Definition: newmat6.cpp:325
#define REPORT
Definition: newmat8.cpp:21
Real * store
Definition: newmat.h:393
int storage
Definition: newmat.h:392

◆ Minimum2()

Real GeneralMatrix::Minimum2 ( int &  i,
int &  j 
) const
virtual

Reimplemented from BaseMatrix.

Reimplemented in Matrix.

Definition at line 337 of file newmat8.cpp.

References REPORT.

Referenced by BandMatrix::Minimum(), and SymmetricBandMatrix::Minimum().

338 {
339  REPORT
340  if (storage == 0) NullMatrixError(this);
341  Real minval = FloatingPointPrecision::Maximum(); int nr = Nrows();
343  for (int r = 1; r <= nr; r++)
344  {
345  int c; minval = mr.Minimum1(minval, c);
346  if (c > 0) { i = r; j = c; }
347  mr.Next();
348  }
349  ((GeneralMatrix&)*this).tDelete(); return minval;
350 }
double Real
Definition: include.h:57
Real Maximum(const BaseMatrix &B)
Definition: newmat.h:1766
InvertedMatrix i() const
Definition: newmat6.cpp:325
#define REPORT
Definition: newmat8.cpp:21
int Nrows() const
Definition: newmat.h:430
int storage
Definition: newmat.h:392

◆ MinimumAbsoluteValue()

Real GeneralMatrix::MinimumAbsoluteValue ( ) const
virtual

Reimplemented from BaseMatrix.

Reimplemented in SymmetricBandMatrix, and BandMatrix.

Definition at line 234 of file newmat8.cpp.

References REPORT.

235 {
236  REPORT
237  if (storage == 0) NullMatrixError(this);
238  int l = storage - 1; Real* s = store; Real minval = fabs(*s++);
239  while (l--) { Real a = fabs(*s++); if (minval > a) minval = a; }
240  ((GeneralMatrix&)*this).tDelete(); return minval;
241 }
double Real
Definition: include.h:57
#define REPORT
Definition: newmat8.cpp:21
Real * store
Definition: newmat.h:393
int storage
Definition: newmat.h:392

◆ MinimumAbsoluteValue1()

Real GeneralMatrix::MinimumAbsoluteValue1 ( int &  i) const
virtual

Reimplemented from BaseMatrix.

Definition at line 243 of file newmat8.cpp.

References REPORT.

Referenced by Matrix::MinimumAbsoluteValue2().

244 {
245  REPORT
246  if (storage == 0) NullMatrixError(this);
247  int l = storage - 1; Real* s = store; Real minval = fabs(*s++); int li = l;
248  while (l--)
249  { Real a = fabs(*s++); if (minval >= a) { minval = a; li = l; } }
250  i = storage - li;
251  ((GeneralMatrix&)*this).tDelete(); return minval;
252 }
double Real
Definition: include.h:57
InvertedMatrix i() const
Definition: newmat6.cpp:325
#define REPORT
Definition: newmat8.cpp:21
Real * store
Definition: newmat.h:393
int storage
Definition: newmat.h:392

◆ MinimumAbsoluteValue2()

Real GeneralMatrix::MinimumAbsoluteValue2 ( int &  i,
int &  j 
) const
virtual

Reimplemented from BaseMatrix.

Reimplemented in Matrix.

Definition at line 307 of file newmat8.cpp.

References REPORT.

Referenced by BandMatrix::MinimumAbsoluteValue(), and SymmetricBandMatrix::MinimumAbsoluteValue().

308 {
309  REPORT
310  if (storage == 0) NullMatrixError(this);
311  Real minval = FloatingPointPrecision::Maximum(); int nr = Nrows();
313  for (int r = 1; r <= nr; r++)
314  {
315  int c; minval = mr.MinimumAbsoluteValue1(minval, c);
316  if (c > 0) { i = r; j = c; }
317  mr.Next();
318  }
319  ((GeneralMatrix&)*this).tDelete(); return minval;
320 }
double Real
Definition: include.h:57
Real Maximum(const BaseMatrix &B)
Definition: newmat.h:1766
InvertedMatrix i() const
Definition: newmat6.cpp:325
#define REPORT
Definition: newmat8.cpp:21
int Nrows() const
Definition: newmat.h:430
int storage
Definition: newmat.h:392

◆ MinusEqual() [1/2]

void GeneralMatrix::MinusEqual ( const GeneralMatrix gm)
protected

Definition at line 178 of file newmat7.cpp.

References ncols, nrows, and REPORT.

179 {
180  REPORT
181  if (nrows != gm.nrows || ncols != gm.ncols)
182  Throw(IncompatibleDimensionsException(*this, gm));
183  SubtractFrom(this, &gm);
184 }
#define REPORT
Definition: newmat7.cpp:18

◆ MinusEqual() [2/2]

void GeneralMatrix::MinusEqual ( Real  f)
protected

◆ Multiply() [1/2]

void GeneralMatrix::Multiply ( GeneralMatrix gm1,
Real  f 
)
protected

Definition at line 368 of file newmat5.cpp.

References REPORT, and store.

369 {
370  REPORT
371  Real* s1=gm1->store; Real* s=store; int i=(storage >> 2);
372  while (i--)
373  { *s++ = *s1++ * f; *s++ = *s1++ * f; *s++ = *s1++ * f; *s++ = *s1++ * f; }
374  i = storage & 3; while (i--) *s++ = *s1++ * f;
375 }
double Real
Definition: include.h:57
InvertedMatrix i() const
Definition: newmat6.cpp:325
#define REPORT
Definition: newmat5.cpp:20
Real * store
Definition: newmat.h:393
int storage
Definition: newmat.h:392

◆ Multiply() [2/2]

void GeneralMatrix::Multiply ( Real  f)
protected

Definition at line 377 of file newmat5.cpp.

References REPORT.

378 {
379  REPORT
380  Real* s=store; int i=(storage >> 2);
381  while (i--) { *s++ *= f; *s++ *= f; *s++ *= f; *s++ *= f; }
382  i = storage & 3; while (i--) *s++ *= f;
383 }
double Real
Definition: include.h:57
InvertedMatrix i() const
Definition: newmat6.cpp:325
#define REPORT
Definition: newmat5.cpp:20
Real * store
Definition: newmat.h:393
int storage
Definition: newmat.h:392

◆ Ncols()

int GeneralMatrix::Ncols ( ) const
inline

◆ NegAdd() [1/2]

void GeneralMatrix::NegAdd ( GeneralMatrix gm1,
Real  f 
)
protected

Definition at line 328 of file newmat5.cpp.

References REPORT, and store.

329 {
330  REPORT
331  Real* s1=gm1->store; Real* s=store; int i=(storage >> 2);
332  while (i--)
333  { *s++ = f - *s1++; *s++ = f - *s1++; *s++ = f - *s1++; *s++ = f - *s1++; }
334  i = storage & 3; while (i--) *s++ = f - *s1++;
335 }
double Real
Definition: include.h:57
InvertedMatrix i() const
Definition: newmat6.cpp:325
#define REPORT
Definition: newmat5.cpp:20
Real * store
Definition: newmat.h:393
int storage
Definition: newmat.h:392

◆ NegAdd() [2/2]

void GeneralMatrix::NegAdd ( Real  f)
protected

Definition at line 337 of file newmat5.cpp.

References REPORT.

338 {
339  REPORT
340  Real* s=store; int i=(storage >> 2);
341  while (i--)
342  {
343  *s = f - *s; s++; *s = f - *s; s++;
344  *s = f - *s; s++; *s = f - *s; s++;
345  }
346  i = storage & 3; while (i--) { *s = f - *s; s++; }
347 }
double Real
Definition: include.h:57
InvertedMatrix i() const
Definition: newmat6.cpp:325
#define REPORT
Definition: newmat5.cpp:20
Real * store
Definition: newmat.h:393
int storage
Definition: newmat.h:392

◆ Negate() [1/2]

void GeneralMatrix::Negate ( GeneralMatrix gm1)
protected

Definition at line 349 of file newmat5.cpp.

References REPORT, and store.

350 {
351  // change sign of elements
352  REPORT
353  Real* s1=gm1->store; Real* s=store; int i=(storage >> 2);
354  while (i--)
355  { *s++ = -(*s1++); *s++ = -(*s1++); *s++ = -(*s1++); *s++ = -(*s1++); }
356  i = storage & 3; while(i--) *s++ = -(*s1++);
357 }
double Real
Definition: include.h:57
InvertedMatrix i() const
Definition: newmat6.cpp:325
#define REPORT
Definition: newmat5.cpp:20
Real * store
Definition: newmat.h:393
int storage
Definition: newmat.h:392

◆ Negate() [2/2]

void GeneralMatrix::Negate ( )
protected

Definition at line 359 of file newmat5.cpp.

References REPORT.

360 {
361  REPORT
362  Real* s=store; int i=(storage >> 2);
363  while (i--)
364  { *s = -(*s); s++; *s = -(*s); s++; *s = -(*s); s++; *s = -(*s); s++; }
365  i = storage & 3; while(i--) { *s = -(*s); s++; }
366 }
double Real
Definition: include.h:57
InvertedMatrix i() const
Definition: newmat6.cpp:325
#define REPORT
Definition: newmat5.cpp:20
Real * store
Definition: newmat.h:393
int storage
Definition: newmat.h:392

◆ NextCol() [1/2]

void GeneralMatrix::NextCol ( MatrixRowCol mrc)
virtual

Reimplemented in IdentityMatrix, RowVector, DiagonalMatrix, and Matrix.

Definition at line 90 of file newmat3.cpp.

References MatrixRowCol::cw, REPORT, MatrixRowCol::rowcol, and StoreOnExit.

91 {
92  REPORT // 423
93  if (+(mrc.cw*StoreOnExit)) { REPORT this->RestoreCol(mrc); }
94  mrc.rowcol++;
95  if (mrc.rowcol<ncols) { REPORT this->GetCol(mrc); }
96  else { REPORT mrc.cw -= StoreOnExit; }
97 }
virtual void GetCol(MatrixRowCol &)=0
#define REPORT
Definition: newmat3.cpp:20
LoadAndStoreFlag cw
Definition: newmatrc.h:44
virtual void RestoreCol(MatrixRowCol &)
Definition: newmat.h:464
int rowcol
Definition: newmatrc.h:41

◆ NextCol() [2/2]

void GeneralMatrix::NextCol ( MatrixColX mrc)
virtual

Reimplemented in IdentityMatrix, RowVector, DiagonalMatrix, and Matrix.

Definition at line 99 of file newmat3.cpp.

References MatrixRowCol::cw, REPORT, MatrixRowCol::rowcol, and StoreOnExit.

100 {
101  REPORT // 423
102  if (+(mrc.cw*StoreOnExit)) { REPORT this->RestoreCol(mrc); }
103  mrc.rowcol++;
104  if (mrc.rowcol<ncols) { REPORT this->GetCol(mrc); }
105  else { REPORT mrc.cw -= StoreOnExit; }
106 }
virtual void GetCol(MatrixRowCol &)=0
#define REPORT
Definition: newmat3.cpp:20
LoadAndStoreFlag cw
Definition: newmatrc.h:44
virtual void RestoreCol(MatrixRowCol &)
Definition: newmat.h:464
int rowcol
Definition: newmatrc.h:41

◆ NextRow()

void GeneralMatrix::NextRow ( MatrixRowCol mrc)
virtual

Reimplemented in IdentityMatrix, BandMatrix, DiagonalMatrix, LowerTriangularMatrix, UpperTriangularMatrix, and Matrix.

Definition at line 81 of file newmat3.cpp.

References MatrixRowCol::cw, REPORT, MatrixRowCol::rowcol, and StoreOnExit.

82 {
83  REPORT
84  if (+(mrc.cw*StoreOnExit)) { REPORT this->RestoreRow(mrc); }
85  mrc.rowcol++;
86  if (mrc.rowcol<nrows) { REPORT this->GetRow(mrc); }
87  else { REPORT mrc.cw -= StoreOnExit; }
88 }
virtual void GetRow(MatrixRowCol &)=0
virtual void RestoreRow(MatrixRowCol &)
Definition: newmat.h:460
#define REPORT
Definition: newmat3.cpp:20
LoadAndStoreFlag cw
Definition: newmatrc.h:44
int rowcol
Definition: newmatrc.h:41

◆ Nrows()

int GeneralMatrix::Nrows ( ) const
inline

◆ operator &=()

void GeneralMatrix::operator&= ( const BaseMatrix )

◆ operator ReturnMatrix()

GeneralMatrix::operator ReturnMatrix ( ) const

Definition at line 197 of file newmat4.cpp.

References REPORT.

198 {
199  REPORT
200  GeneralMatrix* gm = Image(); gm->ReleaseAndDelete();
201  return ReturnMatrix(gm);
202 }
#define REPORT
Definition: newmat4.cpp:19
virtual GeneralMatrix * Image() const
Definition: newmat4.cpp:838
friend class ReturnMatrix
Definition: newmat.h:535

◆ operator*=() [1/2]

void GeneralMatrix::operator*= ( const BaseMatrix X)

Definition at line 495 of file newmat6.cpp.

References Evaluate(), and REPORT.

496 {
497  REPORT
498  Tracer tr("GeneralMatrix::operator*=");
499  // MatrixConversionCheck mcc;
500  Protect(); // so it cannot get deleted
501  // during Evaluate
502  GeneralMatrix* gm = ((BaseMatrix&)X).Evaluate();
503  MultipliedMatrix am(this,gm);
504  if (gm==this) Release(2); else Release();
505  Eq2(am,Type());
506 }
void Release()
Definition: newmat.h:440
GeneralMatrix * Evaluate(MatrixType mt=MatrixTypeUnSp)
Definition: newmat5.cpp:79
void Eq2(const BaseMatrix &, MatrixType)
Definition: newmat4.cpp:702
#define REPORT
Definition: newmat6.cpp:19
virtual MatrixType Type() const =0
void Protect()
Definition: newmat.h:437

◆ operator*=() [2/2]

void GeneralMatrix::operator*= ( Real  r)

Definition at line 543 of file newmat6.cpp.

References REPORT.

544 {
545  REPORT
546  Tracer tr("GeneralMatrix::operator*=(Real)");
547  // MatrixConversionCheck mcc;
548  ScaledMatrix am(this,r);
549  Release(); Eq2(am,Type());
550 }
void Release()
Definition: newmat.h:440
void Eq2(const BaseMatrix &, MatrixType)
Definition: newmat4.cpp:702
#define REPORT
Definition: newmat6.cpp:19
virtual MatrixType Type() const =0

◆ operator+=() [1/2]

void GeneralMatrix::operator+= ( const BaseMatrix X)

Definition at line 469 of file newmat6.cpp.

References Evaluate(), and REPORT.

Referenced by UpperTriangularMatrix::operator+=(), LowerTriangularMatrix::operator+=(), and DiagonalMatrix::operator+=().

470 {
471  REPORT
472  Tracer tr("GeneralMatrix::operator+=");
473  // MatrixConversionCheck mcc;
474  Protect(); // so it cannot get deleted
475  // during Evaluate
476  GeneralMatrix* gm = ((BaseMatrix&)X).Evaluate();
477  AddedMatrix am(this,gm);
478  if (gm==this) Release(2); else Release();
479  Eq2(am,Type());
480 }
void Release()
Definition: newmat.h:440
GeneralMatrix * Evaluate(MatrixType mt=MatrixTypeUnSp)
Definition: newmat5.cpp:79
void Eq2(const BaseMatrix &, MatrixType)
Definition: newmat4.cpp:702
#define REPORT
Definition: newmat6.cpp:19
virtual MatrixType Type() const =0
void Protect()
Definition: newmat.h:437

◆ operator+=() [2/2]

void GeneralMatrix::operator+= ( Real  r)

Definition at line 534 of file newmat6.cpp.

References REPORT.

535 {
536  REPORT
537  Tracer tr("GeneralMatrix::operator+=(Real)");
538  // MatrixConversionCheck mcc;
539  ShiftedMatrix am(this,r);
540  Release(); Eq2(am,Type());
541 }
void Release()
Definition: newmat.h:440
void Eq2(const BaseMatrix &, MatrixType)
Definition: newmat4.cpp:702
#define REPORT
Definition: newmat6.cpp:19
virtual MatrixType Type() const =0

◆ operator-=() [1/2]

void GeneralMatrix::operator-= ( const BaseMatrix X)

Definition at line 482 of file newmat6.cpp.

References Evaluate(), and REPORT.

Referenced by UpperTriangularMatrix::operator-=(), LowerTriangularMatrix::operator-=(), and DiagonalMatrix::operator-=().

483 {
484  REPORT
485  Tracer tr("GeneralMatrix::operator-=");
486  // MatrixConversionCheck mcc;
487  Protect(); // so it cannot get deleted
488  // during Evaluate
489  GeneralMatrix* gm = ((BaseMatrix&)X).Evaluate();
490  SubtractedMatrix am(this,gm);
491  if (gm==this) Release(2); else Release();
492  Eq2(am,Type());
493 }
void Release()
Definition: newmat.h:440
GeneralMatrix * Evaluate(MatrixType mt=MatrixTypeUnSp)
Definition: newmat5.cpp:79
void Eq2(const BaseMatrix &, MatrixType)
Definition: newmat4.cpp:702
#define REPORT
Definition: newmat6.cpp:19
virtual MatrixType Type() const =0
void Protect()
Definition: newmat.h:437

◆ operator-=() [2/2]

void GeneralMatrix::operator-= ( Real  r)
inline

Definition at line 454 of file newmat.h.

454 { operator+=(-r); }
void operator+=(const BaseMatrix &)
Definition: newmat6.cpp:469

◆ operator/=()

void GeneralMatrix::operator/= ( Real  r)
inline

Definition at line 456 of file newmat.h.

456 { operator*=(1.0/r); }
void operator*=(const BaseMatrix &)
Definition: newmat6.cpp:495

◆ operator<<() [1/5]

void GeneralMatrix::operator<< ( const Real *  r)

Definition at line 422 of file newmat6.cpp.

References REPORT.

Referenced by BandMatrix::operator<<(), and SymmetricBandMatrix::operator<<().

423 {
424  REPORT
425  int i = storage; Real* s=store;
426  while(i--) *s++ = *r++;
427 }
double Real
Definition: include.h:57
InvertedMatrix i() const
Definition: newmat6.cpp:325
#define REPORT
Definition: newmat6.cpp:19
Real * store
Definition: newmat.h:393
int storage
Definition: newmat.h:392

◆ operator<<() [2/5]

void GeneralMatrix::operator<< ( const int *  r)

Definition at line 430 of file newmat6.cpp.

References REPORT.

431 {
432  REPORT
433  int i = storage; Real* s=store;
434  while(i--) *s++ = *r++;
435 }
double Real
Definition: include.h:57
InvertedMatrix i() const
Definition: newmat6.cpp:325
#define REPORT
Definition: newmat6.cpp:19
Real * store
Definition: newmat.h:393
int storage
Definition: newmat.h:392

◆ operator<<() [3/5]

void GeneralMatrix::operator<< ( const BaseMatrix X)
inline

Definition at line 445 of file newmat.h.

446  { Eq(X,this->Type(),true); } // = without checking type
void Eq(const BaseMatrix &, MatrixType)
Definition: newmat4.cpp:637
virtual MatrixType Type() const =0

◆ operator<<() [4/5]

MatrixInput GeneralMatrix::operator<< ( Real  f)

Definition at line 401 of file newmat5.cpp.

References n, and REPORT.

402 {
403  REPORT
404  Tracer et("MatrixInput");
405  int n = Storage();
406  if (n<=0) Throw(ProgramException("Loading data to zero length matrix"));
407  Real* r; r = Store(); *r = f; n--;
408  return MatrixInput(n, r+1);
409 }
double Real
Definition: include.h:57
#define REPORT
Definition: newmat5.cpp:20
os2<< "> n<< " > nendobj n
int Storage() const
Definition: newmat.h:432
Real * Store() const
Definition: newmat.h:433

◆ operator<<() [5/5]

MatrixInput GeneralMatrix::operator<< ( int  f)
inline

Definition at line 1777 of file newmat.h.

1777 { return *this << (Real)f; }
double Real
Definition: include.h:57

◆ operator=()

void GeneralMatrix::operator= ( Real  f)
protected

◆ operator|=()

void GeneralMatrix::operator|= ( const BaseMatrix X)

Definition at line 508 of file newmat6.cpp.

References Evaluate(), and REPORT.

509 {
510  REPORT
511  Tracer tr("GeneralMatrix::operator|=");
512  // MatrixConversionCheck mcc;
513  Protect(); // so it cannot get deleted
514  // during Evaluate
515  GeneralMatrix* gm = ((BaseMatrix&)X).Evaluate();
516  ConcatenatedMatrix am(this,gm);
517  if (gm==this) Release(2); else Release();
518  Eq2(am,Type());
519 }
void Release()
Definition: newmat.h:440
GeneralMatrix * Evaluate(MatrixType mt=MatrixTypeUnSp)
Definition: newmat5.cpp:79
void Eq2(const BaseMatrix &, MatrixType)
Definition: newmat4.cpp:702
#define REPORT
Definition: newmat6.cpp:19
virtual MatrixType Type() const =0
void Protect()
Definition: newmat.h:437

◆ PlusEqual() [1/2]

void GeneralMatrix::PlusEqual ( const GeneralMatrix gm)
protected

Definition at line 148 of file newmat7.cpp.

References ncols, nrows, and REPORT.

149 {
150  REPORT
151  if (nrows != gm.nrows || ncols != gm.ncols)
152  Throw(IncompatibleDimensionsException(*this, gm));
153  AddTo(this, &gm);
154 }
#define REPORT
Definition: newmat7.cpp:18

◆ PlusEqual() [2/2]

void GeneralMatrix::PlusEqual ( Real  f)
protected

◆ Protect()

void GeneralMatrix::Protect ( )
inline

◆ Release() [1/2]

void GeneralMatrix::Release ( )
inline

◆ Release() [2/2]

void GeneralMatrix::Release ( int  t)
inline

Definition at line 441 of file newmat.h.

441 { tag=t; } // del store after t accesses
TransposedMatrix t() const
Definition: newmat6.cpp:316

◆ ReleaseAndDelete()

void GeneralMatrix::ReleaseAndDelete ( )
inline

◆ ReSize() [1/2]

void GeneralMatrix::ReSize ( int  nr,
int  nc,
int  s 
)
protected

Definition at line 216 of file newmat4.cpp.

References MatrixErrorNoSpace(), MONITOR_REAL_DELETE, MONITOR_REAL_NEW, ncols, nrows, REPORT, storage, store, and tag.

Referenced by Matrix::ReSize(), SquareMatrix::ReSize(), SymmetricMatrix::ReSize(), UpperTriangularMatrix::ReSize(), LowerTriangularMatrix::ReSize(), DiagonalMatrix::ReSize(), RowVector::ReSize(), ColumnVector::ReSize(), BandMatrix::ReSize(), SymmetricBandMatrix::ReSize(), IdentityMatrix::ReSize(), ReSizeForAdd(), and ReSizeForSP().

217 {
218  REPORT
219  if (store)
220  {
221  MONITOR_REAL_DELETE("Free (ReDimensi)",storage,store)
222  delete [] store;
223  }
224  storage=s; nrows=nr; ncols=nc; tag=-1;
225  if (s)
226  {
228  MONITOR_REAL_NEW("Make (ReDimensi)",storage,store)
229  }
230  else store = 0;
231 }
double Real
Definition: include.h:57
void MatrixErrorNoSpace(const void *)
Definition: newmatex.cpp:292
#define REPORT
Definition: newmat4.cpp:19
#define MONITOR_REAL_DELETE(Operation, Size, Pointer)
Definition: myexcept.h:319
#define MONITOR_REAL_NEW(Operation, Size, Pointer)
Definition: myexcept.h:317
Real * store
Definition: newmat.h:393
int storage
Definition: newmat.h:392

◆ ReSize() [2/2]

void GeneralMatrix::ReSize ( const GeneralMatrix A)
virtual

Reimplemented in IdentityMatrix, SymmetricBandMatrix, LowerBandMatrix, UpperBandMatrix, BandMatrix, ColumnVector, RowVector, DiagonalMatrix, LowerTriangularMatrix, UpperTriangularMatrix, SymmetricMatrix, nricMatrix, SquareMatrix, and Matrix.

Definition at line 367 of file newmat4.cpp.

References REPORT.

368 {
369  REPORT
370  Tracer tr("GeneralMatrix::ReSize(GM)");
371  Throw(NotDefinedException("ReSize", "this type of matrix"));
372 }
#define REPORT
Definition: newmat4.cpp:19

◆ ReSizeForAdd()

void GeneralMatrix::ReSizeForAdd ( const GeneralMatrix A,
const GeneralMatrix B 
)
virtual

Reimplemented in SymmetricBandMatrix, and BandMatrix.

Definition at line 374 of file newmat4.cpp.

References A, REPORT, and ReSize().

375 { REPORT ReSize(A); }
#define A(r, c)
#define REPORT
Definition: newmat4.cpp:19
void ReSize(int, int, int)
Definition: newmat4.cpp:216

◆ ReSizeForSP()

void GeneralMatrix::ReSizeForSP ( const GeneralMatrix A,
const GeneralMatrix B 
)
virtual

Reimplemented in SymmetricBandMatrix, and BandMatrix.

Definition at line 377 of file newmat4.cpp.

References A, REPORT, and ReSize().

378 { REPORT ReSize(A); }
#define A(r, c)
#define REPORT
Definition: newmat4.cpp:19
void ReSize(int, int, int)
Definition: newmat4.cpp:216

◆ RestoreCol() [1/2]

virtual void GeneralMatrix::RestoreCol ( MatrixRowCol )
inlinevirtual

Reimplemented in SymmetricBandMatrix, BandMatrix, RowVector, LowerTriangularMatrix, UpperTriangularMatrix, SymmetricMatrix, and Matrix.

Definition at line 464 of file newmat.h.

464 {} // Restore matrix col

◆ RestoreCol() [2/2]

virtual void GeneralMatrix::RestoreCol ( MatrixColX )
inlinevirtual

Reimplemented in SymmetricBandMatrix, BandMatrix, RowVector, LowerTriangularMatrix, UpperTriangularMatrix, SymmetricMatrix, and Matrix.

Definition at line 465 of file newmat.h.

465 {} // Restore matrix col

◆ RestoreRow()

virtual void GeneralMatrix::RestoreRow ( MatrixRowCol )
inlinevirtual

Definition at line 460 of file newmat.h.

460 {} // Restore matrix row

◆ reuse()

bool GeneralMatrix::reuse ( )

Definition at line 568 of file newmat4.cpp.

References MatrixErrorNoSpace(), MONITOR_REAL_NEW, REPORT, storage, and tag.

Referenced by AddedMatrix::Evaluate(), SPMatrix::Evaluate(), and SubtractedMatrix::Evaluate().

569 {
570  if (tag < -1) // borrowed storage
571  {
572  if (storage)
573  {
574  REPORT
575  Real* s = new Real [storage]; MatrixErrorNoSpace(s);
576  MONITOR_REAL_NEW("Make (reuse)",storage,s)
577  BlockCopy(storage, store, s); store = s;
578  }
579  else { REPORT MiniCleanUp(); } // CleanUp
580  tag = 0; return true;
581  }
582  if (tag < 0 ) { REPORT return false; }
583  if (tag <= 1 ) { REPORT return true; }
584  REPORT tag--; return false;
585 }
double Real
Definition: include.h:57
virtual void MiniCleanUp()
Definition: newmat.h:421
void MatrixErrorNoSpace(const void *)
Definition: newmatex.cpp:292
#define REPORT
Definition: newmat4.cpp:19
Real * store
Definition: newmat.h:393
#define MONITOR_REAL_NEW(Operation, Size, Pointer)
Definition: myexcept.h:317
int storage
Definition: newmat.h:392

◆ ReverseElements() [1/2]

void GeneralMatrix::ReverseElements ( )
protected

Definition at line 472 of file newmat5.cpp.

References n, REPORT, and x.

Referenced by ReversedMatrix::Evaluate().

473 {
474  // reversing in place
475  REPORT
476  int n = Storage(); Real* x = Store(); Real* rx = x + n;
477  n /= 2;
478  while (n--) { Real t = *(--rx); *rx = *x; *(x++) = t; }
479 }
ossim_uint32 x
double Real
Definition: include.h:57
#define REPORT
Definition: newmat5.cpp:20
os2<< "> n<< " > nendobj n
int Storage() const
Definition: newmat.h:432
Real * Store() const
Definition: newmat.h:433
TransposedMatrix t() const
Definition: newmat6.cpp:316

◆ ReverseElements() [2/2]

void GeneralMatrix::ReverseElements ( GeneralMatrix gm)
protected

Definition at line 464 of file newmat5.cpp.

References n, REPORT, Store(), and x.

465 {
466  // reversing into a new matrix
467  REPORT
468  int n = Storage(); Real* rx = Store() + n; Real* x = gm->Store();
469  while (n--) *(--rx) = *(x++);
470 }
ossim_uint32 x
double Real
Definition: include.h:57
#define REPORT
Definition: newmat5.cpp:20
os2<< "> n<< " > nendobj n
int Storage() const
Definition: newmat.h:432
Real * Store() const
Definition: newmat.h:433

◆ SameStorageType()

bool GeneralMatrix::SameStorageType ( const GeneralMatrix A) const
virtual

Reimplemented in SymmetricBandMatrix, and BandMatrix.

Definition at line 386 of file newmat4.cpp.

References A, REPORT, and Type().

387 {
388  REPORT
389  return Type() == A.Type();
390 }
#define A(r, c)
#define REPORT
Definition: newmat4.cpp:19
virtual MatrixType Type() const =0

◆ search()

int GeneralMatrix::search ( const BaseMatrix s) const
protectedvirtual

Implements BaseMatrix.

Definition at line 395 of file newmat4.cpp.

References REPORT.

Referenced by GenericMatrix::search().

396 { REPORT return (s==this) ? 1 : 0; }
#define REPORT
Definition: newmat4.cpp:19

◆ SetParameters()

virtual void GeneralMatrix::SetParameters ( const GeneralMatrix )
inlinevirtual

Reimplemented in SymmetricBandMatrix, and BandMatrix.

Definition at line 487 of file newmat.h.

Referenced by GetMatrix().

487 {}

◆ SimpleAddOK()

virtual short GeneralMatrix::SimpleAddOK ( const GeneralMatrix )
inlineprotectedvirtual

Reimplemented in SymmetricBandMatrix, and BandMatrix.

Definition at line 419 of file newmat.h.

Referenced by AddedMatrix::Evaluate(), SPMatrix::Evaluate(), and SubtractedMatrix::Evaluate().

419 { return 0; }

◆ Solver()

virtual void GeneralMatrix::Solver ( MatrixColX ,
const MatrixColX  
)
inlinevirtual

◆ Storage()

int GeneralMatrix::Storage ( ) const
inline

Definition at line 432 of file newmat.h.

Referenced by SortAscending(), and SortDescending().

432 { return storage; }
int storage
Definition: newmat.h:392

◆ Store()

Real* GeneralMatrix::Store ( ) const
inline

◆ Sum()

Real GeneralMatrix::Sum ( ) const
virtual

Reimplemented from BaseMatrix.

Reimplemented in IdentityMatrix, SymmetricBandMatrix, BandMatrix, and SymmetricMatrix.

Definition at line 168 of file newmat8.cpp.

References REPORT.

Referenced by BandMatrix::Sum().

169 {
170  REPORT
171  Real sum = 0.0; int i = storage; Real* s = store;
172  while (i--) sum += *s++;
173  ((GeneralMatrix&)*this).tDelete(); return sum;
174 }
double Real
Definition: include.h:57
InvertedMatrix i() const
Definition: newmat6.cpp:325
#define REPORT
Definition: newmat8.cpp:21
Real * store
Definition: newmat.h:393
int storage
Definition: newmat.h:392

◆ SumAbsoluteValue()

Real GeneralMatrix::SumAbsoluteValue ( ) const
virtual

Reimplemented from BaseMatrix.

Reimplemented in IdentityMatrix, SymmetricBandMatrix, BandMatrix, and SymmetricMatrix.

Definition at line 160 of file newmat8.cpp.

References REPORT.

Referenced by BandMatrix::SumAbsoluteValue().

161 {
162  REPORT
163  Real sum = 0.0; int i = storage; Real* s = store;
164  while (i--) sum += fabs(*s++);
165  ((GeneralMatrix&)*this).tDelete(); return sum;
166 }
double Real
Definition: include.h:57
InvertedMatrix i() const
Definition: newmat6.cpp:325
#define REPORT
Definition: newmat8.cpp:21
Real * store
Definition: newmat.h:393
int storage
Definition: newmat.h:392

◆ SumSquare()

Real GeneralMatrix::SumSquare ( ) const
virtual

Reimplemented from BaseMatrix.

Reimplemented in IdentityMatrix, SymmetricBandMatrix, BandMatrix, and SymmetricMatrix.

Definition at line 152 of file newmat8.cpp.

References REPORT, and square().

Referenced by DowndateCholesky(), and BandMatrix::SumSquare().

153 {
154  REPORT
155  Real sum = 0.0; int i = storage; Real* s = store;
156  while (i--) sum += square(*s++);
157  ((GeneralMatrix&)*this).tDelete(); return sum;
158 }
double Real
Definition: include.h:57
InvertedMatrix i() const
Definition: newmat6.cpp:325
Real square(Real x)
Definition: newmat8.cpp:150
#define REPORT
Definition: newmat8.cpp:21
Real * store
Definition: newmat.h:393
int storage
Definition: newmat.h:392

◆ Tag()

int GeneralMatrix::Tag ( ) const
inline

Definition at line 438 of file newmat.h.

438 { return tag; }

◆ tDelete()

void GeneralMatrix::tDelete ( )

Definition at line 535 of file newmat4.cpp.

References MiniCleanUp(), MONITOR_REAL_DELETE, REPORT, storage, store, and tag.

Referenced by BorrowStore(), AddedMatrix::Evaluate(), SPMatrix::Evaluate(), ConcatenatedMatrix::Evaluate(), StackedMatrix::Evaluate(), SubtractedMatrix::Evaluate(), ReversedMatrix::Evaluate(), GetSubMatrix::operator+=(), GetSubMatrix::operator-=(), operator<<(), GetSubMatrix::operator<<(), and GetSubMatrix::operator=().

536 {
537  if (tag<0)
538  {
539  if (tag<-1) { REPORT store = 0; delete this; return; } // borrowed
540  else { REPORT return; } // not a temporary matrix - leave alone
541  }
542  if (tag==1)
543  {
544  if (store)
545  {
546  REPORT MONITOR_REAL_DELETE("Free (tDelete)",storage,store)
547  delete [] store;
548  }
549  MiniCleanUp(); return; // CleanUp
550  }
551  if (tag==0) { REPORT delete this; return; }
552 
553  REPORT tag--; return;
554 }
virtual void MiniCleanUp()
Definition: newmat.h:421
#define REPORT
Definition: newmat4.cpp:19
#define MONITOR_REAL_DELETE(Operation, Size, Pointer)
Definition: myexcept.h:319
Real * store
Definition: newmat.h:393
int storage
Definition: newmat.h:392

◆ Transpose()

GeneralMatrix * GeneralMatrix::Transpose ( TransposedMatrix tm,
MatrixType  mt 
)
protectedvirtual

Reimplemented in IdentityMatrix, SymmetricBandMatrix, ColumnVector, RowVector, DiagonalMatrix, and SymmetricMatrix.

Definition at line 27 of file newmat5.cpp.

References Compare(), MatrixRowCol::Copy(), MatrixRowCol::Data(), DirectPart, LoadOnEntry, MatrixType::New(), MatrixRow::Next(), MatrixCol::Next(), ReleaseAndDelete(), REPORT, and StoreOnExit.

Referenced by TransposedMatrix::Evaluate().

28 {
29  GeneralMatrix* gm1;
30 
31  if (Compare(Type().t(),mt))
32  {
33  REPORT
34  gm1 = mt.New(ncols,nrows,tm);
35  for (int i=0; i<ncols; i++)
36  {
38  MatrixCol mc(this, mr.Data(), LoadOnEntry, i);
39  }
40  }
41  else
42  {
43  REPORT
44  gm1 = mt.New(ncols,nrows,tm);
45  MatrixRow mr(this, LoadOnEntry);
47  int i = nrows;
48  while (i--) { mc.Copy(mr); mr.Next(); mc.Next(); }
49  }
50  tDelete(); gm1->ReleaseAndDelete(); return gm1;
51 }
void tDelete()
Definition: newmat4.cpp:535
InvertedMatrix i() const
Definition: newmat6.cpp:325
GeneralMatrix * New() const
bool Compare(const MatrixType &source, MatrixType &destination)
Definition: newmat4.cpp:729
#define REPORT
Definition: newmat5.cpp:20
virtual MatrixType Type() const =0
TransposedMatrix t() const
Definition: newmat6.cpp:316

◆ Type()

virtual MatrixType GeneralMatrix::Type ( ) const
pure virtual

Friends And Related Function Documentation

◆ AddedMatrix

friend class AddedMatrix
friend

Definition at line 515 of file newmat.h.

◆ BandMatrix

friend class BandMatrix
friend

Definition at line 510 of file newmat.h.

◆ BaseMatrix

friend class BaseMatrix
friend

Definition at line 514 of file newmat.h.

◆ ColedMatrix

friend class ColedMatrix
friend

Definition at line 531 of file newmat.h.

◆ ColumnVector

friend class ColumnVector
friend

Definition at line 509 of file newmat.h.

◆ ConcatenatedMatrix

friend class ConcatenatedMatrix
friend

Definition at line 520 of file newmat.h.

◆ CroutMatrix

friend class CroutMatrix
friend

Definition at line 507 of file newmat.h.

◆ DiagedMatrix

friend class DiagedMatrix
friend

Definition at line 532 of file newmat.h.

◆ DiagonalMatrix

friend class DiagonalMatrix
friend

Definition at line 506 of file newmat.h.

◆ GenericMatrix

friend class GenericMatrix
friend

Definition at line 537 of file newmat.h.

◆ GetSubMatrix

friend class GetSubMatrix
friend

Definition at line 534 of file newmat.h.

◆ InvertedMatrix

friend class InvertedMatrix
friend

Definition at line 529 of file newmat.h.

◆ KPMatrix

friend class KPMatrix
friend

Definition at line 519 of file newmat.h.

◆ LinearEquationSolver

friend class LinearEquationSolver
friend

Definition at line 536 of file newmat.h.

◆ LowerBandMatrix

friend class LowerBandMatrix
friend

Definition at line 511 of file newmat.h.

◆ LowerTriangularMatrix

friend class LowerTriangularMatrix
friend

Definition at line 505 of file newmat.h.

◆ MatedMatrix

friend class MatedMatrix
friend

Definition at line 533 of file newmat.h.

◆ Matrix

friend class Matrix
friend

Definition at line 500 of file newmat.h.

◆ MultipliedMatrix

friend class MultipliedMatrix
friend

Definition at line 516 of file newmat.h.

◆ NegatedMatrix

friend class NegatedMatrix
friend

Definition at line 528 of file newmat.h.

◆ NegShiftedMatrix

friend class NegShiftedMatrix
friend

Definition at line 524 of file newmat.h.

◆ nricMatrix

friend class nricMatrix
friend

Definition at line 502 of file newmat.h.

◆ ReturnMatrix

friend class ReturnMatrix
friend

Definition at line 535 of file newmat.h.

Referenced by ForReturn().

◆ ReversedMatrix

friend class ReversedMatrix
friend

Definition at line 527 of file newmat.h.

◆ RowedMatrix

friend class RowedMatrix
friend

Definition at line 530 of file newmat.h.

◆ RowVector

friend class RowVector
friend

Definition at line 508 of file newmat.h.

◆ ScaledMatrix

friend class ScaledMatrix
friend

Definition at line 525 of file newmat.h.

◆ ShiftedMatrix

friend class ShiftedMatrix
friend

Definition at line 523 of file newmat.h.

◆ SolvedMatrix

friend class SolvedMatrix
friend

Definition at line 522 of file newmat.h.

◆ SPMatrix

friend class SPMatrix
friend

Definition at line 518 of file newmat.h.

◆ SquareMatrix

friend class SquareMatrix
friend

Definition at line 501 of file newmat.h.

◆ StackedMatrix

friend class StackedMatrix
friend

Definition at line 521 of file newmat.h.

◆ SubtractedMatrix

friend class SubtractedMatrix
friend

Definition at line 517 of file newmat.h.

◆ SymmetricBandMatrix

friend class SymmetricBandMatrix
friend

Definition at line 513 of file newmat.h.

◆ SymmetricMatrix

friend class SymmetricMatrix
friend

Definition at line 503 of file newmat.h.

◆ TransposedMatrix

friend class TransposedMatrix
friend

Definition at line 526 of file newmat.h.

◆ UpperBandMatrix

friend class UpperBandMatrix
friend

Definition at line 512 of file newmat.h.

◆ UpperTriangularMatrix

friend class UpperTriangularMatrix
friend

Definition at line 504 of file newmat.h.

Member Data Documentation

◆ ncols

int GeneralMatrix::ncols
protected

◆ nrows

int GeneralMatrix::nrows
protected

◆ storage

int GeneralMatrix::storage
protected

◆ store

Real* GeneralMatrix::store
protected

◆ tag

int GeneralMatrix::tag
protected

Definition at line 390 of file newmat.h.

Referenced by BorrowStore(), CleanUp(), GetMatrix(), ReSize(), reuse(), and tDelete().


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