Alternative 1 | |
---|---|
Error | 1.4 |
Cost | 64 |
\[a
\]
(FPCore (a b t) :precision binary64 (* a (pow (/ b a) t)))
(FPCore (a b t) :precision binary64 (* a (pow (/ b a) t)))
double code(double a, double b, double t) { return a * pow((b / a), t); }
double code(double a, double b, double t) { return a * pow((b / a), t); }
real(8) function code(a, b, t) real(8), intent (in) :: a real(8), intent (in) :: b real(8), intent (in) :: t code = a * ((b / a) ** t) end function
real(8) function code(a, b, t) real(8), intent (in) :: a real(8), intent (in) :: b real(8), intent (in) :: t code = a * ((b / a) ** t) end function
public static double code(double a, double b, double t) { return a * Math.pow((b / a), t); }
public static double code(double a, double b, double t) { return a * Math.pow((b / a), t); }
def code(a, b, t): return a * math.pow((b / a), t)
def code(a, b, t): return a * math.pow((b / a), t)
function code(a, b, t) return Float64(a * (Float64(b / a) ^ t)) end
function code(a, b, t) return Float64(a * (Float64(b / a) ^ t)) end
function tmp = code(a, b, t) tmp = a * ((b / a) ^ t); end
function tmp = code(a, b, t) tmp = a * ((b / a) ^ t); end
code[a_, b_, t_] := N[(a * N[Power[N[(b / a), $MachinePrecision], t], $MachinePrecision]), $MachinePrecision]
code[a_, b_, t_] := N[(a * N[Power[N[(b / a), $MachinePrecision], t], $MachinePrecision]), $MachinePrecision]
a \cdot {\left(\frac{b}{a}\right)}^{t}
a \cdot {\left(\frac{b}{a}\right)}^{t}
Results
Initial program 0.0
Final simplification0.0
Alternative 1 | |
---|---|
Error | 1.4 |
Cost | 64 |
herbie shell --seed 1
(FPCore (a b t)
:name "a * pow(b / a, t)"
:precision binary64
:pre (and (and (and (<= 20.0 a) (<= a 16000.0)) (and (<= 20.0 b) (<= b 16000.0))) (and (<= 0.0 t) (<= t 1.0)))
(* a (pow (/ b a) t)))