Average Error: 59.6 → 23.9
Time: 9.7s
Precision: binary64
\[\left(\left(e^{x}\right) \bmod \left(\sqrt{\cos x}\right)\right) \cdot e^{-x}\]
\[\begin{array}{l} \mathbf{if}\;\left(\left(e^{x}\right) \bmod \left(\sqrt{\cos x}\right)\right) \cdot e^{-x} \leq 0 \lor \neg \left(\left(\left(e^{x}\right) \bmod \left(\sqrt{\cos x}\right)\right) \cdot e^{-x} \leq 1\right):\\ \;\;\;\;e^{-x}\\ \mathbf{else}:\\ \;\;\;\;e^{\sqrt[3]{{\log \left(\frac{\left(\left(e^{x}\right) \bmod \left(\sqrt{\cos x}\right)\right)}{e^{x}}\right)}^{3}}}\\ \end{array}\]
\left(\left(e^{x}\right) \bmod \left(\sqrt{\cos x}\right)\right) \cdot e^{-x}
\begin{array}{l}
\mathbf{if}\;\left(\left(e^{x}\right) \bmod \left(\sqrt{\cos x}\right)\right) \cdot e^{-x} \leq 0 \lor \neg \left(\left(\left(e^{x}\right) \bmod \left(\sqrt{\cos x}\right)\right) \cdot e^{-x} \leq 1\right):\\
\;\;\;\;e^{-x}\\

\mathbf{else}:\\
\;\;\;\;e^{\sqrt[3]{{\log \left(\frac{\left(\left(e^{x}\right) \bmod \left(\sqrt{\cos x}\right)\right)}{e^{x}}\right)}^{3}}}\\

\end{array}
(FPCore (x) :precision binary64 (* (fmod (exp x) (sqrt (cos x))) (exp (- x))))
(FPCore (x)
 :precision binary64
 (if (or (<= (* (fmod (exp x) (sqrt (cos x))) (exp (- x))) 0.0)
         (not (<= (* (fmod (exp x) (sqrt (cos x))) (exp (- x))) 1.0)))
   (exp (- x))
   (exp (cbrt (pow (log (/ (fmod (exp x) (sqrt (cos x))) (exp x))) 3.0)))))
double code(double x) {
	return fmod(exp(x), sqrt(cos(x))) * exp(-x);
}
double code(double x) {
	double tmp;
	if (((fmod(exp(x), sqrt(cos(x))) * exp(-x)) <= 0.0) || !((fmod(exp(x), sqrt(cos(x))) * exp(-x)) <= 1.0)) {
		tmp = exp(-x);
	} else {
		tmp = exp(cbrt(pow(log(fmod(exp(x), sqrt(cos(x))) / exp(x)), 3.0)));
	}
	return tmp;
}

Error

Bits error versus x

Derivation

  1. Split input into 2 regimes
  2. if (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x))) < 0.0 or 1 < (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x)))

    1. Initial program 61.8

      \[\left(\left(e^{x}\right) \bmod \left(\sqrt{\cos x}\right)\right) \cdot e^{-x}\]
    2. Simplified61.8

      \[\leadsto \color{blue}{\frac{\left(\left(e^{x}\right) \bmod \left(\sqrt{\cos x}\right)\right)}{e^{x}}}\]
    3. Using strategy rm
    4. Applied add-exp-log_binary64_79861.8

      \[\leadsto \color{blue}{e^{\log \left(\frac{\left(\left(e^{x}\right) \bmod \left(\sqrt{\cos x}\right)\right)}{e^{x}}\right)}}\]
    5. Simplified61.8

      \[\leadsto e^{\color{blue}{\log \left(\left(e^{x}\right) \bmod \left(\sqrt{\cos x}\right)\right) - x}}\]
    6. Taylor expanded around inf 24.4

      \[\leadsto e^{\color{blue}{-1 \cdot x}}\]
    7. Simplified24.4

      \[\leadsto e^{\color{blue}{-x}}\]

    if 0.0 < (*.f64 (fmod.f64 (exp.f64 x) (sqrt.f64 (cos.f64 x))) (exp.f64 (neg.f64 x))) < 1

    1. Initial program 12.8

      \[\left(\left(e^{x}\right) \bmod \left(\sqrt{\cos x}\right)\right) \cdot e^{-x}\]
    2. Simplified12.7

      \[\leadsto \color{blue}{\frac{\left(\left(e^{x}\right) \bmod \left(\sqrt{\cos x}\right)\right)}{e^{x}}}\]
    3. Using strategy rm
    4. Applied add-exp-log_binary64_79812.7

      \[\leadsto \color{blue}{e^{\log \left(\frac{\left(\left(e^{x}\right) \bmod \left(\sqrt{\cos x}\right)\right)}{e^{x}}\right)}}\]
    5. Simplified12.7

      \[\leadsto e^{\color{blue}{\log \left(\left(e^{x}\right) \bmod \left(\sqrt{\cos x}\right)\right) - x}}\]
    6. Using strategy rm
    7. Applied add-cbrt-cube_binary64_79612.7

      \[\leadsto e^{\color{blue}{\sqrt[3]{\left(\left(\log \left(\left(e^{x}\right) \bmod \left(\sqrt{\cos x}\right)\right) - x\right) \cdot \left(\log \left(\left(e^{x}\right) \bmod \left(\sqrt{\cos x}\right)\right) - x\right)\right) \cdot \left(\log \left(\left(e^{x}\right) \bmod \left(\sqrt{\cos x}\right)\right) - x\right)}}}\]
    8. Simplified12.7

      \[\leadsto e^{\sqrt[3]{\color{blue}{{\left(\log \left(\left(e^{x}\right) \bmod \left(\sqrt{\cos x}\right)\right) - x\right)}^{3}}}}\]
    9. Using strategy rm
    10. Applied add-log-exp_binary64_79912.7

      \[\leadsto e^{\sqrt[3]{{\color{blue}{\log \left(e^{\log \left(\left(e^{x}\right) \bmod \left(\sqrt{\cos x}\right)\right) - x}\right)}}^{3}}}\]
    11. Simplified12.7

      \[\leadsto e^{\sqrt[3]{{\log \color{blue}{\left(\frac{\left(\left(e^{x}\right) \bmod \left(\sqrt{\cos x}\right)\right)}{e^{x}}\right)}}^{3}}}\]
  3. Recombined 2 regimes into one program.
  4. Final simplification23.9

    \[\leadsto \begin{array}{l} \mathbf{if}\;\left(\left(e^{x}\right) \bmod \left(\sqrt{\cos x}\right)\right) \cdot e^{-x} \leq 0 \lor \neg \left(\left(\left(e^{x}\right) \bmod \left(\sqrt{\cos x}\right)\right) \cdot e^{-x} \leq 1\right):\\ \;\;\;\;e^{-x}\\ \mathbf{else}:\\ \;\;\;\;e^{\sqrt[3]{{\log \left(\frac{\left(\left(e^{x}\right) \bmod \left(\sqrt{\cos x}\right)\right)}{e^{x}}\right)}^{3}}}\\ \end{array}\]

Reproduce

herbie shell --seed 2021098 
(FPCore (x)
  :name "expfmod"
  :precision binary64
  (* (fmod (exp x) (sqrt (cos x))) (exp (- x))))