Average Error: 0.1 → 0.1
Time: 27.8s
Precision: 64
Internal Precision: 128
\[\left(\frac{m \cdot \left(1 - m\right)}{v} - 1\right) \cdot \left(1 - m\right)\]
\[\left(\frac{m + -1}{\frac{\frac{v}{m}}{m}} + m\right) + \left(\frac{\left(1 - m\right) \cdot m}{v} - 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-rgt-in0.1

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

    \[\leadsto 1 \cdot \left(\frac{m \cdot \left(1 - m\right)}{v} - 1\right) + \color{blue}{\left(\left(-1 + m\right) \cdot \frac{m}{\frac{v}{m}} + m\right)}\]
  6. Using strategy rm
  7. Applied associate-*r/0.1

    \[\leadsto 1 \cdot \left(\frac{m \cdot \left(1 - m\right)}{v} - 1\right) + \left(\color{blue}{\frac{\left(-1 + m\right) \cdot m}{\frac{v}{m}}} + m\right)\]
  8. Using strategy rm
  9. Applied associate-/l*0.1

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

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

Reproduce

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

sample152.0ms

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

simplify316.0ms

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

prune6.0ms

Pruning

1 alts after pruning (1 fresh and 0 done)

Merged error: 0.1b

localize16.0ms

Local error

Found 4 expressions with local error:

0.0b
(* (- (/ (* 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)

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

series117.0ms

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

simplify6.3s

Counts
49 → 84
Calls
49 calls:
Slowest
487.0ms
(* (- (* (/ (* m (- 1 m)) v) (/ (* m (- 1 m)) v)) (* 1 1)) (- (pow 1 3) (pow m 3)))
486.0ms
(* (+ (* (/ (* m (- 1 m)) v) (/ (* m (- 1 m)) v)) (+ (* 1 1) (* (/ (* m (- 1 m)) v) 1))) (+ 1 m))
474.0ms
(* (* (* (- (/ (* m (- 1 m)) v) 1) (- (/ (* m (- 1 m)) v) 1)) (- (/ (* m (- 1 m)) v) 1)) (* (* (- 1 m) (- 1 m)) (- 1 m)))
467.0ms
(* (- m) (- (/ (* m (- 1 m)) v) 1))
438.0ms
(* (+ (/ (* m (- 1 m)) v) 1) (+ 1 m))

prune742.0ms

Pruning

7 alts after pruning (7 fresh and 0 done)

Merged error: 0b

localize18.0ms

Local error

Found 4 expressions with local error:

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

rewrite21.0ms

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

series106.0ms

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

simplify5.4s

Counts
48 → 85
Calls
48 calls:
Slowest
503.0ms
(* (+ (* (/ (* m (- 1 m)) v) (/ (* m (- 1 m)) v)) (+ (* 1 1) (* (/ (* m (- 1 m)) v) 1))) (- (* (+ -1 m) (/ m (/ v m))) m))
482.0ms
(* (- (* -1 -1) (* m m)) m)
421.0ms
(+ (* (* 1 (- (pow (/ (* m (- 1 m)) v) 3) (pow 1 3))) (+ (* (* (+ -1 m) (/ m (/ v m))) (* (+ -1 m) (/ m (/ v m)))) (- (* m m) (* (* (+ -1 m) (/ m (/ v m))) m)))) (* (+ (* (/ (* m (- 1 m)) v) (/ (* m (- 1 m)) v)) (+ (* 1 1) (* (/ (* m (- 1 m)) v) 1))) (+ (pow (* (+ -1 m) (/ m (/ v m))) 3) (pow m 3))))
295.0ms
(+ (* (* 1 (- (* (/ (* m (- 1 m)) v) (/ (* m (- 1 m)) v)) (* 1 1))) (+ (* (* (+ -1 m) (/ m (/ v m))) (* (+ -1 m) (/ m (/ v m)))) (- (* m m) (* (* (+ -1 m) (/ m (/ v m))) m)))) (* (+ (/ (* m (- 1 m)) v) 1) (+ (pow (* (+ -1 m) (/ m (/ v m))) 3) (pow m 3))))
294.0ms
(* (+ (pow -1 3) (pow m 3)) (/ m (/ v m)))

prune983.0ms

Pruning

6 alts after pruning (6 fresh and 0 done)

Merged error: 0b

localize11.0ms

Local error

Found 4 expressions with local error:

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

rewrite53.0ms

Algorithm
rewrite-expression-head
Rules
*-un-lft-identity
add-cube-cbrt
add-sqr-sqrt
add-log-exp
add-exp-log
associate-*r/
add-cbrt-cube
flip-+
flip3-+
associate-/l/
div-inv
frac-add
associate-*l/
times-frac
associate-/r*
associate-+l+
pow1
flip--
associate-*l*
flip3--
associate-/l*
distribute-lft-in
frac-2neg
sub-neg
clear-num
distribute-rgt-in
distribute-lft-out
*-commutative
associate-/r/
div-exp
sum-log
associate-+r+
+-commutative
cbrt-undiv
Counts
4 → 71
Calls
4 calls:
Slowest
33.0ms
(+ (* 1 (- (/ (* m (- 1 m)) v) 1)) (+ (/ (* (+ -1 m) m) (/ v m)) m))
7.0ms
(/ (* (+ -1 m) m) (/ v m))
6.0ms
(/ (* m (- 1 m)) v)
5.0ms
(* (+ -1 m) m)

series108.0ms

Counts
4 → 12
Calls
4 calls:
Slowest
34.0ms
(/ (* m (- 1 m)) v)
31.0ms
(/ (* (+ -1 m) m) (/ v m))
21.0ms
(* (+ -1 m) m)
21.0ms
(+ (* 1 (- (/ (* m (- 1 m)) v) 1)) (+ (/ (* (+ -1 m) m) (/ v m)) m))

simplify4.7s

Counts
49 → 83
Calls
49 calls:
Slowest
509.0ms
(* (+ (* (/ (* m (- 1 m)) v) (/ (* m (- 1 m)) v)) (+ (* 1 1) (* (/ (* m (- 1 m)) v) 1))) (- (/ (* (+ -1 m) m) (/ v m)) m))
384.0ms
(+ (* (* 1 (- (pow (/ (* m (- 1 m)) v) 3) (pow 1 3))) (+ (* (/ (* (+ -1 m) m) (/ v m)) (/ (* (+ -1 m) m) (/ v m))) (- (* m m) (* (/ (* (+ -1 m) m) (/ v m)) m)))) (* (+ (* (/ (* m (- 1 m)) v) (/ (* m (- 1 m)) v)) (+ (* 1 1) (* (/ (* m (- 1 m)) v) 1))) (+ (pow (/ (* (+ -1 m) m) (/ v m)) 3) (pow m 3))))
325.0ms
(* (exp (* 1 (- (/ (* m (- 1 m)) v) 1))) (exp (+ (/ (* (+ -1 m) m) (/ v m)) m)))
309.0ms
(* (- (* -1 -1) (* m m)) m)
302.0ms
(* (- (* -1 -1) (* m m)) m)

prune922.0ms

Pruning

5 alts after pruning (5 fresh and 0 done)

Merged error: 0b

localize11.0ms

Local error

Found 4 expressions with local error:

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

rewrite46.0ms

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

series68.0ms

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

simplify4.0s

Counts
64 → 95
Calls
64 calls:
Slowest
486.0ms
(* (+ (* (/ (* m (- 1 m)) v) (/ (* m (- 1 m)) v)) (+ (* 1 1) (* (/ (* m (- 1 m)) v) 1))) (- (/ (+ -1 m) (/ (/ v m) m)) m))
351.0ms
(+ (* (* 1 (- (pow (/ (* m (- 1 m)) v) 3) (pow 1 3))) (+ (* (/ (+ -1 m) (/ (/ v m) m)) (/ (+ -1 m) (/ (/ v m) m))) (- (* m m) (* (/ (+ -1 m) (/ (/ v m) m)) m)))) (* (+ (* (/ (* m (- 1 m)) v) (/ (* m (- 1 m)) v)) (+ (* 1 1) (* (/ (* m (- 1 m)) v) 1))) (+ (pow (/ (+ -1 m) (/ (/ v m) m)) 3) (pow m 3))))
323.0ms
(+ (- (/ (* m (- 1 m)) v) 1) (+ (/ (+ -1 m) (/ (/ v m) m)) m))
303.0ms
(* (exp (* 1 (- (/ (* m (- 1 m)) v) 1))) (exp (+ (/ (+ -1 m) (/ (/ v m) m)) m)))
231.0ms
(+ (* (* 1 (- (* (/ (* m (- 1 m)) v) (/ (* m (- 1 m)) v)) (* 1 1))) (+ (* (/ (+ -1 m) (/ (/ v m) m)) (/ (+ -1 m) (/ (/ v m) m))) (- (* m m) (* (/ (+ -1 m) (/ (/ v m) m)) m)))) (* (+ (/ (* m (- 1 m)) v) 1) (+ (pow (/ (+ -1 m) (/ (/ v m) m)) 3) (pow m 3))))

prune905.0ms

Pruning

5 alts after pruning (4 fresh and 1 done)

Merged error: 0b

regimes65.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.4s

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