Average Error: 31.7 → 0.0
Time: 3.3m
Precision: 64
Internal Precision: 128
\[\log \left(x + \sqrt{x \cdot x - 1}\right)\]
\[\log \left(x + \sqrt{1 + x} \cdot \sqrt{x - 1}\right)\]

Error

Bits error versus x

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Initial program 31.7

    \[\log \left(x + \sqrt{x \cdot x - 1}\right)\]
  2. Using strategy rm
  3. Applied difference-of-sqr-131.7

    \[\leadsto \log \left(x + \sqrt{\color{blue}{\left(x + 1\right) \cdot \left(x - 1\right)}}\right)\]
  4. Applied sqrt-prod0.0

    \[\leadsto \log \left(x + \color{blue}{\sqrt{x + 1} \cdot \sqrt{x - 1}}\right)\]
  5. Final simplification0.0

    \[\leadsto \log \left(x + \sqrt{1 + x} \cdot \sqrt{x - 1}\right)\]

Reproduce

herbie shell --seed 2019007 
(FPCore (x)
  :name "Hyperbolic arc-cosine"
  (log (+ x (sqrt (- (* x x) 1)))))

Details

Time bar (total: 3.3m)Debug log

sample197.0ms

Algorithm
intervals

simplify110.0ms

Counts
1 → 1
Calls

1 calls. Slowest were:

110.0ms
(log (+ x (sqrt (- (* x x) 1))))

prune9.0ms

Pruning

1 alts after pruning (1 fresh and 0 done)

Merged error: 34.1b

localize26.0ms

Local error

Found 2 expressions with local error:

32.7b
(sqrt (- (* x x) 1))
0.2b
(log (+ x (sqrt (- (* x x) 1))))

rewrite4.0ms

Algorithm
rewrite-expression-head
Counts
2 → 29
Calls

2 calls. Slowest were:

2.0ms
(sqrt (- (* x x) 1))
2.0ms
(log (+ x (sqrt (- (* x x) 1))))

series134.0ms

Counts
2 → 6
Calls

2 calls. Slowest were:

113.0ms
(log (+ x (sqrt (- (* x x) 1))))
20.0ms
(sqrt (- (* x x) 1))

simplify2.4s

Counts
19 → 35
Calls

19 calls. Slowest were:

334.0ms
(log (- (* x x) (* (sqrt (- (* x x) 1)) (sqrt (- (* x x) 1)))))
328.0ms
(- (+ (* 1/2 (/ (pow x 2) (sqrt -1))) (sqrt -1)) (* 1/8 (/ (pow x 4) (pow (sqrt -1) 3))))
285.0ms
(+ (log -1/2) (+ (log (/ -1 x)) (+ (* 3/32 (/ 1 (pow x 4))) (* 1/4 (/ 1 (pow x 2))))))

prune304.0ms

Pruning

3 alts after pruning (2 fresh and 1 done)

Merged error: 0.0b

localize32.0ms

Local error

Found 2 expressions with local error:

0.5b
(* (sqrt (+ x 1)) (sqrt (- x 1)))
0.2b
(log (+ x (* (sqrt (+ x 1)) (sqrt (- x 1)))))

rewrite11.0ms

Algorithm
rewrite-expression-head
Counts
2 → 47
Calls

2 calls. Slowest were:

9.0ms
(* (sqrt (+ x 1)) (sqrt (- x 1)))
1.0ms
(log (+ x (* (sqrt (+ x 1)) (sqrt (- x 1)))))

series107.0ms

Counts
2 → 6
Calls

2 calls. Slowest were:

70.0ms
(log (+ x (* (sqrt (+ x 1)) (sqrt (- x 1)))))
37.0ms
(* (sqrt (+ x 1)) (sqrt (- x 1)))

simplify3.2s

Counts
40 → 53
Calls

40 calls. Slowest were:

602.0ms
(* (* (* (sqrt (+ x 1)) (sqrt (+ x 1))) (sqrt (+ x 1))) (* (* (sqrt (- x 1)) (sqrt (- x 1))) (sqrt (- x 1))))
517.0ms
(log (- (* x x) (* (* (sqrt (+ x 1)) (sqrt (- x 1))) (* (sqrt (+ x 1)) (sqrt (- x 1))))))
419.0ms
(log (+ (pow x 3) (pow (* (sqrt (+ x 1)) (sqrt (- x 1))) 3)))

prune455.0ms

Pruning

3 alts after pruning (1 fresh and 2 done)

Merged error: 0.0b

localize44.0ms

Local error

Found 4 expressions with local error:

0.4b
(/ -1/4 (* x x))
0.2b
(/ -3/32 (pow x 4))
0.2b
(+ (log 2) (log x))
0.0b
(+ (+ (+ (log 2) (log x)) (/ -3/32 (pow x 4))) (/ -1/4 (* x x)))

rewrite129.0ms

Algorithm
rewrite-expression-head
Counts
4 → 57
Calls

4 calls. Slowest were:

120.0ms
(+ (+ (+ (log 2) (log x)) (/ -3/32 (pow x 4))) (/ -1/4 (* x x)))
6.0ms
(+ (log 2) (log x))
1.0ms
(/ -3/32 (pow x 4))

series452.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

286.0ms
(+ (log 2) (log x))
122.0ms
(+ (+ (+ (log 2) (log x)) (/ -3/32 (pow x 4))) (/ -1/4 (* x x)))
24.0ms
(/ -3/32 (pow x 4))
19.0ms
(/ -1/4 (* x x))

simplify2.6s

Counts
32 → 69
Calls

32 calls. Slowest were:

266.0ms
(- (log 2) (+ (log (/ 1 x)) (+ (* 3/32 (/ 1 (pow x 4))) (* 1/4 (/ 1 (pow x 2))))))
236.0ms
(* (+ (* (+ (log 2) (log x)) (+ (log 2) (log x))) (- (* (/ -3/32 (pow x 4)) (/ -3/32 (pow x 4))) (* (+ (log 2) (log x)) (/ -3/32 (pow x 4))))) (* x x))
230.0ms
(- (+ (log 2) (log x)) (+ (* 1/4 (/ 1 (pow x 2))) (* 3/32 (/ 1 (pow x 4)))))

prune770.0ms

Pruning

3 alts after pruning (1 fresh and 2 done)

Merged error: 0b

localize22.0ms

Local error

Found 4 expressions with local error:

0.5b
(* (+ (+ (+ (log 2) (log x)) (/ -3/32 (pow x 4))) (/ -1/4 (* x x))) (+ (+ (+ (log 2) (log x)) (/ -3/32 (pow x 4))) (/ -1/4 (* x x))))
0.5b
(cbrt (* (* (+ (+ (+ (log 2) (log x)) (/ -3/32 (pow x 4))) (/ -1/4 (* x x))) (+ (+ (+ (log 2) (log x)) (/ -3/32 (pow x 4))) (/ -1/4 (* x x)))) (+ (+ (+ (log 2) (log x)) (/ -3/32 (pow x 4))) (/ -1/4 (* x x)))))
0.4b
(/ -1/4 (* x x))
0.4b
(/ -1/4 (* x x))

rewrite701.0ms

Algorithm
rewrite-expression-head
Counts
4 → 450
Calls

4 calls. Slowest were:

390.0ms
(cbrt (* (* (+ (+ (+ (log 2) (log x)) (/ -3/32 (pow x 4))) (/ -1/4 (* x x))) (+ (+ (+ (log 2) (log x)) (/ -3/32 (pow x 4))) (/ -1/4 (* x x)))) (+ (+ (+ (log 2) (log x)) (/ -3/32 (pow x 4))) (/ -1/4 (* x x)))))
280.0ms
(* (+ (+ (+ (log 2) (log x)) (/ -3/32 (pow x 4))) (/ -1/4 (* x x))) (+ (+ (+ (log 2) (log x)) (/ -3/32 (pow x 4))) (/ -1/4 (* x x))))
1.0ms
(/ -1/4 (* x x))

series242.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

116.0ms
(* (+ (+ (+ (log 2) (log x)) (/ -3/32 (pow x 4))) (/ -1/4 (* x x))) (+ (+ (+ (log 2) (log x)) (/ -3/32 (pow x 4))) (/ -1/4 (* x x))))
104.0ms
(cbrt (* (* (+ (+ (+ (log 2) (log x)) (/ -3/32 (pow x 4))) (/ -1/4 (* x x))) (+ (+ (+ (log 2) (log x)) (/ -3/32 (pow x 4))) (/ -1/4 (* x x)))) (+ (+ (+ (log 2) (log x)) (/ -3/32 (pow x 4))) (/ -1/4 (* x x)))))
11.0ms
(/ -1/4 (* x x))
11.0ms
(/ -1/4 (* x x))

simplify2.8m

Counts
456 → 462
Calls

456 calls. Slowest were:

1.4s
(* (* (* (+ (* (log 2) (log 2)) (- (* (log x) (log x)) (* (log 2) (log x)))) (pow x 4)) (* x x)) (* (* (+ (* (log 2) (log 2)) (- (* (log x) (log x)) (* (log 2) (log x)))) (pow x 4)) (* x x)))
1.0s
(cbrt (* (* (+ (pow (+ (+ (log 2) (log x)) (/ -3/32 (pow x 4))) 3) (pow (/ -1/4 (* x x)) 3)) (+ (* (+ (* (+ (pow (log 2) 3) (pow (log x) 3)) (pow x 4)) (* (+ (* (log 2) (log 2)) (- (* (log x) (log x)) (* (log 2) (log x)))) -3/32)) (* x x)) (* (* (+ (* (log 2) (log 2)) (- (* (log x) (log x)) (* (log 2) (log x)))) (pow x 4)) -1/4))) (+ (* (+ (pow (+ (log 2) (log x)) 3) (pow (/ -3/32 (pow x 4)) 3)) (* x x)) (* (+ (* (+ (log 2) (log x)) (+ (log 2) (log x))) (- (* (/ -3/32 (pow x 4)) (/ -3/32 (pow x 4))) (* (+ (log 2) (log x)) (/ -3/32 (pow x 4))))) -1/4))))
991.0ms
(cbrt (* (* (+ (+ (+ (log 2) (log x)) (/ -3/32 (pow x 4))) (/ -1/4 (* x x))) (+ (* (+ (* (+ (pow (log 2) 3) (pow (log x) 3)) (pow x 4)) (* (+ (* (log 2) (log 2)) (- (* (log x) (log x)) (* (log 2) (log x)))) -3/32)) (* x x)) (* (* (+ (* (log 2) (log 2)) (- (* (log x) (log x)) (* (log 2) (log x)))) (pow x 4)) -1/4))) (+ (* (+ (pow (+ (log 2) (log x)) 3) (pow (/ -3/32 (pow x 4)) 3)) (* x x)) (* (+ (* (+ (log 2) (log x)) (+ (log 2) (log x))) (- (* (/ -3/32 (pow x 4)) (/ -3/32 (pow x 4))) (* (+ (log 2) (log x)) (/ -3/32 (pow x 4))))) -1/4))))

prune13.1s

Pruning

3 alts after pruning (0 fresh and 3 done)

Merged error: 0b

regimes72.0ms

Accuracy

0% (0.0b remaining)

Error of 0.0b against oracle of 0.0b and baseline of 0.0b

bsearch1.0ms

end0.0ms

sample4.0s

Algorithm
intervals