(FPCore (p q) :precision binary64 (log (- p (exp q))))
(FPCore (p q) :precision binary64 (log (- p (exp q))))
double code(double p, double q) { return log((p - exp(q))); }
double code(double p, double q) { return log((p - exp(q))); }
real(8) function code(p, q) real(8), intent (in) :: p real(8), intent (in) :: q code = log((p - exp(q))) end function
real(8) function code(p, q) real(8), intent (in) :: p real(8), intent (in) :: q code = log((p - exp(q))) end function
public static double code(double p, double q) { return Math.log((p - Math.exp(q))); }
public static double code(double p, double q) { return Math.log((p - Math.exp(q))); }
def code(p, q): return math.log((p - math.exp(q)))
def code(p, q): return math.log((p - math.exp(q)))
function code(p, q) return log(Float64(p - exp(q))) end
function code(p, q) return log(Float64(p - exp(q))) end
function tmp = code(p, q) tmp = log((p - exp(q))); end
function tmp = code(p, q) tmp = log((p - exp(q))); end
code[p_, q_] := N[Log[N[(p - N[Exp[q], $MachinePrecision]), $MachinePrecision]], $MachinePrecision]
code[p_, q_] := N[Log[N[(p - N[Exp[q], $MachinePrecision]), $MachinePrecision]], $MachinePrecision]
\log \left(p - e^{q}\right)
\log \left(p - e^{q}\right)
Results
Initial program 0.0
Final simplification0.0
herbie shell --seed 1
(FPCore (p q)
:name "log(p-exp(q))"
:precision binary64
:pre (and (and (<= 0.0 p) (<= p 1.0)) (and (<= -1000000000.0 q) (<= q 1000000000.0)))
(log (- p (exp q))))