Average Error: 47.7 → 8.0
Time: 33.8s
Precision: binary64
\[\]
\[\]

Error

Bits error versus t

Bits error versus l

Bits error versus k

Derivation

  1. Split input into 2 regimes
  2. if k < -1.1653754517657999e-138 or 2.2473460020406468e-14 < k

    1. Initial program 45.6

      \[\]
    2. Simplified35.7

      \[\leadsto \]
    3. Taylor expanded around inf 52.9

      \[\leadsto \]
    4. Simplified14.1

      \[\leadsto \]
    5. Using strategy rm
    6. Applied sqr-pow14.1

      \[\leadsto \]
    7. Applied unpow-prod-down14.1

      \[\leadsto \]
    8. Applied associate-*l*10.5

      \[\leadsto \]
    9. Simplified10.5

      \[\leadsto \]
    10. Using strategy rm
    11. Applied unpow-prod-down10.5

      \[\leadsto \]
    12. Applied associate-*l*5.8

      \[\leadsto \]
    13. Simplified6.5

      \[\leadsto \]
    14. Using strategy rm
    15. Applied associate-*r*5.8

      \[\leadsto \]

    if -1.1653754517657999e-138 < k < 2.2473460020406468e-14

    1. Initial program 61.9

      \[\]
    2. Simplified57.7

      \[\leadsto \]
    3. Taylor expanded around inf 47.8

      \[\leadsto \]
    4. Simplified27.8

      \[\leadsto \]
    5. Using strategy rm
    6. Applied sqr-pow27.9

      \[\leadsto \]
    7. Applied unpow-prod-down27.9

      \[\leadsto \]
    8. Applied associate-*l*27.9

      \[\leadsto \]
    9. Simplified27.9

      \[\leadsto \]
    10. Using strategy rm
    11. Applied unpow227.9

      \[\leadsto \]
    12. Applied *-un-lft-identity27.9

      \[\leadsto \]
    13. Applied times-frac28.0

      \[\leadsto \]
    14. Applied associate-*l*23.1

      \[\leadsto \]
    15. Simplified23.1

      \[\leadsto \]
  3. Recombined 2 regimes into one program.
  4. Final simplification8.0

    \[\leadsto \]

Reproduce

herbie shell --seed 2020181 
(FPCore (t l k)
  :name "Toniolo and Linder, Equation (10-)"
  :precision binary64
  (/ 2.0 (* (* (* (/ (pow t 3.0) (* l l)) (sin k)) (tan k)) (- (+ 1.0 (pow (/ k t) 2.0)) 1.0))))