TOpenCLVector::PolarToCart Method

Overload List

#SignatureDescription
1TOpenCLBase *PolarToCart(TOpenCLBase *AmpltVec, TOpenCLBase *PhaseVec, int aIndex, int PIndex, int Index, int Len);
2TOpenCLMtxVec *PolarToCart(TOpenCLMtxVec *AmpltVec, TOpenCLMtxVec *PhaseVec);Converts the polar magnitude/phase pairs to cartesian pairs.
3TOpenCLMtxVec *PolarToCart(TOpenCLMtxVec *AmpltVec, TOpenCLMtxVec *PhaseVec, int aIndex, int PIndex, int Index, int Len);Convert AmpltVec elements [aIndex]..[aIndex+Len-1] and PhaseVec elements [PIndex]..[PIndex+Len-1] from polar form (radius,angle) to cartesian form (x,y).

Overload 1: TOpenCLBase *PolarToCart(TOpenCLBase *AmpltVec, TOpenCLBase *PhaseVec, int aIndex, int PIndex, int Index, int Len);

#NameTypeDescription
1AmpltVecTOpenCLBase *
2PhaseVecTOpenCLBase *
3aIndexint
4PIndexint
5Indexint
6Lenint
Declared in Dew::Math::TOpenCLBase · Dew.Math/clMtxVec.h · Cross-compiler

Overload 2: TOpenCLMtxVec *PolarToCart(TOpenCLMtxVec *AmpltVec, TOpenCLMtxVec *PhaseVec);

Converts the polar magnitude/phase pairs to cartesian pairs.

#NameTypeDescription
1AmpltVecTOpenCLMtxVec *
2PhaseVecTOpenCLMtxVec *
Remarks:

Convert all AmpltVec and PhaseVec elements (combined) from polar to cartesian form. If AmpltVec and PhaseVec size is not the same , an exeption is raised. The results are stored as complex numbers (x=Re, y=Im) in the calling object. Size and TOpenCLBase::Complex properties of the calling object are set implicitly to match AmpltVec and PhaseVec objects.

Examples
#include "Units.clMtxVec.h"
#include "clMtxVec.h"

using namespace Dew;
using namespace Dew::Math;
using namespace Dew::Math::Units::ClMtxVec;

void Example()
{
    TOpenCLVector *a, *b, *c;
    CreateIt(a, b, c);
    a->CopyFromArray( DewArray<double>{1,2,3,4});  // a = [1,2,3, 4] //magnitude
    b->CopyFromArray( DewArray<double>{1,0,1,-1}); // b = [1,0,1,-1] /phase
    c->PolarToCart(a,b); // result stored in c = projections to Re and Im axis
    FreeIt(a, b, c);
}
See Also: TOpenCLVector::CartToPolar
Declared in Dew::Math::TOpenCLMtxVec · Dew.Math/clMtxVec.h · Cross-compiler

Overload 3: TOpenCLMtxVec *PolarToCart(TOpenCLMtxVec *AmpltVec, TOpenCLMtxVec *PhaseVec, int aIndex, int PIndex, int Index, int Len);

Convert AmpltVec elements [aIndex]..[aIndex+Len-1] and PhaseVec elements [PIndex]..[PIndex+Len-1] from polar form (radius,angle) to cartesian form (x,y).

#NameTypeDescription
1AmpltVecTOpenCLMtxVec *
2PhaseVecTOpenCLMtxVec *
3aIndexint
4PIndexint
5Indexint
6Lenint
Remarks:

The results are stored as complex numbers (x=Re, y=Im) in the calling object elements [Index]..[Index+Len-1]. Size and TOpenCLBase::Complex properties of the calling object must be set explicitly. An exception is raised if array borders are overrun/underrun.

Declared in Dew::Math::TOpenCLMtxVec · Dew.Math/clMtxVec.h · Cross-compiler