TOpenCLVector::Rem Method

Overload List

#SignatureDescription
1TOpenCLBase *Rem(TOpenCLBase *X, TOpenCLBase *Y, int XIndex, int YIndex, int Index, int Len);
2TOpenCLBase *Rem(TOpenCLBase *X, const double Y, int XIndex, int Index, int Len);
3TOpenCLMtxVec *Rem(TOpenCLMtxVec *X, TOpenCLMtxVec *Y);The Reminder after division X/Y.
4TOpenCLMtxVec *Rem(TOpenCLMtxVec *X, TOpenCLMtxVec *Y, int XIndex, int YIndex, int Index, int Len);Calculates reminder after division X/Y.
5TOpenCLMtxVec *Rem(TOpenCLMtxVec *X, const double Y);Calculates reminder after division X/Y.
6TOpenCLMtxVec *Rem(TOpenCLMtxVec *X, const double Y, int XIndex, int Index, int Len);Calculates reminder after division X/Y.

Overload 1: TOpenCLBase *Rem(TOpenCLBase *X, TOpenCLBase *Y, int XIndex, int YIndex, int Index, int Len);

#NameTypeDescription
1XTOpenCLBase *
2YTOpenCLBase *
3XIndexint
4YIndexint
5Indexint
6Lenint
Declared in Dew::Math::TOpenCLBase · Dew.Math/clMtxVec.h · Cross-compiler

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

#NameTypeDescription
1XTOpenCLBase *
2Yconst double
3XIndexint
4Indexint
5Lenint
Declared in Dew::Math::TOpenCLBase · Dew.Math/clMtxVec.h · Cross-compiler

Overload 3: TOpenCLMtxVec *Rem(TOpenCLMtxVec *X, TOpenCLMtxVec *Y);

The Reminder after division X/Y.

#NameTypeDescription
1XTOpenCLMtxVec *
2YTOpenCLMtxVec *
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 vector. X and Y must be a real and have the same length. Size and TOpenCLBase::Complex properties of the calling vector are set implicitly to match the X object.

Examples
#include "Math387.h"
#include "clMtxVec.h"
#include "Units.clMtxVec.h"

using namespace Dew;
using namespace Dew::Math;
using namespace Dew::Math::Units::ClMtxVec;

void Example()
{
    TOpenCLVector *a, *b, *c;
    CreateIt(a, b, c);
    a->CopyFromArray( DewArray<double>{0,1,10,-1,-10}); // a = [0, 1, 10,    -1, -10];
    b->CopyFromArray(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]
    FreeIt(a,b,c);
}
Declared in Dew::Math::TOpenCLMtxVec · Dew.Math/clMtxVec.h · Cross-compiler

Overload 4: TOpenCLMtxVec *Rem(TOpenCLMtxVec *X, TOpenCLMtxVec *Y, int XIndex, int YIndex, int Index, int Len);

Calculates reminder after division X/Y.

#NameTypeDescription
1XTOpenCLMtxVec *
2YTOpenCLMtxVec *
3XIndexint
4YIndexint
5Indexint
6Lenint
Remarks:

Calculation uses the following 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]. The results will be saved to the calling vector. X must be a real. An exception will be raised if array borders are overrun.

Declared in Dew::Math::TOpenCLMtxVec · Dew.Math/clMtxVec.h · Cross-compiler

Overload 5: TOpenCLMtxVec *Rem(TOpenCLMtxVec *X, const double Y);

Calculates reminder after division X/Y.

#NameTypeDescription
1XTOpenCLMtxVec *
2Yconst double
Remarks:

Reminder is calculated by using the following formula:

x[i]-y*Trunc(x[i]/y).

X must be a real. The results will be saved to the calling vector. Size and TOpenCLBase::Complex properties of the calling vector are set implicitly to match the X object.

Declared in Dew::Math::TOpenCLMtxVec · Dew.Math/clMtxVec.h · Cross-compiler

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

Calculates reminder after division X/Y.

#NameTypeDescription
1XTOpenCLMtxVec *
2Yconst double
3XIndexint
4Indexint
5Lenint
Remarks:

Reminder is calculated by using the following formula:

x[i]-y*Trunc(x[i]/y).

X must be a real. The results will be saved to the calling vector. An exception will be raised if array borders are overrun.

Declared in Dew::Math::TOpenCLMtxVec · Dew.Math/clMtxVec.h · Cross-compiler