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

    \[\leadsto \color{blue}{m \cdot (\left(1 - m\right) \cdot \left(\frac{m}{v}\right) + -1)_*}\]
  3. Using strategy rm
  4. Applied fma-udef0.2

    \[\leadsto m \cdot \color{blue}{\left(\left(1 - m\right) \cdot \frac{m}{v} + -1\right)}\]
  5. Applied distribute-lft-in0.2

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

    \[\leadsto m \cdot \left(\left(1 - m\right) \cdot \frac{m}{v}\right) + \color{blue}{\left(-m\right)}\]
  7. Taylor expanded around inf 6.8

    \[\leadsto \color{blue}{\left(\frac{{m}^{2}}{v} - \frac{{m}^{3}}{v}\right)} + \left(-m\right)\]
  8. Simplified0.2

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

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

Reproduce

herbie shell --seed 2019005 +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: 15.5s)Debug log

sample996.0ms

Algorithm
intervals

simplify311.0ms

Counts
1 → 1
Calls

1 calls. Slowest were:

310.0ms
(* (- (/ (* m (- 1 m)) v) 1) m)

prune24.0ms

Pruning

2 alts after pruning (2 fresh and 0 done)

Merged error: 0.1b

localize33.0ms

Local error

Found 2 expressions with local error:

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

rewrite5.0ms

Algorithm
rewrite-expression-head
Counts
2 → 25
Calls

2 calls. Slowest were:

3.0ms
(* m (fma (- 1 m) (/ m v) -1))
0.0ms
(fma (- 1 m) (/ m v) -1)

series132.0ms

Counts
2 → 6
Calls

2 calls. Slowest were:

78.0ms
(* m (fma (- 1 m) (/ m v) -1))
53.0ms
(fma (- 1 m) (/ m v) -1)

simplify727.0ms

Counts
11 → 31
Calls

11 calls. Slowest were:

143.0ms
(- (/ (pow m 2) v) (+ m (/ (pow m 3) v)))
141.0ms
(- (/ (pow m 2) v) (+ m (/ (pow m 3) v)))
132.0ms
(- (/ (pow m 2) v) (+ m (/ (pow m 3) v)))

prune283.0ms

Pruning

7 alts after pruning (7 fresh and 0 done)

Merged error: 0.0b

localize21.0ms

Local error

Found 3 expressions with local error:

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

rewrite13.0ms

Algorithm
rewrite-expression-head
Counts
3 → 58
Calls

3 calls. Slowest were:

5.0ms
(+ (* m (* (- 1 m) (/ m v))) (- m))
4.0ms
(* m (* (- 1 m) (/ m v)))
4.0ms
(* (- 1 m) (/ m v))

series74.0ms

Counts
3 → 9
Calls

3 calls. Slowest were:

27.0ms
(+ (* m (* (- 1 m) (/ m v))) (- m))
25.0ms
(* (- 1 m) (/ m v))
22.0ms
(* m (* (- 1 m) (/ m v)))

simplify1.8s

Counts
30 → 67
Calls

30 calls. Slowest were:

249.0ms
(* (* (* (- 1 m) (- 1 m)) (- 1 m)) (* (* (/ m v) (/ m v)) (/ m v)))
198.0ms
(- (/ (pow m 2) v) (+ m (/ (pow m 3) v)))
196.0ms
(* (exp (* m (* (- 1 m) (/ m v)))) (exp (- m)))

prune661.0ms

Pruning

8 alts after pruning (7 fresh and 1 done)

Merged error: 0b

localize16.0ms

Local error

Found 3 expressions with local error:

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

rewrite10.0ms

Algorithm
rewrite-expression-head
Counts
3 → 55
Calls

3 calls. Slowest were:

5.0ms
(+ (* (- m (* m m)) (/ m v)) (- m))
4.0ms
(* (- m (* m m)) (/ m v))
0.0ms
(- m (* m m))

series74.0ms

Counts
3 → 9
Calls

3 calls. Slowest were:

30.0ms
(- m (* m m))
29.0ms
(* (- m (* m m)) (/ m v))
16.0ms
(+ (* (- m (* m m)) (/ m v)) (- m))

simplify3.7s

Counts
26 → 64
Calls

26 calls. Slowest were:

704.0ms
(* (+ (* m m) (+ (* (* m m) (* m m)) (* m (* m m)))) v)
568.0ms
(* (- (* m m) (* (* m m) (* m m))) m)
536.0ms
(* (* (* (- m (* m m)) (- m (* m m))) (- m (* m m))) (* (* (/ m v) (/ m v)) (/ m v)))

prune570.0ms

Pruning

7 alts after pruning (5 fresh and 2 done)

Merged error: 0b

localize29.0ms

Local error

Found 4 expressions with local error:

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

rewrite25.0ms

Algorithm
rewrite-expression-head
Counts
4 → 73
Calls

4 calls. Slowest were:

7.0ms
(+ (* m (* (* (- 1 m) m) (/ 1 v))) (- m))
7.0ms
(* m (* (* (- 1 m) m) (/ 1 v)))
7.0ms
(* (* (- 1 m) m) (/ 1 v))

series90.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

30.0ms
(* m (* (* (- 1 m) m) (/ 1 v)))
21.0ms
(+ (* m (* (* (- 1 m) m) (/ 1 v))) (- m))
20.0ms
(* (- 1 m) m)
18.0ms
(* (* (- 1 m) m) (/ 1 v))

simplify3.0s

Counts
36 → 85
Calls

36 calls. Slowest were:

712.0ms
(* (* (* (* (- 1 m) m) (* (- 1 m) m)) (* (- 1 m) m)) (* (* (/ 1 v) (/ 1 v)) (/ 1 v)))
337.0ms
(* (exp (* m (* (* (- 1 m) m) (/ 1 v)))) (exp (- m)))
328.0ms
(* (* (- (* 1 1) (* m m)) m) (/ 1 v))

prune694.0ms

Pruning

7 alts after pruning (4 fresh and 3 done)

Merged error: 0b

regimes133.0ms

Accuracy

0% (0.1b remaining)

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

bsearch1.0ms

end0.0ms

sample2.0s

Algorithm
intervals