#include <stdio.h>
#include <math.h>
#include <cstdlib>
static int samples = 20e6;
static double pi_device()
{
    return 4.0 * sum<float>(
sqrt(x*x + y*y) < 1) / samples;
 
}
static double pi_host()
{
    for (int i = 0; i < samples; ++i) {
        float x = float(rand()) / RAND_MAX;
        float y = float(rand()) / RAND_MAX;
            count++;
    }
    return 4.0 * count / samples;
}
static void device_wrapper() { pi_device(); }
static void host_wrapper() { pi_host(); }
int main(int argc, char ** argv)
{
    try {
        int device = argc > 1 ? atoi(argv[1]) : 0;
        printf(
"device:  %.5f seconds to estimate  pi = %.5f\n", 
timeit(device_wrapper), pi_device());
        printf(
"  host:  %.5f seconds to estimate  pi = %.5f\n", 
timeit(host_wrapper), pi_host());
        fprintf(stderr, 
"%s\n", e.
what());
        throw;
    }
    #ifdef WIN32 // pause in Windows
    if (!(argc == 2 && argv[1][0] == '-')) {
        printf("hit [enter]...");
        fflush(stdout);
        getchar();
    }
    #endif
    return 0;
}