diff options
Diffstat (limited to 'manual')
-rw-r--r-- | manual/probes.texi | 98 |
1 files changed, 98 insertions, 0 deletions
diff --git a/manual/probes.texi b/manual/probes.texi index 1a45c69b91..5492bb79ff 100644 --- a/manual/probes.texi +++ b/manual/probes.texi @@ -16,6 +16,7 @@ arguments. @menu * Memory Allocation Probes:: Probes in the memory allocation subsystem +* Mathematical Function Probes:: Probes in mathematical functions @end menu @node Memory Allocation Probes @@ -255,3 +256,100 @@ This probe is triggered when function @code{free} decides to adjust the dynamic brk/mmap thresholds. Argument @var{$arg1} and @var{$arg2} are the adjusted mmap and trim thresholds, respectively. @end deftp + +@node Mathematical Function Probes +@section Mathematical Function Probes + +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. + +@deftp Probe slowexp_p6 (double @var{$arg1}, double @var{$arg2}) +This probe is hit when the @code{exp} function is called with an input that +results in multiple precision computation with precision 6. Argument +@var{$arg1} is the input value and @var{$arg2} is the computed output. +@end deftp + +@deftp Probe slowexp_p32 (double @var{$arg1}, double @var{$arg2}) +This probe is hit when the @code{exp} function is called with an input that +results in multiple precision computation with precision 32. Argument +@var{$arg1} is the input value and @var{$arg2} is the computed output. +@end deftp + +@deftp Probe slowpow_p10 (double @var{$arg1}, double @var{$arg2}, double @var{$arg3}, double @var{$arg4}) +This probe is hit when the @code{pow} function is called with inputs that +result in multiple precision computation with precision 10. Arguments +@var{$arg1} and @var{$arg2} are the input values, @code{$arg3} is the value +computed in the fast phase of the algorithm and @code{$arg4} is the final +accurate value. +@end deftp + +@deftp Probe slowpow_p32 (double @var{$arg1}, double @var{$arg2}, double @var{$arg3}, double @var{$arg4}) +This probe is hit when the @code{pow} function is called with an input that +results in multiple precision computation with precision 32. Arguments +@var{$arg1} and @var{$arg2} are the input values, @code{$arg3} is the value +computed in the fast phase of the algorithm and @code{$arg4} is the final +accurate value. +@end deftp + +@deftp Probe slowlog (int @var{$arg1}, double @var{$arg2}, double @var{$arg3}) +This probe is hit when the @code{log} function is called with an input that +results in multiple precision computation. Argument @var{$arg1} is the +precision with which the computation succeeded. Argument @var{$arg2} is the +input and @var{$arg3} is the computed output. +@end deftp + +@deftp Probe slowlog_inexact (int @var{$arg1}, double @var{$arg2}, double @var{$arg3}) +This probe is hit when the @code{log} 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 @var{$arg1} is the maximum +precision with which computations were performed. Argument @var{$arg2} is the +input and @var{$arg3} is the computed output. +@end deftp + +@deftp Probe slowatan2 (int @var{$arg1}, double @var{$arg2}, double @var{$arg3}, double @var{$arg4}) +This probe is hit when the @code{atan2} function is called with an input that +results in multiple precision computation. Argument @var{$arg1} is the +precision with which computation succeeded. Arguments @var{$arg2} and +@var{$arg3} are inputs to the @code{atan2} function and @var{$arg4} is the +computed result. +@end deftp + +@deftp Probe slowatan2_inexact (int @var{$arg1}, double @var{$arg2}, double @var{$arg3}, double @var{$arg4}) +This probe is hit when the @code{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 @var{$arg1} is the maximum +precision with which computations were performed. Arguments @var{$arg2} and +@var{$arg3} are inputs to the @code{atan2} function and @var{$arg4} is the +computed result. +@end deftp + +@deftp Probe slowatan (int @var{$arg1}, double @var{$arg2}, double @var{$arg3}) +This probe is hit when the @code{atan} function is called with an input that +results in multiple precision computation. Argument @var{$arg1} is the +precision with which computation succeeded. Argument @var{$arg2} is the +input to the @code{atan} function and @var{$arg3} is the computed result. +@end deftp + +@deftp Probe slowatan_inexact (int @var{$arg1}, double @var{$arg2}, double @var{$arg3}) +This probe is hit when the @code{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 @var{$arg1} is the maximum +precision with which computations were performed. Argument @var{$arg2} is the +input to the @code{atan} function and @var{$arg3} is the computed result. +@end deftp + +@deftp Probe slowtan (double @var{$arg1}, double @var{$arg2}) +This probe is hit when the @code{tan} function is called with an input that +results in multiple precision computation with precision 32. Argument +@var{$arg1} is the input to the function and @var{$arg2} is the computed +result. +@end deftp |