home *** CD-ROM | disk | FTP | other *** search
RISC OS BBC BASIC V Source | 1995-09-27 | 1.8 KB | 77 lines |
- >NumbersPi
- $+" at "+
- "NumbersLib"
- numbers_initialise
- "Number of decimal places ";places%
- one%=
- num_create
- temp%=
- num_create
- Num_Set,one%,10
- Num_Set,temp%,places%
- Num_Pow,one%,temp%,one%
- num_create
- which%=1
- t%=
- pi(which%,pi%)
- t%=
- OSCLI("spoolon "+file$)
- 'alg$
- "That took ";t%/100;"S"
- num_prn(pi%)
- *spool
- which%
- num_destroy(pi%)
- num_destroy(temp%)
- num_destroy(one%)
- pi(w%,pi%)
- Num_Set,pi%,0
- %I alg$="Calculation using 24*ATN(1/8) + 8*ATN(1/57) + 4*ATN(1/239)"
- atan(24, 8, pi%)
- atan(8, 57, pi%)
- atan(4, 239, pi%)
- *I alg$="Calculation using 20*ATN(1/8) + 8*ATN(1/18) + 12*ATN(1/57)"
- atan(20, 8, pi%)
- atan(8, 18, pi%)
- atan(12, 57, pi%)
- /; alg$="Calculation using 16*ATN(1/5) - 4*ATN(1/239)"
- atan(16, 5, pi%)
- atan(-4, 239, pi%)
- 38 alg$="Calculation using 8*ATN(1/3) + 4*ATN(1/7)"
- atan(8, 3, pi%)
- atan(4, 7, pi%)
- this computes n% * ATAN(1/k%) and adds it into result%
- ATAN(x) = x - x^3/3 + x^5/5 - x^7/7 + x^9/9 - ...
- atan(n%,k%,result%)
- n1%,n2%,add%,k2%,iszero%
- k2%=k%*k%
- n1%=
- num_create
- n2%=
- num_create
- add%=
- Num_ScalarMul,one%,
- (n%),n1%
- Num_Set,n2%,0
- Num_ScalarDiv,n1%,k%,n1%
- n%=1
- K#
- Num_ScalarDiv,n1%,n%,n2%
- add%>0
- M(
- Num_Add,result%,n2%,result%
- N
- O(
- Num_Sub,result%,n2%,result%
- P
- add%=-add%
- n%+=2
- S$
- Num_ScalarDiv,n1%,k2%,n1%
- T%
- Num_Equals,n1%,0
- iszero%
- iszero%
- num_destroy(n2%)
- num_destroy(n1%)
-