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

    \[\leadsto 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-rgt-in0.2

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

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

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

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

Reproduce

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

start347.0ms

Algorithm
intervals

setup282.0ms

Pruning

2 alts after pruning (2 fresh and 0 done)

Merged error: 0.1b

localize29.0ms

Local error

Found 2 expressions with local error:

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

rewrite8.0ms

Algorithm
rewrite-expression-head
Counts
2 → 25
Calls

2 calls. Slowest were:

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

series47.0ms

Counts
2 → 6
Calls

2 calls. Slowest were:

36.0ms
(* m (fma (- 1 m) (/ m v) -1))
11.0ms
(fma (- 1 m) (/ m v) -1)

simplify855.0ms

Counts
11 → 31
Calls

11 calls. Slowest were:

221.0ms
(- (/ (pow m 2) v) (+ m (/ (pow m 3) v)))
182.0ms
(- (/ (pow m 2) v) (+ m (/ (pow m 3) v)))
163.0ms
(- (/ (pow m 2) v) (+ m (/ (pow m 3) v)))

prune462.0ms

Pruning

6 alts after pruning (6 fresh and 0 done)

Merged error: 0.0b

localize11.0ms

Local error

Found 3 expressions with local error:

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

rewrite23.0ms

Algorithm
rewrite-expression-head
Counts
3 → 59
Calls

3 calls. Slowest were:

11.0ms
(+ (* (* (- 1 m) (/ m v)) m) (- m))
8.0ms
(* (* (- 1 m) (/ m v)) m)
4.0ms
(* (- 1 m) (/ m v))

series80.0ms

Counts
3 → 9
Calls

3 calls. Slowest were:

27.0ms
(* (* (- 1 m) (/ m v)) m)
26.0ms
(+ (* (* (- 1 m) (/ m v)) m) (- m))
26.0ms
(* (- 1 m) (/ m v))

simplify3.2s

Counts
33 → 68
Calls

33 calls. Slowest were:

418.0ms
(* (+ (* 1 1) (+ (* m m) (* 1 m))) v)
350.0ms
(* (exp (* (* (- 1 m) (/ m v)) m)) (exp (- m)))
291.0ms
(* (* (- (pow 1 3) (pow m 3)) (/ m v)) m)

prune616.0ms

Pruning

7 alts after pruning (7 fresh and 0 done)

Merged error: 0b

localize8.0ms

Local error

Found 3 expressions with local error:

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

rewrite17.0ms

Algorithm
rewrite-expression-head
Counts
3 → 54
Calls

3 calls. Slowest were:

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

series56.0ms

Counts
3 → 9
Calls

3 calls. Slowest were:

31.0ms
(* (- 1 m) (* (/ m v) m))
15.0ms
(+ (* (- 1 m) (* (/ m v) m)) (- m))
10.0ms
(* (/ m v) m)

simplify3.6s

Counts
25 → 63
Calls

25 calls. Slowest were:

850.0ms
(* (* (* (- 1 m) (- 1 m)) (- 1 m)) (* (* (* (/ m v) m) (* (/ m v) m)) (* (/ m v) m)))
499.0ms
(* (- (pow 1 3) (pow m 3)) (* (/ m v) m))
434.0ms
(* (- 1 m) (* (/ m v) m))

prune497.0ms

Pruning

7 alts after pruning (6 fresh and 1 done)

Merged error: 0b

localize22.0ms

Local error

Found 4 expressions with local error:

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

rewrite36.0ms

Algorithm
rewrite-expression-head
Counts
4 → 69
Calls

4 calls. Slowest were:

17.0ms
(* (- (/ (* m (- 1 m)) v) 1) m)
8.0ms
(- (/ (* m (- 1 m)) v) 1)
7.0ms
(/ (* m (- 1 m)) v)

series75.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

27.0ms
(* m (- 1 m))
22.0ms
(/ (* m (- 1 m)) v)
16.0ms
(* (- (/ (* m (- 1 m)) v) 1) m)
11.0ms
(- (/ (* m (- 1 m)) v) 1)

simplify1.9s

Counts
33 → 81
Calls

33 calls. Slowest were:

299.0ms
(* (- (pow (/ (* m (- 1 m)) v) 3) (pow 1 3)) m)
191.0ms
(- (/ (pow m 2) v) (+ m (/ (pow m 3) v)))
156.0ms
(- (/ (pow m 2) v) (+ m (/ (pow m 3) v)))

prune724.0ms

Pruning

7 alts after pruning (5 fresh and 2 done)

Merged error: 0b

regimes191.0ms

Accuracy

0% (0.1b remaining)

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

bsearch2.0ms