Vector::Sgn Method

Overload List

#SignatureDescription
1TMtxVec *Sgn() const;Computes signum function of calling object elements.
2TMtxVec *Sgn(int Index, int Len) const;Computes signum function of calling object elements [Index..Index+Len-1].
3TMtxVec *Sgn(TMtxVec *Src) const;Computes signum function from Src elements and stores the result in the calling object.
4TMtxVec *Sgn(TMtxVec *Src, int SrcIndex, int Index, int Len) const;Computes signum function from Src elements [SrcIndex..SrcIndex+Len-1] and stores the result in the calling object [Index..Index+Len-1].

Overload 1: TMtxVec *Sgn() const;

Computes signum function of calling object elements.

Remarks:

Signum(X) is 1 for X > 0 , equal to zero for X = 0 and -1 for X < 0.

Examples
#include "Math387.h"
#include "MtxExpr.h"

using namespace Dew;
using namespace Dew::Math;

void Example()
{
    Vector a;
    a.SetIt(DewArray<double>{ -3.0, -1.0, 1.0, 2.0 });
    a.Sgn();
    Vector expected;
    expected.SetIt(DewArray<double>{ -1.0, -1.0, 1.0, 1.0 });
    if (!a.IsEqual(expected, 1e-10, TCompare::cmpAbsolute))
        throw tException("Vector.Sgn: mismatch");
}
Declared in Dew::Math::Vector · Dew.Math/MtxExpr.h · Cross-compiler

Overload 2: TMtxVec *Sgn(int Index, int Len) const;

Computes signum function of calling object elements [Index..Index+Len-1].

#NameTypeDescription
1Indexint
2Lenint
Remarks:

Signum(X) is 1 for X > 0 , equal to zero for X = 0 and -1 for X < 0.

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

Overload 3: TMtxVec *Sgn(TMtxVec *Src) const;

Computes signum function from Src elements and stores the result in the calling object.

#NameTypeDescription
1SrcTMtxVec *
Remarks:

Size and Vector::Complex properties of calling object are adjusted automatically. Signum(X) is 1 for X > 0 , equal to zero for X = 0 and -1 for X < 0.

Examples
#include "Math387.h"
#include "MtxExpr.h"

using namespace Dew;
using namespace Dew::Math;

void Example()
{
    Vector a;
    Vector x;
    x.SetIt(DewArray<double>{ -3.0, -1.0, 1.0, 2.0 });
    a.Sgn(x);
    Vector expected;
    expected.SetIt(DewArray<double>{ -1.0, -1.0, 1.0, 1.0 });
    if (!a.IsEqual(expected, 1e-10, TCompare::cmpAbsolute))
        throw tException("Vector.Sgn: mismatch");
}
Declared in Dew::Math::Vector · Dew.Math/MtxExpr.h · Cross-compiler

Overload 4: TMtxVec *Sgn(TMtxVec *Src, int SrcIndex, int Index, int Len) const;

Computes signum function from Src elements [SrcIndex..SrcIndex+Len-1] and stores the result in the calling object [Index..Index+Len-1].

#NameTypeDescription
1SrcTMtxVec *
2SrcIndexint
3Indexint
4Lenint
Remarks:

Size and Vector::Complex properties of calling object are adjusted automatically. Signum(X) is 1 for X > 0 , equal to zero for X = 0 and -1 for X < 0.

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