?

Average Accuracy: 51.4% → 99.4%
Time: 4.7s
Precision: binary64
Cost: 6848

?

\[\mathsf{log.f64}\left(\mathsf{+.f64}\left(x, \mathsf{sqrt.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(x, x\right), 1\right)\right)\right)\right) \]
\[\mathsf{log.f64}\left(\mathsf{+.f64}\left(x, \mathsf{\_.f64}\left(x, \mathsf{/.f64}\left(\frac{1}{2}, x\right)\right)\right)\right) \]
(FPCore (x)
 :precision binary64
 (log.f64 (+.f64 x (sqrt.f64 (-.f64 (*.f64 x x) 1)))))
(FPCore (x) :precision binary64 (log.f64 (+.f64 x (-.f64 x (/.f64 1/2 x)))))
\mathsf{log.f64}\left(\mathsf{+.f64}\left(x, \mathsf{sqrt.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(x, x\right), 1\right)\right)\right)\right)
\mathsf{log.f64}\left(\mathsf{+.f64}\left(x, \mathsf{\_.f64}\left(x, \mathsf{/.f64}\left(\frac{1}{2}, x\right)\right)\right)\right)

Error?

Derivation?

  1. Initial program 51.4%

    \[\mathsf{log.f64}\left(\mathsf{+.f64}\left(x, \mathsf{sqrt.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(x, x\right), 1\right)\right)\right)\right) \]
  2. Taylor expanded in x around inf 99.4%

    \[\leadsto \mathsf{log.f64}\left(\mathsf{+.f64}\left(x, \color{blue}{\mathsf{\_.f64}\left(x, \mathsf{*.f64}\left(\frac{1}{2}, \mathsf{/.f64}\left(1, x\right)\right)\right)}\right)\right) \]
  3. Simplified99.4%

    \[\leadsto \mathsf{log.f64}\left(\mathsf{+.f64}\left(x, \color{blue}{\mathsf{\_.f64}\left(x, \mathsf{/.f64}\left(\frac{1}{2}, x\right)\right)}\right)\right) \]
    Proof

    [Start]99.4

    \[ \mathsf{log.f64}\left(\mathsf{+.f64}\left(x, \mathsf{\_.f64}\left(x, \mathsf{*.f64}\left(\frac{1}{2}, \mathsf{/.f64}\left(1, x\right)\right)\right)\right)\right) \]

    associate-*r/ [=>]99.4

    \[ \mathsf{log.f64}\left(\mathsf{+.f64}\left(x, \mathsf{\_.f64}\left(x, \color{blue}{\mathsf{/.f64}\left(\mathsf{*.f64}\left(\frac{1}{2}, 1\right), x\right)}\right)\right)\right) \]

    metadata-eval [=>]99.4

    \[ \mathsf{log.f64}\left(\mathsf{+.f64}\left(x, \mathsf{\_.f64}\left(x, \mathsf{/.f64}\left(\color{blue}{\frac{1}{2}}, x\right)\right)\right)\right) \]
  4. Final simplification99.4%

    \[\leadsto \mathsf{log.f64}\left(\mathsf{+.f64}\left(x, \mathsf{\_.f64}\left(x, \mathsf{/.f64}\left(\frac{1}{2}, x\right)\right)\right)\right) \]

Alternatives

Alternative 1
Accuracy99.0%
Cost6592
\[\mathsf{log.f64}\left(\mathsf{+.f64}\left(x, x\right)\right) \]
Alternative 2
Accuracy3.1%
Cost64
\[0 \]

Error

Reproduce?

herbie shell --seed 2023144 
(FPCore (x)
  :name "Hyperbolic arc-cosine"
  :precision binary64
  (log (+ x (sqrt (- (* x x) 1.0)))))