
(FPCore (x y) :precision binary64 (/ (* (sin x) (sinh y)) x))
double code(double x, double y) {
return (sin(x) * sinh(y)) / x;
}
real(8) function code(x, y)
real(8), intent (in) :: x
real(8), intent (in) :: y
code = (sin(x) * sinh(y)) / x
end function
public static double code(double x, double y) {
return (Math.sin(x) * Math.sinh(y)) / x;
}
def code(x, y): return (math.sin(x) * math.sinh(y)) / x
function code(x, y) return Float64(Float64(sin(x) * sinh(y)) / x) end
function tmp = code(x, y) tmp = (sin(x) * sinh(y)) / x; end
code[x_, y_] := N[(N[(N[Sin[x], $MachinePrecision] * N[Sinh[y], $MachinePrecision]), $MachinePrecision] / x), $MachinePrecision]
\begin{array}{l}
\\
\frac{\sin x \cdot \sinh y}{x}
\end{array}
Sampling outcomes in binary64 precision:
Herbie found 9 alternatives:
| Alternative | Accuracy | Speedup |
|---|
(FPCore (x y) :precision binary64 (/ (* (sin x) (sinh y)) x))
double code(double x, double y) {
return (sin(x) * sinh(y)) / x;
}
real(8) function code(x, y)
real(8), intent (in) :: x
real(8), intent (in) :: y
code = (sin(x) * sinh(y)) / x
end function
public static double code(double x, double y) {
return (Math.sin(x) * Math.sinh(y)) / x;
}
def code(x, y): return (math.sin(x) * math.sinh(y)) / x
function code(x, y) return Float64(Float64(sin(x) * sinh(y)) / x) end
function tmp = code(x, y) tmp = (sin(x) * sinh(y)) / x; end
code[x_, y_] := N[(N[(N[Sin[x], $MachinePrecision] * N[Sinh[y], $MachinePrecision]), $MachinePrecision] / x), $MachinePrecision]
\begin{array}{l}
\\
\frac{\sin x \cdot \sinh y}{x}
\end{array}
(FPCore (x y) :precision binary64 (* (sin x) (/ (sinh y) x)))
double code(double x, double y) {
return sin(x) * (sinh(y) / x);
}
real(8) function code(x, y)
real(8), intent (in) :: x
real(8), intent (in) :: y
code = sin(x) * (sinh(y) / x)
end function
public static double code(double x, double y) {
return Math.sin(x) * (Math.sinh(y) / x);
}
def code(x, y): return math.sin(x) * (math.sinh(y) / x)
function code(x, y) return Float64(sin(x) * Float64(sinh(y) / x)) end
function tmp = code(x, y) tmp = sin(x) * (sinh(y) / x); end
code[x_, y_] := N[(N[Sin[x], $MachinePrecision] * N[(N[Sinh[y], $MachinePrecision] / x), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}
\\
\sin x \cdot \frac{\sinh y}{x}
\end{array}
Initial program 87.2%
associate-/l*99.5%
Simplified99.5%
(FPCore (x y)
:precision binary64
(let* ((t_0 (/ 1.0 (sin x)))
(t_1 (* (/ 1.0 x) (* x y)))
(t_2 (/ (* x y) x))
(t_3 (/ (/ y x) (/ 1.0 x)))
(t_4 (+ y (* -0.16666666666666666 (* y (pow x 2.0)))))
(t_5 (/ (* x t_4) x))
(t_6 (* y (+ 1.0 (* -0.16666666666666666 (pow x 2.0))))))
(if (<= y 13800000.0)
(/ y (/ x (sin x)))
(if (<= y 6.2e+52)
t_5
(if (<= y 2.95e+68)
t_1
(if (<= y 4.5e+73)
t_6
(if (<= y 2.1e+76)
t_1
(if (<= y 3.8e+79)
t_6
(if (<= y 1.9e+81)
t_3
(if (<= y 2e+84)
(/ (/ y x) t_0)
(if (<= y 3e+84)
t_6
(if (<= y 6.2e+94)
t_5
(if (<= y 5.2e+99)
t_3
(if (<= y 5.5e+99)
(/ (/ y t_0) x)
(if (<= y 9.5e+100)
t_1
(if (<= y 3.2e+101)
t_5
(if (<= y 3.9e+107)
t_2
(if (<= y 3.4e+112)
t_3
(if (<= y 5e+116)
t_2
(if (<= y 6.8e+126)
t_1
(if (<= y 4e+129)
t_5
(if (<= y 2.75e+131)
t_2
(if (<= y 1.6e+140)
t_5
(if (<= y 1e+141)
t_2
(if (<= y 1.05e+146)
t_1
(if (<= y 1.8e+152)
t_3
(if (<= y 1.7e+154)
t_6
(if (<= y 1.1e+157)
t_3
(if (<= y 2e+158)
t_1
(if (<= y 2.4e+158)
(/ (* (sin x) y) x)
(if (<= y 7.6e+160)
t_6
(if (<= y 2e+165)
t_3
(if (<=
y
3.1e+170)
t_6
(if (<=
y
1.2e+175)
t_2
(if (<=
y
5e+178)
t_6
(if (<=
y
2.65e+182)
t_3
(if (<=
y
3.5e+184)
t_6
(if (<=
y
5.6e+191)
t_3
(if (<=
y
9.2e+191)
t_5
(if (<=
y
9.5e+191)
t_2
(if (<=
y
5.8e+199)
t_3
(if (<=
y
7.2e+199)
t_2
(if (<=
y
3.1e+204)
t_3
(if (<=
y
1.45e+206)
t_5
(if (<=
y
5e+220)
t_2
(if (<=
y
5e+221)
t_6
(if (<=
y
4.6e+232)
t_3
(if (<=
y
4.7e+232)
y
(if (<=
y
7.8e+234)
t_4
(if (<=
y
2.35e+238)
t_2
(if (<=
y
1.45e+239)
t_6
(if (<=
y
5.4e+244)
t_2
(if (<=
y
3.2e+255)
t_3
(if (<=
y
1.45e+257)
t_2
(if (<=
y
3.45e+258)
t_6
(if (<=
y
3.3e+259)
t_2
(if (<=
y
4.8e+267)
t_6
(if (<=
y
8.5e+274)
t_3
(if (<=
y
2.3e+275)
t_2
(if (<=
y
8.5e+282)
t_3
(if (<=
y
9.5e+290)
t_2
(if (<=
y
2e+299)
t_3
(if (<=
y
1.08e+301)
t_2
(if (<=
y
3.5e+304)
t_3
t_6))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
double code(double x, double y) {
double t_0 = 1.0 / sin(x);
double t_1 = (1.0 / x) * (x * y);
double t_2 = (x * y) / x;
double t_3 = (y / x) / (1.0 / x);
double t_4 = y + (-0.16666666666666666 * (y * pow(x, 2.0)));
double t_5 = (x * t_4) / x;
double t_6 = y * (1.0 + (-0.16666666666666666 * pow(x, 2.0)));
double tmp;
if (y <= 13800000.0) {
tmp = y / (x / sin(x));
} else if (y <= 6.2e+52) {
tmp = t_5;
} else if (y <= 2.95e+68) {
tmp = t_1;
} else if (y <= 4.5e+73) {
tmp = t_6;
} else if (y <= 2.1e+76) {
tmp = t_1;
} else if (y <= 3.8e+79) {
tmp = t_6;
} else if (y <= 1.9e+81) {
tmp = t_3;
} else if (y <= 2e+84) {
tmp = (y / x) / t_0;
} else if (y <= 3e+84) {
tmp = t_6;
} else if (y <= 6.2e+94) {
tmp = t_5;
} else if (y <= 5.2e+99) {
tmp = t_3;
} else if (y <= 5.5e+99) {
tmp = (y / t_0) / x;
} else if (y <= 9.5e+100) {
tmp = t_1;
} else if (y <= 3.2e+101) {
tmp = t_5;
} else if (y <= 3.9e+107) {
tmp = t_2;
} else if (y <= 3.4e+112) {
tmp = t_3;
} else if (y <= 5e+116) {
tmp = t_2;
} else if (y <= 6.8e+126) {
tmp = t_1;
} else if (y <= 4e+129) {
tmp = t_5;
} else if (y <= 2.75e+131) {
tmp = t_2;
} else if (y <= 1.6e+140) {
tmp = t_5;
} else if (y <= 1e+141) {
tmp = t_2;
} else if (y <= 1.05e+146) {
tmp = t_1;
} else if (y <= 1.8e+152) {
tmp = t_3;
} else if (y <= 1.7e+154) {
tmp = t_6;
} else if (y <= 1.1e+157) {
tmp = t_3;
} else if (y <= 2e+158) {
tmp = t_1;
} else if (y <= 2.4e+158) {
tmp = (sin(x) * y) / x;
} else if (y <= 7.6e+160) {
tmp = t_6;
} else if (y <= 2e+165) {
tmp = t_3;
} else if (y <= 3.1e+170) {
tmp = t_6;
} else if (y <= 1.2e+175) {
tmp = t_2;
} else if (y <= 5e+178) {
tmp = t_6;
} else if (y <= 2.65e+182) {
tmp = t_3;
} else if (y <= 3.5e+184) {
tmp = t_6;
} else if (y <= 5.6e+191) {
tmp = t_3;
} else if (y <= 9.2e+191) {
tmp = t_5;
} else if (y <= 9.5e+191) {
tmp = t_2;
} else if (y <= 5.8e+199) {
tmp = t_3;
} else if (y <= 7.2e+199) {
tmp = t_2;
} else if (y <= 3.1e+204) {
tmp = t_3;
} else if (y <= 1.45e+206) {
tmp = t_5;
} else if (y <= 5e+220) {
tmp = t_2;
} else if (y <= 5e+221) {
tmp = t_6;
} else if (y <= 4.6e+232) {
tmp = t_3;
} else if (y <= 4.7e+232) {
tmp = y;
} else if (y <= 7.8e+234) {
tmp = t_4;
} else if (y <= 2.35e+238) {
tmp = t_2;
} else if (y <= 1.45e+239) {
tmp = t_6;
} else if (y <= 5.4e+244) {
tmp = t_2;
} else if (y <= 3.2e+255) {
tmp = t_3;
} else if (y <= 1.45e+257) {
tmp = t_2;
} else if (y <= 3.45e+258) {
tmp = t_6;
} else if (y <= 3.3e+259) {
tmp = t_2;
} else if (y <= 4.8e+267) {
tmp = t_6;
} else if (y <= 8.5e+274) {
tmp = t_3;
} else if (y <= 2.3e+275) {
tmp = t_2;
} else if (y <= 8.5e+282) {
tmp = t_3;
} else if (y <= 9.5e+290) {
tmp = t_2;
} else if (y <= 2e+299) {
tmp = t_3;
} else if (y <= 1.08e+301) {
tmp = t_2;
} else if (y <= 3.5e+304) {
tmp = t_3;
} else {
tmp = t_6;
}
return tmp;
}
real(8) function code(x, y)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8) :: t_0
real(8) :: t_1
real(8) :: t_2
real(8) :: t_3
real(8) :: t_4
real(8) :: t_5
real(8) :: t_6
real(8) :: tmp
t_0 = 1.0d0 / sin(x)
t_1 = (1.0d0 / x) * (x * y)
t_2 = (x * y) / x
t_3 = (y / x) / (1.0d0 / x)
t_4 = y + ((-0.16666666666666666d0) * (y * (x ** 2.0d0)))
t_5 = (x * t_4) / x
t_6 = y * (1.0d0 + ((-0.16666666666666666d0) * (x ** 2.0d0)))
if (y <= 13800000.0d0) then
tmp = y / (x / sin(x))
else if (y <= 6.2d+52) then
tmp = t_5
else if (y <= 2.95d+68) then
tmp = t_1
else if (y <= 4.5d+73) then
tmp = t_6
else if (y <= 2.1d+76) then
tmp = t_1
else if (y <= 3.8d+79) then
tmp = t_6
else if (y <= 1.9d+81) then
tmp = t_3
else if (y <= 2d+84) then
tmp = (y / x) / t_0
else if (y <= 3d+84) then
tmp = t_6
else if (y <= 6.2d+94) then
tmp = t_5
else if (y <= 5.2d+99) then
tmp = t_3
else if (y <= 5.5d+99) then
tmp = (y / t_0) / x
else if (y <= 9.5d+100) then
tmp = t_1
else if (y <= 3.2d+101) then
tmp = t_5
else if (y <= 3.9d+107) then
tmp = t_2
else if (y <= 3.4d+112) then
tmp = t_3
else if (y <= 5d+116) then
tmp = t_2
else if (y <= 6.8d+126) then
tmp = t_1
else if (y <= 4d+129) then
tmp = t_5
else if (y <= 2.75d+131) then
tmp = t_2
else if (y <= 1.6d+140) then
tmp = t_5
else if (y <= 1d+141) then
tmp = t_2
else if (y <= 1.05d+146) then
tmp = t_1
else if (y <= 1.8d+152) then
tmp = t_3
else if (y <= 1.7d+154) then
tmp = t_6
else if (y <= 1.1d+157) then
tmp = t_3
else if (y <= 2d+158) then
tmp = t_1
else if (y <= 2.4d+158) then
tmp = (sin(x) * y) / x
else if (y <= 7.6d+160) then
tmp = t_6
else if (y <= 2d+165) then
tmp = t_3
else if (y <= 3.1d+170) then
tmp = t_6
else if (y <= 1.2d+175) then
tmp = t_2
else if (y <= 5d+178) then
tmp = t_6
else if (y <= 2.65d+182) then
tmp = t_3
else if (y <= 3.5d+184) then
tmp = t_6
else if (y <= 5.6d+191) then
tmp = t_3
else if (y <= 9.2d+191) then
tmp = t_5
else if (y <= 9.5d+191) then
tmp = t_2
else if (y <= 5.8d+199) then
tmp = t_3
else if (y <= 7.2d+199) then
tmp = t_2
else if (y <= 3.1d+204) then
tmp = t_3
else if (y <= 1.45d+206) then
tmp = t_5
else if (y <= 5d+220) then
tmp = t_2
else if (y <= 5d+221) then
tmp = t_6
else if (y <= 4.6d+232) then
tmp = t_3
else if (y <= 4.7d+232) then
tmp = y
else if (y <= 7.8d+234) then
tmp = t_4
else if (y <= 2.35d+238) then
tmp = t_2
else if (y <= 1.45d+239) then
tmp = t_6
else if (y <= 5.4d+244) then
tmp = t_2
else if (y <= 3.2d+255) then
tmp = t_3
else if (y <= 1.45d+257) then
tmp = t_2
else if (y <= 3.45d+258) then
tmp = t_6
else if (y <= 3.3d+259) then
tmp = t_2
else if (y <= 4.8d+267) then
tmp = t_6
else if (y <= 8.5d+274) then
tmp = t_3
else if (y <= 2.3d+275) then
tmp = t_2
else if (y <= 8.5d+282) then
tmp = t_3
else if (y <= 9.5d+290) then
tmp = t_2
else if (y <= 2d+299) then
tmp = t_3
else if (y <= 1.08d+301) then
tmp = t_2
else if (y <= 3.5d+304) then
tmp = t_3
else
tmp = t_6
end if
code = tmp
end function
public static double code(double x, double y) {
double t_0 = 1.0 / Math.sin(x);
double t_1 = (1.0 / x) * (x * y);
double t_2 = (x * y) / x;
double t_3 = (y / x) / (1.0 / x);
double t_4 = y + (-0.16666666666666666 * (y * Math.pow(x, 2.0)));
double t_5 = (x * t_4) / x;
double t_6 = y * (1.0 + (-0.16666666666666666 * Math.pow(x, 2.0)));
double tmp;
if (y <= 13800000.0) {
tmp = y / (x / Math.sin(x));
} else if (y <= 6.2e+52) {
tmp = t_5;
} else if (y <= 2.95e+68) {
tmp = t_1;
} else if (y <= 4.5e+73) {
tmp = t_6;
} else if (y <= 2.1e+76) {
tmp = t_1;
} else if (y <= 3.8e+79) {
tmp = t_6;
} else if (y <= 1.9e+81) {
tmp = t_3;
} else if (y <= 2e+84) {
tmp = (y / x) / t_0;
} else if (y <= 3e+84) {
tmp = t_6;
} else if (y <= 6.2e+94) {
tmp = t_5;
} else if (y <= 5.2e+99) {
tmp = t_3;
} else if (y <= 5.5e+99) {
tmp = (y / t_0) / x;
} else if (y <= 9.5e+100) {
tmp = t_1;
} else if (y <= 3.2e+101) {
tmp = t_5;
} else if (y <= 3.9e+107) {
tmp = t_2;
} else if (y <= 3.4e+112) {
tmp = t_3;
} else if (y <= 5e+116) {
tmp = t_2;
} else if (y <= 6.8e+126) {
tmp = t_1;
} else if (y <= 4e+129) {
tmp = t_5;
} else if (y <= 2.75e+131) {
tmp = t_2;
} else if (y <= 1.6e+140) {
tmp = t_5;
} else if (y <= 1e+141) {
tmp = t_2;
} else if (y <= 1.05e+146) {
tmp = t_1;
} else if (y <= 1.8e+152) {
tmp = t_3;
} else if (y <= 1.7e+154) {
tmp = t_6;
} else if (y <= 1.1e+157) {
tmp = t_3;
} else if (y <= 2e+158) {
tmp = t_1;
} else if (y <= 2.4e+158) {
tmp = (Math.sin(x) * y) / x;
} else if (y <= 7.6e+160) {
tmp = t_6;
} else if (y <= 2e+165) {
tmp = t_3;
} else if (y <= 3.1e+170) {
tmp = t_6;
} else if (y <= 1.2e+175) {
tmp = t_2;
} else if (y <= 5e+178) {
tmp = t_6;
} else if (y <= 2.65e+182) {
tmp = t_3;
} else if (y <= 3.5e+184) {
tmp = t_6;
} else if (y <= 5.6e+191) {
tmp = t_3;
} else if (y <= 9.2e+191) {
tmp = t_5;
} else if (y <= 9.5e+191) {
tmp = t_2;
} else if (y <= 5.8e+199) {
tmp = t_3;
} else if (y <= 7.2e+199) {
tmp = t_2;
} else if (y <= 3.1e+204) {
tmp = t_3;
} else if (y <= 1.45e+206) {
tmp = t_5;
} else if (y <= 5e+220) {
tmp = t_2;
} else if (y <= 5e+221) {
tmp = t_6;
} else if (y <= 4.6e+232) {
tmp = t_3;
} else if (y <= 4.7e+232) {
tmp = y;
} else if (y <= 7.8e+234) {
tmp = t_4;
} else if (y <= 2.35e+238) {
tmp = t_2;
} else if (y <= 1.45e+239) {
tmp = t_6;
} else if (y <= 5.4e+244) {
tmp = t_2;
} else if (y <= 3.2e+255) {
tmp = t_3;
} else if (y <= 1.45e+257) {
tmp = t_2;
} else if (y <= 3.45e+258) {
tmp = t_6;
} else if (y <= 3.3e+259) {
tmp = t_2;
} else if (y <= 4.8e+267) {
tmp = t_6;
} else if (y <= 8.5e+274) {
tmp = t_3;
} else if (y <= 2.3e+275) {
tmp = t_2;
} else if (y <= 8.5e+282) {
tmp = t_3;
} else if (y <= 9.5e+290) {
tmp = t_2;
} else if (y <= 2e+299) {
tmp = t_3;
} else if (y <= 1.08e+301) {
tmp = t_2;
} else if (y <= 3.5e+304) {
tmp = t_3;
} else {
tmp = t_6;
}
return tmp;
}
def code(x, y): t_0 = 1.0 / math.sin(x) t_1 = (1.0 / x) * (x * y) t_2 = (x * y) / x t_3 = (y / x) / (1.0 / x) t_4 = y + (-0.16666666666666666 * (y * math.pow(x, 2.0))) t_5 = (x * t_4) / x t_6 = y * (1.0 + (-0.16666666666666666 * math.pow(x, 2.0))) tmp = 0 if y <= 13800000.0: tmp = y / (x / math.sin(x)) elif y <= 6.2e+52: tmp = t_5 elif y <= 2.95e+68: tmp = t_1 elif y <= 4.5e+73: tmp = t_6 elif y <= 2.1e+76: tmp = t_1 elif y <= 3.8e+79: tmp = t_6 elif y <= 1.9e+81: tmp = t_3 elif y <= 2e+84: tmp = (y / x) / t_0 elif y <= 3e+84: tmp = t_6 elif y <= 6.2e+94: tmp = t_5 elif y <= 5.2e+99: tmp = t_3 elif y <= 5.5e+99: tmp = (y / t_0) / x elif y <= 9.5e+100: tmp = t_1 elif y <= 3.2e+101: tmp = t_5 elif y <= 3.9e+107: tmp = t_2 elif y <= 3.4e+112: tmp = t_3 elif y <= 5e+116: tmp = t_2 elif y <= 6.8e+126: tmp = t_1 elif y <= 4e+129: tmp = t_5 elif y <= 2.75e+131: tmp = t_2 elif y <= 1.6e+140: tmp = t_5 elif y <= 1e+141: tmp = t_2 elif y <= 1.05e+146: tmp = t_1 elif y <= 1.8e+152: tmp = t_3 elif y <= 1.7e+154: tmp = t_6 elif y <= 1.1e+157: tmp = t_3 elif y <= 2e+158: tmp = t_1 elif y <= 2.4e+158: tmp = (math.sin(x) * y) / x elif y <= 7.6e+160: tmp = t_6 elif y <= 2e+165: tmp = t_3 elif y <= 3.1e+170: tmp = t_6 elif y <= 1.2e+175: tmp = t_2 elif y <= 5e+178: tmp = t_6 elif y <= 2.65e+182: tmp = t_3 elif y <= 3.5e+184: tmp = t_6 elif y <= 5.6e+191: tmp = t_3 elif y <= 9.2e+191: tmp = t_5 elif y <= 9.5e+191: tmp = t_2 elif y <= 5.8e+199: tmp = t_3 elif y <= 7.2e+199: tmp = t_2 elif y <= 3.1e+204: tmp = t_3 elif y <= 1.45e+206: tmp = t_5 elif y <= 5e+220: tmp = t_2 elif y <= 5e+221: tmp = t_6 elif y <= 4.6e+232: tmp = t_3 elif y <= 4.7e+232: tmp = y elif y <= 7.8e+234: tmp = t_4 elif y <= 2.35e+238: tmp = t_2 elif y <= 1.45e+239: tmp = t_6 elif y <= 5.4e+244: tmp = t_2 elif y <= 3.2e+255: tmp = t_3 elif y <= 1.45e+257: tmp = t_2 elif y <= 3.45e+258: tmp = t_6 elif y <= 3.3e+259: tmp = t_2 elif y <= 4.8e+267: tmp = t_6 elif y <= 8.5e+274: tmp = t_3 elif y <= 2.3e+275: tmp = t_2 elif y <= 8.5e+282: tmp = t_3 elif y <= 9.5e+290: tmp = t_2 elif y <= 2e+299: tmp = t_3 elif y <= 1.08e+301: tmp = t_2 elif y <= 3.5e+304: tmp = t_3 else: tmp = t_6 return tmp
function code(x, y) t_0 = Float64(1.0 / sin(x)) t_1 = Float64(Float64(1.0 / x) * Float64(x * y)) t_2 = Float64(Float64(x * y) / x) t_3 = Float64(Float64(y / x) / Float64(1.0 / x)) t_4 = Float64(y + Float64(-0.16666666666666666 * Float64(y * (x ^ 2.0)))) t_5 = Float64(Float64(x * t_4) / x) t_6 = Float64(y * Float64(1.0 + Float64(-0.16666666666666666 * (x ^ 2.0)))) tmp = 0.0 if (y <= 13800000.0) tmp = Float64(y / Float64(x / sin(x))); elseif (y <= 6.2e+52) tmp = t_5; elseif (y <= 2.95e+68) tmp = t_1; elseif (y <= 4.5e+73) tmp = t_6; elseif (y <= 2.1e+76) tmp = t_1; elseif (y <= 3.8e+79) tmp = t_6; elseif (y <= 1.9e+81) tmp = t_3; elseif (y <= 2e+84) tmp = Float64(Float64(y / x) / t_0); elseif (y <= 3e+84) tmp = t_6; elseif (y <= 6.2e+94) tmp = t_5; elseif (y <= 5.2e+99) tmp = t_3; elseif (y <= 5.5e+99) tmp = Float64(Float64(y / t_0) / x); elseif (y <= 9.5e+100) tmp = t_1; elseif (y <= 3.2e+101) tmp = t_5; elseif (y <= 3.9e+107) tmp = t_2; elseif (y <= 3.4e+112) tmp = t_3; elseif (y <= 5e+116) tmp = t_2; elseif (y <= 6.8e+126) tmp = t_1; elseif (y <= 4e+129) tmp = t_5; elseif (y <= 2.75e+131) tmp = t_2; elseif (y <= 1.6e+140) tmp = t_5; elseif (y <= 1e+141) tmp = t_2; elseif (y <= 1.05e+146) tmp = t_1; elseif (y <= 1.8e+152) tmp = t_3; elseif (y <= 1.7e+154) tmp = t_6; elseif (y <= 1.1e+157) tmp = t_3; elseif (y <= 2e+158) tmp = t_1; elseif (y <= 2.4e+158) tmp = Float64(Float64(sin(x) * y) / x); elseif (y <= 7.6e+160) tmp = t_6; elseif (y <= 2e+165) tmp = t_3; elseif (y <= 3.1e+170) tmp = t_6; elseif (y <= 1.2e+175) tmp = t_2; elseif (y <= 5e+178) tmp = t_6; elseif (y <= 2.65e+182) tmp = t_3; elseif (y <= 3.5e+184) tmp = t_6; elseif (y <= 5.6e+191) tmp = t_3; elseif (y <= 9.2e+191) tmp = t_5; elseif (y <= 9.5e+191) tmp = t_2; elseif (y <= 5.8e+199) tmp = t_3; elseif (y <= 7.2e+199) tmp = t_2; elseif (y <= 3.1e+204) tmp = t_3; elseif (y <= 1.45e+206) tmp = t_5; elseif (y <= 5e+220) tmp = t_2; elseif (y <= 5e+221) tmp = t_6; elseif (y <= 4.6e+232) tmp = t_3; elseif (y <= 4.7e+232) tmp = y; elseif (y <= 7.8e+234) tmp = t_4; elseif (y <= 2.35e+238) tmp = t_2; elseif (y <= 1.45e+239) tmp = t_6; elseif (y <= 5.4e+244) tmp = t_2; elseif (y <= 3.2e+255) tmp = t_3; elseif (y <= 1.45e+257) tmp = t_2; elseif (y <= 3.45e+258) tmp = t_6; elseif (y <= 3.3e+259) tmp = t_2; elseif (y <= 4.8e+267) tmp = t_6; elseif (y <= 8.5e+274) tmp = t_3; elseif (y <= 2.3e+275) tmp = t_2; elseif (y <= 8.5e+282) tmp = t_3; elseif (y <= 9.5e+290) tmp = t_2; elseif (y <= 2e+299) tmp = t_3; elseif (y <= 1.08e+301) tmp = t_2; elseif (y <= 3.5e+304) tmp = t_3; else tmp = t_6; end return tmp end
function tmp_2 = code(x, y) t_0 = 1.0 / sin(x); t_1 = (1.0 / x) * (x * y); t_2 = (x * y) / x; t_3 = (y / x) / (1.0 / x); t_4 = y + (-0.16666666666666666 * (y * (x ^ 2.0))); t_5 = (x * t_4) / x; t_6 = y * (1.0 + (-0.16666666666666666 * (x ^ 2.0))); tmp = 0.0; if (y <= 13800000.0) tmp = y / (x / sin(x)); elseif (y <= 6.2e+52) tmp = t_5; elseif (y <= 2.95e+68) tmp = t_1; elseif (y <= 4.5e+73) tmp = t_6; elseif (y <= 2.1e+76) tmp = t_1; elseif (y <= 3.8e+79) tmp = t_6; elseif (y <= 1.9e+81) tmp = t_3; elseif (y <= 2e+84) tmp = (y / x) / t_0; elseif (y <= 3e+84) tmp = t_6; elseif (y <= 6.2e+94) tmp = t_5; elseif (y <= 5.2e+99) tmp = t_3; elseif (y <= 5.5e+99) tmp = (y / t_0) / x; elseif (y <= 9.5e+100) tmp = t_1; elseif (y <= 3.2e+101) tmp = t_5; elseif (y <= 3.9e+107) tmp = t_2; elseif (y <= 3.4e+112) tmp = t_3; elseif (y <= 5e+116) tmp = t_2; elseif (y <= 6.8e+126) tmp = t_1; elseif (y <= 4e+129) tmp = t_5; elseif (y <= 2.75e+131) tmp = t_2; elseif (y <= 1.6e+140) tmp = t_5; elseif (y <= 1e+141) tmp = t_2; elseif (y <= 1.05e+146) tmp = t_1; elseif (y <= 1.8e+152) tmp = t_3; elseif (y <= 1.7e+154) tmp = t_6; elseif (y <= 1.1e+157) tmp = t_3; elseif (y <= 2e+158) tmp = t_1; elseif (y <= 2.4e+158) tmp = (sin(x) * y) / x; elseif (y <= 7.6e+160) tmp = t_6; elseif (y <= 2e+165) tmp = t_3; elseif (y <= 3.1e+170) tmp = t_6; elseif (y <= 1.2e+175) tmp = t_2; elseif (y <= 5e+178) tmp = t_6; elseif (y <= 2.65e+182) tmp = t_3; elseif (y <= 3.5e+184) tmp = t_6; elseif (y <= 5.6e+191) tmp = t_3; elseif (y <= 9.2e+191) tmp = t_5; elseif (y <= 9.5e+191) tmp = t_2; elseif (y <= 5.8e+199) tmp = t_3; elseif (y <= 7.2e+199) tmp = t_2; elseif (y <= 3.1e+204) tmp = t_3; elseif (y <= 1.45e+206) tmp = t_5; elseif (y <= 5e+220) tmp = t_2; elseif (y <= 5e+221) tmp = t_6; elseif (y <= 4.6e+232) tmp = t_3; elseif (y <= 4.7e+232) tmp = y; elseif (y <= 7.8e+234) tmp = t_4; elseif (y <= 2.35e+238) tmp = t_2; elseif (y <= 1.45e+239) tmp = t_6; elseif (y <= 5.4e+244) tmp = t_2; elseif (y <= 3.2e+255) tmp = t_3; elseif (y <= 1.45e+257) tmp = t_2; elseif (y <= 3.45e+258) tmp = t_6; elseif (y <= 3.3e+259) tmp = t_2; elseif (y <= 4.8e+267) tmp = t_6; elseif (y <= 8.5e+274) tmp = t_3; elseif (y <= 2.3e+275) tmp = t_2; elseif (y <= 8.5e+282) tmp = t_3; elseif (y <= 9.5e+290) tmp = t_2; elseif (y <= 2e+299) tmp = t_3; elseif (y <= 1.08e+301) tmp = t_2; elseif (y <= 3.5e+304) tmp = t_3; else tmp = t_6; end tmp_2 = tmp; end
code[x_, y_] := Block[{t$95$0 = N[(1.0 / N[Sin[x], $MachinePrecision]), $MachinePrecision]}, Block[{t$95$1 = N[(N[(1.0 / x), $MachinePrecision] * N[(x * y), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$2 = N[(N[(x * y), $MachinePrecision] / x), $MachinePrecision]}, Block[{t$95$3 = N[(N[(y / x), $MachinePrecision] / N[(1.0 / x), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$4 = N[(y + N[(-0.16666666666666666 * N[(y * N[Power[x, 2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$5 = N[(N[(x * t$95$4), $MachinePrecision] / x), $MachinePrecision]}, Block[{t$95$6 = N[(y * N[(1.0 + N[(-0.16666666666666666 * N[Power[x, 2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[y, 13800000.0], N[(y / N[(x / N[Sin[x], $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y, 6.2e+52], t$95$5, If[LessEqual[y, 2.95e+68], t$95$1, If[LessEqual[y, 4.5e+73], t$95$6, If[LessEqual[y, 2.1e+76], t$95$1, If[LessEqual[y, 3.8e+79], t$95$6, If[LessEqual[y, 1.9e+81], t$95$3, If[LessEqual[y, 2e+84], N[(N[(y / x), $MachinePrecision] / t$95$0), $MachinePrecision], If[LessEqual[y, 3e+84], t$95$6, If[LessEqual[y, 6.2e+94], t$95$5, If[LessEqual[y, 5.2e+99], t$95$3, If[LessEqual[y, 5.5e+99], N[(N[(y / t$95$0), $MachinePrecision] / x), $MachinePrecision], If[LessEqual[y, 9.5e+100], t$95$1, If[LessEqual[y, 3.2e+101], t$95$5, If[LessEqual[y, 3.9e+107], t$95$2, If[LessEqual[y, 3.4e+112], t$95$3, If[LessEqual[y, 5e+116], t$95$2, If[LessEqual[y, 6.8e+126], t$95$1, If[LessEqual[y, 4e+129], t$95$5, If[LessEqual[y, 2.75e+131], t$95$2, If[LessEqual[y, 1.6e+140], t$95$5, If[LessEqual[y, 1e+141], t$95$2, If[LessEqual[y, 1.05e+146], t$95$1, If[LessEqual[y, 1.8e+152], t$95$3, If[LessEqual[y, 1.7e+154], t$95$6, If[LessEqual[y, 1.1e+157], t$95$3, If[LessEqual[y, 2e+158], t$95$1, If[LessEqual[y, 2.4e+158], N[(N[(N[Sin[x], $MachinePrecision] * y), $MachinePrecision] / x), $MachinePrecision], If[LessEqual[y, 7.6e+160], t$95$6, If[LessEqual[y, 2e+165], t$95$3, If[LessEqual[y, 3.1e+170], t$95$6, If[LessEqual[y, 1.2e+175], t$95$2, If[LessEqual[y, 5e+178], t$95$6, If[LessEqual[y, 2.65e+182], t$95$3, If[LessEqual[y, 3.5e+184], t$95$6, If[LessEqual[y, 5.6e+191], t$95$3, If[LessEqual[y, 9.2e+191], t$95$5, If[LessEqual[y, 9.5e+191], t$95$2, If[LessEqual[y, 5.8e+199], t$95$3, If[LessEqual[y, 7.2e+199], t$95$2, If[LessEqual[y, 3.1e+204], t$95$3, If[LessEqual[y, 1.45e+206], t$95$5, If[LessEqual[y, 5e+220], t$95$2, If[LessEqual[y, 5e+221], t$95$6, If[LessEqual[y, 4.6e+232], t$95$3, If[LessEqual[y, 4.7e+232], y, If[LessEqual[y, 7.8e+234], t$95$4, If[LessEqual[y, 2.35e+238], t$95$2, If[LessEqual[y, 1.45e+239], t$95$6, If[LessEqual[y, 5.4e+244], t$95$2, If[LessEqual[y, 3.2e+255], t$95$3, If[LessEqual[y, 1.45e+257], t$95$2, If[LessEqual[y, 3.45e+258], t$95$6, If[LessEqual[y, 3.3e+259], t$95$2, If[LessEqual[y, 4.8e+267], t$95$6, If[LessEqual[y, 8.5e+274], t$95$3, If[LessEqual[y, 2.3e+275], t$95$2, If[LessEqual[y, 8.5e+282], t$95$3, If[LessEqual[y, 9.5e+290], t$95$2, If[LessEqual[y, 2e+299], t$95$3, If[LessEqual[y, 1.08e+301], t$95$2, If[LessEqual[y, 3.5e+304], t$95$3, t$95$6]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_0 := \frac{1}{\sin x}\\
t_1 := \frac{1}{x} \cdot \left(x \cdot y\right)\\
t_2 := \frac{x \cdot y}{x}\\
t_3 := \frac{\frac{y}{x}}{\frac{1}{x}}\\
t_4 := y + -0.16666666666666666 \cdot \left(y \cdot {x}^{2}\right)\\
t_5 := \frac{x \cdot t\_4}{x}\\
t_6 := y \cdot \left(1 + -0.16666666666666666 \cdot {x}^{2}\right)\\
\mathbf{if}\;y \leq 13800000:\\
\;\;\;\;\frac{y}{\frac{x}{\sin x}}\\
\mathbf{elif}\;y \leq 6.2 \cdot 10^{+52}:\\
\;\;\;\;t\_5\\
\mathbf{elif}\;y \leq 2.95 \cdot 10^{+68}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;y \leq 4.5 \cdot 10^{+73}:\\
\;\;\;\;t\_6\\
\mathbf{elif}\;y \leq 2.1 \cdot 10^{+76}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;y \leq 3.8 \cdot 10^{+79}:\\
\;\;\;\;t\_6\\
\mathbf{elif}\;y \leq 1.9 \cdot 10^{+81}:\\
\;\;\;\;t\_3\\
\mathbf{elif}\;y \leq 2 \cdot 10^{+84}:\\
\;\;\;\;\frac{\frac{y}{x}}{t\_0}\\
\mathbf{elif}\;y \leq 3 \cdot 10^{+84}:\\
\;\;\;\;t\_6\\
\mathbf{elif}\;y \leq 6.2 \cdot 10^{+94}:\\
\;\;\;\;t\_5\\
\mathbf{elif}\;y \leq 5.2 \cdot 10^{+99}:\\
\;\;\;\;t\_3\\
\mathbf{elif}\;y \leq 5.5 \cdot 10^{+99}:\\
\;\;\;\;\frac{\frac{y}{t\_0}}{x}\\
\mathbf{elif}\;y \leq 9.5 \cdot 10^{+100}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;y \leq 3.2 \cdot 10^{+101}:\\
\;\;\;\;t\_5\\
\mathbf{elif}\;y \leq 3.9 \cdot 10^{+107}:\\
\;\;\;\;t\_2\\
\mathbf{elif}\;y \leq 3.4 \cdot 10^{+112}:\\
\;\;\;\;t\_3\\
\mathbf{elif}\;y \leq 5 \cdot 10^{+116}:\\
\;\;\;\;t\_2\\
\mathbf{elif}\;y \leq 6.8 \cdot 10^{+126}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;y \leq 4 \cdot 10^{+129}:\\
\;\;\;\;t\_5\\
\mathbf{elif}\;y \leq 2.75 \cdot 10^{+131}:\\
\;\;\;\;t\_2\\
\mathbf{elif}\;y \leq 1.6 \cdot 10^{+140}:\\
\;\;\;\;t\_5\\
\mathbf{elif}\;y \leq 10^{+141}:\\
\;\;\;\;t\_2\\
\mathbf{elif}\;y \leq 1.05 \cdot 10^{+146}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;y \leq 1.8 \cdot 10^{+152}:\\
\;\;\;\;t\_3\\
\mathbf{elif}\;y \leq 1.7 \cdot 10^{+154}:\\
\;\;\;\;t\_6\\
\mathbf{elif}\;y \leq 1.1 \cdot 10^{+157}:\\
\;\;\;\;t\_3\\
\mathbf{elif}\;y \leq 2 \cdot 10^{+158}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;y \leq 2.4 \cdot 10^{+158}:\\
\;\;\;\;\frac{\sin x \cdot y}{x}\\
\mathbf{elif}\;y \leq 7.6 \cdot 10^{+160}:\\
\;\;\;\;t\_6\\
\mathbf{elif}\;y \leq 2 \cdot 10^{+165}:\\
\;\;\;\;t\_3\\
\mathbf{elif}\;y \leq 3.1 \cdot 10^{+170}:\\
\;\;\;\;t\_6\\
\mathbf{elif}\;y \leq 1.2 \cdot 10^{+175}:\\
\;\;\;\;t\_2\\
\mathbf{elif}\;y \leq 5 \cdot 10^{+178}:\\
\;\;\;\;t\_6\\
\mathbf{elif}\;y \leq 2.65 \cdot 10^{+182}:\\
\;\;\;\;t\_3\\
\mathbf{elif}\;y \leq 3.5 \cdot 10^{+184}:\\
\;\;\;\;t\_6\\
\mathbf{elif}\;y \leq 5.6 \cdot 10^{+191}:\\
\;\;\;\;t\_3\\
\mathbf{elif}\;y \leq 9.2 \cdot 10^{+191}:\\
\;\;\;\;t\_5\\
\mathbf{elif}\;y \leq 9.5 \cdot 10^{+191}:\\
\;\;\;\;t\_2\\
\mathbf{elif}\;y \leq 5.8 \cdot 10^{+199}:\\
\;\;\;\;t\_3\\
\mathbf{elif}\;y \leq 7.2 \cdot 10^{+199}:\\
\;\;\;\;t\_2\\
\mathbf{elif}\;y \leq 3.1 \cdot 10^{+204}:\\
\;\;\;\;t\_3\\
\mathbf{elif}\;y \leq 1.45 \cdot 10^{+206}:\\
\;\;\;\;t\_5\\
\mathbf{elif}\;y \leq 5 \cdot 10^{+220}:\\
\;\;\;\;t\_2\\
\mathbf{elif}\;y \leq 5 \cdot 10^{+221}:\\
\;\;\;\;t\_6\\
\mathbf{elif}\;y \leq 4.6 \cdot 10^{+232}:\\
\;\;\;\;t\_3\\
\mathbf{elif}\;y \leq 4.7 \cdot 10^{+232}:\\
\;\;\;\;y\\
\mathbf{elif}\;y \leq 7.8 \cdot 10^{+234}:\\
\;\;\;\;t\_4\\
\mathbf{elif}\;y \leq 2.35 \cdot 10^{+238}:\\
\;\;\;\;t\_2\\
\mathbf{elif}\;y \leq 1.45 \cdot 10^{+239}:\\
\;\;\;\;t\_6\\
\mathbf{elif}\;y \leq 5.4 \cdot 10^{+244}:\\
\;\;\;\;t\_2\\
\mathbf{elif}\;y \leq 3.2 \cdot 10^{+255}:\\
\;\;\;\;t\_3\\
\mathbf{elif}\;y \leq 1.45 \cdot 10^{+257}:\\
\;\;\;\;t\_2\\
\mathbf{elif}\;y \leq 3.45 \cdot 10^{+258}:\\
\;\;\;\;t\_6\\
\mathbf{elif}\;y \leq 3.3 \cdot 10^{+259}:\\
\;\;\;\;t\_2\\
\mathbf{elif}\;y \leq 4.8 \cdot 10^{+267}:\\
\;\;\;\;t\_6\\
\mathbf{elif}\;y \leq 8.5 \cdot 10^{+274}:\\
\;\;\;\;t\_3\\
\mathbf{elif}\;y \leq 2.3 \cdot 10^{+275}:\\
\;\;\;\;t\_2\\
\mathbf{elif}\;y \leq 8.5 \cdot 10^{+282}:\\
\;\;\;\;t\_3\\
\mathbf{elif}\;y \leq 9.5 \cdot 10^{+290}:\\
\;\;\;\;t\_2\\
\mathbf{elif}\;y \leq 2 \cdot 10^{+299}:\\
\;\;\;\;t\_3\\
\mathbf{elif}\;y \leq 1.08 \cdot 10^{+301}:\\
\;\;\;\;t\_2\\
\mathbf{elif}\;y \leq 3.5 \cdot 10^{+304}:\\
\;\;\;\;t\_3\\
\mathbf{else}:\\
\;\;\;\;t\_6\\
\end{array}
\end{array}
if y < 1.38e7Initial program 82.6%
associate-/l*99.4%
Simplified99.4%
Taylor expanded in y around 0 54.0%
associate-/l*71.3%
Simplified71.3%
clear-num71.3%
un-div-inv71.3%
Applied egg-rr71.3%
if 1.38e7 < y < 6.2e52 or 2.99999999999999996e84 < y < 6.19999999999999983e94 or 9.4999999999999995e100 < y < 3.20000000000000005e101 or 6.79999999999999979e126 < y < 4e129 or 2.74999999999999986e131 < y < 1.60000000000000005e140 or 5.5999999999999998e191 < y < 9.1999999999999997e191 or 3.1000000000000002e204 < y < 1.45e206Initial program 100.0%
Taylor expanded in y around 0 3.2%
Taylor expanded in x around 0 25.5%
if 6.2e52 < y < 2.94999999999999993e68 or 4.49999999999999985e73 < y < 2.10000000000000007e76 or 5.5000000000000002e99 < y < 9.4999999999999995e100 or 5.00000000000000025e116 < y < 6.79999999999999979e126 or 1.00000000000000002e141 < y < 1.05e146 or 1.1000000000000001e157 < y < 1.99999999999999991e158Initial program 100.0%
Taylor expanded in y around 0 3.6%
clear-num3.6%
associate-/r/3.6%
Applied egg-rr3.6%
Taylor expanded in x around 0 23.3%
*-commutative23.3%
Simplified23.3%
if 2.94999999999999993e68 < y < 4.49999999999999985e73 or 2.10000000000000007e76 < y < 3.8000000000000002e79 or 2.00000000000000012e84 < y < 2.99999999999999996e84 or 1.7999999999999999e152 < y < 1.69999999999999987e154 or 2.40000000000000008e158 < y < 7.60000000000000024e160 or 1.9999999999999998e165 < y < 3.1e170 or 1.2e175 < y < 4.9999999999999999e178 or 2.65e182 < y < 3.49999999999999978e184 or 5.0000000000000002e220 < y < 5.0000000000000002e221 or 2.34999999999999987e238 < y < 1.4500000000000001e239 or 1.4499999999999999e257 < y < 3.4500000000000002e258 or 3.3e259 < y < 4.79999999999999969e267 or 3.4999999999999998e304 < y Initial program 100.0%
associate-/l*100.0%
Simplified100.0%
Taylor expanded in y around 0 3.2%
associate-/l*3.2%
Simplified3.2%
Taylor expanded in x around 0 81.1%
*-commutative81.1%
Simplified81.1%
if 3.8000000000000002e79 < y < 1.9e81 or 6.19999999999999983e94 < y < 5.1999999999999999e99 or 3.8999999999999998e107 < y < 3.39999999999999993e112 or 1.05e146 < y < 1.7999999999999999e152 or 1.69999999999999987e154 < y < 1.1000000000000001e157 or 7.60000000000000024e160 < y < 1.9999999999999998e165 or 4.9999999999999999e178 < y < 2.65e182 or 3.49999999999999978e184 < y < 5.5999999999999998e191 or 9.4999999999999998e191 < y < 5.7999999999999998e199 or 7.20000000000000002e199 < y < 3.1000000000000002e204 or 5.0000000000000002e221 < y < 4.60000000000000012e232 or 5.39999999999999995e244 < y < 3.1999999999999998e255 or 4.79999999999999969e267 < y < 8.5000000000000002e274 or 2.30000000000000011e275 < y < 8.5000000000000003e282 or 9.4999999999999995e290 < y < 2.0000000000000001e299 or 1.0799999999999999e301 < y < 3.4999999999999998e304Initial program 100.0%
associate-/l*100.0%
Simplified100.0%
clear-num100.0%
associate-/r/100.0%
Applied egg-rr100.0%
Taylor expanded in y around 0 89.8%
*-commutative89.8%
associate-*l/89.8%
*-un-lft-identity89.8%
associate-/r/6.5%
div-inv6.5%
associate-/r*89.8%
Applied egg-rr89.8%
Taylor expanded in x around 0 89.9%
if 1.9e81 < y < 2.00000000000000012e84Initial program 100.0%
associate-/l*100.0%
Simplified100.0%
clear-num100.0%
associate-/r/100.0%
Applied egg-rr100.0%
Taylor expanded in y around 0 3.8%
*-commutative3.8%
associate-*l/3.8%
*-un-lft-identity3.8%
associate-/r/3.8%
div-inv3.8%
associate-/r*3.8%
Applied egg-rr3.8%
if 5.1999999999999999e99 < y < 5.5000000000000002e99Initial program 87.2%
associate-/l*99.5%
Simplified99.5%
clear-num99.2%
associate-/r/99.5%
Applied egg-rr99.5%
Taylor expanded in y around 0 64.4%
associate-/r/64.2%
div-inv64.1%
associate-/r*64.3%
Applied egg-rr64.3%
*-commutative64.3%
associate-*l/53.4%
un-div-inv53.4%
remove-double-div53.5%
associate-*r*40.7%
associate-*l/40.8%
*-un-lft-identity40.8%
*-un-lft-identity40.8%
times-frac64.5%
clear-num64.4%
times-frac53.5%
*-un-lft-identity53.5%
associate-/r*40.7%
Applied egg-rr40.7%
if 3.20000000000000005e101 < y < 3.8999999999999998e107 or 3.39999999999999993e112 < y < 5.00000000000000025e116 or 4e129 < y < 2.74999999999999986e131 or 1.60000000000000005e140 < y < 1.00000000000000002e141 or 3.1e170 < y < 1.2e175 or 9.1999999999999997e191 < y < 9.4999999999999998e191 or 5.7999999999999998e199 < y < 7.20000000000000002e199 or 1.45e206 < y < 5.0000000000000002e220 or 7.7999999999999994e234 < y < 2.34999999999999987e238 or 1.4500000000000001e239 < y < 5.39999999999999995e244 or 3.1999999999999998e255 < y < 1.4499999999999999e257 or 3.4500000000000002e258 < y < 3.3e259 or 8.5000000000000002e274 < y < 2.30000000000000011e275 or 8.5000000000000003e282 < y < 9.4999999999999995e290 or 2.0000000000000001e299 < y < 1.0799999999999999e301Initial program 100.0%
Taylor expanded in y around 0 3.8%
Taylor expanded in x around 0 60.7%
*-commutative60.7%
Simplified60.7%
if 1.99999999999999991e158 < y < 2.40000000000000008e158Initial program 100.0%
Taylor expanded in y around 0 4.8%
if 4.60000000000000012e232 < y < 4.69999999999999992e232Initial program 100.0%
associate-/l*100.0%
Simplified100.0%
Taylor expanded in y around 0 6.3%
associate-/l*6.3%
Simplified6.3%
Taylor expanded in x around 0 6.3%
if 4.69999999999999992e232 < y < 7.7999999999999994e234Initial program 100.0%
associate-/l*100.0%
Simplified100.0%
Taylor expanded in y around 0 6.4%
associate-/l*6.4%
Simplified6.4%
Taylor expanded in x around 0 6.4%
Final simplification67.4%
(FPCore (x y)
:precision binary64
(let* ((t_0 (+ y (* -0.16666666666666666 (* y (pow x 2.0)))))
(t_1 (/ (* x t_0) x))
(t_2 (log (exp y)))
(t_3 (* y (+ 1.0 (* -0.16666666666666666 (pow x 2.0))))))
(if (<= y 0.001)
(/ y (/ x (sin x)))
(if (<= y 1.8e+43)
t_2
(if (<= y 7.8e+45)
t_0
(if (<= y 4.5e+70)
t_2
(if (<= y 4.6e+70)
t_3
(if (<= y 2.8e+79)
t_2
(if (<= y 2.9e+79)
t_3
(if (<= y 2.6e+84)
t_2
(if (<= y 3e+89)
t_3
(if (<= y 1.05e+101)
t_2
(if (<= y 1.1e+101)
t_1
(if (<= y 2.8e+153)
t_2
(if (<= y 2.9e+153)
t_3
(if (<= y 7e+159)
t_2
(if (<= y 7.6e+160)
t_3
(if (<= y 2e+165)
t_2
(if (<= y 2.1e+165)
t_3
(if (<= y 9.5e+176)
t_2
(if (<= y 7.2e+178)
t_3
(if (<= y 8e+183)
(/ (/ y x) (/ 1.0 x))
(if (<= y 2.6e+184)
t_3
(if (<= y 6e+191)
t_2
(if (<= y 6.2e+191)
t_1
(if (<= y 2e+205)
t_2
(if (<= y 1.16e+206)
t_1
(if (or (<= y 1.1e+221)
(and (not
(<=
y
1.12e+221))
(or (<=
y
2.6e+238)
(and (not
(<=
y
2.7e+238))
(or (<=
y
2.4e+257)
(and (not
(<=
y
2.5e+257))
(or (<=
y
9e+259)
(and (not
(<=
y
2.9e+267))
(<=
y
3.5e+304)))))))))
t_2
t_3))))))))))))))))))))))))))))
double code(double x, double y) {
double t_0 = y + (-0.16666666666666666 * (y * pow(x, 2.0)));
double t_1 = (x * t_0) / x;
double t_2 = log(exp(y));
double t_3 = y * (1.0 + (-0.16666666666666666 * pow(x, 2.0)));
double tmp;
if (y <= 0.001) {
tmp = y / (x / sin(x));
} else if (y <= 1.8e+43) {
tmp = t_2;
} else if (y <= 7.8e+45) {
tmp = t_0;
} else if (y <= 4.5e+70) {
tmp = t_2;
} else if (y <= 4.6e+70) {
tmp = t_3;
} else if (y <= 2.8e+79) {
tmp = t_2;
} else if (y <= 2.9e+79) {
tmp = t_3;
} else if (y <= 2.6e+84) {
tmp = t_2;
} else if (y <= 3e+89) {
tmp = t_3;
} else if (y <= 1.05e+101) {
tmp = t_2;
} else if (y <= 1.1e+101) {
tmp = t_1;
} else if (y <= 2.8e+153) {
tmp = t_2;
} else if (y <= 2.9e+153) {
tmp = t_3;
} else if (y <= 7e+159) {
tmp = t_2;
} else if (y <= 7.6e+160) {
tmp = t_3;
} else if (y <= 2e+165) {
tmp = t_2;
} else if (y <= 2.1e+165) {
tmp = t_3;
} else if (y <= 9.5e+176) {
tmp = t_2;
} else if (y <= 7.2e+178) {
tmp = t_3;
} else if (y <= 8e+183) {
tmp = (y / x) / (1.0 / x);
} else if (y <= 2.6e+184) {
tmp = t_3;
} else if (y <= 6e+191) {
tmp = t_2;
} else if (y <= 6.2e+191) {
tmp = t_1;
} else if (y <= 2e+205) {
tmp = t_2;
} else if (y <= 1.16e+206) {
tmp = t_1;
} else if ((y <= 1.1e+221) || (!(y <= 1.12e+221) && ((y <= 2.6e+238) || (!(y <= 2.7e+238) && ((y <= 2.4e+257) || (!(y <= 2.5e+257) && ((y <= 9e+259) || (!(y <= 2.9e+267) && (y <= 3.5e+304))))))))) {
tmp = t_2;
} else {
tmp = t_3;
}
return tmp;
}
real(8) function code(x, y)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8) :: t_0
real(8) :: t_1
real(8) :: t_2
real(8) :: t_3
real(8) :: tmp
t_0 = y + ((-0.16666666666666666d0) * (y * (x ** 2.0d0)))
t_1 = (x * t_0) / x
t_2 = log(exp(y))
t_3 = y * (1.0d0 + ((-0.16666666666666666d0) * (x ** 2.0d0)))
if (y <= 0.001d0) then
tmp = y / (x / sin(x))
else if (y <= 1.8d+43) then
tmp = t_2
else if (y <= 7.8d+45) then
tmp = t_0
else if (y <= 4.5d+70) then
tmp = t_2
else if (y <= 4.6d+70) then
tmp = t_3
else if (y <= 2.8d+79) then
tmp = t_2
else if (y <= 2.9d+79) then
tmp = t_3
else if (y <= 2.6d+84) then
tmp = t_2
else if (y <= 3d+89) then
tmp = t_3
else if (y <= 1.05d+101) then
tmp = t_2
else if (y <= 1.1d+101) then
tmp = t_1
else if (y <= 2.8d+153) then
tmp = t_2
else if (y <= 2.9d+153) then
tmp = t_3
else if (y <= 7d+159) then
tmp = t_2
else if (y <= 7.6d+160) then
tmp = t_3
else if (y <= 2d+165) then
tmp = t_2
else if (y <= 2.1d+165) then
tmp = t_3
else if (y <= 9.5d+176) then
tmp = t_2
else if (y <= 7.2d+178) then
tmp = t_3
else if (y <= 8d+183) then
tmp = (y / x) / (1.0d0 / x)
else if (y <= 2.6d+184) then
tmp = t_3
else if (y <= 6d+191) then
tmp = t_2
else if (y <= 6.2d+191) then
tmp = t_1
else if (y <= 2d+205) then
tmp = t_2
else if (y <= 1.16d+206) then
tmp = t_1
else if ((y <= 1.1d+221) .or. (.not. (y <= 1.12d+221)) .and. (y <= 2.6d+238) .or. (.not. (y <= 2.7d+238)) .and. (y <= 2.4d+257) .or. (.not. (y <= 2.5d+257)) .and. (y <= 9d+259) .or. (.not. (y <= 2.9d+267)) .and. (y <= 3.5d+304)) then
tmp = t_2
else
tmp = t_3
end if
code = tmp
end function
public static double code(double x, double y) {
double t_0 = y + (-0.16666666666666666 * (y * Math.pow(x, 2.0)));
double t_1 = (x * t_0) / x;
double t_2 = Math.log(Math.exp(y));
double t_3 = y * (1.0 + (-0.16666666666666666 * Math.pow(x, 2.0)));
double tmp;
if (y <= 0.001) {
tmp = y / (x / Math.sin(x));
} else if (y <= 1.8e+43) {
tmp = t_2;
} else if (y <= 7.8e+45) {
tmp = t_0;
} else if (y <= 4.5e+70) {
tmp = t_2;
} else if (y <= 4.6e+70) {
tmp = t_3;
} else if (y <= 2.8e+79) {
tmp = t_2;
} else if (y <= 2.9e+79) {
tmp = t_3;
} else if (y <= 2.6e+84) {
tmp = t_2;
} else if (y <= 3e+89) {
tmp = t_3;
} else if (y <= 1.05e+101) {
tmp = t_2;
} else if (y <= 1.1e+101) {
tmp = t_1;
} else if (y <= 2.8e+153) {
tmp = t_2;
} else if (y <= 2.9e+153) {
tmp = t_3;
} else if (y <= 7e+159) {
tmp = t_2;
} else if (y <= 7.6e+160) {
tmp = t_3;
} else if (y <= 2e+165) {
tmp = t_2;
} else if (y <= 2.1e+165) {
tmp = t_3;
} else if (y <= 9.5e+176) {
tmp = t_2;
} else if (y <= 7.2e+178) {
tmp = t_3;
} else if (y <= 8e+183) {
tmp = (y / x) / (1.0 / x);
} else if (y <= 2.6e+184) {
tmp = t_3;
} else if (y <= 6e+191) {
tmp = t_2;
} else if (y <= 6.2e+191) {
tmp = t_1;
} else if (y <= 2e+205) {
tmp = t_2;
} else if (y <= 1.16e+206) {
tmp = t_1;
} else if ((y <= 1.1e+221) || (!(y <= 1.12e+221) && ((y <= 2.6e+238) || (!(y <= 2.7e+238) && ((y <= 2.4e+257) || (!(y <= 2.5e+257) && ((y <= 9e+259) || (!(y <= 2.9e+267) && (y <= 3.5e+304))))))))) {
tmp = t_2;
} else {
tmp = t_3;
}
return tmp;
}
def code(x, y): t_0 = y + (-0.16666666666666666 * (y * math.pow(x, 2.0))) t_1 = (x * t_0) / x t_2 = math.log(math.exp(y)) t_3 = y * (1.0 + (-0.16666666666666666 * math.pow(x, 2.0))) tmp = 0 if y <= 0.001: tmp = y / (x / math.sin(x)) elif y <= 1.8e+43: tmp = t_2 elif y <= 7.8e+45: tmp = t_0 elif y <= 4.5e+70: tmp = t_2 elif y <= 4.6e+70: tmp = t_3 elif y <= 2.8e+79: tmp = t_2 elif y <= 2.9e+79: tmp = t_3 elif y <= 2.6e+84: tmp = t_2 elif y <= 3e+89: tmp = t_3 elif y <= 1.05e+101: tmp = t_2 elif y <= 1.1e+101: tmp = t_1 elif y <= 2.8e+153: tmp = t_2 elif y <= 2.9e+153: tmp = t_3 elif y <= 7e+159: tmp = t_2 elif y <= 7.6e+160: tmp = t_3 elif y <= 2e+165: tmp = t_2 elif y <= 2.1e+165: tmp = t_3 elif y <= 9.5e+176: tmp = t_2 elif y <= 7.2e+178: tmp = t_3 elif y <= 8e+183: tmp = (y / x) / (1.0 / x) elif y <= 2.6e+184: tmp = t_3 elif y <= 6e+191: tmp = t_2 elif y <= 6.2e+191: tmp = t_1 elif y <= 2e+205: tmp = t_2 elif y <= 1.16e+206: tmp = t_1 elif (y <= 1.1e+221) or (not (y <= 1.12e+221) and ((y <= 2.6e+238) or (not (y <= 2.7e+238) and ((y <= 2.4e+257) or (not (y <= 2.5e+257) and ((y <= 9e+259) or (not (y <= 2.9e+267) and (y <= 3.5e+304)))))))): tmp = t_2 else: tmp = t_3 return tmp
function code(x, y) t_0 = Float64(y + Float64(-0.16666666666666666 * Float64(y * (x ^ 2.0)))) t_1 = Float64(Float64(x * t_0) / x) t_2 = log(exp(y)) t_3 = Float64(y * Float64(1.0 + Float64(-0.16666666666666666 * (x ^ 2.0)))) tmp = 0.0 if (y <= 0.001) tmp = Float64(y / Float64(x / sin(x))); elseif (y <= 1.8e+43) tmp = t_2; elseif (y <= 7.8e+45) tmp = t_0; elseif (y <= 4.5e+70) tmp = t_2; elseif (y <= 4.6e+70) tmp = t_3; elseif (y <= 2.8e+79) tmp = t_2; elseif (y <= 2.9e+79) tmp = t_3; elseif (y <= 2.6e+84) tmp = t_2; elseif (y <= 3e+89) tmp = t_3; elseif (y <= 1.05e+101) tmp = t_2; elseif (y <= 1.1e+101) tmp = t_1; elseif (y <= 2.8e+153) tmp = t_2; elseif (y <= 2.9e+153) tmp = t_3; elseif (y <= 7e+159) tmp = t_2; elseif (y <= 7.6e+160) tmp = t_3; elseif (y <= 2e+165) tmp = t_2; elseif (y <= 2.1e+165) tmp = t_3; elseif (y <= 9.5e+176) tmp = t_2; elseif (y <= 7.2e+178) tmp = t_3; elseif (y <= 8e+183) tmp = Float64(Float64(y / x) / Float64(1.0 / x)); elseif (y <= 2.6e+184) tmp = t_3; elseif (y <= 6e+191) tmp = t_2; elseif (y <= 6.2e+191) tmp = t_1; elseif (y <= 2e+205) tmp = t_2; elseif (y <= 1.16e+206) tmp = t_1; elseif ((y <= 1.1e+221) || (!(y <= 1.12e+221) && ((y <= 2.6e+238) || (!(y <= 2.7e+238) && ((y <= 2.4e+257) || (!(y <= 2.5e+257) && ((y <= 9e+259) || (!(y <= 2.9e+267) && (y <= 3.5e+304))))))))) tmp = t_2; else tmp = t_3; end return tmp end
function tmp_2 = code(x, y) t_0 = y + (-0.16666666666666666 * (y * (x ^ 2.0))); t_1 = (x * t_0) / x; t_2 = log(exp(y)); t_3 = y * (1.0 + (-0.16666666666666666 * (x ^ 2.0))); tmp = 0.0; if (y <= 0.001) tmp = y / (x / sin(x)); elseif (y <= 1.8e+43) tmp = t_2; elseif (y <= 7.8e+45) tmp = t_0; elseif (y <= 4.5e+70) tmp = t_2; elseif (y <= 4.6e+70) tmp = t_3; elseif (y <= 2.8e+79) tmp = t_2; elseif (y <= 2.9e+79) tmp = t_3; elseif (y <= 2.6e+84) tmp = t_2; elseif (y <= 3e+89) tmp = t_3; elseif (y <= 1.05e+101) tmp = t_2; elseif (y <= 1.1e+101) tmp = t_1; elseif (y <= 2.8e+153) tmp = t_2; elseif (y <= 2.9e+153) tmp = t_3; elseif (y <= 7e+159) tmp = t_2; elseif (y <= 7.6e+160) tmp = t_3; elseif (y <= 2e+165) tmp = t_2; elseif (y <= 2.1e+165) tmp = t_3; elseif (y <= 9.5e+176) tmp = t_2; elseif (y <= 7.2e+178) tmp = t_3; elseif (y <= 8e+183) tmp = (y / x) / (1.0 / x); elseif (y <= 2.6e+184) tmp = t_3; elseif (y <= 6e+191) tmp = t_2; elseif (y <= 6.2e+191) tmp = t_1; elseif (y <= 2e+205) tmp = t_2; elseif (y <= 1.16e+206) tmp = t_1; elseif ((y <= 1.1e+221) || (~((y <= 1.12e+221)) && ((y <= 2.6e+238) || (~((y <= 2.7e+238)) && ((y <= 2.4e+257) || (~((y <= 2.5e+257)) && ((y <= 9e+259) || (~((y <= 2.9e+267)) && (y <= 3.5e+304))))))))) tmp = t_2; else tmp = t_3; end tmp_2 = tmp; end
code[x_, y_] := Block[{t$95$0 = N[(y + N[(-0.16666666666666666 * N[(y * N[Power[x, 2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$1 = N[(N[(x * t$95$0), $MachinePrecision] / x), $MachinePrecision]}, Block[{t$95$2 = N[Log[N[Exp[y], $MachinePrecision]], $MachinePrecision]}, Block[{t$95$3 = N[(y * N[(1.0 + N[(-0.16666666666666666 * N[Power[x, 2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[y, 0.001], N[(y / N[(x / N[Sin[x], $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y, 1.8e+43], t$95$2, If[LessEqual[y, 7.8e+45], t$95$0, If[LessEqual[y, 4.5e+70], t$95$2, If[LessEqual[y, 4.6e+70], t$95$3, If[LessEqual[y, 2.8e+79], t$95$2, If[LessEqual[y, 2.9e+79], t$95$3, If[LessEqual[y, 2.6e+84], t$95$2, If[LessEqual[y, 3e+89], t$95$3, If[LessEqual[y, 1.05e+101], t$95$2, If[LessEqual[y, 1.1e+101], t$95$1, If[LessEqual[y, 2.8e+153], t$95$2, If[LessEqual[y, 2.9e+153], t$95$3, If[LessEqual[y, 7e+159], t$95$2, If[LessEqual[y, 7.6e+160], t$95$3, If[LessEqual[y, 2e+165], t$95$2, If[LessEqual[y, 2.1e+165], t$95$3, If[LessEqual[y, 9.5e+176], t$95$2, If[LessEqual[y, 7.2e+178], t$95$3, If[LessEqual[y, 8e+183], N[(N[(y / x), $MachinePrecision] / N[(1.0 / x), $MachinePrecision]), $MachinePrecision], If[LessEqual[y, 2.6e+184], t$95$3, If[LessEqual[y, 6e+191], t$95$2, If[LessEqual[y, 6.2e+191], t$95$1, If[LessEqual[y, 2e+205], t$95$2, If[LessEqual[y, 1.16e+206], t$95$1, If[Or[LessEqual[y, 1.1e+221], And[N[Not[LessEqual[y, 1.12e+221]], $MachinePrecision], Or[LessEqual[y, 2.6e+238], And[N[Not[LessEqual[y, 2.7e+238]], $MachinePrecision], Or[LessEqual[y, 2.4e+257], And[N[Not[LessEqual[y, 2.5e+257]], $MachinePrecision], Or[LessEqual[y, 9e+259], And[N[Not[LessEqual[y, 2.9e+267]], $MachinePrecision], LessEqual[y, 3.5e+304]]]]]]]]], t$95$2, t$95$3]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_0 := y + -0.16666666666666666 \cdot \left(y \cdot {x}^{2}\right)\\
t_1 := \frac{x \cdot t\_0}{x}\\
t_2 := \log \left(e^{y}\right)\\
t_3 := y \cdot \left(1 + -0.16666666666666666 \cdot {x}^{2}\right)\\
\mathbf{if}\;y \leq 0.001:\\
\;\;\;\;\frac{y}{\frac{x}{\sin x}}\\
\mathbf{elif}\;y \leq 1.8 \cdot 10^{+43}:\\
\;\;\;\;t\_2\\
\mathbf{elif}\;y \leq 7.8 \cdot 10^{+45}:\\
\;\;\;\;t\_0\\
\mathbf{elif}\;y \leq 4.5 \cdot 10^{+70}:\\
\;\;\;\;t\_2\\
\mathbf{elif}\;y \leq 4.6 \cdot 10^{+70}:\\
\;\;\;\;t\_3\\
\mathbf{elif}\;y \leq 2.8 \cdot 10^{+79}:\\
\;\;\;\;t\_2\\
\mathbf{elif}\;y \leq 2.9 \cdot 10^{+79}:\\
\;\;\;\;t\_3\\
\mathbf{elif}\;y \leq 2.6 \cdot 10^{+84}:\\
\;\;\;\;t\_2\\
\mathbf{elif}\;y \leq 3 \cdot 10^{+89}:\\
\;\;\;\;t\_3\\
\mathbf{elif}\;y \leq 1.05 \cdot 10^{+101}:\\
\;\;\;\;t\_2\\
\mathbf{elif}\;y \leq 1.1 \cdot 10^{+101}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;y \leq 2.8 \cdot 10^{+153}:\\
\;\;\;\;t\_2\\
\mathbf{elif}\;y \leq 2.9 \cdot 10^{+153}:\\
\;\;\;\;t\_3\\
\mathbf{elif}\;y \leq 7 \cdot 10^{+159}:\\
\;\;\;\;t\_2\\
\mathbf{elif}\;y \leq 7.6 \cdot 10^{+160}:\\
\;\;\;\;t\_3\\
\mathbf{elif}\;y \leq 2 \cdot 10^{+165}:\\
\;\;\;\;t\_2\\
\mathbf{elif}\;y \leq 2.1 \cdot 10^{+165}:\\
\;\;\;\;t\_3\\
\mathbf{elif}\;y \leq 9.5 \cdot 10^{+176}:\\
\;\;\;\;t\_2\\
\mathbf{elif}\;y \leq 7.2 \cdot 10^{+178}:\\
\;\;\;\;t\_3\\
\mathbf{elif}\;y \leq 8 \cdot 10^{+183}:\\
\;\;\;\;\frac{\frac{y}{x}}{\frac{1}{x}}\\
\mathbf{elif}\;y \leq 2.6 \cdot 10^{+184}:\\
\;\;\;\;t\_3\\
\mathbf{elif}\;y \leq 6 \cdot 10^{+191}:\\
\;\;\;\;t\_2\\
\mathbf{elif}\;y \leq 6.2 \cdot 10^{+191}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;y \leq 2 \cdot 10^{+205}:\\
\;\;\;\;t\_2\\
\mathbf{elif}\;y \leq 1.16 \cdot 10^{+206}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;y \leq 1.1 \cdot 10^{+221} \lor \neg \left(y \leq 1.12 \cdot 10^{+221}\right) \land \left(y \leq 2.6 \cdot 10^{+238} \lor \neg \left(y \leq 2.7 \cdot 10^{+238}\right) \land \left(y \leq 2.4 \cdot 10^{+257} \lor \neg \left(y \leq 2.5 \cdot 10^{+257}\right) \land \left(y \leq 9 \cdot 10^{+259} \lor \neg \left(y \leq 2.9 \cdot 10^{+267}\right) \land y \leq 3.5 \cdot 10^{+304}\right)\right)\right):\\
\;\;\;\;t\_2\\
\mathbf{else}:\\
\;\;\;\;t\_3\\
\end{array}
\end{array}
if y < 1e-3Initial program 82.2%
associate-/l*99.9%
Simplified99.9%
Taylor expanded in y around 0 54.9%
associate-/l*72.6%
Simplified72.6%
clear-num72.7%
un-div-inv72.7%
Applied egg-rr72.7%
if 1e-3 < y < 1.80000000000000005e43 or 7.7999999999999999e45 < y < 4.4999999999999999e70 or 4.59999999999999987e70 < y < 2.8000000000000001e79 or 2.89999999999999992e79 < y < 2.6000000000000001e84 or 3.00000000000000013e89 < y < 1.05e101 or 1.1e101 < y < 2.79999999999999985e153 or 2.90000000000000002e153 < y < 6.9999999999999999e159 or 7.60000000000000024e160 < y < 1.9999999999999998e165 or 2.1000000000000001e165 < y < 9.4999999999999995e176 or 2.59999999999999993e184 < y < 5.9999999999999995e191 or 6.19999999999999997e191 < y < 2.00000000000000003e205 or 1.1600000000000001e206 < y < 1.1e221 or 1.12e221 < y < 2.6e238 or 2.70000000000000022e238 < y < 2.4000000000000001e257 or 2.50000000000000014e257 < y < 8.9999999999999994e259 or 2.89999999999999983e267 < y < 3.4999999999999998e304Initial program 100.0%
associate-/l*98.3%
Simplified98.3%
Taylor expanded in y around 0 5.2%
associate-/l*5.2%
Simplified5.2%
associate-*r/5.2%
*-commutative5.2%
clear-num5.2%
*-commutative5.2%
associate-/r*31.2%
Applied egg-rr31.2%
Taylor expanded in x around 0 5.4%
remove-double-div5.4%
add-log-exp84.9%
Applied egg-rr84.9%
if 1.80000000000000005e43 < y < 7.7999999999999999e45Initial program 100.0%
associate-/l*100.0%
Simplified100.0%
Taylor expanded in y around 0 2.5%
associate-/l*2.5%
Simplified2.5%
Taylor expanded in x around 0 52.5%
if 4.4999999999999999e70 < y < 4.59999999999999987e70 or 2.8000000000000001e79 < y < 2.89999999999999992e79 or 2.6000000000000001e84 < y < 3.00000000000000013e89 or 2.79999999999999985e153 < y < 2.90000000000000002e153 or 6.9999999999999999e159 < y < 7.60000000000000024e160 or 1.9999999999999998e165 < y < 2.1000000000000001e165 or 9.4999999999999995e176 < y < 7.1999999999999995e178 or 7.99999999999999957e183 < y < 2.59999999999999993e184 or 1.1e221 < y < 1.12e221 or 2.6e238 < y < 2.70000000000000022e238 or 2.4000000000000001e257 < y < 2.50000000000000014e257 or 8.9999999999999994e259 < y < 2.89999999999999983e267 or 3.4999999999999998e304 < y Initial program 100.0%
associate-/l*100.0%
Simplified100.0%
Taylor expanded in y around 0 3.2%
associate-/l*3.2%
Simplified3.2%
Taylor expanded in x around 0 74.3%
*-commutative74.3%
Simplified74.3%
if 1.05e101 < y < 1.1e101 or 5.9999999999999995e191 < y < 6.19999999999999997e191 or 2.00000000000000003e205 < y < 1.1600000000000001e206Initial program 100.0%
Taylor expanded in y around 0 3.5%
Taylor expanded in x around 0 5.7%
if 7.1999999999999995e178 < y < 7.99999999999999957e183Initial program 100.0%
associate-/l*100.0%
Simplified100.0%
clear-num100.0%
associate-/r/100.0%
Applied egg-rr100.0%
Taylor expanded in y around 0 100.0%
*-commutative100.0%
associate-*l/100.0%
*-un-lft-identity100.0%
associate-/r/5.1%
div-inv5.1%
associate-/r*100.0%
Applied egg-rr100.0%
Taylor expanded in x around 0 100.0%
Final simplification75.1%
(FPCore (x y)
:precision binary64
(let* ((t_0 (* (/ 1.0 x) (* x y)))
(t_1 (* y (/ (sin x) x)))
(t_2 (/ (/ y x) (/ 1.0 x)))
(t_3 (/ (* x y) x)))
(if (<= y 1.5e+53)
t_1
(if (<= y 5e+124)
t_3
(if (<= y 4.4e+128)
t_0
(if (<= y 4.5e+128)
t_1
(if (<= y 3.5e+138)
t_3
(if (<= y 6.2e+139)
y
(if (<= y 1e+141)
t_3
(if (<= y 4.1e+145)
t_0
(if (<= y 2.8e+153)
t_2
(if (<= y 2.9e+153)
t_1
(if (<= y 3.6e+155)
t_2
(if (<= y 8.3e+157)
t_0
(if (<= y 7.6e+160)
t_1
(if (<= y 2e+165)
t_2
(if (<= y 2.1e+165)
t_1
(if (<= y 8.5e+177)
t_3
(if (<= y 9e+177)
t_1
(if (<= y 2.5e+184)
t_2
(if (<= y 2.6e+184)
t_1
(if (<= y 6e+191)
t_2
(if (<= y 6.2e+191)
t_1
(if (<= y 4.7e+194)
t_3
(if (<= y 6.4e+199)
t_2
(if (<= y 1.15e+200)
t_3
(if (<= y 2e+205)
t_2
(if (<= y 1.16e+206)
t_1
(if (<= y 1.1e+221)
t_3
(if (<= y 1.12e+221)
t_1
(if (<= y 4.6e+232)
t_2
(if (<=
y
2.1e+234)
y
(if (<=
y
3.7e+234)
t_1
(if (<=
y
2.25e+238)
t_3
(if (<=
y
2.7e+238)
t_1
(if (<=
y
5.4e+244)
t_3
(if (<=
y
3.2e+255)
t_2
(if (<=
y
2.4e+257)
t_3
(if (<=
y
2.5e+257)
t_1
(if (<=
y
8.6e+259)
t_3
(if (<=
y
2.9e+267)
t_1
(if (<=
y
1.6e+275)
t_2
(if (<=
y
2.8e+277)
t_3
(if (<=
y
6.2e+281)
t_2
(if (<=
y
9e+290)
t_3
(if (<=
y
7.4e+298)
t_2
(if (<=
y
3.1e+299)
t_3
(if (<=
y
3.5e+304)
t_2
t_1))))))))))))))))))))))))))))))))))))))))))))))))
double code(double x, double y) {
double t_0 = (1.0 / x) * (x * y);
double t_1 = y * (sin(x) / x);
double t_2 = (y / x) / (1.0 / x);
double t_3 = (x * y) / x;
double tmp;
if (y <= 1.5e+53) {
tmp = t_1;
} else if (y <= 5e+124) {
tmp = t_3;
} else if (y <= 4.4e+128) {
tmp = t_0;
} else if (y <= 4.5e+128) {
tmp = t_1;
} else if (y <= 3.5e+138) {
tmp = t_3;
} else if (y <= 6.2e+139) {
tmp = y;
} else if (y <= 1e+141) {
tmp = t_3;
} else if (y <= 4.1e+145) {
tmp = t_0;
} else if (y <= 2.8e+153) {
tmp = t_2;
} else if (y <= 2.9e+153) {
tmp = t_1;
} else if (y <= 3.6e+155) {
tmp = t_2;
} else if (y <= 8.3e+157) {
tmp = t_0;
} else if (y <= 7.6e+160) {
tmp = t_1;
} else if (y <= 2e+165) {
tmp = t_2;
} else if (y <= 2.1e+165) {
tmp = t_1;
} else if (y <= 8.5e+177) {
tmp = t_3;
} else if (y <= 9e+177) {
tmp = t_1;
} else if (y <= 2.5e+184) {
tmp = t_2;
} else if (y <= 2.6e+184) {
tmp = t_1;
} else if (y <= 6e+191) {
tmp = t_2;
} else if (y <= 6.2e+191) {
tmp = t_1;
} else if (y <= 4.7e+194) {
tmp = t_3;
} else if (y <= 6.4e+199) {
tmp = t_2;
} else if (y <= 1.15e+200) {
tmp = t_3;
} else if (y <= 2e+205) {
tmp = t_2;
} else if (y <= 1.16e+206) {
tmp = t_1;
} else if (y <= 1.1e+221) {
tmp = t_3;
} else if (y <= 1.12e+221) {
tmp = t_1;
} else if (y <= 4.6e+232) {
tmp = t_2;
} else if (y <= 2.1e+234) {
tmp = y;
} else if (y <= 3.7e+234) {
tmp = t_1;
} else if (y <= 2.25e+238) {
tmp = t_3;
} else if (y <= 2.7e+238) {
tmp = t_1;
} else if (y <= 5.4e+244) {
tmp = t_3;
} else if (y <= 3.2e+255) {
tmp = t_2;
} else if (y <= 2.4e+257) {
tmp = t_3;
} else if (y <= 2.5e+257) {
tmp = t_1;
} else if (y <= 8.6e+259) {
tmp = t_3;
} else if (y <= 2.9e+267) {
tmp = t_1;
} else if (y <= 1.6e+275) {
tmp = t_2;
} else if (y <= 2.8e+277) {
tmp = t_3;
} else if (y <= 6.2e+281) {
tmp = t_2;
} else if (y <= 9e+290) {
tmp = t_3;
} else if (y <= 7.4e+298) {
tmp = t_2;
} else if (y <= 3.1e+299) {
tmp = t_3;
} else if (y <= 3.5e+304) {
tmp = t_2;
} else {
tmp = t_1;
}
return tmp;
}
real(8) function code(x, y)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8) :: t_0
real(8) :: t_1
real(8) :: t_2
real(8) :: t_3
real(8) :: tmp
t_0 = (1.0d0 / x) * (x * y)
t_1 = y * (sin(x) / x)
t_2 = (y / x) / (1.0d0 / x)
t_3 = (x * y) / x
if (y <= 1.5d+53) then
tmp = t_1
else if (y <= 5d+124) then
tmp = t_3
else if (y <= 4.4d+128) then
tmp = t_0
else if (y <= 4.5d+128) then
tmp = t_1
else if (y <= 3.5d+138) then
tmp = t_3
else if (y <= 6.2d+139) then
tmp = y
else if (y <= 1d+141) then
tmp = t_3
else if (y <= 4.1d+145) then
tmp = t_0
else if (y <= 2.8d+153) then
tmp = t_2
else if (y <= 2.9d+153) then
tmp = t_1
else if (y <= 3.6d+155) then
tmp = t_2
else if (y <= 8.3d+157) then
tmp = t_0
else if (y <= 7.6d+160) then
tmp = t_1
else if (y <= 2d+165) then
tmp = t_2
else if (y <= 2.1d+165) then
tmp = t_1
else if (y <= 8.5d+177) then
tmp = t_3
else if (y <= 9d+177) then
tmp = t_1
else if (y <= 2.5d+184) then
tmp = t_2
else if (y <= 2.6d+184) then
tmp = t_1
else if (y <= 6d+191) then
tmp = t_2
else if (y <= 6.2d+191) then
tmp = t_1
else if (y <= 4.7d+194) then
tmp = t_3
else if (y <= 6.4d+199) then
tmp = t_2
else if (y <= 1.15d+200) then
tmp = t_3
else if (y <= 2d+205) then
tmp = t_2
else if (y <= 1.16d+206) then
tmp = t_1
else if (y <= 1.1d+221) then
tmp = t_3
else if (y <= 1.12d+221) then
tmp = t_1
else if (y <= 4.6d+232) then
tmp = t_2
else if (y <= 2.1d+234) then
tmp = y
else if (y <= 3.7d+234) then
tmp = t_1
else if (y <= 2.25d+238) then
tmp = t_3
else if (y <= 2.7d+238) then
tmp = t_1
else if (y <= 5.4d+244) then
tmp = t_3
else if (y <= 3.2d+255) then
tmp = t_2
else if (y <= 2.4d+257) then
tmp = t_3
else if (y <= 2.5d+257) then
tmp = t_1
else if (y <= 8.6d+259) then
tmp = t_3
else if (y <= 2.9d+267) then
tmp = t_1
else if (y <= 1.6d+275) then
tmp = t_2
else if (y <= 2.8d+277) then
tmp = t_3
else if (y <= 6.2d+281) then
tmp = t_2
else if (y <= 9d+290) then
tmp = t_3
else if (y <= 7.4d+298) then
tmp = t_2
else if (y <= 3.1d+299) then
tmp = t_3
else if (y <= 3.5d+304) then
tmp = t_2
else
tmp = t_1
end if
code = tmp
end function
public static double code(double x, double y) {
double t_0 = (1.0 / x) * (x * y);
double t_1 = y * (Math.sin(x) / x);
double t_2 = (y / x) / (1.0 / x);
double t_3 = (x * y) / x;
double tmp;
if (y <= 1.5e+53) {
tmp = t_1;
} else if (y <= 5e+124) {
tmp = t_3;
} else if (y <= 4.4e+128) {
tmp = t_0;
} else if (y <= 4.5e+128) {
tmp = t_1;
} else if (y <= 3.5e+138) {
tmp = t_3;
} else if (y <= 6.2e+139) {
tmp = y;
} else if (y <= 1e+141) {
tmp = t_3;
} else if (y <= 4.1e+145) {
tmp = t_0;
} else if (y <= 2.8e+153) {
tmp = t_2;
} else if (y <= 2.9e+153) {
tmp = t_1;
} else if (y <= 3.6e+155) {
tmp = t_2;
} else if (y <= 8.3e+157) {
tmp = t_0;
} else if (y <= 7.6e+160) {
tmp = t_1;
} else if (y <= 2e+165) {
tmp = t_2;
} else if (y <= 2.1e+165) {
tmp = t_1;
} else if (y <= 8.5e+177) {
tmp = t_3;
} else if (y <= 9e+177) {
tmp = t_1;
} else if (y <= 2.5e+184) {
tmp = t_2;
} else if (y <= 2.6e+184) {
tmp = t_1;
} else if (y <= 6e+191) {
tmp = t_2;
} else if (y <= 6.2e+191) {
tmp = t_1;
} else if (y <= 4.7e+194) {
tmp = t_3;
} else if (y <= 6.4e+199) {
tmp = t_2;
} else if (y <= 1.15e+200) {
tmp = t_3;
} else if (y <= 2e+205) {
tmp = t_2;
} else if (y <= 1.16e+206) {
tmp = t_1;
} else if (y <= 1.1e+221) {
tmp = t_3;
} else if (y <= 1.12e+221) {
tmp = t_1;
} else if (y <= 4.6e+232) {
tmp = t_2;
} else if (y <= 2.1e+234) {
tmp = y;
} else if (y <= 3.7e+234) {
tmp = t_1;
} else if (y <= 2.25e+238) {
tmp = t_3;
} else if (y <= 2.7e+238) {
tmp = t_1;
} else if (y <= 5.4e+244) {
tmp = t_3;
} else if (y <= 3.2e+255) {
tmp = t_2;
} else if (y <= 2.4e+257) {
tmp = t_3;
} else if (y <= 2.5e+257) {
tmp = t_1;
} else if (y <= 8.6e+259) {
tmp = t_3;
} else if (y <= 2.9e+267) {
tmp = t_1;
} else if (y <= 1.6e+275) {
tmp = t_2;
} else if (y <= 2.8e+277) {
tmp = t_3;
} else if (y <= 6.2e+281) {
tmp = t_2;
} else if (y <= 9e+290) {
tmp = t_3;
} else if (y <= 7.4e+298) {
tmp = t_2;
} else if (y <= 3.1e+299) {
tmp = t_3;
} else if (y <= 3.5e+304) {
tmp = t_2;
} else {
tmp = t_1;
}
return tmp;
}
def code(x, y): t_0 = (1.0 / x) * (x * y) t_1 = y * (math.sin(x) / x) t_2 = (y / x) / (1.0 / x) t_3 = (x * y) / x tmp = 0 if y <= 1.5e+53: tmp = t_1 elif y <= 5e+124: tmp = t_3 elif y <= 4.4e+128: tmp = t_0 elif y <= 4.5e+128: tmp = t_1 elif y <= 3.5e+138: tmp = t_3 elif y <= 6.2e+139: tmp = y elif y <= 1e+141: tmp = t_3 elif y <= 4.1e+145: tmp = t_0 elif y <= 2.8e+153: tmp = t_2 elif y <= 2.9e+153: tmp = t_1 elif y <= 3.6e+155: tmp = t_2 elif y <= 8.3e+157: tmp = t_0 elif y <= 7.6e+160: tmp = t_1 elif y <= 2e+165: tmp = t_2 elif y <= 2.1e+165: tmp = t_1 elif y <= 8.5e+177: tmp = t_3 elif y <= 9e+177: tmp = t_1 elif y <= 2.5e+184: tmp = t_2 elif y <= 2.6e+184: tmp = t_1 elif y <= 6e+191: tmp = t_2 elif y <= 6.2e+191: tmp = t_1 elif y <= 4.7e+194: tmp = t_3 elif y <= 6.4e+199: tmp = t_2 elif y <= 1.15e+200: tmp = t_3 elif y <= 2e+205: tmp = t_2 elif y <= 1.16e+206: tmp = t_1 elif y <= 1.1e+221: tmp = t_3 elif y <= 1.12e+221: tmp = t_1 elif y <= 4.6e+232: tmp = t_2 elif y <= 2.1e+234: tmp = y elif y <= 3.7e+234: tmp = t_1 elif y <= 2.25e+238: tmp = t_3 elif y <= 2.7e+238: tmp = t_1 elif y <= 5.4e+244: tmp = t_3 elif y <= 3.2e+255: tmp = t_2 elif y <= 2.4e+257: tmp = t_3 elif y <= 2.5e+257: tmp = t_1 elif y <= 8.6e+259: tmp = t_3 elif y <= 2.9e+267: tmp = t_1 elif y <= 1.6e+275: tmp = t_2 elif y <= 2.8e+277: tmp = t_3 elif y <= 6.2e+281: tmp = t_2 elif y <= 9e+290: tmp = t_3 elif y <= 7.4e+298: tmp = t_2 elif y <= 3.1e+299: tmp = t_3 elif y <= 3.5e+304: tmp = t_2 else: tmp = t_1 return tmp
function code(x, y) t_0 = Float64(Float64(1.0 / x) * Float64(x * y)) t_1 = Float64(y * Float64(sin(x) / x)) t_2 = Float64(Float64(y / x) / Float64(1.0 / x)) t_3 = Float64(Float64(x * y) / x) tmp = 0.0 if (y <= 1.5e+53) tmp = t_1; elseif (y <= 5e+124) tmp = t_3; elseif (y <= 4.4e+128) tmp = t_0; elseif (y <= 4.5e+128) tmp = t_1; elseif (y <= 3.5e+138) tmp = t_3; elseif (y <= 6.2e+139) tmp = y; elseif (y <= 1e+141) tmp = t_3; elseif (y <= 4.1e+145) tmp = t_0; elseif (y <= 2.8e+153) tmp = t_2; elseif (y <= 2.9e+153) tmp = t_1; elseif (y <= 3.6e+155) tmp = t_2; elseif (y <= 8.3e+157) tmp = t_0; elseif (y <= 7.6e+160) tmp = t_1; elseif (y <= 2e+165) tmp = t_2; elseif (y <= 2.1e+165) tmp = t_1; elseif (y <= 8.5e+177) tmp = t_3; elseif (y <= 9e+177) tmp = t_1; elseif (y <= 2.5e+184) tmp = t_2; elseif (y <= 2.6e+184) tmp = t_1; elseif (y <= 6e+191) tmp = t_2; elseif (y <= 6.2e+191) tmp = t_1; elseif (y <= 4.7e+194) tmp = t_3; elseif (y <= 6.4e+199) tmp = t_2; elseif (y <= 1.15e+200) tmp = t_3; elseif (y <= 2e+205) tmp = t_2; elseif (y <= 1.16e+206) tmp = t_1; elseif (y <= 1.1e+221) tmp = t_3; elseif (y <= 1.12e+221) tmp = t_1; elseif (y <= 4.6e+232) tmp = t_2; elseif (y <= 2.1e+234) tmp = y; elseif (y <= 3.7e+234) tmp = t_1; elseif (y <= 2.25e+238) tmp = t_3; elseif (y <= 2.7e+238) tmp = t_1; elseif (y <= 5.4e+244) tmp = t_3; elseif (y <= 3.2e+255) tmp = t_2; elseif (y <= 2.4e+257) tmp = t_3; elseif (y <= 2.5e+257) tmp = t_1; elseif (y <= 8.6e+259) tmp = t_3; elseif (y <= 2.9e+267) tmp = t_1; elseif (y <= 1.6e+275) tmp = t_2; elseif (y <= 2.8e+277) tmp = t_3; elseif (y <= 6.2e+281) tmp = t_2; elseif (y <= 9e+290) tmp = t_3; elseif (y <= 7.4e+298) tmp = t_2; elseif (y <= 3.1e+299) tmp = t_3; elseif (y <= 3.5e+304) tmp = t_2; else tmp = t_1; end return tmp end
function tmp_2 = code(x, y) t_0 = (1.0 / x) * (x * y); t_1 = y * (sin(x) / x); t_2 = (y / x) / (1.0 / x); t_3 = (x * y) / x; tmp = 0.0; if (y <= 1.5e+53) tmp = t_1; elseif (y <= 5e+124) tmp = t_3; elseif (y <= 4.4e+128) tmp = t_0; elseif (y <= 4.5e+128) tmp = t_1; elseif (y <= 3.5e+138) tmp = t_3; elseif (y <= 6.2e+139) tmp = y; elseif (y <= 1e+141) tmp = t_3; elseif (y <= 4.1e+145) tmp = t_0; elseif (y <= 2.8e+153) tmp = t_2; elseif (y <= 2.9e+153) tmp = t_1; elseif (y <= 3.6e+155) tmp = t_2; elseif (y <= 8.3e+157) tmp = t_0; elseif (y <= 7.6e+160) tmp = t_1; elseif (y <= 2e+165) tmp = t_2; elseif (y <= 2.1e+165) tmp = t_1; elseif (y <= 8.5e+177) tmp = t_3; elseif (y <= 9e+177) tmp = t_1; elseif (y <= 2.5e+184) tmp = t_2; elseif (y <= 2.6e+184) tmp = t_1; elseif (y <= 6e+191) tmp = t_2; elseif (y <= 6.2e+191) tmp = t_1; elseif (y <= 4.7e+194) tmp = t_3; elseif (y <= 6.4e+199) tmp = t_2; elseif (y <= 1.15e+200) tmp = t_3; elseif (y <= 2e+205) tmp = t_2; elseif (y <= 1.16e+206) tmp = t_1; elseif (y <= 1.1e+221) tmp = t_3; elseif (y <= 1.12e+221) tmp = t_1; elseif (y <= 4.6e+232) tmp = t_2; elseif (y <= 2.1e+234) tmp = y; elseif (y <= 3.7e+234) tmp = t_1; elseif (y <= 2.25e+238) tmp = t_3; elseif (y <= 2.7e+238) tmp = t_1; elseif (y <= 5.4e+244) tmp = t_3; elseif (y <= 3.2e+255) tmp = t_2; elseif (y <= 2.4e+257) tmp = t_3; elseif (y <= 2.5e+257) tmp = t_1; elseif (y <= 8.6e+259) tmp = t_3; elseif (y <= 2.9e+267) tmp = t_1; elseif (y <= 1.6e+275) tmp = t_2; elseif (y <= 2.8e+277) tmp = t_3; elseif (y <= 6.2e+281) tmp = t_2; elseif (y <= 9e+290) tmp = t_3; elseif (y <= 7.4e+298) tmp = t_2; elseif (y <= 3.1e+299) tmp = t_3; elseif (y <= 3.5e+304) tmp = t_2; else tmp = t_1; end tmp_2 = tmp; end
code[x_, y_] := Block[{t$95$0 = N[(N[(1.0 / x), $MachinePrecision] * N[(x * y), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$1 = N[(y * N[(N[Sin[x], $MachinePrecision] / x), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$2 = N[(N[(y / x), $MachinePrecision] / N[(1.0 / x), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$3 = N[(N[(x * y), $MachinePrecision] / x), $MachinePrecision]}, If[LessEqual[y, 1.5e+53], t$95$1, If[LessEqual[y, 5e+124], t$95$3, If[LessEqual[y, 4.4e+128], t$95$0, If[LessEqual[y, 4.5e+128], t$95$1, If[LessEqual[y, 3.5e+138], t$95$3, If[LessEqual[y, 6.2e+139], y, If[LessEqual[y, 1e+141], t$95$3, If[LessEqual[y, 4.1e+145], t$95$0, If[LessEqual[y, 2.8e+153], t$95$2, If[LessEqual[y, 2.9e+153], t$95$1, If[LessEqual[y, 3.6e+155], t$95$2, If[LessEqual[y, 8.3e+157], t$95$0, If[LessEqual[y, 7.6e+160], t$95$1, If[LessEqual[y, 2e+165], t$95$2, If[LessEqual[y, 2.1e+165], t$95$1, If[LessEqual[y, 8.5e+177], t$95$3, If[LessEqual[y, 9e+177], t$95$1, If[LessEqual[y, 2.5e+184], t$95$2, If[LessEqual[y, 2.6e+184], t$95$1, If[LessEqual[y, 6e+191], t$95$2, If[LessEqual[y, 6.2e+191], t$95$1, If[LessEqual[y, 4.7e+194], t$95$3, If[LessEqual[y, 6.4e+199], t$95$2, If[LessEqual[y, 1.15e+200], t$95$3, If[LessEqual[y, 2e+205], t$95$2, If[LessEqual[y, 1.16e+206], t$95$1, If[LessEqual[y, 1.1e+221], t$95$3, If[LessEqual[y, 1.12e+221], t$95$1, If[LessEqual[y, 4.6e+232], t$95$2, If[LessEqual[y, 2.1e+234], y, If[LessEqual[y, 3.7e+234], t$95$1, If[LessEqual[y, 2.25e+238], t$95$3, If[LessEqual[y, 2.7e+238], t$95$1, If[LessEqual[y, 5.4e+244], t$95$3, If[LessEqual[y, 3.2e+255], t$95$2, If[LessEqual[y, 2.4e+257], t$95$3, If[LessEqual[y, 2.5e+257], t$95$1, If[LessEqual[y, 8.6e+259], t$95$3, If[LessEqual[y, 2.9e+267], t$95$1, If[LessEqual[y, 1.6e+275], t$95$2, If[LessEqual[y, 2.8e+277], t$95$3, If[LessEqual[y, 6.2e+281], t$95$2, If[LessEqual[y, 9e+290], t$95$3, If[LessEqual[y, 7.4e+298], t$95$2, If[LessEqual[y, 3.1e+299], t$95$3, If[LessEqual[y, 3.5e+304], t$95$2, t$95$1]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_0 := \frac{1}{x} \cdot \left(x \cdot y\right)\\
t_1 := y \cdot \frac{\sin x}{x}\\
t_2 := \frac{\frac{y}{x}}{\frac{1}{x}}\\
t_3 := \frac{x \cdot y}{x}\\
\mathbf{if}\;y \leq 1.5 \cdot 10^{+53}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;y \leq 5 \cdot 10^{+124}:\\
\;\;\;\;t\_3\\
\mathbf{elif}\;y \leq 4.4 \cdot 10^{+128}:\\
\;\;\;\;t\_0\\
\mathbf{elif}\;y \leq 4.5 \cdot 10^{+128}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;y \leq 3.5 \cdot 10^{+138}:\\
\;\;\;\;t\_3\\
\mathbf{elif}\;y \leq 6.2 \cdot 10^{+139}:\\
\;\;\;\;y\\
\mathbf{elif}\;y \leq 10^{+141}:\\
\;\;\;\;t\_3\\
\mathbf{elif}\;y \leq 4.1 \cdot 10^{+145}:\\
\;\;\;\;t\_0\\
\mathbf{elif}\;y \leq 2.8 \cdot 10^{+153}:\\
\;\;\;\;t\_2\\
\mathbf{elif}\;y \leq 2.9 \cdot 10^{+153}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;y \leq 3.6 \cdot 10^{+155}:\\
\;\;\;\;t\_2\\
\mathbf{elif}\;y \leq 8.3 \cdot 10^{+157}:\\
\;\;\;\;t\_0\\
\mathbf{elif}\;y \leq 7.6 \cdot 10^{+160}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;y \leq 2 \cdot 10^{+165}:\\
\;\;\;\;t\_2\\
\mathbf{elif}\;y \leq 2.1 \cdot 10^{+165}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;y \leq 8.5 \cdot 10^{+177}:\\
\;\;\;\;t\_3\\
\mathbf{elif}\;y \leq 9 \cdot 10^{+177}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;y \leq 2.5 \cdot 10^{+184}:\\
\;\;\;\;t\_2\\
\mathbf{elif}\;y \leq 2.6 \cdot 10^{+184}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;y \leq 6 \cdot 10^{+191}:\\
\;\;\;\;t\_2\\
\mathbf{elif}\;y \leq 6.2 \cdot 10^{+191}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;y \leq 4.7 \cdot 10^{+194}:\\
\;\;\;\;t\_3\\
\mathbf{elif}\;y \leq 6.4 \cdot 10^{+199}:\\
\;\;\;\;t\_2\\
\mathbf{elif}\;y \leq 1.15 \cdot 10^{+200}:\\
\;\;\;\;t\_3\\
\mathbf{elif}\;y \leq 2 \cdot 10^{+205}:\\
\;\;\;\;t\_2\\
\mathbf{elif}\;y \leq 1.16 \cdot 10^{+206}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;y \leq 1.1 \cdot 10^{+221}:\\
\;\;\;\;t\_3\\
\mathbf{elif}\;y \leq 1.12 \cdot 10^{+221}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;y \leq 4.6 \cdot 10^{+232}:\\
\;\;\;\;t\_2\\
\mathbf{elif}\;y \leq 2.1 \cdot 10^{+234}:\\
\;\;\;\;y\\
\mathbf{elif}\;y \leq 3.7 \cdot 10^{+234}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;y \leq 2.25 \cdot 10^{+238}:\\
\;\;\;\;t\_3\\
\mathbf{elif}\;y \leq 2.7 \cdot 10^{+238}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;y \leq 5.4 \cdot 10^{+244}:\\
\;\;\;\;t\_3\\
\mathbf{elif}\;y \leq 3.2 \cdot 10^{+255}:\\
\;\;\;\;t\_2\\
\mathbf{elif}\;y \leq 2.4 \cdot 10^{+257}:\\
\;\;\;\;t\_3\\
\mathbf{elif}\;y \leq 2.5 \cdot 10^{+257}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;y \leq 8.6 \cdot 10^{+259}:\\
\;\;\;\;t\_3\\
\mathbf{elif}\;y \leq 2.9 \cdot 10^{+267}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;y \leq 1.6 \cdot 10^{+275}:\\
\;\;\;\;t\_2\\
\mathbf{elif}\;y \leq 2.8 \cdot 10^{+277}:\\
\;\;\;\;t\_3\\
\mathbf{elif}\;y \leq 6.2 \cdot 10^{+281}:\\
\;\;\;\;t\_2\\
\mathbf{elif}\;y \leq 9 \cdot 10^{+290}:\\
\;\;\;\;t\_3\\
\mathbf{elif}\;y \leq 7.4 \cdot 10^{+298}:\\
\;\;\;\;t\_2\\
\mathbf{elif}\;y \leq 3.1 \cdot 10^{+299}:\\
\;\;\;\;t\_3\\
\mathbf{elif}\;y \leq 3.5 \cdot 10^{+304}:\\
\;\;\;\;t\_2\\
\mathbf{else}:\\
\;\;\;\;t\_1\\
\end{array}
\end{array}
if y < 1.49999999999999999e53 or 4.40000000000000033e128 < y < 4.5000000000000001e128 or 2.79999999999999985e153 < y < 2.90000000000000002e153 or 8.30000000000000055e157 < y < 7.60000000000000024e160 or 1.9999999999999998e165 < y < 2.1000000000000001e165 or 8.5000000000000006e177 < y < 8.9999999999999994e177 or 2.4999999999999999e184 < y < 2.59999999999999993e184 or 5.9999999999999995e191 < y < 6.19999999999999997e191 or 2.00000000000000003e205 < y < 1.1600000000000001e206 or 1.1e221 < y < 1.12e221 or 2.1e234 < y < 3.69999999999999966e234 or 2.25e238 < y < 2.70000000000000022e238 or 2.4000000000000001e257 < y < 2.50000000000000014e257 or 8.5999999999999999e259 < y < 2.89999999999999983e267 or 3.4999999999999998e304 < y Initial program 84.5%
associate-/l*99.4%
Simplified99.4%
Taylor expanded in y around 0 48.4%
associate-/l*63.9%
Simplified63.9%
if 1.49999999999999999e53 < y < 4.9999999999999996e124 or 4.5000000000000001e128 < y < 3.4999999999999998e138 or 6.2e139 < y < 1.00000000000000002e141 or 2.1000000000000001e165 < y < 8.5000000000000006e177 or 6.19999999999999997e191 < y < 4.69999999999999972e194 or 6.40000000000000011e199 < y < 1.15000000000000002e200 or 1.1600000000000001e206 < y < 1.1e221 or 3.69999999999999966e234 < y < 2.25e238 or 2.70000000000000022e238 < y < 5.39999999999999995e244 or 3.1999999999999998e255 < y < 2.4000000000000001e257 or 2.50000000000000014e257 < y < 8.5999999999999999e259 or 1.59999999999999987e275 < y < 2.79999999999999985e277 or 6.1999999999999996e281 < y < 8.9999999999999993e290 or 7.39999999999999961e298 < y < 3.1e299Initial program 100.0%
Taylor expanded in y around 0 3.6%
Taylor expanded in x around 0 33.2%
*-commutative33.2%
Simplified33.2%
if 4.9999999999999996e124 < y < 4.40000000000000033e128 or 1.00000000000000002e141 < y < 4.1000000000000001e145 or 3.60000000000000007e155 < y < 8.30000000000000055e157Initial program 100.0%
Taylor expanded in y around 0 4.7%
clear-num4.7%
associate-/r/4.7%
Applied egg-rr4.7%
Taylor expanded in x around 0 4.7%
*-commutative4.7%
Simplified4.7%
if 3.4999999999999998e138 < y < 6.2e139 or 4.60000000000000012e232 < y < 2.1e234Initial program 100.0%
associate-/l*100.0%
Simplified100.0%
Taylor expanded in y around 0 5.4%
associate-/l*5.4%
Simplified5.4%
Taylor expanded in x around 0 5.4%
if 4.1000000000000001e145 < y < 2.79999999999999985e153 or 2.90000000000000002e153 < y < 3.60000000000000007e155 or 7.60000000000000024e160 < y < 1.9999999999999998e165 or 8.9999999999999994e177 < y < 2.4999999999999999e184 or 2.59999999999999993e184 < y < 5.9999999999999995e191 or 4.69999999999999972e194 < y < 6.40000000000000011e199 or 1.15000000000000002e200 < y < 2.00000000000000003e205 or 1.12e221 < y < 4.60000000000000012e232 or 5.39999999999999995e244 < y < 3.1999999999999998e255 or 2.89999999999999983e267 < y < 1.59999999999999987e275 or 2.79999999999999985e277 < y < 6.1999999999999996e281 or 8.9999999999999993e290 < y < 7.39999999999999961e298 or 3.1e299 < y < 3.4999999999999998e304Initial program 100.0%
associate-/l*100.0%
Simplified100.0%
clear-num100.0%
associate-/r/100.0%
Applied egg-rr100.0%
Taylor expanded in y around 0 94.0%
*-commutative94.0%
associate-*l/94.0%
*-un-lft-identity94.0%
associate-/r/7.1%
div-inv7.1%
associate-/r*94.0%
Applied egg-rr94.0%
Taylor expanded in x around 0 94.1%
Final simplification62.0%
(FPCore (x y)
:precision binary64
(let* ((t_0 (/ (* x y) x)) (t_1 (* (/ 1.0 x) (* x y))))
(if (<= y 1.25e-12)
y
(if (<= y 5e+126)
t_1
(if (<= y 5.6e+139)
t_0
(if (<= y 5.8e+139)
y
(if (<= y 1e+141)
t_0
(if (<= y 2e+141)
t_1
(if (<= y 6e+148)
t_0
(if (<= y 5e+153)
y
(if (<= y 5e+154)
t_0
(if (<= y 2e+157)
t_1
(if (<= y 2.3e+160)
t_0
(if (<= y 1.1e+164)
y
(if (<= y 2e+165)
t_1
(if (<= y 2.8e+165)
y
(if (<= y 8e+177)
t_0
(if (<= y 2.6e+184)
y
(if (<= y 8e+191)
t_1
(if (<= y 4.6e+203)
t_0
(if (<= y 2.7e+205)
y
(if (<= y 1.1e+221)
t_0
(if (<= y 1.12e+221)
y
(if (<= y 4.6e+232)
t_0
(if (<= y 4.7e+232)
y
(if (<= y 3e+245)
t_1
(if (<= y 2.4e+257)
t_0
(if (<= y 2.5e+257)
y
(if (<= y 9e+259)
t_0
(if (<= y 2.9e+267)
y
(if (<= y 7.4e+270)
t_0
(if (<=
y
4.5e+274)
y
(if (<=
y
5e+280)
t_1
(if (<=
y
1.65e+302)
t_0
y))))))))))))))))))))))))))))))))))
double code(double x, double y) {
double t_0 = (x * y) / x;
double t_1 = (1.0 / x) * (x * y);
double tmp;
if (y <= 1.25e-12) {
tmp = y;
} else if (y <= 5e+126) {
tmp = t_1;
} else if (y <= 5.6e+139) {
tmp = t_0;
} else if (y <= 5.8e+139) {
tmp = y;
} else if (y <= 1e+141) {
tmp = t_0;
} else if (y <= 2e+141) {
tmp = t_1;
} else if (y <= 6e+148) {
tmp = t_0;
} else if (y <= 5e+153) {
tmp = y;
} else if (y <= 5e+154) {
tmp = t_0;
} else if (y <= 2e+157) {
tmp = t_1;
} else if (y <= 2.3e+160) {
tmp = t_0;
} else if (y <= 1.1e+164) {
tmp = y;
} else if (y <= 2e+165) {
tmp = t_1;
} else if (y <= 2.8e+165) {
tmp = y;
} else if (y <= 8e+177) {
tmp = t_0;
} else if (y <= 2.6e+184) {
tmp = y;
} else if (y <= 8e+191) {
tmp = t_1;
} else if (y <= 4.6e+203) {
tmp = t_0;
} else if (y <= 2.7e+205) {
tmp = y;
} else if (y <= 1.1e+221) {
tmp = t_0;
} else if (y <= 1.12e+221) {
tmp = y;
} else if (y <= 4.6e+232) {
tmp = t_0;
} else if (y <= 4.7e+232) {
tmp = y;
} else if (y <= 3e+245) {
tmp = t_1;
} else if (y <= 2.4e+257) {
tmp = t_0;
} else if (y <= 2.5e+257) {
tmp = y;
} else if (y <= 9e+259) {
tmp = t_0;
} else if (y <= 2.9e+267) {
tmp = y;
} else if (y <= 7.4e+270) {
tmp = t_0;
} else if (y <= 4.5e+274) {
tmp = y;
} else if (y <= 5e+280) {
tmp = t_1;
} else if (y <= 1.65e+302) {
tmp = t_0;
} else {
tmp = y;
}
return tmp;
}
real(8) function code(x, y)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8) :: t_0
real(8) :: t_1
real(8) :: tmp
t_0 = (x * y) / x
t_1 = (1.0d0 / x) * (x * y)
if (y <= 1.25d-12) then
tmp = y
else if (y <= 5d+126) then
tmp = t_1
else if (y <= 5.6d+139) then
tmp = t_0
else if (y <= 5.8d+139) then
tmp = y
else if (y <= 1d+141) then
tmp = t_0
else if (y <= 2d+141) then
tmp = t_1
else if (y <= 6d+148) then
tmp = t_0
else if (y <= 5d+153) then
tmp = y
else if (y <= 5d+154) then
tmp = t_0
else if (y <= 2d+157) then
tmp = t_1
else if (y <= 2.3d+160) then
tmp = t_0
else if (y <= 1.1d+164) then
tmp = y
else if (y <= 2d+165) then
tmp = t_1
else if (y <= 2.8d+165) then
tmp = y
else if (y <= 8d+177) then
tmp = t_0
else if (y <= 2.6d+184) then
tmp = y
else if (y <= 8d+191) then
tmp = t_1
else if (y <= 4.6d+203) then
tmp = t_0
else if (y <= 2.7d+205) then
tmp = y
else if (y <= 1.1d+221) then
tmp = t_0
else if (y <= 1.12d+221) then
tmp = y
else if (y <= 4.6d+232) then
tmp = t_0
else if (y <= 4.7d+232) then
tmp = y
else if (y <= 3d+245) then
tmp = t_1
else if (y <= 2.4d+257) then
tmp = t_0
else if (y <= 2.5d+257) then
tmp = y
else if (y <= 9d+259) then
tmp = t_0
else if (y <= 2.9d+267) then
tmp = y
else if (y <= 7.4d+270) then
tmp = t_0
else if (y <= 4.5d+274) then
tmp = y
else if (y <= 5d+280) then
tmp = t_1
else if (y <= 1.65d+302) then
tmp = t_0
else
tmp = y
end if
code = tmp
end function
public static double code(double x, double y) {
double t_0 = (x * y) / x;
double t_1 = (1.0 / x) * (x * y);
double tmp;
if (y <= 1.25e-12) {
tmp = y;
} else if (y <= 5e+126) {
tmp = t_1;
} else if (y <= 5.6e+139) {
tmp = t_0;
} else if (y <= 5.8e+139) {
tmp = y;
} else if (y <= 1e+141) {
tmp = t_0;
} else if (y <= 2e+141) {
tmp = t_1;
} else if (y <= 6e+148) {
tmp = t_0;
} else if (y <= 5e+153) {
tmp = y;
} else if (y <= 5e+154) {
tmp = t_0;
} else if (y <= 2e+157) {
tmp = t_1;
} else if (y <= 2.3e+160) {
tmp = t_0;
} else if (y <= 1.1e+164) {
tmp = y;
} else if (y <= 2e+165) {
tmp = t_1;
} else if (y <= 2.8e+165) {
tmp = y;
} else if (y <= 8e+177) {
tmp = t_0;
} else if (y <= 2.6e+184) {
tmp = y;
} else if (y <= 8e+191) {
tmp = t_1;
} else if (y <= 4.6e+203) {
tmp = t_0;
} else if (y <= 2.7e+205) {
tmp = y;
} else if (y <= 1.1e+221) {
tmp = t_0;
} else if (y <= 1.12e+221) {
tmp = y;
} else if (y <= 4.6e+232) {
tmp = t_0;
} else if (y <= 4.7e+232) {
tmp = y;
} else if (y <= 3e+245) {
tmp = t_1;
} else if (y <= 2.4e+257) {
tmp = t_0;
} else if (y <= 2.5e+257) {
tmp = y;
} else if (y <= 9e+259) {
tmp = t_0;
} else if (y <= 2.9e+267) {
tmp = y;
} else if (y <= 7.4e+270) {
tmp = t_0;
} else if (y <= 4.5e+274) {
tmp = y;
} else if (y <= 5e+280) {
tmp = t_1;
} else if (y <= 1.65e+302) {
tmp = t_0;
} else {
tmp = y;
}
return tmp;
}
def code(x, y): t_0 = (x * y) / x t_1 = (1.0 / x) * (x * y) tmp = 0 if y <= 1.25e-12: tmp = y elif y <= 5e+126: tmp = t_1 elif y <= 5.6e+139: tmp = t_0 elif y <= 5.8e+139: tmp = y elif y <= 1e+141: tmp = t_0 elif y <= 2e+141: tmp = t_1 elif y <= 6e+148: tmp = t_0 elif y <= 5e+153: tmp = y elif y <= 5e+154: tmp = t_0 elif y <= 2e+157: tmp = t_1 elif y <= 2.3e+160: tmp = t_0 elif y <= 1.1e+164: tmp = y elif y <= 2e+165: tmp = t_1 elif y <= 2.8e+165: tmp = y elif y <= 8e+177: tmp = t_0 elif y <= 2.6e+184: tmp = y elif y <= 8e+191: tmp = t_1 elif y <= 4.6e+203: tmp = t_0 elif y <= 2.7e+205: tmp = y elif y <= 1.1e+221: tmp = t_0 elif y <= 1.12e+221: tmp = y elif y <= 4.6e+232: tmp = t_0 elif y <= 4.7e+232: tmp = y elif y <= 3e+245: tmp = t_1 elif y <= 2.4e+257: tmp = t_0 elif y <= 2.5e+257: tmp = y elif y <= 9e+259: tmp = t_0 elif y <= 2.9e+267: tmp = y elif y <= 7.4e+270: tmp = t_0 elif y <= 4.5e+274: tmp = y elif y <= 5e+280: tmp = t_1 elif y <= 1.65e+302: tmp = t_0 else: tmp = y return tmp
function code(x, y) t_0 = Float64(Float64(x * y) / x) t_1 = Float64(Float64(1.0 / x) * Float64(x * y)) tmp = 0.0 if (y <= 1.25e-12) tmp = y; elseif (y <= 5e+126) tmp = t_1; elseif (y <= 5.6e+139) tmp = t_0; elseif (y <= 5.8e+139) tmp = y; elseif (y <= 1e+141) tmp = t_0; elseif (y <= 2e+141) tmp = t_1; elseif (y <= 6e+148) tmp = t_0; elseif (y <= 5e+153) tmp = y; elseif (y <= 5e+154) tmp = t_0; elseif (y <= 2e+157) tmp = t_1; elseif (y <= 2.3e+160) tmp = t_0; elseif (y <= 1.1e+164) tmp = y; elseif (y <= 2e+165) tmp = t_1; elseif (y <= 2.8e+165) tmp = y; elseif (y <= 8e+177) tmp = t_0; elseif (y <= 2.6e+184) tmp = y; elseif (y <= 8e+191) tmp = t_1; elseif (y <= 4.6e+203) tmp = t_0; elseif (y <= 2.7e+205) tmp = y; elseif (y <= 1.1e+221) tmp = t_0; elseif (y <= 1.12e+221) tmp = y; elseif (y <= 4.6e+232) tmp = t_0; elseif (y <= 4.7e+232) tmp = y; elseif (y <= 3e+245) tmp = t_1; elseif (y <= 2.4e+257) tmp = t_0; elseif (y <= 2.5e+257) tmp = y; elseif (y <= 9e+259) tmp = t_0; elseif (y <= 2.9e+267) tmp = y; elseif (y <= 7.4e+270) tmp = t_0; elseif (y <= 4.5e+274) tmp = y; elseif (y <= 5e+280) tmp = t_1; elseif (y <= 1.65e+302) tmp = t_0; else tmp = y; end return tmp end
function tmp_2 = code(x, y) t_0 = (x * y) / x; t_1 = (1.0 / x) * (x * y); tmp = 0.0; if (y <= 1.25e-12) tmp = y; elseif (y <= 5e+126) tmp = t_1; elseif (y <= 5.6e+139) tmp = t_0; elseif (y <= 5.8e+139) tmp = y; elseif (y <= 1e+141) tmp = t_0; elseif (y <= 2e+141) tmp = t_1; elseif (y <= 6e+148) tmp = t_0; elseif (y <= 5e+153) tmp = y; elseif (y <= 5e+154) tmp = t_0; elseif (y <= 2e+157) tmp = t_1; elseif (y <= 2.3e+160) tmp = t_0; elseif (y <= 1.1e+164) tmp = y; elseif (y <= 2e+165) tmp = t_1; elseif (y <= 2.8e+165) tmp = y; elseif (y <= 8e+177) tmp = t_0; elseif (y <= 2.6e+184) tmp = y; elseif (y <= 8e+191) tmp = t_1; elseif (y <= 4.6e+203) tmp = t_0; elseif (y <= 2.7e+205) tmp = y; elseif (y <= 1.1e+221) tmp = t_0; elseif (y <= 1.12e+221) tmp = y; elseif (y <= 4.6e+232) tmp = t_0; elseif (y <= 4.7e+232) tmp = y; elseif (y <= 3e+245) tmp = t_1; elseif (y <= 2.4e+257) tmp = t_0; elseif (y <= 2.5e+257) tmp = y; elseif (y <= 9e+259) tmp = t_0; elseif (y <= 2.9e+267) tmp = y; elseif (y <= 7.4e+270) tmp = t_0; elseif (y <= 4.5e+274) tmp = y; elseif (y <= 5e+280) tmp = t_1; elseif (y <= 1.65e+302) tmp = t_0; else tmp = y; end tmp_2 = tmp; end
code[x_, y_] := Block[{t$95$0 = N[(N[(x * y), $MachinePrecision] / x), $MachinePrecision]}, Block[{t$95$1 = N[(N[(1.0 / x), $MachinePrecision] * N[(x * y), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[y, 1.25e-12], y, If[LessEqual[y, 5e+126], t$95$1, If[LessEqual[y, 5.6e+139], t$95$0, If[LessEqual[y, 5.8e+139], y, If[LessEqual[y, 1e+141], t$95$0, If[LessEqual[y, 2e+141], t$95$1, If[LessEqual[y, 6e+148], t$95$0, If[LessEqual[y, 5e+153], y, If[LessEqual[y, 5e+154], t$95$0, If[LessEqual[y, 2e+157], t$95$1, If[LessEqual[y, 2.3e+160], t$95$0, If[LessEqual[y, 1.1e+164], y, If[LessEqual[y, 2e+165], t$95$1, If[LessEqual[y, 2.8e+165], y, If[LessEqual[y, 8e+177], t$95$0, If[LessEqual[y, 2.6e+184], y, If[LessEqual[y, 8e+191], t$95$1, If[LessEqual[y, 4.6e+203], t$95$0, If[LessEqual[y, 2.7e+205], y, If[LessEqual[y, 1.1e+221], t$95$0, If[LessEqual[y, 1.12e+221], y, If[LessEqual[y, 4.6e+232], t$95$0, If[LessEqual[y, 4.7e+232], y, If[LessEqual[y, 3e+245], t$95$1, If[LessEqual[y, 2.4e+257], t$95$0, If[LessEqual[y, 2.5e+257], y, If[LessEqual[y, 9e+259], t$95$0, If[LessEqual[y, 2.9e+267], y, If[LessEqual[y, 7.4e+270], t$95$0, If[LessEqual[y, 4.5e+274], y, If[LessEqual[y, 5e+280], t$95$1, If[LessEqual[y, 1.65e+302], t$95$0, y]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_0 := \frac{x \cdot y}{x}\\
t_1 := \frac{1}{x} \cdot \left(x \cdot y\right)\\
\mathbf{if}\;y \leq 1.25 \cdot 10^{-12}:\\
\;\;\;\;y\\
\mathbf{elif}\;y \leq 5 \cdot 10^{+126}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;y \leq 5.6 \cdot 10^{+139}:\\
\;\;\;\;t\_0\\
\mathbf{elif}\;y \leq 5.8 \cdot 10^{+139}:\\
\;\;\;\;y\\
\mathbf{elif}\;y \leq 10^{+141}:\\
\;\;\;\;t\_0\\
\mathbf{elif}\;y \leq 2 \cdot 10^{+141}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;y \leq 6 \cdot 10^{+148}:\\
\;\;\;\;t\_0\\
\mathbf{elif}\;y \leq 5 \cdot 10^{+153}:\\
\;\;\;\;y\\
\mathbf{elif}\;y \leq 5 \cdot 10^{+154}:\\
\;\;\;\;t\_0\\
\mathbf{elif}\;y \leq 2 \cdot 10^{+157}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;y \leq 2.3 \cdot 10^{+160}:\\
\;\;\;\;t\_0\\
\mathbf{elif}\;y \leq 1.1 \cdot 10^{+164}:\\
\;\;\;\;y\\
\mathbf{elif}\;y \leq 2 \cdot 10^{+165}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;y \leq 2.8 \cdot 10^{+165}:\\
\;\;\;\;y\\
\mathbf{elif}\;y \leq 8 \cdot 10^{+177}:\\
\;\;\;\;t\_0\\
\mathbf{elif}\;y \leq 2.6 \cdot 10^{+184}:\\
\;\;\;\;y\\
\mathbf{elif}\;y \leq 8 \cdot 10^{+191}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;y \leq 4.6 \cdot 10^{+203}:\\
\;\;\;\;t\_0\\
\mathbf{elif}\;y \leq 2.7 \cdot 10^{+205}:\\
\;\;\;\;y\\
\mathbf{elif}\;y \leq 1.1 \cdot 10^{+221}:\\
\;\;\;\;t\_0\\
\mathbf{elif}\;y \leq 1.12 \cdot 10^{+221}:\\
\;\;\;\;y\\
\mathbf{elif}\;y \leq 4.6 \cdot 10^{+232}:\\
\;\;\;\;t\_0\\
\mathbf{elif}\;y \leq 4.7 \cdot 10^{+232}:\\
\;\;\;\;y\\
\mathbf{elif}\;y \leq 3 \cdot 10^{+245}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;y \leq 2.4 \cdot 10^{+257}:\\
\;\;\;\;t\_0\\
\mathbf{elif}\;y \leq 2.5 \cdot 10^{+257}:\\
\;\;\;\;y\\
\mathbf{elif}\;y \leq 9 \cdot 10^{+259}:\\
\;\;\;\;t\_0\\
\mathbf{elif}\;y \leq 2.9 \cdot 10^{+267}:\\
\;\;\;\;y\\
\mathbf{elif}\;y \leq 7.4 \cdot 10^{+270}:\\
\;\;\;\;t\_0\\
\mathbf{elif}\;y \leq 4.5 \cdot 10^{+274}:\\
\;\;\;\;y\\
\mathbf{elif}\;y \leq 5 \cdot 10^{+280}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;y \leq 1.65 \cdot 10^{+302}:\\
\;\;\;\;t\_0\\
\mathbf{else}:\\
\;\;\;\;y\\
\end{array}
\end{array}
if y < 1.24999999999999992e-12 or 5.5999999999999997e139 < y < 5.7999999999999998e139 or 6.00000000000000029e148 < y < 5.00000000000000018e153 or 2.29999999999999987e160 < y < 1.10000000000000003e164 or 1.9999999999999998e165 < y < 2.7999999999999998e165 or 8.0000000000000001e177 < y < 2.59999999999999993e184 or 4.5999999999999998e203 < y < 2.70000000000000012e205 or 1.1e221 < y < 1.12e221 or 4.60000000000000012e232 < y < 4.69999999999999992e232 or 2.4000000000000001e257 < y < 2.50000000000000014e257 or 8.9999999999999994e259 < y < 2.89999999999999983e267 or 7.39999999999999988e270 < y < 4.4999999999999997e274 or 1.65000000000000007e302 < y Initial program 83.0%
associate-/l*99.9%
Simplified99.9%
Taylor expanded in y around 0 52.1%
associate-/l*69.0%
Simplified69.0%
Taylor expanded in x around 0 37.2%
if 1.24999999999999992e-12 < y < 4.99999999999999977e126 or 1.00000000000000002e141 < y < 2.00000000000000003e141 or 5.00000000000000004e154 < y < 1.99999999999999997e157 or 1.10000000000000003e164 < y < 1.9999999999999998e165 or 2.59999999999999993e184 < y < 8.00000000000000058e191 or 4.69999999999999992e232 < y < 3e245 or 4.4999999999999997e274 < y < 5.0000000000000002e280Initial program 100.0%
Taylor expanded in y around 0 6.7%
clear-num6.7%
associate-/r/6.7%
Applied egg-rr6.7%
Taylor expanded in x around 0 13.1%
*-commutative13.1%
Simplified13.1%
if 4.99999999999999977e126 < y < 5.5999999999999997e139 or 5.7999999999999998e139 < y < 1.00000000000000002e141 or 2.00000000000000003e141 < y < 6.00000000000000029e148 or 5.00000000000000018e153 < y < 5.00000000000000004e154 or 1.99999999999999997e157 < y < 2.29999999999999987e160 or 2.7999999999999998e165 < y < 8.0000000000000001e177 or 8.00000000000000058e191 < y < 4.5999999999999998e203 or 2.70000000000000012e205 < y < 1.1e221 or 1.12e221 < y < 4.60000000000000012e232 or 3e245 < y < 2.4000000000000001e257 or 2.50000000000000014e257 < y < 8.9999999999999994e259 or 2.89999999999999983e267 < y < 7.39999999999999988e270 or 5.0000000000000002e280 < y < 1.65000000000000007e302Initial program 100.0%
Taylor expanded in y around 0 5.2%
Taylor expanded in x around 0 28.3%
*-commutative28.3%
Simplified28.3%
Final simplification32.5%
(FPCore (x y)
:precision binary64
(if (<= y 1e-14)
y
(if (or (<= y 2.7e+126)
(and (not (<= y 3.8e+126))
(or (<= y 5e+139)
(and (not (<= y 7.6e+139))
(or (<= y 6.6e+148)
(and (not (<= y 2.9e+153))
(or (<= y 3.15e+156)
(and (not (<= y 2e+157))
(or (<= y 6.2e+160)
(and (not (<= y 1.6e+166))
(or (<= y 8.5e+177)
(and (not
(<= y 2.6e+184))
(or (<=
y
4.5e+203)
(and (not
(<=
y
2.1e+205))
(or (<=
y
1.1e+221)
(and (not
(<=
y
1.12e+221))
(or (<=
y
3e+232)
(and (not
(<=
y
4.7e+232))
(or (<=
y
2.4e+257)
(and (not
(<=
y
2.5e+257))
(or (<=
y
5.7e+259)
(and (not
(<=
y
2.9e+267))
(or (<=
y
7.4e+270)
(and (not
(<=
y
4.5e+274))
(<=
y
1.65e+302)))))))))))))))))))))))))
(/ (* x y) x)
y)))
double code(double x, double y) {
double tmp;
if (y <= 1e-14) {
tmp = y;
} else if ((y <= 2.7e+126) || (!(y <= 3.8e+126) && ((y <= 5e+139) || (!(y <= 7.6e+139) && ((y <= 6.6e+148) || (!(y <= 2.9e+153) && ((y <= 3.15e+156) || (!(y <= 2e+157) && ((y <= 6.2e+160) || (!(y <= 1.6e+166) && ((y <= 8.5e+177) || (!(y <= 2.6e+184) && ((y <= 4.5e+203) || (!(y <= 2.1e+205) && ((y <= 1.1e+221) || (!(y <= 1.12e+221) && ((y <= 3e+232) || (!(y <= 4.7e+232) && ((y <= 2.4e+257) || (!(y <= 2.5e+257) && ((y <= 5.7e+259) || (!(y <= 2.9e+267) && ((y <= 7.4e+270) || (!(y <= 4.5e+274) && (y <= 1.65e+302))))))))))))))))))))))))) {
tmp = (x * y) / x;
} else {
tmp = y;
}
return tmp;
}
real(8) function code(x, y)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8) :: tmp
if (y <= 1d-14) then
tmp = y
else if ((y <= 2.7d+126) .or. (.not. (y <= 3.8d+126)) .and. (y <= 5d+139) .or. (.not. (y <= 7.6d+139)) .and. (y <= 6.6d+148) .or. (.not. (y <= 2.9d+153)) .and. (y <= 3.15d+156) .or. (.not. (y <= 2d+157)) .and. (y <= 6.2d+160) .or. (.not. (y <= 1.6d+166)) .and. (y <= 8.5d+177) .or. (.not. (y <= 2.6d+184)) .and. (y <= 4.5d+203) .or. (.not. (y <= 2.1d+205)) .and. (y <= 1.1d+221) .or. (.not. (y <= 1.12d+221)) .and. (y <= 3d+232) .or. (.not. (y <= 4.7d+232)) .and. (y <= 2.4d+257) .or. (.not. (y <= 2.5d+257)) .and. (y <= 5.7d+259) .or. (.not. (y <= 2.9d+267)) .and. (y <= 7.4d+270) .or. (.not. (y <= 4.5d+274)) .and. (y <= 1.65d+302)) then
tmp = (x * y) / x
else
tmp = y
end if
code = tmp
end function
public static double code(double x, double y) {
double tmp;
if (y <= 1e-14) {
tmp = y;
} else if ((y <= 2.7e+126) || (!(y <= 3.8e+126) && ((y <= 5e+139) || (!(y <= 7.6e+139) && ((y <= 6.6e+148) || (!(y <= 2.9e+153) && ((y <= 3.15e+156) || (!(y <= 2e+157) && ((y <= 6.2e+160) || (!(y <= 1.6e+166) && ((y <= 8.5e+177) || (!(y <= 2.6e+184) && ((y <= 4.5e+203) || (!(y <= 2.1e+205) && ((y <= 1.1e+221) || (!(y <= 1.12e+221) && ((y <= 3e+232) || (!(y <= 4.7e+232) && ((y <= 2.4e+257) || (!(y <= 2.5e+257) && ((y <= 5.7e+259) || (!(y <= 2.9e+267) && ((y <= 7.4e+270) || (!(y <= 4.5e+274) && (y <= 1.65e+302))))))))))))))))))))))))) {
tmp = (x * y) / x;
} else {
tmp = y;
}
return tmp;
}
def code(x, y): tmp = 0 if y <= 1e-14: tmp = y elif (y <= 2.7e+126) or (not (y <= 3.8e+126) and ((y <= 5e+139) or (not (y <= 7.6e+139) and ((y <= 6.6e+148) or (not (y <= 2.9e+153) and ((y <= 3.15e+156) or (not (y <= 2e+157) and ((y <= 6.2e+160) or (not (y <= 1.6e+166) and ((y <= 8.5e+177) or (not (y <= 2.6e+184) and ((y <= 4.5e+203) or (not (y <= 2.1e+205) and ((y <= 1.1e+221) or (not (y <= 1.12e+221) and ((y <= 3e+232) or (not (y <= 4.7e+232) and ((y <= 2.4e+257) or (not (y <= 2.5e+257) and ((y <= 5.7e+259) or (not (y <= 2.9e+267) and ((y <= 7.4e+270) or (not (y <= 4.5e+274) and (y <= 1.65e+302)))))))))))))))))))))))): tmp = (x * y) / x else: tmp = y return tmp
function code(x, y) tmp = 0.0 if (y <= 1e-14) tmp = y; elseif ((y <= 2.7e+126) || (!(y <= 3.8e+126) && ((y <= 5e+139) || (!(y <= 7.6e+139) && ((y <= 6.6e+148) || (!(y <= 2.9e+153) && ((y <= 3.15e+156) || (!(y <= 2e+157) && ((y <= 6.2e+160) || (!(y <= 1.6e+166) && ((y <= 8.5e+177) || (!(y <= 2.6e+184) && ((y <= 4.5e+203) || (!(y <= 2.1e+205) && ((y <= 1.1e+221) || (!(y <= 1.12e+221) && ((y <= 3e+232) || (!(y <= 4.7e+232) && ((y <= 2.4e+257) || (!(y <= 2.5e+257) && ((y <= 5.7e+259) || (!(y <= 2.9e+267) && ((y <= 7.4e+270) || (!(y <= 4.5e+274) && (y <= 1.65e+302))))))))))))))))))))))))) tmp = Float64(Float64(x * y) / x); else tmp = y; end return tmp end
function tmp_2 = code(x, y) tmp = 0.0; if (y <= 1e-14) tmp = y; elseif ((y <= 2.7e+126) || (~((y <= 3.8e+126)) && ((y <= 5e+139) || (~((y <= 7.6e+139)) && ((y <= 6.6e+148) || (~((y <= 2.9e+153)) && ((y <= 3.15e+156) || (~((y <= 2e+157)) && ((y <= 6.2e+160) || (~((y <= 1.6e+166)) && ((y <= 8.5e+177) || (~((y <= 2.6e+184)) && ((y <= 4.5e+203) || (~((y <= 2.1e+205)) && ((y <= 1.1e+221) || (~((y <= 1.12e+221)) && ((y <= 3e+232) || (~((y <= 4.7e+232)) && ((y <= 2.4e+257) || (~((y <= 2.5e+257)) && ((y <= 5.7e+259) || (~((y <= 2.9e+267)) && ((y <= 7.4e+270) || (~((y <= 4.5e+274)) && (y <= 1.65e+302))))))))))))))))))))))))) tmp = (x * y) / x; else tmp = y; end tmp_2 = tmp; end
code[x_, y_] := If[LessEqual[y, 1e-14], y, If[Or[LessEqual[y, 2.7e+126], And[N[Not[LessEqual[y, 3.8e+126]], $MachinePrecision], Or[LessEqual[y, 5e+139], And[N[Not[LessEqual[y, 7.6e+139]], $MachinePrecision], Or[LessEqual[y, 6.6e+148], And[N[Not[LessEqual[y, 2.9e+153]], $MachinePrecision], Or[LessEqual[y, 3.15e+156], And[N[Not[LessEqual[y, 2e+157]], $MachinePrecision], Or[LessEqual[y, 6.2e+160], And[N[Not[LessEqual[y, 1.6e+166]], $MachinePrecision], Or[LessEqual[y, 8.5e+177], And[N[Not[LessEqual[y, 2.6e+184]], $MachinePrecision], Or[LessEqual[y, 4.5e+203], And[N[Not[LessEqual[y, 2.1e+205]], $MachinePrecision], Or[LessEqual[y, 1.1e+221], And[N[Not[LessEqual[y, 1.12e+221]], $MachinePrecision], Or[LessEqual[y, 3e+232], And[N[Not[LessEqual[y, 4.7e+232]], $MachinePrecision], Or[LessEqual[y, 2.4e+257], And[N[Not[LessEqual[y, 2.5e+257]], $MachinePrecision], Or[LessEqual[y, 5.7e+259], And[N[Not[LessEqual[y, 2.9e+267]], $MachinePrecision], Or[LessEqual[y, 7.4e+270], And[N[Not[LessEqual[y, 4.5e+274]], $MachinePrecision], LessEqual[y, 1.65e+302]]]]]]]]]]]]]]]]]]]]]]]]], N[(N[(x * y), $MachinePrecision] / x), $MachinePrecision], y]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;y \leq 10^{-14}:\\
\;\;\;\;y\\
\mathbf{elif}\;y \leq 2.7 \cdot 10^{+126} \lor \neg \left(y \leq 3.8 \cdot 10^{+126}\right) \land \left(y \leq 5 \cdot 10^{+139} \lor \neg \left(y \leq 7.6 \cdot 10^{+139}\right) \land \left(y \leq 6.6 \cdot 10^{+148} \lor \neg \left(y \leq 2.9 \cdot 10^{+153}\right) \land \left(y \leq 3.15 \cdot 10^{+156} \lor \neg \left(y \leq 2 \cdot 10^{+157}\right) \land \left(y \leq 6.2 \cdot 10^{+160} \lor \neg \left(y \leq 1.6 \cdot 10^{+166}\right) \land \left(y \leq 8.5 \cdot 10^{+177} \lor \neg \left(y \leq 2.6 \cdot 10^{+184}\right) \land \left(y \leq 4.5 \cdot 10^{+203} \lor \neg \left(y \leq 2.1 \cdot 10^{+205}\right) \land \left(y \leq 1.1 \cdot 10^{+221} \lor \neg \left(y \leq 1.12 \cdot 10^{+221}\right) \land \left(y \leq 3 \cdot 10^{+232} \lor \neg \left(y \leq 4.7 \cdot 10^{+232}\right) \land \left(y \leq 2.4 \cdot 10^{+257} \lor \neg \left(y \leq 2.5 \cdot 10^{+257}\right) \land \left(y \leq 5.7 \cdot 10^{+259} \lor \neg \left(y \leq 2.9 \cdot 10^{+267}\right) \land \left(y \leq 7.4 \cdot 10^{+270} \lor \neg \left(y \leq 4.5 \cdot 10^{+274}\right) \land y \leq 1.65 \cdot 10^{+302}\right)\right)\right)\right)\right)\right)\right)\right)\right)\right)\right):\\
\;\;\;\;\frac{x \cdot y}{x}\\
\mathbf{else}:\\
\;\;\;\;y\\
\end{array}
\end{array}
if y < 9.99999999999999999e-15 or 2.70000000000000002e126 < y < 3.80000000000000017e126 or 5.0000000000000003e139 < y < 7.59999999999999999e139 or 6.60000000000000021e148 < y < 2.90000000000000002e153 or 3.14999999999999991e156 < y < 1.99999999999999997e157 or 6.1999999999999996e160 < y < 1.59999999999999984e166 or 8.5000000000000006e177 < y < 2.59999999999999993e184 or 4.5000000000000003e203 < y < 2.1e205 or 1.1e221 < y < 1.12e221 or 3.00000000000000003e232 < y < 4.69999999999999992e232 or 2.4000000000000001e257 < y < 2.50000000000000014e257 or 5.7e259 < y < 2.89999999999999983e267 or 7.39999999999999988e270 < y < 4.4999999999999997e274 or 1.65000000000000007e302 < y Initial program 83.1%
associate-/l*99.9%
Simplified99.9%
Taylor expanded in y around 0 51.9%
associate-/l*68.7%
Simplified68.7%
Taylor expanded in x around 0 37.0%
if 9.99999999999999999e-15 < y < 2.70000000000000002e126 or 3.80000000000000017e126 < y < 5.0000000000000003e139 or 7.59999999999999999e139 < y < 6.60000000000000021e148 or 2.90000000000000002e153 < y < 3.14999999999999991e156 or 1.99999999999999997e157 < y < 6.1999999999999996e160 or 1.59999999999999984e166 < y < 8.5000000000000006e177 or 2.59999999999999993e184 < y < 4.5000000000000003e203 or 2.1e205 < y < 1.1e221 or 1.12e221 < y < 3.00000000000000003e232 or 4.69999999999999992e232 < y < 2.4000000000000001e257 or 2.50000000000000014e257 < y < 5.7e259 or 2.89999999999999983e267 < y < 7.39999999999999988e270 or 4.4999999999999997e274 < y < 1.65000000000000007e302Initial program 100.0%
Taylor expanded in y around 0 6.2%
Taylor expanded in x around 0 18.4%
*-commutative18.4%
Simplified18.4%
Final simplification32.5%
(FPCore (x y) :precision binary64 (* (sin x) (/ y x)))
double code(double x, double y) {
return sin(x) * (y / x);
}
real(8) function code(x, y)
real(8), intent (in) :: x
real(8), intent (in) :: y
code = sin(x) * (y / x)
end function
public static double code(double x, double y) {
return Math.sin(x) * (y / x);
}
def code(x, y): return math.sin(x) * (y / x)
function code(x, y) return Float64(sin(x) * Float64(y / x)) end
function tmp = code(x, y) tmp = sin(x) * (y / x); end
code[x_, y_] := N[(N[Sin[x], $MachinePrecision] * N[(y / x), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}
\\
\sin x \cdot \frac{y}{x}
\end{array}
Initial program 87.2%
associate-/l*99.5%
Simplified99.5%
Taylor expanded in y around 0 64.5%
(FPCore (x y) :precision binary64 (/ (/ y x) (/ 1.0 x)))
double code(double x, double y) {
return (y / x) / (1.0 / x);
}
real(8) function code(x, y)
real(8), intent (in) :: x
real(8), intent (in) :: y
code = (y / x) / (1.0d0 / x)
end function
public static double code(double x, double y) {
return (y / x) / (1.0 / x);
}
def code(x, y): return (y / x) / (1.0 / x)
function code(x, y) return Float64(Float64(y / x) / Float64(1.0 / x)) end
function tmp = code(x, y) tmp = (y / x) / (1.0 / x); end
code[x_, y_] := N[(N[(y / x), $MachinePrecision] / N[(1.0 / x), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}
\\
\frac{\frac{y}{x}}{\frac{1}{x}}
\end{array}
Initial program 87.2%
associate-/l*99.5%
Simplified99.5%
clear-num99.2%
associate-/r/99.5%
Applied egg-rr99.5%
Taylor expanded in y around 0 64.4%
*-commutative64.4%
associate-*l/64.5%
*-un-lft-identity64.5%
associate-/r/53.6%
div-inv53.5%
associate-/r*64.3%
Applied egg-rr64.3%
Taylor expanded in x around 0 51.6%
(FPCore (x y) :precision binary64 y)
double code(double x, double y) {
return y;
}
real(8) function code(x, y)
real(8), intent (in) :: x
real(8), intent (in) :: y
code = y
end function
public static double code(double x, double y) {
return y;
}
def code(x, y): return y
function code(x, y) return y end
function tmp = code(x, y) tmp = y; end
code[x_, y_] := y
\begin{array}{l}
\\
y
\end{array}
Initial program 87.2%
associate-/l*99.5%
Simplified99.5%
Taylor expanded in y around 0 40.8%
associate-/l*53.5%
Simplified53.5%
Taylor expanded in x around 0 29.5%
(FPCore (x y) :precision binary64 (* (sin x) (/ (sinh y) x)))
double code(double x, double y) {
return sin(x) * (sinh(y) / x);
}
real(8) function code(x, y)
real(8), intent (in) :: x
real(8), intent (in) :: y
code = sin(x) * (sinh(y) / x)
end function
public static double code(double x, double y) {
return Math.sin(x) * (Math.sinh(y) / x);
}
def code(x, y): return math.sin(x) * (math.sinh(y) / x)
function code(x, y) return Float64(sin(x) * Float64(sinh(y) / x)) end
function tmp = code(x, y) tmp = sin(x) * (sinh(y) / x); end
code[x_, y_] := N[(N[Sin[x], $MachinePrecision] * N[(N[Sinh[y], $MachinePrecision] / x), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}
\\
\sin x \cdot \frac{\sinh y}{x}
\end{array}
herbie shell --seed 2024096
(FPCore (x y)
:name "Linear.Quaternion:$ccosh from linear-1.19.1.3"
:precision binary64
:alt
(* (sin x) (/ (sinh y) x))
(/ (* (sin x) (sinh y)) x))