Average Error: 0.0 → 0.0
Time: 11.6s
Precision: 64
\[\left(\left({\left(2 \cdot F\right)}^{oct} - 1 \cdot F\right) \cdot 65536\right) \cdot F + 0.5 \cdot F\]
\[\left(\left({\left(2 \cdot F\right)}^{oct} - 1 \cdot F\right) \cdot 65536\right) \cdot F + 0.5 \cdot F\]
\left(\left({\left(2 \cdot F\right)}^{oct} - 1 \cdot F\right) \cdot 65536\right) \cdot F + 0.5 \cdot F
\left(\left({\left(2 \cdot F\right)}^{oct} - 1 \cdot F\right) \cdot 65536\right) \cdot F + 0.5 \cdot F
double f(double F, double oct) {
        double r761184 = 2.0;
        double r761185 = F;
        double r761186 = r761184 * r761185;
        double r761187 = oct;
        double r761188 = pow(r761186, r761187);
        double r761189 = 1.0;
        double r761190 = r761189 * r761185;
        double r761191 = r761188 - r761190;
        double r761192 = 65536.0;
        double r761193 = r761191 * r761192;
        double r761194 = r761193 * r761185;
        double r761195 = 0.5;
        double r761196 = r761195 * r761185;
        double r761197 = r761194 + r761196;
        return r761197;
}

double f(double F, double oct) {
        double r761198 = 2.0;
        double r761199 = F;
        double r761200 = r761198 * r761199;
        double r761201 = oct;
        double r761202 = pow(r761200, r761201);
        double r761203 = 1.0;
        double r761204 = r761203 * r761199;
        double r761205 = r761202 - r761204;
        double r761206 = 65536.0;
        double r761207 = r761205 * r761206;
        double r761208 = r761207 * r761199;
        double r761209 = 0.5;
        double r761210 = r761209 * r761199;
        double r761211 = r761208 + r761210;
        return r761211;
}

Error

Bits error versus F

Bits error versus oct

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Initial program 0.0

    \[\left(\left({\left(2 \cdot F\right)}^{oct} - 1 \cdot F\right) \cdot 65536\right) \cdot F + 0.5 \cdot F\]
  2. Final simplification0.0

    \[\leadsto \left(\left({\left(2 \cdot F\right)}^{oct} - 1 \cdot F\right) \cdot 65536\right) \cdot F + 0.5 \cdot F\]

Reproduce

herbie shell --seed 1 
(FPCore (F oct)
  :name "(pow(2.0F,oct)-1.0F) * 65536.0F + 0.5F"
  :precision binary64
  (+ (* (* (- (pow (* 2 F) oct) (* 1 F)) 65536) F) (* 0.5 F)))