Overload List
Overload 1: Matrix SubAndMul(TMtx X, TCplx Y, TCplx Z)
Compute (X - yScalar)*zScalar, where X is a Matrix
Returns: Matrix
Overload 2: Matrix SubAndMul(TMtx X, TCplx xScale, TCplx Y, TCplx Z)
Returns: Matrix
Overload 3: Matrix SubAndMul(TMtx X, TCplx xScale, TCplx Y, TMtxVec Z)
Compute (X*xScale - yScalar)*Z, where X is a Matrix
| # | Name | Type | Description |
|---|---|---|---|
| 1 | X | TMtx | source TMtx |
| 2 | xScale | TCplx | scalar |
| 3 | Y | TCplx | scalar |
| 4 | Z | TMtxVec | source TVec or TMtx |
Returns: Matrix
Overload 4: Matrix SubAndMul(TMtx X, TCplx xScale, TCplx Y, TMtxVec Z, TCplx zScale)
Compute (X*xScale - yScalar)*Z*zScale, where X is a Matrix.
| # | Name | Type | Description |
|---|---|---|---|
| 1 | X | TMtx | source TMtx |
| 2 | xScale | TCplx | scalar |
| 3 | Y | TCplx | scalar |
| 4 | Z | TMtxVec | source TVec or TMtx |
| 5 | zScale | TCplx | scalar |
Returns: Matrix
The operation does only per-element math.
Overload 5: Matrix SubAndMul(TMtx X, TCplx Y, TMtxVec Z)
Compute (X - yScalar)*Z, where X is a Matrix
Returns: Matrix
Overload 6: Matrix SubAndMul(TMtx X, TCplx Y, TMtxVec Z, TCplx zScale)
Compute (X - yScalar)*Z*zScale, where X is a Matrix
| # | Name | Type | Description |
|---|---|---|---|
| 1 | X | TMtx | source TMtx |
| 2 | Y | TCplx | scalar |
| 3 | Z | TMtxVec | source TVec or TMtx |
| 4 | zScale | TCplx | scalar |
Returns: Matrix
Overload 7: Matrix SubAndMul(TMtx X, TCplx xScale, TMtxVec Y, TCplx yScale, TCplx Z)
Compute (X*xScale - Y*yScale)*zScale
| # | Name | Type | Description |
|---|---|---|---|
| 1 | X | TMtx | source TMtx |
| 2 | xScale | TCplx | scalar |
| 3 | Y | TMtxVec | source TVec or TMtx |
| 4 | yScale | TCplx | scalar |
| 5 | Z | TCplx | scalar |
Returns: Matrix
Overload 8: Matrix SubAndMul(TMtx X, TCplx xScale, TMtxVec Y, TCplx yScale, TMtxVec Z, TCplx zScale)
Compute (X*xScale - Y*yScale)*Z*zScale, when X is a Matrix.
| # | Name | Type | Description |
|---|---|---|---|
| 1 | X | TMtx | source TMtx |
| 2 | xScale | TCplx | scalar |
| 3 | Y | TMtxVec | source TVec or TMtx |
| 4 | yScale | TCplx | scalar |
| 5 | Z | TMtxVec | source TVec or TMtx |
| 6 | zScale | TCplx | scalar |
Returns: Matrix
The operation does only per-element math.
Overload 9: Matrix SubAndMul(TMtx X, TMtxVec Y, TCplx Z)
Compute (X - Y)*zScalar, where X is a Matrix
Returns: Matrix
Overload 10: Matrix SubAndMul(TMtx X, TMtxVec Y, TCplx yScale, TCplx Z)
Compute (X - Y*yScale)*zScalar, where X is a Matrix
| # | Name | Type | Description |
|---|---|---|---|
| 1 | X | TMtx | source TMtx |
| 2 | Y | TMtxVec | source TVec or TMtx |
| 3 | yScale | TCplx | scalar |
| 4 | Z | TCplx | scalar |
Returns: Matrix
Overload 11: Matrix SubAndMul(TMtx X, TMtxVec Y, TCplx yScale, TMtxVec Z, TCplx zScale)
Compute (X - Y*yScale)*Z*zScale, where X is a Matrix
| # | Name | Type | Description |
|---|---|---|---|
| 1 | X | TMtx | source TMtx |
| 2 | Y | TMtxVec | source TVec or TMtx |
| 3 | yScale | TCplx | scalar |
| 4 | Z | TMtxVec | source TVec or TMtx |
| 5 | zScale | TCplx | scalar |
Returns: Matrix
Overload 12: Matrix SubAndMul(TMtx X, TMtxVec Y, TMtxVec Z)
Compute (X - Y)*Z, where X is a Matrix
Returns: Matrix
The operation does only per-element math.
Overload 13: Matrix SubAndMul(TMtx X, TMtxVec Y, TMtxVec Z, TCplx zScale)
Compute (X - Y)*Z*zScale, where X is a Matrix
| # | Name | Type | Description |
|---|---|---|---|
| 1 | X | TMtx | source TMtx |
| 2 | Y | TMtxVec | source TVec or TMtx |
| 3 | Z | TMtxVec | source TVec or TMtx |
| 4 | zScale | TCplx | scalar |
Returns: Matrix
Overload 14: Matrix SubAndMul(TMtx X, TMtxVec Y, TMtxVec Z, Double zScale)
Compute (X - Y)*Z*zScale, where X is a Matrix
| # | Name | Type | Description |
|---|---|---|---|
| 1 | X | TMtx | source TMtx |
| 2 | Y | TMtxVec | source TVec or TMtx |
| 3 | Z | TMtxVec | source TVec or TMtx |
| 4 | zScale | Double | scalar |
Returns: Matrix
The operation does only per-element math.
Overload 15: Matrix SubAndMul(TMtx X, TMtxVec Y, Double Z)
Compute (X - Y)*zScalar, where X is a Matrix
Returns: Matrix
Overload 16: Matrix SubAndMul(TMtx X, TMtxVec Y, Double yScale, TMtxVec Z, Double zScale)
Compute (X - Y*yScale)*Z*zScale, where X is a Matrix
| # | Name | Type | Description |
|---|---|---|---|
| 1 | X | TMtx | source TMtx |
| 2 | Y | TMtxVec | source TVec or TMtx |
| 3 | yScale | Double | scalar |
| 4 | Z | TMtxVec | source TVec or TMtx |
| 5 | zScale | Double | scalar |
Returns: Matrix
The operation does only per-element math.
Overload 17: Matrix SubAndMul(TMtx X, TMtxVec Y, Double yScale, Double Z)
Compute (X - Y*yScale)*zScalar, where X is a Matrix
| # | Name | Type | Description |
|---|---|---|---|
| 1 | X | TMtx | source TMtx |
| 2 | Y | TMtxVec | source TVec or TMtx |
| 3 | yScale | Double | scalar |
| 4 | Z | Double | scalar |
Returns: Matrix
Overload 18: Matrix SubAndMul(TMtx X, Double Y, TMtxVec Z)
Compute (X - yScalar)*Z, where X is a Matrix
Returns: Matrix
The operation does only per-element math.
Overload 19: Matrix SubAndMul(TMtx X, Double Y, TMtxVec Z, Double zScale)
Compute (X - yScalar)*Z*zScale, where X is a Matrix
| # | Name | Type | Description |
|---|---|---|---|
| 1 | X | TMtx | source TMtx |
| 2 | Y | Double | scalar |
| 3 | Z | TMtxVec | source TVec or TMtx |
| 4 | zScale | Double | scalar |
Returns: Matrix
The operation does only per-element math.
Overload 20: Matrix SubAndMul(TMtx X, Double xScale, TMtxVec Y, Double yScale, TMtxVec Z, Double zScale)
Compute (X*xScale - Y*yScale)*Z*zScale, when X is a Matrix.
| # | Name | Type | Description |
|---|---|---|---|
| 1 | X | TMtx | source TMtx |
| 2 | xScale | Double | scalar |
| 3 | Y | TMtxVec | source TVec or TMtx |
| 4 | yScale | Double | scalar |
| 5 | Z | TMtxVec | source TVec or TMtx |
| 6 | zScale | Double | scalar |
Returns: Matrix
The operation does only per-element math.
Overload 21: Matrix SubAndMul(TMtx X, Double xScale, TMtxVec Y, Double yScale, Double Z)
Compute (X*xScale - Y*yScale)*zScalar, when X is a Matrix.
| # | Name | Type | Description |
|---|---|---|---|
| 1 | X | TMtx | source TMtx |
| 2 | xScale | Double | scalar |
| 3 | Y | TMtxVec | source TVec or TMtx |
| 4 | yScale | Double | scalar |
| 5 | Z | Double | scalar |
Returns: Matrix
The operation does only per-element math.
Overload 22: Matrix SubAndMul(TMtx X, Double Y, Double Z)
Compute (X - yScalar)*zScalar, where X is a Matrix
| # | Name | Type | Description |
|---|---|---|---|
| 1 | X | TMtx | source TMtx |
| 2 | Y | Double | scalar |
| 3 | Z | Double | scalar |
Returns: Matrix
The operation does only per-element math.
Overload 23: Matrix SubAndMul(TMtx X, Double xScale, Double Y, TMtxVec Z)
Compute (X*xScale - yScalar)*Z, where X is a Matrix
| # | Name | Type | Description |
|---|---|---|---|
| 1 | X | TMtx | source TMtx |
| 2 | xScale | Double | scalar |
| 3 | Y | Double | scalar |
| 4 | Z | TMtxVec | source TVec or TMtx |
Returns: Matrix
The operation does only per-element math.
Overload 24: Matrix SubAndMul(TMtx X, Double xScale, Double Y, TMtxVec Z, Double zScale)
Compute (X*xScale - yScalar)*Z*zScale, where X is a Matrix.
| # | Name | Type | Description |
|---|---|---|---|
| 1 | X | TMtx | source TMtx |
| 2 | xScale | Double | scalar |
| 3 | Y | Double | scalar |
| 4 | Z | TMtxVec | source TVec or TMtx |
| 5 | zScale | Double | scalar |
Returns: Matrix
The operation does only per-element math.
Overload 25: Matrix SubAndMul(TMtx X, Double xScale, Double Y, Double Z)
Compute (X*xScale - yScalar)*zScalar, where X is a Matrix.
| # | Name | Type | Description |
|---|---|---|---|
| 1 | X | TMtx | source TMtx |
| 2 | xScale | Double | scalar |
| 3 | Y | Double | scalar |
| 4 | Z | Double | scalar |
Returns: Matrix
Overload 26: Vector SubAndMul(TVec X, TCplx Y, TCplx Z)
Compute (X - yScalar)*zScalar
Returns: Vector
Overload 27: Vector SubAndMul(TVec X, TCplx xScale, TCplx Y, TCplx Z)
Returns: Vector
Overload 28: Vector SubAndMul(TVec X, TCplx xScale, TCplx Y, TMtxVec Z)
Compute (X*xScale - yScalar)*Z
| # | Name | Type | Description |
|---|---|---|---|
| 1 | X | TVec | source TVec |
| 2 | xScale | TCplx | scalar |
| 3 | Y | TCplx | scalar |
| 4 | Z | TMtxVec | source TVec or TMtx |
Returns: Vector
Overload 29: Vector SubAndMul(TVec X, TCplx xScale, TCplx Y, TMtxVec Z, TCplx zScale)
Compute (X*xScale - yScalar)*Z*zScale, where X is a Matrix.
| # | Name | Type | Description |
|---|---|---|---|
| 1 | X | TVec | source TVec |
| 2 | xScale | TCplx | scalar |
| 3 | Y | TCplx | scalar |
| 4 | Z | TMtxVec | source TVec or TMtx |
| 5 | zScale | TCplx | scalar |
Returns: Vector
The operation does only per-element math.
Overload 30: Vector SubAndMul(TVec X, TCplx Y, TMtxVec Z)
Compute (X - yScalar)*Z
Returns: Vector
Overload 31: Vector SubAndMul(TVec X, TCplx Y, TMtxVec Z, TCplx zScale)
Compute (X - yScalar)*Z*zScale
| # | Name | Type | Description |
|---|---|---|---|
| 1 | X | TVec | source TVec |
| 2 | Y | TCplx | scalar |
| 3 | Z | TMtxVec | source TVec or TMtx |
| 4 | zScale | TCplx | scalar |
Returns: Vector
Overload 32: Vector SubAndMul(TVec X, TCplx xScale, TMtxVec Y, TCplx yScale, TCplx Z)
Compute (X*xScale - Y*yScale)*zScale
| # | Name | Type | Description |
|---|---|---|---|
| 1 | X | TVec | source TVec |
| 2 | xScale | TCplx | scalar |
| 3 | Y | TMtxVec | source TVec or TMtx |
| 4 | yScale | TCplx | scalar |
| 5 | Z | TCplx | scalar |
Returns: Vector
Overload 33: Vector SubAndMul(TVec X, TCplx xScale, TMtxVec Y, TCplx yScale, TMtxVec Z, TCplx zScale)
Compute (X*xScale - Y*yScale)*Z*zScale.
| # | Name | Type | Description |
|---|---|---|---|
| 1 | X | TVec | source TVec |
| 2 | xScale | TCplx | scalar |
| 3 | Y | TMtxVec | source TVec or TMtx |
| 4 | yScale | TCplx | scalar |
| 5 | Z | TMtxVec | source TVec or TMtx |
| 6 | zScale | TCplx | scalar |
Returns: Vector
The operation does only per-element math.
Overload 34: Vector SubAndMul(TVec X, TMtxVec Y, TCplx Z)
Compute (X - Y)*zScalar
Returns: Vector
Overload 35: Vector SubAndMul(TVec X, TMtxVec Y, TCplx yScale, TCplx Z)
Compute (X - Y*yScale)*zScalar
| # | Name | Type | Description |
|---|---|---|---|
| 1 | X | TVec | source TVec |
| 2 | Y | TMtxVec | source TVec or TMtx |
| 3 | yScale | TCplx | scalar |
| 4 | Z | TCplx | scalar |
Returns: Vector
Overload 36: Vector SubAndMul(TVec X, TMtxVec Y, TCplx yScale, TMtxVec Z, TCplx zScale)
Compute (X - Y*yScale)*Z*zScale
| # | Name | Type | Description |
|---|---|---|---|
| 1 | X | TVec | source TVec |
| 2 | Y | TMtxVec | source TVec or TMtx |
| 3 | yScale | TCplx | scalar |
| 4 | Z | TMtxVec | source TVec or TMtx |
| 5 | zScale | TCplx | scalar |
Returns: Vector
Overload 37: Vector SubAndMul(TVec X, TMtxVec Y, TMtxVec Z)
Compute (X - Y)*Z
Returns: Vector
Computes the product of the difference between X and Y multiplied by Z without creating temporary objects.
using Dew.Math;
using Dew.Math.Units;
namespace Dew.Examples
{
void Example()
{
Vector X = (Vector) new double[] { 5, 6, 7, 8 };
Vector Y = (Vector) new double[] { 1, 2, 3, 4 };
Vector Z = (Vector) new double[] { 2, 2, 2, 2 };
Vector A1 = (X - Y) * Z;
Vector A2 = SubAndMul(X, Y, Z);
Vector A3 = new Vector();
A3.SubAndMul(X, Y, Z);
if (!A2.IsEqual(A1)) Math387.ERaise("Problem");
if (!A3.IsEqual(A1)) Math387.ERaise("Problem");
}
}
Overload 38: Vector SubAndMul(TVec X, TMtxVec Y, TMtxVec Z, TCplx zScale)
Compute (X - Y)*Z*zScale
| # | Name | Type | Description |
|---|---|---|---|
| 1 | X | TVec | source TVec |
| 2 | Y | TMtxVec | source TVec or TMtx |
| 3 | Z | TMtxVec | source TVec or TMtx |
| 4 | zScale | TCplx | scalar |
Returns: Vector
Overload 39: Vector SubAndMul(TVec X, TMtxVec Y, TMtxVec Z, Double zScale)
Compute (X - Y)*Z*zScale
| # | Name | Type | Description |
|---|---|---|---|
| 1 | X | TVec | source TVec |
| 2 | Y | TMtxVec | source TVec or TMtx |
| 3 | Z | TMtxVec | source TVec or TMtx |
| 4 | zScale | Double | scalar |
Returns: Vector
Computes the product of (X - Y) multiplied by Z and then scaled by zScale, without creating temporary objects.
using Dew.Math;
using Dew.Math.Units;
namespace Dew.Examples
{
void Example()
{
double zScale = 3.0;
Vector X = (Vector) new double[] { 5, 6, 7, 8 };
Vector Y = (Vector) new double[] { 1, 2, 3, 4 };
Vector Z = (Vector) new double[] { 2, 2, 2, 2 };
Vector A1 = (X - Y) * Z * zScale;
Vector A2 = SubAndMul(X, Y, Z, zScale);
Vector A3 = new Vector();
A3.SubAndMul(X, Y, Z, zScale);
if (!A2.IsEqual(A1)) Math387.ERaise("Problem");
if (!A3.IsEqual(A1)) Math387.ERaise("Problem");
}
}
Overload 40: Vector SubAndMul(TVec X, TMtxVec Y, Double Z)
Compute (X - Y)*zScalar
Returns: Vector
Computes the product of (X - Y) multiplied by a scalar zScalar without temporary objects.
using Dew.Math;
using Dew.Math.Units;
namespace Dew.Examples
{
void Example()
{
double zScalar = 3.0;
Vector X = (Vector) new double[] { 5, 6, 7, 8 };
Vector Y = (Vector) new double[] { 1, 2, 3, 4 };
Vector A1 = (X - Y) * zScalar;
Vector A2 = SubAndMul(X, Y, zScalar);
Vector A3 = new Vector();
A3.SubAndMul(X, Y, zScalar);
if (!A2.IsEqual(A1)) Math387.ERaise("Problem");
if (!A3.IsEqual(A1)) Math387.ERaise("Problem");
}
}
Overload 41: Vector SubAndMul(TVec X, TMtxVec Y, Double yScale, TMtxVec Z, Double zScale)
Compute (X - Y*yScale)*Z*zScale
| # | Name | Type | Description |
|---|---|---|---|
| 1 | X | TVec | source TVec |
| 2 | Y | TMtxVec | source TVec or TMtx |
| 3 | yScale | Double | scalar |
| 4 | Z | TMtxVec | source TVec or TMtx |
| 5 | zScale | Double | scalar |
Returns: Vector
Computes the product of (X minus Y scaled by yScale) multiplied by Z and then by zScale, without creating temporary objects.
using Dew.Math;
using Dew.Math.Units;
namespace Dew.Examples
{
void Example()
{
double yScale = 1.5, zScale = 2.0;
Vector X = (Vector) new double[] { 5, 6, 7, 8 };
Vector Y = (Vector) new double[] { 1, 2, 3, 4 };
Vector Z = (Vector) new double[] { 2, 2, 2, 2 };
Vector A1 = (X - Y * yScale) * Z * zScale;
Vector A2 = SubAndMul(X, yScale, Y, yScale, Z, zScale);
Vector A3 = new Vector();
A3.SubAndMul(X, yScale, Y, yScale, Z, zScale);
if (!A2.IsEqual(A1)) Math387.ERaise("Problem");
if (!A3.IsEqual(A1)) Math387.ERaise("Problem");
}
}
Overload 42: Vector SubAndMul(TVec X, TMtxVec Y, Double yScale, Double Z)
Compute (X - Y*yScale)*zScalar
| # | Name | Type | Description |
|---|---|---|---|
| 1 | X | TVec | source TVec |
| 2 | Y | TMtxVec | source TVec or TMtx |
| 3 | yScale | Double | scalar |
| 4 | Z | Double | scalar |
Returns: Vector
Computes the expression where Y is first scaled by yScale, then subtracted from X, and the resulting vector is multiplied by a scalar zScalar. This is performed without creating temporary objects.
using Dew.Math;
using Dew.Math.Units;
namespace Dew.Examples
{
void Example()
{
double yScale = 0.5, zScalar = 3.0;
Vector X = (Vector) new double[] { 1, 2, 3, 4 };
Vector Y = (Vector) new double[] { 2, 4, 6, 8 };
Vector A1 = (X - Y * yScale) * zScalar;
Vector A2 = SubAndMul(X, yScale, Y, zScalar);
Vector A3 = new Vector();
A3.SubAndMul(X, yScale, Y, zScalar);
if (!A2.IsEqual(A1)) Math387.ERaise("Problem");
if (!A3.IsEqual(A1)) Math387.ERaise("Problem");
}
}
Overload 43: Vector SubAndMul(TVec X, Double Y, TMtxVec Z)
Compute (X - yScalar)*Z
Returns: Vector
Subtracts the scalar yScalar from X and multiplies the result element-wise by Z, without creating temporary objects.
using Dew.Math;
using Dew.Math.Units;
namespace Dew.Examples
{
void Example()
{
double yScalar = 2.0;
Vector X = (Vector) new double[] { 1, 2, 3, 4 };
Vector Z = (Vector) new double[] { 3, 3, 3, 3 };
Vector A1 = (X - yScalar) * Z;
Vector A2 = SubAndMul(X, yScalar, Z);
Vector A3 = new Vector();
A3.SubAndMul(X, yScalar, Z);
if (!A2.IsEqual(A1)) Math387.ERaise("Problem");
if (!A3.IsEqual(A1)) Math387.ERaise("Problem");
}
}
Overload 44: Vector SubAndMul(TVec X, Double Y, TMtxVec Z, Double zScale)
Compute (X - yScalar)*Z*zScale
| # | Name | Type | Description |
|---|---|---|---|
| 1 | X | TVec | source TVec |
| 2 | Y | Double | scalar |
| 3 | Z | TMtxVec | source TVec or TMtx |
| 4 | zScale | Double | scalar |
Returns: Vector
Subtracts a scalar yScalar from X, then multiplies the result element-wise by Z, and finally scales the product by zScale. This operation is performed without temporary objects.
using Dew.Math;
using Dew.Math.Units;
namespace Dew.Examples
{
void Example()
{
double yScalar = 2.0, zScale = 4.0;
Vector X = (Vector) new double[] { 1, 2, 3, 4 };
Vector Z = (Vector) new double[] { 2, 2, 2, 2 };
Vector A1 = (X - yScalar) * Z * zScale;
Vector A2 = SubAndMul(X, yScalar, Z, zScale);
Vector A3 = new Vector();
A3.SubAndMul(X, yScalar, Z, zScale);
if (!A2.IsEqual(A1)) Math387.ERaise("Problem");
if (!A3.IsEqual(A1)) Math387.ERaise("Problem");
}
}
Overload 45: Vector SubAndMul(TVec X, Double xScale, TMtxVec Y, Double yScale, TMtxVec Z, Double zScale)
Compute (X*xScale - Y*yScale)*Z*zScale
| # | Name | Type | Description |
|---|---|---|---|
| 1 | X | TVec | source TVec |
| 2 | xScale | Double | scalar |
| 3 | Y | TMtxVec | source TVec or TMtx |
| 4 | yScale | Double | scalar |
| 5 | Z | TMtxVec | source TVec or TMtx |
| 6 | zScale | Double | scalar |
Returns: Vector
Computes the product of (X scaled by xScale minus Y scaled by yScale) multiplied by Z scaled by zScale, without creating temporary objects.
using Dew.Math;
using Dew.Math.Units;
namespace Dew.Examples
{
void Example()
{
double xScale = 1.0, yScale = 2.0, zScale = 3.0;
Vector X = (Vector) new double[] { 1, 2, 3, 4 };
Vector Y = (Vector) new double[] { 2, 3, 4, 5 };
Vector Z = (Vector) new double[] { 3, 4, 5, 6 };
Vector A1 = (X * xScale - Y * yScale) * Z * zScale;
Vector A2 = SubAndMul(X, xScale, Y, yScale, Z, zScale);
Vector A3 = new Vector();
A3.SubAndMul(X, xScale, Y, yScale, Z, zScale);
if (!A2.IsEqual(A1)) Math387.ERaise("Problem");
if (!A3.IsEqual(A1)) Math387.ERaise("Problem");
}
}
Overload 46: Vector SubAndMul(TVec X, Double xScale, TMtxVec Y, Double yScale, Double Z)
Compute (X*xScale - Y*yScale)*zScalar
| # | Name | Type | Description |
|---|---|---|---|
| 1 | X | TVec | source TVec |
| 2 | xScale | Double | scalar |
| 3 | Y | TMtxVec | source TVec or TMtx |
| 4 | yScale | Double | scalar |
| 5 | Z | Double | scalar |
Returns: Vector
Computes the product of (X scaled by xScale minus Y scaled by yScale) multiplied by a scalar zScalar, without creating temporary objects.
using Dew.Math;
using Dew.Math.Units;
namespace Dew.Examples
{
void Example()
{
double xScale = 1.0, yScale = 2.0, zScalar = 3.0;
Vector X = (Vector) new double[] { 1, 2, 3, 4 };
Vector Y = (Vector) new double[] { 2, 3, 4, 5 };
Vector A1 = (X * xScale - Y * yScale) * zScalar;
Vector A2 = SubAndMul(X, xScale, Y, yScale, zScalar);
Vector A3 = new Vector();
A3.SubAndMul(X, xScale, Y, yScale, zScalar);
if (!A2.IsEqual(A1)) Math387.ERaise("Problem");
if (!A3.IsEqual(A1)) Math387.ERaise("Problem");
}
}
Overload 47: Vector SubAndMul(TVec X, Double Y, Double Z)
Compute (X - yScalar)*zScalar
| # | Name | Type | Description |
|---|---|---|---|
| 1 | X | TVec | source TVec |
| 2 | Y | Double | scalar |
| 3 | Z | Double | scalar |
Returns: Vector
Computes the result of subtracting a scalar yScalar from X and then multiplying by a scalar zScalar, without creating temporary objects.
using Dew.Math;
using Dew.Math.Units;
namespace Dew.Examples
{
void Example()
{
double yScalar = 2.0, zScalar = 3.0;
Vector X = (Vector) new double[] { 1, 2, 3, 4 };
Vector A1 = (X - yScalar) * zScalar;
Vector A2 = SubAndMul(X, yScalar, zScalar);
Vector A3 = new Vector();
A3.SubAndMul(X, yScalar, zScalar);
if (!A2.IsEqual(A1)) Math387.ERaise("Problem");
if (!A3.IsEqual(A1)) Math387.ERaise("Problem");
}
}
Overload 48: Vector SubAndMul(TVec X, Double xScale, Double Y, TMtxVec Z)
Compute (X*xScale - yScalar)*Z
| # | Name | Type | Description |
|---|---|---|---|
| 1 | X | TVec | source TVec |
| 2 | xScale | Double | scalar |
| 3 | Y | Double | scalar |
| 4 | Z | TMtxVec | source TVec or TMtx |
Returns: Vector
Multiplies X by xScale, subtracts the scalar yScalar, and then multiplies the result element-wise by Z, without creating temporary objects.
using Dew.Math;
using Dew.Math.Units;
namespace Dew.Examples
{
void Example()
{
double xScale = 2.0, yScalar = 3.0;
Vector X = (Vector) new double[] { 1, 2, 3, 4 };
Vector Z = (Vector) new double[] { 2, 2, 2, 2 };
Vector A1 = (X * xScale - yScalar) * Z;
Vector A2 = SubAndMul(X, xScale, yScalar, Z);
Vector A3 = new Vector();
A3.SubAndMul(X, xScale, yScalar, Z);
if (!A2.IsEqual(A1)) Math387.ERaise("Problem");
if (!A3.IsEqual(A1)) Math387.ERaise("Problem");
}
}
Overload 49: Vector SubAndMul(TVec X, Double xScale, Double Y, TMtxVec Z, Double zScale)
Compute (X*xScale - yScalar)*Z*zScale
| # | Name | Type | Description |
|---|---|---|---|
| 1 | X | TVec | source TVec |
| 2 | xScale | Double | scalar |
| 3 | Y | Double | scalar |
| 4 | Z | TMtxVec | source TVec or TMtx |
| 5 | zScale | Double | scalar |
Returns: Vector
Computes the expression (X*xScale - yScalar) multiplied by Z*zScale without temporary objects.
using Dew.Math;
using Dew.Math.Units;
namespace Dew.Examples
{
void Example()
{
double xScale = 1.0, yScalar = 2.0, zScale = 3.0;
Vector X = (Vector) new double[] { 1, 2, 3, 4 };
Vector Z = (Vector) new double[] { 3, 4, 5, 6 };
Vector A1 = (X * xScale - yScalar) * Z * zScale;
Vector A2 = SubAndMul(X, xScale, yScalar, Z, zScale);
Vector A3 = new Vector();
A3.SubAndMul(X, xScale, yScalar, Z, zScale);
if (!A2.IsEqual(A1)) Math387.ERaise("Problem");
if (!A3.IsEqual(A1)) Math387.ERaise("Problem");
}
}
Overload 50: Vector SubAndMul(TVec X, Double xScale, Double Y, Double Z)
Compute (X*xScale - yScalar)*zScalar
| # | Name | Type | Description |
|---|---|---|---|
| 1 | X | TVec | source TVec |
| 2 | xScale | Double | scalar |
| 3 | Y | Double | scalar |
| 4 | Z | Double | scalar |
Returns: Vector
Computes the expression (X*xScale - yScalar) multiplied by a scalar zScalar without temporary objects.
using Dew.Math;
using Dew.Math.Units;
namespace Dew.Examples
{
void Example()
{
double xScale = 1.0, yScalar = 2.0, zScalar = 3.0;
Vector X = (Vector) new double[] { 1, 2, 3, 4 };
Vector A1 = (X * xScale - yScalar) * zScalar;
Vector A2 = SubAndMul(X, xScale, yScalar, zScalar);
Vector A3 = new Vector();
A3.SubAndMul(X, xScale, yScalar, zScalar);
if (!A2.IsEqual(A1)) Math387.ERaise("Problem");
if (!A3.IsEqual(A1)) Math387.ERaise("Problem");
}
}