TMtx *AddTensorProd(TVec *Vec1, TVec *Vec2, bool ConjVec2 = false) const;
Calculates the tensor product of two vectors and adds the result to calling matrix.
Remarks:
Calculates the tensor product of Vec1 and Vec2 vectors and adds the result to the calling matrix by using the following formula:
Y=Vec1 X Vec2 + Y.
If the ConjVec2 parameter is true, then the result will be tensor product of Vec1 and conjugated Vec2. The Matrix::Rows property is set to Vec1.Matrix::Length and Matrix::Cols property is set to Vec2.Matrix::Length. The Matrix::Complex property of the calling matrix is adjusted automatically.
Examples
#include "MtxExpr.h"
using namespace Dew;
using namespace Dew::Math;
void Example()
{
Matrix a, b;
Vector v1, v2;
// Test non quadratic general matrix
a.SetIt(2, 2, false, DewArray<double>{0, 2, 2, 0});
v1.SetIt(false, DewArray<double>{1, 0});
v2.SetIt(false, DewArray<double>{0, 1});
a.AddTensorProd(v1, v2, false);
b.SetIt(2, 2, false, DewArray<double>{0, 3, 2, 0});
if (!(a == b)) throw tException("Not same");
}
See Also: Matrix::TensorProd
Declared in Dew::Math::Matrix · Dew.Math/MtxExpr.h · Cross-compiler