#include <stdlib.h>
#include <stdio.h>
#include <time.h>
#include <vecLib/vecLib.h>
int main (int argc, const char * argv[]) {
int n = 10000;
if (argc > 1) {
n = atoi(argv[1]);
if (n < 1) {
printf("First argument must be positive\n");
return 1;
}
}
time_t t[3];
float *f1 = malloc(n * sizeof(float));
float *f2 = malloc(n * sizeof(float));
double *d1 = malloc(n * sizeof(double));
double *d2 = malloc(n * sizeof(double));
srandomdev();
for (int ii = 0; ii < n; ii = ii + 1) {
d1[ii] = (double)random();
f1[ii] = (float)random();
}
t[0] = clock();
vvsincosf(f1, f2, f1, &n);
t[1] = clock();
vvsincos(d1, d2, d1, &n);
t[2] = clock();
double t1 = (double)(t[1] - t[0])/CLOCKS_PER_SEC;
double t2 = (double)(t[2] - t[1])/CLOCKS_PER_SEC;
printf("%f seconds for %i floats\n", t1, n);
printf("%f seconds for %i doubles\n", t2, n);
printf("float is %f times the speed of double\n", t2/t1);
return 0;
}