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

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. Using strategy rm
  3. Applied sub-neg0.1

    \[\leadsto \left(\frac{m \cdot \left(1 - m\right)}{v} - 1\right) \cdot \color{blue}{\left(1 + \left(-m\right)\right)}\]
  4. Applied distribute-lft-in0.1

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

    \[\leadsto \left(\frac{m \cdot \left(1 - m\right)}{v} - 1\right) \cdot 1 + \color{blue}{(\left(\left(1 - m\right) \cdot \frac{m}{v}\right) \cdot \left(-m\right) + m)_*}\]
  6. Taylor expanded around 0 0.1

    \[\leadsto \left(\color{blue}{\left(\frac{m}{v} - \frac{{m}^{2}}{v}\right)} - 1\right) \cdot 1 + (\left(\left(1 - m\right) \cdot \frac{m}{v}\right) \cdot \left(-m\right) + m)_*\]
  7. Taylor expanded around inf 0.1

    \[\leadsto \left(\left(\frac{m}{v} - \frac{{m}^{2}}{v}\right) - 1\right) \cdot 1 + \color{blue}{\left(\left(m + \frac{{m}^{3}}{v}\right) - \frac{{m}^{2}}{v}\right)}\]
  8. Simplified0.1

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

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

Reproduce

herbie shell --seed 2019022 +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: 26.1s)Debug log

sample192.0ms

Algorithm
intervals
Results
44.0ms432×body80valid
19.0ms432×pre80true

simplify500.0ms

Counts
1 → 1
Calls
1 calls:
Slowest
498.0ms
(* (- (/ (* m (- 1 m)) v) 1) (- 1 m))

prune18.0ms

Pruning

2 alts after pruning (2 fresh and 0 done)

Merged error: 0.1b

localize27.0ms

Local error

Found 4 expressions with local error:

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

rewrite36.0ms

Algorithm
rewrite-expression-head
Rules
10×add-sqr-sqrt
flip--
flip3--
add-cube-cbrt
*-un-lft-identity
add-exp-log
associate-*r/
associate-*r*
add-cbrt-cube
pow1
sub-neg
add-log-exp
log1p-expm1-u
associate-*l*
fma-neg
distribute-lft-in
frac-times
expm1-log1p-u
distribute-rgt-in
associate-/l/
div-inv
*-commutative
associate-*l/
difference-of-sqr-1
associate-/l*
cbrt-unprod
prod-exp
pow-prod-down
frac-2neg
clear-num
expm1-def
Counts
4 → 85
Calls
4 calls:
Slowest
12.0ms
(* (- (/ (* m (- 1 m)) v) 1) (- 1 m))
6.0ms
(- (/ (* m (- 1 m)) v) 1)
4.0ms
(/ (* m (- 1 m)) v)
1.0ms
(* m (- 1 m))

series103.0ms

Counts
4 → 12
Calls
4 calls:
Slowest
42.0ms
(* (- (/ (* m (- 1 m)) v) 1) (- 1 m))
25.0ms
(* m (- 1 m))
18.0ms
(- (/ (* m (- 1 m)) v) 1)
18.0ms
(/ (* m (- 1 m)) v)

simplify7.6s

Counts
53 → 97
Calls
53 calls:
Slowest
665.0ms
(* (+ (/ (* m (- 1 m)) v) 1) (+ 1 m))
653.0ms
(* (+ (* (/ (* m (- 1 m)) v) (/ (* m (- 1 m)) v)) (+ (* 1 1) (* (/ (* m (- 1 m)) v) 1))) (+ 1 m))
644.0ms
(* (- m) (- (/ (* m (- 1 m)) v) 1))
614.0ms
(* (- m) (- (/ (* m (- 1 m)) v) 1))
459.0ms
(* (* (* (- (/ (* m (- 1 m)) v) 1) (- (/ (* m (- 1 m)) v) 1)) (- (/ (* m (- 1 m)) v) 1)) (* (* (- 1 m) (- 1 m)) (- 1 m)))

prune902.0ms

Pruning

6 alts after pruning (6 fresh and 0 done)

Merged error: 0.0b

localize34.0ms

Local error

Found 4 expressions with local error:

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

rewrite25.0ms

Algorithm
rewrite-expression-head
Rules
add-log-exp
add-cube-cbrt
add-exp-log
add-cbrt-cube
*-un-lft-identity
pow1
add-sqr-sqrt
log1p-expm1-u
associate-*r*
expm1-log1p-u
flip--
associate-*r/
associate-*l*
flip3--
associate-/l/
div-inv
fma-udef
associate-*l/
frac-times
associate-/l*
flip-+
cbrt-unprod
*-commutative
prod-exp
pow-prod-down
flip3-+
frac-2neg
fma-def
sum-log
clear-num
associate-+r+
+-commutative
Counts
4 → 65
Calls
4 calls:
Slowest
10.0ms
(+ (* (- (/ (* m (- 1 m)) v) 1) 1) (fma (* (- 1 m) (/ m v)) (- m) m))
7.0ms
(* (- 1 m) (/ m v))
7.0ms
(/ (* m (- 1 m)) v)
0.0ms
(fma (* (- 1 m) (/ m v)) (- m) m)

series105.0ms

Counts
4 → 12
Calls
4 calls:
Slowest
35.0ms
(+ (* (- (/ (* m (- 1 m)) v) 1) 1) (fma (* (- 1 m) (/ m v)) (- m) m))
26.0ms
(fma (* (- 1 m) (/ m v)) (- m) m)
26.0ms
(* (- 1 m) (/ m v))
19.0ms
(/ (* m (- 1 m)) v)

simplify2.2s

Counts
31 → 77
Calls
31 calls:
Slowest
263.0ms
(- (+ m (/ (pow m 3) v)) (* 2 (/ (pow m 2) v)))
245.0ms
(- (+ m (/ (pow m 3) v)) (* 2 (/ (pow m 2) v)))
220.0ms
(* (* (* (- 1 m) (- 1 m)) (- 1 m)) (* (* (/ m v) (/ m v)) (/ m v)))
188.0ms
(* (- (* 1 1) (* m m)) (/ m v))
170.0ms
(* (- (pow 1 3) (pow m 3)) (/ m v))

prune843.0ms

Pruning

6 alts after pruning (6 fresh and 0 done)

Merged error: 0b

localize27.0ms

Local error

Found 4 expressions with local error:

12.7b
(/ (pow m 2) v)
0.2b
(fma (* (- 1 m) (/ m v)) (- m) m)
0.1b
(* (- 1 m) (/ m v))
0.0b
(- (/ m v) (/ (pow m 2) v))

rewrite14.0ms

Algorithm
rewrite-expression-head
Rules
18×*-un-lft-identity
18×add-sqr-sqrt
16×add-cube-cbrt
16×prod-diff
13×div-inv
add-log-exp
add-exp-log
add-cbrt-cube
pow1
associate-/l*
log1p-expm1-u
associate-*r*
fma-neg
expm1-log1p-u
flip--
associate-*l*
flip3--
associate-*l/
frac-times
difference-of-squares
sub-div
unpow2
distribute-lft-out--
fma-udef
cbrt-unprod
frac-sub
*-commutative
associate-*r/
prod-exp
pow-prod-down
diff-log
distribute-rgt-out--
frac-2neg
sub-neg
clear-num
Counts
4 → 90
Calls
4 calls:
Slowest
5.0ms
(- (/ m v) (/ (pow m 2) v))
4.0ms
(* (- 1 m) (/ m v))
4.0ms
(/ (pow m 2) v)
0.0ms
(fma (* (- 1 m) (/ m v)) (- m) m)

series84.0ms

Counts
4 → 12
Calls
4 calls:
Slowest
30.0ms
(* (- 1 m) (/ m v))
23.0ms
(- (/ m v) (/ (pow m 2) v))
22.0ms
(fma (* (- 1 m) (/ m v)) (- m) m)
10.0ms
(/ (pow m 2) v)

simplify4.6s

Counts
72 → 102
Calls
72 calls:
Slowest
381.0ms
(fma m (/ 1 v) (- (* (/ 1 v) (pow m 2))))
299.0ms
(fma (sqrt (/ m v)) (sqrt (/ m v)) (- (* (/ 1 v) (pow m 2))))
279.0ms
(fma (* (cbrt (/ m v)) (cbrt (/ m v))) (cbrt (/ m v)) (- (* (/ 1 v) (pow m 2))))
272.0ms
(* (* (* (- 1 m) (- 1 m)) (- 1 m)) (* (* (/ m v) (/ m v)) (/ m v)))
264.0ms
(fma 1 (/ m v) (- (* (/ 1 v) (pow m 2))))

prune1.2s

Pruning

5 alts after pruning (5 fresh and 0 done)

Merged error: 0b

localize14.0ms

Local error

Found 4 expressions with local error:

12.7b
(/ (pow m 2) v)
0.2b
(fma (/ m v) (- (* m m) m) m)
0.0b
(- (/ m v) (/ (pow m 2) v))
0.0b
(+ (* (- (- (/ m v) (/ (pow m 2) v)) 1) 1) (fma (/ m v) (- (* m m) m) m))

rewrite88.0ms

Algorithm
rewrite-expression-head
Rules
16×prod-diff
16×*-un-lft-identity
16×add-sqr-sqrt
14×add-cube-cbrt
12×div-inv
add-log-exp
associate-/l*
log1p-expm1-u
add-exp-log
fma-neg
add-cbrt-cube
pow1
expm1-log1p-u
fma-udef
difference-of-squares
sub-div
unpow2
distribute-lft-out--
flip--
flip-+
frac-sub
diff-log
distribute-rgt-out--
flip3--
flip3-+
frac-2neg
fma-def
sub-neg
sum-log
clear-num
associate-+r+
+-commutative
Counts
4 → 80
Calls
4 calls:
Slowest
79.0ms
(+ (* (- (- (/ m v) (/ (pow m 2) v)) 1) 1) (fma (/ m v) (- (* m m) m) m))
5.0ms
(- (/ m v) (/ (pow m 2) v))
3.0ms
(/ (pow m 2) v)
0.0ms
(fma (/ m v) (- (* m m) m) m)

series100.0ms

Counts
4 → 12
Calls
4 calls:
Slowest
40.0ms
(+ (* (- (- (/ m v) (/ (pow m 2) v)) 1) 1) (fma (/ m v) (- (* m m) m) m))
23.0ms
(- (/ m v) (/ (pow m 2) v))
22.0ms
(fma (/ m v) (- (* m m) m) m)
15.0ms
(/ (pow m 2) v)

simplify4.0s

Counts
59 → 92
Calls
59 calls:
Slowest
341.0ms
(fma m (/ 1 v) (- (* (/ 1 v) (pow m 2))))
312.0ms
(fma (sqrt (/ m v)) (sqrt (/ m v)) (- (* (/ 1 v) (pow m 2))))
266.0ms
(- (+ m (/ (pow m 3) v)) (* 2 (/ (pow m 2) v)))
227.0ms
(fma (* (cbrt (/ m v)) (cbrt (/ m v))) (cbrt (/ m v)) (- (* (/ 1 v) (pow m 2))))
220.0ms
(- (+ m (/ (pow m 3) v)) (* 2 (/ (pow m 2) v)))

prune1.2s

Pruning

5 alts after pruning (4 fresh and 1 done)

Merged error: 0b

regimes83.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.1s

Algorithm
intervals
Results
1.3s13704×body80valid
513.0ms13704×pre80true