TOpenCLVector::PhaseSpectrum Method

Overload List

#SignatureDescription
1TOpenCLMtxVec *PhaseSpectrum(TOpenCLMtxVec *Vec);The phase angles (spectrum) of object elements.
2TOpenCLMtxVec *PhaseSpectrum(TOpenCLMtxVec *Vec, int VecIndex, int Index, int Len);Calculates the power spectrum from the Vec elements [VecIndex]..[VecIndex+Len-1].

Overload 1: TOpenCLMtxVec *PhaseSpectrum(TOpenCLMtxVec *Vec);

The phase angles (spectrum) of object elements.

#NameTypeDescription
1VecTOpenCLMtxVec *
Remarks:

Calculates the phase angles (spectrum) of all Vec object elements. Phase values are returned in radians and are in the range -PI,PI. Size and TOpenCLBase::Complex properties of the calling object are set implicitly to match Vec object. The phase angles are calculated from the following equation:

Phase[k]=arctan⁡ℑ(Vec[k])ℜ(Vec[k])\text{Phase}[k] = \arctan \frac{\Im (\text{Vec}[k])}{\Re (\text{Vec}[k])}
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;
    CreateIt(a, b);
    a->CopyCplxFromArray( DewArray<double>{1,2,3,-4});
    b->PhaseSpectrum(a);  // b = [arctan2(1,2), arctan2(3,-4)];
    FreeIt(a, b);
}
See Also: TOpenCLVector::PowerSpectrum, TOpenCLVector::ArcTan2
Declared in Dew::Math::TOpenCLMtxVec · Dew.Math/clMtxVec.h · Cross-compiler

Overload 2: TOpenCLMtxVec *PhaseSpectrum(TOpenCLMtxVec *Vec, int VecIndex, int Index, int Len);

Calculates the power spectrum from the Vec elements [VecIndex]..[VecIndex+Len-1].

#NameTypeDescription
1VecTOpenCLMtxVec *
2VecIndexint
3Indexint
4Lenint
Remarks:

Store the results in calling object elements [Index]..[Index+Len-1]. An exception is raised if array borders are overrun/underrun.

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