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

Error

Bits error versus m

Bits error versus v

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

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(1 - \frac{1 - m}{\frac{v}{m}}\right) \cdot m}\]
  6. Taylor expanded around inf 0.1

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

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

Reproduce

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

sample248.0ms

Algorithm
intervals
Results
39.0ms432×body80valid
16.0ms432×pre80true

simplify235.0ms

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

prune6.0ms

Pruning

1 alts after pruning (1 fresh and 0 done)

Merged error: 0.1b

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

rewrite22.0ms

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

series83.0ms

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

simplify6.1s

Counts
49 → 84
Calls
49 calls:
Slowest
807.0ms
(* (- (pow (/ (* m (- 1 m)) v) 3) (pow 1 3)) (- (pow 1 3) (pow m 3)))
484.0ms
(* (- m) (- (/ (* m (- 1 m)) v) 1))
469.0ms
(* (+ (* (/ (* m (- 1 m)) v) (/ (* m (- 1 m)) v)) (+ (* 1 1) (* (/ (* m (- 1 m)) v) 1))) (+ 1 m))
465.0ms
(* (- m) (- (/ (* m (- 1 m)) v) 1))
430.0ms
(* (* (* (- (/ (* m (- 1 m)) v) 1) (- (/ (* m (- 1 m)) v) 1)) (- (/ (* m (- 1 m)) v) 1)) (* (* (- 1 m) (- 1 m)) (- 1 m)))

prune720.0ms

Pruning

8 alts after pruning (8 fresh and 0 done)

Merged error: 0.0b

localize20.0ms

Local error

Found 4 expressions with local error:

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

rewrite19.0ms

Algorithm
rewrite-expression-head
Rules
14×add-cube-cbrt
14×*-un-lft-identity
14×add-sqr-sqrt
12×times-frac
10×associate-*l/
flip--
flip3--
add-log-exp
div-inv
add-exp-log
add-cbrt-cube
associate-/l/
associate-/l*
frac-add
associate-/r*
pow1
associate-*l*
associate-*r/
frac-2neg
clear-num
flip-+
*-commutative
associate-/r/
div-exp
div-sub
flip3-+
sum-log
+-commutative
cbrt-undiv
Counts
4 → 76
Calls
4 calls:
Slowest
9.0ms
(+ (* (- (/ (* m (- 1 m)) v) 1) 1) (* (- 1 (/ (- 1 m) (/ v m))) m))
4.0ms
(* (- 1 (/ (- 1 m) (/ v m))) m)
3.0ms
(/ (* m (- 1 m)) v)
2.0ms
(/ (- 1 m) (/ v m))

series94.0ms

Counts
4 → 12
Calls
4 calls:
Slowest
29.0ms
(+ (* (- (/ (* m (- 1 m)) v) 1) 1) (* (- 1 (/ (- 1 m) (/ v m))) m))
28.0ms
(* (- 1 (/ (- 1 m) (/ v m))) m)
21.0ms
(/ (- 1 m) (/ v m))
17.0ms
(/ (* m (- 1 m)) v)

simplify3.8s

Counts
62 → 88
Calls
62 calls:
Slowest
396.0ms
(* (- (pow 1 3) (pow (/ (- 1 m) (/ v m)) 3)) m)
366.0ms
(/ (* (* (- 1 m) (- 1 m)) (- 1 m)) (* (* (/ v m) (/ v m)) (/ v m)))
247.0ms
(+ (* (* (- (pow (/ (* m (- 1 m)) v) 3) (pow 1 3)) 1) (+ (* 1 1) (+ (* (/ (- 1 m) (/ v m)) (/ (- 1 m) (/ v m))) (* 1 (/ (- 1 m) (/ v m)))))) (* (+ (* (/ (* m (- 1 m)) v) (/ (* m (- 1 m)) v)) (+ (* 1 1) (* (/ (* m (- 1 m)) v) 1))) (* (- (pow 1 3) (pow (/ (- 1 m) (/ v m)) 3)) m)))
231.0ms
(+ (* (* (- (* (/ (* m (- 1 m)) v) (/ (* m (- 1 m)) v)) (* 1 1)) 1) (+ (* 1 1) (+ (* (/ (- 1 m) (/ v m)) (/ (- 1 m) (/ v m))) (* 1 (/ (- 1 m) (/ v m)))))) (* (+ (/ (* m (- 1 m)) v) 1) (* (- (pow 1 3) (pow (/ (- 1 m) (/ v m)) 3)) m)))
221.0ms
(* (+ (* (/ (* m (- 1 m)) v) (/ (* m (- 1 m)) v)) (+ (* 1 1) (* (/ (* m (- 1 m)) v) 1))) (+ (* 1 1) (+ (* (/ (- 1 m) (/ v m)) (/ (- 1 m) (/ v m))) (* 1 (/ (- 1 m) (/ v m))))))

prune921.0ms

Pruning

7 alts after pruning (7 fresh and 0 done)

Merged error: 0b

localize39.0ms

Local error

Found 4 expressions with local error:

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

rewrite25.0ms

Algorithm
rewrite-expression-head
Rules
17×*-un-lft-identity
17×add-sqr-sqrt
15×add-cube-cbrt
12×times-frac
div-inv
associate-/l*
add-log-exp
add-exp-log
add-cbrt-cube
associate-/r*
pow1
flip--
associate-*l*
flip3--
associate-/l/
associate-*l/
frac-2neg
clear-num
difference-of-squares
sub-div
unpow2
distribute-lft-out--
frac-sub
*-commutative
associate-/r/
div-exp
div-sub
diff-log
distribute-rgt-out--
sub-neg
cbrt-undiv
Counts
4 → 79
Calls
4 calls:
Slowest
7.0ms
(* (- 1 (/ (- 1 m) (/ v m))) m)
7.0ms
(- (/ m v) (/ (pow m 2) v))
5.0ms
(/ (- 1 m) (/ v m))
4.0ms
(/ (pow m 2) v)

series78.0ms

Counts
4 → 12
Calls
4 calls:
Slowest
26.0ms
(* (- 1 (/ (- 1 m) (/ v m))) m)
22.0ms
(- (/ m v) (/ (pow m 2) v))
16.0ms
(/ (- 1 m) (/ v m))
13.0ms
(/ (pow m 2) v)

simplify1.9s

Counts
62 → 91
Calls
62 calls:
Slowest
447.0ms
(* (- (pow 1 3) (pow (/ (- 1 m) (/ v m)) 3)) m)
330.0ms
(/ (* (* (- 1 m) (- 1 m)) (- 1 m)) (* (* (/ v m) (/ v m)) (/ v m)))
201.0ms
(* (- (* 1 1) (* (/ (- 1 m) (/ v m)) (/ (- 1 m) (/ v m)))) m)
142.0ms
(* (cbrt (- 1 (/ (- 1 m) (/ v m)))) (cbrt (- 1 (/ (- 1 m) (/ v m)))))
123.0ms
(sqrt (- 1 (/ (- 1 m) (/ v m))))

prune1.1s

Pruning

7 alts after pruning (6 fresh and 1 done)

Merged error: 0b

localize31.0ms

Local error

Found 4 expressions with local error:

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

rewrite33.0ms

Algorithm
rewrite-expression-head
Rules
10×*-un-lft-identity
10×add-sqr-sqrt
add-cube-cbrt
associate-*l*
add-log-exp
add-exp-log
add-cbrt-cube
pow1
associate-/l*
flip--
div-inv
flip3--
associate-*l/
associate-*r*
sub-neg
*-commutative
associate-*r/
distribute-lft-in
frac-times
distribute-rgt-in
difference-of-squares
sub-div
unpow2
distribute-lft-out--
cbrt-unprod
frac-sub
prod-exp
pow-prod-down
diff-log
distribute-rgt-out--
frac-2neg
clear-num
Counts
4 → 71
Calls
4 calls:
Slowest
13.0ms
(* (/ 1 v) (- m (* m m)))
8.0ms
(- (/ m v) (/ (pow m 2) v))
6.0ms
(* (- 1 (* (/ 1 v) (- m (* m m)))) m)
5.0ms
(/ (pow m 2) v)

series91.0ms

Counts
4 → 12
Calls
4 calls:
Slowest
29.0ms
(* (/ 1 v) (- m (* m m)))
24.0ms
(* (- 1 (* (/ 1 v) (- m (* m m)))) m)
21.0ms
(- (/ m v) (/ (pow m 2) v))
17.0ms
(/ (pow m 2) v)

simplify4.8s

Counts
46 → 83
Calls
46 calls:
Slowest
789.0ms
(* (- (pow 1 3) (pow (* (/ 1 v) (- m (* m m))) 3)) m)
636.0ms
(* (* (* (/ 1 v) (/ 1 v)) (/ 1 v)) (* (* (- m (* m m)) (- m (* m m))) (- m (* m m))))
420.0ms
(* 1 (- (* m m) (* (* m m) (* m m))))
375.0ms
(* v (+ (* m m) (+ (* (* m m) (* m m)) (* m (* m m)))))
290.0ms
(* (- (* 1 1) (* (* (/ 1 v) (- m (* m m))) (* (/ 1 v) (- m (* m m))))) m)

prune831.0ms

Pruning

6 alts after pruning (5 fresh and 1 done)

Merged error: 0b

regimes96.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.5s

Algorithm
intervals
Results
1.8s13704×body80valid
484.0ms13704×pre80true