Average Error: 14.5 → 0.3
Time: 30.3s
Precision: 64
Internal Precision: 128
\[\left(\frac{\pi}{2} \cdot \frac{1}{b \cdot b - a \cdot a}\right) \cdot \left(\frac{1}{a} - \frac{1}{b}\right)\]
\[\frac{\frac{\pi}{a + b} \cdot \left(\frac{\frac{1}{2}}{a} - \frac{\frac{1}{2}}{b}\right)}{b - a}\]

Error

Bits error versus a

Bits error versus b

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Initial program 14.5

    \[\left(\frac{\pi}{2} \cdot \frac{1}{b \cdot b - a \cdot a}\right) \cdot \left(\frac{1}{a} - \frac{1}{b}\right)\]
  2. Simplified0.3

    \[\leadsto \color{blue}{\frac{\frac{1}{a} - \frac{1}{b}}{b - a} \cdot \frac{\frac{\pi}{2}}{a + b}}\]
  3. Using strategy rm
  4. Applied associate-*l/0.3

    \[\leadsto \color{blue}{\frac{\left(\frac{1}{a} - \frac{1}{b}\right) \cdot \frac{\frac{\pi}{2}}{a + b}}{b - a}}\]
  5. Simplified0.3

    \[\leadsto \frac{\color{blue}{\frac{\frac{\pi}{a} - \frac{\pi}{b}}{\left(a + b\right) \cdot 2}}}{b - a}\]
  6. Using strategy rm
  7. Applied div-inv0.3

    \[\leadsto \frac{\frac{\frac{\pi}{a} - \color{blue}{\pi \cdot \frac{1}{b}}}{\left(a + b\right) \cdot 2}}{b - a}\]
  8. Applied div-inv0.3

    \[\leadsto \frac{\frac{\color{blue}{\pi \cdot \frac{1}{a}} - \pi \cdot \frac{1}{b}}{\left(a + b\right) \cdot 2}}{b - a}\]
  9. Applied distribute-lft-out--0.3

    \[\leadsto \frac{\frac{\color{blue}{\pi \cdot \left(\frac{1}{a} - \frac{1}{b}\right)}}{\left(a + b\right) \cdot 2}}{b - a}\]
  10. Applied times-frac0.3

    \[\leadsto \frac{\color{blue}{\frac{\pi}{a + b} \cdot \frac{\frac{1}{a} - \frac{1}{b}}{2}}}{b - a}\]
  11. Simplified0.3

    \[\leadsto \frac{\frac{\pi}{a + b} \cdot \color{blue}{\left(\frac{\frac{1}{2}}{a} - \frac{\frac{1}{2}}{b}\right)}}{b - a}\]
  12. Final simplification0.3

    \[\leadsto \frac{\frac{\pi}{a + b} \cdot \left(\frac{\frac{1}{2}}{a} - \frac{\frac{1}{2}}{b}\right)}{b - a}\]

Reproduce

herbie shell --seed 2019007 
(FPCore (a b)
  :name "NMSE Section 6.1 mentioned, B"
  (* (* (/ PI 2) (/ 1 (- (* b b) (* a a)))) (- (/ 1 a) (/ 1 b))))

Details

Time bar (total: 29.7s)Debug log

sample104.0ms

Algorithm
intervals

simplify372.0ms

Counts
1 → 1
Calls

1 calls. Slowest were:

372.0ms
(* (* (/ PI 2) (/ 1 (- (* b b) (* a a)))) (- (/ 1 a) (/ 1 b)))

prune12.0ms

Pruning

2 alts after pruning (2 fresh and 0 done)

Merged error: 0.2b

localize43.0ms

Local error

Found 4 expressions with local error:

0.3b
(/ (- (/ 1 a) (/ 1 b)) (- b a))
0.2b
(/ (/ PI 2) (+ a b))
0.1b
(* (/ (- (/ 1 a) (/ 1 b)) (- b a)) (/ (/ PI 2) (+ a b)))
0.0b
(- (/ 1 a) (/ 1 b))

rewrite56.0ms

Algorithm
rewrite-expression-head
Counts
4 → 173
Calls

4 calls. Slowest were:

22.0ms
(* (/ (- (/ 1 a) (/ 1 b)) (- b a)) (/ (/ PI 2) (+ a b)))
17.0ms
(/ (- (/ 1 a) (/ 1 b)) (- b a))
6.0ms
(- (/ 1 a) (/ 1 b))

series212.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

87.0ms
(/ (/ PI 2) (+ a b))
84.0ms
(* (/ (- (/ 1 a) (/ 1 b)) (- b a)) (/ (/ PI 2) (+ a b)))
27.0ms
(/ (- (/ 1 a) (/ 1 b)) (- b a))
14.0ms
(- (/ 1 a) (/ 1 b))

simplify5.5s

Counts
176 → 185
Calls

176 calls. Slowest were:

852.0ms
(+ (- (log (- (/ 1 a) (/ 1 b))) (log (- b a))) (- (log (/ PI 2)) (log (+ a b))))
381.0ms
(/ (* (* (/ PI 2) (/ PI 2)) (/ PI 2)) (* (* (+ a b) (+ a b)) (+ a b)))
352.0ms
(+ (log (/ (- (/ 1 a) (/ 1 b)) (- b a))) (- (log (/ PI 2)) (log (+ a b))))

prune1.9s

Pruning

11 alts after pruning (11 fresh and 0 done)

Merged error: 0.0b

localize15.0ms

Local error

Found 4 expressions with local error:

0.5b
(/ (- (/ PI a) (/ PI b)) (* (+ a b) 2))
0.3b
(/ PI a)
0.2b
(/ PI b)
0.1b
(/ (/ (- (/ PI a) (/ PI b)) (* (+ a b) 2)) (- b a))

rewrite31.0ms

Algorithm
rewrite-expression-head
Counts
4 → 120
Calls

4 calls. Slowest were:

19.0ms
(/ (/ (- (/ PI a) (/ PI b)) (* (+ a b) 2)) (- b a))
10.0ms
(/ (- (/ PI a) (/ PI b)) (* (+ a b) 2))
0.0ms
(/ PI a)

series272.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

84.0ms
(/ (/ (- (/ PI a) (/ PI b)) (* (+ a b) 2)) (- b a))
78.0ms
(/ (- (/ PI a) (/ PI b)) (* (+ a b) 2))
56.0ms
(/ PI a)
54.0ms
(/ PI b)

simplify7.8s

Counts
129 → 132
Calls

129 calls. Slowest were:

330.0ms
(- (log (/ (- (/ PI a) (/ PI b)) (* (+ a b) 2))) (log (- b a)))
301.0ms
(/ (/ (- (/ PI a) (/ PI b)) (* (+ a b) 2)) (sqrt (- b a)))
296.0ms
(/ (- (/ PI a) (/ PI b)) (* (- (* a a) (* b b)) 2))

prune1.2s

Pruning

6 alts after pruning (6 fresh and 0 done)

Merged error: 0b

localize31.0ms

Local error

Found 4 expressions with local error:

0.3b
(* (/ PI (+ a b)) (- (/ 1/2 a) (/ 1/2 b)))
0.2b
(/ PI (+ a b))
0.1b
(/ (* (/ PI (+ a b)) (- (/ 1/2 a) (/ 1/2 b))) (- b a))
0.0b
(- (/ 1/2 a) (/ 1/2 b))

rewrite47.0ms

Algorithm
rewrite-expression-head
Counts
4 → 95
Calls

4 calls. Slowest were:

20.0ms
(* (/ PI (+ a b)) (- (/ 1/2 a) (/ 1/2 b)))
19.0ms
(/ (* (/ PI (+ a b)) (- (/ 1/2 a) (/ 1/2 b))) (- b a))
6.0ms
(- (/ 1/2 a) (/ 1/2 b))

series232.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

99.0ms
(/ (* (/ PI (+ a b)) (- (/ 1/2 a) (/ 1/2 b))) (- b a))
71.0ms
(* (/ PI (+ a b)) (- (/ 1/2 a) (/ 1/2 b)))
36.0ms
(/ PI (+ a b))
25.0ms
(- (/ 1/2 a) (/ 1/2 b))

simplify4.6s

Counts
74 → 107
Calls

74 calls. Slowest were:

354.0ms
(* PI (- (pow (/ 1/2 a) 3) (pow (/ 1/2 b) 3)))
297.0ms
(* PI (- (pow (/ 1/2 a) 3) (pow (/ 1/2 b) 3)))
281.0ms
(- (+ (log (/ PI (+ a b))) (log (- (/ 1/2 a) (/ 1/2 b)))) (log (- b a)))

prune1.0s

Pruning

6 alts after pruning (5 fresh and 1 done)

Merged error: 0b

localize8.0ms

Local error

Found 3 expressions with local error:

0.4b
(/ 1 (* a b))
0.2b
(/ (/ PI 2) (+ a b))
0.1b
(* (/ 1 (* a b)) (/ (/ PI 2) (+ a b)))

rewrite17.0ms

Algorithm
rewrite-expression-head
Counts
3 → 88
Calls

3 calls. Slowest were:

11.0ms
(* (/ 1 (* a b)) (/ (/ PI 2) (+ a b)))
3.0ms
(/ (/ PI 2) (+ a b))
1.0ms
(/ 1 (* a b))

series168.0ms

Counts
3 → 9
Calls

3 calls. Slowest were:

97.0ms
(* (/ 1 (* a b)) (/ (/ PI 2) (+ a b)))
58.0ms
(/ (/ PI 2) (+ a b))
13.0ms
(/ 1 (* a b))

simplify2.5s

Counts
74 → 97
Calls

74 calls. Slowest were:

403.0ms
(+ (log (/ 1 (* a b))) (- (log (/ PI 2)) (log (+ a b))))
345.0ms
(+ (- (log (* a b))) (- (log (/ PI 2)) (log (+ a b))))
332.0ms
(/ (* (* (/ PI 2) (/ PI 2)) (/ PI 2)) (* (* (+ a b) (+ a b)) (+ a b)))

prune879.0ms

Pruning

6 alts after pruning (4 fresh and 2 done)

Merged error: 0b

regimes104.0ms

Accuracy

0% (0.2b remaining)

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

bsearch3.0ms

end0.0ms

sample2.7s

Algorithm
intervals