Average Error: 3.6 → 1.4
Time: 7.4m
Precision: 64
Internal Precision: 128
\[\frac{\frac{\frac{\left(\left(\alpha + \beta\right) + \beta \cdot \alpha\right) + 1.0}{\left(\alpha + \beta\right) + 2 \cdot 1}}{\left(\alpha + \beta\right) + 2 \cdot 1}}{\left(\left(\alpha + \beta\right) + 2 \cdot 1\right) + 1.0}\]
\[\begin{array}{l} \mathbf{if}\;\frac{\frac{\frac{1.0 + \left(\alpha \cdot \beta + \left(\beta + \alpha\right)\right)}{2 + \left(\beta + \alpha\right)}}{2 + \left(\beta + \alpha\right)}}{\left(2 + \left(\beta + \alpha\right)\right) + 1.0} \le 0.09016961351735779:\\ \;\;\;\;(e^{\log_* (1 + \frac{\frac{\frac{1.0 + \left(\alpha \cdot \beta + \left(\beta + \alpha\right)\right)}{2 + \left(\beta + \alpha\right)}}{2 + \left(\beta + \alpha\right)}}{\left(2 + \left(\beta + \alpha\right)\right) + 1.0})} - 1)^*\\ \mathbf{else}:\\ \;\;\;\;0\\ \end{array}\]

Error

Bits error versus alpha

Bits error versus beta

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Split input into 2 regimes
  2. if (/ (/ (/ (+ (+ (+ alpha beta) (* beta alpha)) 1.0) (+ (+ alpha beta) (* 2 1))) (+ (+ alpha beta) (* 2 1))) (+ (+ (+ alpha beta) (* 2 1)) 1.0)) < 0.09016961351735779

    1. Initial program 0.1

      \[\frac{\frac{\frac{\left(\left(\alpha + \beta\right) + \beta \cdot \alpha\right) + 1.0}{\left(\alpha + \beta\right) + 2 \cdot 1}}{\left(\alpha + \beta\right) + 2 \cdot 1}}{\left(\left(\alpha + \beta\right) + 2 \cdot 1\right) + 1.0}\]
    2. Using strategy rm
    3. Applied expm1-log1p-u0.1

      \[\leadsto \color{blue}{(e^{\log_* (1 + \frac{\frac{\frac{\left(\left(\alpha + \beta\right) + \beta \cdot \alpha\right) + 1.0}{\left(\alpha + \beta\right) + 2 \cdot 1}}{\left(\alpha + \beta\right) + 2 \cdot 1}}{\left(\left(\alpha + \beta\right) + 2 \cdot 1\right) + 1.0})} - 1)^*}\]

    if 0.09016961351735779 < (/ (/ (/ (+ (+ (+ alpha beta) (* beta alpha)) 1.0) (+ (+ alpha beta) (* 2 1))) (+ (+ alpha beta) (* 2 1))) (+ (+ (+ alpha beta) (* 2 1)) 1.0))

    1. Initial program 63.0

      \[\frac{\frac{\frac{\left(\left(\alpha + \beta\right) + \beta \cdot \alpha\right) + 1.0}{\left(\alpha + \beta\right) + 2 \cdot 1}}{\left(\alpha + \beta\right) + 2 \cdot 1}}{\left(\left(\alpha + \beta\right) + 2 \cdot 1\right) + 1.0}\]
    2. Taylor expanded around -inf 23.1

      \[\leadsto \color{blue}{0}\]
  3. Recombined 2 regimes into one program.
  4. Final simplification1.4

    \[\leadsto \begin{array}{l} \mathbf{if}\;\frac{\frac{\frac{1.0 + \left(\alpha \cdot \beta + \left(\beta + \alpha\right)\right)}{2 + \left(\beta + \alpha\right)}}{2 + \left(\beta + \alpha\right)}}{\left(2 + \left(\beta + \alpha\right)\right) + 1.0} \le 0.09016961351735779:\\ \;\;\;\;(e^{\log_* (1 + \frac{\frac{\frac{1.0 + \left(\alpha \cdot \beta + \left(\beta + \alpha\right)\right)}{2 + \left(\beta + \alpha\right)}}{2 + \left(\beta + \alpha\right)}}{\left(2 + \left(\beta + \alpha\right)\right) + 1.0})} - 1)^*\\ \mathbf{else}:\\ \;\;\;\;0\\ \end{array}\]

Reproduce

herbie shell --seed 2019008 +o rules:numerics
(FPCore (alpha beta)
  :name "Octave 3.8, jcobi/3"
  :pre (and (> alpha -1) (> beta -1))
  (/ (/ (/ (+ (+ (+ alpha beta) (* beta alpha)) 1.0) (+ (+ alpha beta) (* 2 1))) (+ (+ alpha beta) (* 2 1))) (+ (+ (+ alpha beta) (* 2 1)) 1.0)))

Details

Time bar (total: 7.4m)Debug log

sample65.0ms

Algorithm
intervals

simplify687.0ms

Counts
1 → 1
Calls

1 calls. Slowest were:

686.0ms
(/ (/ (/ (+ (+ (+ alpha beta) (* beta alpha)) 1.0) (+ (+ alpha beta) (* 2 1))) (+ (+ alpha beta) (* 2 1))) (+ (+ (+ alpha beta) (* 2 1)) 1.0))

prune25.0ms

Pruning

2 alts after pruning (2 fresh and 0 done)

Merged error: 3.5b

localize32.0ms

Local error

Found 4 expressions with local error:

3.4b
(/ (+ (+ (+ alpha beta) (* beta alpha)) 1.0) (+ (+ alpha beta) (* 2 1)))
0.1b
(/ (/ (/ (+ (+ (+ alpha beta) (* beta alpha)) 1.0) (+ (+ alpha beta) (* 2 1))) (+ (+ alpha beta) (* 2 1))) (+ (+ (+ alpha beta) (* 2 1)) 1.0))
0.0b
(+ (+ (+ alpha beta) (* 2 1)) 1.0)
0.0b
(/ (/ (+ (+ (+ alpha beta) (* beta alpha)) 1.0) (+ (+ alpha beta) (* 2 1))) (+ (+ alpha beta) (* 2 1)))

rewrite212.0ms

Algorithm
rewrite-expression-head
Counts
4 → 359
Calls

4 calls. Slowest were:

65.0ms
(/ (/ (/ (+ (+ (+ alpha beta) (* beta alpha)) 1.0) (+ (+ alpha beta) (* 2 1))) (+ (+ alpha beta) (* 2 1))) (+ (+ (+ alpha beta) (* 2 1)) 1.0))
62.0ms
(/ (/ (+ (+ (+ alpha beta) (* beta alpha)) 1.0) (+ (+ alpha beta) (* 2 1))) (+ (+ alpha beta) (* 2 1)))
58.0ms
(/ (+ (+ (+ alpha beta) (* beta alpha)) 1.0) (+ (+ alpha beta) (* 2 1)))

series223.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

78.0ms
(/ (/ (/ (+ (+ (+ alpha beta) (* beta alpha)) 1.0) (+ (+ alpha beta) (* 2 1))) (+ (+ alpha beta) (* 2 1))) (+ (+ (+ alpha beta) (* 2 1)) 1.0))
68.0ms
(/ (/ (+ (+ (+ alpha beta) (* beta alpha)) 1.0) (+ (+ alpha beta) (* 2 1))) (+ (+ alpha beta) (* 2 1)))
67.0ms
(/ (+ (+ (+ alpha beta) (* beta alpha)) 1.0) (+ (+ alpha beta) (* 2 1)))
9.0ms
(+ (+ (+ alpha beta) (* 2 1)) 1.0)

simplify1.9m

Counts
526 → 371
Calls

526 calls. Slowest were:

1.2s
(/ (/ (/ (cbrt (+ (+ (+ alpha beta) (* beta alpha)) 1.0)) (+ (+ alpha beta) (* 2 1))) (+ (+ alpha beta) (* 2 1))) (+ (+ (+ alpha beta) (* 2 1)) 1.0))
973.0ms
(/ (/ (+ (+ (+ alpha beta) (* beta alpha)) 1.0) (+ (pow (+ alpha beta) 3) (pow (* 2 1) 3))) 1)
946.0ms
(/ (/ (+ (+ (+ alpha beta) (* beta alpha)) 1.0) (+ (pow (+ alpha beta) 3) (pow (* 2 1) 3))) 1)

prune6.0s

Pruning

7 alts after pruning (7 fresh and 0 done)

Merged error: 0.5b

localize7.0ms

Local error

Found 4 expressions with local error:

3.4b
(/ (+ (+ (+ alpha beta) (* beta alpha)) 1.0) (+ (+ alpha beta) (* 2 1)))
0.1b
(/ (/ (/ (+ (+ (+ alpha beta) (* beta alpha)) 1.0) (+ (+ alpha beta) (* 2 1))) (+ (+ alpha beta) (* 2 1))) (+ (+ (+ alpha beta) (* 2 1)) 1.0))
0.0b
(log1p (/ (/ (/ (+ (+ (+ alpha beta) (* beta alpha)) 1.0) (+ (+ alpha beta) (* 2 1))) (+ (+ alpha beta) (* 2 1))) (+ (+ (+ alpha beta) (* 2 1)) 1.0)))
0.0b
(expm1 (log1p (/ (/ (/ (+ (+ (+ alpha beta) (* beta alpha)) 1.0) (+ (+ alpha beta) (* 2 1))) (+ (+ alpha beta) (* 2 1))) (+ (+ (+ alpha beta) (* 2 1)) 1.0))))

rewrite180.0ms

Algorithm
rewrite-expression-head
Counts
4 → 283
Calls

4 calls. Slowest were:

109.0ms
(/ (/ (/ (+ (+ (+ alpha beta) (* beta alpha)) 1.0) (+ (+ alpha beta) (* 2 1))) (+ (+ alpha beta) (* 2 1))) (+ (+ (+ alpha beta) (* 2 1)) 1.0))
60.0ms
(/ (+ (+ (+ alpha beta) (* beta alpha)) 1.0) (+ (+ alpha beta) (* 2 1)))
0.0ms
(log1p (/ (/ (/ (+ (+ (+ alpha beta) (* beta alpha)) 1.0) (+ (+ alpha beta) (* 2 1))) (+ (+ alpha beta) (* 2 1))) (+ (+ (+ alpha beta) (* 2 1)) 1.0)))

series567.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

211.0ms
(expm1 (log1p (/ (/ (/ (+ (+ (+ alpha beta) (* beta alpha)) 1.0) (+ (+ alpha beta) (* 2 1))) (+ (+ alpha beta) (* 2 1))) (+ (+ (+ alpha beta) (* 2 1)) 1.0))))
183.0ms
(log1p (/ (/ (/ (+ (+ (+ alpha beta) (* beta alpha)) 1.0) (+ (+ alpha beta) (* 2 1))) (+ (+ alpha beta) (* 2 1))) (+ (+ (+ alpha beta) (* 2 1)) 1.0)))
123.0ms
(/ (/ (/ (+ (+ (+ alpha beta) (* beta alpha)) 1.0) (+ (+ alpha beta) (* 2 1))) (+ (+ alpha beta) (* 2 1))) (+ (+ (+ alpha beta) (* 2 1)) 1.0))
49.0ms
(/ (+ (+ (+ alpha beta) (* beta alpha)) 1.0) (+ (+ alpha beta) (* 2 1)))

simplify1.6m

Counts
411 → 295
Calls

411 calls. Slowest were:

1.1s
(/ (/ (/ (+ (+ (+ alpha beta) (* beta alpha)) 1.0) (+ (+ alpha beta) (* 2 1))) (- (* (+ alpha beta) (+ alpha beta)) (* (* 2 1) (* 2 1)))) 1)
966.0ms
(/ (/ (/ (cbrt (+ (+ (+ alpha beta) (* beta alpha)) 1.0)) (sqrt (+ (+ alpha beta) (* 2 1)))) (+ (+ alpha beta) (* 2 1))) (+ (+ (+ alpha beta) (* 2 1)) 1.0))
960.0ms
(/ (/ (+ (+ (+ alpha beta) (* beta alpha)) 1.0) (+ (pow (+ alpha beta) 3) (pow (* 2 1) 3))) 1)

prune5.2s

Pruning

8 alts after pruning (7 fresh and 1 done)

Merged error: 0.5b

localize104.0ms

Local error

Found 4 expressions with local error:

3.4b
(/ (+ (fma beta alpha beta) (+ 1.0 alpha)) (+ beta (+ alpha 2)))
3.4b
(/ (+ (+ beta 1.0) (fma beta alpha alpha)) (+ (+ 2 beta) alpha))
0.1b
(* (sqrt (/ (/ (+ (fma beta alpha beta) (+ 1.0 alpha)) (+ beta (+ alpha 2))) (+ beta (+ alpha 2)))) (/ (sqrt (/ (/ (+ (+ beta 1.0) (fma beta alpha alpha)) (+ (+ 2 beta) alpha)) (+ (+ 2 beta) alpha))) (+ (+ 1.0 alpha) (+ 2 beta))))
0.1b
(/ (sqrt (/ (/ (+ (+ beta 1.0) (fma beta alpha alpha)) (+ (+ 2 beta) alpha)) (+ (+ 2 beta) alpha))) (+ (+ 1.0 alpha) (+ 2 beta)))

rewrite147.0ms

Algorithm
rewrite-expression-head
Counts
4 → 757
Calls

4 calls. Slowest were:

46.0ms
(* (sqrt (/ (/ (+ (fma beta alpha beta) (+ 1.0 alpha)) (+ beta (+ alpha 2))) (+ beta (+ alpha 2)))) (/ (sqrt (/ (/ (+ (+ beta 1.0) (fma beta alpha alpha)) (+ (+ 2 beta) alpha)) (+ (+ 2 beta) alpha))) (+ (+ 1.0 alpha) (+ 2 beta))))
30.0ms
(/ (sqrt (/ (/ (+ (+ beta 1.0) (fma beta alpha alpha)) (+ (+ 2 beta) alpha)) (+ (+ 2 beta) alpha))) (+ (+ 1.0 alpha) (+ 2 beta)))
21.0ms
(/ (+ (fma beta alpha beta) (+ 1.0 alpha)) (+ beta (+ alpha 2)))

series458.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

240.0ms
(* (sqrt (/ (/ (+ (fma beta alpha beta) (+ 1.0 alpha)) (+ beta (+ alpha 2))) (+ beta (+ alpha 2)))) (/ (sqrt (/ (/ (+ (+ beta 1.0) (fma beta alpha alpha)) (+ (+ 2 beta) alpha)) (+ (+ 2 beta) alpha))) (+ (+ 1.0 alpha) (+ 2 beta))))
82.0ms
(/ (sqrt (/ (/ (+ (+ beta 1.0) (fma beta alpha alpha)) (+ (+ 2 beta) alpha)) (+ (+ 2 beta) alpha))) (+ (+ 1.0 alpha) (+ 2 beta)))
72.0ms
(/ (+ (fma beta alpha beta) (+ 1.0 alpha)) (+ beta (+ alpha 2)))
64.0ms
(/ (+ (+ beta 1.0) (fma beta alpha alpha)) (+ (+ 2 beta) alpha))

simplify1.9m

Counts
994 → 769
Calls

994 calls. Slowest were:

582.0ms
(* (+ (* 1.0 1.0) (- (* alpha alpha) (* 1.0 alpha))) (+ (* 2 2) (- (* beta beta) (* 2 beta))))
527.0ms
(* (+ (* 1.0 1.0) (- (* alpha alpha) (* 1.0 alpha))) (+ (* 2 2) (- (* beta beta) (* 2 beta))))
519.0ms
(/ (sqrt (+ (+ beta 1.0) (fma beta alpha alpha))) (cbrt (+ (+ 2 beta) alpha)))

prune11.1s

Pruning

8 alts after pruning (6 fresh and 2 done)

Merged error: 0.5b

localize48.0ms

Local error

Found 4 expressions with local error:

3.3b
(sqrt (+ (+ 1.0 alpha) (fma beta alpha beta)))
3.3b
(sqrt (+ (+ beta 1.0) (fma alpha beta alpha)))
1.9b
(/ (/ (sqrt (+ (+ 1.0 alpha) (fma beta alpha beta))) (sqrt (+ (+ beta 2) alpha))) (* (+ (+ beta 2) alpha) (sqrt (+ (+ beta 2) (+ 1.0 alpha)))))
0.6b
(/ (/ (sqrt (+ (+ beta 1.0) (fma alpha beta alpha))) (sqrt (+ (+ beta 1.0) (+ alpha 2)))) (sqrt (+ (+ beta 2) alpha)))

rewrite72.0ms

Algorithm
rewrite-expression-head
Counts
4 → 613
Calls

4 calls. Slowest were:

27.0ms
(/ (/ (sqrt (+ (+ 1.0 alpha) (fma beta alpha beta))) (sqrt (+ (+ beta 2) alpha))) (* (+ (+ beta 2) alpha) (sqrt (+ (+ beta 2) (+ 1.0 alpha)))))
21.0ms
(/ (/ (sqrt (+ (+ beta 1.0) (fma alpha beta alpha))) (sqrt (+ (+ beta 1.0) (+ alpha 2)))) (sqrt (+ (+ beta 2) alpha)))
4.0ms
(sqrt (+ (+ 1.0 alpha) (fma beta alpha beta)))

series212.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

83.0ms
(/ (/ (sqrt (+ (+ beta 1.0) (fma alpha beta alpha))) (sqrt (+ (+ beta 1.0) (+ alpha 2)))) (sqrt (+ (+ beta 2) alpha)))
71.0ms
(/ (/ (sqrt (+ (+ 1.0 alpha) (fma beta alpha beta))) (sqrt (+ (+ beta 2) alpha))) (* (+ (+ beta 2) alpha) (sqrt (+ (+ beta 2) (+ 1.0 alpha)))))
32.0ms
(sqrt (+ (+ 1.0 alpha) (fma beta alpha beta)))
25.0ms
(sqrt (+ (+ beta 1.0) (fma alpha beta alpha)))

simplify1.4m

Counts
981 → 625
Calls

981 calls. Slowest were:

516.0ms
(/ (sqrt (* (+ (* beta beta) (- (* 1.0 1.0) (* beta 1.0))) (+ (* alpha alpha) (- (* 2 2) (* alpha 2))))) (sqrt (+ (+ beta 2) alpha)))
384.0ms
(/ (/ (+ (+ beta 1.0) (fma alpha beta alpha)) (+ (+ beta 1.0) (+ alpha 2))) (+ (+ beta 2) alpha))
376.0ms
(/ (/ (cbrt (sqrt (+ (+ 1.0 alpha) (fma beta alpha beta)))) (sqrt (+ (+ beta 2) alpha))) (sqrt (+ (+ beta 2) (+ 1.0 alpha))))

prune11.1s

Pruning

8 alts after pruning (5 fresh and 3 done)

Merged error: 0.5b

regimes166.0ms

Accuracy

95.1% (0.1b remaining)

Error of 1.4b against oracle of 1.3b and baseline of 3.6b

bsearch5.0ms

end0.0ms

sample1.1s

Algorithm
intervals