Average Error: 0.2 → 0.2
Time: 21.2s
Precision: 64
Internal Precision: 128
\[\left(\frac{m \cdot \left(1 - m\right)}{v} - 1\right) \cdot m\]
\[m \cdot \left(\frac{1}{\frac{v}{m - {m}^{2}}} - 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.2

    \[\left(\frac{m \cdot \left(1 - m\right)}{v} - 1\right) \cdot m\]
  2. Taylor expanded around 0 0.2

    \[\leadsto \left(\frac{\color{blue}{m - {m}^{2}}}{v} - 1\right) \cdot m\]
  3. Using strategy rm
  4. Applied clear-num0.2

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

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

Reproduce

herbie shell --seed 2019022 +o rules:numerics
(FPCore (m v)
  :name "a parameter of renormalized beta distribution"
  :pre (and (< 0 m) (< 0 v) (< v 0.25))
  (* (- (/ (* m (- 1 m)) v) 1) m))

Details

Time bar (total: 20.3s)Debug log

sample131.0ms

Algorithm
intervals
Results
65.0ms432×body80valid
12.0ms432×pre80true

simplify486.0ms

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

prune26.0ms

Pruning

2 alts after pruning (2 fresh and 0 done)

Merged error: 0.1b

localize38.0ms

Local error

Found 4 expressions with local error:

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

rewrite46.0ms

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

series311.0ms

Counts
4 → 12
Calls
4 calls:
Slowest
152.0ms
(* m (- 1 m))
72.0ms
(* (- (/ (* m (- 1 m)) v) 1) m)
52.0ms
(- (/ (* m (- 1 m)) v) 1)
28.0ms
(/ (* m (- 1 m)) v)

simplify2.1s

Counts
33 → 81
Calls
33 calls:
Slowest
544.0ms
(* (- (pow (/ (* m (- 1 m)) v) 3) (pow 1 3)) m)
215.0ms
(sqrt (- (/ (* m (- 1 m)) v) 1))
166.0ms
(* (cbrt (- (/ (* m (- 1 m)) v) 1)) (cbrt (- (/ (* m (- 1 m)) v) 1)))
160.0ms
(- (/ (pow m 2) v) (+ m (/ (pow m 3) v)))
143.0ms
(- (/ (pow m 2) v) (+ m (/ (pow m 3) v)))

prune549.0ms

Pruning

8 alts after pruning (8 fresh and 0 done)

Merged error: 0.0b

localize14.0ms

Local error

Found 4 expressions with local error:

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

rewrite28.0ms

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

series86.0ms

Counts
4 → 12
Calls
4 calls:
Slowest
30.0ms
(* (- (/ (- m (pow m 2)) v) 1) m)
27.0ms
(- m (pow m 2))
17.0ms
(/ (- m (pow m 2)) v)
11.0ms
(- (/ (- m (pow m 2)) v) 1)

simplify2.2s

Counts
28 → 79
Calls
28 calls:
Slowest
787.0ms
(* (- (* (/ (- m (pow m 2)) v) (/ (- m (pow m 2)) v)) (* 1 1)) m)
164.0ms
(- (/ (pow m 2) v) (+ m (/ (pow m 3) v)))
157.0ms
(- (/ (pow m 2) v) (+ m (/ (pow m 3) v)))
146.0ms
(- (* m m) (* (pow m 2) (pow m 2)))
145.0ms
(- (/ (pow m 2) v) (+ m (/ (pow m 3) v)))

prune709.0ms

Pruning

7 alts after pruning (7 fresh and 0 done)

Merged error: 0.0b

localize13.0ms

Local error

Found 3 expressions with local error:

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

rewrite48.0ms

Algorithm
rewrite-expression-head
Rules
17×*-un-lft-identity
17×add-sqr-sqrt
13×add-cube-cbrt
12×prod-diff
add-log-exp
div-inv
associate-*l*
associate-/l*
frac-sub
associate-*l/
fma-neg
log1p-expm1-u
add-exp-log
add-cbrt-cube
pow1
expm1-log1p-u
difference-of-squares
distribute-lft-out--
flip--
flip-+
flip3--
flip3-+
unpow2
associate--r+
*-commutative
diff-log
frac-2neg
sub-neg
clear-num
Counts
3 → 70
Calls
3 calls:
Slowest
32.0ms
(* (- (/ m v) (+ (/ (pow m 2) v) 1)) m)
12.0ms
(- (/ m v) (+ (/ (pow m 2) v) 1))
3.0ms
(/ (pow m 2) v)

series50.0ms

Counts
3 → 9
Calls
3 calls:
Slowest
23.0ms
(* (- (/ m v) (+ (/ (pow m 2) v) 1)) m)
18.0ms
(- (/ m v) (+ (/ (pow m 2) v) 1))
10.0ms
(/ (pow m 2) v)

simplify6.8s

Counts
52 → 79
Calls
52 calls:
Slowest
523.0ms
(fma (- (+ (/ (pow m 2) v) 1)) 1 (* (+ (/ (pow m 2) v) 1) 1))
513.0ms
(- (* m (+ (* (/ (pow m 2) v) (/ (pow m 2) v)) (- (* 1 1) (* (/ (pow m 2) v) 1)))) (* v (+ (pow (/ (pow m 2) v) 3) (pow 1 3))))
507.0ms
(* (- (* m (+ (* (/ (pow m 2) v) (/ (pow m 2) v)) (- (* 1 1) (* (/ (pow m 2) v) 1)))) (* v (+ (pow (/ (pow m 2) v) 3) (pow 1 3)))) m)
467.0ms
(fma (- (+ (/ (pow m 2) v) 1)) 1 (* (+ (/ (pow m 2) v) 1) 1))
443.0ms
(fma (- (+ (/ (pow m 2) v) 1)) 1 (* (+ (/ (pow m 2) v) 1) 1))

prune666.0ms

Pruning

7 alts after pruning (7 fresh and 0 done)

Merged error: 0.0b

localize21.0ms

Local error

Found 4 expressions with local error:

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

rewrite9.0ms

Algorithm
rewrite-expression-head
Rules
associate-/r*
add-sqr-sqrt
add-cube-cbrt
*-un-lft-identity
associate-/r/
add-exp-log
pow1
add-log-exp
flip--
log1p-expm1-u
associate-*l*
add-cbrt-cube
flip3--
expm1-log1p-u
div-inv
associate-*l/
frac-2neg
clear-num
inv-pow
pow-flip
*-commutative
difference-of-sqr-1
sub-neg
rec-exp
Counts
4 → 68
Calls
4 calls:
Slowest
6.0ms
(* (- (/ 1 (/ v (- m (pow m 2)))) 1) m)
1.0ms
(/ 1 (/ v (- m (pow m 2))))
0.0ms
(/ v (- m (pow m 2)))
0.0ms
(- m (pow m 2))

series110.0ms

Counts
4 → 12
Calls
4 calls:
Slowest
33.0ms
(* (- (/ 1 (/ v (- m (pow m 2)))) 1) m)
28.0ms
(- m (pow m 2))
25.0ms
(/ v (- m (pow m 2)))
24.0ms
(/ 1 (/ v (- m (pow m 2))))

simplify2.4s

Counts
30 → 80
Calls
30 calls:
Slowest
292.0ms
(* (cbrt (- (/ 1 (/ v (- m (pow m 2)))) 1)) (cbrt (- (/ 1 (/ v (- m (pow m 2)))) 1)))
276.0ms
(+ (* m m) (+ (* (pow m 2) (pow m 2)) (* m (pow m 2))))
273.0ms
(sqrt (- (/ 1 (/ v (- m (pow m 2)))) 1))
258.0ms
(+ (* m m) (+ (* (pow m 2) (pow m 2)) (* m (pow m 2))))
251.0ms
(* (- (pow (/ 1 (/ v (- m (pow m 2)))) 3) (pow 1 3)) m)

prune774.0ms

Pruning

8 alts after pruning (7 fresh and 1 done)

Merged error: 0.0b

regimes180.0ms

Accuracy

0% (0.2b remaining)

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

bsearch3.0ms

end0.0ms

sample2.5s

Algorithm
intervals
Results
1.3s13704×body80valid
892.0ms13704×pre80true