Overload List
| # | Signature | Description |
|---|---|---|
| 1 | Matrix MulAndDiv(TMtx X, TMtxVec Y, TCplx Z) | Result = X * Y / zScalar, where X is a Matrix |
| 2 | Matrix MulAndDiv(TMtx X, TMtxVec Y, TCplx xyScale, TMtxVec Z) | Result = X * Y * xyScale / Z, where X is a Matrix |
| 3 | Matrix MulAndDiv(TMtx X, TMtxVec Y, TMtxVec Z) | Result = X * Y / Z, where X is a Matrix |
| 4 | Matrix MulAndDiv(TMtx X, TMtxVec Y, Double Z) | Result = X * Y / zScalar, when X is a Matrix |
| 5 | Matrix MulAndDiv(TMtx X, TMtxVec Y, Double xyScale, TMtxVec Z) | Result = X * Y * xyScale / Z, when X is a Matrix |
| 6 | Vector MulAndDiv(TVec X, TMtxVec Y, TCplx Z) | Result = X * Y / zScalar |
| 7 | Vector MulAndDiv(TVec X, TMtxVec Y, TCplx xyScale, TMtxVec Z) | Result = X * Y * xyScale / Z |
| 8 | Vector MulAndDiv(TVec X, TMtxVec Y, TMtxVec Z) | Result = X * Y / Z |
| 9 | Vector MulAndDiv(TVec X, TMtxVec Y, Double Z) | Result = X * Y / zScalar |
| 10 | Vector MulAndDiv(TVec X, TMtxVec Y, Double xyScale, TMtxVec Z) | Result = X * Y * xyScale / Z |
Overload 1: Matrix MulAndDiv(TMtx X, TMtxVec Y, TCplx Z)
Compute X * Y / zScalar, where X is a Matrix
Returns: Matrix
Overload 2: Matrix MulAndDiv(TMtx X, TMtxVec Y, TCplx xyScale, TMtxVec Z)
Compute X Y xyScale / Z, where X is a Matrix
| # | Name | Type | Description |
|---|---|---|---|
| 1 | X | TMtx | source TMtx |
| 2 | Y | TMtxVec | source TVec or TMtx |
| 3 | xyScale | TCplx | scalar |
| 4 | Z | TMtxVec | source TVec or TMtx |
Returns: Matrix
Overload 3: Matrix MulAndDiv(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 4: Matrix MulAndDiv(TMtx X, TMtxVec Y, Double Z)
Compute X * Y / zScalar, when X is a Matrix.
Returns: Matrix
The operation does only per-element math.
Overload 5: Matrix MulAndDiv(TMtx X, TMtxVec Y, Double xyScale, TMtxVec Z)
Compute X Y xyScale / Z, when X is a Matrix.
| # | Name | Type | Description |
|---|---|---|---|
| 1 | X | TMtx | source TMtx |
| 2 | Y | TMtxVec | source TVec or TMtx |
| 3 | xyScale | Double | scalar |
| 4 | Z | TMtxVec | source TVec or TMtx |
Returns: Matrix
The operation does only per-element math.
Overload 6: Vector MulAndDiv(TVec X, TMtxVec Y, TCplx Z)
Compute X * Y / zScalar
Returns: Vector
Overload 7: Vector MulAndDiv(TVec X, TMtxVec Y, TCplx xyScale, TMtxVec Z)
Compute X Y xyScale / Z
| # | Name | Type | Description |
|---|---|---|---|
| 1 | X | TVec | source TVec |
| 2 | Y | TMtxVec | source TVec or TMtx |
| 3 | xyScale | TCplx | scalar |
| 4 | Z | TMtxVec | source TVec or TMtx |
Returns: Vector
Overload 8: Vector MulAndDiv(TVec X, TMtxVec Y, TMtxVec Z)
Compute X * Y / Z
Returns: Vector
Computes the element-wise product of X and Y, then divides the result by Z, all without creating temporary objects.
using Dew.Math;
using Dew.Math.Units;
namespace Dew.Examples
{
void Example()
{
Vector X = (Vector) new double[] { 4, 8, 12, 16 };
Vector Y = (Vector) new double[] { 2, 2, 2, 2 };
Vector Z = (Vector) new double[] { 2, 4, 6, 8 };
Vector A1 = (X * Y) / Z;
Vector A2 = MulAndDiv(X, Y, Z);
Vector A3 = new Vector();
A3.MulAndDiv(X, Y, Z);
if (!A2.IsEqual(A1)) Math387.ERaise("Problem");
if (!A3.IsEqual(A1)) Math387.ERaise("Problem");
}
}
Overload 9: Vector MulAndDiv(TVec X, TMtxVec Y, Double Z)
Compute X * Y / zScalar
Returns: Vector
Computes the product of X and Y divided by the scalar zScalar without temporary objects.
using Dew.Math;
using Dew.Math.Units;
namespace Dew.Examples
{
void Example()
{
double zScalar = 2.0;
Vector X = (Vector) new double[] { 3, 6, 9, 12 };
Vector Y = (Vector) new double[] { 1, 2, 3, 4 };
Vector A1 = (X * Y) / zScalar;
Vector A2 = MulAndDiv(X, Y, zScalar);
Vector A3 = new Vector();
A3.MulAndDiv(X, Y, zScalar);
if (!A2.IsEqual(A1)) Math387.ERaise("Problem");
if (!A3.IsEqual(A1)) Math387.ERaise("Problem");
}
}
Overload 10: Vector MulAndDiv(TVec X, TMtxVec Y, Double xyScale, TMtxVec Z)
Compute X Y xyScale / Z
| # | Name | Type | Description |
|---|---|---|---|
| 1 | X | TVec | source TVec |
| 2 | Y | TMtxVec | source TVec or TMtx |
| 3 | xyScale | Double | scalar |
| 4 | Z | TMtxVec | source TVec or TMtx |
Returns: Vector
Computes the product of X and Y scaled by xyScale, then divided by Z, without temporary objects.
using Dew.Math;
using Dew.Math.Units;
namespace Dew.Examples
{
void Example()
{
double xyScale = 1.5;
Vector X = (Vector) new double[] { 2, 4, 6, 8 };
Vector Y = (Vector) new double[] { 1, 1, 1, 1 };
Vector Z = (Vector) new double[] { 2, 2, 2, 2 };
Vector A1 = (X * Y * xyScale) / Z;
Vector A2 = MulAndDiv(X, Y, xyScale, Z);
Vector A3 = new Vector();
A3.MulAndDiv(X, Y, xyScale, Z);
if (!A2.IsEqual(A1)) Math387.ERaise("Problem");
if (!A3.IsEqual(A1)) Math387.ERaise("Problem");
}
}