#include //these four files standard for GENPREC #include //abs (absolute value) #include //log,sqrt,etc #include //use when timing (benchmarking) const int precision=4; const int zmaxsize=51; //51; const int cmaxsize=0; float hfloat; int qqq; #include "genprec.h" realmp a,aa,b,bb,aaa,bbb,aaaa,bbbb,c,d,e,f,g,h,sum; realmp vec[zmaxsizepad],vec2[zmaxsizepad]; realmp mat[zmaxsizepad][zmaxsizepad],mat2[zmaxsizepad][zmaxsizepad]; char *zwhich; main() {int i; zsuppi(); //this has to be run to do sin,cos,etc. zsupe(); zsuplogsp(); //for exponential function unsigned int ii; for (ii=0;ii<11;ii++) {a=ii; printmp(a); } zmessage="a=ii"; zbreak(); a=2; for (ii=0;ii<11;ii++) {b=a*ii; printmp(b); } zmessage="b=2*ii"; zbreak(); for (ii=0;ii<11;ii++) {b=a/ii; printmp(b); } zmessage="b=2/ii"; zbreak(); for (ii=0;ii<11;ii++) {b=ii*a; printmp(b); } zmessage="b=ii*2"; zbreak(); for (ii=0;ii<11;ii++) {b=ii+a; printmp(b); } zmessage="b=ii+2"; zbreak(); for (ii=0;ii<11;ii++) {b=a+ii; printmp(b); } zmessage="b=2+ii"; zbreak(); int j; for (j=-5;j<6;j++) {a=j; //these are ok printmp(a); } zmessage="a=j"; zbreak(); a=2; printmp(a); zmessage="should be a=2"; zbreak(); for (j=-5;j<6;j++) { //cout<<"j "<>qqq; b=a*j; printmp(b); } zmessage="b=2*j"; zbreak(); for (j=-5;j<6;j++) {b=a/j; printmp(b); } zmessage="b=2/j"; zbreak(); for (j=-5;j<6;j++) {b=j*a; printmp(b); } zmessage="b=j*2"; zbreak(); for (j=-5;j<6;j++) {b=j/a; printmp(b); } zmessage="b=j/2"; zbreak(); for (j=-5;j<6;j++) {b=j+a; printmp(b); } zmessage="b=j+2"; zbreak(); for (j=-5;j<6;j++) {b=a+j; printmp(b); } zmessage="b=2+j"; zbreak(); b=a+2; //here, is 2 signed or unsigned? cout<<"result of b=a+2"<<'\n'; //no matter! printmp(b); cin>>qqq; b=2+a; cout<<"result of b=2+a"<<'\n'; printmp(b); cin>>qqq; b=a-2; cout<<"result of b=a-2"<<'\n'; printmp(b); cin>>qqq; b=2-a; cout<<"result of b=2-a"<<'\n'; printmp(b); cin>>qqq; b=a*2; //here, is 2 signed or unsigned? cout<<"result of b=a*2"<<'\n'; //no matter! printmp(b); cin>>qqq; b=2*a; cout<<"result of b=2*a"<<'\n'; printmp(b); cin>>qqq; b=-2*a; cout<<"result of b=-2*a"<<'\n'; printmp(b); cin>>qqq; b=-a*2; cout<<"result of b=-a*2"<<'\n'; printmp(b); cin>>qqq; b=a/2; //here, is 2 signed or unsigned? cout<<"result of b=a/2"<<'\n'; //no matter! printmp(b); cin>>qqq; b=2/a; cout<<"result of b=2/a"<<'\n'; printmp(b); cin>>qqq; b=-2/a; cout<<"result of b=-2/a"<<'\n'; printmp(b); cin>>qqq; b=a/(-2); cout<<"result of b=a/(-2)"<<'\n'; printmp(b); cin>>qqq; a=1.5E00; //this is ok cout<<"result of a=1.5E00: "; printmp(a); a=-1.5E00; cout<<"result of a=-1.5E00: "; printmp(a); a=3/2; cout<<"result of a=3/2 is incorrect: "; printmp(a); cin>>qqq; a=1.5E00; b=4 + a; cout<<"result of b=4+a which should be 5.5"; printmp(b); cin>>qqq; a=1; b=floattomp(4.0E00)+a; cout<<"result of b=floattomp(4.0E00)+a which should be 5.0"; printmp(b); cin>>qqq; return 0; }