(FPCore (lhs rhs) :precision binary64 (* lhs (/ 1.0 rhs)))
double code(double lhs, double rhs) { return lhs * (1.0 / rhs); }
real(8) function code(lhs, rhs) real(8), intent (in) :: lhs real(8), intent (in) :: rhs code = lhs * (1.0d0 / rhs) end function
public static double code(double lhs, double rhs) { return lhs * (1.0 / rhs); }
def code(lhs, rhs): return lhs * (1.0 / rhs)
function code(lhs, rhs) return Float64(lhs * Float64(1.0 / rhs)) end
function tmp = code(lhs, rhs) tmp = lhs * (1.0 / rhs); end
code[lhs_, rhs_] := N[(lhs * N[(1.0 / rhs), $MachinePrecision]), $MachinePrecision]
\begin{array}{l} \\ lhs \cdot \frac{1}{rhs} \end{array}
Sampling outcomes in binary64 precision:
Herbie found 1 alternatives:
Alternative | Accuracy | Speedup |
---|
(FPCore (lhs rhs) :precision binary64 (* lhs (/ 1.0 rhs)))
double code(double lhs, double rhs) { return lhs * (1.0 / rhs); }
real(8) function code(lhs, rhs) real(8), intent (in) :: lhs real(8), intent (in) :: rhs code = lhs * (1.0d0 / rhs) end function
public static double code(double lhs, double rhs) { return lhs * (1.0 / rhs); }
def code(lhs, rhs): return lhs * (1.0 / rhs)
function code(lhs, rhs) return Float64(lhs * Float64(1.0 / rhs)) end
function tmp = code(lhs, rhs) tmp = lhs * (1.0 / rhs); end
code[lhs_, rhs_] := N[(lhs * N[(1.0 / rhs), $MachinePrecision]), $MachinePrecision]
\begin{array}{l} \\ lhs \cdot \frac{1}{rhs} \end{array}
(FPCore (lhs rhs) :precision binary64 (/ lhs rhs))
double code(double lhs, double rhs) { return lhs / rhs; }
real(8) function code(lhs, rhs) real(8), intent (in) :: lhs real(8), intent (in) :: rhs code = lhs / rhs end function
public static double code(double lhs, double rhs) { return lhs / rhs; }
def code(lhs, rhs): return lhs / rhs
function code(lhs, rhs) return Float64(lhs / rhs) end
function tmp = code(lhs, rhs) tmp = lhs / rhs; end
code[lhs_, rhs_] := N[(lhs / rhs), $MachinePrecision]
\begin{array}{l} \\ \frac{lhs}{rhs} \end{array}
Initial program 99.6%
lift-*.f64
N/A
lift-/.f64
N/A
un-div-inv
N/A
lower-/.f64
100.0
Applied rewrites100.0%
herbie shell --seed 1
(FPCore (lhs rhs)
:name "lhs * (1/rhs)"
:precision binary64
:pre (and (and (<= -10.0 lhs) (<= lhs 10.0)) (and (<= -10.0 rhs) (<= rhs 10.0)))
(* lhs (/ 1.0 rhs)))