Matrix Struct

Header: Dew.Math/MtxExpr.h · Cross-compiler

struct Matrix;

Matrix class for operator overloading in D2006 and later.

Declare Matrix instead of TMtx to take advantage of operator overloading in D2006 and later. Be carefull to declare Matrix only for local variables with short lifetime. Call the Create method for Matrix, if the variable is a global variable or a variable with a longer life. It also makes sense to continue to use TMtx for global vars. If the Create method (constuctor) is not called, the Matrix record obtains TMtx object from object cache (fast create). If the Create mehod is called, the TMtx object is created (slower) for use by Matrix record. Object cache has limited size.

Note
Calling the Create method (constructor) is not mandatory.

Constructors

NameDescription
Matrix (15)Uses Src object as internal storage.

Destructors

NameDescription
~Matrix

Properties

NameTypeDescription
AlfaTCplxAdditional parameter for certain Lapack methods.
AutoMtxTypeboolDefines if matrix type will be checked automatically.
BackErrordoubleThe component-wise backward error.
BalanceTBalanceTypeDefines matrix balancing method.
BetaTCplxAdditional parameter for certain Lapack methods.
BlockEndboolReturns true, if the currrent subrange of the Matrix was also the last subrange in the Matrix.
Capacitylong longSizing the object will not allocate less than Capacity samples.
CapacityStepdoubleSpecifies increment step for the Capacity property.
CaptionDewStringObject caption.
ColsintDefines the number of matrix columns.
ComplexboolDefines if object values are complex.
ComplexValuesDewStringDebugging aid.
ConditionCheckboolEnables/disable inline condition checking.
ConditionNrdoubleStores the condition number reciprocial value after the call to LUSolve.
ConditionNumberTConditionNumberDefines the norm used to compute the condition number.
DataTMtx*
FFTOddLengthboolDefines if FFT transform length is odd.
FFTScrambledboolLeave FFT scrambeled.
FFTStorageFormatTFFTStorageFormatFFT storage format.
FirstdoubleFirst element in object Values array.
FirstcTCplxFirst element in object CValues array.
FloatPrecisionTMtxFloatPrecisionDefines the precision (single, float) and type (real, complex) of the floating point operations.
ForwErrordoubleThe component-wise forward error.
InfointThe info parameter as returned by the last called LAPACK function.
IsDoublebool
IsSubRangeboolSet to true after the SetSubIndex or SetSubRange call.
LastdoubleLast element in object Values array.
LastcTCplxLast complex element in object CValues array.
LeadingColsintDefines the number of leading columns.
LengthintDefines the length of matrix in number of samples.
MtxErrorDewStringThe type of the error condition signaled by LAPACK.
PrecisionTPrecisionDefines the precision used by streaming routines.
QuadraticboolTrue, if matrix is quadratic (rows=cols).
RealValuesDewStringDebugging aid.
RefineSolutionboolEnables/disables the refining of the solution of the system of linear equations.
RoundingTRoundingDefines the rounding used by streaming routines.
RowsintDefines the number of matrix rows.
SubDiagintThe number of subdiagonals in banded matrices.
SubRangeLevelintReturns the current depth of SubRange stack.
SuperDiagintThe number of superdiagonals in banded matrices.
TagintStores an integer value as a part of Matrix object.
TriangleFormTTriangleFormDetermine which part (upper or lower) of the symmetric, hermitian or triangular matrix is set.
TriangleUnitboolDetermine, if the matrix is unit triangular.
ZeroTolerancedoubleThe tolerance used by Matrix::IsEqual.

Methods

NameDescription
__Hold
__LiteralRows (2)
__Retain
Abs (4)Absolute values.
Add (18)Adds Value to object elements.
AddAndMul (50)Compute (X + Y)*Z
AddDiagAdds (main) diagonal matrix to the calling matrix.
AddProduct (2)Add a product of two matrices.
AddScaled (25)Add each of Vec elements to corresponding elements in the calling object.
AddScaledC (8)Compute X + Y*yScale + zScalar
AddScaledSqr (8)Compute sqr(X + Y*yScale)
AddTensorProdCalculates the tensor product of two vectors and adds the result to calling matrix.
Adjung (2)Adjungate matrix.
Adopt (2)Adopts TMtx object.
AdoptSingle
ArcCos (4)The inverse cosine.
ArcCosh (4)Inverse hyperbolic cosine.
ArcCot (4)Inverse cotangens.
ArcCoth (4)Inverse hyperbolic cotangens.
ArcCsc (4)Inverse cosecant.
ArcCsch (4)Inverse hyperbolic cosecant.
ArcSec (4)Inverse secant.
ArcSech (4)Inverse hyperbolic secant.
ArcSin (4)The inverse sine.
ArcSinh (4)Inverse hyperbolic sine.
ArcTan (4)Inverse tangens.
ArcTan2 (2)Inverse tangens of Y/X.
ArcTanh (4)Inverse hyperbolic tangens.
Assign
AssignWithoutCopy
BandedToDenseConvert banded matrix to dense.
BinarySearch (8)Finds a match for X in sorted object values using binary search.
BlockFinishDeinitializes block processing before the final block is processed.
BlockInit (4)Initializes block processing.
BlockNextObtains the next subrange of the data.
CartToPolar (2)Converts elements from cartesian to polar coordinate form.
Cbrt (4)The cube root.
Ceil (4)Rounds towards positive infinity.
CholeskyTest if the matrix is semi positive definite.
ClearSets Matrix size to zero.
ColExchangeExchange matrix columns.
ColPermutePermute the columns of the Src matrix.
ConcatConcatenate an array of matrices to single matrix.
ConcatHorz (2)Concenates an array of matrices horizontally.
ConcatVert (2)Concenates an array of matrices vertically.
CondDisableSaves the current value of ConditionCheck property and sets it to false.
CondEnableSets the ConditionCheck property to whatever it was before the CondDisable was used.
Conj (4)Conjugate.
ConjMul (4)Conjugate and multiply.
Copy (8)Copy object values.
CopyFromArray (14)Copies values from an array.
CopyTo (7)Copy and convert values to TVecInt.
CopyToArray (14)Copy values to an array.
CopyVec (2)Copies values from vector to a matrix.
Cos (4)Cosine.
Cosh (4)Hyperbolic cosine.
Cot (4)Cotangens.
Coth (4)Hyperbolic cotangens.
CplxToReal (2)Split complex calling object in real and imaginary part.
CreateFromCache
Csc (4)Cosecant.
Csch (4)Hyperbolic cosecant.
CumProduct (2)Calculate the cumulative product for all Vec elements.
CumSum (4)Cumulative sum.
CValues
CValues1D
DCTThe forward discrete cosine transform (DCT).
DegToRad (4)Convert degrees to radians (in-place).
DenseToBandedConvert dense matrix to banded.
DetectMtxTypeDetermines type of the matrix.
DeterminantDeterminant of squared matrix.
DeterminantcCalculates the determinant of squared complex matrix.
DiagSets the matrix diagonal to values from the vector.
DifferenceDifference.
DisableSelectPrevents calls to Matrix::Select.
DisableSubrangePrevents calls to Matrix::SetSubRange.
Disown (3)Disowns a pointer to an array from matrix Values1D.
Dispose
DivAndAdd (22)Compute X/Y + Z
DivAndSub (22)Compute X/Y - Z
Divide (14)Compute X / (Y*Z)
DivideBy (8)Divide Value with elements of the calling object and store the result in the calling object.
DivideC (4)Compute X / (Y*zScale)
DotProdScalar product of two real arrays.
DotProdc (2)Scalar product of two complex arrays.
DownSampleDownsamples object values.
Eig (4)Calculates matrix eigenvalues and eigenvectors.
EigGen (3)Computes generalized eigenvalues and eigenvectors of a non-symmetric matrix.
EigSchure (2)Computes eigenvalues and optionally Schure matrix
EigSchureGen (2)Computes generalized eigenvalues and Schur vectors of a non-symmetric matrix.
EigSym (3)Computes eigenvalues of a symmetric (Hermitian) matrix between minimum and maximum.
EigSymGen (6)Computes all the eigenvalues, and optionally, the eigenvectors of a generalized symmetric-definite eigenproblem.
EigSymRange (2)Computes eigenvalues and eigenvectors of a symmetric (Hermitian) matrix between min and max Index.
EnableSelectEnables calls to Matrix::Select.
EnableSubrangeEnables calls to Matrix::SetSubRange.
Equal (2)Compares two matrices.
Equals
Erf (4)Error function of self (in-place).
Erfc (4)Complementary error function of self (in-place).
ErfInv (4)Inverse error function of self (in-place).
Exp (4)Exponent (e^).
Exp10 (4)Exponent base 10 (10^).
Exp2 (4)Exponent base 2 (2^).
Expj (3)A complex exponential e^(j*W).
ExtendToComplex (3)Extends a real object to a complex object.
Eye (2)Constructs an eye matrix.
FFTFast Furier Transformation (FFT) from complex to complex or from real to complex.
FFT1D (2)Forward parallel in-place 1D FFT.
FFT1DFromReal (2)Forward parallel in-place 1D FFT from real to complex.
FFT2D (2)Forward two-dimentional Fast Fourier Transformation from real/complex to complex.
FFT2DFromReal (2)Forward two-dimentional Fast Fourier Transformation for real numbers.
FFTFromRealThe forward Fast Fourier Transformation (FFT) from real to complex.
Filter2D (3)Applies 2D filtering
Find (2)Finds a match for X in object values.
FixAngle (4)Sets angle in [-2Pi,2Pi].
Flip (4)Flips the real and imaginary part of complex numbers.
FlipConj (4)Flips the real and imaginary part of complex numbers and conjugates the complex numbers.
FlipHor (2)Flips the matrix elements horizontally.
FlipVer (2)Flips the matrix elements vertically
Floor (4)Rounds towards negative infinity.
Frac (4)Fractional part of values.
get_CValues
get_CValues1D
get_SCValues
get_SCValues1D
get_SValues
get_SValues1D
get_Values
get_Values1D
GetFFTScrambled
GetHashCode
GetSelect
GetSelect2D
GetSelectIndex
GetSelectIndex2D
GLMSolveSolves a general Gauss-Markov linear model (GLM) problem.
HankelConstructs a Hankel matrix.
IDCTThe inverse discrete cosine transform (DCT).
IFFTThe inverse FFT from complex to complex.
IFFT1D (2)Inverse parallel in-place 1D FFT.
IFFT1DToReal (2)Inverse parallel in-place 1D FFT from complex to real.
IFFT2D (2)Inverse two-dimensional Fast Fourier Transformation from complex to complex.
IFFT2DToReal (2)Inverse two-dimensional Fast Fourier Transformation from complex to real.
IFFTToRealThe inverse FFT from complex to real.
ImagPart (2)Gets the imaginary part of a complex object.
IntPower (2)Power (integer exponent).
Inv (9)Calculate the inverse of calling object elements [Index]..[Index+Len-1] in-place.
InvCbrt (4)The inverse of cube root 1/(v)^1/3.
InvElem (3)The inverse of matrix elements.
InvSqrt (4)The inverse of square root 1/(v)^1/2.
IsEqual (8)Compares two objects and returns True, if they are equal.
KacConstruct the Kac (Clement) matrix.
Kron (2)The Kronecker product between two vectors.
Kurtosis (2)The Kurtosis (fourth central momentum).
LMinQR
Ln (4)Natural logarithm.
LoadFromFileReads the header information and the values array content from the file.
LoadFromStreamReads the header information and the values array content from a stream.
Log10 (4)Log base 10.
Log2 (4)Log base 2.
LogN (4)Log base N.
LowerTriangleConstructs lower triangular matrix.
LQR (2)QR or LQ factorization.
LQRSolve (4)Solve overdetermined or underdetermined system of real linear equations.
LSESolveSolves the linear equality-constrained least squares (LSE).
LUGeneral LU, Cholesky or Bunch-Kaufmann factorization.
LUSolve (5)Solves system of linear equations by using LU factorization.
Mag (4)Magnitude.
Mask (3)Copies those values from MaskVec, at which aMask is different from 0.
MaskNot (3)Copies those values from MaskVecNot, at which aMask is equal to 0.
Max (5)Maximum value.
Maxc (3)Maximum value.
MaxColsCompute maximum of each column.
MaxEvery (4)Vectorised maximum.
MaxMin (4)Maximum and minimum value in a single pass.
MaxMinColsCompute maximum and minimum of each column.
MaxMinRowsCompute maximum and minimum of each row.
MaxRowsCompute maximum of each row.
Mean (3)Mean value.
Meanc (4)Mean value (complex).
MeanColsCalculates the mean value of each of the matrix columns.
MeanRowsCalculates the mean value of each of the matrix rows.
Median (2)Median.
Min (5)Minimum value.
Minc (3)Minimum value (complex).
MinColsCompute minimum of each column.
MinEvery (4)Vectorised minimum.
MinRowsCompute minimum of each row.
MtxFunctionCompute matrix function as a function of matrix.
MtxIntPowerCalculates the matrix to integer power.
MtxPower (2)Calculates the matrix to any power, real or integer.
MtxSqrtCalculates the square root of the matrix.
Mul (16)Multiply object elements with Value.
MulAndAdd (26)Compute X*Y + Z
MulAndDiv (10)Compute X * Y / Z
MulAndSub (26)Compute X*Y - Z
MulDiagLeft (2)Multiply matrix with diagonal matrix from the left.
MulDiagRight (2)Multiply matrix with diagonal matrix from the right.
MulElem (11)Compute X*Y*Z
MulI (4)Multiply elements by imaginary unit.
MulSmall (2)Small matrix multiply. Performs arbitrary small matrix multiplication.
MulSmallInit (2)Initializes small matrix multiply according to lapacks dgemm api standard.
Norm1Calculates the matrix norm-1.
Normalize (12)Normalize data.
NormC (4)The C-norm.
NormFroCalculates the matrix Frobenius norm.
NormInfCalculates the matrix infinity norm.
NormL1 (4)The L1-norm.
NormL2 (4)The L2-norm.
Offset (4)Add/Subtract a value.
ParseParses string content as vector.
PasclConstructs a Pascal matrix.
PCValues1DObtains a pointer to the complex value of the Matrix at Index.
PhaseSpectrum (2)The phase angles (spectrum) of object elements.
PixelDownSampleCreates a reduced size dense matrix for screen display (bitmap) to show the matrix pattern.
PixelResampleAllows to exactly specify the size of the destination matrix with PixelsHeight and PixelsWidth parameters.
PolarToCart (2)Converts the polar magnitude/phase pairs to cartesian pairs.
Power (7)Raises base object elements to any power.
PowerMtxRaises matrix elements to any power.
PowerSpectrum (2)The power spectrum from object complex values.
PowerVecRaises Base object elements to Exponent object elements power.
Product (6)Elements product.
Productc (2)Elements product.
PSCValues1DObtains a pointer to the complex value of the Matrix at Index.
PSValues1DObtains a pointer to the real value of the Matrix at Index.
PValues1DObtains a pointer to the real value of the Matrix at Index.
RadToDeg (4)Convert radians to degrees (in-place).
RandGauss (3)The pseudo random sample generator with Gaussian distribution.
RandomShuffleRandomly shuffles the content of the matrix.
RandUniform (3)The pseudo random sample generator with continuous uniform distribution.
Range (3)Calculate the range from all calling object elements.
ReadHeaderReads the header information from a stream to object.
ReadValuesRead values content from stream to object.
RealPart (2)Gets real part of complex object values.
RealToCplx (2)Constructs a complex object from two real objects.
Rem (4)The Reminder after division X/Y.
Replace (4)Search and replace a value.
ReplaceNAN (2)Replaces all NAN values with Value.
ResetResets object properties to default values.
Resize (2)Resizes the matrix, while preserving the values in already allocated memory.
ResizeAndTransposeResize and transpose.
Reverse (2)Reverse Matrix elements.
RMS (2)Root mean square (RMS).
Rotate (2)A cyclic shift on Matrix elements in range.
Rotate90 (2)Rotates matrix rows 90 degrees clockwise.
Round (5)Elements rounded to the nearest whole number.
RowExchangeExchanges two matrix rows.
RowPermutePermute the rows of the Src matrix.
SaveToFileWrite object header and values to a file.
SaveToMatrixMarketFileSaves matrix data to MatrixMarket ASCII file format.
SaveToStreamWrites the header information and the Values content to a stream.
Scale (4)Multiply object elements with Value.
ScaleCols (2)Scale all matrix columns with values from Src.
ScaleRows (2)Scale all matrix rows with values from Src.
ScatterScatter object elements.
ScatterByIncrScatter object elements.
ScatterByIndexesScatter object elements.
ScatterByMaskScatter object elements.
SCValues
SCValues1D
Sec (4)Secant.
Sech (4)Hyperbolic secant.
Select
SelectAllResets any defined selection.
set_CValues
set_CValues1D
set_SCValues
set_SCValues1D
set_SValues
set_SValues1D
set_Values
set_Values1D
SetCol (2)Copies values from vector to matrix column.
SetDouble (2)Sets object values (double).
SetFFTScrambled
SetFullRangeResets any defined subrange.
SetFullRangeLevelResets any defined subrange and pops the stack.
SetInteger (2)Sets object values (integer).
SetIt (3)Sets object values.
SetRow (2)Copies values from vector to matrix row.
SetSelect
SetSelect2D
SetSelectIndex
SetSelectIndex2D
SetSingle (2)Sets object values (single).
SetSubIndexDefines a subarray.
SetSubRange (4)Defines a sub Matrix/matrix.
SetSubRangeLevel (2)Defines a sub Matrix/matrix and pushes the stack.
SetVal (6)Initialize elements to Value.
SetZero (3)Initializes object elements to zero.
Sgn (4)
SgnMulSignum.
Shift (2)Shift Matrix elements in range.
Sign (4)Changes elements sign.
Sin (4)Sine.
SinCos (2)Sine and cosine.
Sinh (4)Hyperbolic sine.
SinhCosh (2)Hyperbolic sine and cosine.
Size (8)Size the object.
SizeFromArray (2)Sizes the calling matrix to match the size of the array.
SizeToArray (8)Sizes the array.
Skewness (2)Skewness (third central momentum).
SortAscend (2)Sorts the elements in a matrix row(s) in ascending order.
SortDescend (2)Sorts the elements in a matrix row(s) in descending order.
SplitSplits matrix in blocks.
Sqr (4)Square.
SqrAddScaled (8)Compute sqr(X) + sqr(Y)*yScale
Sqrt (4)Square root.
StdDev (6)Standard deviation.
StdDevColsStandard deviation for matrix columns.
StdDevRowsStandard deviation for matrix rows.
StringsToValues (4)Convert strings to double (TCplx) and store them in the Values array.
Sub (18)Compute X - Y - Z
SubAndMul (50)Compute (X - Y)*Z
SubFrom (8)Subtraction from value.
SubScaled (12)Compute X - Y*yScale - Z*zScale
SubScaledC (8)Compute X - Y*yScale - zScalar
Sum (5)Sums Matrix values.
Sumc (2)Sum (complex value).
SumColsThe sum of each of the calling matrix columns.
SumOfSquares (2)Calculate the Sum of squares of the calling Matrix.
SumRowsThe sum of each of the calling matrix rows.
SValues
SValues1D
SVD (2)Singular value decomposition.
SVDGen (2)Computes generalized singular value decomposition.
SVDSolve (2)Calculates the minimum norm solution to a real linear least squares problem.
SylvesterSolves the Sylvester equation.
Tan (4)Tangens.
Tanh (4)Hyperbolic tangens.
TensorProdCalculates the tensor product of two vectors.
TextToValuesConverts text delimited with Delimiter to numbers.
ThreshAbsGT (4)Threshold top and bottom centered around zero.
ThreshAbsLT (4)Threshold top and bottom centered around zero.
ThreshBottom (4)Threshold bottom operation.
ThresholdGT (8)Threshold greater than operation.
ThresholdGT_LT (4)Threshold greater than and less than operation.
ThresholdLT (8)Threshold less than operation.
ThreshTop (4)Threshold top operation.
Toeplitz (2)Constructs a Toeplitz matrix.
ToStringReturns content as a string.
TraceMatrix trace.
Transp (2)Transposes matrix.
Trunc (5)Rounds a real number towards zero.
TruncAndFrac (2)Rounds a real number towards zero and returns the fractional part.
UpperTriangleConstructs upper triangular matrix.
UpSampleInserts zeroes between consecutive array values.
Values
Values1D
ValuesToStrings (4)Converts the content of the matrix Values array to a list of strings.
ValuesToTextConverts data to delimited string using Delimiter and number formatting options.
VanderMondeConstruct VanderMonde matrix.
WriteHeader (2)Writes the header information for the calling Matrix to a stream.
WriteValues (2)Writes object Values content to a stream.
ZScoreTransforms matrix into matrix of standardized data.

Operators

NameDescription
operator DewArray2D<double>Copies data in AValue to T2DDoubleArray and returns result.
operator DewArray2D<TCplx>Copies data in AValue to T2DCxplArray and returns result.
operator DewArray<double>Copies data in AValue to TDoubleArray and returns result.
operator DewArray<float>Copies data in AValue to TSingleArray and returns result.
operator TMtx *
operator!= (10)Returns true, if Left and Right do not have equal Length and Values.
operator() (13)
operator* (9)Multiplies Left with Right and returns result.
operator+ (9)Add coresponding elements in Left and Right.
operator- (12)Subtract coresponding elements in Right from Left.
operator->
operator/ (9)Divide all elements in Left with coresponding elements in Right.
operator< (7)Returns true, if ALeft is less than ARight.
operator<= (7)Returns true, if ALeft is less than or equal to ARight.
operator= (4)
operator== (10)Returns true, if Left and Right are of equal Length and Values.
operator> (7)Returns true, if ALeft is greater than ARight.
operator>= (7)Returns true, if ALeft is greater than or equal to ARight.
operator[]

Fields

NameTypeDescription
FDataTMtx *