MtxExpr.AddScaled Method

Overload List

#SignatureDescription
1Matrix AddScaled(TMtx X, TCplx xScale, TMtxVec Y, TCplx yScale)Result = X*xScale + Y*yScale, where X is a Matrix
2Matrix AddScaled(TMtx X, TCplx xScale, TMtxVec Y, TCplx yScale, TMtxVec Z, TCplx zScale)Result = X*xScale + Y*yScale + Z*zScale, where X is a Matrix
3Matrix AddScaled(TMtx X, TMtx Y, TCplx aScale)Computes X + Y*Ascale
4Matrix AddScaled(TMtx X, TMtx Y, Double aScale)Computes X + Y*Ascale
5Matrix AddScaled(TMtx X, TMtxVec Y, TCplx yScale)Result = X + Y*yScale, where X is a Matrix
6Matrix AddScaled(TMtx X, TMtxVec Y, TCplx yScale, TMtxVec Z, TCplx zScale)Result = X + Y*yScale + Z*zScale, where X is a Matrix
7Matrix AddScaled(TMtx X, TMtxVec Y, TMtxVec Z, TCplx zScale)Result = X + Y + Z*zScale, where X is a Matrix
8Matrix AddScaled(TMtx X, TMtxVec Y, TMtxVec Z, Double zScale)Result = X + Y + Z*zScale, where X is a Matrix
9Matrix AddScaled(TMtx X, TMtxVec Y, Double yScale)Result = X + Y*yScale, where X is a Matrix
10Matrix AddScaled(TMtx X, TMtxVec Y, Double yScale, TMtxVec Z, Double zScale)Result = X + Y*yScale + Z*zScale, where X is a Matrix
11Matrix AddScaled(TMtx X, Double xScale, TMtxVec Y, Double yScale)Result = X*xScale + Y*yScale, when X is a Matrix
12Matrix AddScaled(TMtx X, Double xScale, TMtxVec Y, Double yScale, TMtxVec Z, Double zScale)Result = X*xScale + Y*yScale + Z*zScale
13Vector AddScaled(TVec X, TCplx xScale, TMtxVec Y, TCplx yScale)Result = X*xScale + Y*yScale
14Vector AddScaled(TVec X, TCplx xScale, TMtxVec Y, TCplx yScale, TMtxVec Z, TCplx zScale)Result = X*xScale + Y*yScale + Z*zScale
15Vector AddScaled(TVec X, TMtxVec Y, TCplx yScale)Result = X + Y*yScale
16Vector AddScaled(TVec X, TMtxVec Y, TCplx yScale, TMtxVec Z, TCplx zScale)Result = X + Y*yScale + Z*zScale
17Vector AddScaled(TVec X, TMtxVec Y, TMtxVec Z, TCplx zScale)Result = X + Y + Z*zScale
18Vector AddScaled(TVec X, TMtxVec Y, TMtxVec Z, Double zScale)Result = X + Y + Z*zScale
19Vector AddScaled(TVec X, TMtxVec Y, Double yScale)Result = X + Y*yScale
20Vector AddScaled(TVec X, TMtxVec Y, Double yScale, TMtxVec Z, Double zScale)Result = X + Y*yScale + Z*zScale
21Vector AddScaled(TVec X, TVec Y, TCplx aScale)Computes X + Y*Ascale
22Vector AddScaled(TVec X, TVec Y, Double aScale)Computes X + Y*Ascale
23Vector AddScaled(TVec X, Double xScale, TMtxVec Y, Double yScale)Result = X*xScale + Y*yScale
24Vector AddScaled(TVec X, Double xScale, TMtxVec Y, Double yScale, TMtxVec Z, Double zScale)Result = X*xScale + Y*yScale + Z*zScale

Overload 1: Matrix AddScaled(TMtx X, TCplx xScale, TMtxVec Y, TCplx yScale)

Compute X*xScale + Y*yScale, where X is a Matrix

#NameTypeDescription
1XTMtxsource TMtx
2xScaleTCplxscalar
3YTMtxVecsource TVec or TMtx
4yScaleTCplxscalar

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

#NameTypeDescription
1XTMtxsource TMtx
2xScaleTCplxscalar
3YTMtxVecsource TVec or TMtx
4yScaleTCplxscalar
5ZTMtxVecsource TVec or TMtx
6zScaleTCplxscalar

Returns: Matrix

Overload 3: Matrix AddScaled(TMtx X, TMtx Y, TCplx aScale)

Computes X + Y*Ascale

#NameTypeDescription
1XTMtxsource TMtx
2YTMtxsource TMtx
3aScaleTCplxscalar

Returns: Matrix

Remarks:

Internally calls Dew.Math.Matrix.AddScaled

Overload 4: Matrix AddScaled(TMtx X, TMtx Y, Double aScale)

Computes X + Y*Ascale

#NameTypeDescription
1XTMtxsource TMtx
2YTMtxsource TMtx
3aScaleDoublescalar

Returns: Matrix

Remarks:

Internally calls Dew.Math.Matrix.AddScaled

Overload 5: Matrix AddScaled(TMtx X, TMtxVec Y, TCplx yScale)

Compute X + Y*yScale, where X is a Matrix.

#NameTypeDescription
1XTMtxsource TMtx
2YTMtxVecsource TVec or TMtx
3yScaleTCplxscalar

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.

#NameTypeDescription
1XTMtxsource TMtx
2YTMtxVecsource TVec or TMtx
3yScaleTCplxscalar
4ZTMtxVecsource TVec or TMtx
5zScaleTCplxscalar

Returns: Matrix

Overload 7: Matrix AddScaled(TMtx X, TMtxVec Y, TMtxVec Z, TCplx zScale)

Compute X + Y + Z*zScale, where X is a Matrix.

#NameTypeDescription
1XTMtxsource TMtx
2YTMtxVecsource TVec or TMtx
3ZTMtxVecsource TVec or TMtx
4zScaleTCplxscalar

Returns: Matrix

Overload 8: Matrix AddScaled(TMtx X, TMtxVec Y, TMtxVec Z, Double zScale)

Compute X + Y + Z*zScale, where X is a Matrix.

#NameTypeDescription
1XTMtxsource TMtx
2YTMtxVecsource TVec or TMtx
3ZTMtxVecsource TVec or TMtx
4zScaleDoublescalar

Returns: Matrix

Overload 9: Matrix AddScaled(TMtx X, TMtxVec Y, Double yScale)

Compute X + Y*yScale, where X is a Matrix.

#NameTypeDescription
1XTMtxsource TMtx
2YTMtxVecsource TVec or TMtx
3yScaleDoublescalar

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.

#NameTypeDescription
1XTMtxsource TMtx
2YTMtxVecsource TVec or TMtx
3yScaleDoublescalar
4ZTMtxVecsource TVec or TMtx
5zScaleDoublescalar

Returns: Matrix

Overload 11: Matrix AddScaled(TMtx X, Double xScale, TMtxVec Y, Double yScale)

Compute X*xScale + Y*yScale, when X is a Matrix

#NameTypeDescription
1XTMtxsource TMtx
2xScaleDoublescalar
3YTMtxVecsource TVec or TMtx
4yScaleDoublescalar

Returns: Matrix

Remarks:

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

#NameTypeDescription
1XTMtxsource TMtx
2xScaleDoublescalar
3YTMtxVecsource TVec or TMtx
4yScaleDoublescalar
5ZTMtxVecsource TVec or TMtx
6zScaleDoublescalar

Returns: Matrix

Overload 13: Vector AddScaled(TVec X, TCplx xScale, TMtxVec Y, TCplx yScale)

Compute X*xScale + Y*yScale

#NameTypeDescription
1XTVecsource TVec
2xScaleTCplxscalar
3YTMtxVecsource TVec or TMtx
4yScaleTCplxscalar

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

#NameTypeDescription
1XTVecsource TVec
2xScaleTCplxscalar
3YTMtxVecsource TVec or TMtx
4yScaleTCplxscalar
5ZTMtxVecsource TVec or TMtx
6zScaleTCplxscalar

Returns: Vector

Overload 15: Vector AddScaled(TVec X, TMtxVec Y, TCplx yScale)

Compute X + Y*yScale

#NameTypeDescription
1XTVecsource TVec
2YTMtxVecsource TVec or TMtx
3yScaleTCplxscalar

Returns: Vector

Overload 16: Vector AddScaled(TVec X, TMtxVec Y, TCplx yScale, TMtxVec Z, TCplx zScale)

Compute X + Y*yScale + Z*zScale

#NameTypeDescription
1XTVecsource TVec
2YTMtxVecsource TVec or TMtx
3yScaleTCplxscalar
4ZTMtxVecsource TVec or TMtx
5zScaleTCplxscalar

Returns: Vector

Overload 17: Vector AddScaled(TVec X, TMtxVec Y, TMtxVec Z, TCplx zScale)

Compute X + Y + Z*zScale

#NameTypeDescription
1XTVecsource TVec
2YTMtxVecsource TVec or TMtx
3ZTMtxVecsource TVec or TMtx
4zScaleTCplxscalar

Returns: Vector

Overload 18: Vector AddScaled(TVec X, TMtxVec Y, TMtxVec Z, Double zScale)

Compute X + Y + Z*zScale

#NameTypeDescription
1XTVecsource TVec
2YTMtxVecsource TVec or TMtx
3ZTMtxVecsource TVec or TMtx
4zScaleDoublescalar

Returns: Vector

Remarks:

Computes the sum of X and Y plus Z scaled by zScale without creating temporary objects.

Examples
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

#NameTypeDescription
1XTVecsource TVec
2YTMtxVecsource TVec or TMtx
3yScaleDoublescalar

Returns: Vector

Remarks:

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.

Examples
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

#NameTypeDescription
1XTVecsource TVec
2YTMtxVecsource TVec or TMtx
3yScaleDoublescalar
4ZTMtxVecsource TVec or TMtx
5zScaleDoublescalar

Returns: Vector

Remarks:

Computes the sum of X and Y scaled by yScale plus Z scaled by zScale without temporary objects.

Examples
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)

Computes X + Y*Ascale

#NameTypeDescription
1XTVecsource TVec
2YTVecsource TVec
3aScaleTCplxscalar

Returns: Vector

Remarks:

Internally calls Dew.Math.Vector.AddScaled

Overload 22: Vector AddScaled(TVec X, TVec Y, Double aScale)

Computes X + Y*Ascale

#NameTypeDescription
1XTVecsource TVec
2YTVecsource TVec
3aScaleDoublescalar

Returns: Vector

Remarks:

Internally calls Dew.Math.Vector.AddScaled

Overload 23: Vector AddScaled(TVec X, Double xScale, TMtxVec Y, Double yScale)

Compute X*xScale + Y*yScale

#NameTypeDescription
1XTVecsource TVec
2xScaleDoublescalar
3YTMtxVecsource TVec or TMtx
4yScaleDoublescalar

Returns: Vector

Remarks:

Computes the specified expression without temporary objects and at the same speed as computing only X + Y.

Examples
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

#NameTypeDescription
1XTVecsource TVec
2xScaleDoublescalar
3YTMtxVecsource TVec or TMtx
4yScaleDoublescalar
5ZTMtxVecsource TVec or TMtx
6zScaleDoublescalar

Returns: Vector

Remarks:

Computes the weighted sum of X, Y, and Z without temporary objects.

Examples
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");
    }
}