Overload List
Overload 1: TOpenCLBase *Power(const double Base, TOpenCLBase *Exponent);
| # | Name | Type | Description |
|---|---|---|---|
| 1 | Base | const double | |
| 2 | Exponent | TOpenCLBase * |
Overload 2: TOpenCLBase *Power(const TCplx &Base, TOpenCLBase *Exponent);
| # | Name | Type | Description |
|---|---|---|---|
| 1 | Base | const TCplx & | |
| 2 | Exponent | TOpenCLBase * |
Overload 3: TOpenCLBase *Power(TOpenCLBase *Base, const double Exponent);
| # | Name | Type | Description |
|---|---|---|---|
| 1 | Base | TOpenCLBase * | |
| 2 | Exponent | const double |
Overload 4: TOpenCLBase *Power(TOpenCLBase *Base, const TCplx &Exponent);
| # | Name | Type | Description |
|---|---|---|---|
| 1 | Base | TOpenCLBase * | |
| 2 | Exponent | const TCplx & |
Overload 5: TOpenCLMtxVec *Power(const double Exponent);
Raises base object elements to any power.
| # | Name | Type | Description |
|---|---|---|---|
| 1 | Exponent | const double |
Raises Base calling object elements to any power. The TOpenCLVector::IntPower is faster, if Exponent is an integer. Real valued power can handle only positive Exponent. TOpenCLVector::IntPower can handle negative exponent also. To compute a power to the negative exponent in general case or when the base is negative, use the complex version of the function.
Overload 6: TOpenCLMtxVec *Power(const TCplx &Exponent);
Raises all calling vector elements to complex power Exponent in-place.
| # | Name | Type | Description |
|---|---|---|---|
| 1 | Exponent | const TCplx & |
If the calling vector is real and has negative elements, the result will be NAN at those entries. To obtain a valid result in this case, extend the calling vector to complex with TOpenCLVector::ExtendToComplex method. In all real/complex combinations, the Power method will not automatically assume that a number is complex to speed up the computation.
Alternatively the user can of course always convert the real numbers to complex before passing them to the Power routine.
Overload 7: TOpenCLMtxVec *Power(const double Base, TOpenCLMtxVec *Exponent);
Raises base elements to exponent power.
| # | Name | Type | Description |
|---|---|---|---|
| 1 | Base | const double | |
| 2 | Exponent | TOpenCLMtxVec * |
Raises Base value to Exponent object values powers and store the results to calling object values. Size and TOpenCLBase::Complex properties of calling object are adjusted automatically.
Overload 8: TOpenCLMtxVec *Power(const TCplx &Base, TOpenCLMtxVec *Exponent);
Raises Base complex value to Exponent object values powers.
| # | Name | Type | Description |
|---|---|---|---|
| 1 | Base | const TCplx & | |
| 2 | Exponent | TOpenCLMtxVec * |
Store the results to calling object values. Size and TOpenCLBase::Complex properties of calling object are adjusted automatically.
Overload 9: TOpenCLMtxVec *Power(TOpenCLMtxVec *Base, const TCplx &Exponent);
Raises each of the Base object elements to complex Exponent power.
| # | Name | Type | Description |
|---|---|---|---|
| 1 | Base | TOpenCLMtxVec * | |
| 2 | Exponent | const TCplx & |
Size and TOpenCLBase::Complex properties of calling object are adjusted automatically.
Overload 10: TOpenCLMtxVec *Power(TOpenCLMtxVec *Base, const double Exponent);
Raises each of the Base object elements to real Exponent power.
| # | Name | Type | Description |
|---|---|---|---|
| 1 | Base | TOpenCLMtxVec * | |
| 2 | Exponent | const double |
Size and TOpenCLBase::Complex properties of calling object are adjusted automatically.
Overload 11: TOpenCLMtxVec *Power(TOpenCLMtxVec *Base, TOpenCLMtxVec *Exponent);
Raises each of Base object elements to corresponding power, stored in Exponenet elements.
| # | Name | Type | Description |
|---|---|---|---|
| 1 | Base | TOpenCLMtxVec * | |
| 2 | Exponent | TOpenCLMtxVec * |
Power[i] = Base[i]^Exponent[i]
Size and TOpenCLBase::Complex property of calling object are adjusted automatically. An exception is raised if Base and Exponent sizes do not match.