Overload List
| # | Signature | Description |
|---|---|---|
| 1 | Matrix SqrAddScaled(TMtx X, TCplx xScale, TMtxVec Y, TCplx yScale) | Result = sqr(X)*xScale + sqr(Y)*yScale, where X is a Matrix |
| 2 | Matrix SqrAddScaled(TMtx X, TMtxVec Y, TCplx yScale) | Result = sqr(X) + sqr(Y)*yScale, where X is a Matrix |
| 3 | Matrix SqrAddScaled(TMtx X, TMtxVec Y, Double yScale) | Result = sqr(X) + sqr(Y)*yScale, when X is a Matrix |
| 4 | Matrix SqrAddScaled(TMtx X, Double xScale, TMtxVec Y, Double yScale) | Result = sqr(X)*xScale + sqr(Y)*yScale, when X is a matrix |
| 5 | Vector SqrAddScaled(TVec X, TCplx xScale, TMtxVec Y, TCplx yScale) | Result = sqr(X)*xScale + sqr(Y)*yScale |
| 6 | Vector SqrAddScaled(TVec X, TMtxVec Y, TCplx yScale) | Result = sqr(X) + sqr(Y)*yScale |
| 7 | Vector SqrAddScaled(TVec X, TMtxVec Y, Double yScale) | Result = sqr(X) + sqr(Y)*yScale |
| 8 | Vector SqrAddScaled(TVec X, Double xScale, TMtxVec Y, Double yScale) | Result = sqr(X)*xScale + sqr(Y)*yScale |
Overload 1: Matrix SqrAddScaled(TMtx X, TCplx xScale, TMtxVec Y, TCplx yScale)
Compute sqr(X)*xScale + sqr(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 SqrAddScaled(TMtx X, TMtxVec Y, TCplx yScale)
Compute sqr(X) + sqr(Y)*yScale, where X is a Matrix
Returns: Matrix
Overload 3: Matrix SqrAddScaled(TMtx X, TMtxVec Y, Double yScale)
Compute sqr(X) + sqr(Y)*yScale, when X is a Matrix.
Returns: Matrix
Remarks:
The operation does only per-element math.
Overload 4: Matrix SqrAddScaled(TMtx X, Double xScale, TMtxVec Y, Double yScale)
Compute sqr(X)*xScale + sqr(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
Remarks:
The operation does only per-element math.
Overload 5: Vector SqrAddScaled(TVec X, TCplx xScale, TMtxVec Y, TCplx yScale)
Compute sqr(X)*xScale + sqr(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 6: Vector SqrAddScaled(TVec X, TMtxVec Y, TCplx yScale)
Compute sqr(X) + sqr(Y)*yScale
Returns: Vector
Overload 7: Vector SqrAddScaled(TVec X, TMtxVec Y, Double yScale)
Compute sqr(X) + sqr(Y)*yScale
Returns: Vector
Remarks:
Computes the sum of the square of X and the scaled square of Y without temporary objects.
Examples
using Dew.Math;
using Dew.Math.Units;
namespace Dew.Examples
{
void Example()
{
double yScale = 2.0;
Vector X = (Vector) new double[] { 1, 2, 3, 4 };
Vector Y = (Vector) new double[] { 2, 3, 4, 5 };
Vector A1 = MtxExpr.Sqr(X) + MtxExpr.Sqr(Y) * yScale;
Vector A2 = SqrAddScaled(X, Y, yScale);
Vector A3 = new Vector();
A3.SqrAddScaled(X, Y, yScale);
if (!A2.IsEqual(A1)) Math387.ERaise("Problem");
if (!A3.IsEqual(A1)) Math387.ERaise("Problem");
}
}
Overload 8: Vector SqrAddScaled(TVec X, Double xScale, TMtxVec Y, Double yScale)
Compute sqr(X)*xScale + sqr(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
Remarks:
Computes the weighted sum of the squares of X and Y without temporary objects.
Examples
using Dew.Math;
using Dew.Math.Units;
namespace Dew.Examples
{
void Example()
{
double xScale = 2.0, yScale = 3.0;
Vector X = (Vector) new double[] { 1, 2, 3, 4 };
Vector Y = (Vector) new double[] { 2, 3, 4, 5 };
Vector A1 = MtxExpr.Sqr(X) * xScale + MtxExpr.Sqr(Y) * yScale;
Vector A2 = SqrAddScaled(X, xScale, Y, yScale);
Vector A3 = new Vector();
A3.SqrAddScaled(X, xScale, Y, yScale);
if (!A2.IsEqual(A1)) Math387.ERaise("Problem");
if (!A3.IsEqual(A1)) Math387.ERaise("Problem");
}
}