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

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. Using strategy rm
  8. Applied associate-*r*0.2

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

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

Reproduce

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

sample514.0ms

Algorithm
intervals

simplify268.0ms

Counts
1 → 1
Calls

1 calls. Slowest were:

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

prune23.0ms

Pruning

2 alts after pruning (2 fresh and 0 done)

Merged error: 0.2b

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

series53.0ms

Counts
2 → 6
Calls

2 calls. Slowest were:

33.0ms
(* m (fma (- 1 m) (/ m v) -1))
19.0ms
(fma (- 1 m) (/ m v) -1)

simplify724.0ms

Counts
11 → 31
Calls

11 calls. Slowest were:

188.0ms
(- (/ (pow m 2) v) (+ m (/ (pow m 3) v)))
160.0ms
(- (/ (pow m 2) v) (+ m (/ (pow m 3) v)))
144.0ms
(- (/ (pow m 2) v) (+ m (/ (pow m 3) v)))

prune284.0ms

Pruning

8 alts after pruning (8 fresh and 0 done)

Merged error: 0.0b

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

rewrite16.0ms

Algorithm
rewrite-expression-head
Counts
3 → 58
Calls

3 calls. Slowest were:

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

series66.0ms

Counts
3 → 9
Calls

3 calls. Slowest were:

26.0ms
(+ (* m (* (- 1 m) (/ m v))) (- m))
21.0ms
(* m (* (- 1 m) (/ m v)))
19.0ms
(* (- 1 m) (/ m v))

simplify1.9s

Counts
30 → 67
Calls

30 calls. Slowest were:

247.0ms
(* (- (* 1 1) (* m m)) (/ m v))
239.0ms
(* (* (* (- 1 m) (- 1 m)) (- 1 m)) (* (* (/ m v) (/ m v)) (/ m v)))
208.0ms
(* (exp (* m (* (- 1 m) (/ m v)))) (exp (- m)))

prune650.0ms

Pruning

7 alts after pruning (7 fresh and 0 done)

Merged error: 0.0b

localize8.0ms

Local error

Found 3 expressions with local error:

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

rewrite17.0ms

Algorithm
rewrite-expression-head
Counts
3 → 59
Calls

3 calls. Slowest were:

9.0ms
(+ (* (* m (- 1 m)) (/ m v)) (- m))
5.0ms
(* (* m (- 1 m)) (/ m v))
3.0ms
(* m (- 1 m))

series66.0ms

Counts
3 → 9
Calls

3 calls. Slowest were:

28.0ms
(* (* m (- 1 m)) (/ m v))
22.0ms
(* m (- 1 m))
16.0ms
(+ (* (* m (- 1 m)) (/ m v)) (- m))

simplify2.1s

Counts
33 → 68
Calls

33 calls. Slowest were:

430.0ms
(* (* m (- (* 1 1) (* m m))) (/ m v))
216.0ms
(* (* m (- 1 m)) (/ m v))
203.0ms
(* (* m (- (pow 1 3) (pow m 3))) (/ m v))

prune660.0ms

Pruning

9 alts after pruning (8 fresh and 1 done)

Merged error: 0b

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

rewrite25.0ms

Algorithm
rewrite-expression-head
Counts
3 → 58
Calls

3 calls. Slowest were:

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

series61.0ms

Counts
3 → 9
Calls

3 calls. Slowest were:

25.0ms
(* m (* (- 1 m) (/ m v)))
21.0ms
(* (- 1 m) (/ m v))
15.0ms
(+ (* m (* (- 1 m) (/ m v))) (- m))

simplify1.7s

Counts
30 → 67
Calls

30 calls. Slowest were:

248.0ms
(* (* (* (- 1 m) (- 1 m)) (- 1 m)) (* (* (/ m v) (/ m v)) (/ m v)))
221.0ms
(* (exp (* m (* (- 1 m) (/ m v)))) (exp (- m)))
169.0ms
(* (- (* 1 1) (* m m)) (/ m v))

prune587.0ms

Pruning

9 alts after pruning (7 fresh and 2 done)

Merged error: 0b

regimes172.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.1s

Algorithm
intervals