欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
第三方跨平臺cpu性能測試,我的第一個開源項目求助
[打印本頁]
作者:
小旗風
時間:
2018-8-9 15:10
標題:
第三方跨平臺cpu性能測試,我的第一個開源項目求助
本人新手上路,搞了一個開源項目,目前這個開源項目已能在x86,arm,win,安卓上都能運行,但是在51單片上死活通不過,
本人測試的平臺與處理器已達10多種了,包括手機,平板,路由器,電腦,
開源項目網址如下:
https://gitee.com/test386/test
內有源碼與linux與win的可執行文件,同時也有10多種不同處理器,不同平臺的測試結果,
這里都是五一大神,幫我看一下,為何我的程序無法在keil上編釋通過多謝。
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <math.h>
#define INTEG_FUNC(x) fabs(sin(x))
double dclock(void);
int main(int argc, char * argv[])
{
clock_t start, finish;
double duration;
long * pi, * t, m, n, r, s;
int t0[][3] = {48, 32, 20, 24, 8, 4}, k0[][3] = {1, 1, 0, 1, 1, 1};
int n0[][3] = {18, 57, 239, 8, 57, 239}, d, i, j, k, p, q;
d = (argc > 1) ? (((i = atoi(argv[1])) < 0) ? 0 : i) : 9999;
q = (argc > 2) ? 1 : 0;
printf("%s\n\n", "pi calc..................................");
printf("pi= %s%d * arctg(1/%d) %s %d * arctg(1/%d) %s %d * arctg(1/%d) [%s]\n",
k0[q][0] ? "" : "-", t0[q][0], n0[q][0], k0[q][1] ? "+" : "-", t0[q][1],
n0[q][1], k0[q][2] ? "+" : "-", t0[q][2], n0[q][2], q ? "Stomer" : "Gauss");
if ((t = (long *)calloc((d += 5) + 1, sizeof(long))) == NULL) return 1;
if ((pi = (long *)calloc(d + 1, sizeof(long))) == NULL) return 2;
start = clock();
for (i = d; i >= 0; i--) pi[i] = 0;
for (p = 0; p < 3; p++) {
for (k=k0[q][p], n=n0[q][p], t[i=j=d]=t0[q][p], i--; i >= 0; i--) t[i] = 0;
for (r = 0, i = j; i >= 0; i--) {
r = (m = 10 * r + t[i]) % n;
t[i] = m / n;
k ? (pi[i] += t[i]) : (pi[i] -= t[i]);
}
while (j > 0 && t[j] == 0) j--;
for (k = !k, s = 3, n *= n; j > 0; k = !k, s += 2) {
for (r = 0, i = j; i >= 0; i--) {
r = (m = 10 * r + t[i]) % n;
t[i] = m / n;
}
while (j > 0 && t[j] == 0) j--;
for (r = 0, i = j; i >= 0; i--) {
r = (m = 10 * r + t[i]) % s;
m /= s;
k ? (pi[i] += m) : (pi[i] -= m);
}
}
}
for (n = i = 0; i <= d; pi[i++] = r) {
n = (m = pi[i] + n) / 10;
if ((r = m % 10) < 0) r += 10, n--;
}
printf("pi= %ld.", pi[d]);
for (i = d - 1; i >= 5; i--)
printf("%ld%s", pi[i], ((m = d - i + 5) % 65) ? ((m % 5) ? "" : " ") : "\n");
printf("%sDIGITS: %d\n", (m % 65) ? "\n" : "", d - 5);
//_______________________________________
// Loop counters and number of interior points
unsigned int ia, ja, Na;
// Stepsize, independent variable x, and accumulated sum
double duration2;
double stepa, x_i, suma;
// Timing variables for evaluation
double interval_begin = 0.0;
// Complete integral at
double interval_end = 2.0 * 3.141592653589793238;
// Start timing for the entire application
printf(" \n");
printf(" Number of | Computed Integral | \n");
printf(" Interior Points | | \n");
for (ja=2;ja<27;ja++)
{
printf("------------------------------------- \n");
// Compute the number of (internal rectangles + 1)
Na = 1 << ja;
// Compute stepsize for Na-1 internal rectangles
stepa = (interval_end - interval_begin) / Na;
// Approx. 1/2 area in first rectangle: f(x0) * [stepa/2]
suma= INTEG_FUNC(interval_begin) * stepa / 2.0;
// Apply midpoint rule:
// Given length = f(x), compute the area of the
// rectangle of width stepa
// Suma areas of internal rectangle: f(xi + stepa) * stepa
for (ia=1;ia<Na;ia++)
{
x_i = ia * stepa;
suma += INTEG_FUNC(x_i) * stepa;
}
// Approx. 1/2 area in last rectangle: f(xN) * [stepa/2]
suma += INTEG_FUNC(interval_end) * stepa / 2.0;
printf(" %10d | %14e | \n", Na, suma);
}
printf(" \n");
//_______________________________________
double duration1;
double testa;
double testb;
int sum=0;
int num=1;
int sum2=0;
int num2=2;
double sqrt(double x);
while(num<=90000000){
sum=sum+num;
num=num+2;
testa=sqrt(sum);
testa=testa*num;
}
printf("Anti cheating verification code is=:%d\n",sum);
printf("Floating-point precision %.38lf\n", testa);
while(num2<=90000000){
sum2=sum2+num2;
num2=num2+2;
testb=sqrt(sum2);
testb=testb*num2;
}
printf("Anti cheating verification code is=%d\n",sum2);
printf("Floating-point precision %.38lf\n", testb);
finish = clock();
duration = (double)(finish - start) / CLOCKS_PER_SEC;
printf("Total time %f seconds \n", duration);
printf("The less the time it is used, the more the performance becomes strongert!\n");
printf("Press Enter to exit\n");
sum = getchar( );
return 0;
}
復制代碼
作者:
angmall
時間:
2018-8-9 20:49
你是想要用大學的數學題叫小學生去做,你想會有好結果嗎?
作者:
小旗風
時間:
2018-8-10 08:54
angmall 發表于 2018-8-9 20:49
你是想要用大學的數學題叫小學生去做,你想會有好結果嗎?
我下步目標是用定時器,代替那個time.h功能,
然后對變量非法的問題,再想想辦法。
作者:
a798279714
時間:
2018-8-10 10:14
頂頂頂 看后面大佬的了
作者:
angmall
時間:
2018-8-11 10:42
Time.h
// Time.h for C51
// Prototypes for time clock functions.
#ifndef _Time_h
#define _Time_h
#ifndef _CLOCK_T_DEFINED
#define _CLOCK_T_DEFINED
typedef unsigned long clock_t;
#endif
#define CLOCKS_PER_SEC 1000
#define CLK_TCK 1000
#include<reg52.h> //包含頭文件,一般情況不需要改動,頭文件包含特殊功能寄存器的定義
static clock_t Clock_Tick=0;
clock_t clock( void );
/*------------------------------------------------
定時器初始化子程序
------------------------------------------------*/
void Init_Timer0(void)
{
TMOD &= 0xF0; //設置定時器模式
TMOD |= 0x01; //使用模式1,16位定時器,使用"|"符號可以在使用多個定時器時不受影響
TH0=0xFC; //給定初值,這里使用定時器0 1毫秒@12.000MHz
TL0=0x18; //設置定時初值
EA=1; //總中斷打開
ET0=1; //定時器中斷打開
TF0 = 0; //清除TF0標志
TR0=1; //定時器開關打開 定時器0開始計時
}
/*------------------------------------------------
定時器中斷子程序
------------------------------------------------*/
void Timer0_isr(void) interrupt 1 using 1
{
TH0=0xFC; //重新賦值 1毫秒
TL0=0x18;
Clock_Tick++;
}
clock_t clock( void )
{
return Clock_Tick;
}
#endif /* _Time_h */
復制代碼
歡迎光臨 (http://m.raoushi.com/bbs/)
Powered by Discuz! X3.1