Average Error: 0.1 → 0.1
Time: 30.1s
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(-m\right) + (\left(1 - m\right) \cdot \left(\frac{m}{v}\right) + -1)_*\]

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-lft-in0.1

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

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

Reproduce

herbie shell --seed 2019010 +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.6s)Debug log

sample192.0ms

Algorithm
intervals

simplify426.0ms

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

prune12.0ms

Pruning

2 alts after pruning (2 fresh and 0 done)

Merged error: 0.1b

localize16.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))

rewrite13.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
8.0ms
(* (fma (- 1 m) (/ m v) -1) (- 1 m))
2.0ms
(fma (- 1 m) (/ m v) -1)

series52.0ms

Counts
2 → 6
Calls
2 calls:
Slowest
27.0ms
(* (fma (- 1 m) (/ m v) -1) (- 1 m))
25.0ms
(fma (- 1 m) (/ m v) -1)

simplify4.7s

Counts
20 → 41
Calls
20 calls:
Slowest
960.0ms
(* (- m) (fma (- 1 m) (/ m v) -1))
900.0ms
(* (- m) (fma (- 1 m) (/ m v) -1))
588.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)))
469.0ms
(* (fma (- 1 m) (/ m v) -1) (- 1 m))
359.0ms
(* (fma (- 1 m) (/ m v) -1) (- m))

prune464.0ms

Pruning

5 alts after pruning (5 fresh and 0 done)

Merged error: 0.0b

localize20.0ms

Local error

Found 4 expressions with local error:

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

rewrite19.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
distribute-rgt-neg-out
associate-*l*
fma-udef
distribute-lft-out
flip-+
cbrt-unprod
*-commutative
prod-exp
pow-prod-down
unsub-neg
flip3-+
fma-def
sum-log
neg-mul-1
+-commutative
Counts
4 → 58
Calls
4 calls:
Slowest
9.0ms
(+ (* (fma (- 1 m) (/ m v) -1) 1) (* (fma (- 1 m) (/ m v) -1) (- m)))
8.0ms
(* (fma (- 1 m) (/ m v) -1) (- m))
0.0ms
(fma (- 1 m) (/ m v) -1)
0.0ms
(fma (- 1 m) (/ m v) -1)

series89.0ms

Counts
4 → 12
Calls
4 calls:
Slowest
39.0ms
(+ (* (fma (- 1 m) (/ m v) -1) 1) (* (fma (- 1 m) (/ m v) -1) (- m)))
24.0ms
(* (fma (- 1 m) (/ m v) -1) (- m))
15.0ms
(fma (- 1 m) (/ m v) -1)
11.0ms
(fma (- 1 m) (/ m v) -1)

simplify2.9s

Counts
26 → 70
Calls
26 calls:
Slowest
360.0ms
(* (fma (- 1 m) (/ m v) -1) (- m))
342.0ms
(* (* (* (fma (- 1 m) (/ m v) -1) (fma (- 1 m) (/ m v) -1)) (fma (- 1 m) (/ m v) -1)) (* (* (- m) (- m)) (- m)))
278.0ms
(- (+ m (/ (pow m 3) v)) (* 2 (/ (pow m 2) v)))
245.0ms
(* (fma (- 1 m) (/ m v) -1) m)
232.0ms
(- (+ m (/ (pow m 3) v)) (* 2 (/ (pow m 2) v)))

prune628.0ms

Pruning

6 alts after pruning (5 fresh and 1 done)

Merged error: 0.0b

localize17.0ms

Local error

Found 4 expressions with local error:

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

rewrite31.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
20.0ms
(* (- (/ (* m (- 1 m)) v) 1) (- 1 m))
4.0ms
(- (/ (* m (- 1 m)) v) 1)
4.0ms
(/ (* m (- 1 m)) v)
1.0ms
(* m (- 1 m))

series90.0ms

Counts
4 → 12
Calls
4 calls:
Slowest
33.0ms
(* m (- 1 m))
20.0ms
(* (- (/ (* m (- 1 m)) v) 1) (- 1 m))
19.0ms
(/ (* m (- 1 m)) v)
18.0ms
(- (/ (* m (- 1 m)) v) 1)

simplify7.9s

Counts
53 → 97
Calls
53 calls:
Slowest
712.0ms
(* (- m) (- (/ (* m (- 1 m)) v) 1))
672.0ms
(* (+ (/ (* m (- 1 m)) v) 1) (+ 1 m))
640.0ms
(* (+ (* (/ (* m (- 1 m)) v) (/ (* m (- 1 m)) v)) (+ (* 1 1) (* (/ (* m (- 1 m)) v) 1))) (+ 1 m))
616.0ms
(* (- m) (- (/ (* m (- 1 m)) v) 1))
524.0ms
(* (* (* (- (/ (* m (- 1 m)) v) 1) (- (/ (* m (- 1 m)) v) 1)) (- (/ (* m (- 1 m)) v) 1)) (* (* (- 1 m) (- 1 m)) (- 1 m)))

prune897.0ms

Pruning

6 alts after pruning (5 fresh and 1 done)

Merged error: 0b

localize16.0ms

Local error

Found 4 expressions with local error:

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

rewrite28.0ms

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

series92.0ms

Counts
4 → 12
Calls
4 calls:
Slowest
32.0ms
(/ m (/ v (- 1 m)))
29.0ms
(* (- (/ m (/ v (- 1 m))) 1) (- 1 m))
16.0ms
(/ v (- 1 m))
15.0ms
(- (/ m (/ v (- 1 m))) 1)

simplify7.9s

Counts
54 → 100
Calls
54 calls:
Slowest
742.0ms
(* (+ (* (/ m (/ v (- 1 m))) (/ m (/ v (- 1 m)))) (+ (* 1 1) (* (/ m (/ v (- 1 m))) 1))) (+ 1 m))
683.0ms
(* (- (pow (/ m (/ v (- 1 m))) 3) (pow 1 3)) (- (pow 1 3) (pow m 3)))
535.0ms
(* (- (pow (/ m (/ v (- 1 m))) 3) (pow 1 3)) (- (* 1 1) (* m m)))
486.0ms
(* (+ (* (/ m (/ v (- 1 m))) (/ m (/ v (- 1 m)))) (+ (* 1 1) (* (/ m (/ v (- 1 m))) 1))) (+ (* 1 1) (+ (* m m) (* 1 m))))
454.0ms
(* (- (pow (/ m (/ v (- 1 m))) 3) (pow 1 3)) (- 1 m))

prune924.0ms

Pruning

6 alts after pruning (4 fresh and 2 done)

Merged error: 0b

regimes86.0ms

Accuracy

0% (0.1b remaining)

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

bsearch4.0ms

end0.0ms

sample2.1s

Algorithm
intervals