123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262 |
- Sat Jun 29 13:37:56 PDT 1991
- REDUCE 3.4, 15-Jul-91 ...
- 1: 1:
- 2: 2:
- 3: 3: % Tests in the exact mode.
- x := 1/2;
- 1
- X := ---
- 2
- y := x + 0.7;
- 6
- Y := ---
- 5
- % Tests in approximate mode.
- on rounded;
- y;
- 1.2
- % as expected not converted to approximate form.
- z := y+1.2;
- Z := 2.4
- z/3;
- 0.8
- % Let's raise this to a high power.
- ws^24;
- 0.00472236648287
- % Now a high exponent value.
- % 10.2^821;
- % Elementary function evaluation.
- cos(pi);
- - 1
- symbolic ws;
- (!*SQ ((!:RD!: . -1.0) . 1) T)
- z := sin(pi);
- Z := 0
- symbolic ws;
- 0
- % Handling very small quantities.
- % With normal defaults, underflows are converted to 0.
- exp(-100000.1**2);
- 0
- % However, if you really want that small number, roundbf can be used.
- on roundbf;
- exp(-100000.1**2);
- 1.18440746497E-4342953505
- off roundbf;
- % Now let us evaluate pi.
- pi;
- 3.14159265359
- % Let us try a higher precision.
- precision 50;
- 12
- pi;
- 3.141 59265 35897 93238 46264 33832 79502 88419 71693 99375 1
- % Now find the cosine of pi/6.
- cos(ws/6);
- 0.866 02540 37844 38646 76372 31707 52936 18347 14026 26905 19
- % This should be the sqrt(3)/2.
- ws**2;
- 0.75
- %Here are some well known examples which show the power of this system.
- precision 10;
- 50
- % This should give the usual default again.
- let xx=e**(pi*sqrt(163));
- let yy=1-2*cos((6*log(2)+log(10005))/sqrt(163));
- % First notice that xx looks like an integer.
- xx;
- 2.625374126E+17
- % and that yy looks like zero.
- yy;
- 0
- % but of course it's an illusion.
- precision 50;
- 10
- xx;
- 26253 74126 40768 743.9 99999 99999 92500 72597 19818 56888 8
- yy;
- - 1.281 52565 59456 09277 51597 49532 17051 34 E -16
- %now let's look at an unusual way of finding an old friend;
- precision 50;
- 50
- procedure agm;
- <<a := 1$ b := 1/sqrt 2$ u:= 1/4$ x := 1$ pn := 4$ repeat
- <<p := pn;
- y := a; a := (a+b)/2; b := sqrt(y*b); % Arith-geom mean.
- u := u-x*(a-y)**2; x := 2*x; pn := a**2/u;
- write "pn=",pn>> until pn>=p; p>>;
- AGM
- let ag=agm();
- ag;
- pn=3.187 67264 27121 08627 20192 99705 25369 23265 10535 71859 4
- pn=3.141 68029 32976 53293 91807 04245 60009 38279 57194 38815 4
- pn=3.141 59265 38954 46496 00291 47588 18043 48610 88792 37261 3
- pn=3.141 59265 35897 93238 46636 06027 06631 32175 77024 11342 4
- pn=3.141 59265 35897 93238 46264 33832 79502 88419 71699 49164 7
- pn=3.141 59265 35897 93238 46264 33832 79502 88419 71693 99375 1
- pn=3.141 59265 35897 93238 46264 33832 79502 88419 71693 99375 1
- 3.141 59265 35897 93238 46264 33832 79502 88419 71693 99375 1
- % The limit is obviously.
- pi;
- 3.141 59265 35897 93238 46264 33832 79502 88419 71693 99375 1
- end;
- 4: 4:
- Quitting
- Sat Jun 29 13:38:02 PDT 1991
|