Systems Optimization Laboratory
Stanford, CA 94305-4121 USA
qdotdd: Quad-precision dotproduct of double-precision vectors
Ding Ma and
- CONTENTS: qdotdd is a set of Fortran 90 routines for computing
the dotproduct \(q = v^T w\) of two double-precision vectors
\(v\), \(w\) and obtaining a quad-precision result \(q\)
using only double-precision floating point.
This operation is commonly known as "dotproduct accumulation".
Early machines would have a hardware accumulator to give
accurate dotproducts. Here, the gfortran compiler implements
real(16) data types in Fortran 90 using the GNU GCC libquadmath
call qdotdd( v,w,n,x,y )
q = real(x,16) + real(y,16)
with real(8) v(n), w(n), x, y and real(16) q
gives q to almost quadruple precision using only double-precision
Stef Graillat and Valerie Menissier-Morain,
Accurate summation, dot product and polynomial evaluation in complex
floating point arithmetic,
Information and Computation 216 (2012) 57--71.
Ding Ma and Michael Saunders,
Experiments with quad precision for iterative solvers,
SIAM Conference on Optimization, San Diego, CA, May 19-22, 2014.
29 Dec 2014: Fortran 90 code posted.