Alternative 1 | |
---|---|
Error | 61.4 |
Cost | 6592 |
\[\frac{scale}{\log \alpha}
\]
(FPCore (scale alpha) :precision binary64 (/ scale (log (/ 1.0 alpha))))
(FPCore (scale alpha) :precision binary64 (/ scale (- (log alpha))))
double code(double scale, double alpha) { return scale / log((1.0 / alpha)); }
double code(double scale, double alpha) { return scale / -log(alpha); }
real(8) function code(scale, alpha) real(8), intent (in) :: scale real(8), intent (in) :: alpha code = scale / log((1.0d0 / alpha)) end function
real(8) function code(scale, alpha) real(8), intent (in) :: scale real(8), intent (in) :: alpha code = scale / -log(alpha) end function
public static double code(double scale, double alpha) { return scale / Math.log((1.0 / alpha)); }
public static double code(double scale, double alpha) { return scale / -Math.log(alpha); }
def code(scale, alpha): return scale / math.log((1.0 / alpha))
def code(scale, alpha): return scale / -math.log(alpha)
function code(scale, alpha) return Float64(scale / log(Float64(1.0 / alpha))) end
function code(scale, alpha) return Float64(scale / Float64(-log(alpha))) end
function tmp = code(scale, alpha) tmp = scale / log((1.0 / alpha)); end
function tmp = code(scale, alpha) tmp = scale / -log(alpha); end
code[scale_, alpha_] := N[(scale / N[Log[N[(1.0 / alpha), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]
code[scale_, alpha_] := N[(scale / (-N[Log[alpha], $MachinePrecision])), $MachinePrecision]
\frac{scale}{\log \left(\frac{1}{\alpha}\right)}
\frac{scale}{-\log \alpha}
Results
Initial program 0.3
Simplified0.3
[Start]0.3 | \[ \frac{scale}{\log \left(\frac{1}{\alpha}\right)}
\] |
---|---|
log-rec [=>]0.3 | \[ \frac{scale}{\color{blue}{-\log \alpha}}
\] |
Final simplification0.3
Alternative 1 | |
---|---|
Error | 61.4 |
Cost | 6592 |
herbie shell --seed 1
(FPCore (scale alpha)
:name "scale / log(1 / alpha)"
:precision binary64
:pre (and (and (<= 0.0 scale) (<= scale 100.0)) (and (<= 0.0 alpha) (<= alpha 1.0)))
(/ scale (log (/ 1.0 alpha))))