ä»åã¯æ´æ°ã使ããã«ããããããæ°å¤è¨ç® ãã£ã½ãã¢ã«ã´ãªãºã ã§å¹³æ¹æ ¹ ãæ±ãã¦ããã¾ããããããã¢ã«ã´ãªãºã ã§ãã£ã¦ã correctly-rounded ãªå¤ãå¾ãããã¨ãããé¢ç½ãã§ããã
ãã¾ãã ã
æ©éã§ãããä¸è¨ã®ãããªã¢ã«ã´ãªãºã ãèãã¾ãã
$\gdef\iversonbracket#1{\mathop{[#1]}}$
å
¥å : æµ®åå°æ°ç¹æ° $x\in[1\lldot 4)$
åºå : $\roundcirc{\sqrt{x}}$
$y \gets \iversonbracket{x\lt 2}\hat p(a^{[1]}, x) + \iversonbracket{x\ge 2}\hat p(a^{[2]}, x)$ ã§åæåããã
$y \gets 0.5 \otimes (y \oplus (x \oslash y) )$ ã§æ´æ°ããã
$y \gets 0.5 \otimes (y \oplus (x \oslash y) )$ ã§æ´æ°ããã
$\roundcirc{y \times (y \ominus 2^{-52}) + (-x)} \ge 0$ ã§ããã°ä¸è¨ãè¡ãã
$y\ominus 2^{-52}$ ãåºåããã
$\roundcirc{y \times (y \oplus 2^{-52}) + (-x)} \lt 0$ ã§ããã°ä¸è¨ãè¡ãã
$y\oplus 2^{-52}$ ãåºåããã
$y$ ãåºåããã
ããã§ã$a^{[1]} = \angled{a^{[1]}_0, a^{[1]}_1, a^{[1]}_2, a^{[1]}_3}$, $a^{[2]} = \angled{a^{[2]}_0, a^{[2]}_1, a^{[2]}_2, a^{[2]}_3}$ ã¨ããåè¦ç´ ã¯ä¸è¨ã®éãã§ãã
$$
\begin{aligned}
& \angled{a^{[1]}_0, a^{[1]}_1, a^{[1]}_2, a^{[1]}_3} = \langle \\
& \qquad {\small \phantom- 0.371351660146978}{\footnotesize 290732988625677}{\scriptsize 535310387611389}{\tiny 16015625}, \\
& \qquad {\small \phantom- 0.784942635287931}{\footnotesize 067544775487476}{\scriptsize 726993918418884}{\tiny 27734375}, \\
& \qquad {\small -0.180689144911217}{\footnotesize 069999764817112}{\scriptsize 009041011333465}{\tiny 576171875}, \\
& \qquad {\small \phantom- 0.024476908831259}{\footnotesize 320403761492457}{\scriptsize 306303549557924}{\tiny 2706298828125} \\
& \rangle, \\
& \angled{a^{[2]}_0, a^{[2]}_1, a^{[2]}_2, a^{[2]}_3} = \langle \\
& \qquad {\small \phantom- 0.525170554189621}{\footnotesize 108243102298729}{\scriptsize 354515671730041}{\tiny 50390625}, \\
& \qquad {\small \phantom- 0.555038260254535}{\footnotesize 065207903699047}{\scriptsize 164991497993469}{\tiny 23828125}, \\
& \qquad {\small -0.063883259826760}{\footnotesize 172006565596802}{\scriptsize 829531952738761}{\tiny 90185546875}, \\
& \qquad {\small \phantom- 0.004326947054267}{\footnotesize 089344536945105}{\scriptsize 801351019181311}{\tiny 130523681640625} \\
& \rangle.
\end{aligned}
$$
ã¾ããé·ã $2$ 以ä¸ã®æµ®åå°æ°ç¹æ° ã®å $a$ ã«å¯¾ã㦠$\hat p(a, x)$ ãä¸è¨ã§å®ç¾©ãã¾ãã
$$
\begin{aligned}
\hat p(\angled{a_0, a_1}, x) &= \roundcirc{a_1\times x+a_0}, \\
\hat p(\angled{a_0, a_1, \dots, a_n}, x) &= \roundcirc{\hat p(\angled{a_1, \dots, a_n}, x)\times x + a_0}.
\end{aligned}
$$
å ãã¦ã便å®ä¸ã$a(x) = \sum_{i=0}^n a_i x^i$ ã§å®ç¾©ãã¦ããã¾ãã
$a(x)$ ãæµ®åå°æ° ç¹åã§è¨ç®ãããã¨ããã®ã $\hat p(a, x)$ ã¨ãããã¨ã§ããã
ä¾
$x_1 = 1.5625 = 1.25^2$ ã¨ãã¾ãã
$$
\begin{aligned}
y_1^{(0)} &= \hat p(a^{[1]}, x) \\
&= {\small 1.250060917280526}{\footnotesize 817663144356629}{\scriptsize 345566034317016}{\tiny 6015625}, \\
y_1^{(1)} &= 0.5\otimes(y_1^{(0)}\oplus(x\oslash y_1^{(0)}) ) \\
&= {\small 1.250000001484293}{\footnotesize 576936579484026}{\scriptsize 879072189331054}{\tiny 6875}, \\
y_1^{(2)} &= 0.5\otimes(y_1^{(1)}\oplus(x\oslash y_1^{(1)}) ) \\
&= {\small 1.25}.
\end{aligned}
$$
$x_2 = 2.25 = 1.5^2$ ã¨ãã¾ãã
$$
\begin{aligned}
y_2^{(0)} &= \hat p(a^{[2]}, x) \\
&= {\small 1.499884268179362}{\footnotesize 711848057188035}{\scriptsize 454601049423217}{\tiny 7734375}, \\
y_2^{(1)} &= 0.5\otimes(y_2^{(0)}\oplus(x\oslash y_2^{(0)}) ) \\
&= {\small 1.500000004464962}{\footnotesize 621852919255616}{\scriptsize 143345832824707}{\tiny 03125}, \\
y_2^{(2)} &= 0.5\otimes(y_2^{(1)}\oplus(x\oslash y_2^{(1)}) ) \\
&= {\small 1.5}.
\end{aligned}
$$
$\hat p(a^{[\ast]}, x)$ ã®è¨ç®ã§ $\sqrt x$ ã«ããç¨åº¦è¿ãå¤ãå¾ãããå¾ãç´ æ©ã $\sqrt x$ ã«åæãã¦ãããã¨ãè¦ã¦åãã¾ãã
ã°ã©ã
$\hat p(a^{[1]}, x)$ ã®ã°ã©ã
$\hat p(a^{[2]}, x)$ ã®ã°ã©ã
$\hat p(a^{[1]}, x)$ 㯠$[1\lldot 2)$ ã®åºé ã§ã$\hat p(a^{[2]}, x)$ 㯠$[2\lldot 4)$ ã®åºé ã§ã$\sqrt x$ ã«ãºãã¼ã£ã¨ãã£ã¤ãã¦ãããã¨ããããã¾ãã
åæç¥èãã¡
ä¸è¨ã®ã¢ã«ã´ãªãºã ãçè§£ããã«ããã£ã¦å¿
è¦ãªç¥èã®ç´¹ä»ããè£é¡ ã®è¨¼æããã¾ãã
Equioscillation theorem
çæ¯åå®ç (equioscillation theorem ) ã¯ã宿°å¤é¢æ°ãå¤é
å¼ ã§è¿ä¼¼ããã«ããã£ã¦éè¦ãªå®çã§ãã
åºé $[a\lldot b]$ ã§å®ç¾©ãããé£ç¶ãªå®æ°å¤é¢æ°å
¨ä½ãããªãéåã $\mathscr C[a, b]$ãé«ã
$n$ 次ã®å®æ°ä¿æ°å¤é
å¼ å
¨ä½ãããªãéåã $\mathscr P_n$ ã¨æ¸ãã¾ããã¾ãã$f\in\mathscr C[a, b]$ ã«å¯¾ãã$\|f\|_{\infty}^{[a\lldot b]} = \sup_{x\in[a\lldot b]} |f(x)|$ ã§å®ç¾©ãã¾ãã
Theorem 1 (Chebyshev): $f\in\mathscr C[a, b]$ 㨠$p^\ast\in\mathscr P_n$ ã«å¯¾ãã$p^\ast = \argmin_{p\in\mathscr P_n} \|f-p\|_{\infty}^{[a\lldot b]}$ ã¨ãªãå¿
è¦å忡件 ã¯ã
$n+2$ åã®ç¹ $a\le x_0\lt x_1\lt \cdots \lt x_{n+1}\le b$ 㨠$\sigma \in\{-1, 1\}$ ãåå¨ãã¦ã
$$ f(x_i)-p^\ast(x_i) = \sigma \cdot(-1)^i\|f-p^\ast\|_{\infty}^{[a\lldot b]} $$
ãæºãããã¨ã§ããã
ãã® $p^\ast$ ã minimax polynomial ã¨å¼ã³ã¾ãããããæ±ããã¢ã«ã´ãªãºã ããæ¬¡ã§ç´¹ä»ãã¾ãã
Remez algorithm
Ðвген Ð¯ÐºÐ¾Ð²Ð¸Ñ Ð ÐµÐ¼ÐµÐ· (Evgeny Yakovlevich Remez) ã«ããã¢ã«ã´ãªãºã ã§ãã
宿° $a$, $b$ ã¨é¢æ° $f\in\mathscr C[a, b]$ ã¨éè² æ´æ° $n$ ã«å¯¾ãã$\argmin_{p\in\mathscr P_n} \|f-p\|_{\infty}^{[a\lldot b]}$ï¼ã«è¿ããã®ï¼ãè¿ãã¾ãã
Sollya ã§ã¯ remez(f, n, [a; b])
ã®ããã«ã㦠Remez algorithm ã使ããã¨ãã§ãã¾ãã
> prec = 20;
The precision has been set to 20 bits.
> display = hexadecimal;
Display mode is hexadecimal numbers.
> remez(x^0.5, 3, [1; 2]);
0x1.7c462p-2 + x * (0x1.91e14p-1 + x * (-0x1.7205cp-3 + x * 0x1.90fb2p-6))
ä»åã®è¨äºã§ã¯ã¢ã«ã´ãªãºã ã®å®è£
ãå®çã®è¨¼æã«ã¯è§¦ããããã©ãã¯ããã¯ã¹ ã¨ãã¦ä½¿ãã¾ããåºåãããå¤é
å¼ ãè©ä¾¡ããã°äºè¶³ããããã§ãã
精度ãªã©ã®é½åã§ã$p^\ast$ ã«å®å
¨ã«ä¸è´ãããã®ãå¾ãããããã§ã¯ãªããããåºåãããå¤é
å¼ ã«é¢ãã誤差è©ä¾¡èªä½ã¯ã©ããã¦ãå¿
è¦ã«ãªã£ã¦ãã¾ãã
Claim 2 : æµ®åå°æ°ç¹æ° $x\in[1\lldot 2)$ ã«å¯¾ãã¦ã$|a^{[1]}(x)-\sqrt x|\lt 8.20594\times 10^{-5}$ ãæãç«ã¤ã
Proof
$f(x) = a^{[1]}(x)-\sqrt x$ ã¨ãã$f(x)$ ã®æ¥µå¤ ãèããã
$$
\begin{aligned}
& \angled{m_0, m_1, m_2, m_3} = \langle \\
& \qquad {\phantom- 6689676793045386}, \\
& \qquad {\phantom- 7070134719579883}, \\
& \qquad {-6510012525536406}, \\
& \qquad {\phantom- 7054988639465029} \\
& \rangle, \\
& \angled{e_0, e_1, e_2, e_3} = \angled{-54, -53, -55, -58}
\end{aligned}
$$
ã¨ãããããã§ãå $i\in\{0, 1, 2, 3\}$ ã«å¯¾ã㦠$a^{[1]}_i = m_i\times 2^{e_i}$ ã㤠$2^{52}\le m_i\lt 2^{-53}$ ãæãç«ã¤ã
ãã®ã¨ããæ´æ° $2^{52}\le m_x\lt 2^{53}$ ã«å¯¾ã㦠$f'(2^{-52}\cdot m_x) \gt 0$ ã¯ãä¸è¨ã® 2 å¼ãæãç«ã¤ãã¨ã¨åå¤ã§ããã
$$
\begin{cases}
m_1\cdot 2^{2\cdot 52+e_1 + 58}
+ 2 m_2\cdot 2^{52+e_2 + 58}\cdot m_x
+ 3 m_3\cdot 2^{e_3 + 58}\cdot m_x^2 \ge 0, \\
4m_x\cdot (
m_1\cdot 2^{2\cdot 52 + e_1 + 58}
+ 2m_2\cdot 2^{52+e_2+58}\cdot m_x
+ 3m_3\cdot 2^{e_3+58}\cdot m_x^2
)^2 - 2^{5\cdot 52+2\cdot 58} \gt 0.
\end{cases}
$$
åæ§ã«ã$f''(2^{-52}\cdot m_x) \gt 0$ ã¯ãä¸è¨ã® 2 å¼ãæãç«ã¤ãã¨ã¨åå¤ã§ããã
$$
\begin{cases}
2m_2\cdot 2^{e_2+58} + 6m_3\cdot 2^{e_3+58}\cdot 2^{52}\cdot m_x \ge 0, \\
16m_x^3\cdot (
2m_2 \cdot 2^{52+e_2+58}
+ 6m_3\cdot 2^{e_3+58}\cdot m_x
)^2 - 2^{5\cdot 52+2\cdot 58} \lt 0.
\end{cases}
$$
ããã« $m_3\ge 0$ ãè¸ã¾ãã¦ã$f'''(2^{-52}\cdot m_x)\gt 0$ ã¯ä¸è¨ãæãç«ã¤ãã¨ã¨åå¤ã§ããã
$$
m_x^5\cdot (16m_3)^2 - 2^{5\cdot 52-2e_3} \gt 0.
$$
ãã£ã¦ãããã¯ï¼å¤åé·ã®ï¼æ´æ°åãç¨ãã¦äºåæ¢ç´¢ãã§ãããã®çµæãç¨ãã¦æ¬¡ã®å¢æ¸è¡¨ãæ¸ããã¨ãã§ããã
$1$
$\cdots$
$x_3^-$
$x_3^+$
$\cdots$
$2$
$f''(x)$
$+$
$\searrow$
$-$
$-$
$\nearrow$
$+$
$f'''(x)$
$-$
$\cdots$
$-$
$+$
$\cdots$
$+$
$$
\begin{aligned}
x_3^- &= 6552532042542083 \times 2^{-52} \\
&= {\small 1.454954388644865}{\footnotesize 259649918698414}{\scriptsize 694517850875854}{\tiny 4921875}, \\
x_3^+ &= 6552532042542084 \times 2^{-52} \\
&= {\small 1.454954388644865}{\footnotesize 481694523623446}{\scriptsize 002602577209472}{\tiny 65625}.
\end{aligned}
$$
$1$
$\cdots$
$x_{2, 1}^-$
$x_{2, 1}^+$
$\cdots$
$x_{2, 2}^-$
$x_{2, 2}^+$
$\cdots$
$2$
$f'(x)$
$-$
$\nearrow$
$+$
$+$
$\searrow$
$-$
$-$
$\nearrow$
$+$
$f''(x)$
$+$
$\cdots$
$+$
$-$
$\cdots$
$-$
$+$
$\cdots$
$+$
$$
\begin{aligned}
x_{2, 1}^- &= 5705497900301872 \times 2^{-52} \\
&= {\small 1.266875027173124}{\footnotesize 834689588169567}{\scriptsize 286968231201171}{\tiny 875}, \\
x_{2, 1}^+ &= 5705497900301873 \times 2^{-52} \\
&= {\small 1.266875027173125}{\footnotesize 056734193094598}{\scriptsize 595052957534790}{\tiny 0390625}, \\
x_{2, 2}^- &= 7549905344458297 \times 2^{-52} \\
&= {\small 1.676415749431624}{\footnotesize 968579512824362}{\scriptsize 609535455703735}{\tiny 3515625}, \\
x_{2, 2}^+ &= 7549905344458298 \times 2^{-52} \\
&= {\small 1.676415749431625}{\footnotesize 190624117749393}{\scriptsize 917620182037353}{\tiny 515625}.
\end{aligned}
$$
$1$
$\cdots$
$x_{1, 1}^-$
$x_{1, 1}^+$
$\cdots$
$x_{1, 2}^-$
$x_{1, 2}^+$
$\cdots$
$x_{1, 3}^-$
$x_{1, 3}^+$
$\cdots$
$2$
$f(x)$
$\searrow$
$\cdots$
$\searrow$
$\nearrow$
$\cdots$
$\nearrow$
$\searrow$
$\cdots$
$\searrow$
$\nearrow$
$\cdots$
$\nearrow$
$f'(x)$
$-$
$\cdots$
$-$
$+$
$\cdots$
$+$
$-$
$\cdots$
$-$
$+$
$\cdots$
$+$
$$
\begin{aligned}
x_{1, 1}^- &= 5093190532915904 \times 2^{-52} \\
&= {\small 1.130915479689221}{\footnotesize 569969959091395}{\scriptsize 139694213867187}{\tiny 5}, \\
x_{1, 1}^+ &= 5093190532915905 \times 2^{-52} \\
&= {\small 1.130915479689221}{\footnotesize 792014564016426}{\scriptsize 447778940200805}{\tiny 6640625}, \\
x_{1, 2}^- &= 6620254117772346 \times 2^{-52} \\
&= {\small 1.469991710084072}{\footnotesize 256137233125627}{\scriptsize 972185611724853}{\tiny 515625}, \\
x_{1, 2}^+ &= 6620254117772347 \times 2^{-52} \\
&= {\small 1.469991710084072}{\footnotesize 478181838050659}{\scriptsize 280270338058471}{\tiny 6796875}, \\
x_{1, 3}^- &= 8282230118499356 \times 2^{-52} \\
&= {\small 1.839024514560384}{\footnotesize 737649201269960}{\scriptsize 030913352966308}{\tiny 59375}, \\
x_{1, 3}^+ &= 8282230118499357 \times 2^{-52} \\
&= {\small 1.839024514560384}{\footnotesize 959693806194991}{\scriptsize 338998079299926}{\tiny 7578125}.
\end{aligned}
$$
ãã£ã¦ã$S = \{1, x_{1, 1}^-, x_{1, 1}^+, x_{1, 2}^-, x_{1, 2}^+, x_{1, 3}^-, x_{1, 3}^+, 2\}$ ã«å¯¾ã㦠$\max_{x\in S} |a^{[1]}(x)-{\sqrt x}|$ ãæ±ããã°ããã
æ°å¤è¨ç® ã«ããã$\max_{x\in S} |a^{[1]}(x)-{\sqrt x}| \lt 8.20594\times 10^{-5}$ ã¨ãããã$\qed $
Claim 3 : æµ®åå°æ°ç¹æ° $x\in[2\lldot 4)$ ã«å¯¾ãã¦ã$|a^{[2]}(x)-\sqrt x|\lt 1.16050\times 10^{-4}$ ãæãç«ã¤ã
Proof
$f(x) = a^{[2]}(x)-\sqrt x$ ã¨ãã$f(x)$ ã®æ¥µå¤ ãèããã
$$
\begin{aligned}
& \angled{m_0, m_1, m_2, m_3} = \langle \\
& \qquad {\phantom- 4730315824308669}, \\
& \qquad {\phantom- 4999340204117385}, \\
& \qquad {-4603274002416155}, \\
& \qquad {\phantom- 4988630308159777} \\
& \rangle, \\
& \angled{e_0, e_1, e_2, e_3} = \angled{-53, -53, -56, -60}
\end{aligned}
$$
ã¨ãããããã§ãå $i\in\{0, 1, 2, 3\}$ ã«å¯¾ã㦠$a^{[2]}_i = m_i\times 2^{e_i}$ ã㤠$2^{52}\le m_i\lt 2^{-53}$ ãæãç«ã¤ã
ãã£ã¦ãClaim 2 åæ§ã«ãã¦å¢æ¸è¡¨ãæ¸ããã¨ãã§ããã
$2$
$\cdots$
$x_3^-$
$x_3^+$
$\cdots$
$4$
$f''(x)$
$+$
$\searrow$
$-$
$-$
$\nearrow$
$+$
$f'''(x)$
$-$
$\cdots$
$-$
$+$
$\cdots$
$+$
$$
\begin{aligned}
x_3^- &= 6552532042542083 \times 2^{-51} \\
&= {\small 2.909908777289730}{\footnotesize 519299837396829}{\scriptsize 389035701751708}{\tiny 984375}, \\
x_3^+ &= 6552532042542084 \times 2^{-51} \\
&= {\small 2.909908777289730}{\footnotesize 963389047246892}{\scriptsize 005205154418945}{\tiny 3125}.
\end{aligned}
$$
$2$
$\cdots$
$x_{2, 1}^-$
$x_{2, 1}^+$
$\cdots$
$x_{2, 2}^-$
$x_{2, 2}^+$
$\cdots$
$4$
$f'(x)$
$-$
$\nearrow$
$+$
$+$
$\searrow$
$-$
$-$
$\nearrow$
$+$
$f''(x)$
$+$
$\cdots$
$+$
$-$
$\cdots$
$-$
$+$
$\cdots$
$+$
$$
\begin{aligned}
x_{2, 1}^- &= 5705497900301873 \times 2^{-51} \\
&= {\small 2.533750054346250}{\footnotesize 113468386189197}{\scriptsize 190105915069580}{\tiny 078125}, \\
x_{2, 1}^+ &= 5705497900301874 \times 2^{-51} \\
&= {\small 2.533750054346250}{\footnotesize 557557596039259}{\scriptsize 806275367736816}{\tiny 40625}, \\
x_{2, 2}^- &= 7549905344458296 \times 2^{-51} \\
&= {\small 3.352831498863249}{\footnotesize 493069815798662}{\scriptsize 602901458740234}{\tiny 375}, \\
x_{2, 2}^+ &= 7549905344458297 \times 2^{-51} \\
&= {\small 3.352831498863249}{\footnotesize 937159025648725}{\scriptsize 219070911407470}{\tiny 703125}.
\end{aligned}
$$
$2$
$\cdots$
$x_{1, 1}^-$
$x_{1, 1}^+$
$\cdots$
$x_{1, 2}^-$
$x_{1, 2}^+$
$\cdots$
$x_{1, 3}^-$
$x_{1, 3}^+$
$\cdots$
$4$
$f(x)$
$\searrow$
$\cdots$
$\searrow$
$\nearrow$
$\cdots$
$\nearrow$
$\searrow$
$\cdots$
$\searrow$
$\nearrow$
$\cdots$
$\nearrow$
$f'(x)$
$-$
$\cdots$
$-$
$+$
$\cdots$
$+$
$-$
$\cdots$
$-$
$+$
$\cdots$
$+$
$$
\begin{aligned}
x_{1, 1}^- &= 5093190532915894 \times 2^{-51} \\
&= {\small 2.261830959378438}{\footnotesize 699047819682164}{\scriptsize 117693901062011}{\tiny 71875}, \\
x_{1, 1}^+ &= 5093190532915895 \times 2^{-51} \\
&= {\small 2.261830959378439}{\footnotesize 143137029532226}{\scriptsize 733863353729248}{\tiny 046875}, \\
x_{1, 2}^- &= 6620254117772374 \times 2^{-51} \\
&= {\small 2.939983420168156}{\footnotesize 946772342053009}{\scriptsize 197115898132324}{\tiny 21875}, \\
x_{1, 2}^+ &= 6620254117772375 \times 2^{-51} \\
&= {\small 2.939983420168157}{\footnotesize 390861551903071}{\scriptsize 813285350799560}{\tiny 546875}, \\
x_{1, 3}^- &= 8282230118499338 \times 2^{-51} \\
&= {\small 3.678049029120761}{\footnotesize 481692625238792}{\scriptsize 970776557922363}{\tiny 28125}, \\
x_{1, 3}^+ &= 8282230118499339 \times 2^{-51} \\
&= {\small 3.678049029120761}{\footnotesize 925781835088855}{\scriptsize 586946010589599}{\tiny 609375}.
\end{aligned}
$$
ãã£ã¦ã$S = \{2, x_{1, 1}^-, x_{1, 1}^+, x_{1, 2}^-, x_{1, 2}^+, x_{1, 3}^-, x_{1, 3}^+, 4\}$ ã«å¯¾ã㦠$\max_{x\in S} |a^{[2]}(x)-{\sqrt x}|$ ãæ±ããã°ããã
æ°å¤è¨ç® ã«ããã$\max_{x\in S} |a^{[2]}(x)-{\sqrt x}| \lt 1.16050\times 10^{-4}$ ã¨ãããã$\qed $
note : Sollya ã§ infnorm
ãªã findzeros
ãªããä½¿ãæ¹æ³ãããã¾ããã証æã®ã³ã¢ã®é¨åã«éæ³ã®æè¡ã使ãã®ã¯ã ãã ã¨æã£ãã®ã§é¿ãã¾ããã
Hornerâs method
å¤é
å¼ $\sum_{i=0}^n a_ix^n$ ãè¨ç®ããéã« $( (\cdots(a_n\times x+a_{n-1})\times x+\cdots )\times x + a_0)$ ã¨è¨ç®ããæ¹æ³ã Hornerâs method (Hornerâs scheme ) ã¨å¼ã³ã¾ããååã®ç±æ¥ã¯ William George Horner ã¨ãã人ã§ããããã®æ¹æ³èªä½ã¯ãã£ã¨å¤ãããããããã§ãã$\hat p(a, x)$ ã¯ãFMA ãç¨ãã¤ã¤ Hornerâs method ã§è¨ç®ããã¢ã«ã´ãªãºã ã«ç¸å½ãã¾ãã
$\hat p(a, x)$ 㨠$a(x)$ ã®èª¤å·®ãè©ä¾¡ãã¾ãããã
ä»»æã®å®æ° $x$ ã«å¯¾ãã¦ã$|{\roundcirc{x}}|\lt\infty$ ã§ããã°ããã宿° $|\theta|\lt 2^{-53}$ ãåå¨ã㦠$\roundcirc{x} = (1+\theta)x$ ã¨ãªãã¾ãã
Claim 4 : ãã宿° $|\theta_1|, \dots, |\theta_n|\le 2^{-53}$ ãåå¨ãã¦ä¸è¨ãæãç«ã¤ã
$$
\hat p(\angled{a_0, \dots, a_n}, x) = \left(\sum_{i=0}^{n-1} \left(\prod_{j=1}^{i+1} (1+\theta_j)\right)a_ix^i\right) + \left(\prod_{j=1}^{n}(1+\theta_j)\right)a_nx^n.
$$
Proof
宿° $|\theta_1|, \dots, |\theta_n|\le 2^{-53}$ ãç¨ãã¦
$$
\begin{aligned}
\hat p(\angled{a_{n-1}, a_n}, x)
&= (1+\theta_n)(a_nx+a_{n-1}), \\
\hat p(\angled{a_i, a_{i+1}, \dots, a_n}, x)
&= (1+\theta_{i+1})( (\hat p(\angled{a_{i+1}, \dots, a_n}, x)x+a_i)
\end{aligned}
$$
ã¨è¡¨ããã
$0\le k\le n-1$ ã«å¯¾ãããã宿° $|\theta_{k+1}|, \dots, |\theta_n|\le 2^{-53}$ ãåå¨ãã¦
$$
\hat p(\angled{a_k, \dots, a_n}, x) = \left(\sum_{i=k}^{n-1} \left(\prod_{j=k+1}^{i+1} (1+\theta_j)\right)a_ix^{i-k}\right) + \left(\prod_{j=k+1}^{n}(1+\theta_j)\right)a_nx^{n-k}
$$
ã¨è¡¨ãããã¨ã $P(k)$ ã¨æ¸ãã$P(0)$ ã示ãã
To-be-proved 1 : $P(n-1)$
$$
\begin{aligned}
&\phantom{{}={}} \hat p(\angled{a_{n-1}, a_n}, x) \\
&= \left(\sum_{i=n-1}^{n-1} \left(\prod_{j=n}^{i+1} (1+\theta_j)\right)a_ix^{i-(n-1)}\right) + \left(\prod_{j=1}^{n}(1+\theta_j)\right)a_nx^{n-(n-1)} \\
&= (1+\theta_n)a_{n-1}x^0 + (1+\theta_n)a_nx^1 \\
&= (1+\theta_n)(a_nx+a_{n-1}).
\end{aligned}
$$
To-be-proved 2 : $k\ge 1\wedge P(k) \implies P(k-1 )$
$$
\begin{aligned}
&\phantom{{}={}} \hat p(\angled{a_{k-1 }, a_k, \dots, a_n}, x) \\
&= (\hat p(\angled{a_k, \dots, a_n}, x)x+a_{k-1 })(1+\theta_k) \\
&= \hat p(\angled{a_k, \dots, a_n}, x)\cdot (1+\theta_k) x+a_{k-1 }(1+\theta_k) \\
&= \left(\sum_{i=k}^{n-1} \left(\prod_{j=k}^{i+1} (1+\theta_j)\right)a_ix^{i-k+1}\right) + \left(\prod_{j=k}^{n}(1+\theta_j)\right)a_nx^{n-k+1} + (1+\theta_k)a_{k-1 } \\
&= \left(\sum_{i=k-1 }^{n-1} \left(\prod_{j=(k-1 )+1}^{i+1} (1+\theta_j)\right)a_ix^{i-(k-1 )}\right) \\ &\qquad + \left(\prod_{j=(k-1 )+1}^{n}(1+\theta_j)\right)a_nx^{n-(k-1 )}.\quad\qed
\end{aligned}
$$
Corollary 5 : $a = \angled{a_0, \dots, a_n}$ ã«å¯¾ããä¸è¨ãæãç«ã¤ã
$$ |\hat p(a, x) - a(x)| \le ( (1+2^{-53})^n-1)\sum_{i=0}^n |a_ix^i|. $$
Proof
å $1\le i\le n$ ã«å¯¾ã㦠$1+\delta_i=\prod_{j=1}^i (1+\theta_j)$ ãæãç«ã¤ããã« $\delta_i$ ãå®ããã¨ã
$$
\begin{aligned}
&\phantom{{}={}} {\left|\hat p(\angled{a_0, \dots, a_n}, x) - \left(\sum_{i=0}^n a_ix^i\right)\right|} \\
&= \left|\left(\sum_{i=0}^{n-1} \delta_i a_ix^i\right) + \delta_n a_nx^n\right| \\
&\le ( (1+2^{-53})^n-1)\sum_{i=0}^n |a_ix^i|. \qquad\qed
\end{aligned}
$$
Newtonâs method
Taylor theorem ãªã©ãç¨ããä¸è¬è«ã¯ã¾ãã®æ©ä¼ã«ãã¾ããï¼å¾®å ãªã©ã«ãã£ã¦å°åºãããï¼æ´æ°å¼ãå復ãããã¨ã§ãçã®å¤ã¨ã®èª¤å·®ãç´ æ©ãå°ããããæ¹æ³ã§ãã
Lemma 6 : 宿° $x$, $y$ ($x\ge 0$) ã«å¯¾ãã¦ã$\varepsilon = y-\sqrt x$ ã¨å®ç¾©ããããã®ã¨ãã
$$ y' = \frac12\cdot\left(y+\frac xy\right) $$
ã§å®ç¾©ãã$\varepsilon' = y'-\sqrt x$ ã¨ããã¨ã
$$ \varepsilon' = \frac{\varepsilon^2}{2y} $$
ãæãç«ã¤ã
Proof
$$
\begin{aligned}
y' &= \frac12\cdot\left( (\sqrt x+\varepsilon) + \frac x{\sqrt x+\varepsilon}\right) \\
&= \frac12\cdot\left( (\sqrt x+\varepsilon) + \frac{x-\varepsilon^2+\varepsilon^2}{\sqrt x+\varepsilon}\right) \\
&= \frac12\cdot\left( (\sqrt x+\varepsilon) + (\sqrt x-\varepsilon) + \frac{\varepsilon^2}{\sqrt x+\varepsilon}\right) \\
&= \sqrt x + \frac12\cdot\frac{\varepsilon^2}{\sqrt x+\varepsilon} \\
&= \sqrt x + \frac{\varepsilon^2}{2y}. \quad\qed
\end{aligned}
$$
Lemma 7 :
æµ®åå°æ°ç¹æ° $x, y^{(i)} \in[1\lldot 4)$ ã«å¯¾ãã¦ã$\varepsilon_i = y^{(i)} - \sqrt x$ ã¨å®ç¾©ãããã¾ãã$y^{(i+1)} = 0.5\otimes(y^{(i)}\oplus(x\oslash y^{(i)}) )$ ããã³ $\varepsilon_{i+1} = y^{(i+1)}-\sqrt x$ ã¨ããã$|\varepsilon_i|\le\sqrt{4-3\cdot 2^{-52}}$ ãªãã°ã
$y^{(i+1)}\in[1\lldot 4)$, and
$\varepsilon_{i+1} \in [-3\cdot 2^{-53}\lldot \frac12\varepsilon_i^2+3\cdot 2^{-53}]$
ãæãç«ã¤ããªãã$\sqrt{4-3\cdot 2^{-52}}\gt 1.999$ ãæãç«ã¤ã
Proof
$x$, $y^{(i)}$ ã®ç¯å²ããã$\frac xy\in[\frac14\lldot 4)$ ã§ããããã宿° $|\theta_{\oslash}|\le 2^{-52}$ ãåå¨ãã$x\oslash y^{(i)} = \frac x{y^{(i)}}+\theta_{\oslash}$ ãæãç«ã¤ã
To-be-proved 1 : $y^{(i+1)}\ge 1$
$\frac12(y^{(i)}+(x\oslash y^{(i)}) )\ge 1-2^{-54}$ ãªãã° $y^{(i+1)} = 0.5\otimes(y^{(i)}\oplus(x\oslash y^{(i)}) )\ge 1$ ãªã®ã§ã$y^{(i)}+(x\oslash y^{(i)})\ge 2-2^{-53}$ ã示ãã°ããã
Case 1 : $\frac x{y^{(i)}}\in [2\lldot 4)$
$y^{(i)}\ge 1$ ããã
$$
\begin{aligned}
y^{(i)}+\frac x{y^{(i)}}+\theta_{\oslash}
&\ge 1+2-2^{-52} \\
&\ge 2-2^{-53}.
\end{aligned}
$$
Case 2 : $\frac x{y^{(i)}}\in [\frac14\lldot 2)$
ãã®ã¨ãã$|\theta_{\oslash}|\le 2^{-53}$ ãæãç«ã¤ã$x, y^{(i)}\ge 1$ ãããç¸å ã»ç¸ä¹å¹³åã®é¢ä¿ãã
$$
\begin{aligned}
y^{(i)}+\frac x{y^{(i)}}+\theta_{\oslash}
&\ge 2\cdot\sqrt{y^{(i)}\cdot\frac{x\mathstrut}{y^{(i)}}} + \theta_{\oslash} \\
&= 2\sqrt x + \theta_{\oslash} \\
&\ge 2-2^{-53}.
\end{aligned}
$$
To-be-proved 2 : $y^{(i+1)}\lt 4$
$\frac12(y^{(i)}+(x\oslash y^{(i)}) )\le 4-2^{-52}$ ãªãã° $y^{(i+1)} \lt 4$ ãªã®ã§ã$y^{(i)}+(x\oslash y^{(i)})\le 8-2^{-51}$ ã示ãã°ããã
$|\theta_{\oslash}|\le 2^{-52}$ ããã$y^{(i)}+\frac x{y^{(i)}}\le 8-3\cdot 2^{-52}$ ã示ãã°ååã
Lemma 6 ãã
$$
\begin{aligned}
y^{(i)}+\frac x{y^{(i)}}
&= 2\sqrt x + \frac{\varepsilon_i^2}{y^{(i)}} \\
&\le 2\cdot 2 + \frac{\sqrt{4-3\cdot 2^{-52}}^2}1 \\
&= 4 + 4-3\cdot 2^{-52}
\end{aligned}
$$
To-be-proved 3 : $\varepsilon_{i+1}\in [-3\cdot 2^{-53}\lldot \frac12\varepsilon_i^2+3\cdot 2^{-53}]$
$y^{(i)}+(x\oslash y^{(i)})\in[2\lldot 8)$ ããããã宿° $|\theta_{\oplus}|\le 2^{-51}$ ãåå¨ãã¦ãä¸è¨ãæãç«ã¤ã
$$
\begin{aligned}
y^{(i+1)} &= \frac12\cdot\left(y^{(i)}+\frac x{y^{(i)}}+\theta_{\oslash}+\theta_{\oplus}\right) \\
&= \frac12\cdot\left(2\sqrt x+\frac{\varepsilon_i^2}{y^{(i)}} + \theta_{\oslash}+\theta_{\oplus}\right) \\
&= \sqrt x + \frac{\varepsilon_i^2}{2y^{(i)}} + \frac12\cdot\left(\theta_{\oslash}+\theta_{\oplus}\right).
\end{aligned}
$$
ãã£ã¦ã
$$
\begin{aligned}
\varepsilon_{i+1} &= y^{(i+1)}-\sqrt x \\
&= \frac{\varepsilon_i^2}{2y^{(i)}} + \frac12\cdot\left(\theta_{\oslash}+\theta_{\oplus}\right) \\
&\le \frac{\varepsilon_i^2}2 + \frac12\cdot(2^{-52} + 2^{-51}) \\
&\le \frac{\varepsilon_i^2}2 + 3\cdot 2^{-53}.
\end{aligned}
$$
ã¾ãã
$$
\begin{aligned}
\varepsilon_{i+1}
&= \frac{\varepsilon_i^2}{2y^{(i)}} + \frac12\cdot\left(\theta_{\oslash}+\theta_{\oplus}\right) \\
&\ge 0 - \frac12\cdot(2^{-52} + 2^{-51}) \\
&\ge - 3\cdot 2^{-53}. \quad\qed
\end{aligned}
$$
$\delta_- = 3\cdot 2^{-53}$ ããã³ $\delta_+ = 2^{-26.5}$ ã¨ãã¾ãã
$\delta_- \gt 3.330\times 10^{-16}$ ããã³ $\delta_+ \gt 1.053\times 10^{-8}$ ãæãç«ã¡ã¾ãã
Lemma 8 : Lemma 7 ã®æ¡ä»¶ã«å ã㦠$\varepsilon_i\in[-\delta_-\lldot 0]$ ãæãç«ã¤ã¨ãã$y^{(i+1)}\le 2$ ãæãç«ã¤ã
Proof
$\frac x{y^{(i)}}\le 4$ ã§ããããã宿° $|\theta_{\oslash}|\le 2^{-52}$ ãåå¨ã㦠$x\oslash y^{(i)} = (x\div y^{(i)})+\theta_{\oslash}$ ãæãç«ã¤ã
$$
\begin{aligned}
&\phantom{{}={}} \tfrac12\cdot (y^{(i)} + (x\oslash y^{(i)}) ) \\
&= \sqrt x + \frac{\varepsilon_i^2}{2y^{(i)}} + \frac{\theta_{\oslash}}2 \\
&\le 2 + 9\cdot 2^{-2\cdot 53-1} + 2^{-53} \\
&\lt 2 + 2^{-52}.
\end{aligned}
$$
ãã£ã¦ã$y^{(i+1)}\le 2$ ãæãç«ã¤ã$\qed $
Lemma 9 : Lemma 7 ã®æ¡ä»¶ã«å ã㦠$\varepsilon_i\in[0\lldot \delta_+]$ ãæãç«ã¤ã¨ãã$y^{(i+1)}\le 2$ ãæãç«ã¤ã
Proof
$$
\begin{aligned}
\frac x{y^{(i)}}
&= \frac x{\sqrt x+\varepsilon_i} \\
&\le \frac x{\sqrt x+0} \\
&= \sqrt x\le 2
\end{aligned}
$$
ããããã宿° $|\theta_{\oslash}|\le 2^{-53}$ ãåå¨ã㦠$x\oslash y^{(i)} = (x\div y^{(i)})+\theta_{\oslash}$ ãæãç«ã¤ã
$$
\begin{aligned}
&\phantom{{}={}} \tfrac12\cdot (y^{(i)} + (x\oslash y^{(i)}) ) \\
% &= (\sqrt x+\varepsilon_i) + \left(\sqrt x-\varepsilon_i + \frac{\varepsilon_i^2}{\sqrt x+\varepsilon_i} + \theta_{\oslash}\right) \\
&= \sqrt x + \left(\frac{\varepsilon_i^2}{2(\sqrt x+\varepsilon_i)} + \frac{\theta_{\oslash}}2\right) \\
&\le 2 + \frac{\delta_+^2}{2\cdot(1+0)} + 2^{-53-1} \\
&\lt 2 + 2^{-52}.
\end{aligned}
$$
ãã£ã¦ã$y^{(i+1)}\le 2$ ãæãç«ã¤ã$\qed $
Lemma 10 : $x\in(0\lldot \tfrac14)$ ãªãã° $\sqrt{1-3x} \gt 1-2x$ ãæãç«ã¤ã
Proof
$$
\begin{aligned}
\sqrt{1-3x}\gt 1-2x
&\iff 1-3x \gt 1-4x+x^2 \\
&\iff x\gt x^2 \\
&\iff (x-\tfrac12)^2\lt \tfrac14. \quad\qed
\end{aligned}
$$
Lemma 11 : Lemma 7 ã®æ¡ä»¶ã«å ã㦠$\varepsilon_i\in[-\delta_-\lldot 0]$ ã㤠$x/y^{(i)}\in(2\lldot 4)$ ãªãã°ã$(x, y) = (4-2^{-51}, 2-2^{-51})$ ãæãç«ã¤ã
Proof
$y^{(i)}\in[\sqrt x-3\cdot 2^{-53}\lldot\sqrt x]\cap (x/4\lldot x/2)$ã
$y^{(i)}\in[\sqrt x-3\cdot 2^{-53}\lldot x/2)\ne\emptyset$ ãå¿
è¦ã$x\ge 0$ ã«æ°ãã¤ã㦠$\sqrt x-3\cdot 2^{-53}\le x/2$ ãè§£ãã¨
$$
\begin{aligned}
&\phantom{{}\iff{}} x-2\sqrt x+3\cdot 2^{-52} \ge 0 \\
&\iff (\sqrt x-1)^2-1+3\cdot 2^{-52} \ge 0 \\
&\iff (\sqrt x-1)^2 \ge 1-3\cdot 2^{-52} \\
&\iff |\sqrt x-1| \ge \sqrt{1-3\cdot 2^{-52}} \\
&\iff \sqrt x \ge 1+\sqrt{1-3\cdot 2^{-52}} \\
&\iff x \ge (1+\sqrt{1-3\cdot 2^{-52}})^2.
\end{aligned}
$$
$$
\begin{aligned}
(1+\sqrt{1-3\cdot 2^{-52}})^2
&= 1 + 2\sqrt{1-3\cdot 2^{-52}} + (1-3\cdot 2^{-52}) \\
&= 2 + 2\sqrt{1-3\cdot 2^{-52}} - 3\cdot 2^{-52} \\
&\ge 2 + 2\cdot(1-2\cdot 2^{-52}) - 3\cdot 2^{-52} \\
&= 4 - 3.5\cdot 2^{-51} \\
\end{aligned}
$$
ãªã®ã§ã$x\ge 4-3\cdot 2^{-51}$ ãå¿
è¦*1 ã
Case 1 : $x = 4-3\cdot 2^{-51}$
$$
\begin{aligned}
\sqrt{4-3\cdot 2^{-51}}-3\cdot 2^{-53}
&= 2\sqrt{1-3\cdot 2^{-53}} - 3\cdot 2^{-53} \\
&\gt 2\cdot(1-2\cdot 2^{-53}) - 3\cdot 2^{-53} \\
&= 2-3.5\cdot 2^{-52}
\end{aligned}
$$
ãã $y^{(i)}\ge 2-3\cdot 2^{-52}$ ãå¿
è¦ã䏿¹ $y^{(i)}\lt x/2 = 2-3\cdot 2^{-52}$ ãå¿
è¦ãªããããããæºãã $y^{(i)}$ ã¯åå¨ããªãã
Case 2 : $x = 4-2\cdot 2^{-51}$
$$
\begin{aligned}
\sqrt{4-2\cdot 2^{-51}}-3\cdot 2^{-53}
&= 2\sqrt{1-2\cdot 2^{-53}} - 3\cdot 2^{-53} \\
&\gt 2\cdot(1-\tfrac43\cdot 2^{-53}) - 3\cdot 2^{-53} \\
&\gt 2-2.9\cdot 2^{-52}
\end{aligned}
$$
ãã $y^{(i)}\ge 2-2\cdot 2^{-52}$ ãå¿
è¦ã䏿¹ $y^{(i)}\lt x/2 = 2-2\cdot 2^{-52}$ ãå¿
è¦ãªããããããæºãã $y^{(i)}$ ã¯åå¨ããªãã
Case 3 : $x = 4-2^{-51}$
$$
\begin{aligned}
\sqrt{4-2^{-51}}-3\cdot 2^{-53}
&= 2\sqrt{1-2^{-53}} - 3\cdot 2^{-53} \\
&\gt 2\cdot(1-\tfrac23\cdot 2^{-53}) - 3\cdot 2^{-53} \\
&\gt 2-2.2\cdot 2^{-52}
\end{aligned}
$$
ãã $y^{(i)}\ge 2-2\cdot 2^{-52}$ ãå¿
è¦ã䏿¹ $y^{(i)}\lt x/2 = 2-2^{-52}$ ãå¿
è¦ãªããããããæºãã $y^{(i)}$ 㯠$2-2\cdot 2^{-52} = 2-2^{-51}$ ããåå¨ããªããéã«ãä¸è¨ããã¹ã¦æãç«ã¤ãã¨ã¯å®¹æã«ç¢ºãããããã
$$
\begin{aligned}
2-2^{-51} &\ge \sqrt{4-2^{-51}}-3\cdot 2^{-53}; \\
2-2^{-51} &\le \sqrt{4-2^{-51}}; \\
2-2^{-51} &\gt \tfrac14\cdot(4-2^{-51}); \\
2-2^{-51} &\lt \tfrac12\cdot(4-2^{-51}). \quad\qed
\end{aligned}
$$
Lemma 12 : Lemma 7 ã®æ¡ä»¶ã«å ã㦠$\varepsilon_i\in[-\delta_-\lldot 0]$ ãæãç«ã¤ã¨ãã$|\varepsilon_{i+1}|\le 2^{-52}$ ãæãç«ã¤ã
Proof
To-be-proved 1 : $\varepsilon_{i+1}\ge -2^{-52}$
$\frac x{y^{(i)}}\in[\frac14\lldot 4)$ ããã宿° $|\theta_{\oslash}|\le 2^{-52}$ ãåå¨ã㦠$x\oslash y^{(i)} = (x\div y^{(i)})+\theta_{\oslash}$ ãæãç«ã¤ã
ã¾ããLemma 8 ããã宿° $|\theta_{\oplus}|\le 2^{-52}$ ãåå¨ã㦠$y^{(i)}\oplus(x\oslash y^{(i)}) = y^{(i)}+(x\oslash y^{(i)})+\theta_{\oplus}$ ãæãç«ã¤ã
$$
\begin{aligned}
y^{(i+1)} &= \frac12\cdot \left(y^{(i)} + \frac x{y^{(i)}} + \theta_{\oslash} + \theta_{\oplus}\right) \\
&= \sqrt x + \left(\frac{\varepsilon_i^2}{2(\sqrt x+\varepsilon_i)} + \frac{\theta_{\oslash} + \theta_{\oplus}}2\right)
\end{aligned}
$$
ããã
$$
\begin{aligned}
\varepsilon_{i+1} &= y^{(i+1)} - \sqrt x \\
&= \frac{\varepsilon_i^2}{2(\sqrt x+\varepsilon_i)} + \frac12\left(\theta_{\oslash} + \theta_{\oplus}\right) \\
&\ge \frac{0^2}{2(\sqrt x+\varepsilon_i)} - 2^{-52}.
\end{aligned}
$$
To-be-proved 2 : $\varepsilon_{i+1}\le 2^{-52}$
Case 1 : $\frac x{y^{(i)}}\in [\tfrac14\lldot 2]$
$|\theta_{\oslash}|\le 2^{-53}$ ãæãç«ã¤ããã
$$
\begin{aligned}
\varepsilon_{i+1}
&= \frac{\varepsilon_i^2}{2(\sqrt x+\varepsilon_i)} + \frac12\left(\theta_{\oslash} + \theta_{\oplus}\right) \\
&\le \frac{\delta_-^2}{2(1-\delta_-)} + 2^{-54} + 2^{-53} \\
&= \frac{9\cdot 2^{-106}}{2(1-3\cdot 2^{-53})} + 3\cdot 2^{-54} \\
&\lt 2^{-52}.
\end{aligned}
$$
Case 2 : $\frac x{y^{(i)}}\in (2\lldot 4)$
Lemma 11 ãããæ¡ä»¶ãæºãã $(x, y^{(i)})$ 㯠$(4-2^{-51}, 2-2^{-51})$ ã®ã¿ã§ããã
$$
\begin{aligned}
\frac x{y^{(i)}} &= \frac{4-2^{-51}}{2-2^{-51}} \\
&= \frac{4-2^{-50}+2^{-51}}{2-2^{-51}} \\
&= 2 + \frac{2^{-51}}{2-2^{-51}}
\end{aligned}
$$
$2^{-52} \lt \frac{2^{-51}}{2-2^{-51}} \lt 3\cdot 2^{-52}$ ããã$x\oslash y^{(i)} = 2+2^{-51}$ ã¨ãªãããã£ã¦ã
$$ y^{(i)} \oplus (x\oslash y^{(i)}) = \roundcirc{(2-2^{-51}) + (2+2^{-51})} = 4 $$
ã§ããã$y^{(i+1)}=2$ ã¨ãªãã
$$
\begin{aligned}
\varepsilon_{i+1}
&= y^{(i+1)} - \sqrt x \\
&= 2 - \sqrt{4-2^{-51}} \\
&= 2 - 2\sqrt{1-2^{-53}} \\
&\lt 2 - 2\cdot(1-\tfrac23\cdot 2^{-53}) \\
&\lt 2^{-52}. \quad\qed
\end{aligned}
$$
Lemma 13 : Lemma 7 ã®æ¡ä»¶ã«å ã㦠$\varepsilon_i\in[0\lldot \delta_+]$ ãæãç«ã¤ã¨ãã$|\varepsilon_{i+1}|\le 2^{-52}$ ãæãç«ã¤ã
Proof
$$
\begin{aligned}
|(x\div y^{(i)}) - (x\oslash y^{(i)})| &\le 2^{-53}, \\
|(y^{(i)}+(x\oslash y^{(i)}) )-(y^{(i)}\oplus(x\oslash y^{i}) )| &\le 2^{-52}
\end{aligned}
$$
ãæãç«ã¤ã®ã§ãä¸è§ä¸çå¼ãã
$$
\left|\left(\sqrt x+\frac{\varepsilon_i^2}{2y^{(i)}}\right) - \left(0.5\otimes(y^{(i)}\oplus (x\oslash y^{(i)}) ) \right)\right| \le 2^{-53} + 2^{-54}
$$
ã§ããã
$$
\begin{aligned}
|\sqrt x-y^{(i+1)}|
&\le \frac{\varepsilon_i^2}{2y^{(i)}} + 3\cdot 2^{-54} \\
&\lt 2^{2\cdot (-26.5)-1} + 3\cdot 2^{-54} \\
&= 2^{-52}. \quad\qed
\end{aligned}
$$
Lemmata 8â13 ãã¾ã¨ããã¨ã$\varepsilon_i\in[-\delta_-\lldot \delta_+]$ ãªãã° $|\varepsilon_{i+1}|\le 2^{-52}$ ã㤠$y^{(i+1)}\in [1\lldot 2]$ ãæãç«ã¤ã¨ãããã¨ã§ãã
æ£å½æ§ã®è¨¼æ
ãããããã£ã¦ããã¾ãããã
Claim 14 :
$y^{(0)} = \iversonbracket{x\lt 2}\hat p(a^{[1]}, x) + \iversonbracket{x\ge 2}\hat p(a^{[2]}, x)$ ã¨ãã$\varepsilon_0 = y^{(0)}-\sqrt x$ ã¨ããã
ãã®ã¨ãã$|\varepsilon_0|\lt 1.161\times 10^{-4}$ ãæãç«ã¤ã
Proof
$(1+2^{-53})^3-1 \lt 3.331\times 10^{-16}$ ãæãç«ã¤ã
Corollary 5 ããã$x\in[1\lldot 2)$ ã®ç¯å²ã§
$$
\begin{aligned}
|\hat p(a^{[1]}, x)-a^{[1]}(x)|
&\le ( (1+2^{-53})^3-1)\cdot \sum_{i=0}^3 {|a^{[1]}_i\cdot x^i|} \\
&\lt (3.331\times 10^{-16}) \cdot \sum_{i=0}^3 {|a^{[1]}_i\cdot 2^i|} \\
&\lt (3.331\times 10^{-16}) \cdot 2.860 \\
&\lt 9.527 \times 10^{-16}
\end{aligned}
$$
ãæãç«ã¤ãClaim 2 ã¨ä¸è§ä¸çå¼ãã
$$
\begin{aligned}
|\hat p(a^{[1]}, x)-\sqrt x|
&\le |\hat p(a^{[1]}, x)-a^{[1]}(x)| + |a^{[1]}(x)-\sqrt x| \\
&\lt 9.527 \times 10^{-16} + 8.20594\times 10^{-5} \\
&\lt 8.206\times 10^{-5}.
\end{aligned}
$$
åæ§ã«ã$x\in[2\lldot 4)$ ã®ç¯å²ã§
$$
\begin{aligned}
|\hat p(a^{[2]}, x)-a^{[2]}(x)|
&\le ( (1+2^{-53})^3-1)\cdot \sum_{i=0}^3 {|a^{[2]}_i\cdot x^i|} \\
&\lt (3.331\times 10^{-16}) \cdot \sum_{i=0}^3 {|a^{[2]}_i\cdot 4^i|} \\
&\lt (3.331\times 10^{-16}) \cdot 4.045 \\
&\lt 1.348 \times 10^{-15}
\end{aligned}
$$
ãæãç«ã¤ãä¸è§ä¸çå¼ãã
$$
\begin{aligned}
|\hat p(a^{[2]}, x)-\sqrt x|
&\le |\hat p(a^{[2]}, x)-a^{[2]}(x)| + |a^{[2]}(x)-\sqrt x| \\
&\lt 1.348\times 10^{-15} + 1.16050\times 10^{-4} \\
&\lt 1.161\times 10^{-4}. \quad\qed
\end{aligned}
$$
Claim 15 :
$y^{(1)} = 0.5\otimes(y^{(0)} \oplus (x\oslash y^{(0)}) )$ ã¨ãã$\varepsilon_1 = y^{(1)}-\sqrt x$ ã¨ããã
ãã®ã¨ãã$\varepsilon_1\in[-\delta_-\lldot 6.740\times 10^{-9})$ ãæãç«ã¤ã
Proof
Claim 14 ãã $|\varepsilon_0| \lt 1.161\times 10^{-4}$ ãªã®ã§ãLemma 7 ãã $\varepsilon_1 \in [-\delta_- \lldot \frac12\varepsilon_0^2+3\cdot 2^{-53}]$ ãæãç«ã¤ã
$$
\begin{aligned}
\tfrac12\varepsilon_0^2+3\cdot 2^{-53}
&\lt 0.5\cdot (1.161\times 10^{-4})^2 + 3.331 \times 10^{-16} \\
&\lt 6.740\times 10^{-9}. \quad\qed
\end{aligned}
$$
Claim 16 :
$y^{(2)} = 0.5\otimes(y^{(1)} \oplus (x\oslash y^{(1)}) )$ ã¨ãã$\varepsilon_2 = y^{(2)}-\sqrt x$ ã¨ããã
ãã®ã¨ãã$y^{(2)}\in[1\lldot 2]$ ã㤠$|\varepsilon_2|\lt 2^{-52}$ ãæãç«ã¤ã
Proof
Claim 15 ããã$\varepsilon_1 \in [-\delta_- \lldot 6.740\times 10^{-9})\subset[-\delta_-\lldot\delta_+]$ ãæãç«ã¤ããã£ã¦ãLemmata 7â13 ããå¾ãã$\qed $
Lemma 17 : $\roundcirc{\sqrt x} \in \{y^{(2)}\ominus 2^{-52}, y^{(2)}, y^{(2)}\oplus 2^{-52}\}$ ãæãç«ã¤ã
Proof
Claim 16 ãã $y^{(2)}-2^{-52}\le \sqrt x\le y^{(2)}+2^{-52}$ ã§ããã
Case 1 : $y^{(2)} = 1$
$x\in[1\lldot 4)$ ã§ããããã$\sqrt x\in [1\lldot 2)\cap[1-2^{-52}\lldot 1+2^{-52}] = [1\lldot 1+2^{-52}]$ ã§ããã
ãã£ã¦ã$\roundcirc{\sqrt x} \in\{1, 1+2^{-52}\}\subset\{y^{(2)}\ominus 2^{-52}, y^{(2)}, y^{(2)}\oplus 2^{-52}\}$ ãæãç«ã¤ã
Case 2 : $y^{(2)} = 2$
$2\oplus 2^{-52} = 2$ ã§ããããã$\sqrt x\in\{2-2^{-52}, 2\}\subset\{y^{(2)}\ominus 2^{-52}, y^{(2)}, y^{(2)}\oplus 2^{-52}\}$ ãæãç«ã¤ã
Case 3 : $y^{(2)}\in(1\lldot 2)$
$y^{(2)}\ominus 2^{-52} = y^{(2)}-2^{-52}$ ããã³ $y^{(2)}\oplus 2^{-52} = y^{(2)}+2^{-52}$ ã§ããã
$[1\lldot 2]$ ã®ç¯å²ã®æµ®åå°æ°ç¹æ° 㯠$2^{-52}$ ã®åæ°ã§ãããã¨ããå¾ãã$\qed $
ãã¦ã
$$
\begin{aligned}
I_1 &= [y^{(2)}-2^{-52}\lldot y^{(2)}-2^{-53}), \\
I_2 &= (y^{(2)}-2^{-53}\lldot y^{(2)}+2^{-53}), \\
I_3 &= (y^{(2)}-2^{-53}\lldot y^{(2)}+2^{-52}]
\end{aligned}
$$
ã¨ããã¨ã$\sqrt x\in I_1\sqcup I_2\sqcup I_3$ ãæãç«ã¡ã¾ãã$\sqrt x \notin \{y^{(2)}-2^{-53}, y^{(2)}+2^{-53}\}$ 㯠(1) ã®è¨äº ã® Claim 2 ããå¾ãã¾ãããã£ã¦ãä¸è¨ãæãç«ã¡ã¾ãã
$$
\begin{aligned}
\roundcirc{\sqrt x}
&= \begin{cases}
y^{(2)}\ominus 2^{-53}, & \text{if}\: y^{(2)}\in I_1; \\
y^{(2)}, & \text{if}\: y^{(2)}\in I_2; \\
y^{(2)}\oplus 2^{-53}, & \text{if}\: y^{(2)}\in I_3
\end{cases} \\
&= \begin{cases}
y^{(2)}\ominus 2^{-53}, & \text{if}\: \sqrt x \lt y^{(2)}-2^{-53}; \\
y^{(2)}\oplus 2^{-53}, & \text{if}\: \sqrt x \gt y^{(2)}+2^{-53}; \\
y^{(2)}, & \text{otherwise}
\end{cases} \\
&= \begin{cases}
y^{(2)}\ominus 2^{-53}, & \text{if}\: x \lt (y^{(2)}-2^{-53})^2; \\
y^{(2)}\oplus 2^{-53}, & \text{if}\: x \gt (y^{(2)}+2^{-53})^2; \\
y^{(2)}, & \text{otherwise}.
\end{cases} \\
\end{aligned}
$$
Claim 18 : æµ®åå°æ°ç¹æ° $x\in[1\lldot 4)$ ããã³ $y\in [1\lldot 2)$ ã«å¯¾ãã¦ã$$(y+2^{-53})^2\lt x \iff \roundcirc{y\times(y\oplus 2^{-52}) + (-x)} \lt 0$$ ãæãç«ã¤ã
Proof : (1) ã®è¨äº ã® Claims 2, 3 ããå¾ãã$\qed $
Claim 19 : æµ®åå°æ°ç¹æ° $x\in[1\lldot 4)$ ããã³ $y\in [1\lldot 2)$ ã«å¯¾ãã¦ã$$(y-2^{-53})^2\gt x \iff \roundcirc{y\times(y\ominus 2^{-52}) + (-x)} \ge 0$$ ãæãç«ã¤ã
Proof
$y\in(1\lldot 2)$ ã®ã¨ããClaim 18 ã® $y$ ã $y-2^{-52}$ ã§ç½®ãæããã°ããã
以ä¸ã$y=1$ ã«ã¤ãã¦èããã
左辺ã«ã¤ãã¦ã$(1-2^{-53})^2\ge x$ ã㤠$x\ge 1$ ãªã $x$ ã¯åå¨ããªãã
å³è¾ºã«ã¤ãã¦ã
$$
\begin{aligned}
1\times(1\ominus 2^{-52}) + (-x)
&= (1-2^{-52})-x \\
&\le -2^{-52}
\end{aligned}
$$
ããã$\roundcirc{1\times(1\ominus 2^{-52}) + (-x)}\lt 0$ ã§ããããã¡ããæ¡ä»¶ãæºãã $x$ ã¯åå¨ããªãã$\qed $
Claim 20 : ä¸è¨ã®æç¶ãã«ãã£ã¦è¿ãããå¤ã¯ $\roundcirc{\sqrt x}$ ã«çããã
Proof
Case 1 : $\sqrt x\in I_1$
Claim 19 ããå¾ãã
Case 2 : $\sqrt x\in I_2$
$y^{(2)}\lt 2$ ã®å ´å㯠Claims 18â19 ããå¾ãã$y^{(2)}=2$ ã®å ´å㯠$y^{(2)}=y^{(2)}\oplus 2^{-52}=2$ ããå¾ãã
Case 3 : $\sqrt x\in I_3$
$y^{(2)}\lt 2$ ã®å ´å㯠Claim 18 ããå¾ãã$y^{(2)}=2$ ã®å ´å㯠$y^{(2)}=y^{(2)}\oplus 2^{-52}=2$ ããå¾ãã$\qed $
å®è£
å®è£
const A0: f64 = 0.37135166014697829073298862567753531038761138916015625 ;
const A1: f64 = 0.78494263528793106754477548747672699391841888427734375 ;
const A2: f64 = - 0.180689144911217069999764817112009041011333465576171875 ;
const A3: f64 = 0.0244769088312593204037614924573063035495579242706298828125 ;
const B0: f64 = 0.52517055418962110824310229872935451567173004150390625 ;
const B1: f64 = 0.55503826025453506520790369904716499149799346923828125 ;
const B2: f64 = - 0.06388325982676017200656559680282953195273876190185546875 ;
const B3: f64 = 0.004326947054267089344536945105801351019181311130523681640625 ;
const TWO_PM52: f64 = 2.220446049250313080847263336181640625e-16 ;
fn sqrt (x: f64 ) -> f64 {
if x < 0.0 {
return f64 :: NAN;
}
if x == 0.0 || x.is_infinite () || x.is_nan () {
return x;
}
let (x_m, x_e) = match frexp (x) {
(m, e) if e % 2 == 0 => (4.0 * m, e - 2 ),
(m, e) => (2.0 * m, e - 1 ),
};
assert_eq! (x_e % 2 , 0 );
assert! (1.0 <= x_m && x_m < 4.0 );
let mut y = if x_m < 2.0 {
A3.mul_add (x_m, A2).mul_add (x_m, A1).mul_add (x_m, A0)
} else {
B3.mul_add (x_m, B2).mul_add (x_m, B1).mul_add (x_m, B0)
};
y = 0.5 * (y + x_m / y);
y = 0.5 * (y + x_m / y);
y = if y.mul_add (y - TWO_PM52, - x_m) >= 0.0 {
y - TWO_PM52
} else if y.mul_add (y + TWO_PM52, - x_m) < 0.0 {
y + TWO_PM52
} else {
y
};
ldexp (y, x_e / 2 )
}
ææ
ç²ãã¾ããã
ä¸çå¼è©ä¾¡ã䏿ããã¦ä¸çããã£ãããå½ã®å½é¡ã示ããã¨ãã¦ãããã示ããã¨æã£ãã off-by-one ãééã£ã¦ãã¦ç ´ç¶»ãã¦ãããããªããããããããã§ãã
ã¨ã¯ãã Newton æ³ã§ããã£ã¨ããæãã«ã§ããã®ã示ããã®ã§æºè¶³ã§ã¯ããã¾ãã
ä»åã¯ãï¼è¨¼æã®ãã¼ãã§ä½¿ã£ãã®ä»¥å¤ã¯ï¼æ´æ°åãªãã§è¨ç®ãå®çµãããããã®ã§ãã¡ãã£ã¨ããéææãããã¾ãããFMA ã使ãã®ã¯çãããããã¾ããï¼ï¼ï¼ï¼ï¼
å®ç¾©åã颿£å¤ãªã®ã§æ´æ°åã«éãã¾ãããã颿°ã®æå¤§å¤ãæ±ããã®ã£ã¦ãªããããæ¹æ³ãããã¾ããï¼ æ¬¡æ°ãå°ãããã°ã©ãã«ã§ããªãæ°ãããªãã§ããªããããããªãã§ããããã¨ãã° $7$ 次ã¨ãã®å¤é
å¼ ã®ç¹å®ã®åºé ã§ã®æå¤§å¤ã¨ãã ã¨ã©ããããã§ããããäºåæ³ã¨ãã§ããã®ï¼å¾®å°ãªï¼åºé ã®ä¸ã«æ¥µå¤ ããããã¨ã¯ããã£ã¦ãããã ããã¨ããç¶æ³ã¾ã§ãã£ãã¨ãã¦ãããããã©ãã«ããªããã®ã§ããï¼
ï¼è¿½è¨ï¼è©²å½ã®åºé ã§å¸ã§ããã°ã端ç¹ã§ã®æ¥ç·ã®äº¤ç¹ãèããã°ãããããªæ°ããã¾ããã
ã¨ããã§ rust-lang/libm/src/math/generic/sqrt.rs ãè¦ã¦ã¿ãã¨ãããNewtonâRaphson iterations ã§ã¯ãªã Goldschmidt iterations ã¨ããã®ã使ããã¦ããããããªãã¨ãªãã¾ããã$1/\sqrt x$ ãåæã«è¨ç®ã§ãããããã§ãï¼
ãã¦ã(1) ãã (3) ã¾ã§å¹³æ¹æ ¹ ã®è©±ããã¦ãããã«é£½ããã®ã§ãããããè¶
è¶é¢æ°ã¨ä»²ãããªã£ã¦ããããã§ãã
ä»åã®å¹³æ¹æ ¹ ã¿ãããªã®ã ã¨ãã¨ãããã Newton æ³ã§ã°ã¼ã£ã¨è©°ãã¦ç´°ããã¨ããã¯ããæãã®å¼ã§åããããã¨ãããã¨ãã§ãã¾ããããè¶
è¶é¢æ°ã ã¨ããããããªããããªæ°ããã¦ãã¾ãããã°ã¼ã£ã¨è©°ãããã§å®éã«è¿ã¥ãã¦ãããã¨ã示ããã®èªä½ã¯æ¥½ããã£ãã§ãããããããææ³ã使ããç®±åºã®ä¸ã§ããçãã¦ãããªãè§£æ³ã«éããªããã ã¨ããæè¦ãããã¾ãã
ä»ã®ã¨ããã®ããã£ã½ãç¥èã LindemannâWeierstrass theorem ãããããããã¾ããã
ã¡ãã£ã¨æ¬ãèªãã ã¨ããã 㨠Cody and Waiteâs method ã¨ããã®ããããããã£ãããworst case ã®è§£æã«é£åæ°å±éã使ããããã£ãããããããæã¯ããã¾ãã
ããã
ãããã§ãããã¯ãããã¹ã¾ãããã