TMtxByte.MulAndDiv Method

Overload List

#SignatureDescription
1function MulAndDiv(const X: TMtxVecInt; const Y: TMtxVecInt; const Z: TMtxVecInt): TMtxVecInt;self = X * Y / Z
└ indexed: function MulAndDiv(const X: TMtxVecInt; XIndex: Integer; const Y: TMtxVecInt; YIndex: Integer; const Z: TMtxVecInt; zIndex: Integer; Index: Integer; Len: Integer): TMtxVecInt;
2function MulAndDiv(const X: TMtxVecInt; const Y: TMtxVecInt; const Z: Integer): TMtxVecInt;self = X * Y / zScalar
└ indexed: function MulAndDiv(const X: TMtxVecInt; XIndex: Integer; const Y: TMtxVecInt; YIndex: Integer; const Z: Integer; Index: Integer; Len: Integer): TMtxVecInt;
3function MulAndDiv(const X: TMtxVecInt; const Y: TMtxVecInt; const xyScale: Integer; const Z: TMtxVecInt): TMtxVecInt;self = X * Y * xyScale / Z
└ indexed: function MulAndDiv(const X: TMtxVecInt; XIndex: Integer; const Y: TMtxVecInt; YIndex: Integer; const xyScale: Integer; const Z: TMtxVecInt; zIndex: Integer; Index: Integer; Len: Integer): TMtxVecInt;

Overload 1: function MulAndDiv(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 MulAndDiv(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 MulAndDiv(const X: TMtxVecInt; const Y: TMtxVecInt; const 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 MulAndDiv(const X: TMtxVecInt; XIndex: Integer; const Y: TMtxVecInt; YIndex: Integer; const 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 3: function MulAndDiv(const X: TMtxVecInt; const Y: TMtxVecInt; const 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

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

Indexed: function MulAndDiv(const X: TMtxVecInt; XIndex: Integer; const Y: TMtxVecInt; YIndex: Integer; const 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