?

Average Accuracy: 37.1% → 99.3%
Time: 6.9s
Precision: binary64
Cost: 19776

?

\[\frac{e^{x}}{e^{x} - 1} \]
\[e^{x} \cdot \frac{e^{x} + 1}{\mathsf{expm1}\left(x + x\right)} \]
(FPCore (x) :precision binary64 (/ (exp x) (- (exp x) 1.0)))
(FPCore (x)
 :precision binary64
 (* (exp x) (/ (+ (exp x) 1.0) (expm1 (+ x x)))))
double code(double x) {
	return exp(x) / (exp(x) - 1.0);
}
double code(double x) {
	return exp(x) * ((exp(x) + 1.0) / expm1((x + x)));
}
public static double code(double x) {
	return Math.exp(x) / (Math.exp(x) - 1.0);
}
public static double code(double x) {
	return Math.exp(x) * ((Math.exp(x) + 1.0) / Math.expm1((x + x)));
}
def code(x):
	return math.exp(x) / (math.exp(x) - 1.0)
def code(x):
	return math.exp(x) * ((math.exp(x) + 1.0) / math.expm1((x + x)))
function code(x)
	return Float64(exp(x) / Float64(exp(x) - 1.0))
end
function code(x)
	return Float64(exp(x) * Float64(Float64(exp(x) + 1.0) / expm1(Float64(x + x))))
end
code[x_] := N[(N[Exp[x], $MachinePrecision] / N[(N[Exp[x], $MachinePrecision] - 1.0), $MachinePrecision]), $MachinePrecision]
code[x_] := N[(N[Exp[x], $MachinePrecision] * N[(N[(N[Exp[x], $MachinePrecision] + 1.0), $MachinePrecision] / N[(Exp[N[(x + x), $MachinePrecision]] - 1), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
\frac{e^{x}}{e^{x} - 1}
e^{x} \cdot \frac{e^{x} + 1}{\mathsf{expm1}\left(x + x\right)}

Error?

Bogosity

Try it out?

Your Program's Arguments

Results

Enter valid numbers for all inputs

Target

Original37.1%
Target37.7%
Herbie99.3%
\[\frac{1}{1 - e^{-x}} \]

Derivation?

  1. Initial program 33.0%

    \[\frac{e^{x}}{e^{x} - 1} \]
  2. Simplified99.2%

    \[\leadsto \color{blue}{\frac{e^{x}}{\mathsf{expm1}\left(x\right)}} \]
    Proof

    [Start]33.0

    \[ \frac{e^{x}}{e^{x} - 1} \]

    expm1-def [=>]99.2

    \[ \frac{e^{x}}{\color{blue}{\mathsf{expm1}\left(x\right)}} \]
  3. Applied egg-rr33.0%

    \[\leadsto \frac{e^{x}}{\color{blue}{\frac{{\left(e^{x}\right)}^{2} - 1}{e^{x} + 1}}} \]
    Proof

    [Start]99.2

    \[ \frac{e^{x}}{\mathsf{expm1}\left(x\right)} \]

    expm1-udef [=>]33.0

    \[ \frac{e^{x}}{\color{blue}{e^{x} - 1}} \]

    flip-- [=>]33.0

    \[ \frac{e^{x}}{\color{blue}{\frac{e^{x} \cdot e^{x} - 1 \cdot 1}{e^{x} + 1}}} \]

    pow2 [=>]33.0

    \[ \frac{e^{x}}{\frac{\color{blue}{{\left(e^{x}\right)}^{2}} - 1 \cdot 1}{e^{x} + 1}} \]

    metadata-eval [=>]33.0

    \[ \frac{e^{x}}{\frac{{\left(e^{x}\right)}^{2} - \color{blue}{1}}{e^{x} + 1}} \]
  4. Simplified99.2%

    \[\leadsto \frac{e^{x}}{\color{blue}{\frac{\mathsf{expm1}\left(x + x\right)}{1 + e^{x}}}} \]
    Proof

    [Start]33.0

    \[ \frac{e^{x}}{\frac{{\left(e^{x}\right)}^{2} - 1}{e^{x} + 1}} \]

    unpow2 [=>]33.0

    \[ \frac{e^{x}}{\frac{\color{blue}{e^{x} \cdot e^{x}} - 1}{e^{x} + 1}} \]

    prod-exp [=>]33.0

    \[ \frac{e^{x}}{\frac{\color{blue}{e^{x + x}} - 1}{e^{x} + 1}} \]

    expm1-def [=>]99.2

    \[ \frac{e^{x}}{\frac{\color{blue}{\mathsf{expm1}\left(x + x\right)}}{e^{x} + 1}} \]

    +-commutative [<=]99.2

    \[ \frac{e^{x}}{\frac{\mathsf{expm1}\left(x + x\right)}{\color{blue}{1 + e^{x}}}} \]
  5. Applied egg-rr99.2%

    \[\leadsto \color{blue}{\frac{e^{x} + 1}{\mathsf{expm1}\left(x + x\right)} \cdot e^{x}} \]
    Proof

    [Start]99.2

    \[ \frac{e^{x}}{\frac{\mathsf{expm1}\left(x + x\right)}{1 + e^{x}}} \]

    clear-num [=>]99.2

    \[ \color{blue}{\frac{1}{\frac{\frac{\mathsf{expm1}\left(x + x\right)}{1 + e^{x}}}{e^{x}}}} \]

    associate-/r/ [=>]99.2

    \[ \color{blue}{\frac{1}{\frac{\mathsf{expm1}\left(x + x\right)}{1 + e^{x}}} \cdot e^{x}} \]

    clear-num [<=]99.2

    \[ \color{blue}{\frac{1 + e^{x}}{\mathsf{expm1}\left(x + x\right)}} \cdot e^{x} \]

    +-commutative [=>]99.2

    \[ \frac{\color{blue}{e^{x} + 1}}{\mathsf{expm1}\left(x + x\right)} \cdot e^{x} \]
  6. Final simplification99.2%

    \[\leadsto e^{x} \cdot \frac{e^{x} + 1}{\mathsf{expm1}\left(x + x\right)} \]

Alternatives

Alternative 1
Accuracy99.4%
Cost12992
\[\frac{e^{x}}{\mathsf{expm1}\left(x\right)} \]
Alternative 2
Accuracy98.7%
Cost7104
\[e^{x} \cdot \left(\left(\frac{1}{x} + x \cdot 0.08333333333333333\right) - 0.5\right) \]
Alternative 3
Accuracy97.7%
Cost6592
\[\frac{e^{x}}{x} \]
Alternative 4
Accuracy66.7%
Cost576
\[\left(\frac{1}{x} + x \cdot 0.08333333333333333\right) + 0.5 \]
Alternative 5
Accuracy66.7%
Cost576
\[\frac{1}{x} + \left(0.5 + x \cdot 0.08333333333333333\right) \]
Alternative 6
Accuracy66.7%
Cost320
\[\frac{1}{x} + 0.5 \]
Alternative 7
Accuracy66.8%
Cost192
\[\frac{1}{x} \]
Alternative 8
Accuracy3.3%
Cost64
\[0.5 \]
Alternative 9
Accuracy3.9%
Cost64
\[1 \]

Error

Reproduce?

herbie shell --seed 2023159 
(FPCore (x)
  :name "expq2 (section 3.11)"
  :precision binary64

  :herbie-target
  (/ 1.0 (- 1.0 (exp (- x))))

  (/ (exp x) (- (exp x) 1.0)))