MtxExpr.AddScaledSqr Method

Overload List

#SignatureDescription
1Matrix AddScaledSqr(TMtx X, TCplx xScale, TMtxVec Y, TCplx yScale)Result = sqr(X*xScale + Y*yScale), where X is a Matrix
2Matrix AddScaledSqr(TMtx X, TMtxVec Y, TCplx yScale)Result = sqr(X + Y*yScale), where X is a Matrix
3Matrix AddScaledSqr(TMtx X, TMtxVec Y, Double yScale)Result = sqr(X + Y*yScale) when X is a matrix
4Matrix AddScaledSqr(TMtx X, Double xScale, TMtxVec Y, Double yScale)Result = sqr(X*xScale + Y*yScale), when X is a Matrix
5Vector AddScaledSqr(TVec X, TCplx xScale, TMtxVec Y, TCplx yScale)Result = sqr(X*xScale + Y*yScale)
6Vector AddScaledSqr(TVec X, TMtxVec Y, TCplx yScale)Result = sqr(X + Y*yScale)
7Vector AddScaledSqr(TVec X, TMtxVec Y, Double yScale)Result = sqr(X + Y*yScale)
8Vector AddScaledSqr(TVec X, Double xScale, TMtxVec Y, Double yScale)Result = sqr(X*xScale + Y*yScale)

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

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

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

Returns: Matrix

Overload 2: Matrix AddScaledSqr(TMtx X, TMtxVec Y, TCplx yScale)

Compute sqr(X + Y*yScale), where X is a Matrix

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

Returns: Matrix

Overload 3: Matrix AddScaledSqr(TMtx X, TMtxVec Y, Double yScale)

Compute sqr(X + Y*yScale) when X is a matrix

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

Returns: Matrix

Remarks:

The operation does only per-element math.

Overload 4: Matrix AddScaledSqr(TMtx X, Double xScale, TMtxVec Y, Double yScale)

Compute sqr(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 5: Vector AddScaledSqr(TVec X, TCplx xScale, TMtxVec Y, TCplx yScale)

Compute sqr(X*xScale + Y*yScale)

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

Returns: Vector

Overload 6: Vector AddScaledSqr(TVec X, TMtxVec Y, TCplx yScale)

Compute sqr(X + Y*yScale)

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

Returns: Vector

Overload 7: Vector AddScaledSqr(TVec X, TMtxVec Y, Double yScale)

Compute sqr(X + Y*yScale)

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

Returns: Vector

Remarks:

Computes the square of (X + Y*yScale) without 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 = MtxExpr.Sqr(X + Y * yScale);
        Vector A2 = AddScaledSqr(X, Y, yScale);
        Vector A3 = new Vector();
        A3.AddScaledSqr(X, Y, yScale);

        if (!A2.IsEqual(A1)) Math387.ERaise("Problem");
        if (!A3.IsEqual(A1)) Math387.ERaise("Problem");
    }
}

Overload 8: Vector AddScaledSqr(TVec X, Double xScale, TMtxVec Y, Double yScale)

Compute sqr(X*xScale + Y*yScale)

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

Returns: Vector

Remarks:

Computes the square of the expression X*xScale + Y*yScale without temporary objects.

Examples
using Dew.Math;
using Dew.Math.Units;
namespace Dew.Examples
{
    void Example()
    {
        double xScale = 1.5, yScale = -1.5;
        Vector X = (Vector) new double[] { 1, 2, 3, 4 };
        Vector Y = (Vector) new double[] { 2, 3, 4, 5 };
        Vector A1 = MtxExpr.Sqr(X * xScale + Y * yScale);
        Vector A2 = AddScaledSqr(X, xScale, Y, yScale);
        Vector A3 = new Vector();
        A3.AddScaledSqr(X, xScale, Y, yScale);

        if (!A2.IsEqual(A1)) Math387.ERaise("Problem");
        if (!A3.IsEqual(A1)) Math387.ERaise("Problem");
    }
}