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

Error

Bits error versus m

Bits error versus v

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. Taylor expanded around -inf 0.2

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

    \[\leadsto m \cdot \color{blue}{\left(\frac{m}{v} - (m \cdot \left(\frac{m}{v}\right) + 1)_*\right)}\]
  5. Using strategy rm
  6. Applied add-sqr-sqrt0.3

    \[\leadsto m \cdot \left(\color{blue}{\sqrt{\frac{m}{v}} \cdot \sqrt{\frac{m}{v}}} - (m \cdot \left(\frac{m}{v}\right) + 1)_*\right)\]
  7. Applied fma-neg0.3

    \[\leadsto m \cdot \color{blue}{(\left(\sqrt{\frac{m}{v}}\right) \cdot \left(\sqrt{\frac{m}{v}}\right) + \left(-(m \cdot \left(\frac{m}{v}\right) + 1)_*\right))_*}\]
  8. Final simplification0.3

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

Reproduce

herbie shell --seed 2018362 +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

start264.0ms

Algorithm
intervals

setup308.0ms

Pruning

2 alts after pruning (2 fresh and 0 done)

Merged error: 0.2b

localize29.0ms

Local error

Found 2 expressions with local error:

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

rewrite15.0ms

Algorithm
rewrite-expression-head
Counts
2 → 25
Calls

2 calls. Slowest were:

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

series55.0ms

Counts
2 → 6
Calls

2 calls. Slowest were:

39.0ms
(* m (fma (- 1 m) (/ m v) -1))
16.0ms
(fma (- 1 m) (/ m v) -1)

simplify747.0ms

Counts
11 → 31
Calls

11 calls. Slowest were:

216.0ms
(- (/ (pow m 2) v) (+ m (/ (pow m 3) v)))
189.0ms
(- (/ (pow m 2) v) (+ m (/ (pow m 3) v)))
151.0ms
(- (/ (pow m 2) v) (+ m (/ (pow m 3) v)))

prune304.0ms

Pruning

8 alts after pruning (8 fresh and 0 done)

Merged error: 0.0b

localize9.0ms

Local error

Found 3 expressions with local error:

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

rewrite23.0ms

Algorithm
rewrite-expression-head
Counts
3 → 88
Calls

3 calls. Slowest were:

13.0ms
(* m (- (/ m v) (fma m (/ m v) 1)))
8.0ms
(- (/ m v) (fma m (/ m v) 1))
0.0ms
(fma m (/ m v) 1)

series426.0ms

Counts
3 → 9
Calls

3 calls. Slowest were:

400.0ms
(* m (- (/ m v) (fma m (/ m v) 1)))
13.0ms
(- (/ m v) (fma m (/ m v) 1))
13.0ms
(fma m (/ m v) 1)

simplify13.3s

Counts
74 → 97
Calls

74 calls. Slowest were:

643.0ms
(* m (fma (- (fma m (/ m v) 1)) 1 (* (fma m (/ m v) 1) 1)))
624.0ms
(* m (fma (- (fma m (/ m v) 1)) 1 (* (fma m (/ m v) 1) 1)))
618.0ms
(* m (fma (- (fma m (/ m v) 1)) 1 (* (fma m (/ m v) 1) 1)))

prune1.2s

Pruning

8 alts after pruning (8 fresh and 0 done)

Merged error: 0.0b

localize10.0ms

Local error

Found 4 expressions with local error:

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

rewrite14.0ms

Algorithm
rewrite-expression-head
Counts
4 → 63
Calls

4 calls. Slowest were:

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

series73.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

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

simplify1.1s

Counts
28 → 75
Calls

28 calls. Slowest were:

227.0ms
(- (/ (pow m 2) v) (+ m (/ (pow m 3) v)))
211.0ms
(- (/ (pow m 2) v) (+ m (/ (pow m 3) v)))
122.0ms
(- (/ (pow m 2) v) (+ m (/ (pow m 3) v)))

prune739.0ms

Pruning

7 alts after pruning (7 fresh and 0 done)

Merged error: 0.0b

localize10.0ms

Local error

Found 4 expressions with local error:

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

rewrite4.0ms

Algorithm
rewrite-expression-head
Counts
4 → 57
Calls

4 calls. Slowest were:

1.0ms
(* m (fma (sqrt (/ m v)) (sqrt (/ m v)) (- (fma m (/ m v) 1))))
1.0ms
(sqrt (/ m v))
1.0ms
(sqrt (/ m v))

series199.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

69.0ms
(* m (fma (sqrt (/ m v)) (sqrt (/ m v)) (- (fma m (/ m v) 1))))
55.0ms
(fma (sqrt (/ m v)) (sqrt (/ m v)) (- (fma m (/ m v) 1)))
39.0ms
(sqrt (/ m v))
36.0ms
(sqrt (/ m v))

simplify621.0ms

Counts
29 → 69
Calls

29 calls. Slowest were:

171.0ms
(* (- (fma m (/ m v) 1)) m)
151.0ms
(* m (- (fma m (/ m v) 1)))
106.0ms
(sqrt (fma (sqrt (/ m v)) (sqrt (/ m v)) (- (fma m (/ m v) 1))))

prune710.0ms

Pruning

7 alts after pruning (6 fresh and 1 done)

Merged error: 0b

regimes134.0ms

Accuracy

0% (0.3b remaining)

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

bsearch2.0ms