Vector.Add Method

Overload List

#SignatureDescription
1function Add(Value: TCplx): TMtxVec;Adds complex Value to all calling object complex elements.
└ indexed: function Add(Value: TCplx; Index: Integer; Len: Integer): TMtxVec;
2function Add(const Vec: TMtxVec): TMtxVec;Array addition.
└ indexed: function Add(const Vec: TMtxVec; VecIndex: Integer; Index: Integer; Len: Integer): TMtxVec;
3function Add(const Vec: TMtxVec; Value: TCplx): TMtxVec;Adds complex Value to each element of the Vec object.
└ indexed: function Add(const Vec: TMtxVec; Value: TCplx; VecIndex: Integer; Index: Integer; Len: Integer): TMtxVec;
4function Add(const Vec1: TMtxVec; const Vec2: TMtxVec): TMtxVec;Add each of Vec2 elements to corresponding elements in Vec1.
└ indexed: function Add(const Vec1: TMtxVec; const Vec2: TMtxVec; Vec1Index: Integer; Vec2Index: Integer; Index: Integer; Len: Integer): TMtxVec;
5function Add(const X: TMtxVec; const Y: TMtxVec; const Z: TCplx): TMtxVec;self = X + Y + zScalar
└ indexed: function Add(const X: TMtxVec; XIndex: Integer; const Y: TMtxVec; YIndex: Integer; const Z: TCplx; Index: Integer; Len: Integer): TMtxVec;
6function Add(const X: TMtxVec; const Y: TMtxVec; const Z: TMtxVec): TMtxVec;self = X + Y + Z
└ indexed: function Add(const X: TMtxVec; XIndex: Integer; const Y: TMtxVec; YIndex: Integer; const Z: TMtxVec; zIndex: Integer; Index: Integer; Len: Integer): TMtxVec;
7function Add(const X: TMtxVec; const Y: TMtxVec; const Z: Double): TMtxVec;self = X + Y + zScalar
└ indexed: function Add(const X: TMtxVec; XIndex: Integer; const Y: TMtxVec; YIndex: Integer; const Z: Double; Index: Integer; Len: Integer): TMtxVec;
8function Add(const Vec: TMtxVec; Value: Double): TMtxVec;Adds Value to the each element of the Vec object.
└ indexed: function Add(const Vec: TMtxVec; Value: Double; VecIndex: Integer; Index: Integer; Len: Integer): TMtxVec;
9function Add(Value: Double): TMtxVec;Adds Value to object elements.
└ indexed: function Add(Value: Double; Index: Integer; Len: Integer): TMtxVec;

Overload 1: function Add(Value: TCplx): TMtxVec;

Adds complex Value to all calling object complex elements.

#NameTypeDescription
1ValueTCplxscalar

Result: stored in self (calling object), returns self for chaining

Examples
uses MtxVec, MtxExpr, Math387;

var
    X, Y, A1, A2, A3: Vector;
    zScalar: Double;
begin
    zScalar := 3.0;
    X := [1,2,3,4];
    Y := [2,3,4,5];
    A1 := X + Y + zScalar;
    A2 := Add(X, Y, zScalar);
    A3.Add(X, Y, zScalar);
    if not A2.IsEqual(A1) then ERaise('Problem');
    if not A3.IsEqual(A1) then ERaise('Problem');
end;

Indexed: function Add(Value: TCplx; Index: Integer; Len: Integer): TMtxVec;

Adds complex Value to calling object complex elements [Index]..[Index+Len-1].

#NameTypeDescription
1ValueTCplxscalar
2IndexIntegerstart index
3LenIntegerelement count

Result: stored in self (calling object), returns self for chaining

Remarks:

An exception is raised if array borders are overrun.

Overload 2: function Add(const Vec: TMtxVec): TMtxVec;

Array addition.

#NameTypeDescription
1VecTMtxVec

Result: stored in self (calling object), returns self for chaining

Remarks:

Add each of Vec elements to corresponding elements in the calling object.

Examples
var
    a, b, expected: Vector;
begin
    a := [1.0, 2.0, 3.0, 4.0];
    b := [5.0, 6.0, 7.0, 8.0];
    a.Add(b);
    expected := [6.0, 8.0, 10.0, 12.0];
    if not a.IsEqual(expected, 1e-10, TCompare.cmpAbsolute) then
        raise Exception.Create('Vector.Add: mismatch');
end;
See Also: Vector.Sub

Indexed: function Add(const Vec: TMtxVec; VecIndex: Integer; Index: Integer; Len: Integer): TMtxVec;

Add Vec elements [VecIndex]..[VecIndex+Len-1] to calling object elements [Index]..[Index+Len-1].

#NameTypeDescription
1VecTMtxVec
2VecIndexInteger
3IndexIntegerstart index
4LenIntegerelement count

Result: stored in self (calling object), returns self for chaining

Remarks:

An exception is raised if Vector.ConditionCheck is true and array borders are overrun.

Overload 3: function Add(const Vec: TMtxVec; Value: TCplx): TMtxVec;

Adds complex Value to each element of the Vec object.

#NameTypeDescription
1VecTMtxVec
2ValueTCplxscalar

Result: stored in self (calling object), returns self for chaining

Remarks:

Store the result to the calling object. Size property of the calling object is set automatically. Vector.Complex property of the calling object is set to True.

Indexed: function Add(const Vec: TMtxVec; Value: TCplx; VecIndex: Integer; Index: Integer; Len: Integer): TMtxVec;

Adds complex Value to each elements of the Vec object in range [VecIndex]..[VecIndex+Len-1].

#NameTypeDescription
1VecTMtxVec
2ValueTCplxscalar
3VecIndexInteger
4IndexIntegerstart index
5LenIntegerelement count

Result: stored in self (calling object), returns self for chaining

Remarks:

Stores the result to elements [Index]..[Index+Len-1] of the calling object. Size of the calling object is not changed. An exception is raised if array borders are overrun. Vector.Complex property of the calling object is set to True.

Overload 4: function Add(const Vec1: TMtxVec; const Vec2: TMtxVec): TMtxVec;

Add each of Vec2 elements to corresponding elements in Vec1.

#NameTypeDescription
1Vec1TMtxVec
2Vec2TMtxVec

Result: stored in self (calling object), returns self for chaining

Remarks:

The results are stored in the calling object. Size and Vector.Complex properties of the calling object are set implicitly to match Vec1 and Vec2 vectors.

Examples
var
    a, x, y, expected: Vector;
begin
    x := [1.0, 2.0, 3.0, 4.0];
    y := [5.0, 6.0, 7.0, 8.0];
    a.Add(x, y);
    expected := [6.0, 8.0, 10.0, 12.0];
    if not a.IsEqual(expected, 1e-10, TCompare.cmpAbsolute) then
        raise Exception.Create('Vector.Add: mismatch');
end;

Indexed: function Add(const Vec1: TMtxVec; const Vec2: TMtxVec; Vec1Index: Integer; Vec2Index: Integer; Index: Integer; Len: Integer): TMtxVec;

Add Vec1 elements [Vec1Index]..[Vec1Index+Len-1] to Vec2 elements [Vec2Index]..[Vec2Index+Len-1].

#NameTypeDescription
1Vec1TMtxVec
2Vec2TMtxVec
3Vec1IndexInteger
4Vec2IndexInteger
5IndexIntegerstart index
6LenIntegerelement count

Result: stored in self (calling object), returns self for chaining

Remarks:

Store the results in calling object elements [Index]..[Index+Len-1]. An exception is raised if Vector.ConditionCheck is true and array borders are overrun.

Overload 5: function Add(const X: TMtxVec; const Y: TMtxVec; const Z: TCplx): TMtxVec;

Compute X + Y + zScalar

#NameTypeDescription
1XTMtxVec
2YTMtxVec
3ZTCplx

Result: stored in self (calling object), returns self for chaining

Indexed: function Add(const X: TMtxVec; XIndex: Integer; const Y: TMtxVec; YIndex: Integer; const Z: TCplx; Index: Integer; Len: Integer): TMtxVec;

Compute X + Y + zScalar on sub arrays

#NameTypeDescription
1XTMtxVec
2XIndexIntegerX start index
3YTMtxVec
4YIndexIntegerY start index
5ZTCplx
6IndexIntegerstart index
7LenIntegerelement count

Result: stored in self (calling object), returns self for chaining

Overload 6: function Add(const X: TMtxVec; const Y: TMtxVec; const Z: TMtxVec): TMtxVec;

Compute X + Y + Z

#NameTypeDescription
1XTMtxVec
2YTMtxVec
3ZTMtxVec

Result: stored in self (calling object), returns self for chaining

Indexed: function Add(const X: TMtxVec; XIndex: Integer; const Y: TMtxVec; YIndex: Integer; const Z: TMtxVec; zIndex: Integer; Index: Integer; Len: Integer): TMtxVec;

Compute X + Y + Z on sub arrays

#NameTypeDescription
1XTMtxVec
2XIndexIntegerX start index
3YTMtxVec
4YIndexIntegerY start index
5ZTMtxVec
6zIndexInteger
7IndexIntegerstart index
8LenIntegerelement count

Result: stored in self (calling object), returns self for chaining

Overload 7: function Add(const X: TMtxVec; const Y: TMtxVec; const Z: Double): TMtxVec;

Compute X + Y + zScalar

#NameTypeDescription
1XTMtxVec
2YTMtxVec
3ZDouble

Result: stored in self (calling object), returns self for chaining

Indexed: function Add(const X: TMtxVec; XIndex: Integer; const Y: TMtxVec; YIndex: Integer; const Z: Double; Index: Integer; Len: Integer): TMtxVec;

Compute X + Y + zScalar on sub arrays

#NameTypeDescription
1XTMtxVec
2XIndexIntegerX start index
3YTMtxVec
4YIndexIntegerY start index
5ZDouble
6IndexIntegerstart index
7LenIntegerelement count

Result: stored in self (calling object), returns self for chaining

Overload 8: function Add(const Vec: TMtxVec; Value: Double): TMtxVec;

Adds Value to the each element of the Vec object.

#NameTypeDescription
1VecTMtxVec
2ValueDoublescalar

Result: stored in self (calling object), returns self for chaining

Remarks:

Stores the result in the calling object. Size and Vector.Complex properties of the calling object are set automatically.

Indexed: function Add(const Vec: TMtxVec; Value: Double; VecIndex: Integer; Index: Integer; Len: Integer): TMtxVec;

Adds Value to each element of Vec object in range [VecIndex]..[VecIndex+Len-1].

#NameTypeDescription
1VecTMtxVec
2ValueDoublescalar
3VecIndexInteger
4IndexIntegerstart index
5LenIntegerelement count

Result: stored in self (calling object), returns self for chaining

Remarks:

Store the results to elements [Index]..[Index+Len-1] of the calling object. Size of the calling object is not changed. An exception is raised if array borders are overrun. Vector.Complex property of the calling object is set implicitly.

Overload 9: function Add(Value: Double): TMtxVec;

Adds Value to object elements.

#NameTypeDescription
1ValueDoublescalar

Result: stored in self (calling object), returns self for chaining

Examples
uses MtxVec, MtxExpr, Math387;

var
    X, Y, Z, A1, A2, A3: Vector;
begin
    X := [1,2,3,4];
    Y := [2,3,4,5];
    Z := [3,4,5,6];
    A1 := X + Y + Z;
    A2 := Add(X, Y, Z);
    A3.Add(X, Y, Z);
    if not A2.IsEqual(A1) then ERaise('Problem');
    if not A3.IsEqual(A1) then ERaise('Problem');
end;
See Also: Vector.Sub

Indexed: function Add(Value: Double; Index: Integer; Len: Integer): TMtxVec;

Adds Value to calling object elements [Index]..[Index+Len-1].

#NameTypeDescription
1ValueDoublescalar
2IndexIntegerstart index
3LenIntegerelement count

Result: stored in self (calling object), returns self for chaining

Remarks:

An exception is raised if array borders are overrun.