MtxExpr.SubScaledC Method

Overload List

#SignatureDescription
1Matrix SubScaledC(TMtx X, TCplx xScale, TMtxVec Y, TCplx yScale, TCplx Z)Result = X*xScale - Y*yScale - zScalar, where X is a Matrix
2Matrix SubScaledC(TMtx X, TMtxVec Y, TCplx yScale, TCplx Z)Result = X - Y*yScale - zScalar, where X is a Matrix
3Matrix SubScaledC(TMtx X, TMtxVec Y, Double yScale, Double Z)Result = X - Y*yScale - zScalar, where X is a Matrix
4Matrix SubScaledC(TMtx X, Double xScale, TMtxVec Y, Double yScale, Double Z)Result = X*xScale - Y*yScale - zScalar, when X is a Matrix
5Vector SubScaledC(TVec X, TCplx xScale, TMtxVec Y, TCplx yScale, TCplx Z)Result = X*xScale - Y*yScale - zScalar
6Vector SubScaledC(TVec X, TMtxVec Y, TCplx yScale, TCplx Z)Result = X - Y*yScale - zScalar
7Vector SubScaledC(TVec X, TMtxVec Y, Double yScale, Double Z)Result = X - Y*yScale - zScalar
8Vector SubScaledC(TVec X, Double xScale, TMtxVec Y, Double yScale, Double Z)Result = X*xScale - Y*yScale - zScalar

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

Compute X*xScale - Y*yScale - zScalar, where X is a Matrix

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

Returns: Matrix

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

Compute X - Y*yScale - zScalar, where X is a Matrix

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

Returns: Matrix

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

Compute X - Y*yScale - zScalar, where X is a Matrix

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

Returns: Matrix

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

Compute X*xScale - Y*yScale - zScalar, when X is a Matrix

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

Returns: Matrix

Overload 5: Vector SubScaledC(TVec X, TCplx xScale, TMtxVec Y, TCplx yScale, TCplx Z)

Compute X*xScale - Y*yScale - zScalar

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

Returns: Vector

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

Compute X - Y*yScale - zScalar

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

Returns: Vector

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

Compute X - Y*yScale - zScalar

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

Returns: Vector

Remarks:

Computes the result of subtracting Y scaled by yScale and a scalar zScalar from X, without creating temporary objects.

Examples
using Dew.Math;
using Dew.Math.Units;

namespace Dew.Examples
{
    void Example()
    {
        double yScale = 1.5, zScalar = 3.0;
        Vector X = (Vector) new double[] { 5, 6, 7, 8 };
        Vector Y = (Vector) new double[] { 1, 2, 3, 4 };
        Vector A1 = X - Y * yScale - zScalar;
        Vector A2 = SubScaledC(X, yScale, Y, zScalar); // Adjust parameter order if needed.
        Vector A3 = new Vector();
        A3.SubScaledC(X, yScale, Y, zScalar);
        if (!A2.IsEqual(A1)) Math387.ERaise("Problem");
        if (!A3.IsEqual(A1)) Math387.ERaise("Problem");
    }
}

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

Compute X*xScale - Y*yScale - zScalar

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

Returns: Vector

Remarks:

Computes the expression X*xScale - Y*yScale - zScalar without temporary objects.

Examples
using Dew.Math;
using Dew.Math.Units;
namespace Dew.Examples
{
    void Example()
    {
        double xScale = 1.0, yScale = 2.0, zScalar = 3.0;
        Vector X = (Vector) new double[] { 5, 6, 7, 8 };
        Vector Y = (Vector) new double[] { 1, 2, 3, 4 };
        Vector A1 = X * xScale - Y * yScale - zScalar;
        Vector A2 = SubScaledC(X, xScale, Y, yScale, zScalar);
        Vector A3 = new Vector();
        A3.SubScaledC(X, xScale, Y, yScale, zScalar);
        if (!A2.IsEqual(A1)) Math387.ERaise("Problem");
        if (!A3.IsEqual(A1)) Math387.ERaise("Problem");
    }
}