Audacity 3.2.0
Matrix Class Reference

Holds a matrix of doubles and supports arithmetic, subsetting, and matrix inversion. Used by InterpolateAudio. More...

#include <Matrix.h>

Collaboration diagram for Matrix:
[legend]

## Public Member Functions

Matrix (const Matrix &copyFrom)

Matrix (unsigned rows, unsigned cols, double **data=NULL)

~Matrix ()

Matrixoperator= (const Matrix &other)

Vectoroperator[] (unsigned i)

Vectoroperator[] (unsigned i) const

unsigned Rows () const

unsigned Cols () const

void SwapRows (unsigned i, unsigned j)

## Private Member Functions

void CopyFrom (const Matrix &other)

## Private Attributes

unsigned mRows

unsigned mCols

ArrayOf< VectormRowVec

## Detailed Description

Holds a matrix of doubles and supports arithmetic, subsetting, and matrix inversion. Used by InterpolateAudio.

Definition at line 57 of file Matrix.h.

## ◆ Matrix() [1/2]

 Matrix::Matrix ( const Matrix & copyFrom )

Definition at line 102 of file Matrix.cpp.

103{
104 CopyFrom(other);
105}
void CopyFrom(const Matrix &other)
Definition: Matrix.cpp:107

References CopyFrom().

Here is the call graph for this function:

## ◆ Matrix() [2/2]

 Matrix::Matrix ( unsigned rows, unsigned cols, double ** data = NULL )

Definition at line 80 of file Matrix.cpp.

81 : mRows{ rows }
82 , mCols{ cols }
83 , mRowVec{ mRows }
84{
85 for(unsigned i = 0; i < mRows; i++) {
86 mRowVec[i].Reinit( mCols );
87 for(unsigned j = 0; j < mCols; j++) {
88 if (data)
89 (*this)[i][j] = data[i][j];
90 else
91 (*this)[i][j] = 0.0;
92 }
93 }
94}
ArrayOf< Vector > mRowVec
Definition: Matrix.h:78
unsigned mRows
Definition: Matrix.h:76
unsigned mCols
Definition: Matrix.h:77

References mCols, mRows, and mRowVec.

## ◆ ~Matrix()

 Matrix::~Matrix ( )

Definition at line 118 of file Matrix.cpp.

119{
120}

## ◆ Cols()

 unsigned Matrix::Cols ( ) const
inline

Definition at line 69 of file Matrix.h.

69{ return mCols; }

References mCols.

Here is the caller graph for this function:

## ◆ CopyFrom()

 void Matrix::CopyFrom ( const Matrix & other )
private

Definition at line 107 of file Matrix.cpp.

108{
109 mRows = other.mRows;
110 mCols = other.mCols;
112 for (unsigned i = 0; i < mRows; i++) {
113 mRowVec[i].Reinit( mCols );
114 mRowVec[i] = other.mRowVec[i];
115 }
116}
void reinit(Integral count, bool initialize=false)
Definition: MemoryX.h:59

References mCols, mRows, mRowVec, and ArrayOf< X >::reinit().

Referenced by Matrix(), and operator=().

Here is the call graph for this function:
Here is the caller graph for this function:

## ◆ operator=()

 Matrix & Matrix::operator= ( const Matrix & other )

Definition at line 96 of file Matrix.cpp.

97{
98 CopyFrom(other);
99 return *this;
100}

References CopyFrom().

Here is the call graph for this function:

## ◆ operator[]() [1/2]

 Vector & Matrix::operator[] ( unsigned i )
inline

Definition at line 66 of file Matrix.h.

66{ return mRowVec[i]; }

References mRowVec.

## ◆ operator[]() [2/2]

 Vector & Matrix::operator[] ( unsigned i ) const
inline

Definition at line 67 of file Matrix.h.

67{ return mRowVec[i]; }

References mRowVec.

## ◆ Rows()

 unsigned Matrix::Rows ( ) const
inline

Definition at line 68 of file Matrix.h.

68{ return mRows; }

References mRows.

Here is the caller graph for this function:

## ◆ SwapRows()

 void Matrix::SwapRows ( unsigned i, unsigned j )

Definition at line 122 of file Matrix.cpp.

123{
124 mRowVec[i].Swap(mRowVec[j]);
125}

References mRowVec.

Referenced by InvertMatrix().

Here is the caller graph for this function:

## ◆ mCols

 unsigned Matrix::mCols
private

Definition at line 77 of file Matrix.h.

Referenced by Cols(), CopyFrom(), and Matrix().

## ◆ mRows

 unsigned Matrix::mRows
private

Definition at line 76 of file Matrix.h.

Referenced by CopyFrom(), Matrix(), and Rows().

## ◆ mRowVec

 ArrayOf Matrix::mRowVec
private

Definition at line 78 of file Matrix.h.

Referenced by CopyFrom(), Matrix(), operator[](), and SwapRows().

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