/** * Copyright (C) Mellanox Technologies Ltd. 2001-2018. ALL RIGHTS RESERVED. * * See file LICENSE for terms. */ #include #include #include /* calc_pi() would be profiled */ UCS_PROFILE_FUNC(double, calc_pi, (count), int count) { double pi_d_4; int n; pi_d_4 = 0.0; /* Profile a block of code */ { UCS_PROFILE_CODE("leibnitz") { for (n = 0; n < count; ++n) { pi_d_4 += pow(-1.0, n) / (2 * n + 1); /* create a timestamp for each step */ UCS_PROFILE_SAMPLE("step"); } } } return pi_d_4 * 4.0; } /* print_pi() would be profiled */ UCS_PROFILE_FUNC_VOID(print_pi, (pi), double pi) { /* Call printf() and profile it */ UCS_PROFILE_CALL(printf, "PI estimation is %.10f\n", pi); } int main(int argc, char **argv) { double pi = calc_pi(10); print_pi(pi); return 0; }