TMtxSmallInt.MulAndAdd Method

Overload List

#SignatureDescription
1function MulAndAdd(const X: TMtxVecInt; const Y: TMtxVecInt; const Z: TMtxVecInt): TMtxVecInt;self = X*Y + Z
└ indexed: function MulAndAdd(const X: TMtxVecInt; XIndex: Integer; const Y: TMtxVecInt; YIndex: Integer; const Z: TMtxVecInt; zIndex: Integer; Index: Integer; Len: Integer): TMtxVecInt;
2function MulAndAdd(const X: TMtxVecInt; const Y: TMtxVecInt; const Z: TMtxVecInt; zScale: Integer): TMtxVecInt;self = X*Y + Z*zScale
└ indexed: function MulAndAdd(const X: TMtxVecInt; XIndex: Integer; const Y: TMtxVecInt; YIndex: Integer; const Z: TMtxVecInt; zIndex: Integer; zScale: Integer; Index: Integer; Len: Integer): TMtxVecInt;
3function MulAndAdd(const X: TMtxVecInt; const Y: TMtxVecInt; Z: Integer): TMtxVecInt;self = X*Y + zScalar
└ indexed: function MulAndAdd(const X: TMtxVecInt; XIndex: Integer; const Y: TMtxVecInt; YIndex: Integer; Z: Integer; Index: Integer; Len: Integer): TMtxVecInt;
4function MulAndAdd(const X: TMtxVecInt; const Y: TMtxVecInt; xyScale: Integer; const Z: TMtxVecInt): TMtxVecInt;self = X*Y*xyScale + Z
└ indexed: function MulAndAdd(const X: TMtxVecInt; XIndex: Integer; const Y: TMtxVecInt; YIndex: Integer; xyScale: Integer; const Z: TMtxVecInt; zIndex: Integer; Index: Integer; Len: Integer): TMtxVecInt;
5function MulAndAdd(const X: TMtxVecInt; const Y: TMtxVecInt; xyScale: Integer; const Z: TMtxVecInt; zScale: Integer): TMtxVecInt;self = (X*Y)*xyScale + Z*zScale
6function MulAndAdd(const X: TMtxVecInt; XIndex: Integer; const Y: TMtxVecInt; YIndex: Integer; xyScale: Integer; const Z: TMtxVecInt; zIndex: Integer; zScale: Integer; Index: Integer; Len: Integer): TMtxVecInt;self = (X*Y)*xyScale + Z*zScale
7function MulAndAdd(const X: TMtxVecInt; const Y: TMtxVecInt; xyScale: Integer; Z: Integer): TMtxVecInt;self = (X*Y)*xyScale + zScalar
8function MulAndAdd(const X: TMtxVecInt; XIndex: Integer; const Y: TMtxVecInt; YIndex: Integer; xyScale: Integer; Z: Integer; Index: Integer; Len: Integer): TMtxVecInt;self = (X*Y)*xyScale + zScalar
9function MulAndAdd(const X: TMtxVecInt; Y: Integer; Z: Integer): TMtxVecInt;self = (X*yScalar) + zScalar
10function MulAndAdd(const X: TMtxVecInt; XIndex: Integer; Y: Integer; Z: Integer; Index: Integer; Len: Integer): TMtxVecInt;self = (X*yScalar) + zScalar

Overload 1: function MulAndAdd(const X: TMtxVecInt; const Y: TMtxVecInt; const Z: TMtxVecInt): TMtxVecInt;

Compute X*Y + Z

#NameTypeDescription
1XTMtxVecIntsource TVecInt or TMtxInt
2YTMtxVecIntsource TVecInt or TMtxInt
3ZTMtxVecIntsource TVecInt or TMtxInt

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

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

Compute X*Y + Z on sub array

#NameTypeDescription
1XTMtxVecIntsource TVecInt or TMtxInt
2XIndexIntegerX start index
3YTMtxVecIntsource TVecInt or TMtxInt
4YIndexIntegerY start index
5ZTMtxVecIntsource TVecInt or TMtxInt
6zIndexInteger
7IndexIntegerstart index
8LenIntegerelement count

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

Overload 2: function MulAndAdd(const X: TMtxVecInt; const Y: TMtxVecInt; const Z: TMtxVecInt; zScale: Integer): TMtxVecInt;

Compute X*Y + Z*zScale

#NameTypeDescription
1XTMtxVecIntsource TVecInt or TMtxInt
2YTMtxVecIntsource TVecInt or TMtxInt
3ZTMtxVecIntsource TVecInt or TMtxInt
4zScaleInteger

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

Indexed: function MulAndAdd(const X: TMtxVecInt; XIndex: Integer; const Y: TMtxVecInt; YIndex: Integer; const Z: TMtxVecInt; zIndex: Integer; zScale: Integer; Index: Integer; Len: Integer): TMtxVecInt;

Compute X*Y + Z*zScale on sub array

#NameTypeDescription
1XTMtxVecIntsource TVecInt or TMtxInt
2XIndexIntegerX start index
3YTMtxVecIntsource TVecInt or TMtxInt
4YIndexIntegerY start index
5ZTMtxVecIntsource TVecInt or TMtxInt
6zIndexInteger
7zScaleInteger
8IndexIntegerstart index
9LenIntegerelement count

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

Overload 3: function MulAndAdd(const X: TMtxVecInt; const Y: TMtxVecInt; Z: Integer): TMtxVecInt;

Compute X*Y + zScalar

#NameTypeDescription
1XTMtxVecIntsource TVecInt or TMtxInt
2YTMtxVecIntsource TVecInt or TMtxInt
3ZInteger

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

Indexed: function MulAndAdd(const X: TMtxVecInt; XIndex: Integer; const Y: TMtxVecInt; YIndex: Integer; Z: Integer; Index: Integer; Len: Integer): TMtxVecInt;

Compute X*Y + zScalar on sub array

#NameTypeDescription
1XTMtxVecIntsource TVecInt or TMtxInt
2XIndexIntegerX start index
3YTMtxVecIntsource TVecInt or TMtxInt
4YIndexIntegerY start index
5ZInteger
6IndexIntegerstart index
7LenIntegerelement count

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

Overload 4: function MulAndAdd(const X: TMtxVecInt; const Y: TMtxVecInt; xyScale: Integer; const Z: TMtxVecInt): TMtxVecInt;

Compute X*Y*xyScale + Z

#NameTypeDescription
1XTMtxVecIntsource TVecInt or TMtxInt
2YTMtxVecIntsource TVecInt or TMtxInt
3xyScaleInteger
4ZTMtxVecIntsource TVecInt or TMtxInt

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

Indexed: function MulAndAdd(const X: TMtxVecInt; XIndex: Integer; const Y: TMtxVecInt; YIndex: Integer; xyScale: Integer; const Z: TMtxVecInt; zIndex: Integer; Index: Integer; Len: Integer): TMtxVecInt;

Compute X*Y*xyScale + Z on sub array

#NameTypeDescription
1XTMtxVecIntsource TVecInt or TMtxInt
2XIndexIntegerX start index
3YTMtxVecIntsource TVecInt or TMtxInt
4YIndexIntegerY start index
5xyScaleInteger
6ZTMtxVecIntsource TVecInt or TMtxInt
7zIndexInteger
8IndexIntegerstart index
9LenIntegerelement count

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

Overload 5: function MulAndAdd(const X: TMtxVecInt; const Y: TMtxVecInt; xyScale: Integer; const Z: TMtxVecInt; zScale: Integer): TMtxVecInt;

Compute (X*Y)*xyScale + Z*zScale

#NameTypeDescription
1XTMtxVecIntsource TVecInt or TMtxInt
2YTMtxVecIntsource TVecInt or TMtxInt
3xyScaleInteger
4ZTMtxVecIntsource TVecInt or TMtxInt
5zScaleInteger

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

Remarks:

The following expression would also run at the same or higher speed, when passing X also for the Y parameter:

X^2*xyScale + Z*zScale

Overload 6: function MulAndAdd(const X: TMtxVecInt; XIndex: Integer; const Y: TMtxVecInt; YIndex: Integer; xyScale: Integer; const Z: TMtxVecInt; zIndex: Integer; zScale: Integer; Index: Integer; Len: Integer): TMtxVecInt;

Compute (X*Y)*xyScale + Z*zScale on sub array

#NameTypeDescription
1XTMtxVecIntsource TVecInt or TMtxInt
2XIndexIntegerX start index
3YTMtxVecIntsource TVecInt or TMtxInt
4YIndexIntegerY start index
5xyScaleInteger
6ZTMtxVecIntsource TVecInt or TMtxInt
7zIndexInteger
8zScaleInteger
9IndexIntegerstart index
10LenIntegerelement count

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

Overload 7: function MulAndAdd(const X: TMtxVecInt; const Y: TMtxVecInt; xyScale: Integer; Z: Integer): TMtxVecInt;

Compute (X*Y)*xyScale + zScalar

#NameTypeDescription
1XTMtxVecIntsource TVecInt or TMtxInt
2YTMtxVecIntsource TVecInt or TMtxInt
3xyScaleInteger
4ZInteger

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

Overload 8: function MulAndAdd(const X: TMtxVecInt; XIndex: Integer; const Y: TMtxVecInt; YIndex: Integer; xyScale: Integer; Z: Integer; Index: Integer; Len: Integer): TMtxVecInt;

Compute (X*Y)*xyScale + zScalar on sub array

#NameTypeDescription
1XTMtxVecIntsource TVecInt or TMtxInt
2XIndexIntegerX start index
3YTMtxVecIntsource TVecInt or TMtxInt
4YIndexIntegerY start index
5xyScaleInteger
6ZInteger
7IndexIntegerstart index
8LenIntegerelement count

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

Remarks:

The following expression would also run at the same or higher speed, when passing X also for the Y parameter:

X^2*xyScale + zScale

Overload 9: function MulAndAdd(const X: TMtxVecInt; Y: Integer; Z: Integer): TMtxVecInt;

Compute (X*yScalar) + zScalar

#NameTypeDescription
1XTMtxVecIntsource TVecInt or TMtxInt
2YInteger
3ZInteger

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

Overload 10: function MulAndAdd(const X: TMtxVecInt; XIndex: Integer; Y: Integer; Z: Integer; Index: Integer; Len: Integer): TMtxVecInt;

Compute (X*yScalar) + zScalar

#NameTypeDescription
1XTMtxVecIntsource TVecInt or TMtxInt
2XIndexIntegerX start index
3YInteger
4ZInteger
5IndexIntegerstart index
6LenIntegerelement count

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