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

Error

Bits error versus m

Bits error versus v

Derivation

  1. Initial program 0.1

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

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

    \[\leadsto \color{blue}{\left(\frac{m}{v} - (m \cdot \left(\frac{m}{v}\right) + 1)_*\right)} \cdot \left(1 - m\right)\]
  4. Using strategy rm
  5. Applied sub-neg0.1

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

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

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

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

Reproduce

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

Details

Time bar (total: 37.7s)Debug log

sample289.0ms

Algorithm
intervals

simplify318.0ms

Counts
1 → 1
Calls

1 calls. Slowest were:

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

prune11.0ms

Pruning

2 alts after pruning (2 fresh and 0 done)

Merged error: 0.0b

localize16.0ms

Local error

Found 4 expressions with local error:

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

rewrite29.0ms

Algorithm
rewrite-expression-head
Counts
4 → 85
Calls

4 calls. Slowest were:

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

series74.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

25.0ms
(/ (* m (- 1 m)) v)
19.0ms
(* (- (/ (* m (- 1 m)) v) 1) (- 1 m))
19.0ms
(* m (- 1 m))
11.0ms
(- (/ (* m (- 1 m)) v) 1)

simplify7.6s

Counts
53 → 97
Calls

53 calls. Slowest were:

655.0ms
(* (+ (/ (* m (- 1 m)) v) 1) (+ 1 m))
636.0ms
(* (- m) (- (/ (* m (- 1 m)) v) 1))
572.0ms
(* (* (* (- (/ (* m (- 1 m)) v) 1) (- (/ (* m (- 1 m)) v) 1)) (- (/ (* m (- 1 m)) v) 1)) (* (* (- 1 m) (- 1 m)) (- 1 m)))

prune752.0ms

Pruning

7 alts after pruning (7 fresh and 0 done)

Merged error: 0b

localize15.0ms

Local error

Found 3 expressions with local error:

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

rewrite23.0ms

Algorithm
rewrite-expression-head
Counts
3 → 76
Calls

3 calls. Slowest were:

17.0ms
(* (- (/ m v) (fma m (/ m v) 1)) (- 1 m))
4.0ms
(- (/ m v) (fma m (/ m v) 1))
0.0ms
(fma m (/ m v) 1)

series57.0ms

Counts
3 → 9
Calls

3 calls. Slowest were:

30.0ms
(* (- (/ m v) (fma m (/ m v) 1)) (- 1 m))
15.0ms
(fma m (/ m v) 1)
12.0ms
(- (/ m v) (fma m (/ m v) 1))

simplify11.2s

Counts
64 → 85
Calls

64 calls. Slowest were:

926.0ms
(* (- m) (- (/ m v) (fma m (/ m v) 1)))
826.0ms
(* (- (/ m v) (fma m (/ m v) 1)) (- m))
799.0ms
(* (- m) (- (/ m v) (fma m (/ m v) 1)))

prune697.0ms

Pruning

6 alts after pruning (6 fresh and 0 done)

Merged error: 0b

localize20.0ms

Local error

Found 4 expressions with local error:

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

rewrite27.0ms

Algorithm
rewrite-expression-head
Counts
4 → 68
Calls

4 calls. Slowest were:

16.0ms
(+ (* (- (/ m v) (fma m (/ m v) 1)) 1) (fma (- (/ m v)) (- m (* m m)) m))
9.0ms
(- (/ m v) (fma m (/ m v) 1))
0.0ms
(fma (- (/ m v)) (- m (* m m)) m)

series101.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

48.0ms
(+ (* (- (/ m v) (fma m (/ m v) 1)) 1) (fma (- (/ m v)) (- m (* m m)) m))
20.0ms
(fma (- (/ m v)) (- m (* m m)) m)
19.0ms
(- (/ m v) (fma m (/ m v) 1))
13.0ms
(fma m (/ m v) 1)

simplify4.3s

Counts
44 → 80
Calls

44 calls. Slowest were:

318.0ms
(fma (sqrt (/ m v)) (sqrt (/ m v)) (- (* (fma m (/ m v) 1) 1)))
276.0ms
(- (+ m (/ (pow m 3) v)) (* 2 (/ (pow m 2) v)))
267.0ms
(- (+ m (/ (pow m 3) v)) (* 2 (/ (pow m 2) v)))

prune875.0ms

Pruning

5 alts after pruning (4 fresh and 1 done)

Merged error: 0b

localize23.0ms

Local error

Found 4 expressions with local error:

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

rewrite57.0ms

Algorithm
rewrite-expression-head
Counts
4 → 90
Calls

4 calls. Slowest were:

23.0ms
(* (- (/ (+ (* m 1) (* m (- m))) v) 1) (- 1 m))
20.0ms
(- (/ (+ (* m 1) (* m (- m))) v) 1)
8.0ms
(/ (+ (* m 1) (* m (- m))) v)

series79.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

32.0ms
(/ (+ (* m 1) (* m (- m))) v)
19.0ms
(+ (* m 1) (* m (- m)))
17.0ms
(* (- (/ (+ (* m 1) (* m (- m))) v) 1) (- 1 m))
11.0ms
(- (/ (+ (* m 1) (* m (- m))) v) 1)

simplify7.5s

Counts
54 → 102
Calls

54 calls. Slowest were:

804.0ms
(* (- (/ (+ (* m 1) (* m (- m))) v) 1) (- m))
759.0ms
(* (- (/ (+ (* m 1) (* m (- m))) v) 1) (- m))
701.0ms
(* (- (* (/ (+ (* m 1) (* m (- m))) v) (/ (+ (* m 1) (* m (- m))) v)) (* 1 1)) (- (* 1 1) (* m m)))

prune984.0ms

Pruning

5 alts after pruning (3 fresh and 2 done)

Merged error: 0b

regimes101.0ms

Accuracy

0% (0.1b remaining)

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

bsearch2.0ms

end0.0ms

sample2.5s

Algorithm
intervals