(FPCore (Ts omega_ist) :precision binary64 (* (* (/ 1.0 Ts) 8.2e-6) (fabs omega_ist)))
double code(double Ts, double omega_ist) { return ((1.0 / Ts) * 8.2e-6) * fabs(omega_ist); }
real(8) function code(ts, omega_ist) real(8), intent (in) :: ts real(8), intent (in) :: omega_ist code = ((1.0d0 / ts) * 8.2d-6) * abs(omega_ist) end function
public static double code(double Ts, double omega_ist) { return ((1.0 / Ts) * 8.2e-6) * Math.abs(omega_ist); }
def code(Ts, omega_ist): return ((1.0 / Ts) * 8.2e-6) * math.fabs(omega_ist)
function code(Ts, omega_ist) return Float64(Float64(Float64(1.0 / Ts) * 8.2e-6) * abs(omega_ist)) end
function tmp = code(Ts, omega_ist) tmp = ((1.0 / Ts) * 8.2e-6) * abs(omega_ist); end
code[Ts_, omega$95$ist_] := N[(N[(N[(1.0 / Ts), $MachinePrecision] * 8.2e-6), $MachinePrecision] * N[Abs[omega$95$ist], $MachinePrecision]), $MachinePrecision]
\begin{array}{l} \\ \left(\frac{1}{Ts} \cdot 8.2 \cdot 10^{-6}\right) \cdot \left|omega\_ist\right| \end{array}
Sampling outcomes in binary64 precision:
Herbie found 1 alternatives:
Alternative | Accuracy | Speedup |
---|
(FPCore (Ts omega_ist) :precision binary64 (* (* (/ 1.0 Ts) 8.2e-6) (fabs omega_ist)))
double code(double Ts, double omega_ist) { return ((1.0 / Ts) * 8.2e-6) * fabs(omega_ist); }
real(8) function code(ts, omega_ist) real(8), intent (in) :: ts real(8), intent (in) :: omega_ist code = ((1.0d0 / ts) * 8.2d-6) * abs(omega_ist) end function
public static double code(double Ts, double omega_ist) { return ((1.0 / Ts) * 8.2e-6) * Math.abs(omega_ist); }
def code(Ts, omega_ist): return ((1.0 / Ts) * 8.2e-6) * math.fabs(omega_ist)
function code(Ts, omega_ist) return Float64(Float64(Float64(1.0 / Ts) * 8.2e-6) * abs(omega_ist)) end
function tmp = code(Ts, omega_ist) tmp = ((1.0 / Ts) * 8.2e-6) * abs(omega_ist); end
code[Ts_, omega$95$ist_] := N[(N[(N[(1.0 / Ts), $MachinePrecision] * 8.2e-6), $MachinePrecision] * N[Abs[omega$95$ist], $MachinePrecision]), $MachinePrecision]
\begin{array}{l} \\ \left(\frac{1}{Ts} \cdot 8.2 \cdot 10^{-6}\right) \cdot \left|omega\_ist\right| \end{array}
(FPCore (Ts omega_ist) :precision binary64 (* (fabs omega_ist) (/ 8.2e-6 Ts)))
double code(double Ts, double omega_ist) { return fabs(omega_ist) * (8.2e-6 / Ts); }
real(8) function code(ts, omega_ist) real(8), intent (in) :: ts real(8), intent (in) :: omega_ist code = abs(omega_ist) * (8.2d-6 / ts) end function
public static double code(double Ts, double omega_ist) { return Math.abs(omega_ist) * (8.2e-6 / Ts); }
def code(Ts, omega_ist): return math.fabs(omega_ist) * (8.2e-6 / Ts)
function code(Ts, omega_ist) return Float64(abs(omega_ist) * Float64(8.2e-6 / Ts)) end
function tmp = code(Ts, omega_ist) tmp = abs(omega_ist) * (8.2e-6 / Ts); end
code[Ts_, omega$95$ist_] := N[(N[Abs[omega$95$ist], $MachinePrecision] * N[(8.2e-6 / Ts), $MachinePrecision]), $MachinePrecision]
\begin{array}{l} \\ \left|omega\_ist\right| \cdot \frac{8.2 \cdot 10^{-6}}{Ts} \end{array}
Initial program 99.5%
lift-*.f64
N/A
lift-/.f64
N/A
associate-*l/
N/A
metadata-eval
N/A
lower-/.f64
99.6
Applied rewrites99.6%
Final simplification99.6%
herbie shell --seed 1
(FPCore (Ts omega_ist)
:name "1.0 / Ts * 8.2E-6 * fabs(omega_ist);"
:precision binary64
:pre (and (and (<= -1.79e+308 Ts) (<= Ts 1.79e+308)) (and (<= -1.79e+308 omega_ist) (<= omega_ist 1.79e+308)))
(* (* (/ 1.0 Ts) 8.2e-6) (fabs omega_ist)))