TSparseMtx.FixAngle Method

Overload List

#SignatureDescription
1TMtxVec FixAngleSets angle in [-2PI,2PI].
└ indexed: TMtxVec FixAngle(Int32 Index, Int32 Len)
2TMtxVec FixAngle(TMtxVec Src)Sets angle in [-2PI,2PI] for all Src elements.
└ indexed: TMtxVec FixAngle(TMtxVec Src, Int32 SrcIndex, Int32 Index, Int32 Len)

Overload 1: TMtxVec FixAngle

Sets angle in [-2PI,2PI].

Result: stored in self (calling object), returns self for chaining

Returns: ThetaRad within -2Dew.Math.Units.Math387.PI and Dew.Math.Units.Math387.PI interval.

Remarks:

Calling this function prior to passing the value to trigonometric functions can significantly improve numerical accuracy. For arguments larger than 10000, the computation of sine/cosine is speeded up by about 10x for SSE2/SSE3. The performance gains for classic FPU math are also significant. The cost of this function call is approx 30% of the cost of the sine function.

It is important to mention that the sine/cosine appear within many other functions especially complex versions of trigonometric functions. FixAngle method is never used implicitely within TMtxVec methods. To achieve maximum performance make sure that the arguments passed to complex trigonometric functions are "small" or scaled down.

Note
The vector must be real.

Indexed: TMtxVec FixAngle(Int32 Index, Int32 Len)

FixAngle for calling object complex elements [Index]..[Index+Len-1] in-place.

#NameTypeDescription
1IndexInt32start index
2LenInt32element count

Result: stored in self (calling object), returns self for chaining

Remarks:

An exception is raised if calling object Dew.Math.TMtxVec.Complex property is True or if array borders are overrun/underrun.

Overload 2: TMtxVec FixAngle(TMtxVec Src)

Sets angle in [-2PI,2PI] for all Src elements.

#NameTypeDescription
1SrcTMtxVecsource TVec or TMtx

Result: stored in self (calling object), returns self for chaining

Remarks:

Stores the results in the calling object. Size and Dew.Math.TMtxVec.Complex properties of the calling vector are set implicitly to match the Src object.

Indexed: TMtxVec FixAngle(TMtxVec Src, Int32 SrcIndex, Int32 Index, Int32 Len)

Sets angle in [-2PI,2PI] for Src elements [SrcIndex]..[SrcIndex+Len-1] and store the results in the calling object elements [Index]..[Index+Len-1].

#NameTypeDescription
1SrcTMtxVecsource TVec or TMtx
2SrcIndexInt32source start index
3IndexInt32start index
4LenInt32element count

Result: stored in self (calling object), returns self for chaining

Remarks:

Size and Dew.Math.TMtxVec.Complex properties of the calling object must be set explicitly. An exception is raised if Dew.Math.TMtxVecBase.ConditionCheck is True and array borders are overrun.