Average Error: 0.1 → 0.1
Time: 27.0s
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)_* \cdot \left(1 - m\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. Simplified0.1

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

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

Reproduce

herbie shell --seed 2019016 +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

sample183.0ms

Algorithm
intervals
Results
413×(pre true 80)
413×(body real 80)

simplify895.0ms

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

prune13.0ms

Pruning

2 alts after pruning (2 fresh and 0 done)

Merged error: 0.0b

localize24.0ms

Local error

Found 2 expressions with local error:

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

rewrite7.0ms

Algorithm
rewrite-expression-head
Rules
add-cube-cbrt
add-exp-log
add-cbrt-cube
*-un-lft-identity
pow1
add-sqr-sqrt
associate-*l*
associate-*r*
add-log-exp
log1p-expm1-u
associate-*r/
distribute-lft-in
sub-neg
expm1-log1p-u
distribute-rgt-in
flip--
fma-udef
cbrt-unprod
*-commutative
prod-exp
pow-prod-down
flip3--
Counts
2 → 35
Calls
2 calls:
Slowest
4.0ms
(* (fma (- 1 m) (/ m v) -1) (- 1 m))
1.0ms
(fma (- 1 m) (/ m v) -1)

series51.0ms

Counts
2 → 6
Calls
2 calls:
Slowest
26.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
989.0ms
(* (- m) (fma (- 1 m) (/ m v) -1))
960.0ms
(* (- m) (fma (- 1 m) (/ m v) -1))
643.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)))
475.0ms
(* (fma (- 1 m) (/ m v) -1) (- 1 m))
439.0ms
(* (fma (- 1 m) (/ m v) -1) (- m))

prune398.0ms

Pruning

8 alts after pruning (7 fresh and 1 done)

Merged error: 0.0b

localize30.0ms

Local error

Found 4 expressions with local error:

0.1b
(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))

rewrite11.0ms

Algorithm
rewrite-expression-head
Rules
add-log-exp
*-un-lft-identity
fma-udef
add-cube-cbrt
add-sqr-sqrt
log1p-expm1-u
add-exp-log
add-cbrt-cube
pow1
expm1-log1p-u
associate-*r*
flip-+
associate-*r/
flip3-+
distribute-lft-in
associate-+l+
distribute-rgt-in
distribute-lft-out
*-commutative
fma-def
sum-log
associate-+r+
+-commutative
Counts
4 → 55
Calls
4 calls:
Slowest
7.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)
0.0ms
(fma (- 1 m) (/ m v) -1)

series97.0ms

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

simplify4.0s

Counts
23 → 67
Calls
23 calls:
Slowest
2.2s
(+ (fma (- 1 m) (/ m v) -1) (fma (/ m v) (* m (+ -1 m)) m))
273.0ms
(* 1 (* (- 1 m) (/ m v)))
246.0ms
(- (+ m (/ (pow m 3) v)) (* 2 (/ (pow m 2) v)))
232.0ms
(- (+ m (/ (pow m 3) v)) (* 2 (/ (pow m 2) v)))
151.0ms
(- (/ m v) (+ (* 2 (/ (pow m 2) v)) 1))

prune688.0ms

Pruning

7 alts after pruning (6 fresh and 1 done)

Merged error: 0.0b

localize33.0ms

Local error

Found 4 expressions with local error:

0.3b
(/ (* m (+ (pow -1 3) (pow m 3))) (+ (fma m m 1) m))
0.1b
(fma (/ m v) (/ (* m (+ (pow -1 3) (pow m 3))) (+ (fma m m 1) m)) m)
0.1b
(fma (- 1 m) (/ m v) -1)
0.0b
(* m (+ (pow -1 3) (pow m 3)))

rewrite14.0ms

Algorithm
rewrite-expression-head
Rules
*-un-lft-identity
add-cube-cbrt
add-sqr-sqrt
add-exp-log
add-cbrt-cube
associate-*r*
add-log-exp
log1p-expm1-u
associate-*r/
pow1
expm1-log1p-u
flip-+
times-frac
flip3-+
associate-/r*
associate-/l/
fma-udef
associate-/r/
associate-/l*
distribute-lft-out
div-inv
*-commutative
sum-cubes
div-exp
distribute-lft-in
frac-2neg
clear-num
cbrt-undiv
distribute-rgt-in
Counts
4 → 64
Calls
4 calls:
Slowest
9.0ms
(/ (* m (+ (pow -1 3) (pow m 3))) (+ (fma m m 1) m))
5.0ms
(* m (+ (pow -1 3) (pow m 3)))
0.0ms
(fma (/ m v) (/ (* m (+ (pow -1 3) (pow m 3))) (+ (fma m m 1) m)) m)
0.0ms
(fma (- 1 m) (/ m v) -1)

series218.0ms

Counts
4 → 12
Calls
4 calls:
Slowest
99.0ms
(/ (* m (+ (pow -1 3) (pow m 3))) (+ (fma m m 1) m))
57.0ms
(* m (+ (pow -1 3) (pow m 3)))
52.0ms
(fma (/ m v) (/ (* m (+ (pow -1 3) (pow m 3))) (+ (fma m m 1) m)) m)
11.0ms
(fma (- 1 m) (/ m v) -1)

simplify2.8s

Counts
36 → 76
Calls
36 calls:
Slowest
610.0ms
(+ (* (pow -1 3) (pow -1 3)) (- (* (pow m 3) (pow m 3)) (* (pow -1 3) (pow m 3))))
545.0ms
(+ (* (fma m m 1) (fma m m 1)) (- (* m m) (* (fma m m 1) m)))
382.0ms
(* m (- (* (pow -1 3) (pow -1 3)) (* (pow m 3) (pow m 3))))
275.0ms
(/ (* (* (* m (+ (pow -1 3) (pow m 3))) (* m (+ (pow -1 3) (pow m 3)))) (* m (+ (pow -1 3) (pow m 3)))) (* (* (+ (fma m m 1) m) (+ (fma m m 1) m)) (+ (fma m m 1) m)))
143.0ms
(- (+ m (/ (pow m 3) v)) (/ (pow m 2) v))

prune1.2s

Pruning

7 alts after pruning (5 fresh and 2 done)

Merged error: 0.0b

localize15.0ms

Local error

Found 4 expressions with local error:

4.7b
(log1p (* (fma (- 1 m) (/ m v) -1) (- 1 m)))
2.9b
(expm1 (log1p (* (fma (- 1 m) (/ m v) -1) (- 1 m))))
0.1b
(fma (- 1 m) (/ m v) -1)
0.0b
(* (fma (- 1 m) (/ m v) -1) (- 1 m))

rewrite5.0ms

Algorithm
rewrite-expression-head
Rules
add-cube-cbrt
add-exp-log
add-cbrt-cube
*-un-lft-identity
pow1
add-sqr-sqrt
expm1-log1p-u
add-log-exp
log1p-expm1-u
associate-*l*
associate-*r*
associate-*r/
distribute-lft-in
sub-neg
distribute-rgt-in
expm1-udef
flip--
fma-udef
cbrt-unprod
*-commutative
log1p-expm1
prod-exp
pow-prod-down
flip3--
expm1-log1p
log1p-udef
Counts
4 → 57
Calls
4 calls:
Slowest
4.0ms
(* (fma (- 1 m) (/ m v) -1) (- 1 m))
1.0ms
(log1p (* (fma (- 1 m) (/ m v) -1) (- 1 m)))
0.0ms
(expm1 (log1p (* (fma (- 1 m) (/ m v) -1) (- 1 m))))
0.0ms
(fma (- 1 m) (/ m v) -1)

series157.0ms

Counts
4 → 12
Calls
4 calls:
Slowest
74.0ms
(expm1 (log1p (* (fma (- 1 m) (/ m v) -1) (- 1 m))))
47.0ms
(log1p (* (fma (- 1 m) (/ m v) -1) (- 1 m)))
25.0ms
(* (fma (- 1 m) (/ m v) -1) (- 1 m))
11.0ms
(fma (- 1 m) (/ m v) -1)

simplify7.0s

Counts
28 → 69
Calls
28 calls:
Slowest
968.0ms
(* (- m) (fma (- 1 m) (/ m v) -1))
798.0ms
(* (- m) (fma (- 1 m) (/ m v) -1))
665.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)))
633.0ms
(- (+ (exp (- (log m) (log v))) (* (exp (- (log m) (log v))) v)) (+ (* 2 (* (exp (- (log m) (log v))) m)) 1))
517.0ms
(- (log (/ 1 v)) (+ (* 3 (log (/ 1 m))) (+ (* 2 (/ 1 m)) (/ 1 (pow m 2)))))

prune665.0ms

Pruning

8 alts after pruning (5 fresh and 3 done)

Merged error: 0b

regimes119.0ms

Accuracy

0% (0.0b remaining)

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

bsearch1.0ms

end0.0ms

sample2.4s

Algorithm
intervals
Results
13711×(pre true 80)
13711×(body real 80)