Average Error: 0.1 → 0.1
Time: 30.2s
Precision: 64
Internal Precision: 128
\[\left(\frac{m \cdot \left(1 - m\right)}{v} - 1\right) \cdot \left(1 - m\right)\]
\[(\left(1 - m\right) \cdot \left(\frac{m}{v}\right) + -1)_* + (\left(\frac{m}{v}\right) \cdot \left(\left(m + -1\right) \cdot m\right) + m)_*\]

Error

Bits error versus m

Bits error versus v

Derivation

  1. Initial program 0.1

    \[\left(\frac{m \cdot \left(1 - m\right)}{v} - 1\right) \cdot \left(1 - m\right)\]
  2. Simplified0.1

    \[\leadsto \color{blue}{(\left(1 - m\right) \cdot \left(\frac{m}{v}\right) + -1)_* \cdot \left(1 - m\right)}\]
  3. Using strategy rm
  4. Applied sub-neg0.1

    \[\leadsto (\left(1 - m\right) \cdot \left(\frac{m}{v}\right) + -1)_* \cdot \color{blue}{\left(1 + \left(-m\right)\right)}\]
  5. Applied distribute-rgt-in0.1

    \[\leadsto \color{blue}{1 \cdot (\left(1 - m\right) \cdot \left(\frac{m}{v}\right) + -1)_* + \left(-m\right) \cdot (\left(1 - m\right) \cdot \left(\frac{m}{v}\right) + -1)_*}\]
  6. Simplified0.1

    \[\leadsto 1 \cdot (\left(1 - m\right) \cdot \left(\frac{m}{v}\right) + -1)_* + \color{blue}{(\left(\frac{m}{v}\right) \cdot \left(m \cdot \left(-1 + m\right)\right) + m)_*}\]
  7. Final simplification0.1

    \[\leadsto (\left(1 - m\right) \cdot \left(\frac{m}{v}\right) + -1)_* + (\left(\frac{m}{v}\right) \cdot \left(\left(m + -1\right) \cdot m\right) + m)_*\]

Reproduce

herbie shell --seed 2019004 +o rules:numerics
(FPCore (m v)
  :name "b parameter of renormalized beta distribution"
  :pre (and (< 0 m) (< 0 v) (< v 0.25))
  (* (- (/ (* m (- 1 m)) v) 1) (- 1 m)))

Details

Time bar (total: 29.3s)Debug log

sample169.0ms

Algorithm
intervals

simplify414.0ms

Counts
1 → 1
Calls

1 calls. Slowest were:

414.0ms
(* (- (/ (* m (- 1 m)) v) 1) (- 1 m))

prune15.0ms

Pruning

2 alts after pruning (2 fresh and 0 done)

Merged error: 0.0b

localize15.0ms

Local error

Found 2 expressions with local error:

0.1b
(fma (- 1 m) (/ m v) -1)
0.1b
(* (fma (- 1 m) (/ m v) -1) (- 1 m))

rewrite9.0ms

Algorithm
rewrite-expression-head
Counts
2 → 35
Calls

2 calls. Slowest were:

5.0ms
(* (fma (- 1 m) (/ m v) -1) (- 1 m))
1.0ms
(fma (- 1 m) (/ m v) -1)

series74.0ms

Counts
2 → 6
Calls

2 calls. Slowest were:

49.0ms
(fma (- 1 m) (/ m v) -1)
25.0ms
(* (fma (- 1 m) (/ m v) -1) (- 1 m))

simplify5.0s

Counts
20 → 41
Calls

20 calls. Slowest were:

880.0ms
(* (- m) (fma (- 1 m) (/ m v) -1))
858.0ms
(* (- m) (fma (- 1 m) (/ m v) -1))
566.0ms
(* (* (* (fma (- 1 m) (/ m v) -1) (fma (- 1 m) (/ m v) -1)) (fma (- 1 m) (/ m v) -1)) (* (* (- 1 m) (- 1 m)) (- 1 m)))

prune333.0ms

Pruning

6 alts after pruning (5 fresh and 1 done)

Merged error: 0b

localize29.0ms

Local error

Found 4 expressions with local error:

0.2b
(fma (/ m v) (* m (+ -1 m)) m)
0.1b
(fma (- 1 m) (/ m v) -1)
0.0b
(+ (* 1 (fma (- 1 m) (/ m v) -1)) (fma (/ m v) (* m (+ -1 m)) m))
0.0b
(* m (+ -1 m))

rewrite14.0ms

Algorithm
rewrite-expression-head
Counts
4 → 55
Calls

4 calls. Slowest were:

10.0ms
(+ (* 1 (fma (- 1 m) (/ m v) -1)) (fma (/ m v) (* m (+ -1 m)) m))
2.0ms
(* m (+ -1 m))
0.0ms
(fma (/ m v) (* m (+ -1 m)) m)

series111.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

38.0ms
(+ (* 1 (fma (- 1 m) (/ m v) -1)) (fma (/ m v) (* m (+ -1 m)) m))
29.0ms
(* m (+ -1 m))
26.0ms
(fma (/ m v) (* m (+ -1 m)) m)
18.0ms
(fma (- 1 m) (/ m v) -1)

simplify4.0s

Counts
23 → 67
Calls

23 calls. Slowest were:

2.2s
(+ (fma (- 1 m) (/ m v) -1) (fma (/ m v) (* m (+ -1 m)) m))
311.0ms
(* 1 (* (- 1 m) (/ m v)))
280.0ms
(- (+ m (/ (pow m 3) v)) (* 2 (/ (pow m 2) v)))

prune767.0ms

Pruning

6 alts after pruning (4 fresh and 2 done)

Merged error: 0b

localize11.0ms

Local error

Found 3 expressions with local error:

0.1b
(/ (* m (- 1 m)) v)
0.1b
(* (- (/ (* m (- 1 m)) v) 1) (- 1 m))
0.0b
(* m (- 1 m))

rewrite16.0ms

Algorithm
rewrite-expression-head
Counts
3 → 66
Calls

3 calls. Slowest were:

10.0ms
(* (- (/ (* m (- 1 m)) v) 1) (- 1 m))
4.0ms
(/ (* m (- 1 m)) v)
1.0ms
(* m (- 1 m))

series98.0ms

Counts
3 → 9
Calls

3 calls. Slowest were:

39.0ms
(* m (- 1 m))
30.0ms
(* (- (/ (* m (- 1 m)) v) 1) (- 1 m))
29.0ms
(/ (* m (- 1 m)) v)

simplify7.9s

Counts
45 → 75
Calls

45 calls. Slowest were:

1.1s
(* (- m) (- (/ (* m (- 1 m)) v) 1))
745.0ms
(* (- m) (- (/ (* m (- 1 m)) v) 1))
705.0ms
(* (+ (* (/ (* m (- 1 m)) v) (/ (* m (- 1 m)) v)) (+ (* 1 1) (* (/ (* m (- 1 m)) v) 1))) (+ 1 m))

prune643.0ms

Pruning

4 alts after pruning (1 fresh and 3 done)

Merged error: 0b

localize10.0ms

Local error

Found 3 expressions with local error:

0.1b
(* (- (/ m (/ v (- 1 m))) 1) (- 1 m))
0.0b
(/ m (/ v (- 1 m)))
0.0b
(/ v (- 1 m))

rewrite10.0ms

Algorithm
rewrite-expression-head
Counts
3 → 68
Calls

3 calls. Slowest were:

8.0ms
(* (- (/ m (/ v (- 1 m))) 1) (- 1 m))
0.0ms
(/ m (/ v (- 1 m)))
0.0ms
(/ v (- 1 m))

series68.0ms

Counts
3 → 9
Calls

3 calls. Slowest were:

26.0ms
(/ v (- 1 m))
25.0ms
(/ m (/ v (- 1 m)))
17.0ms
(* (- (/ m (/ v (- 1 m))) 1) (- 1 m))

simplify6.7s

Counts
46 → 77
Calls

46 calls. Slowest were:

607.0ms
(* (+ (* (/ m (/ v (- 1 m))) (/ m (/ v (- 1 m)))) (+ (* 1 1) (* (/ m (/ v (- 1 m))) 1))) (+ 1 m))
593.0ms
(* (- (pow (/ m (/ v (- 1 m))) 3) (pow 1 3)) (- (pow 1 3) (pow m 3)))
483.0ms
(* (- (pow (/ m (/ v (- 1 m))) 3) (pow 1 3)) (- (* 1 1) (* m m)))

prune664.0ms

Pruning

4 alts after pruning (0 fresh and 4 done)

Merged error: 0b

regimes93.0ms

Accuracy

0% (0.1b remaining)

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

bsearch2.0ms

end0.0ms

sample2.2s

Algorithm
intervals