Voglio calcolare la somma di 1 + 1/2 + 1/3 + ... + 1/100000000 (usando doppio float).Come ottimizzare questo pezzo di codice Racket?
Con SBCL, questo codice viene eseguito più velocemente in C:
(loop for i fixnum from 1 to 100000000 sum (/ 1.0d0 i) double-float)
Come faccio a ottimizzare questo codice nella tipizzati Racket? Ho provato
#lang typed/racket
(define: (test) : Float
(for/fold: : Float
([s : Float 0.0])
([i : Fixnum (in-range 1 100000001)])
(+ s (/ 1.0 i))))
(time (test))
Questo codice è solo un po 'più veloce di quello non tipizzato. Posso andare oltre?
Un suggerimento rapido è provare il pacchetto ['ottimizzazione-coach'] (https://github.com/stamourv/optimization-coach/tree/master). –