cs0701183/qr.tex
1: 
2: \documentclass[12pt]{article}
3: 
4: \usepackage{amsmath,amstext,amssymb,amsthm}
5: \usepackage{xspace}
6: \usepackage{url}
7: \usepackage{hyperref}
8: \usepackage{graphicx,epsfig}
9: \usepackage{fullpage}
10: %\usepackage{theorem}
11: 
12: \newtheorem{theorem}{Theorem}[section]
13: \newtheorem{proposition}[theorem]{Proposition}
14: \newtheorem{lemma}[theorem]{Lemma}
15: \newtheorem{corollary}[theorem]{Corollary}
16: \newtheorem{definition}[theorem]{Definition}
17: \newtheorem{example}[theorem]{Example}
18: \newtheorem{remark}[theorem]{Remark}
19: 
20: \newcommand{\Proof}{\noindent{\bfseries Proof.}\xspace}
21: \newcommand{\namedProof}[1]{\noindent{\bfseries Proof of #1.}\xspace}
22: %\newcommand{\qed}{{\hspace{1em} $\boxtimes$}}
23: \newcommand{\so}{{O {\;\!\tilde{}}\,}}
24: 
25: 
26: \newcommand{\rddots}{\mathinner{
27:     \mkern2mu\raise1pt\hbox{.}
28:     \mkern2mu\raise4pt\hbox{.}
29:     \mkern1mu\raise7pt\vbox{\kern7pt\hbox{.}}
30:     \mkern1mu}}
31: 
32: 
33: \newcommand{\QQ}{{\mathbb Q}}
34: \newcommand{\ZZ}{{\mathbb Z}}
35: \newcommand{\RR}{{\mathbb R}}
36: \newcommand{\FF}{{\mathbb F}}
37: 
38: \def\F{{\sf{F}}}
39: 
40: \newcommand{\diag}{\textup{diag}}
41: \newcommand{\rank}{\textup{rank}\,}
42: 
43: \makeatletter
44: \renewcommand\section{\@startsection {section}{1}{\z@}%
45:                                    {-3.5ex \@plus -1ex \@minus -.2ex}%
46:                                    {2.3ex \@plus.2ex}%
47:                                    {\normalfont\large\bfseries}}
48: \renewcommand\subsection{\@startsection{subsection}{2}{\z@}%
49:                                      {-3.25ex\@plus -1ex \@minus -.2ex}%
50:                                      {1.5ex \@plus .2ex}%
51:                                      {\normalfont\normalsize\bfseries}}
52: 
53: \makeatother
54: 
55: 
56: 
57: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
58: 
59: 
60: 
61: 
62: \begin{document}
63: 
64: \begin{center}
65: {\bf CERTIFICATION OF THE QR FACTOR R, \\[0.1cm] AND OF LATTICE BASIS  REDUCEDNESS}\\[0.3cm]
66: Gilles Villard\\[0.3cm]
67: {\footnotesize
68: Laboratoire LIP (CNRS, ENSL, INRIA, UCBL)\\ \'Ecole Normale
69: Sup\'erieure de Lyon, France\\
70: \url{http://perso.ens-lyon.fr/gilles.villard}\\
71: } 
72: \end{center}
73: 
74: \renewcommand{\thefootnote}{\fnsymbol{footnote}}
75: 
76: \footnotetext{\!\!\!\!\!\!\!\!\!\!This 
77: material is based on work supported
78: in part by the French  National Research Agency, ANR
79: Gecko. \\[-0.3cm]
80: ~~\\
81: {{\em LIP Research Report RR2007-03, \'Ecole Normale
82:     Sup\'erieure de Lyon ---  January, 2007.}}
83: %{\hfill Submitted to ISSAC'07 ---  \today}
84: 
85: 
86: }
87: 
88: 
89: {\abstract  
90: \noindent
91: \hspace*{0.6cm}
92: Given a lattice basis of $n$ vectors in $\ZZ ^n$, 
93: we propose an algorithm using
94: $12n^3+O(n^2)$ floating point
95: operations for checking whether  
96: the basis is LLL-reduced.
97: If the basis is reduced then the algorithm will hopefully answer
98: ``yes''. If the basis is not reduced, or if the precision used is not
99: sufficient with respect to $n$, and to the numerical properties of
100: the basis, the algorithm will answer ``failed''.
101: Hence a positive answer is a rigorous certificate. 
102: For implementing the certificate itself, we propose a floating point
103: algorithm
104: for computing (certified) error bounds for the entries of the $R$ factor of the
105: $QR$ matrix factorization. This algorithm takes into account all possible
106: approximation and rounding errors.\\
107: \hspace*{0.6cm}The cost $12n^3+O(n^2)$ of the certificate is
108: only six times more than the cost of  
109: numerical algorithms for computing the $QR$ factorization itself, and the
110: certificate may be implemented using matrix library routines only.
111: We report experiments 
112: that show that for a reduced basis of 
113: adequate dimension and quality the certificate succeeds, and
114: establish the effectiveness of the certificate. This effectiveness
115: is applied for certifying the output of fastest existing floating point
116: heuristics of LLL reduction, without slowing down the whole process.
117: }
118: 
119: 
120: 
121: %%%%%%%%%%%%%%%%%%%%% INTRODUCTION %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
122: %%%%%%%%%%%%%%%%%%%%% INTRODUCTION
123: %%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
124: 
125: \section{Introduction}
126: 
127: 
128: Our motivation is to develop a  
129: certificate for lattice basis reducedness that may be 
130: used in cooperation with---possibly non certified---numerical
131: reduction heuristics such as those described
132: in~\cite[Ch.\,II-3]{Ste05} and~\cite{NgSt06}.
133: The two main constraints are speed and effectiveness. Indeed, 
134:  the certificate has to be fast enough for not
135: slowing down the whole process, and the answer should be 
136: relevant (``yes'')  on a large class of inputs such as those
137: successfully treated by the heuristic. Hence   
138: our general concern is somehow the compromize between speed 
139: and proven accuracy. 
140: %% preciser avec laconstante pres
141: The certificate will be
142: introduced later below. It relies on error
143: bounds for the $R$ factor of the $QR$
144: factorization of a matrix that we discuss first. \\[-0.2cm]
145: 
146: \noindent
147: {\bf Bounding errors for the factor $R$.}
148: Let $A$ be an $n \times n$ invertible integer matrix. 
149: The $QR$ factorization (see for instance \cite[Ch.\,19]{Hig02})  
150: of $A$ is a factorization $A=QR$ in which the factor $R \in \RR^{n
151:   \times n}$ is an upper triangular matrix, and the factor $Q\in \RR^{n
152:   \times n}$ is orthogonal ($Q^TQ$=I). We take the unique
153: factorization such that the diagonal entries of $R$ are positive.  
154: Let $\FF$ denote a set of floating point numbers such that  
155: the arithmetic operations in  $\FF$
156: satisfy the 
157: IEEE~754 arithmetic standard~\cite{IEEE754}. 
158: Assume that an approximate floating point and upper triangular  factor $\widetilde{R}\in \FF^{n
159:   \times n}$ % triangulaire
160: is given. 
161: In Section~\ref{sec-errorR}
162: we propose 
163: an algorithm for computing a componentwise error bound for
164: $|\widetilde{R}-R|$ using operations   
165: in $\FF$ only. For a matrix 
166: $A=(a_{i,j})$, 
167: $|A|$ denotes $(|a_{i,j}|)$.
168: Our error bound for 
169: $|\widetilde{R}-R|$ is given by  
170: a matrix $H\in \FF^{n
171:   \times n}$ with positive entries such   
172: that (see~(\ref{eq-errorH}) on page~\pageref{eq-errorH}):
173: \begin{equation} \label{eq-defE}
174: |\widetilde{R}-R| \leq H |\widetilde{R}|.
175: \end{equation}
176: Since floating point numbers are rational numbers, 
177: when $\widetilde{R}$ and $E$ are known, (\ref{eq-defE}) provides  
178: a rigourous mathematical bound for the error with respect to the unkown matrix $R$. 
179: 
180: For understanding the behaviour
181: of the error bounding algorithm better, 
182: we recall in Section~\ref{sec-errorQR} some existing  
183: numerical pertubation analyses for the $QR$ factorization. 
184: The necessary background material may be found in Higham's
185: book~\cite{Hig02}. Then in Sections~\ref{sec-sun} and~\ref{sec-tow},
186: we give the mathematical foundations of our approach. We 
187: focus 
188: on the componentwise bounds of~\cite{Sun92} that allow
189: us to derive an algorithm 
190: based on the principles of verification (self-validating)
191: methods. On the latter methods we refer to the rich surveys of
192: Rump~\cite{Rum03,Rum05},
193: see also the short discussion in
194: Section~\ref{sec-verif}.
195: As numerical experiments of Section~\ref{subsec-comput} will demonstrate,
196: the error bounding algorithm is effective in practice. 
197: Its cost is only $5$ times more than a numerical
198: $QR$ factorization, we mean $10n^3+O(n^2)$ operations in~$\FF$.
199: For efficiency, the error bounds are themselves calculated using
200: floating point operations, nevertheless, they take into account all
201: possible numerical and rounding errors. The reducedness
202: certificate will require $2n^3+O(n^2)$ additional operations.
203: Most of the $12n^3$ operations actually correspond to the evaluation of
204: matrix expressions. An efficient implementation may thus rely on 
205: fast matrix routines such as the BLAS~\cite{Blas90}. 
206: 
207: At a given precision, the error bounding algorithm  
208: provides relevant bounds for input matrices with appropriate 
209: numerical properties. 
210: In particular, the dimension and related condition numbers  
211: should be considered in relation with the precision (see Section~\ref{subsec-comput}). 
212: %Basic facts about condition numbers, essentially taken from Higham's
213: %book~\cite{Hig02}, are given in
214: %Section~\ref{sec-errorQR}. 
215: However, the power of the verification
216: approach~\cite{Rum03,Rum05}
217: is to be effective on many inputs for which the numerical
218: approach itself is effective---here the numerical $QR$ factorization.
219: For example, we report experiments using $64$~bits floating point numbers, 
220: and $\widetilde{R}$ computed by the modified 
221: Gram-Schmidt orthogonalization (see~\cite[Alg.\,19.12]{Hig02}).
222: On integer matrices of dimension $n=1500$ with 
223: condition number around $10^5$, we certify 
224: that the relative error on the entries of 
225: $\widetilde{R}$ 
226: has order as small as $10^{-6}$ or $10^{-5}$, 
227: with only $10^{-10}$ or $10^{-9}$ on the diagonal.
228: We refer here to the diagonal entries since they play a key role for
229: instance in the LLL Lov\'asz test (see~(\ref{eq:deflovasz})).
230: For large condition numbers (with respect to double precision), say $10^{12}$, 
231: and $n=200$, the algorithm may typically certify relative
232: errors in $10^{-1}$, and  $10^{-4}$ on the diagonal. \\[-0.2cm]
233: 
234: \noindent
235: {\bf The LLL-reducedness certificate.}
236: The effectiveness of the error bound on $|\widetilde{R}-R|$ allows us to
237: address the second topic of the paper. 
238: To an $n\times n$ integer matrix $A$ we associate the Euclidean 
239: lattice ${\mathcal L}$ generated by the columns  
240: $(a_j)$ of $A$ (for definitions and on algorithmic aspects
241: of lattices 
242: we refer for instance to~\cite{Coh95}). 
243: From $(a_j)$, the LLL algorithm computes
244: a reduced basis~\cite{LLL82}, where the reduction is defined via the Gram-Schmidt
245: orthogonalization of $a_1, a_2, \ldots, a_n \in \ZZ ^n$.
246: The Gram-Schmidt orthogonalization determines the associated orthogonal basis 
247: $a ^*_1, a ^*_2, \ldots, a ^*_n \in \QQ ^n$ by induction,
248: together with factors $\mu _{ij}$, using
249: $a_i ^* = a_i - \sum _{j=1}^{i-1}\mu _{ij}a_j^*$,
250: and
251: $\mu _{ij} = \langle a_i, a_j^* \rangle / \|a_j^*\|^2 _2$, $1
252: \leq j < i$.
253: Vectors $a_1, a_2, \ldots, a_n$ are said proper
254: for $\eta \geq 1/2$ if their Gram-Schmidt
255: orthogonalization satisfies 
256: \begin{equation} \label{eq:defproper}
257: |\mu_{ij}|\leq \eta,~1
258: \leq j < i \leq n.
259: \end{equation}
260: In general one
261: considers $\eta = 1/2$.
262: The basis $a_1, a_2, \ldots, a_n$
263: of ${\mathcal L}$ is called LLL-reduced with factors $\delta$ and
264: $\eta$
265: if the vectors are proper, and if they satisfy the Lov\'asz
266: conditions:
267: \begin{equation} \label{eq:deflovasz}
268: (\delta - \mu _{i+1,i} ^2) \|a_i^*\|^2 _2 \leq \|a_{i+1}^*\|^2 _2,
269: ~1\leq i \leq n-1,
270: \end{equation}
271: with $1/4 < \delta \leq 1$ and $1/2 \leq \eta < \sqrt{\delta}$.
272: If $A=QR$ is the $QR$ factorization of $A$ then we have
273: \begin{equation} \label{eq:QRGS}
274: \left\{ \begin{array}{l}
275: \|a_i^*\| _2 = r_{ii},~1 \leq i \leq n,\\
276: \mu _{ij} = r_{ji}/r_{jj},~1
277: \leq j < i \leq n.
278: \end{array}
279: \right.
280: \end{equation}
281: We see from~(\ref{eq:QRGS}) that if an approximation $\widetilde{R}$
282: of $R$ with error bounds on its entries are known,  
283: then (depending on the quality of the bounds) it may be possible
284: to check whether~(\ref{eq:defproper}) and~(\ref{eq:deflovasz})
285: are satisfied. 
286: All the above draws the reducedness
287: certificate that we propose in~Section~\ref{sec-reduced}.
288: We also fix a set $\FF$ of floating point numbers, and perform
289: operations in $\FF$ only. 
290: For certifying the reducedness of the column basis associated to $A$
291: the certificate works in three steps:
292: \begin{description}
293: \item {\sc i}: Numerical computation of a $R$ factor $\widetilde{R}$ such that 
294:   $A\approx \widetilde{Q}\widetilde{R}$; 
295: \item {\sc ii}: Certified computation of $F \in \FF ^{n \times n}$
296:   such that $|\widetilde{R}-R| \leq F$ (see (\ref{eq-defE}));
297: \item {\sc iii}: Certified check of properness (\ref{eq:defproper})
298:   and Lov\'asz conditions (\ref{eq:deflovasz}). 
299: \end{description}
300: 
301: Following the principles of verification algorithms~\cite{Rum05},
302: Step~{\sc i} is purely approximation, and we propose an implementation of 
303: Steps~{\sc ii} and~{\sc iii}
304: that is independent of the factorization algorithm used for
305: computing  $\widetilde{R}$. 
306: For taking into account all possible numerical and rounding errors,
307: Steps~{\sc ii} and~{\sc iii} use certified computing
308: techniques (see Section~\ref{subsec:certiftech}). We rely on the fact that the arithmetic
309: operations $+, -, \times, \div, \sqrt{~}$ in $\FF$ are according to
310: the  IEEE~754 standard. We especially use explicit changes of
311: rounding mode for certified bounds. 
312: 
313: Verification algorithms are a powerful
314: alternative between numerical  and computer
315: algebra algorithms, they somehow illustrate the boundary between the
316: two fields. 
317: The reducedness certificate we propose illustrates a cooperation of purely
318: numerical computation  with a certified approach based on  the
319: IEEE~754 
320: standard, in order to provide a computer
321: algebra answer. 
322: Our progress in linear algebra is in the line of previous works on 
323: error bounds for linear
324: systems~\cite{Rum94,OiRu02,RuOg07}, on 
325: certifying the sign of the determinant~\cite{Pan01,KaVi04}, 
326: on verifying positive definiteness~\cite{Rum06}, or on eigenvalues~\cite{May94,Rum01}.
327: Our contribution is to establish the effectiveness of
328: componentwise bounds for a whole matrix,
329: propose a corresponding certified algorithm using fast
330: verification techniques, and derive and test with experiments a certificate 
331: for the LLL reducedness application.\\[-0.2cm]
332: 
333: \noindent 
334: {\bf Absolute value and matrix norms.} We already considered above the absolute value of a
335: matrix $A=(a_{ij})$ defined by  $(|a_{ij}|)$. We write $|A| \leq
336: |B|$ if $|a_{ij}| \leq |b_{ij}|$. It is possible to check that 
337: if $A=BC$ then $|A| \leq
338: |B||C|$. We will use several matrix norms
339: (see~\cite[Ch.\,6]{Hig02}) such as the Frobenius norm
340: $\|\cdot\|_{F}$ or the $2$-norm $\|\cdot\|_2$.
341: We will also especially use the infinity norm
342: $\|\cdot\|_{\infty}=\max_{1\leq i \leq n} \sum _{j=1}^n |a_{ij}|$.
343: For $A=BC$ we have $\|A\|_{\infty} \leq
344: \|B\|_{\infty}\|C\|_{\infty}$, and if $h=\|A\|_{\infty}$ then 
345: $|A| \leq H$ with $h_{ij}=h$.\\[-0.2cm]
346: 
347: \noindent 
348: {\bf Condition numbers.} For a nonsingular matrix $A$, the matrix
349: condition number is defined by  
350: $\kappa _p (A) = \|A\|_p  \|A ^{-1}\|_p$ with $p=2, F$ or $\infty$~\cite[Th.\,6.4]{Hig02}.
351: With the infinity norm we will also use the Bauer-Skeel condition number
352: $\text{cond}(A)=
353: \||A ^{-1}||A|\|_{\infty} \leq \kappa _{\infty}(A)$~\cite[\S\,7.2]{Hig02}.
354: 
355: 
356: %%%%%%%%%%%%%%  VERIFICATION %%%%%%%%%%%%%%%%%%%%%%% 
357: %%%%%%%%%%%%%%  VERIFICATION %%%%%%%%%%%%%%%%%%%%%%% 
358: 
359: 
360: \section{Error bounds computation and verification algorithms} \label{sec-verif}
361: 
362: In linear algebra, few things are known
363: about the complexity of computing certified and effective error bounds. 
364: The problem is somewhere between the one of computing approximate
365: solutions, and the one of computing multi-precision or exact 
366:  solutions. A main result in~\cite{DDM01} 
367: shows  that 
368: the problem of computing 
369: a certified estimation of $\|A ^{-1}\|$ (for a consistent matrix
370: norm) is as difficult as testing whether the product of two matrices
371: is zero. Hence if we consider $O(n ^3)$ operations for
372: multiplying two matrices of dimension $n$, 
373: a deterministic error bound---based on a condition number bound---would
374: cost $O(n ^3)$. 
375: The use of randomization may lead to 
376: error estimations in  $O(n ^2)$ operations, we refer
377: to~\cite[Chap.\,15]{Hig02}
378: and references therein, and to the fact that the matrix product
379: could be verified in  $O(n ^2)$ operations~\cite{Fre79}.  
380: We did not investigate the randomization possibilities yet.
381: 
382: Verification methods have been developped in~\cite{Rum94,OiRu02} for
383: computing certified error bounds 
384: for linear system solution. In~\cite{OiRu02} the error bound
385: (normwise) is computed in twice the time of
386: numerical 
387: Gaussian elimination. 
388: In the same spirit,  a verification approach using $O(n^3)$ 
389: floating point operations is proposed in~\cite{Pan01} for the
390: sign of the determinant (see~\cite{KaVi04} for a survey on
391: this topic). Note that computing the sign of the determinant corresponds to knowing
392: the determinant with a relative error less than $1$.
393: Our error bounding algorithm for $R$ will also use $O(n^3)$ floating
394: point operations. 
395: The verification approach~\cite{Rum03,Rum05}  
396: gives an effective alternative to interval arithmetic whose
397: exponential overestimation of the error would not be appropriate for
398: our problem~\cite[\S10.7]{Rum05}. The general strategy for
399: calculating an error bound 
400: is first to establish a result whose assertion is  a mathematical expression for the
401: bound (see Theorem~\ref{theo-error}), then design an
402: algorithm that verifies the assumptions for  
403: the latter assertion, and computes a certified evaluation of the bound
404: (see Section~\ref{sec-tow}). 
405: 
406: 
407: %prodmat par interv ok 
408: 
409: %%%%%%%%%%%%%%  ERROR BOUNDS QR %%%%%%%%%%%%%%%%%%%%%%% 
410: %%%%%%%%%%%%%%  ERROR BOUNDS QR %%%%%%%%%%%%%%%%%%%%%%% 
411: 
412: 
413: \section{Perturbation analyses and bounds for the $QR$
414:   factorization} \label{sec-errorQR}
415: 
416: %% verifier partout a cond and the cond 
417: 
418: 
419: A finite precision computation of the $QR$ factorization of $A$ leads to
420: an approximate factor~$\widetilde{R}$. The errors in $\widetilde{R}$ with
421: respect to $R$ are called the {\em forward errors} (absolute or
422: relative). The matrix $\widetilde{R}$ is not the factor of the $QR$ factorization of $A$,
423: however, it is seen as the $QR$ factor 
424: of a perturbed matrix $\widetilde{A}=A+E$,
425: %\footnote{****************************** To be more precise?}.
426: where $E$ is called the {\em backward error.}
427: The choice of $\widetilde{A}$ is
428: non unique, and one refers for instance for the smallest error norm.
429: The link between backward and forward error is made using
430: the condition number of the problem, hence for us the
431: condition number for the problem of computing  $R$.  
432: The (relative) {\em condition number} of the problem---under some
433: class of perturbations---measures the 
434: relative change in the output for a relative change in the input. 
435: In this context, a useful tool  
436: for estimating the accuracy
437: of the solution to a problem, is the rule of thumb~\cite[p.\,9]{Hig02}:
438: \begin{equation} \label{thumb}
439: \text{forward error} 
440: \begin{array}{c}~\\[-0.36cm]<\\[-0.28cm] \sim\end{array}
441: \text{condition number} \times \text{backward error}.
442: \end{equation}
443: We survey below some more precise
444: instantiations of~(\ref{thumb}) for the $QR$ 
445: factorization. 
446: Known results are, in general, approximate inequalities (first order
447: results), but could be extended   
448: for giving strict bounds on the forward error. 
449: The rule of thumb therefore gives a first possible direction 
450: for deriving an error bounding algorithm for $|\widetilde{R}-R|$ (the
451: forward absolute error).
452: However, most of corresponding bounds rely
453: on matrix norms, and may thus overestimate  
454: the actual componentwise error in most cases. 
455: 
456: We will investigate an alternative direction in Section~\ref{sec-sun}.
457: Rather than on the rule of thumb, our error bounding 
458: algorithm will be based on the componentwise bounds of Sun~\cite{Sun92}. 
459: This will lead to an algorithm that seems to be naturally more
460: effective than a matrix norm approach for our problem.
461: Another advantage of using Sun's results  is to remain in the spirit of the
462: verification methods. In particular,  we will
463: see that the error bounding algorithm is oblivious of the algorithm that is
464: used for computing the approximate factor $\widetilde{R}$. Our bound computation
465: may be appended to any numerical $QR$ algorithm, and does
466: not rely on backward error bounds that would be have been needed for
467: using (\ref{thumb}). An approximate $\widetilde{Q}$ in not
468: orthogonal in
469: general, the backward error problem is to know  for which matrix $\widetilde{A}$ close to $A$, there
470: exists an orthogonal $\widehat{Q}$ such that  $\widetilde{A}=\widehat{Q} \widetilde{R}$?  
471: Backward error bounds are known for specific $QR$ algorithms such as Householder
472: or Gram-Schmidt ones (see Theorems~19.4 and~19.13 in \cite{Hig02}), but
473: may not be available in the general case. We will circumvent
474: the need of the backward error in Section~\ref{sec-sun} using the correspondence
475: between the $QR$ factorization of $A$, and the Cholesky
476: factorization $R^T R$ of $A ^T A$.   \\[-0.2cm]
477: 
478: \noindent
479: {\bf Sensitivity of the $QR$ factorization.}
480: The condition number of the problem of computing $R$ (the ``rate of
481: change'' of $R$) in the $QR$
482: factorization may be defined theoretically for given classes of
483: perturbations, but it is non trivial  to derive expressions
484: of the condition number that can be used  in practice. Nevertheless, various formulae
485: are proposed in the literature providing quantities that can be thought
486: as a condition number for $R$, we refer for instance to~\cite{ChPa01}.
487: These quantities may be very effective in practice in a matrix norm setting.
488: 
489: Let $A=QR$  and $A \approx \widetilde{A}
490: +E = \widehat{Q} \widetilde{R}$ be $QR$ factorizations. As already noticed, 
491: for a floating point factorization $A \approx \widetilde{Q}\widetilde{R}$, in general 
492: we have $\widehat{Q} \neq \widetilde{Q}$ since $\widetilde{Q}$ is not orthogonal.
493: Let $\widetilde{R} = R+F$.
494: For a sufficiently small backward error $E$, consider the normwise
495: relative error $\epsilon = \|E\|_F / \|A\|_2 =  \|\widetilde{A}-A\|_F / \|A\|_2$. Then
496: Sun's~\cite[Rem.\,3.5]{Sun91} perturbation bounds (see
497: also~\cite{Ste93}) give
498: \begin{equation} \label{eq-sun91}
499: {\|\widetilde{R}-R\|_F}/{\|R\|_2} \leq \sqrt{2} \kappa _2 (A)
500: \epsilon + O(\epsilon ^2). 
501: \end{equation}
502: %
503: An improved bound is given by Zha~[Theorem\,2.1]\cite{Zha93} (see
504: also~\cite[\S\,5]{ChPa01} and~\cite[\S19.9]{Hig02}) under a componentwise model of
505: perturbation that we simplify here.   
506: Let $|\widetilde{A}-A|=|E|=\epsilon |A|$, then for sufficiently small 
507: $\epsilon$ we have:
508: \begin{equation} \label{eq-zha}
509: {\|\widetilde{R}-R\|_{\infty}}/{\|R\|_{\infty}} \leq c_n
510: \text{cond}(R^{-1}) \epsilon + O(\epsilon ^2) 
511: \end{equation}
512: where $c_n$ is a constant depending on $n$.
513: Hence the Bauer-Skeel condition number of $R^{-1}$ can be considered 
514: as a condition number for the problem of calculating $R$.
515: This indicates that 
516: one may potentially loose significant digits (in the result)
517: linearly with respect to the increase of $\log
518: \text{cond}(R^{-1})$. 
519: This typical behaviour is illustrated by Figure~3.1
520: where we have computed $QR$ factorizations of random matrices 
521: (of {\tt randsvd} type~\cite[Ch.\,28]{Hig02}). The algorithm
522: used is the Modified Gram-Schmidt
523: algorithm~\cite[Algo.\,19.12]{Hig02}.
524: \begin{center}
525: \includegraphics[scale=0.5]{linear.eps} 
526: {\footnotesize
527: ~\\
528: \begin{minipage}{13.4cm}\begin{center}
529: {\footnotesize Figure 3.1: Maximum
530:   relative diagonal error in $R$ (Modified Gram-Schmidt algorithm) with
531:   respect to cond($R^{-1}$)
532: for random matrices $A$ ($n=200$).}\end{center}
533: \end{minipage}
534: }
535: \end{center}Identities~(\ref{eq-sun91}) and~(\ref{eq-zha})
536: provide first order estimations of the errors. They are essential
537: for an idea 
538: of the normwise loss of accuracy. 
539: Nevertheless, the loss of accuracy on 
540: individual entries  (needed for the reducedness certificate)
541:  may not be deduced from these identities.  
542: Consider for instance the case of Figure~3.1 where the ratios of the $r_{ij}$ 
543: may be as large as $10^{11}$. The normwise bound of~(\ref{eq-zha}),
544: that involves the max row sum $\|R\|_{\infty}$, cannot provide relevant informations
545: for every $|\tilde{r}_{ij}-r_{ij}|$. 
546: Note also that the 
547: loss of accuracy would certainly be amplified by the implementation of the 
548: error estimation itself in finite precision (Figure~3.1
549: is a mathematical representation of the error). Normwise 
550: bounds much sharper than~(\ref{eq-sun91}) and~(\ref{eq-zha})
551: may be found, especially in~\cite{CPS97,ChPa01}, 
552: it remains to know how well the corresponding proposed estimations approximate the
553: true condition number~\cite[\S10]{ChPa01}. 
554: It would also be interesting to investigate how the new techniques 
555: of~\cite{CPS97,ChPa01} could lead to practical componentwise
556: bounds. 
557: 
558: %%%%%%%%%%%%%%%%  STRICT %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
559: %%%%%%%%%%%%%%%%  STRICT %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
560: 
561: \section{Strict componentwise bounds for the $R$ factor} \label{sec-sun}
562: 
563: We now present the mathematical view and justification of the error
564: bounding algorithm of Section~\ref{sec-errorR}.
565: Given $A \in \RR ^{n \times n}$ invertible, 
566: and an upper triangular matrix $\widetilde{R} \in \RR ^{n \times n}$, 
567: the problem is to bound $|\widetilde{R}-R|$ where $R$ is the unknown 
568: $QR$ factor of $A$. In practice  we will have $A,\widetilde{R} \in \FF ^{n \times n}$.
569: 
570: 
571: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
572: \subsection{$QR$ and Cholesky factorization}
573: 
574: The strict componentwise analysis of Sun~\cite[\S\,4]{Sun92}
575: for $QR$ uses the matrix $\widetilde{A}$ such that 
576: $\widetilde{A}=\widehat{Q}\widetilde{R}$ is a $QR$ factorization.
577: Note that, because of the loss of orthogonality,
578:  if $\widetilde{Q}$ is a numerical approximation of $Q$ then 
579: $\widetilde{A}$ is not in general the 
580: matrix $\widetilde{Q}\widetilde{R}$. 
581: Informations on $\widetilde{A}$ may be available by taking into
582: account the algorithm that has produced $\widetilde{R}$. 
583: We refer for instance to~\cite[Eq.\,(5.8)]{ChPa01}
584: and~\cite[\S19.9\,]{Hig02}
585: where properties of Householder transformations are used for
586: bounding the backward error.
587: This is not sufficient for our problem since we are given only $A$ and
588: $\widetilde{R}$, and since one of our goal is to be oblivious of the method
589: used for $\widetilde{R}$.
590: 
591: For not relying on $\widetilde{A}$, we propose to rather resort to
592: Sun's study of 
593: the Cholesky factorization~\cite[\S\,4]{Sun92}. 
594: If $B \in \RR ^{n \times n}$ is symmetric positive definite, then there is a unique upper
595: triangular $R \in \RR ^{n \times n}$
596: with positive diagonal entries,  such that $B=R^TR$. This
597: factorization is called the Cholesky factorization~\cite[Th.\,10.1]{Hig02}.
598: It holds that $A=QR$ is a $QR$ factorization if and only if 
599: $B=A ^T A =R^T R$ is a Cholesky factorization.
600: It may not be a good idea to use the
601: Cholesky factorization for computing $R$ numerically. The condition
602: number 
603: of the problem may indeed increase too much, especially $\kappa _2 (A
604: ^T A) = (\kappa _2 (A)) ^2$. For avoiding this drawback,  
605: our point is to implement the 
606: reduceness certificate of Section~\ref{sec-reduced} using  $QR$
607: for computing $\widetilde{R}$, and to use
608: the Cholesky point of view only for computing the error bound. 
609: 
610: 
611: 
612: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
613: \subsection{The bound on $|\widetilde{R}-R|$}
614: 
615: For a matrix $A \in \RR ^{n \times n}$, 
616: the spectral radius 
617: $\rho (A)$ is the maximum of the eigenvalue modules. 
618: We denote by $\text{\rm triu} (A)$ the upper triangular 
619: part of $A$, we mean that $\text{\rm triu} (A) = (t_{ij})$ with 
620: $t_{ij}=a_{ij}$ if $i\leq j$, and $t_{ij}=0$ otherwise.
621: The following Theorem is~\cite[Th.\,2.1]{Sun92}.
622: 
623: \begin{theorem} \label{theo-errorsun}
624: For $B, \widetilde{B} \in  \RR ^{n \times n}$ symmetric positive
625: definite matrices, let $R$ and $\widetilde{R}$ be the 
626: Cholesky factors of  $B$ and $\widetilde{B}$. Let 
627: $E= \widetilde{B}-B$,
628: and 
629: \begin{equation} \label{eq-defG}
630: G = |\widetilde{R}^{-T} E  \widetilde{R}^{-1}|.
631: \end{equation}
632: Then if 
633: $\rho (G) < 1$
634: we have 
635: \begin{equation} \label{eq-errorH}
636: |\widetilde{R}-R| \leq \text{\rm triu} (G (I-G)^{-1}) |\widetilde{R}|.
637: \end{equation}
638: \end{theorem}
639: Inequality~(\ref{eq-errorH}) is what we announced
640: with~(\ref{eq-defE}).
641: Let us apply Theorem~\ref{theo-errorsun} 
642: with $B=A ^TA$  and
643: $\widetilde{B}=\widetilde{A}^T \widetilde{A}$.
644: Using $\widetilde{A} = \widehat{Q}\widetilde{R}$ and 
645: $\widehat{Q}^T\widehat{Q}=I$,
646: we get from~(\ref{eq-defG}):
647: $$\begin{array}{ll}
648: G  &= |\widetilde{R}^{-T} E  \widetilde{R}^{-1}|
649: = |\widetilde{R}^{-T} (\widetilde{B}-B) 
650: \widetilde{R}^{-1}|
651: = |\widetilde{R}^{-T} (\widetilde{A}^T\widetilde{A} - A ^T A) 
652: \widetilde{R}^{-1}|\\
653: &= |\widetilde{R}^{-T} \widetilde{A}^T\widetilde{A}
654: \widetilde{R}^{-1}
655: - \widetilde{R}^{-T} A ^T A 
656: \widetilde{R}^{-1}| = 
657: |\widehat{Q}^{T} \widehat{Q}  
658: - \widetilde{R}^{-T} A ^T A 
659: \widetilde{R}^{-1}|
660: = |\widetilde{R}^{-T} A ^T A 
661: \widetilde{R}^{-1} - I|.
662: \end{array}
663: $$
664: Going back to the $R$ factor of the $QR$ factorization we then have
665: the following corollary to Theorem~\ref{theo-errorsun}
666: \begin{theorem}\label{theo-error}
667: For $A \in  \RR ^{n \times n}$ an invertible matrix, let $R$ 
668: be the $QR$ factor of $A$. Let $\widetilde{R}\in  \RR ^{n \times n}$
669: be upper triangular and invertible, and 
670: \begin{equation} \label{neq-defG}
671: G = |\widetilde{R}^{-T} A ^T A 
672: \widetilde{R}^{-1} - I|.
673: \end{equation}
674: Then if 
675: \begin{equation} \label{neq-testrho}
676: \rho (G) < 1,
677: \end{equation}
678: we have 
679: \begin{equation} \label{neq-errorH}
680: |\widetilde{R}-R| \leq \text{\rm triu} (G (I-G)^{-1}) |\widetilde{R}|.
681: \end{equation}
682: \end{theorem}
683: \begin{proof}
684: Since $\widetilde{R}$ is invertible,
685: $\widetilde{B}=\widetilde{R}^T\widetilde{R}$ is positive
686: definite, the same holds for $B=A ^T A$. By construction  
687: $R$ and $\widetilde{R}$ are the Cholesky factors of 
688: $B$ and $\widetilde{B}$. It suffices to apply
689: Theorem~\ref{theo-errorsun} for concluding.
690: \end{proof}
691: 
692: Few things are known about the (mathematical) quality of   
693: Bound~(\ref{neq-errorH}) over~$\RR$.
694: Furthermore, both additional method and arithmetic errors will be introduced for the finite
695: precision evaluation of the bound. Additional method errors will be 
696: introduced especially for calculating certified bounds for
697: $\widetilde{R}^{-1}$ and 
698: $\text{\rm triu}(G (I-G)^{-1})$
699: (see Section~\ref{sec-tow}). Additional arithmetic errors 
700: will be introduced by the finite precision itself.
701: All together we produce an error bounding algorithm that is not
702: fully 
703: analyzed, the experiments of
704: Section~\ref{subsec-comput}
705: will however give a precise idea of its practical behaviour and effectiveness. 
706: For illustrating Bound~(\ref{neq-errorH}) over~$\RR$,
707: let us consider some examples that show that  
708: Theorem~\ref{theo-error} leads to accurate bounds. The calculations
709: have been done in Maple~\cite{Maple10}, either exactly or with high precision,
710: then rounded for the presentation. 
711: Let $H = \text{\rm triu} (G (I-G)^{-1})$ such
712: that~(\ref{neq-errorH}) is  
713: $|\widetilde{R}-R| \leq H |\widetilde{R}|$.
714: 
715: On the matrices used for 
716: Figure~3.1  ({\tt randsvd}, $n=200$),
717: with $\widetilde{R}$ computed using 64~bits floating point
718: numbers via the Modified Gram-Schmidt
719: algorithm,   we typically get the following. 
720: For $A$ with $\text{cond}(R^{-1}) \approx 10^5$, 
721: the infinity norm of the error matrix is 
722: $\|H\|_{\infty} \approx 2 \times 10^{-9}$.
723: This leads to the knowledge that 
724: $\widetilde{R}$ approximates $R$ with (relative) accuracy $\approx
725: 10^{-10}$.
726: The accuracy of $\widetilde{R}$ is about  
727: $10^{-13}$ for the diagonal entries, and the 
728: diagonal error estimation is only in a factor of $2$ from the
729: true diagonal error.    
730: If $\text{cond}(R^{-1}) \approx 4 \times 10^{13}$
731: then $\|H\|_{\infty} \approx 3 \times 10^{-3}$, and  $R$ is known 
732: with accuracy about $10^{-2}$ ($2 \times 10^{-5}$ on the diagonal). 
733: The ratio between the estimation and the true error is less than $4$
734: on the diagonal. 
735: Again, we will certainly loose accuracy with  our finite precision 
736: implementation, but keep a very satisfying overall
737: behaviour.  
738: Consider also the matrix quoted from~\cite[Eq.\,5.4]{ChPa01}:
739: $$
740: A_1 = \left[ \begin {array}{cc}  1& 1-10^{-10} 
741: \\\noalign{\medskip} 1& 1 + 10^{-10}\end {array} \right],
742: $$
743: with $\text{cond}(R^{-1}) \approx 2 \times 10^{10}$.  We compute the matrix 
744: $\widetilde{R}$ in Matlab~\cite{matlab06}, and obtain over $\RR$ the
745: error bound:
746: \begin{equation}\label{theoA1}
747: |\widetilde{R}-R| \approx 
748: \left[ \begin {array}{cc} { 9.7\times 10^{-17}}&-{
749:  1.3\times 10^{-16}}\\\noalign{\medskip} 0&{ 3.7
750: \times 10^{-17}}\end {array} \right]
751: \leq 
752:  \left[ \begin {array}{cc} { 3.5\times 10^{-12}}&{ 3.5
753: \times 10^{-12}}\\\noalign{\medskip} 0&{ 7.4\times 10^{-17}}
754: \end {array} \right].
755: \end{equation}
756: The matrix $R$ is known with (relative) accuracy about $2.5 \times
757: 10^{-12}$ on the first row, and $5.25 \times
758: 10^{-7}$ for $r_{22}$. On the first row the error is overestimated
759: by a factor about $3.6 \times 10^4$. Notwithstanding
760: the fact that the accuracy of
761: the bound produced by Theorem~\ref{theo-errorsun}
762:  is penalized by the particular form of the matrix,
763: the estimation of the accuracy of $\widetilde{R}$ remains very good. 
764: Now let $A$ be the random $3 \times 3$ integer matrix 
765: $$
766: A_2 = \left[ \begin {array}{ccc} - 60& 28& 51\\\noalign{\medskip}-
767:  24&- 35&- 89\\\noalign{\medskip} 37& 51&- 23\end {array}
768:  \right].
769: $$ 
770: We look at Bound~(\ref{neq-errorH}) when perturbing only the second
771: row of the exact $R$ and get: 
772: \begin{equation}\label{theoA2}
773: |\widetilde{R}-R| = 
774: \left|\left[ \begin {array}{ccc}  0 & 0& 0\\\noalign{\medskip}0&
775:  0.0071& -0.0052\\\noalign{\medskip}0&0& 0
776: \end {array} \right]\right| \leq  \left[ \begin {array}{ccc}  0 &
777:  0 & 0
778: \\\noalign{\medskip} 0& 0.014204 & 0.023087 
779: \\\noalign{\medskip} 0& 0& 2.9 \times 10 ^{-6}\end {array} \right].
780: \end{equation}
781: The estimator computes the errors very well on the first and the
782: second row. We think that the dummy error estimated for $r_{33}$ 
783: is a repercussion of the perturbation of row two. 
784: In next section we review the different quantities that are involved 
785: in Theorem~\ref{theo-error} with the aim of looking at first 
786: implementation aspects. 
787: 
788: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
789: %%%% TOWARD IMPLEMENTATION
790: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
791: 
792: \section{Toward an implementation}   \label{sec-tow}
793: 
794: Theorem~\ref{theo-error} is the foundation of our error bounding
795: algorithm. It involves several quantities that need further
796: study before deriving an implementation in Section~\ref{sec-errorR}. 
797: We decompose the computation of  
798: the bound on $|\widetilde{R}-R|$ into four principal tasks. 
799: We need to: 1) check  that $\widetilde{R}$ is invertible; 2) compute
800: a bound on $G$; 3) check that $\rho (G) < 1$; and 4) 
801: bound $H=\text{\rm triu}(G (I-G)^{-1})$. 
802: We recall that at this point, only $A$ and $\widetilde{R}$ are
803: known. 
804: 
805: %%%%%%%
806: \subsection{Invertibility check of $\widetilde{R}$} \label{subsec-checkR}
807: For dealing with $\widetilde{R} ^{-1}$ in a certified way, which is clearly  a
808: non trivial question in finite precision, we use the verification solution of Oishi and
809: Rump~\cite{OiRu02}. 
810: We compute 
811: a purely numerical approximate inverse $V \approx  \widetilde{R}
812: ^{-1}$ (by numerical triangular inversion). 
813: Then we know from~\cite{OiRu02} that, if 
814: \begin{equation} \label{eq-testR}
815: \|\widetilde{R}V-I\|_{\infty} < 1,
816: \end{equation}
817: then $\widetilde{R}$ is invertible. 
818: 
819: 
820: %%%%%%%%%%
821: \subsection{Bounding $G$}\label{subsec-boundG}
822: 
823: For bounding $G$, and dealing with the unknown inverse of
824: $\widetilde{R}$, 
825: we are also inspired by~\cite{OiRu02}, and introduce 
826: $W=\widetilde{R}V$ ($\approx I$). We have  
827: $$
828: \begin{array}{ll}
829: G & = |\widetilde{R}^{-T} A ^T A 
830: \widetilde{R}^{-1} - I| \\
831: &=  |(W ^{-T} W ^T) \widetilde{R}^{-T} A ^T A 
832: \widetilde{R}^{-1} (W W ^{-1}) -  (W ^{-T} W ^T)(W W ^{-1})|\\
833: &= |W ^{-T}( V^T A ^T A V -   W ^TW) W ^{-1})|
834: \leq |W ^{-T}|\cdot|V^T A ^T A V -   W ^TW|\cdot| W ^{-1}|.
835: \end{array} 
836: $$
837: In the inequality above, if $\widetilde{R}$ is close to $R$ and $V$
838: is close to $\widetilde{R}^{-1}$, then both $V^T A ^T A V$ and $W
839: ^TW$ are close to identity. Hence it is natural to pursue with:
840: $$
841: \begin{array}{ll}
842: G & \leq |W ^{-T}|\cdot|V^T A ^T A V - I + I -   W ^TW|\cdot| W ^{-1}|\\
843: &\leq |W ^{-T}|\cdot|(V^T A ^T A V -I) - (W ^TW-I) |\cdot| W
844: ^{-1}|
845: \end{array} 
846: $$
847: which gives
848: \begin{equation} \label{eq-computG}
849: G \leq |W ^{-T}|\cdot(|(V^T A ^T A V -I)|+|(W ^TW-I)|)\cdot| W
850: ^{-1}|.
851: \end{equation}
852: We will use~(\ref{eq-computG}) for computing a certified bound for
853: $G$. 
854: The products involving $A$, $\widetilde{R}$, $V$, 
855: and $W =  \widetilde{R}V$ will be bounded directly by interval
856: techniques. It remains to bound 
857: $| W
858: ^{-1}|$. We expect $W$ to be close to $I$, and may use a
859: specific approximation.  
860: We have $|W^{-1}|= | (I-(I-W))^{-1}|$ (see~\cite[Intro.]{OiRu02}).
861: Then, when $\widetilde{R}$ is invertible,
862: $$
863: \begin{array}{ll}
864: |W^{-1}| & = | I + (I-W) + (I-W)^2 + \ldots |\\
865: & = | 2 I - W + (I-W)^2( I + (I-W) + (I-W)^2 + \ldots )|\\
866: & \leq | 2 I - W| + |(I-W)^2|\cdot |I + (I-W) + (I-W)^2 + \ldots|\\
867: & \leq | 2 I - W| + {\mathcal M}(\|I-W\|^2_{\infty}/(1-\|I-W\|_{\infty}))
868: \end{array} 
869: $$
870: where ${\mathcal M}(x)$ for $x \in \RR$ denotes the matrix whose all
871: entries are equal to $x$.
872: Here we have used the fact that the entries
873: of $|I-W|^2\cdot|I + (I-W) + (I-W)^2 + \ldots|$ are bounded by the
874: infinity norm. Since $W$ is triangular,  
875: it follows that 
876: \begin{equation} \label{eq-computabsinv}
877: |W^{-1}| \leq | 2 I - W| + \frac{\|I-W\|^2}{1-\|I-W\|_{\infty}}\cdot
878: \text{\rm triu}(\text{\rm 1}_n \cdot\text{\rm 1}^T_n)
879: \end{equation}
880: where $\text{\rm 1}_n$ is the column vector with all entries equal
881: to $1$. Note that the invertibility check~(\ref{eq-testR})
882: ensures that  $1-\|I-W\|_{\infty} >0$.
883: The absolute value $|W^{-1}|$ could have been bounded directly using
884: $1/(1-\|I-W\|_{\infty})$, but introducing the infinity norm only in
885: the second order terms leads to a much better bound 
886: in our experiments. 
887: 
888: The matrix manipulations we have done for obtaining~(\ref{eq-computG})
889: and~(\ref{eq-computabsinv}) follow some keys to the design
890: of verification methods. We especially refer
891: to~\cite[p.\,211]{Rum05} where the introduction of small factors is recommended.   
892: We have introduced  
893: the matrices $V^T A ^T A V-I$ and $W
894: ^TW-I$ 
895: whose absolute bounds are expected to be small 
896: when  $\widetilde{R} \approx R$ and $W \approx I$. 
897: On the other hand, in~(\ref{eq-computabsinv}), $|2I-W|$ is expected
898: to be close to $I$, and remaining terms are second order terms (see also the analysis for 
899: $\alpha$ in~\cite[\S5]{OiRu02}). 
900: 
901:   
902: 
903: %%%%%%%%%%
904: \subsection{Bounding the spectral radius of $G$}\label{subsec-boundrhoG}
905: 
906: For any consistent matrix norm we have $\rho(A) \leq \|A\|$. With
907: the above 
908: bound on $G$, 
909: we will simply test whether  
910: \begin{equation} \label{eq-computrho}
911: \|G\|_{\infty} < 1  
912: \end{equation}
913: for asserting that $\rho(G) <1$ in Theorem~\ref{theo-error}. This
914: test corresponds to the Gershg\"orin disks. It could certainly 
915: be sharpened in future versions of the certificate, 
916: see for instance the Cassini ovals in~\cite{BrMe94},
917: or the iterative estimation in~\cite{Rum06}. 
918: 
919: 
920: %%%%%%%%%%
921: \subsection{Bounding $|\widetilde{R}-R|$}\label{subsec-boundH}
922: 
923: Once a bound on $G$ is known it remains to bound $H=\text{\rm
924:   triu}(G (I-G)^{-1})$.
925: We have 
926: $$
927: G(I-G)^{-1}  =  G + G^2 + G^3 + \ldots = G + G^2 (I + G + G^2 + \ldots) \\
928: $$
929: and 
930: \begin{equation} \label{eq-computH}
931: \text{\rm
932:   triu}(G (I-G)^{-1}) 
933: \leq \text{\rm
934:   triu}(G) +  \text{\rm
935:   triu}\left(\frac{\|G\|_{\infty}^2}{1-\|G\|_{\infty}}\cdot 
936: \text{\rm 1}_n \cdot\text{\rm 1}^T_n \right).
937: \end{equation}
938: Since $G$ is expected to be small, $H = \text{\rm
939:   triu}(G (I-G)^{-1})$ is expected to be close to   $\text{\rm
940:   triu}(G)$.
941: Note that using the spectral radius check~(\ref{eq-computrho})
942: ensures that ${1-\|G\|_{\infty}}>0$.
943: 
944: 
945: 
946: 
947: 
948: 
949: %%%%%%%%%%%%%%  ALGORITHM R %%%%%%%%%%%%%%%%%%%%%%% 
950: %%%%%%%%%%%%%%  ALGORITHM R %%%%%%%%%%%%%%%%%%%%%%% 
951: 
952: 
953: \section{Error bounding algorithm for the $QR$ factor $R$} \label{sec-errorR}
954: 
955: Let $\FF$ be a set of floating point numbers such that the arithmetic
956: operations in~$\FF$ satisfy the IEEE~754 standard. 
957: $A$ and $\widetilde{R}$ are now matrices in
958: $\FF ^{n \times n}$. Since (finite) floating point numbers 
959: are rational numbers, $A$ and $\widetilde{R}$ can be seen as rational
960: matrices. Let $R \in \RR ^{n \times n}$ be the unknown $QR$ factor of $A$
961: (in general, the entries of $R$ are not in~$\FF$).
962: We carry the approach of  Section~\ref{sec-tow}
963: over to the floating point case for computing 
964: a floating point matrix $H$ such that $|\widetilde{R}-R| \leq H
965: |\widetilde{R}|$. 
966: The error matrix $H$ provided by Theorem~\ref{theo-error}
967: can be computed modulo the two checks~(\ref{eq-testR})
968: and~(\ref{eq-computrho}), and using the inequalities~(\ref{eq-computG}), (\ref{eq-computabsinv}),
969: and~(\ref{eq-computH}).
970: These checks and inequalities only involve matrix multiplications,
971: additions, subtractions, and divisions by a scalar. 
972: After explaining the basic techniques we use for computing certified
973: bounds in floating point arithmetic, we present the error bounding
974: algorithm and demonstrate its effectiveness on various examples. 
975: 
976: 
977: %%%%%%%%%%%%  MID POINT %%%%%%%%%%%%%%%%%
978: \subsection{Certified bounds for floating point matrix expressions} \label{subsec:certiftech}
979: 
980: We denote by $\text{\rm fl}(x)$ the value of an arithmetic
981: expression $x$ computed by floating point arithmetic in $\FF$.
982: For instance, for $a,b \in \FF$, $\text{\rm fl}(a+b\times c)$ denotes the 
983: result in $\FF$ with the addition and the mutiplication performed in
984: floating point arithmetic.  In the text, an arithmetic
985: expression on floating point numbers denotes the exact value in
986: $\RR$. For instance $a+b \in \RR$ is the result of the addition in $\RR$.
987: The abolute value, the max, and the negation are exact operations: for $a,b \in
988: \FF$, $\text{\rm
989:   fl}(|a|)= |a|$, $\text{\rm
990:   fl}(\max\{a,b\}) = \max\{a,b\}$, $\text{\rm
991:   fl}(-a)= -a$.
992: 
993: Thanks to the IEEE~754 standard, we can use the
994: possibility of changing the rounding mode for computing certified
995: bounds. We essentially follow Rump's approach for implementing 
996: verified matrix operations~\cite{Rum05}, and Oishi and Rump~\cite{OiRu02}.
997: We use the statements ``setround(down)'' and
998: ``setround(up)''\footnote{
999: {\tt  fesetround(FE\_DOWNWARD)} and {\tt fesetround(FE\_UPWARD)}
1000: in C language.}.
1001:  All operations after a statement ``setround(down)'' or ``setround(up)''  are rounded
1002:  downwards or upwards, respectively, until the 
1003: next call to setround. For two floating point numbers $a$ and $b$, a
1004: bound $r$ on 
1005: $|a~op~b|$ for $op \in \{+,-,\times,\div\}$
1006: may be computed as follows. The program 
1007: \begin{equation}\label{eq-roundmax}
1008: \begin{array}{ll}
1009: \text{setround(down)};
1010: &\underline{r}=\text{\rm fl}(a~op~b)\\
1011: \text{setround(up)};
1012: &\overline{r}=\text{\rm fl}(a~op~b); ~~r = \max \{|\underline{r}|,|\overline{r}|\}
1013: \end{array}
1014: \end{equation}
1015: leads to $\underline{r}$ and $\overline{r}$ such that 
1016: $
1017: \underline{r} \leq a~op~b \leq \overline{r},
1018: $
1019: and to $r \in \FF$ such that 
1020: $
1021: |a~op~b| \leq r, 
1022: $ 
1023: for any $a$ and $b$, and any $op$. 
1024: The IEEE standard ensures that $\underline{r}$ and $\overline{r}$
1025: are the best possible bounds in $\FF$.
1026: This may be extended to the matrix operation 
1027: $A \times B - C$ with  $A,B,C \in \FF ^{n \times n}$. If $A \times B$  
1028: is implemented using only additions and multiplications, then the
1029: program 
1030: \begin{equation}\label{eq-ABC}
1031: \begin{array}{ll}
1032: \text{setround(down)}; 
1033: &\underline{R}=\text{\rm fl}(A\times B-C)\\
1034: \text{setround(up)}; 
1035: &\overline{R}=\text{\rm fl}(A \times B -C); ~~R = \max \{|\underline{R}|,|\overline{R}|\}
1036: \end{array}
1037: \end{equation}
1038: where the maximum is taken componentwise, provides $\underline{R}
1039: \leq A \times B -C \leq \overline{R}$, and $R \in \FF ^{n
1040:   \times n}$ such that 
1041: $|A\times B-C| \leq R$.
1042: For bounding more general matrix expressions we will use a
1043: midpoint-radius matrix representation (we refer
1044: to~\cite[\S10.9]{Rum05}).
1045: Assume that $M$ and $N$ are two matrices known 
1046: to be in intervals $[\underline{M},\overline{M}]$
1047: and $[\underline{N},\overline{N}]$, respectively.
1048: The intervals are for instance obtained by a computation of
1049: type~(\ref{eq-ABC}).
1050: Then the program~\cite[Fig.\,10.22]{Rum05}:
1051: \begin{equation}\label{eq-MN}
1052: \begin{array}{ll}
1053: \text{setround(up)};&  \text{\rm m}_M = \text{\rm fl} ((\overline{M}
1054: -\underline{M})/2);~~\text{\rm r}_M = \text{\rm fl} (\text{\rm m}_M -
1055: \underline{M})\\
1056: &\text{\rm m}_N = \text{\rm fl} ((\overline{N}
1057: -\underline{N})/2);~~\text{\rm r}_N = \text{\rm fl} (\text{\rm m}_N -
1058: \underline{N})\\
1059: \text{setround(down)};& \underline{R} = \text{\rm fl} (\text{\rm m}_M \times
1060: \text{\rm m}_N-I)\\
1061: \text{setround(up)};& \overline{R} = \text{\rm fl} (\text{\rm m}_M \times
1062: \text{\rm m}_N-I)\\
1063: & R = \text{\rm fl} \left(\max \{|\underline{R}|,|\overline{R}|\} + |\text{\rm
1064:   m}_M|\times \text{\rm r}_N + \text{\rm r}_M \times \left(
1065: |\text{\rm
1066:   m}_N| + \text{\rm r}_N
1067:  \right)\right)
1068: \end{array}
1069: \end{equation}
1070: computes $R$ such that $|M\times N-I| \leq R$.
1071: Both~(\ref{eq-ABC}) and~(\ref{eq-MN}) allow to use fast matrix
1072: routines such as the BLAS ones (see the general
1073: discussion in~\cite[\S10.9]{Rum05})
1074: The number of operations in $\FF$ needed is  
1075: $2$ and $4$ matrix products, respectively.
1076: 
1077: Other matrix operations that we will perform  are additions,
1078: products, and divisions by scalars for matrices with positive
1079: entries (absolute values essentially). We   
1080: also compute infinity norms. With no subtraction involved, certified
1081: bounds can be computed using
1082: directed rounding. From~(\ref{eq-roundmax}), upper bounds for
1083: these computations are obtained 
1084: by evaluating the floating point expressions 
1085: after a ``setround(up)'' statement. 
1086: For upper bounds on divisions by a floating point number $1-g$, we first compute  
1087: upper bounds for $-(g-1)$ and $1/(g-1)$. 
1088: 
1089: Other approaches for certified matrix computations could be
1090: considered. We refer to Rump~\cite{Rum05} for a general discussion
1091: on this topic, and for the efficiency of the approach chosen here. 
1092: 
1093: 
1094: %%%%%%%%%%%%  ALGO  %%%%%%%%%%%%%%%%%
1095: \subsection{Computing an error bound}
1096: 
1097: For $A$ and $\widetilde{R}$ in
1098: $\FF ^{n \times n}$, $\widetilde{R}$ upper triangular, 
1099: we follow Section~\ref{sec-tow} for computing 
1100: a floating point matrix $H$ such that $|\widetilde{R}-R| \leq H
1101: |\widetilde{R}|$. All operations are done in the given floating
1102: point number set $\FF$. For simplifying the presentation we often forget
1103: the costs in $O(n^2)$. 
1104: 
1105: 
1106: The first step is the 
1107: computation of $V \approx \widetilde{R}^{-1}$. Such a triangular
1108: matrix inversion is done in $n^3/3$
1109: operations~\cite[Ch.\,14]{Hig02}. We then compute $\underline{W}$ and
1110: $\overline{W}$ for $W=\widetilde{R}V$ by two triangular matrix
1111: products, this is done in $2n^3/3$ operations. 
1112: This dominates the cost for checking that $\widetilde{R}$ is
1113: invertible by bounding $|W-I|$
1114: using~(\ref{eq-ABC}), and by the infinity norm test~(\ref{eq-testR}). 
1115: Re-using $\underline{W}$ and
1116: $\overline{W}$,
1117: a bound on $|W ^{-1}|$ is then computed
1118: using~(\ref{eq-computabsinv}) in $O(n^2)$ operations.
1119: The latter uses~(\ref{eq-ABC}) 
1120: for $|W-2I|$, and computes a bound with positive matrices using
1121: directed upwards
1122: rounding.
1123: We now look at bounding $G$ using~(\ref{eq-computG}).
1124: Since $G$ is symmetric we restrict ourselves to counting the
1125: operations for calculating 
1126:  the upper triangular part. 
1127: With $W \in [\underline{W},\overline{W}]$  one can
1128: bound $|W^TW-I|$ using~(\ref{eq-MN}) in four matrix
1129: products. Since $W$ is upper triangular, and $W^T$ is lower triangular,
1130: the bound is obtained in $4n^3/3$
1131: operations. 
1132: We then use~(\ref{eq-ABC})
1133: and~(\ref{eq-MN}) for computing an interval for $AV$ in $2n^3$
1134: operations (two dense $\times$ triangular matrix products), and for 
1135: bounding  $|V^TA ^T A V^T-I|$ in $4n^3$ operations (four dense
1136: products resulting in a symmetric matrix). A bound on $G$ is deduced by
1137: operations on matrices with positive entries in $4n^3/3$ operations. 
1138: The latter is  essentially two   
1139: dense $\times$ triangular matrix products with a symmetric result. 
1140: Once a bound on $G$ is known, testing its spectral radius
1141: by~(\ref{eq-computrho}) costs $O(n^2)$ operations. 
1142: $G$ has positive entries,  a bound on the
1143: error matrix $H$ can then be computed by directed towards rounding
1144: using~(\ref{eq-computH}) also in  $O(n^2)$ operations. 
1145: 
1146: We summarize this analysis, and take into account the final matrix product $H
1147: |\widetilde{R}|$ in the following result. 
1148: 
1149: \begin{theorem} \label{theo-maincost} 
1150: Let $A \in \FF ^{n \times n}$, and $\widetilde{R} \in \FF ^{n \times
1151:   n}$ upper triangular be given. 
1152: The error bounding algorithm computes a matrix 
1153: $F\in \FF ^{n \times
1154:   n}$ such that $|\widetilde{R}-R| \leq F$, where $R$ is the unknown $QR$ 
1155: factor of $A$, in $10n^3+O(n^2)$ floating point
1156: operations. %The entries of $F$ may be infinite. 
1157: \end{theorem}
1158: 
1159: A $QR$ factorization typically costs $2n^3 +O(n^2)$
1160: (Gram-Schmidt or Householder approaches) or $3n^3 +O(n^2)$ (using
1161: Givens rotations). Hence we are able to compute a certified 
1162: error bound $|\widetilde{R}-R|$ at the cost of only five
1163: approximate factorizations. 
1164: We have implemented the algorithm in C language. 
1165: The error bounding program 
1166: takes in input  two floating point matrices $A$ and
1167: $\widetilde{R}$
1168: and always returns a matrix $F$.
1169: The entries of $F$ are finite (positive) floating 
1170: numbers if the program is able to certify that $\widetilde{R}$
1171: is invertible, that the spectral radius of $G$ is less than
1172: one, and if no overflow is produced. 
1173: Otherwise, the entries of $F$ may be equal to infinity. 
1174: %subtraction
1175: 
1176: %%%%%%%%%%%% COMPUT RESULTS %%%%%%%%%%%%%
1177: 
1178: \subsection{Computational results}\label{subsec-comput}
1179: 
1180: The results we present here correspond
1181: to the application  of Theorem\ref{theo-maincost} with $64$~bits
1182: floating point numbers. 
1183: In this section and in~Section~\ref{sec-reduced} the condition
1184: numbers and the ``true errors''
1185: have been computed with high precision 
1186: using Mpfr~\cite{mpfr06}.
1187: For several types of matrices, 
1188: we study the behaviour of the certified error bound by looking at
1189: its value and its accuracy (with respect to the
1190: true error), especially when the dimension and the condition number
1191: increase. 
1192: We mainly focus on the exponent $k$ such that relative error is in 
1193: $10^{-k}$, $k$ expresses the number of significant decimal
1194: digits we certify for the entries of $\widetilde{R}$.  
1195: Let us first come back on the examples of Section~\ref{sec-sun}. 
1196: On the matrix $A_1$, and $\widetilde{R}$ from Matlab, we compute the bound 
1197: $$
1198: |\widetilde{R}-R| \leq 
1199:  \left[ \begin {array}{cc} { 6.7\times 10^{-11}}&{ 6.7
1200: \times 10^{-11}}\\\noalign{\medskip} 0&{ 5\times 10^{-16}}
1201: \end {array} \right].
1202: $$
1203: Comparing to~(\ref{theoA1}), we see that the finite precision
1204: estimator we propose is only slightly overestimating the  
1205: best bound that could be obtained by the method. 
1206: On the matrix $A_2$, and the corresponding perturbation of the exact
1207: $R$ we get:
1208: $$
1209: |\widetilde{R}-R| \leq  
1210: \left[ \begin {array}{ccc}  8.8 \times 10^{-6} &  9.52 \times 10^{-6}& 1.96 \times 10^{-6}\\
1211: \noalign{\medskip} 0& 0.014207 & 0.023098 
1212: \\\noalign{\medskip} 0& 0& 1.16 \times 10 ^{-5}\end {array} \right].
1213: $$
1214: The ``large'' perturbation of the second row is detected very
1215: accurately. 
1216: For next results, $\widetilde{R}$ is computed
1217: with the Modified Gram-Schmidt algorithm using $64$~bits numbers 
1218: as for the estimator. Our tests use ten matrix samples.
1219: 
1220: \begin{center}
1221: \includegraphics[scale=0.5]{Ffctdim.eps} 
1222: {\footnotesize
1223: ~\\
1224: \begin{minipage}{13.4cm}\begin{center}
1225: {\footnotesize Figure 6.1: Certified $\|H\|_{\infty}$  
1226: for random matrices $A$ with  
1227: $\kappa _{2}(A) \approx 10^3$.} \end{center}
1228: \end{minipage}
1229: }
1230: \end{center}
1231: We first illustrate the {\em value of the certified bound with respect to
1232: the dimension}.  
1233: Figures~6.1 and~6.2 are for random input matrices $A$
1234: (of {\tt randsvd} type~\cite[Ch.\,28]{Hig02}). 
1235: \begin{center}
1236: \includegraphics[scale=0.5]{diagfctdim.eps} 
1237: {\footnotesize
1238: ~\\
1239: \begin{minipage}{13.4cm}\begin{center}
1240: {\footnotesize Figure 6.2: Certified maximum relative error on ${R}$
1241:   for  random matrices $A$ \\such that 
1242: $\kappa _{2}(A) \approx 10^3$ ($y$ axe with logarithmic scale).} \end{center}
1243: \end{minipage}
1244: }
1245: \end{center}
1246: We keep the condition
1247: number almost constant when the dimension increase. We draw the
1248: infinity norm of $H$ such that $|\widetilde{R}-R| \leq H
1249: |\widetilde{R}|$, and the certified maximum relative error on the
1250: diagonal of $\widetilde{R}$, we mean $\max _i
1251: |\widetilde{r}_{ii}-r_{ii}|/|\widetilde{r}_{ii}|$. We see that
1252: $\|H\|_{\infty}$ increases linearly with $n$. The loss of accuracy
1253: on the diagonal is approximately quadratic in $n$ (we use a logarithmic scale
1254: for the $y$ axe on Figure~6.2). 
1255: Such small increase rates---that are typical of numerical
1256: algorithm forward errors themselves---demonstrate a first aspect of
1257: the effectiveness of our finite precision bounds.   
1258: The certified general maximum error $\max _{ij}
1259: |\widetilde{r}_{ij}-r_{ij}|/|\widetilde{r}_{ij}|$ increases
1260: faster. It typically grows from $10 ^{-7}$ to $10^{-5}$ for
1261: the dimensions considered here. 
1262: We need further investigation for a better understanding of the latter
1263: behaviour, especially of the influence of  
1264: the product $H|\widetilde{R}|$, 
1265: and of the magnitudes in $R$. 
1266: Note also that for the two latter figures, $\text{\rm
1267:   cond}(R^{-1})$ is  sligthly growing, and the growth of the
1268: estimation
1269: depends on the true error itself.  
1270: 
1271: We discuss next the {\em accuracy of the 
1272: certified bound with respect to the exact error} (not the quality of
1273: the $QR$ algorithm itself). 
1274: In addition to above {\tt randsvd} matrices we also consider 
1275: random integer matrices with entries of absolute values less than $1000$.
1276: On these two types of matrices we obtain similar results. 
1277: The condition numbers  $\kappa _{\infty}(A)$ 
1278: are varying from about $10^4$ to $10^6$.  
1279: On random integer matrices of dimension $1500$, the maximum exact
1280:  relative error on
1281:  $R$ 
1282: has order $10^{-10}$
1283: to $10^{-9}$. We are able to certify this error by returning an error bound of
1284: order $10^{-6}$
1285: to $10^{-5}$. 
1286: {\em With respect to the dimension}, we observe 
1287: that the fast certified bound  
1288: overestimates the componentwise error by a factor 
1289: of order about $10^3$ for $n=200$ to 
1290: about $10^5$ for $n=1500$. 
1291: Restricted to the diagonal entries, the overestimation goes from 
1292: about $10^2$ to less than $10^4$. 
1293: This shows that even with condition numbers and dimensions that
1294: can be here quite large,
1295: we are able to certify at least four or five significant decimal digits for
1296: every entries of $R$, and at least $9$ digits on the diagonal
1297: (where the error itself is much smaller in general). 
1298: On matrices with small condition number (generated using Matlab {\tt
1299:   gallery('orthog')}~\cite[Chapter\,28]{Hig02}) the quality of the
1300: certified bound may be remarkably small and stable with respect to the
1301: dimension. For dimensions between $60$ and $500$, and 
1302: $\text{\rm cond}(R ^{-1})\approx 3$ ($\kappa _{\infty} \leq 200$), we most of the time obtain an overestimation
1303: between $15$ and $22$ (and more than $12$ certified significant
1304: decimal digits in $\widetilde{R}$). 
1305: 
1306: 
1307: We may now ask the question of the sensitivity of the {\em quality of the
1308: certified error bound with
1309: respect to the condition number of the input matrix}. 
1310: We first report that 
1311: the quality maybe be very good even for
1312: matrices with  high condition number. 
1313: For Figure~6.4
1314: we use $A=QA_K \in \FF ^{n \times n}$. 
1315: The matrices $Q$ are random orthogonal from the Matlab
1316: {\tt gallery} function~\cite[Chapter\,28]{Hig02}. The matrices $A_K$ are 
1317: Kahan upper triangular matrices with $a_{ii}= (\sin \theta)^{i-1}$, 
1318: $a_{ij}= -(\sin \theta)^{i-1} \cos \theta$ for $j > i$, and $\theta=1.2$.
1319: \begin{center}
1320: \begin{minipage}{16cm}\begin{center}
1321: {\footnotesize
1322: $$
1323: \begin{array}{|c|c|c|c|c|c|c|c|} \hline 
1324: \text{\rm Dimension} & 10 & 20 & 30 & 40 & 50 & 60 & 70  \\  
1325: \kappa _{\infty}(A) & 10^2 & 1.3 \times 10^4 & 1.1 \times 10^6 &
1326: 7.8 \times 10^7 & 4.8 \times 10^9 & 
1327: 2.8 \times 10^{11} & 1.5 \times 10^{13}\\\hline  
1328: \text{\rm Bound/error} & 45 & 106 & 281 & 161 & 103 &140 & 152\\
1329: \text{\rm Certified digits in~} \widetilde{R} & 14 & 12 & 10 & 9 & 7 & 5 & 4 
1330: \\\hline 
1331: \end{array}
1332: $$
1333: Figure 6.4: Ratio of the certified relative error bound and the true
1334: error (max) \\on
1335: Kahan matrices, and number of significant decimal digits certified
1336: in $\widetilde{R}$. 
1337: }\end{center}
1338: \end{minipage}
1339: \end{center}
1340: However, in general, the quality of the bound may
1341: depend on the condition number. Consider for instance the 
1342: ratio of the certified relative error bound and the true error (max)
1343: for
1344: small matrices ($n=10$).  
1345: For a Chebyshev Vandermonde-like (nearly orthogonal, $\kappa
1346: _{\infty} \approx 13$), the ratio is about $11$. We have 
1347: a ratio about $14$ for 
1348: Toeplitz and symmetric positive definite matrices 
1349: ($\kappa
1350: _{\infty} \approx 700$). 
1351: On the Pascal matrix ($\kappa
1352: _{\infty} \approx 8 \times 10^9$) we get a ratio about $25$, and
1353: about $1600$ for the Hilbert matrix  ($\kappa
1354: _{\infty} \approx 3.5 \times 10^{13}$).
1355: Figure~6.5 is more general. The overestimation of 
1356: certified error bound seem to increase quite slowly with the
1357: condition number. 
1358: \begin{center}
1359: \includegraphics[scale=0.5]{fctcond.eps} 
1360: {\footnotesize
1361: ~\\
1362: \begin{minipage}{13.4cm}\begin{center}
1363: {\footnotesize Figure 6.5: Ratio of the certified relative error
1364:   bound and the true error (max)\\
1365: with respect to $\kappa_{\infty}(A)$ on
1366: {\tt randsvd} matrices of dimension $n=200$.} \end{center}
1367: \end{minipage}
1368: }
1369: \end{center}
1370: 
1371: 
1372: We see that the limits of our algorithm, we mean the conditions in
1373: which it is returning finite bounds, are clearly linked 
1374: with the numerical properties of $A$. 
1375: Let us give two examples for the impossibility 
1376: to certify the spectral radius using~(\ref{eq-computrho}). 
1377: We return finite bounds for the error on every entries of
1378: $\widetilde{R}$ for the Pascal matrix of dimension $14$ ($\kappa
1379: _{\infty} \approx 3.8 \times 10^{14}$, $\|G\|_{\infty}\approx
1380: 0.06$). For $n=15$ the algorithm produces infinity bounds. 
1381: On random {\tt randsvd} matrices of dimension $40$, the algorithm
1382: is effective until $\kappa
1383: _{\infty} \approx 3 \times 10^{14}$ with $\|G\|_{\infty}\approx
1384: 0.9$. Note
1385: that in double precision, with relative rounding unit $2^{-53}$ (the
1386: backward error is larger in general),
1387: and for a relative forward error less than $1$,  
1388:  the rule of thumb~(\ref{thumb})
1389: advocates for a condition number less than $10^{16}$.
1390: 
1391: The certified bound is computed with finite precision, hence inherently, 
1392: it overestimates the true error. However, for realistic dimensions
1393: and condition numbers (with respect to the precision), the
1394: overestimation is mastered. It follows that in general, many significant digits are
1395: certified in the approximate $QR$ factor $\widetilde{R}$.   
1396: The latter is a key to the application of the
1397: fast bound to the reducedness certificate. 
1398: 
1399: %%%%%%%%%%%%%%  ALGORITHM R %%%%%%%%%%%%%%%%%%%%%%% 
1400: %%%%%%%%%%%%%%  ALGORITHM R %%%%%%%%%%%%%%%%%%%%%%% 
1401: 
1402: 
1403: \section{A certificate for LLL reducedness} \label{sec-reduced}
1404: 
1405: To an $n\times n$ integer matrix $A$ we associate the Euclidean 
1406: lattice ${\mathcal L}$ generated by the columns  
1407: $(a_j)$ of $A$. About lattices the reader may refer for instance to
1408: Cohen's book~\cite{Coh95}. 
1409: Since the seminal 
1410: Lenstra-Lenstra-Lov\'asz algorithm~\cite{LLL82}---whose range of
1411: application is exceptional---the lattice basis
1412: reduction problem receives much attention. 
1413: In particular, floating-point variants 
1414: that lead to very fast reduction approaches have been 
1415: invented. See the work of Nguyen and Stehl\'e~\cite{NgSt05,Ste05},
1416: of Schnorr~\cite{Sch06}, and references therein. 
1417: Most of floating point variants 
1418: lead to powerful heuristics, especially \`a la
1419: Schnorr-Euchner~\cite{ScEu94}, that are implemented (often with
1420: improvements) in most of
1421:   computer algebra and number theory systems. 
1422: Our aim here is not to study the basis reduction itself.
1423: We focus on the reducedness. Indeed, 
1424: a fast heuristic may not certify that the output basis 
1425: is reduced (still working very well), and it is 
1426: worthwhile to study the problem of checking {\em a posteriori} 
1427: whether a given basis is reduced or not. 
1428: The notion of reduction we consider is the 
1429: LLL reduction~\cite{LLL82}. 
1430: 
1431: 
1432: We propose here an algorithm that takes in input an invertible  matrix $A \in \ZZ
1433: ^{n \times n}$, and tests the LLL reducedness of the basis formed
1434: by the columns of $A$. 
1435: In the Introduction we have seen that this consists in testing the 
1436: two conditions~(\ref{eq:defproper}) and~(\ref{eq:deflovasz}).
1437: Let $R$ be the $QR$ factor of $A$. 
1438: If the $a_j$ are proper, we mean 
1439: \begin{equation} \label{eq:proper}
1440: |r_{i,j}|/r_{i,i}\leq \eta,~1
1441: \leq i < j \leq n,
1442: \end{equation}
1443: and if the Lov\'asz conditions 
1444: \begin{equation} \label{eq:lovasz}
1445: \sqrt{\delta - \left(r_{i,i+1}/r_{i,i}\right)  ^2} ~r_{i,i} \leq r_{i+1,i+1},
1446: ~1\leq i \leq n-1,
1447: \end{equation}
1448: are satisfied, 
1449: then the basis $a_1, a_2, \ldots, a_n$ of ${\mathcal L}$ is called LLL reduced with
1450: parameters $(\delta, \eta)$.
1451: The latter satisfy
1452: $1/4 < \delta \leq 1$ and $1/2 \leq \eta < \sqrt{\delta}$.
1453: 
1454: The principle of the algorithm  
1455: is to compute an approximate
1456: $\widetilde{R}$ together with error bounds (using  the floating point
1457: algorithm of Section~\ref{sec-errorR}), then to test~(\ref{eq:proper}) and~(\ref{eq:lovasz}). 
1458: 
1459: The entries of $A$ are integers of arbitrary size (our
1460: implementation relies on Gmp~\cite{gmp06}). Therefore 
1461: the entries of $A$ may not be represented exactly by elements in
1462: $\FF$. Nevertheless, 
1463: for the computation of an approximate 
1464: $\widetilde{R}$ we may take $\widetilde{A}$
1465: by direct conversion to $\FF$. Since the error is very small 
1466: and $\widetilde{R}$ will be  an approximation anyway, 
1467: this
1468: does not really influence the quality of subsequent computations. Then
1469: $\widetilde{R}$ is computed by the Modified Gram-Schmidt algorithm. 
1470: Once $\widetilde{R}$ is known we apply Theorem~\ref{theo-maincost} 
1471: for computing a certified error bound. 
1472: The only expression that has to be bounded with $A$ involved
1473: is in~(\ref{eq-computG}), where 
1474: the computation of $AV$ using the program~(\ref{eq-ABC}) is needed.
1475: The problem of conversion to $\FF$ is solved here by rounding upwards and
1476: downwards 
1477: during the conversion integer to
1478: floating point. We mean that we introduce a small interval 
1479: such that $A\in [A_{-}, A_+]$ with 
1480: $A_-, A_+ \in \FF ^{n \times n}$
1481:  (see the certified techniques in Section~\ref{subsec:certiftech}),
1482:  and we evaluate 
1483:  $A_-V$ and $A_+V$ in~(\ref{eq-ABC}). 
1484: Therefore the error bound $F \in \FF ^{n \times n}$ 
1485: we compute by Theorem~\ref{theo-maincost} is actually such that 
1486: $|R-\widetilde{R}| \leq F$ for $R$ the $QR$ factor of any $A \in
1487: [A_{-}, A_+]$. 
1488: 
1489: Once $F$ is known, for fixed $i$ and $j$, we test~(\ref{eq:proper})
1490: by resorting to the bounding techniques  of Section~\ref{subsec:certiftech}:
1491: \begin{equation}\label{eq-progprop}
1492: \begin{array}{ll}
1493: \text{setround(down)};
1494: &\underline{\eta}=\text{\rm fl}(\eta); ~~t_i=\text{\rm
1495:   fl}((r_{i,i}-f_{i,i})\times \underline{\eta} )\\
1496: \text{setround(up)};
1497: &t_j=\text{\rm fl}(|r_{i,j}|+f_{i,j})\\
1498: & \text{\rm test} ~ t_j \leq t_i ?
1499: \end{array}
1500: \end{equation}
1501: with temporary variables  $t_i$ and $t_j$.  Recall that the
1502: diagonal entries of $R$ are positive. 
1503: Similarly, for a fixed $i$, we test~(\ref{eq:lovasz}) using:
1504: \begin{equation}\label{eq-proglov}
1505: \begin{array}{ll}
1506: \text{setround(up)}; & {t_i}=\text{\rm fl}(r_{i,i}+ f_{i,i});~ \overline{\delta}=\text{\rm fl}(\delta);\\
1507: \text{setround(down)}; & t_{i+1}=\text{\rm fl}(r_{i+1,i+1}- f_{i+1,i+1}) \\
1508: & t = \text{\rm fl}\left(((|r_{i,i+1}|- f_{i,i+1})/t_i)^2\right) -
1509: \delta; ~t=-t;\\
1510: \text{setround(up)};
1511: &t=\text{\rm fl}(\sqrt{t}\times t_i)\\& \text{\rm test} ~ t \leq t_{i+1}?
1512: \end{array}
1513: \end{equation}
1514: with temporary variables $t$ and $t_i$. 
1515: In practice, for minimizing the cost induced by the changes of
1516: rounding mode, loops are put between the setround instructions. 
1517: In addition to the  $10n^3+O(n^2)$ operations for computing
1518: $F$ using Theorem~\ref{theo-maincost}, the reducedness test 
1519: essentially requires  $2n^3+O(n^2)$ operations
1520: for computing an approximate factor $\widetilde{R}$. This gives the
1521: following.
1522: \begin{theorem} \label{theo-mainreduc} 
1523: Let $A \in \ZZ ^{n \times n}$ invertible and parameters 
1524: $(\delta, \eta)$ be given.
1525: %% inversibletester implicitement apres  
1526: The reducedness certificate certifies  
1527: in $12n^3+O(n^2)$ floating point
1528: operations that the column lattice of $A$ is LLL reduced with parameters 
1529:  $(\delta, \eta)$, or returns  ``failed''.
1530: \end{theorem}
1531: The reducedness is certified when the  error bound computed for 
1532: $|\widetilde{R}-R|$ is finite, when no overflow or underflow occur
1533: during the test, and when the basis is reduced.
1534: %subtractions ? underflow ? 
1535: The cost of the certificate is roughly the
1536: one of six floating point
1537: $QR$ 
1538: factorizations.  Therefore in general, the reducedness test should be much
1539: faster than the reduction process itself,  and may 
1540: be appended  to any reduction heuristic program. 
1541: 
1542: Let us now report some experiments. As previously in the paper all
1543: codes are run using $64$~bits floating point numbers. The effectiveness of the
1544: certificate essentially relies on 
1545: the effectiveness of the error bounding algorithm. 
1546: We have manipulated lattices using Magma~\cite{magma06}, 
1547: the LLL reduction implementation is based on the work of Nguyen and
1548: Stehl\'e~\cite{NgSt05,Ste05}. 
1549: The first family of reduced bases---matrices $A$---we consider are 
1550: obtained by the reduction of $n \times n$ random integer matrices. 
1551: The bases are reduced for the classical LLL parameters
1552: $(\delta,\eta)=(3/4,1/2)$ in Figure~7.1, and $(\delta,\eta)=(0.99,0.5001)$
1553: for a stronger reduction in Figure~7.2.
1554: \begin{center}
1555: \begin{minipage}{13.4cm}\begin{center}
1556: {\footnotesize
1557: $$
1558: \begin{array}{|c|c|c|c|c|c|c|c|} \hline 
1559: \text{\rm Dimension} & 40 & 200 & 500 & 1000   \\  \hline 
1560: \kappa _{\infty}(A) & 4.7 \times 10^2 & 2.4 \times 10^4 & 1.8 \times 10^5 &
1561: 9 \times 10^5 \\ 
1562: t_k-t=\min_i \{t_{i+1}-t\} \text{\rm ~in~(\ref{eq-proglov})}& 18 & 10 & 13 & 23\\
1563: \text{\rm Certified~absolute~error~on~} \|a_k ^*\|_2 & 7.5 \times 10^{-12}
1564: &  3 \times 10^{-10} & 1.5 \times 10^{-9}  & 1.2 \times 10^{-8}
1565: \\\hline 
1566: \text{\rm Certified~} \max_{ij} \mu _{ij} & 0.4997 & 0.499994 & 0.49991 & 0.49999\\
1567: \text{\rm Max.~certified~relative~error~on~} |r_{ij}|
1568: & 2.8 \times 10^{-11}& 8.6 \times 10^{-9}& 1.5 \times 10^{-7}& 3 \times 10^{-5}\\\hline
1569: \end{array}
1570: $$
1571: Figure 7.1: Reducedness certificate output on $(3/4,1/2)$-reduced
1572: bases from random integer matrices with entries on $10^3$ bits, 
1573: $\max |a_{ij}| \leq 1000$.
1574: }\end{center}
1575: \end{minipage}
1576: \end{center}
1577: Since the numerical quality of the tested
1578: bases is good ($\kappa _{\infty}(A) \leq 10^6$), the reducedness certificate 
1579: is highly efficient. We mean that the
1580: certified error is very small, and hence  the tests are passed
1581: except in exceptional cases. 
1582: Figures~7.1 and~7.2 for instance look at the smallest difference 
1583: $t_k-t$ whose positiveness has to be certified
1584: in~(\ref{eq-proglov}). The certificate has lots of room since the 
1585: absolute errors on $t$ and $t_k = \|a_k^*\|_2$ are much smaller.  
1586: Exceptional cases will rather occur when testing properness.
1587: Indeed, testing
1588: reducedness may be an ill-posed problem because of the possible equalities 
1589: in~(\ref{eq:proper}) and~(\ref{eq:lovasz}). 
1590: An ill-posed case with say $\eta=1/2$,
1591: is for example a reduced basis with  $\mu _{ij}=1/2$ for some $i,j$.  
1592: Therefore the algorithm will rather be used for certifying that 
1593: a $(\delta,\eta)$-reduced basis is a $(\delta -\epsilon_1,\eta +\epsilon_2)$-reduced basis
1594: for small $\epsilon_1, \epsilon_2$. The latter does really affect  
1595: the relevant certified informations provided by the reduction. 
1596: \begin{center}
1597: \begin{minipage}{14cm}\begin{center}
1598: {\footnotesize
1599: $$
1600: \begin{array}{|c|c|c|c|c|c|c|c|} \hline 
1601: \text{\rm Dimension} & 40 & 200 & 500 & 1000   \\  \hline 
1602: t_k-t=\min_i \{t_{i+1}-t\} \text{\rm ~in~(\ref{eq-proglov})}&  4.8 \times 10^{-2}& 7.7 \times 10^{-2}& 5.3 \times 10^{-2}&
1603: 7.3 \times 10^{-2}\\
1604: \text{\rm Certified~absolute~error~on~} \|a_k ^*\|_2 & 9.4 \times 10^{-14}
1605: &  6 \times 10^{-12} & 4 \times 10^{-11}  & 2 \times 10^{-10}
1606: \\\hline 
1607: \end{array}
1608: $$
1609: Figure 7.2: Reducedness certificate output on $(0.99,0.501)$-reduced
1610: bases from random integer matrices with entries on $10$ bits, 
1611: $\max |a_{ij}| \leq 10$.
1612: }\end{center}
1613: \end{minipage}
1614: \end{center}
1615: 
1616: A second type of reduced bases on which we have run the certificate
1617: comes from the problem of computing a good floating point coefficient
1618: polynomial approximation to a function~\cite{BrCh07}. 
1619: We have considered reduced bases with parameters  $(3/4,1/2)$.
1620: These bases may have integer entries as large as $10^{80}$.
1621: The certificate has always succeeded. 
1622: On a $18 \times 18$ example, with $\kappa _{\infty}(A) \approx 4
1623: \times 10^{12}$, the smallest difference $t-t_k$ has been around 
1624: $2.4 \times 10^{76}$
1625: with certified absolute error $1.95 \times 10^{62}$. 
1626: The maximum of the $\mu _{ij}$ has been certified to be less than
1627: $0.493$.
1628: On an example with $n=31$ and $\kappa _{\infty}(A) \approx 8
1629: \times 10^{13}$, 
1630: we have  certified an absolute error $3.2 \times 10^{53}$ for 
1631: $t-t_k \approx 1.7 \times 10^{67}$. 
1632: On the latter example we have also checked that $\max \mu _{ij} \leq 0.4991$,
1633: thanks to a  maximum relative error $|\widetilde{R}-R|$ certified to
1634: be less than $0.2$ (only
1635: $6 \times 10^{-15}$ on the diagonal). 
1636: 
1637: 
1638: The first main source of failure of the 
1639: certificate is the failure of the error bounding algorithm when 
1640: the precision is too small compared to the numerical quality of the 
1641: tested basis. We have run the certificate on a third class of
1642: reduced bases. These bases are obtained by the reduction of ``random'' (knapsack type)
1643:  lattice bases in the  
1644: sense of~\cite[\S3.4]{NgSt06}. In the experiments 
1645: reported here, the non reduced bases have random integers 
1646: of $10^3$ bits in the knapsack weight row. 
1647: The reduced bases in input of the certificate (matrices $A$) are dense with
1648: integers as large as $10^{45}$ for $n=75$, and  $10^{20}$
1649: for $n=300$.
1650: We use the parameters 
1651: $(\delta,\eta)=(3/4,1/2)$ and $(\delta,\eta)=(0.99,0.5001)$.
1652: The choice $(\delta,\eta)=(0.99,0.5001)$ 
1653: produces better reduced bases as shown by $\kappa _{\infty}$
1654: in 
1655: Figure~7.3 (for a same non reduced basis). 
1656: Until dimension $175$ the certificate is very likely to succeed
1657: since the maximum certified relative error is small.    
1658: On several tenths of trials, the certificate never failed, with 
1659: a certified $\max |\mu_{ij}|$ as close to $1/2$ (with $\eta = 1/2$) 
1660: as $0.4999916$. 
1661: \begin{center}
1662: \begin{minipage}{\textwidth}\begin{center}
1663: {\footnotesize
1664: $$
1665: \begin{array}{|c|c|c|c|c|c|} \hline 
1666: \text{\rm Dimension} &  75 & 100 & 125 & 150 & 175  \\  \hline 
1667: (\delta,\eta)=(3/4,1/2), ~~\kappa _{\infty}(A) &  6 \times 10^5 & 5.2 \times 10^6 &
1668: 2.3 \times 10^8 & 1.3 \times 10^{10} & 2 \times 10^{11} \\ 
1669: t_k-t=\min_i \{t_{i+1}-t\} \text{\rm ~in~(\ref{eq-proglov})}& 
1670: 1.3 \times 10^{37}&8.5 \times 10^{26}& 4.2 \times 10^{20}&3  \times 10^{15}& 1.2 \times 10^{12}\\
1671: \text{\rm Max.~certified~relative~error~on~} |r_{ij}|
1672: & 1.3 \times 10^{-9}& 3.4 \times 10^{-8} & 2.2
1673: \times 10^{-6}& 2.1 \times 10^{-5} & 6.3 \times 10^{-3} \\\hline
1674: (\delta,\eta)=(0.99,0.5001), ~~\kappa _{\infty}(A) &  2.4\times 10^4 & 4.6 \times 10^5 &
1675: 4 \times 10^5 & 4 \times 10^{7} & 9 \times 10^{8} \\ 
1676: \text{\rm Max.~certified~relative~error~on~} |r_{ij}|
1677: & 5.1 \times 10^{-10}& 2.5 \times 10^{-9} & 3.9 
1678: \times 10^{-8}& 6 \times 10^{-7} & 9.5 \times 10^{-6} \\\hline
1679: \end{array}
1680: $$
1681: Figure 7.3: Reducedness certificate output on ``random'' reduced
1682: bases from knapsack problems,\\ $\max |a_{ij}|$ goes from $10^{45}$ ($n=50$)
1683: down to $10^{25}$ ($n=175$).
1684: }\end{center}
1685: \end{minipage}
1686: \end{center}
1687: 
1688: Beyond dimension $175$ with this type of reduced basis, the certificate 
1689: starts to fail more often. On dimension $200$ with a conditioning about
1690: $10^{12}$
1691: with $(3/4,1/2)$, the error bound on the relative error approaches~$1$. 
1692: The properness with $\eta=1/2$ may become impossible to check, and
1693: ask  for a certificate with  $\eta=1/2 + \epsilon$, say
1694: $\eta=0.5001$. Note that the Lov\'asz test~(\ref{eq-proglov})
1695: seems to fail later thanks to much better error bounds on the
1696: diagonal in general. 
1697: On dimension $300$ for  $(3/4,1/2)$ the quality of the reduced bases
1698: is too deteriorated ($\kappa _{\infty} \approx 10^{19}$), 
1699: and the error bounding algorithm  fails with the impossibility 
1700: of having a small spectral radius in~(\ref{subsec-boundrhoG}).
1701: Nevertheless, on a typical example of dimension $300$ with 
1702: a $(0.99,0.5001)$ reduced basis, 
1703: the error bounding algorithm remains effective ($\kappa _{\infty} \approx
1704: 2.5 \times 10^{13}$, $\|H\|_{\infty} \approx 0.6$). 
1705: The certificate may not be able to certify the actual reducedness of
1706: the basis, for example with $\min_i \{t_{i}-t\} \approx - 4.12 \times 10^8$, and
1707: a too
1708: big absolute error bound $4.42 \times 10^8$. 
1709: By changing the certificate parameters 
1710: to $(\delta - \epsilon_1, \eta + \epsilon_2)=(0.985,0.515)$, 
1711: the certificate succeeds again, and therefore is still able to certify a 
1712: relevant information on the basis. 
1713: 
1714: The numerical limitations of the certificate are close to  
1715: those identified in~\cite[Heuristic~4]{NgSt06} for the reduction
1716: process itself. Indeed, on the knapsack bases,
1717: it is claimed in~\cite{NgSt06} that 
1718: a precision $n/4 +o(n)$ should suffice when using the floating point
1719: reduction of~\cite{NgSt05}.  This means that $n\approx 200$ 
1720: is a barrier with a $53$~bits precision ($64$~bits numbers). 
1721: The eventuality of a link between
1722: both limitations deserves to be further investigated. 
1723: 
1724: 
1725: 
1726: %%%%%%%%%%%%%%  CONCLUSION %%%%%%%%%%%%%%%%%%%%%%% 
1727: %%%%%%%%%%%%%%  CONCLUSION %%%%%%%%%%%%%%%%%%%%%%% 
1728: 
1729: 
1730: \section{Conclusions} \label{sec-conclusion}
1731: 
1732: Between numerical approximation and computer algebra, we propose a
1733: certificate for an (exact) algebraic/geometric property---the LLL
1734: reducedness of a lattice basis.
1735: This work, based on the fast computation of certified error bounds,
1736: inherits from the verification methods approach. In particular,  
1737: thanks to the IEEE arithmetic standard, 
1738: the floating point errors do not put a curb on the objective of
1739: certification. They may rather be mastered
1740: and used for accelerating the programs. 
1741: In error bound computation and property certification, 
1742: the foreground of our study is to understand the 
1743: compromize between the cost and the quality/effectiveness of 
1744: bounds and certificates. In our case for instance, may we hope for an $O(n^2)$ effective
1745: certificate? Various 
1746: computer arithmetics come in the background, where floating
1747: point computation, multi-precision, verification identities, midpoint-radius
1748: intervals, and exact computation are collaborative tools. 
1749: 
1750: We think that our study raises several  
1751: directions that deserve further investigations. 
1752: The error bounding problem for the $R$ factor, and its finite
1753: precision implementation should be better understood and improved, ingredients such as
1754: diagonal scaling and other approximate $QR$ 
1755: factorizations may be introduced. The usefulness of taking into account the
1756: algorithm used for computing $\widetilde{R}$ should be studied 
1757: (in a more restrictive  verification approach). 
1758: A more general question is to know 
1759: whether reducedness could be certified without resorting to the $QR$
1760: factorization?
1761: 
1762: To our knowledge, 
1763: the minimum precision required for a proven LLL variants is 
1764: $1.6n +o(n)$ with the L$^2$ algorithm of~\cite{NgSt05,NgSt06}
1765: (for $\delta$ close to $1$ and $\eta$ close to $1/2$).
1766: Our experiments show we may certify reducedness for dimensions 
1767: much higher than this worst-case limit ($n_{\max} \leq 53/1.6 \approx 33$). The certificate is
1768: therefore very effective for a use complementary to reduction
1769: heuristics in dimension greater than $n_{\max}$ with double
1770: precision.
1771: Noticing the fact that the certificate 
1772: is sensitive to the numerical properties of the input basis, it is
1773: worth studying its extensions to reduction algorithms and
1774: reducedness certificates with adaptative precision, and sensitive
1775: to the numerical quality.    \\
1776: 
1777: 
1778: % length expansions 
1779: % superfast 
1780: %superfast car A ^T A ?
1781: % algorithme dependant ou pas ? 
1782: %more automatic 
1783: %specific for diagonal 
1784: %formal proof 
1785: 
1786: 
1787: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1788: \noindent
1789: {\bf Acknowledgements.} 
1790: We thank Damien Stehl\'e for fruitful discussions around the floating
1791: point reduction algorithms and heuristics, and for his help in
1792: testing reduced bases. 
1793: 
1794: 
1795: 
1796: %%%%%%%%%%%%%%%% BIBLIO %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1797: 
1798: 
1799: {\small 
1800: \bibliographystyle{plain}
1801: %\bibliography{qr}
1802: \begin{thebibliography}{10}
1803: 
1804: \bibitem{IEEE754}
1805: ANSI/IEEE 754-1985.
1806: \newblock {Standard for Binary Floating-Point Arithmetic}, 1985.
1807: 
1808: \bibitem{BrCh07}
1809: N.~Brisebarre and S.~Chevillard.
1810: \newblock Efficient polynomial ${L}^{\infty}$-approximations.
1811: \newblock In {\em Proc. 18th Symposium on Computer Arithmetic, Montpellier,
1812:   France}. IEEE Computer Society Press, 2007.
1813: 
1814: \bibitem{BrMe94}
1815: R.A. Brualdi and S.~Mellendorf.
1816: \newblock {Regions in the complex plane containing the eigenvalues of a
1817:   matrix}.
1818: \newblock {\em Am. Math. Mon.}, 101(10):975--985, 1994.
1819: 
1820: \bibitem{ChPa01}
1821: X.-W. Chang and C.C. Paige.
1822: \newblock {Componentwise perturbation analyses for the QR factorization}.
1823: \newblock {\em Numer. Math.}, 88:319--345, 2001.
1824: 
1825: \bibitem{CPS97}
1826: X.-W. Chang, C.C. Paige, and G.W. Stewart.
1827: \newblock {Perturbation analyses for the QR factorization}.
1828: \newblock {\em SIAM J. Matrix Anal. Appl.}, 18:775--791, 1997.
1829: 
1830: \bibitem{Coh95}
1831: H.~Cohen.
1832: \newblock {\em A Course in Computational Number Theory}.
1833: \newblock Springer-Verlag, 2nd Edition, 1995.
1834: 
1835: \bibitem{DDM01}
1836: J.~Demmel, B.~Diament, and G.~Malajovich.
1837: \newblock {On the Complexity of Computing Error Bounds}.
1838: \newblock {\em Found. Comput. Math.}, 1(1):101--125, 2000.
1839: 
1840: \bibitem{Blas90}
1841: J.J. Dongarra, J.~Du~Croz, I.S. Duf, and S.~Hammarling.
1842: \newblock {A set of Level 3 Basic Linear Algebra Subprograms}.
1843: \newblock {\em ACM Trans. Math. Software}, 16:1--17, 1990.
1844: 
1845: \bibitem{Fre79}
1846: R.~Freivalds.
1847: \newblock Fast probabilistic algorithms.
1848: \newblock In {\em {Proc. 8th Symposium on Mathematical Foundations of Computer
1849:   Science}}, LNCS 74, pages 57--69. Springer Verlag, 1979.
1850: 
1851: \bibitem{Hig02}
1852: N.J. Higham.
1853: \newblock {\em Accuracy and stability of numerical algorithms}.
1854: \newblock SIAM, Philadelphia, PA, 2nd Edition, 2002.
1855: 
1856: \bibitem{KaVi04}
1857: E.~Kaltofen and G.~Villard.
1858: \newblock Computing the sign or the value of the determinant of an integer
1859:   matrix, a complexity survey.
1860: \newblock {\em J. Comp. Applied Math}, 162(1):133--146, 2004.
1861: 
1862: \bibitem{LLL82}
1863: A.K. Lenstra, H.W. Lenstra, and L.~Lov\'asz.
1864: \newblock Factoring polynomials with rational coefficients.
1865: \newblock {\em Mathematische Annalen}, 261:515--534, 1982.
1866: 
1867: \bibitem{magma06}
1868: Magma.
1869: \newblock {\em Handbook of Magma Functions, Version 2.13}.
1870: \newblock Computational Algebra Group, University of Sydney, Australia, 2006.
1871: 
1872: \bibitem{matlab06}
1873: Matlab.
1874: \newblock {\em User's Guide, Version 7.2}.
1875: \newblock The MathWorks, Inc., 2006.
1876: 
1877: \bibitem{May94}
1878: G.~Mayer.
1879: \newblock {Result Verification for Eigenvectors and Eigenvalues}.
1880: \newblock In J.~Herzberger, editor, {\em IMACS-GAMM International Workshop,
1881:   Oldenburg, Germany, 1993}, Stud. Comput. Math., pages 209--276. Elsevier,
1882:   1994.
1883: 
1884: \bibitem{Maple10}
1885: Michael~B. Monagan, Keith~O. Geddes, K.~Michael Heal, George Labahn, Stefan~M.
1886:   Vorkoetter, James McCarron, and Paul DeMarco.
1887: \newblock {\em Maple~10 Programming Guide}.
1888: \newblock Maplesoft, Waterloo ON, Canada, 2005.
1889: 
1890: \bibitem{gmp06}
1891: Gnu MP.
1892: \newblock {\em The GNU Multiple Precision Arithmetic Library, Edition 4.2.1,
1893:   \url{http://www.swox.com/gmp}}.
1894: \newblock 2006.
1895: 
1896: \bibitem{mpfr06}
1897: MPFR.
1898: \newblock {\em The Multiple Precision Floating-Point Reliable Library, Edition
1899:   2.2.1, \url{http://www.mpfr.org}}.
1900: \newblock 2006.
1901: 
1902: \bibitem{NgSt05}
1903: P.Q. Nguyen and D.~Stehl\'e.
1904: \newblock {Floating-point LLL revisited}.
1905: \newblock In {\em Proc. Eurocrypt'05}, LNCS 3494, pages 215--233. Springer
1906:   Verlag, 2005.
1907: 
1908: \bibitem{NgSt06}
1909: P.Q. Nguyen and D.~Stehl\'e.
1910: \newblock {LLL on the average}.
1911: \newblock In {\em Proc. ANTS VII}, LNCS 4076, pages 238--256. Springer Verlag,
1912:   2006.
1913: 
1914: \bibitem{OiRu02}
1915: S.~Oishi and M.S. Rump.
1916: \newblock Fast verification of solutions of matrix equations.
1917: \newblock {\em Numer. Math.}, 90(4):755--773, 2002.
1918: 
1919: \bibitem{Pan01}
1920: V.Y. Pan and Y.~Yu.
1921: \newblock {Certification of numerical computation of the sign of the
1922:   determinant of a matrix}.
1923: \newblock {\em Algorithmica}, 30:708--724, 2001.
1924: 
1925: \bibitem{Rum94}
1926: S.M. Rump.
1927: \newblock {Verification Methods for Dense and Sparse Systems of Equations}.
1928: \newblock In J.~Herzberger, editor, {\em Topics in Validated Computations --
1929:   Studies in Computational Mathematics}, pages 63--136. Elsevier, 1994.
1930: 
1931: \bibitem{Rum01}
1932: S.M. Rump.
1933: \newblock {Computational Error Bounds for Multiple or Nearly Multiple
1934:   Eigenvalues}.
1935: \newblock {\em Linear Algebra and its Applications}, 324:209--226, 2001.
1936: 
1937: \bibitem{Rum03}
1938: S.M. Rump.
1939: \newblock {Algorithms for Computing Validated Results}.
1940: \newblock In {J. Grabmeier, E. Kaltofen, and V. Weispfenning}, editor, {\em
1941:   {Computer Algebra Handbook}}, pages 110--112. {Springer-Verlag, Heidelberg,
1942:   Germany}, 2003.
1943: 
1944: \bibitem{Rum05}
1945: S.M. Rump.
1946: \newblock {Computer-Assisted Proofs and Self-Validating Methods}.
1947: \newblock In B.~Einarsson, editor, {\em Handbook of Accuracy and Reliability in
1948:   Scientific Computation}, pages 195--240. SIAM, 2005.
1949: 
1950: \bibitem{Rum06}
1951: S.M. Rump.
1952: \newblock {Verification of positive definiteness}.
1953: \newblock {\em BIT Numerical Mathematics}, 46:433--452, 2006.
1954: 
1955: \bibitem{RuOg07}
1956: S.M. Rump and T.~Ogita.
1957: \newblock Super-fast validated solution of linear systems.
1958: \newblock {\em J. Comp. Applied Math}, 199(2):199--206, 2007.
1959: 
1960: \bibitem{Sch06}
1961: C.P. Schnorr.
1962: \newblock {Fast LLL-Type Lattice Reduction}.
1963: \newblock {\em Information and Computation}, 204:1--25, 2006.
1964: 
1965: \bibitem{ScEu94}
1966: C.P. Schnorr and M.~Euchner.
1967: \newblock Lattice basis reduction: improved practical algorithms and solving
1968:   subset sum problems.
1969: \newblock {\em Mathematics of Programming}, 66:181--199, 1994.
1970: 
1971: \bibitem{Ste05}
1972: D.~Stehl\'e.
1973: \newblock {\em {Algorithmique de la r\'eduction de r\'eseaux et application \`a
1974:   la recherche de pires cas pour l'arrondi de fonctions mathmatiques}}.
1975: \newblock PhD thesis, {Universit\'e Henri-Poincar\'e - Nancy 1, Nancy, France},
1976:   December 2005.
1977: 
1978: \bibitem{Ste93}
1979: G.W. Stewart.
1980: \newblock {On the perturbation of LU, Cholesky, and QR factorizations}.
1981: \newblock {\em SIAM J. Math. Anal.}, 14(4):1141--1145, 1993.
1982: 
1983: \bibitem{Sun91}
1984: J.-G. Sun.
1985: \newblock {Perturbation bounds for the Cholesky and $QR$ factorizations}.
1986: \newblock {\em BIT}, 31:341--352, 1991.
1987: 
1988: \bibitem{Sun92}
1989: J.-G. Sun.
1990: \newblock {Componentwise perturbation bounds for some matrix decompositions}.
1991: \newblock {\em BIT}, 32:702--714, 1992.
1992: 
1993: \bibitem{Zha93}
1994: H.~Zha.
1995: \newblock {A componentwise perturbation analysis of the QR decomposition}.
1996: \newblock {\em SIAM J. Matrix Anal. Appl.}, 14(4):1124--1131, 1993.
1997: 
1998: \end{thebibliography}
1999: 
2000: 
2001: 
2002: 
2003: }
2004: 
2005: 
2006: 
2007: 
2008: 
2009: \end{document}
2010:    
2011: