Average Error: 0.0 → 0.0
Time: 2.9s
Precision: 64
\[e^{\left(x \cdot y\right) \cdot y}\]
\[e^{\log \left(e^{x \cdot {y}^{2}}\right)}\]
e^{\left(x \cdot y\right) \cdot y}
e^{\log \left(e^{x \cdot {y}^{2}}\right)}
double f(double x, double y) {
        double r253095 = x;
        double r253096 = y;
        double r253097 = r253095 * r253096;
        double r253098 = r253097 * r253096;
        double r253099 = exp(r253098);
        return r253099;
}

double f(double x, double y) {
        double r253100 = x;
        double r253101 = y;
        double r253102 = 2.0;
        double r253103 = pow(r253101, r253102);
        double r253104 = r253100 * r253103;
        double r253105 = exp(r253104);
        double r253106 = log(r253105);
        double r253107 = exp(r253106);
        return r253107;
}

Error

Bits error versus x

Bits error versus y

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Initial program 0.0

    \[e^{\left(x \cdot y\right) \cdot y}\]
  2. Using strategy rm
  3. Applied add-log-exp0.0

    \[\leadsto e^{\color{blue}{\log \left(e^{\left(x \cdot y\right) \cdot y}\right)}}\]
  4. Simplified0.0

    \[\leadsto e^{\log \color{blue}{\left(e^{x \cdot {y}^{2}}\right)}}\]
  5. Final simplification0.0

    \[\leadsto e^{\log \left(e^{x \cdot {y}^{2}}\right)}\]

Reproduce

herbie shell --seed 2020064 +o rules:numerics
(FPCore (x y)
  :name "Data.Random.Distribution.Normal:normalF from random-fu-0.2.6.2"
  :precision binary64
  (exp (* (* x y) y)))