Average Error: 2.7 → 0.2
Time: 28.9s
Precision: 64
Internal Precision: 576
\[{\left(\left(1 - \alpha\right) \cdot \mathsf{fmax}\left(0, utility\right)\right)}^{\left(\frac{1}{1 - \alpha}\right)}\]
\[\begin{array}{l} \mathbf{if}\;{\left(\left(1 - \alpha\right) \cdot \mathsf{fmax}\left(0, utility\right)\right)}^{\left(\frac{1}{1 - \alpha}\right)} \le 4.972007243076791 \cdot 10^{+296}:\\ \;\;\;\;{\left({\left(\left(1 - \alpha\right) \cdot \mathsf{fmax}\left(0, utility\right)\right)}^{\left(\sqrt[3]{\frac{1}{1 - \alpha}} \cdot \sqrt[3]{\frac{1}{1 - \alpha}}\right)}\right)}^{\left(\sqrt[3]{\frac{1}{1 - \alpha}}\right)}\\ \mathbf{else}:\\ \;\;\;\;{\left(e^{\frac{\log \left(1 - \alpha\right) + \log \left(\mathsf{fmax}\left(0, utility\right)\right)}{1 - \alpha \cdot \alpha}}\right)}^{\left(1 + \alpha\right)}\\ \end{array}\]

Error

Bits error versus alpha

Bits error versus utility

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Split input into 2 regimes
  2. if (pow (* (- 1 alpha) (fmax 0 utility)) (/ 1 (- 1 alpha))) < 4.972007243076791e+296

    1. Initial program 0.1

      \[{\left(\left(1 - \alpha\right) \cdot \mathsf{fmax}\left(0, utility\right)\right)}^{\left(\frac{1}{1 - \alpha}\right)}\]
    2. Using strategy rm
    3. Applied add-cube-cbrt0.2

      \[\leadsto {\left(\left(1 - \alpha\right) \cdot \mathsf{fmax}\left(0, utility\right)\right)}^{\color{blue}{\left(\left(\sqrt[3]{\frac{1}{1 - \alpha}} \cdot \sqrt[3]{\frac{1}{1 - \alpha}}\right) \cdot \sqrt[3]{\frac{1}{1 - \alpha}}\right)}}\]
    4. Applied pow-unpow0.2

      \[\leadsto \color{blue}{{\left({\left(\left(1 - \alpha\right) \cdot \mathsf{fmax}\left(0, utility\right)\right)}^{\left(\sqrt[3]{\frac{1}{1 - \alpha}} \cdot \sqrt[3]{\frac{1}{1 - \alpha}}\right)}\right)}^{\left(\sqrt[3]{\frac{1}{1 - \alpha}}\right)}}\]

    if 4.972007243076791e+296 < (pow (* (- 1 alpha) (fmax 0 utility)) (/ 1 (- 1 alpha)))

    1. Initial program 52.7

      \[{\left(\left(1 - \alpha\right) \cdot \mathsf{fmax}\left(0, utility\right)\right)}^{\left(\frac{1}{1 - \alpha}\right)}\]
    2. Using strategy rm
    3. Applied add-exp-log53.8

      \[\leadsto {\left(\left(1 - \alpha\right) \cdot \color{blue}{e^{\log \left(\mathsf{fmax}\left(0, utility\right)\right)}}\right)}^{\left(\frac{1}{1 - \alpha}\right)}\]
    4. Applied add-exp-log53.8

      \[\leadsto {\left(\color{blue}{e^{\log \left(1 - \alpha\right)}} \cdot e^{\log \left(\mathsf{fmax}\left(0, utility\right)\right)}\right)}^{\left(\frac{1}{1 - \alpha}\right)}\]
    5. Applied prod-exp53.8

      \[\leadsto {\color{blue}{\left(e^{\log \left(1 - \alpha\right) + \log \left(\mathsf{fmax}\left(0, utility\right)\right)}\right)}}^{\left(\frac{1}{1 - \alpha}\right)}\]
    6. Applied pow-exp1.1

      \[\leadsto \color{blue}{e^{\left(\log \left(1 - \alpha\right) + \log \left(\mathsf{fmax}\left(0, utility\right)\right)\right) \cdot \frac{1}{1 - \alpha}}}\]
    7. Applied simplify1.1

      \[\leadsto e^{\color{blue}{\frac{\log \left(1 - \alpha\right) + \log \left(\mathsf{fmax}\left(0, utility\right)\right)}{1 - \alpha}}}\]
    8. Using strategy rm
    9. Applied flip--1.1

      \[\leadsto e^{\frac{\log \left(1 - \alpha\right) + \log \left(\mathsf{fmax}\left(0, utility\right)\right)}{\color{blue}{\frac{1 \cdot 1 - \alpha \cdot \alpha}{1 + \alpha}}}}\]
    10. Applied associate-/r/1.1

      \[\leadsto e^{\color{blue}{\frac{\log \left(1 - \alpha\right) + \log \left(\mathsf{fmax}\left(0, utility\right)\right)}{1 \cdot 1 - \alpha \cdot \alpha} \cdot \left(1 + \alpha\right)}}\]
    11. Applied exp-prod1.1

      \[\leadsto \color{blue}{{\left(e^{\frac{\log \left(1 - \alpha\right) + \log \left(\mathsf{fmax}\left(0, utility\right)\right)}{1 \cdot 1 - \alpha \cdot \alpha}}\right)}^{\left(1 + \alpha\right)}}\]
    12. Applied simplify1.1

      \[\leadsto {\color{blue}{\left(e^{\frac{\log \left(1 - \alpha\right) + \log \left(\mathsf{fmax}\left(0, utility\right)\right)}{1 - \alpha \cdot \alpha}}\right)}}^{\left(1 + \alpha\right)}\]
  3. Recombined 2 regimes into one program.

Runtime

Time bar (total: 28.9s)Debug log

herbie shell --seed '#(2775764126 3555076145 3898259844 1891440260 2599947619 1948460636)' 
(FPCore (alpha utility)
  :name "pow((1 - alpha) * fmax(0, utility), 1 / (1 - alpha))"
  (pow (* (- 1 alpha) (fmax 0 utility)) (/ 1 (- 1 alpha))))