Matrix::Rem Method

Overload List

#SignatureDescription
1TMtxVec *Rem(TMtxVec *X, TMtxVec *Y) const;The Reminder after division X/Y.
2TMtxVec *Rem(TMtxVec *X, TMtxVec *Y, int XIndex, int YIndex, int Index, int Len) const;Calculates reminder after division X/Y according to formula: z[i] = X[xi]-y[yi]*Trunc(X[xi]/y[yi]), where i in [Index..Index+Len], xi in [XIndex..XIndex+Len], yi in [YIndex..YIndex+Len].
3TMtxVec *Rem(TMtxVec *X, double Y) const;Calculates reminder after division X/Y according to formula X[i]-y*Trunc(X[i]/y). X must be a real. The results will be saved to the calling Matrix.
4TMtxVec *Rem(TMtxVec *X, double Y, int XIndex, int Index, int Len) const;Calculates reminder after division X/Y according to formula: z[i] = X[xi]-y*Trunc(X[xi]/y), where i in [Index..Index+Len], xi in [XIndex..XIndex+Len].

Overload 1: TMtxVec *Rem(TMtxVec *X, TMtxVec *Y) const;

The Reminder after division X/Y.

#NameTypeDescription
1XTMtxVec *
2YTMtxVec *
Remarks:

Calculates reminder after division according to formula: X[i]-y[i]*Trunc(X[i]/y[i]). The results will be saved to the calling Matrix. X and Y must be a real and have the same length. Size and Matrix::Complex properties of the calling Matrix are set implicitly to match the X object.

Examples
#include "MtxExpr.h"

using namespace Dew;
using namespace Dew::Math;

void Example()
{
    Matrix a, b, c;

    a.SetIt(1, 5, false, DewArray<double>{0, 1, 10, -1, -10}); // a = [0, 1, 10,    -1, -10];
    b.SetIt(1, 5, false, DewArray<double>{0, 1, PI, -1, -PI}); // b = [0, 1, PI,    -1, -PI];
    c.Rem(a, b);                     // c = [NaN, 0, 0.5752, 0, -0.5752]
}
Declared in Dew::Math::Matrix · Dew.Math/MtxExpr.h · Cross-compiler

Overload 2: TMtxVec *Rem(TMtxVec *X, TMtxVec *Y, int XIndex, int YIndex, int Index, int Len) const;

Calculates reminder after division X/Y according to formula: z[i] = X[xi]-y[yi]*Trunc(X[xi]/y[yi]), where i in [Index..Index+Len], xi in [XIndex..XIndex+Len], yi in [YIndex..YIndex+Len].

#NameTypeDescription
1XTMtxVec *
2YTMtxVec *
3XIndexint
4YIndexint
5Indexint
6Lenint
Remarks:

The results will be saved to the calling Matrix. X must be a real. An exception will be raised if Matrix::ConditionCheck is True and array borders are overrun.

Examples
#include "MtxExpr.h"

using namespace Dew;
using namespace Dew::Math;

void Example()
{
    Matrix a, b, c;

    a = {{0, 1, 10, -1, -10}}; // a = [0, 1, 10,    -1, -10];
    b = {{0, 1, PI, -1, -PI}}; // b = [0, 1, PI,    -1, -PI];
    c.Rem(a, b); // c = [0, 0, 0.5752, 0, -0.5752]
}
Declared in Dew::Math::Matrix · Dew.Math/MtxExpr.h · Cross-compiler

Overload 3: TMtxVec *Rem(TMtxVec *X, double Y) const;

Calculates reminder after division X/Y according to formula X[i]-y*Trunc(X[i]/y). X must be a real. The results will be saved to the calling Matrix.

#NameTypeDescription
1XTMtxVec *
2Ydouble
Remarks:

Size and Matrix::Complex properties of the calling Matrix are set implicitly to match the X object.

Declared in Dew::Math::Matrix · Dew.Math/MtxExpr.h · Cross-compiler

Overload 4: TMtxVec *Rem(TMtxVec *X, double Y, int XIndex, int Index, int Len) const;

Calculates reminder after division X/Y according to formula: z[i] = X[xi]-y*Trunc(X[xi]/y), where i in [Index..Index+Len], xi in [XIndex..XIndex+Len].

#NameTypeDescription
1XTMtxVec *
2Ydouble
3XIndexint
4Indexint
5Lenint
Remarks:

X must be a real. The results will be saved to the calling Matrix. An exception will be raised if Matrix::ConditionCheck is True and array borders are overrun.

Declared in Dew::Math::Matrix · Dew.Math/MtxExpr.h · Cross-compiler