(FPCore (x) :precision binary64 (* (log x) 20.0))
double code(double x) { return log(x) * 20.0; }
real(8) function code(x) real(8), intent (in) :: x code = log(x) * 20.0d0 end function
public static double code(double x) { return Math.log(x) * 20.0; }
def code(x): return math.log(x) * 20.0
function code(x) return Float64(log(x) * 20.0) end
function tmp = code(x) tmp = log(x) * 20.0; end
code[x_] := N[(N[Log[x], $MachinePrecision] * 20.0), $MachinePrecision]
\begin{array}{l} \\ \log x \cdot 20 \end{array}
Sampling outcomes in binary64 precision:
Herbie found 1 alternatives:
Alternative | Accuracy | Speedup |
---|
(FPCore (x) :precision binary64 (* (log x) 20.0))
double code(double x) { return log(x) * 20.0; }
real(8) function code(x) real(8), intent (in) :: x code = log(x) * 20.0d0 end function
public static double code(double x) { return Math.log(x) * 20.0; }
def code(x): return math.log(x) * 20.0
function code(x) return Float64(log(x) * 20.0) end
function tmp = code(x) tmp = log(x) * 20.0; end
code[x_] := N[(N[Log[x], $MachinePrecision] * 20.0), $MachinePrecision]
\begin{array}{l} \\ \log x \cdot 20 \end{array}
(FPCore (x) :precision binary64 (* 20.0 (log x)))
double code(double x) { return 20.0 * log(x); }
real(8) function code(x) real(8), intent (in) :: x code = 20.0d0 * log(x) end function
public static double code(double x) { return 20.0 * Math.log(x); }
def code(x): return 20.0 * math.log(x)
function code(x) return Float64(20.0 * log(x)) end
function tmp = code(x) tmp = 20.0 * log(x); end
code[x_] := N[(20.0 * N[Log[x], $MachinePrecision]), $MachinePrecision]
\begin{array}{l} \\ 20 \cdot \log x \end{array}
Initial program 99.5%
Final simplification99.5%
herbie shell --seed 1
(FPCore (x)
:name "log(x)*20/log(10)"
:precision binary64
:pre (and (<= -1000.0 x) (<= x 1000.0))
(* (log x) 20.0))