TOpenCLVector.NormC Method

Overload List

#SignatureDescription
1function NormC: Double;Calculate the C-norm of calling vector.
└ indexed: function NormC(Index: Integer; Len: Integer): Double;
2function NormC(const Vec: TOpenCLMtxVec; RelativeError: Boolean): Double;The C-norm.
└ indexed: function NormC(const Vec: TOpenCLMtxVec; VecIndex: Integer; Index: Integer; Len: Integer; RelativeError: Boolean): Double;

Overload 1: function NormC: Double;

Calculate the C-norm of calling vector.

Returns: Double - NormC = max|a[i]|, 0 < i < Length-1 .

Indexed: function NormC(Index: Integer; Len: Integer): Double;

Calculates the C norm from calling vector elements [Index]..[Index+Len-1].

#NameTypeDescription
1IndexIntegerstart index
2LenIntegerelement count

Returns: Double

Overload 2: function NormC(const Vec: TOpenCLMtxVec; RelativeError: Boolean): Double;

The C-norm.

#NameTypeDescription
1VecTOpenCLMtxVecsource TOpenCLVector or TOpenCLMatrix
2RelativeErrorBoolean

Returns: Double - C norm: ||V-Vec||, where V is the calling vector.

Remarks:

If the NormC is called without any parameters, the NormC calculates the norm of the calling vector. The C norm of ||V-Vec|| is defined by the formula:

VVecC=maxkV[k]Vec[k]\|\text{V} - \text{Vec}\| _C = \max _k |\text{V}[k]-\text{Vec}[k]|

If RelativeError is true then the computed norm is divided by the norm of V, and the function returns the "relative error":

VVecV\frac{\| \text{V} - \text{Vec}\|}{\|\text{V}\|}
Examples
var a,b: clVector;
c: double;
begin
    a.CopyFromArray(TDoubleArray.Create(1,2,3,4));
    b.CopyFromArray(TDoubleArray.Create(4,3,2,1));
    c := a.NormC(b);
end;

Indexed: function NormC(const Vec: TOpenCLMtxVec; VecIndex: Integer; Index: Integer; Len: Integer; RelativeError: Boolean): Double;

Calculates the C norm ||V-Vec|| between Vec elements [VecIndex]..[VecIndex+Len-1] and calling vector elements [Index]..[Index+Len-1].

#NameTypeDescription
1VecTOpenCLMtxVecsource TOpenCLVector or TOpenCLMatrix
2VecIndexInteger
3IndexIntegerstart index
4LenIntegerelement count
5RelativeErrorBoolean

Returns: Double

Examples
var a,b: clMatrix;
c: double;
begin
    a.Size(2,2, clFloat, false);
    b.Size(2,2, clFloat, false);

    a.CopyFromArray(TDoubleArray.Create(1,2,3,4));
    b.CopyFromArray(TDoubleArray.Create(4,3,2,1));
    c := a.NormC(b);
end;