मैं 1 + 1/2 + 1/3 + ... + 1/100000000 (डबल फ्लोट का उपयोग करके) की गणना करना चाहता हूं।रैकेट कोड के इस टुकड़े को अनुकूलित कैसे करें?
SBCL साथ, इस कोड सी में के रूप में के रूप में तेजी से चलाता है:
(loop for i fixnum from 1 to 100000000 sum (/ 1.0d0 i) double-float)
मैं Typed रैकेट में इस कोड को कैसे अनुकूलित कर सकते हैं? मैं कोशिश की है
#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))
इस कोड को केवल एक सा untyped एक की तुलना में तेजी है। क्या मैं आगे जा सकता हूँ?
एक त्वरित सुझाव है ['अनुकूलन-कोच' पैकेज] (https://github.com/stamourv/optimization-coach/tree/master) को आजमाएं। –