From mday@iconsys.icon.com Tue Feb 27 14:52:48 1990 From: mday@iconsys.icon.com (Matthew T. Day) Newsgroups: comp.sys.handhelds Subject: PI Generator Keywords: pi math hp28 Date: 24 Feb 90 04:15:15 GMT Organization: Sanyo/Icon International, Orem, Utah Here's a little program for the HP-28S that computes the digits of "pi". It's algorithm is "slow converging". This program takes one number from the stack: the number of digits that it should generate. It then prints out the digits as it generates them, and when it's done, it places everything it computed into a string and leaves that string on the stack. This algorithm generates "pi" in 4 digit segments. This program is quite slow, I would love to see a few of the more complicated algorithms implemented, choose the fastest, and then convert it to machine code for speed. If anyone has done this before, please let me know. PI (Checksum [408B]): << 4 0 0 0 0 0 0 0 0 0 [0] -> n d t q h j newj m i k x a << RCLF STD CLLCD "" n 2 + 'n' STO 4 n 4 MOD - n + 4 / 'n' STO n d * 3.3219 * 1 + IP 'm' STO 2 m * 1 - IP 'newj' STO {m} 2 CON 'a' STO 1 n FOR k 0 'q' STO newj 'j' STO m 1 FOR i a i GET 10000 * i q * + .5 + IP 't' STO t j / IP 'q' STO a i t q j * - PUT 'a' STO j 2 - 'j' STO -1 STEP q 10000 / h + IP ->STR DUP SIZE 'x' STO WHILE x 4 < REPEAT "0" SWAP + x 1 + 'x' STO END + DUP DUP SIZE DUP 22 - SWAP SUB 2 DISP q q 10000 / IP 10000 * .5 + IP - 'h' STO NEXT SWAP STOF DUP SIZE 4 SWAP SUB CLMF >> >> -- - Matthew T. Day, Sanyo/Icon International, mday@iconsys.icon.com