MtxExpr::AddScaled Function

Overload List

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

Overload 1: Vector AddScaled(TVec *X, TVec *Y, double aScale);

Computes X + Y*Ascale

#NameTypeDescription
1XTVec *
2YTVec *
3aScaledouble
Remarks:

Internally calls Vector::AddScaled

Declared in Dew::Math::Units::MtxExpr · Dew.Math/Units.MtxExpr.h · Cross-compiler

Overload 2: Matrix AddScaled(TMtx *X, TMtx *Y, double aScale);

Computes X + Y*Ascale

#NameTypeDescription
1XTMtx *
2YTMtx *
3aScaledouble
Remarks:

Internally calls Matrix::AddScaled

Declared in Dew::Math::Units::MtxExpr · Dew.Math/Units.MtxExpr.h · Cross-compiler

Overload 3: Vector AddScaled(TVec *X, TVec *Y, const TCplx &aScale);

Computes X + Y*Ascale

#NameTypeDescription
1XTVec *
2YTVec *
3aScaleconst TCplx &
Remarks:

Internally calls Vector::AddScaled

Declared in Dew::Math::Units::MtxExpr · Dew.Math/Units.MtxExpr.h · Cross-compiler

Overload 4: Matrix AddScaled(TMtx *X, TMtx *Y, const TCplx &aScale);

Computes X + Y*Ascale

#NameTypeDescription
1XTMtx *
2YTMtx *
3aScaleconst TCplx &
Remarks:

Internally calls Matrix::AddScaled

Declared in Dew::Math::Units::MtxExpr · Dew.Math/Units.MtxExpr.h · Cross-compiler

Overload 5: Vector AddScaled(TVec *X, const double xScale, TMtxVec *Y, const double yScale);

Compute X*xScale + Y*yScale

#NameTypeDescription
1XTVec *
2xScaleconst double
3YTMtxVec *
4yScaleconst double
Remarks:

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

Examples
#include "MtxExpr.h"
#include "Units.Math387.h"
#include "Units.MtxExpr.h"

using namespace Dew;
using namespace Dew::Math;
using namespace Dew::Math::Units::Math387;
using namespace Dew::Math::Units::MtxExpr;

void Example()
{
    double xScale = 1.5;
    double yScale = -1.5;

    Vector X = { 1, 2, 3, 4 };
    Vector Y = { 2, 3, 4, 5 };

    Vector A1 = X * xScale + Y * yScale;
    Vector A2 = AddScaled(X, xScale, Y, yScale);
    Vector A3;
    A3.AddScaled(X, xScale, Y, yScale);

    if (!A2.IsEqual(A1)) ERaise("Problem");
    if (!A3.IsEqual(A1)) ERaise("Problem");
}
Declared in Dew::Math::Units::MtxExpr · Dew.Math/Units.MtxExpr.h · Cross-compiler

Overload 6: Matrix AddScaled(TMtx *X, const double xScale, TMtxVec *Y, const double yScale);

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

#NameTypeDescription
1XTMtx *
2xScaleconst double
3YTMtxVec *
4yScaleconst double
Remarks:

The operation does only per-element math.

Declared in Dew::Math::Units::MtxExpr · Dew.Math/Units.MtxExpr.h · Cross-compiler

Overload 7: Vector AddScaled(TVec *X, const double xScale, TMtxVec *Y, const double yScale, TMtxVec *Z, const double zScale);

Compute X*xScale + Y*yScale + Z*zScale

#NameTypeDescription
1XTVec *
2xScaleconst double
3YTMtxVec *
4yScaleconst double
5ZTMtxVec *
6zScaleconst double
Remarks:

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

Examples
#include "MtxExpr.h"
#include "Units.Math387.h"
#include "Units.MtxExpr.h"

using namespace Dew;
using namespace Dew::Math;
using namespace Dew::Math::Units::Math387;
using namespace Dew::Math::Units::MtxExpr;

void Example()
{
    double xScale = 1.0, yScale = 2.0, zScale = 3.0;
    Vector X = { 1, 2, 3, 4 };
    Vector Y = { 2, 3, 4, 5 };
    Vector Z = { 3, 4, 5, 6 };
    Vector A1 = X * xScale + Y * yScale + Z * zScale;
    Vector A2 = AddScaled(X, xScale, Y, yScale, Z, zScale);
    Vector A3;
    A3.AddScaled(X, xScale, Y, yScale, Z, zScale);
    if (!A2.IsEqual(A1)) ERaise("Problem");
    if (!A3.IsEqual(A1)) ERaise("Problem");
}
Declared in Dew::Math::Units::MtxExpr · Dew.Math/Units.MtxExpr.h · Cross-compiler

Overload 8: Matrix AddScaled(TMtx *X, const double xScale, TMtxVec *Y, const double yScale, TMtxVec *Z, const double zScale);

Compute X*xScale + Y*yScale + Z*zScale

#NameTypeDescription
1XTMtx *
2xScaleconst double
3YTMtxVec *
4yScaleconst double
5ZTMtxVec *
6zScaleconst double
Declared in Dew::Math::Units::MtxExpr · Dew.Math/Units.MtxExpr.h · Cross-compiler

Overload 9: Vector AddScaled(TVec *X, TMtxVec *Y, const double yScale);

Compute X + Y*yScale

#NameTypeDescription
1XTVec *
2YTMtxVec *
3yScaleconst double
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
#include "MtxExpr.h"
#include "Units.Math387.h"
#include "Units.MtxExpr.h"

using namespace Dew;
using namespace Dew::Math;
using namespace Dew::Math::Units::Math387;
using namespace Dew::Math::Units::MtxExpr;

void Example()
{
    double yScale = 1.5;
    Vector X = { 1, 2, 3, 4 };
    Vector Y = { 2, 3, 4, 5 };
    Vector A1 = X + Y * yScale;
    Vector A2 = AddScaled(X, Y, yScale);
    Vector A3;
    A3.AddScaled(X, Y, yScale);
    if (!A2.IsEqual(A1)) ERaise("Problem");
    if (!A3.IsEqual(A1)) ERaise("Problem");
}
Declared in Dew::Math::Units::MtxExpr · Dew.Math/Units.MtxExpr.h · Cross-compiler

Overload 10: Matrix AddScaled(TMtx *X, TMtxVec *Y, const double yScale);

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

#NameTypeDescription
1XTMtx *
2YTMtxVec *
3yScaleconst double
Declared in Dew::Math::Units::MtxExpr · Dew.Math/Units.MtxExpr.h · Cross-compiler

Overload 11: Vector AddScaled(TVec *X, TMtxVec *Y, const TCplx &yScale);

Compute X + Y*yScale

#NameTypeDescription
1XTVec *
2YTMtxVec *
3yScaleconst TCplx &
Declared in Dew::Math::Units::MtxExpr · Dew.Math/Units.MtxExpr.h · Cross-compiler

Overload 12: Matrix AddScaled(TMtx *X, TMtxVec *Y, const TCplx &yScale);

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

#NameTypeDescription
1XTMtx *
2YTMtxVec *
3yScaleconst TCplx &
Declared in Dew::Math::Units::MtxExpr · Dew.Math/Units.MtxExpr.h · Cross-compiler

Overload 13: Vector AddScaled(TVec *X, TMtxVec *Y, TMtxVec *Z, const double zScale);

Compute X + Y + Z*zScale

#NameTypeDescription
1XTVec *
2YTMtxVec *
3ZTMtxVec *
4zScaleconst double
Remarks:

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

Examples
#include "MtxExpr.h"
#include "Units.Math387.h"
#include "Units.MtxExpr.h"

using namespace Dew;
using namespace Dew::Math;
using namespace Dew::Math::Units::Math387;
using namespace Dew::Math::Units::MtxExpr;

void Example()
{
    double zScale = 2.0;
    Vector X = { 1, 2, 3, 4 };
    Vector Y = { 2, 3, 4, 5 };
    Vector Z = { 3, 4, 5, 6 };
    Vector A1 = X + Y + Z * zScale;
    Vector A2 = AddScaled(X, Y, Z, zScale);
    Vector A3;
    A3.AddScaled(X, Y, Z, zScale);
    if (!A2.IsEqual(A1)) ERaise("Problem");
    if (!A3.IsEqual(A1)) ERaise("Problem");
}
Declared in Dew::Math::Units::MtxExpr · Dew.Math/Units.MtxExpr.h · Cross-compiler

Overload 14: Matrix AddScaled(TMtx *X, TMtxVec *Y, TMtxVec *Z, const double zScale);

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

#NameTypeDescription
1XTMtx *
2YTMtxVec *
3ZTMtxVec *
4zScaleconst double
Declared in Dew::Math::Units::MtxExpr · Dew.Math/Units.MtxExpr.h · Cross-compiler

Overload 15: Vector AddScaled(TVec *X, TMtxVec *Y, TMtxVec *Z, const TCplx &zScale);

Compute X + Y + Z*zScale

#NameTypeDescription
1XTVec *
2YTMtxVec *
3ZTMtxVec *
4zScaleconst TCplx &
Declared in Dew::Math::Units::MtxExpr · Dew.Math/Units.MtxExpr.h · Cross-compiler

Overload 16: Matrix AddScaled(TMtx *X, TMtxVec *Y, TMtxVec *Z, const TCplx &zScale);

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

#NameTypeDescription
1XTMtx *
2YTMtxVec *
3ZTMtxVec *
4zScaleconst TCplx &
Declared in Dew::Math::Units::MtxExpr · Dew.Math/Units.MtxExpr.h · Cross-compiler

Overload 17: Vector AddScaled(TVec *X, TMtxVec *Y, const double yScale, TMtxVec *Z, const double zScale);

Compute X + Y*yScale + Z*zScale

#NameTypeDescription
1XTVec *
2YTMtxVec *
3yScaleconst double
4ZTMtxVec *
5zScaleconst double
Remarks:

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

Examples
#include "MtxExpr.h"
#include "Units.Math387.h"
#include "Units.MtxExpr.h"

using namespace Dew;
using namespace Dew::Math;
using namespace Dew::Math::Units::Math387;
using namespace Dew::Math::Units::MtxExpr;

void Example()
{
    double yScale = 1.5, zScale = 2.0;
    Vector X = { 1, 2, 3, 4 };
    Vector Y = { 2, 3, 4, 5 };
    Vector Z = { 3, 4, 5, 6 };
    Vector A1 = X + Y * yScale + Z * zScale;
    Vector A2 = AddScaled(X, Y, yScale, Z, zScale);
    Vector A3;
    A3.AddScaled(X, Y, yScale, Z, zScale);
    if (!A2.IsEqual(A1)) ERaise("Problem");
    if (!A3.IsEqual(A1)) ERaise("Problem");
}
Declared in Dew::Math::Units::MtxExpr · Dew.Math/Units.MtxExpr.h · Cross-compiler

Overload 18: Matrix AddScaled(TMtx *X, TMtxVec *Y, const double yScale, TMtxVec *Z, const double zScale);

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

#NameTypeDescription
1XTMtx *
2YTMtxVec *
3yScaleconst double
4ZTMtxVec *
5zScaleconst double
Declared in Dew::Math::Units::MtxExpr · Dew.Math/Units.MtxExpr.h · Cross-compiler

Overload 19: Vector AddScaled(TVec *X, TMtxVec *Y, const TCplx &yScale, TMtxVec *Z, const TCplx &zScale);

Compute X + Y*yScale + Z*zScale

#NameTypeDescription
1XTVec *
2YTMtxVec *
3yScaleconst TCplx &
4ZTMtxVec *
5zScaleconst TCplx &
Declared in Dew::Math::Units::MtxExpr · Dew.Math/Units.MtxExpr.h · Cross-compiler

Overload 20: Matrix AddScaled(TMtx *X, TMtxVec *Y, const TCplx &yScale, TMtxVec *Z, const TCplx &zScale);

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

#NameTypeDescription
1XTMtx *
2YTMtxVec *
3yScaleconst TCplx &
4ZTMtxVec *
5zScaleconst TCplx &
Declared in Dew::Math::Units::MtxExpr · Dew.Math/Units.MtxExpr.h · Cross-compiler

Overload 21: Vector AddScaled(TVec *X, const TCplx &xScale, TMtxVec *Y, const TCplx &yScale);

Compute X*xScale + Y*yScale

#NameTypeDescription
1XTVec *
2xScaleconst TCplx &
3YTMtxVec *
4yScaleconst TCplx &
Declared in Dew::Math::Units::MtxExpr · Dew.Math/Units.MtxExpr.h · Cross-compiler

Overload 22: Matrix AddScaled(TMtx *X, const TCplx &xScale, TMtxVec *Y, const TCplx &yScale);

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

#NameTypeDescription
1XTMtx *
2xScaleconst TCplx &
3YTMtxVec *
4yScaleconst TCplx &
Declared in Dew::Math::Units::MtxExpr · Dew.Math/Units.MtxExpr.h · Cross-compiler

Overload 23: Vector AddScaled(TVec *X, const TCplx &xScale, TMtxVec *Y, const TCplx &yScale, TMtxVec *Z, const TCplx &zScale);

Compute X*xScale + Y*yScale + Z*zScale

#NameTypeDescription
1XTVec *
2xScaleconst TCplx &
3YTMtxVec *
4yScaleconst TCplx &
5ZTMtxVec *
6zScaleconst TCplx &
Declared in Dew::Math::Units::MtxExpr · Dew.Math/Units.MtxExpr.h · Cross-compiler

Overload 24: Matrix AddScaled(TMtx *X, const TCplx &xScale, TMtxVec *Y, const TCplx &yScale, TMtxVec *Z, const TCplx &zScale);

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

#NameTypeDescription
1XTMtx *
2xScaleconst TCplx &
3YTMtxVec *
4yScaleconst TCplx &
5ZTMtxVec *
6zScaleconst TCplx &
Declared in Dew::Math::Units::MtxExpr · Dew.Math/Units.MtxExpr.h · Cross-compiler