diff options
author | enge <enge@211d60ee-9f03-0410-a15a-8952a2c7a4e4> | 2009-06-17 17:44:37 +0000 |
---|---|---|
committer | enge <enge@211d60ee-9f03-0410-a15a-8952a2c7a4e4> | 2009-06-17 17:44:37 +0000 |
commit | b9c268e1836686efc6f91d0a14dda12693d6785a (patch) | |
tree | 065007e883ff9af81161b208651dddebb05832cc | |
parent | 6b627848f6ebc7d78c3f7feaa5549c77cb18a723 (diff) | |
download | mpc-b9c268e1836686efc6f91d0a14dda12693d6785a.tar.gz |
algorithms.tex:
new section for error of real sqrt
adapted section on mpc_sqrt to the new beginning of the paper
git-svn-id: svn://scm.gforge.inria.fr/svn/mpc/trunk@608 211d60ee-9f03-0410-a15a-8952a2c7a4e4
-rw-r--r-- | doc/algorithms.tex | 42 |
1 files changed, 36 insertions, 6 deletions
diff --git a/doc/algorithms.tex b/doc/algorithms.tex index 8c877db..0e5c66d 100644 --- a/doc/algorithms.tex +++ b/doc/algorithms.tex @@ -227,8 +227,8 @@ The {\em relative error} of $\appro x$ is \] \end {definition} -Notice that $\epsilon^- = 0$ whenever $|\corr x| \geq |\appro x|$ -and $\epsilon^+ = 0$ whenever $|\corr x| \leq |\appro x|$, so that +Notice that $\epsilon^- = 0$ whenever $|\appro x| \leq |\corr x|$ +and $\epsilon^+ = 0$ whenever $|\appro x| \geq |\corr x|$, so that at least one of $\epsilon^+$ and $\epsilon^-$ is zero. The definition of relative error carries over immediately to complex numbers, see \S\ref {sssec:comrelerror}. @@ -420,6 +420,22 @@ Proposition~\ref {prop:relerror}, this bound can be translated into \end {equation} +\subsubsection {Square root} +\label {sssec:proprealsqrt} + +Let +\[ +\appro x = \sqrt {\appro {x_1}}. +\] +Then by \cite[\S1.7]{MPFRAlgorithms}, +\begin {equation} +\label {eq:proprealsqrt} +\error (\appro x) +\leq +\frac {2 k_1}{1 + \sqrt {1 + \epsilon_1^-}} 2^{\Exp (\appro x) - p}. +\end {equation} + + \subsection {Complex functions} @@ -847,7 +863,10 @@ also for the case of division. \section {Algorithms} -This section describes in detail the algorithms used in \mpc, together with the error analysis that allows to prove that the results are correct in the {\mpc} semantics: The input numbers are assumed to be exact, and the output corresponds to the exact result rounded in the desired direction. +This section describes in detail the algorithms used in \mpc, together with +the error analysis that allows to prove that the results are correct in the +{\mpc} semantics: The input numbers are assumed to be exact, and the output +corresponds to the exact result rounded in the desired direction. \subsection {\texttt {mpc\_sqrt}} @@ -867,9 +886,20 @@ t + i w & \text {if } x < 0, y > 0 \\ \right. \] -$w$ is rounded down. $\sqrt {x^2 + y^2}$ is computed with an error of \ulp{1}; $|x|$ is added with an error of \ulp{1}, since both terms are positive. The generic error of the real square root in the special case that the argument was rounded down is \ulp{1}, so that the total error in computing $w$ is \ulp{3}. - -$t$ is rounded up. The generic error of real division, applied to an error of \ulp{3} for $w$ and \ulp{0} for $y$ implies an error of \ulp{7}. +We compute $w$ rounded down and thus round down all intermediate results. +$\sqrt {x^2 + y^2}$ is computed with an error of \ulp{1} +by a call to \texttt {mpc\_abs}; $|x|$ is added with an error of \ulp{1}, +since both terms are positive; division by~$2$ is free of error. So +$w^2$ is computed with a cumulated error of \ulp{2}. +This error of \ulp{2} propagates as is through the real square root: +since we rounded down the argument, we have $\epsilon_1^- = 0$ in +\eqref {eq:proprealsqrt}; an error of \ulp{1} needs to be added for the +rounding of $w$, so that the total error is \ulp{3}. + +$t$ is rounded up. Plugging the error of \ulp{3} for $w$ and \ulp{0} for $y$ into +\eqref {eq:proprealdiv} shows that the propagated error of real division is +\ulp{6}, to which an additional rounding error of \ulp{1} has to be added +for a total error of \ulp{7}. \subsection {\texttt {mpc\_log}} |