Average Error: 0.1 → 0.1
Time: 40.2s
Precision: 64
Internal Precision: 128
\[\left(a - \frac{1.0}{3.0}\right) \cdot \left(1 + \frac{1}{\sqrt{9 \cdot \left(a - \frac{1.0}{3.0}\right)}} \cdot rand\right)\]
\[(\left(\frac{1}{\frac{\sqrt{\left(a - \frac{1.0}{3.0}\right) \cdot 9}}{a - \frac{1.0}{3.0}}}\right) \cdot rand + \left(a - \frac{1.0}{3.0}\right))_*\]

Error

Bits error versus a

Bits error versus rand

Derivation

  1. Initial program 0.1

    \[\left(a - \frac{1.0}{3.0}\right) \cdot \left(1 + \frac{1}{\sqrt{9 \cdot \left(a - \frac{1.0}{3.0}\right)}} \cdot rand\right)\]
  2. Initial simplification0.1

    \[\leadsto (\left(\frac{a - \frac{1.0}{3.0}}{\sqrt{9 \cdot \left(a - \frac{1.0}{3.0}\right)}}\right) \cdot rand + \left(a - \frac{1.0}{3.0}\right))_*\]
  3. Using strategy rm
  4. Applied clear-num0.1

    \[\leadsto (\color{blue}{\left(\frac{1}{\frac{\sqrt{9 \cdot \left(a - \frac{1.0}{3.0}\right)}}{a - \frac{1.0}{3.0}}}\right)} \cdot rand + \left(a - \frac{1.0}{3.0}\right))_*\]
  5. Final simplification0.1

    \[\leadsto (\left(\frac{1}{\frac{\sqrt{\left(a - \frac{1.0}{3.0}\right) \cdot 9}}{a - \frac{1.0}{3.0}}}\right) \cdot rand + \left(a - \frac{1.0}{3.0}\right))_*\]

Reproduce

herbie shell --seed 2018362 +o rules:numerics
(FPCore (a rand)
  :name "Octave 3.8, oct_fill_randg"
  (* (- a (/ 1.0 3.0)) (+ 1 (* (/ 1 (sqrt (* 9 (- a (/ 1.0 3.0))))) rand))))

Details

Time bar (total: 24.4s)Debug log

start472.0ms

Algorithm
intervals

setup200.0ms

Pruning

2 alts after pruning (2 fresh and 0 done)

Merged error: 0.0b

localize44.0ms

Local error

Found 4 expressions with local error:

0.6b
(sqrt (* 9 (- a (/ 1.0 3.0))))
0.2b
(/ (- a (/ 1.0 3.0)) (sqrt (* 9 (- a (/ 1.0 3.0)))))
0.0b
(fma (/ (- a (/ 1.0 3.0)) (sqrt (* 9 (- a (/ 1.0 3.0))))) rand (- a (/ 1.0 3.0)))
0.0b
(* 9 (- a (/ 1.0 3.0)))

rewrite10.0ms

Algorithm
rewrite-expression-head
Counts
4 → 80
Calls

4 calls. Slowest were:

4.0ms
(sqrt (* 9 (- a (/ 1.0 3.0))))
4.0ms
(/ (- a (/ 1.0 3.0)) (sqrt (* 9 (- a (/ 1.0 3.0)))))
1.0ms
(* 9 (- a (/ 1.0 3.0)))

series123.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

49.0ms
(fma (/ (- a (/ 1.0 3.0)) (sqrt (* 9 (- a (/ 1.0 3.0))))) rand (- a (/ 1.0 3.0)))
26.0ms
(* 9 (- a (/ 1.0 3.0)))
25.0ms
(/ (- a (/ 1.0 3.0)) (sqrt (* 9 (- a (/ 1.0 3.0)))))
22.0ms
(sqrt (* 9 (- a (/ 1.0 3.0))))

simplify3.9s

Counts
61 → 92
Calls

61 calls. Slowest were:

499.0ms
(/ a (sqrt (* 9 (- a (/ 1.0 3.0)))))
436.0ms
(sqrt (* 9 (- (pow a 3) (pow (/ 1.0 3.0) 3))))
363.0ms
(/ (* (* (- a (/ 1.0 3.0)) (- a (/ 1.0 3.0))) (- a (/ 1.0 3.0))) (* (* (sqrt (* 9 (- a (/ 1.0 3.0)))) (sqrt (* 9 (- a (/ 1.0 3.0))))) (sqrt (* 9 (- a (/ 1.0 3.0))))))

prune1.1s

Pruning

4 alts after pruning (4 fresh and 0 done)

Merged error: 0.0b

localize10.0ms

Local error

Found 4 expressions with local error:

0.6b
(sqrt (* 9 (- a (/ 1.0 3.0))))
0.2b
(/ (sqrt (* 9 (- a (/ 1.0 3.0)))) (- a (/ 1.0 3.0)))
0.2b
(/ 1 (/ (sqrt (* 9 (- a (/ 1.0 3.0)))) (- a (/ 1.0 3.0))))
0.0b
(fma (/ 1 (/ (sqrt (* 9 (- a (/ 1.0 3.0)))) (- a (/ 1.0 3.0)))) rand (- a (/ 1.0 3.0)))

rewrite12.0ms

Algorithm
rewrite-expression-head
Counts
4 → 95
Calls

4 calls. Slowest were:

5.0ms
(/ (sqrt (* 9 (- a (/ 1.0 3.0)))) (- a (/ 1.0 3.0)))
3.0ms
(/ 1 (/ (sqrt (* 9 (- a (/ 1.0 3.0)))) (- a (/ 1.0 3.0))))
2.0ms
(sqrt (* 9 (- a (/ 1.0 3.0))))

series153.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

52.0ms
(fma (/ 1 (/ (sqrt (* 9 (- a (/ 1.0 3.0)))) (- a (/ 1.0 3.0)))) rand (- a (/ 1.0 3.0)))
35.0ms
(/ 1 (/ (sqrt (* 9 (- a (/ 1.0 3.0)))) (- a (/ 1.0 3.0))))
34.0ms
(/ (sqrt (* 9 (- a (/ 1.0 3.0)))) (- a (/ 1.0 3.0)))
32.0ms
(sqrt (* 9 (- a (/ 1.0 3.0))))

simplify4.1s

Counts
71 → 107
Calls

71 calls. Slowest were:

405.0ms
(sqrt (* 9 (- (pow a 3) (pow (/ 1.0 3.0) 3))))
403.0ms
(sqrt (* 9 (- (pow a 3) (pow (/ 1.0 3.0) 3))))
275.0ms
(sqrt (* 9 (- (* a a) (* (/ 1.0 3.0) (/ 1.0 3.0)))))

prune1.7s

Pruning

4 alts after pruning (3 fresh and 1 done)

Merged error: 0.0b

localize23.0ms

Local error

Found 4 expressions with local error:

0.3b
(* 3 (sqrt (- a (/ 1.0 3.0))))
0.2b
(/ (- a (/ 1.0 3.0)) (* 3 (sqrt (- a (/ 1.0 3.0)))))
0.0b
(fma (/ (- a (/ 1.0 3.0)) (* 3 (sqrt (- a (/ 1.0 3.0))))) rand (- a (/ 1.0 3.0)))
0.0b
(sqrt (- a (/ 1.0 3.0)))

rewrite12.0ms

Algorithm
rewrite-expression-head
Counts
4 → 70
Calls

4 calls. Slowest were:

6.0ms
(/ (- a (/ 1.0 3.0)) (* 3 (sqrt (- a (/ 1.0 3.0)))))
3.0ms
(* 3 (sqrt (- a (/ 1.0 3.0))))
2.0ms
(sqrt (- a (/ 1.0 3.0)))

series167.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

56.0ms
(fma (/ (- a (/ 1.0 3.0)) (* 3 (sqrt (- a (/ 1.0 3.0))))) rand (- a (/ 1.0 3.0)))
46.0ms
(/ (- a (/ 1.0 3.0)) (* 3 (sqrt (- a (/ 1.0 3.0)))))
40.0ms
(* 3 (sqrt (- a (/ 1.0 3.0))))
24.0ms
(sqrt (- a (/ 1.0 3.0)))

simplify1.7s

Counts
42 → 82
Calls

42 calls. Slowest were:

310.0ms
(sqrt (- (pow a 3) (pow (/ 1.0 3.0) 3)))
176.0ms
(sqrt (- (* a a) (* (/ 1.0 3.0) (/ 1.0 3.0))))
169.0ms
(- (+ (* 3 (sqrt (- 0.3333333333333333))) (* 3/2 (/ a (sqrt (- 0.3333333333333333))))) (* 3/8 (/ (pow a 2) (pow (sqrt (- 0.3333333333333333)) 3))))

prune1.0s

Pruning

4 alts after pruning (2 fresh and 2 done)

Merged error: 0.0b

localize21.0ms

Local error

Found 4 expressions with local error:

0.6b
(sqrt (* 9 (- a (/ 1.0 3.0))))
0.3b
(* (/ 1 (sqrt (* 9 (- a (/ 1.0 3.0))))) rand)
0.3b
(/ 1 (sqrt (* 9 (- a (/ 1.0 3.0)))))
0.1b
(* (- a (/ 1.0 3.0)) (+ 1 (* (/ 1 (sqrt (* 9 (- a (/ 1.0 3.0))))) rand)))

rewrite18.0ms

Algorithm
rewrite-expression-head
Counts
4 → 81
Calls

4 calls. Slowest were:

7.0ms
(* (- a (/ 1.0 3.0)) (+ 1 (* (/ 1 (sqrt (* 9 (- a (/ 1.0 3.0))))) rand)))
5.0ms
(* (/ 1 (sqrt (* 9 (- a (/ 1.0 3.0))))) rand)
3.0ms
(sqrt (* 9 (- a (/ 1.0 3.0))))

series218.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

84.0ms
(* (/ 1 (sqrt (* 9 (- a (/ 1.0 3.0))))) rand)
62.0ms
(* (- a (/ 1.0 3.0)) (+ 1 (* (/ 1 (sqrt (* 9 (- a (/ 1.0 3.0))))) rand)))
50.0ms
(/ 1 (sqrt (* 9 (- a (/ 1.0 3.0)))))
22.0ms
(sqrt (* 9 (- a (/ 1.0 3.0))))

simplify7.7s

Counts
50 → 93
Calls

50 calls. Slowest were:

764.0ms
(* (- (* a a) (* (/ 1.0 3.0) (/ 1.0 3.0))) (+ 1 (* (/ 1 (sqrt (* 9 (- a (/ 1.0 3.0))))) rand)))
495.0ms
(* (- (pow a 3) (pow (/ 1.0 3.0) 3)) (+ 1 (* (/ 1 (sqrt (* 9 (- a (/ 1.0 3.0))))) rand)))
462.0ms
(+ (* 1 1) (- (* (* (/ 1 (sqrt (* 9 (- a (/ 1.0 3.0))))) rand) (* (/ 1 (sqrt (* 9 (- a (/ 1.0 3.0))))) rand)) (* 1 (* (/ 1 (sqrt (* 9 (- a (/ 1.0 3.0))))) rand))))

prune1.3s

Pruning

5 alts after pruning (2 fresh and 3 done)

Merged error: 0b

regimes347.0ms

Accuracy

0% (0.1b remaining)

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

bsearch4.0ms