⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mqth2.cpp

📁 用来测试ESL DSP C COMPILER数学函数库是否正确的VC程序
💻 CPP
📖 第 1 页 / 共 2 页
字号:
// MQTH2.cpp : Defines the entry point for the console application.
//

// mathtest.cpp : Defines the entry point for the console application.
//
#include"stdio.h"


#include"danim.h"
#include "stdafx.h"
#define  testnum

char  ch3[8*200+1];
char  ch10[8*200+1];
unsigned short  ch15[200+1];

int main(int argc, char* argv[])
{
  int i,j,n,k,h,num,inputnum;
   double Floatnum1;
#ifdef  testnum
  char  ch1[8]={0xf8,0x08,0x82,0xed,0xe6,0x4a,0x7b,0x40};  /////0.149184  vc6.0   X
   char  ch2[8]={0x6a,0x20,0x99,0x6d,0xfd,0xf4,0x4f,0x67}; /////0.148631  vc6.0   X
  char  ch8[8]={0x69,0x20,0x99,0x6d,0xfd,0xf4,0x4f,0x67};
  
   unsigned long* pRes = (unsigned long*)(&Floatnum1);

   *(pRes+0)=ch1[0]&0xff|((ch1[1]&0xff)<<8)|((ch1[2]&0xff)<<16)|((ch1[3]&0xff)<<24);
   *(pRes+1)=ch1[4]&0xff|((ch1[5]&0xff)<<8)|((ch1[6]&0xff)<<16)|((ch1[7]&0xff)<<24);
    printf("%f  \n",Floatnum1);
    Floatnum1=exp(Floatnum1);
    printf("%f  \n",Floatnum1);

   *(pRes+0)=ch2[0]&0xff|((ch2[1]&0xff)<<8)|((ch2[2]&0xff)<<16)|((ch2[3]&0xff)<<24);
   *(pRes+1)=ch2[4]&0xff|((ch2[5]&0xff)<<8)|((ch2[6]&0xff)<<16)|((ch2[7]&0xff)<<24);
     printf("%f  \n",Floatnum1);

   *(pRes+0)=ch8[0]&0xff|((ch8[1]&0xff)<<8)|((ch8[2]&0xff)<<16)|((ch8[3]&0xff)<<24);
   *(pRes+1)=ch8[4]&0xff|((ch8[5]&0xff)<<8)|((ch8[6]&0xff)<<16)|((ch8[7]&0xff)<<24);
    printf("%f  \n",Floatnum1);      ////esl
 

#endif 
  
  inputnum=0;
   printf("please input num<200:");
  scanf("%d",&inputnum);
  printf("\n");


   Filaprintfceil(inputnum);
   Filaprintfcosh(inputnum);
  Filaprintfexp(inputnum);
  Filaprintffabs(inputnum);
  Filaprintffloor(inputnum);

   Filaprintlog(inputnum);
   Filaprintflog10(inputnum);
   Filaprintfsinh(inputnum);
  Filaprintfsqrt(inputnum);
   Filaprintftanh(inputnum);
   Filaprintfsin(inputnum);
   Filaprintfcos(inputnum);
   Filaprintftan(inputnum);
   Filaprintfasin(inputnum);
   Filaprintfacos(inputnum);
   Filaprintfatan(inputnum);
  return 0;
}

int  Filaprintf(char * ch4,char* ch11 ,char* ch16 ,int num,int IsFirst)
{
int i,j,k,sk;
FILE *fp;
char ch;
char ch5[2];

char Nextline=10;
char str1[100]="int InputNum=";
char str3[10]="*8]={";
char str4[10]="]={";
char str7[10]="////";
if(IsFirst==1)
{
if((fp=fopen("c:\\math.h","wb"))==NULL)
{
printf("1 time Cannot open file strike any key exit!");
return 0;
}
fclose(fp);
}
 if((fp=fopen("c:\\math.h","ab+"))==NULL)
{
printf("2 time Cannot open file strike any key exit!");
return 0;
}

  if(IsFirst==1)
  {
 fputs(str1,fp);
ch=(num/8);
Fromnumtochar(ch,ch5);
fputc('0',fp);
fputc('x',fp);
fputc(ch5[0],fp);
fputc(ch5[1],fp);
fputc(';',fp);
fputc(Nextline,fp);
  }

 fputs(ch16,fp);
{
 ch=(num/8);
Fromnumtochar(ch,ch5);
fputc('0',fp);
fputc('x',fp);
fputc(ch5[0],fp);
fputc(ch5[1],fp);
}
fputs(str4,fp);

if(num>0)
{
fputc('0',fp);
fputc('x',fp);
Fromnumtochar((ch15[0]&0xff00)>>8,ch5);
fputc(ch5[0],fp);
fputc(ch5[1],fp);
Fromnumtochar((ch15[0]&0xff),ch5);
fputc(ch5[0],fp);
fputc(ch5[1],fp);
}

for(j=1;j<num/8;j++)
{
fputc(',',fp);
fputc('0',fp);
fputc('x',fp);
Fromnumtochar((ch15[j]&0xff00)>>8,ch5);
fputc(ch5[0],fp);
fputc(ch5[1],fp);
Fromnumtochar((ch15[j]&0xff),ch5);
fputc(ch5[0],fp);
fputc(ch5[1],fp);
}
fputc('}',fp);
fputc(';',fp);
fputc(Nextline,fp);
fputc(Nextline,fp);


fputs(ch4,fp);
{
 ch=(num/8);
Fromnumtochar(ch,ch5);
fputc('0',fp);
fputc('x',fp);
fputc(ch5[0],fp);
fputc(ch5[1],fp);
}
fputs(str3,fp);

if(num>0)
{
fputc('0',fp);
fputc('x',fp);
Fromnumtochar(ch10[0],ch5);
fputc(ch5[0],fp);
fputc(ch5[1],fp);

}

for(j=1;j<num;j++)
{
fputc(',',fp);
if(j%8==0)
{
fputs(str7,fp);
Fromnumtochar(j/8-1,ch5);
fputc(ch5[0],fp);
fputc(ch5[1],fp);
fputc(Nextline,fp);
}
fputc('0',fp);
fputc('x',fp);

Fromnumtochar(ch10[j],ch5);
fputc(ch5[0],fp);
fputc(ch5[1],fp);
}
fputc('}',fp);
fputc(';',fp);
fputc(Nextline,fp);
fputc(Nextline,fp);

fputs(ch11,fp);
{
ch=(num/8);
Fromnumtochar(ch,ch5);
fputc('0',fp);
fputc('x',fp);
fputc(ch5[0],fp);
fputc(ch5[1],fp);
}
fputs(str3,fp);
if(num>0)
{
fputc('0',fp);
fputc('x',fp);
Fromnumtochar(ch3[0],ch5);
fputc(ch5[0],fp);
fputc(ch5[1],fp);

}
 sk=0;
for(j=1;j<num;j++)
{

 fputc(',',fp);
if(j%8==0)
{
fputs(str7,fp);
Fromnumtochar(j/8-1,ch5);
fputc(ch5[0],fp);
fputc(ch5[1],fp);
fputc(Nextline,fp);
}
  fputc('0',fp);
  fputc('x',fp);

Fromnumtochar(ch3[j],ch5);
fputc(ch5[0],fp);
fputc(ch5[1],fp);
}
fputc('}',fp);
fputc(';',fp);
fputc(Nextline,fp);
fputc(Nextline,fp);

rewind(fp);
ch=fgetc(fp);
/*
while (ch!=EOF)
{
putchar(ch);
ch=fgetc(fp);
}
*/
fclose(fp);

return 0;
   }

int  Fromnumtochar(char ch6,char *ch4)
{
 int i;
 char ch1,ch2;
 int num1,num2;
 num1=(ch6&0xf);
 num2= (( ch6&0xf0)>>4);

 for(i=0;i<2;i++)
 {

 switch(num2)
    {
    case 0:
      ch2='0';
      break;
    case 1:
      ch2='1';
      break;
    case 2:
      ch2='2';
        break;
    case 3:
      ch2='3';
       break;
    case 4:
      ch2='4';
       break;
    case 5:
      ch2='5';
        break;
    case 6:
      ch2='6';
      break;
    case 7:
      ch2='7';
      break;
    case 8:
      ch2='8';
      break;
    case 9:
      ch2='9';
      break;
    case 10:
      ch2='a';
      break;
    case 11:
      ch2='b';
      break;
    case 12:
      ch2='c';
      break;
      case 13:
      ch2='d';
      break;
    case 14:
      ch2='e';
      break;
    case 15:
      ch2='f';
      break;
    }
    ch4[i]=ch2;
   num2=num1;
   }



 return 0;

}



int  Filaprintfceil(int number)
{
  char str1[100]="unsigned char __rom InputNumceil[";
  char str2[100]="unsigned char __rom OutptNumceil[";
  char str4[100]="unsigned int __rom InputrandomNumceil[";

  int i,j,n,k,h,num,Ramnum;
  char  *ch1;
  char  *ch13;
  char  ch2[8];
  char  ch23[8];
  double Floatnum1,Floatnum2,Floatnum3;
  unsigned long* pRes = (unsigned long*)(&Floatnum1);

  
  for(i=0;i<number;i++)
  { 
     k=0;
	  k=rand()%2;
  Ramnum=rand();

   ch15[i]=Ramnum;

  Floatnum1=(Ramnum-number)*2*M_PI;

    if(k==1)
    Floatnum1=-Floatnum1;
   ch2[0]=(*(pRes+0)&0xff);
   ch2[1]=((*(pRes+0)&0xff00)>>8)&0xff;
   ch2[2]=((*(pRes+0)&0xff0000)>>16)&0xff;
   ch2[3]=((*(pRes+0)&0xff000000)>>24)&0xff;
   ch2[4]=(*(pRes+1)&0xff);
   ch2[5]=((*(pRes+1)&0xff00)>>8)&0xff;
   ch2[6]=((*(pRes+1)&0xff0000)>>16)&0xff;
   ch2[7]=((*(pRes+1)&0xff000000)>>24)&0xff;

 
  for(j=0;j<8;j++)
  {
   ch10[i*8+j]= ch2[j]&0xff;
   }
    Floatnum2=Floatnum1;
  Floatnum1=ceil(Floatnum2);

   ch2[0]=(*(pRes+0)&0xff);
   ch2[1]=((*(pRes+0)&0xff00)>>8)&0xff;
   ch2[2]=((*(pRes+0)&0xff0000)>>16)&0xff;
   ch2[3]=((*(pRes+0)&0xff000000)>>24)&0xff;
   ch2[4]=(*(pRes+1)&0xff);
   ch2[5]=((*(pRes+1)&0xff00)>>8)&0xff;
   ch2[6]=((*(pRes+1)&0xff0000)>>16)&0xff;
   ch2[7]=((*(pRes+1)&0xff000000)>>24)&0xff;

  for(j=0;j<8;j++)
  {
    ch3[i*8+j]= ch2[j]&0xff;
   }

  }
 
 ch10[number*8]='\0';
 ch3[number*8]='\0';
 Filaprintf(str1,str2,str4,number*8,1);
 return 0;

}

int  Filaprintfcosh(int number)
{
  char str1[100]="unsigned char __rom InputNumcosh[";
  char str2[100]="unsigned char __rom OutptNumcosh[";
  char str4[100]="unsigned int __rom InputrandomNumcosh[";

  int i,j,n,k,h,num,Ramnum;
  char  *ch1;
  char  *ch13;
  char  ch2[8];
  char  ch23[8];
  double Floatnum1,Floatnum2,Floatnum3;
  unsigned long* pRes = (unsigned long*)(&Floatnum1);


  for(i=0;i<number;i++)
  {
      k=0;
	  k=rand()%2;
  Ramnum=rand();

   ch15[i]=Ramnum;
 
  Floatnum1=(Ramnum-number)*2*M_PI;
   Floatnum1=1/Floatnum1;
    if(k==1)
    Floatnum1=-Floatnum1;
   
   ch2[0]=(*(pRes+0)&0xff);
   ch2[1]=(*(pRes+0)&0xff00)>>8;
   ch2[2]=(*(pRes+0)&0xff0000)>>16;
   ch2[3]=(*(pRes+0)&0xff000000)>>24;
   ch2[4]=(*(pRes+1)&0xff);
   ch2[5]=(*(pRes+1)&0xff00)>>8;
   ch2[6]=(*(pRes+1)&0xff0000)>>16;
   ch2[7]=(*(pRes+1)&0xff000000)>>24;

 
  for(j=0;j<8;j++)
  {
   ch10[i*8+j]= ch2[j]&0xff;
   }
    Floatnum2=Floatnum1;
  Floatnum1=cosh(Floatnum2);

   ch2[0]=(*(pRes+0)&0xff);
   ch2[1]=(*(pRes+0)&0xff00)>>8;
   ch2[2]=(*(pRes+0)&0xff0000)>>16;
   ch2[3]=(*(pRes+0)&0xff000000)>>24;
   ch2[4]=(*(pRes+1)&0xff);
   ch2[5]=(*(pRes+1)&0xff00)>>8;
   ch2[6]=(*(pRes+1)&0xff0000)>>16;
   ch2[7]=(*(pRes+1)&0xff000000)>>24;

  for(j=0;j<8;j++)
  {
    ch3[i*8+j]= ch2[j]&0xff;
   }

  }
 
 ch10[number*8]='\0';
 ch3[number*8]='\0';
 Filaprintf(str1,str2,str4,number*8,0);
 return 0;

}
int  Filaprintfexp(int number)
{
  char str1[100]="unsigned int __rom InputNumexp[";
 char str2[100]="unsigned long __rom OutptNumexp[";
 char str4[100]="unsigned int __rom Inputrandomexp[";

  int i,j,n,k,h,num,Ramnum;
  char  *ch1;
  char  *ch13;
  char  ch2[8];
  char  ch23[8];
  double Floatnum1,Floatnum2,Floatnum3;
  unsigned long* pRes = (unsigned long*)(&Floatnum1);

k=0;
  for(i=0;i<number;i++)
  {
     k=0;
	  k=rand()%2;
  Ramnum=rand()%0x7f;

   ch15[i]=Ramnum;
  Floatnum1=Ramnum+number;
  Floatnum1=Floatnum1*M_PI;

   if(k==1)
    Floatnum1=-Floatnum1;
   
   ch2[0]=(*(pRes+0)&0xff);
   ch2[1]=(*(pRes+0)&0xff00)>>8;
   ch2[2]=(*(pRes+0)&0xff0000)>>16;
   ch2[3]=(*(pRes+0)&0xff000000)>>24;
   ch2[4]=(*(pRes+1)&0xff);
   ch2[5]=(*(pRes+1)&0xff00)>>8;
   ch2[6]=(*(pRes+1)&0xff0000)>>16;
   ch2[7]=(*(pRes+1)&0xff000000)>>24;

 
  for(j=0;j<8;j++)
  {
   ch10[i*8+j]= ch2[j]&0xff;
   }
    Floatnum2=Floatnum1;
  Floatnum1=exp(Floatnum2);

   ch2[0]=(*(pRes+0)&0xff);
   ch2[1]=(*(pRes+0)&0xff00)>>8;
   ch2[2]=(*(pRes+0)&0xff0000)>>16;
   ch2[3]=(*(pRes+0)&0xff000000)>>24;
   ch2[4]=(*(pRes+1)&0xff);
   ch2[5]=(*(pRes+1)&0xff00)>>8;
   ch2[6]=(*(pRes+1)&0xff0000)>>16;
   ch2[7]=(*(pRes+1)&0xff000000)>>24;

  for(j=0;j<8;j++)
  {
    ch3[i*8+j]= ch2[j]&0xff;
   }

  }
 
 ch10[number*8]='\0';
 ch3[number*8]='\0';
 Filaprintf(str1,str2,str4,number*8,0);
 return 0;

}
int  Filaprintffabs(int number)
{
 char str1[100]="unsigned char __rom InputNumfabs[";
  char str2[100]="unsigned char __rom OutptNumfabs[";
  char str4[100]="unsigned int __rom InputrandomNumfabs[";

  int i,j,n,k,h,num,Ramnum;
  char  *ch1;
  char  *ch13;
  char  ch2[8];
  char  ch23[8];
  double Floatnum1,Floatnum2,Floatnum3;
  unsigned long* pRes = (unsigned long*)(&Floatnum1);

  k=0;
  for(i=0;i<number;i++)
  {
    k=0;
	  k=rand()%2;
  Ramnum=rand();

   ch15[i]=Ramnum;

  Floatnum1=(Ramnum-number)*2*M_PI;

    if(k==1)
    Floatnum1=-Floatnum1;
   
   ch2[0]=(*(pRes+0)&0xff);
   ch2[1]=(*(pRes+0)&0xff00)>>8;
   ch2[2]=(*(pRes+0)&0xff0000)>>16;
   ch2[3]=(*(pRes+0)&0xff000000)>>24;
   ch2[4]=(*(pRes+1)&0xff);
   ch2[5]=(*(pRes+1)&0xff00)>>8;
   ch2[6]=(*(pRes+1)&0xff0000)>>16;
   ch2[7]=(*(pRes+1)&0xff000000)>>24;

 
  for(j=0;j<8;j++)
  {
   ch10[i*8+j]= ch2[j]&0xff;
   }
    Floatnum2=Floatnum1;
  Floatnum1=fabs(Floatnum2);

   ch2[0]=(*(pRes+0)&0xff);
   ch2[1]=(*(pRes+0)&0xff00)>>8;
   ch2[2]=(*(pRes+0)&0xff0000)>>16;
   ch2[3]=(*(pRes+0)&0xff000000)>>24;
   ch2[4]=(*(pRes+1)&0xff);
   ch2[5]=(*(pRes+1)&0xff00)>>8;
   ch2[6]=(*(pRes+1)&0xff0000)>>16;
   ch2[7]=(*(pRes+1)&0xff000000)>>24;

  for(j=0;j<8;j++)
  {
    ch3[i*8+j]= ch2[j]&0xff;
   }

  }
 
 ch10[number*8]='\0';
 ch3[number*8]='\0';
 Filaprintf(str1,str2,str4,number*8,0);
 return 0;

}

int   Filaprintffloor(int number)
{
  char str1[100]="unsigned char __rom InputNumfloor[";
  char str2[100]="unsigned char __rom OutptNumfloor[";
  char str4[100]="unsigned int __rom InputrandomNumfloor[";


  int i,j,n,k,h,num,Ramnum;
  char  *ch1;
  char  *ch13;
  char  ch2[8];
  char  ch23[8];
  double Floatnum1,Floatnum2,Floatnum3;
  unsigned long* pRes = (unsigned long*)(&Floatnum1);


  for(i=0;i<number;i++)
  {
     k=0;
	  k=rand()%2;
  Ramnum=rand();

   ch15[i]=Ramnum;

  Floatnum1=(Ramnum-number)*2*M_PI;

    if(k==1)
    Floatnum1=-Floatnum1;

  
   ch2[0]=(*(pRes+0)&0xff);
   ch2[1]=(*(pRes+0)&0xff00)>>8;
   ch2[2]=(*(pRes+0)&0xff0000)>>16;
   ch2[3]=(*(pRes+0)&0xff000000)>>24;
   ch2[4]=(*(pRes+1)&0xff);
   ch2[5]=(*(pRes+1)&0xff00)>>8;
   ch2[6]=(*(pRes+1)&0xff0000)>>16;
   ch2[7]=(*(pRes+1)&0xff000000)>>24;

 
  for(j=0;j<8;j++)
  {
   ch10[i*8+j]= ch2[j]&0xff;
   }
    Floatnum2=Floatnum1;
  Floatnum1=floor(Floatnum2);

   ch2[0]=(*(pRes+0)&0xff);
   ch2[1]=(*(pRes+0)&0xff00)>>8;
   ch2[2]=(*(pRes+0)&0xff0000)>>16;
   ch2[3]=(*(pRes+0)&0xff000000)>>24;
   ch2[4]=(*(pRes+1)&0xff);
   ch2[5]=(*(pRes+1)&0xff00)>>8;
   ch2[6]=(*(pRes+1)&0xff0000)>>16;
   ch2[7]=(*(pRes+1)&0xff000000)>>24;

  for(j=0;j<8;j++)
  {
    ch3[i*8+j]= ch2[j]&0xff;
   }

  }
 
 ch10[number*8]='\0';
 ch3[number*8]='\0';
 Filaprintf(str1,str2,str4,number*8,0);
 return 0;

}


int  Filaprintlog(int number)
{
 char str1[100]="unsigned int __rom InputNumlog[";
 char str2[100]="unsigned long __rom OutptNumlog[";
 char str4[100]="unsigned int __rom Inputrandomlog[";
  int i,j,n,k,h,num,Ramnum;
  char  *ch1;
  char  *ch13;
  char  ch2[8];
  char  ch23[8];
  double Floatnum1,Floatnum2,Floatnum3;
  unsigned long* pRes = (unsigned long*)(&Floatnum1);


  for(i=0;i<number;i++)
  {
     k=0;
	  k=rand()%2;
  Ramnum=rand()%0x7f;

   ch15[i]=Ramnum;
  Floatnum1=Ramnum+number;
  Floatnum1=Floatnum1*M_PI;


   
   ch2[0]=(*(pRes+0)&0xff);
   ch2[1]=(*(pRes+0)&0xff00)>>8;
   ch2[2]=(*(pRes+0)&0xff0000)>>16;
   ch2[3]=(*(pRes+0)&0xff000000)>>24;
   ch2[4]=(*(pRes+1)&0xff);
   ch2[5]=(*(pRes+1)&0xff00)>>8;
   ch2[6]=(*(pRes+1)&0xff0000)>>16;
   ch2[7]=(*(pRes+1)&0xff000000)>>24;

 
  for(j=0;j<8;j++)
  {
   ch10[i*8+j]= ch2[j]&0xff;
   }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -