Next: Non-local Goto Probes, Previous: Memory Allocation Probes, Up: Internal Probes [Contents][Index]

Some mathematical functions fall back to multiple precision arithmetic for some inputs to get last bit precision for their return values. This multiple precision fallback is much slower than the default algorithms and may have a significant impact on application performance. The systemtap probe markers described in this section may help you determine if your application calls mathematical functions with inputs that may result in multiple-precision arithmetic.

Unless explicitly mentioned otherwise, a precision of 1 implies 24 bits of precision in the mantissa of the multiple precision number. Hence, a precision level of 32 implies 768 bits of precision in the mantissa.

- Probe:
**slowatan2***(int*`$arg1`, double`$arg2`, double`$arg3`, double`$arg4`) This probe is triggered when the

`atan2`

function is called with an input that results in multiple precision computation. Argument`$arg1`is the precision with which computation succeeded. Arguments`$arg2`and`$arg3`are inputs to the`atan2`

function and`$arg4`is the computed result.

- Probe:
**slowatan2_inexact***(int*`$arg1`, double`$arg2`, double`$arg3`, double`$arg4`) This probe is triggered when the

`atan`

function is called with an input that results in multiple precision computation and none of the multiple precision computations result in an accurate result. Argument`$arg1`is the maximum precision with which computations were performed. Arguments`$arg2`and`$arg3`are inputs to the`atan2`

function and`$arg4`is the computed result.

- Probe:
**slowatan***(int*`$arg1`, double`$arg2`, double`$arg3`) This probe is triggered when the

`atan`

function is called with an input that results in multiple precision computation. Argument`$arg1`is the precision with which computation succeeded. Argument`$arg2`is the input to the`atan`

function and`$arg3`is the computed result.

- Probe:
**slowatan_inexact***(int*`$arg1`, double`$arg2`, double`$arg3`) This probe is triggered when the

`atan`

function is called with an input that results in multiple precision computation and none of the multiple precision computations result in an accurate result. Argument`$arg1`is the maximum precision with which computations were performed. Argument`$arg2`is the input to the`atan`

function and`$arg3`is the computed result.

- Probe:
**slowtan***(double*`$arg1`, double`$arg2`) This probe is triggered when the

`tan`

function is called with an input that results in multiple precision computation with precision 32. Argument`$arg1`is the input to the function and`$arg2`is the computed result.

- Probe:
**slowasin***(double*`$arg1`, double`$arg2`) This probe is triggered when the

`asin`

function is called with an input that results in multiple precision computation with precision 32. Argument`$arg1`is the input to the function and`$arg2`is the computed result.

- Probe:
**slowacos***(double*`$arg1`, double`$arg2`) This probe is triggered when the

`acos`

function is called with an input that results in multiple precision computation with precision 32. Argument`$arg1`is the input to the function and`$arg2`is the computed result.

- Probe:
**slowsin***(double*`$arg1`, double`$arg2`) This probe is triggered when the

`sin`

function is called with an input that results in multiple precision computation with precision 32. Argument`$arg1`is the input to the function and`$arg2`is the computed result.

- Probe:
**slowcos***(double*`$arg1`, double`$arg2`) This probe is triggered when the

`cos`

function is called with an input that results in multiple precision computation with precision 32. Argument`$arg1`is the input to the function and`$arg2`is the computed result.

- Probe:
**slowsin_dx***(double*`$arg1`, double`$arg2`, double`$arg3`) This probe is triggered when the

`sin`

function is called with an input that results in multiple precision computation with precision 32. Argument`$arg1`is the input to the function,`$arg2`is the error bound of`$arg1`and`$arg3`is the computed result.

- Probe:
**slowcos_dx***(double*`$arg1`, double`$arg2`, double`$arg3`) This probe is triggered when the

`cos`

function is called with an input that results in multiple precision computation with precision 32. Argument`$arg1`is the input to the function,`$arg2`is the error bound of`$arg1`and`$arg3`is the computed result.