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: