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;
}



# Try it out

Results

 In Out
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)))