📄 fast_exp_test.c
字号:
#include <stdio.h>#include <stdlib.h>#include <math.h>#include <sys/time.h>int main(){ int i,j,k; long period; double pre[30]; double base,r; struct timeval before, after; base = 0.99999; pre[0] = base; for(i=1;i<30;i++) { pre[i] = pre[i-1]*pre[i-1]; } gettimeofday(&before,NULL); for(i=0;i<10000000;i++) { r = pow(base, 120000); } printf("%12lf \n", r); gettimeofday(&after,NULL); period = (after.tv_sec-before.tv_sec)*1000*1000; period = period+after.tv_usec-before.tv_usec; printf("Time needed for original pow function is %d ms \n",period/1000); gettimeofday(&before,NULL); for(i=0;i<10000000;i++) { j=0; k=120000; r=1; while(k>0) { if(k%2==1) r= r*pre[j]; j++; k=k/2; } } printf("%12lf \n", r); gettimeofday(&after,NULL); period = (after.tv_sec-before.tv_sec)*1000*1000; period = period+after.tv_usec-before.tv_usec; printf("Time needed for fast pow function is %d ms \n",period/1000); return 0;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -