programma che calcola n cifre di pi greco, utilizzo la formula di Machin,e la serie di Taylor per calcolare l'arcocotangente
per rendere piu' veloce l'esecuzione e per evitare stack overflow ha usato tail-recursion
inoltre per evitare di thrownare in floating-point-overflow,opero su interi anziche' su numeri floating,moltiplicando tutto pper 10^x
il tempo di esecuzione quadruplicizza al raddoppiare delle cifre da trovare sul mio pc per calcolare 50mila cifre dopo la virgola impiega 15secondi
il codice e' implementation dependent, l'ho volutamente reso compatibile solo usando sbcl dall momento chee' l' unica implementazione in grado di svolgere questi conti e lo fa ottimamente poivhe! a differenza di altre implementazioni, sbcl compila in codice macchina anziche bytecode
purtroppo viene eseguita senza sfruttare il multi core, sto pensando di utilizzare dei binding delle opencl per aumentare la velocita- di czlcolo
il sorgente si trova su http://sprunge.us/eCPK?cl per chi non avesse sbcl, domani troverete in http://bronsa.net/pi.tar.gz il compilato, purtropppo compilare in lisp equivale a creare un binario contenente una versione base dell!interprete e il vodice stesso , pesa sui 44 mega
scusate per i typo fzil ma ho scritto dzal mio kindle perche! sono senza internet
commenti e suggerimenti sono ben accetti
P.S se riesco a trovare un modo per trasformare floating in interi anche con gauss leilegendre, implementero quello che rendera! tutto molto piu, veloce
EDIT
codice migliorato, velocità aumentata dal 65% http://sprunge.us/jjbS?cl
per rendere piu' veloce l'esecuzione e per evitare stack overflow ha usato tail-recursion
inoltre per evitare di thrownare in floating-point-overflow,opero su interi anziche' su numeri floating,moltiplicando tutto pper 10^x
il tempo di esecuzione quadruplicizza al raddoppiare delle cifre da trovare sul mio pc per calcolare 50mila cifre dopo la virgola impiega 15secondi
il codice e' implementation dependent, l'ho volutamente reso compatibile solo usando sbcl dall momento chee' l' unica implementazione in grado di svolgere questi conti e lo fa ottimamente poivhe! a differenza di altre implementazioni, sbcl compila in codice macchina anziche bytecode
purtroppo viene eseguita senza sfruttare il multi core, sto pensando di utilizzare dei binding delle opencl per aumentare la velocita- di czlcolo
il sorgente si trova su http://sprunge.us/eCPK?cl per chi non avesse sbcl, domani troverete in http://bronsa.net/pi.tar.gz il compilato, purtropppo compilare in lisp equivale a creare un binario contenente una versione base dell!interprete e il vodice stesso , pesa sui 44 mega
scusate per i typo fzil ma ho scritto dzal mio kindle perche! sono senza internet
commenti e suggerimenti sono ben accetti
P.S se riesco a trovare un modo per trasformare floating in interi anche con gauss leilegendre, implementero quello che rendera! tutto molto piu, veloce
EDIT
codice migliorato, velocità aumentata dal 65% http://sprunge.us/jjbS?cl