Overload List
Overload 1: Matrix AddScaled(TMtx X, TCplx xScale, TMtxVec Y, TCplx yScale)
Compute X*xScale + Y*yScale, where 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 |
Returns: Matrix
Overload 2: Matrix AddScaled(TMtx X, TCplx xScale, TMtxVec Y, TCplx yScale, TMtxVec Z, TCplx zScale)
Compute X*xScale + Y*yScale + Z*zScale, where 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
Overload 3: Matrix AddScaled(TMtx X, TMtx Y, TCplx aScale)
Overload 4: Matrix AddScaled(TMtx X, TMtx Y, Double aScale)
Overload 5: Matrix AddScaled(TMtx X, TMtxVec Y, TCplx yScale)
Compute X + Y*yScale, where X is a Matrix.
Returns: Matrix
Overload 6: Matrix AddScaled(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 7: Matrix AddScaled(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 8: Matrix AddScaled(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
Overload 9: Matrix AddScaled(TMtx X, TMtxVec Y, Double yScale)
Compute X + Y*yScale, where X is a Matrix.
Returns: Matrix
Overload 10: Matrix AddScaled(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
Overload 11: Matrix AddScaled(TMtx X, Double xScale, TMtxVec Y, Double yScale)
Compute X*xScale + Y*yScale, 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 |
Returns: Matrix
The operation does only per-element math.
Overload 12: Matrix AddScaled(TMtx X, Double xScale, TMtxVec Y, Double yScale, TMtxVec Z, Double zScale)
Compute X*xScale + Y*yScale + Z*zScale
| # | 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
Overload 13: Vector AddScaled(TVec X, TCplx xScale, TMtxVec Y, TCplx yScale)
Compute X*xScale + Y*yScale
| # | Name | Type | Description |
|---|---|---|---|
| 1 | X | TVec | source TVec |
| 2 | xScale | TCplx | scalar |
| 3 | Y | TMtxVec | source TVec or TMtx |
| 4 | yScale | TCplx | scalar |
Returns: Vector
Overload 14: Vector AddScaled(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
Overload 15: Vector AddScaled(TVec X, TMtxVec Y, TCplx yScale)
Compute X + Y*yScale
Returns: Vector
Overload 16: Vector AddScaled(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 17: Vector AddScaled(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 18: Vector AddScaled(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 sum of X and Y plus Z scaled by zScale without creating temporary objects.
using Dew.Math;
using Dew.Math.Units;
namespace Dew.Examples
{
void Example()
{
double zScale = 2.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 + Y + Z * zScale;
Vector A2 = AddScaled(X, Y, Z, zScale);
Vector A3 = new Vector();
A3.AddScaled(X, Y, Z, zScale);
if (!A2.IsEqual(A1)) Math387.ERaise("Problem");
if (!A3.IsEqual(A1)) Math387.ERaise("Problem");
}
}
Overload 19: Vector AddScaled(TVec X, TMtxVec Y, Double yScale)
Compute X + Y*yScale
Returns: Vector
Computes the sum of two vector-based operands, X and Y, where Y is first scaled by yScale. This operation is performed without creating temporary objects.
using Dew.Math;
using Dew.Math.Units;
namespace Dew.Examples
{
void Example()
{
double yScale = 1.5;
Vector X = (Vector) new double[] { 1, 2, 3, 4 };
Vector Y = (Vector) new double[] { 2, 3, 4, 5 };
Vector A1 = X + Y * yScale;
Vector A2 = AddScaled(X, Y, yScale);
Vector A3 = new Vector();
A3.AddScaled(X, Y, yScale);
if (!A2.IsEqual(A1)) Math387.ERaise("Problem");
if (!A3.IsEqual(A1)) Math387.ERaise("Problem");
}
}
Overload 20: Vector AddScaled(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 sum of X and Y scaled by yScale plus Z scaled by zScale without 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[] { 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 + Y * yScale + Z * zScale;
Vector A2 = AddScaled(X, Y, yScale, Z, zScale);
Vector A3 = new Vector();
A3.AddScaled(X, Y, yScale, Z, zScale);
if (!A2.IsEqual(A1)) Math387.ERaise("Problem");
if (!A3.IsEqual(A1)) Math387.ERaise("Problem");
}
}
Overload 21: Vector AddScaled(TVec X, TVec Y, TCplx aScale)
Overload 22: Vector AddScaled(TVec X, TVec Y, Double aScale)
Overload 23: Vector AddScaled(TVec X, Double xScale, TMtxVec Y, Double yScale)
Compute X*xScale + Y*yScale
| # | Name | Type | Description |
|---|---|---|---|
| 1 | X | TVec | source TVec |
| 2 | xScale | Double | scalar |
| 3 | Y | TMtxVec | source TVec or TMtx |
| 4 | yScale | Double | scalar |
Returns: Vector
Computes the specified expression without temporary objects and at the same speed as computing only X + Y.
using Dew.Math;
using Dew.Math.Units;
namespace Dew.Examples
{
void Example()
{
double xScale = 1.5;
double yScale = -1.5;
Vector X = (Vector) new double[] { 1, 2, 3, 4 };
Vector Y = (Vector) new double[] { 2, 3, 4, 5 };
Vector A1 = X * xScale + Y * yScale;
Vector A2 = AddScaled(X, xScale, Y, yScale);
Vector A3 = new Vector();
A3.AddScaled(X, xScale, Y, yScale);
if (!A2.IsEqual(A1)) Math387.ERaise("Problem");
if (!A3.IsEqual(A1)) Math387.ERaise("Problem");
}
}
Overload 24: Vector AddScaled(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 weighted sum of X, Y, and Z without 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 = AddScaled(X, xScale, Y, yScale, Z, zScale);
Vector A3 = new Vector();
A3.AddScaled(X, xScale, Y, yScale, Z, zScale);
if (!A2.IsEqual(A1)) Math387.ERaise("Problem");
if (!A3.IsEqual(A1)) Math387.ERaise("Problem");
}
}