\documentclass[10pt]{article}
\usepackage[numbers]{natbib}
\usepackage{xspace}
\usepackage{url}
\usepackage{mathtools}
\usepackage{a4wide}
\usepackage{listings}

\newcommand{\fvarn}[1]{{\small \textit{#1}}}
\newcommand{\filename}[1]{{\textit{#1}}\xspace}
\newcommand{\nrm}{{\small \textit{*nrm2}}\xspace}
\newcommand{\bignrm}{{\textit{*nrm2}}\xspace}
\newcommand{\maxreal}{\omega}
\newcommand{\macheps}{\epsilon}
\newcommand{\halfeps}{\alpha}
\newcommand{\minExponent}{\gamma}
\newcommand{\digits}{\delta}
\newcommand{\Tiny}{\tau}
\newcommand{\Inf}{$Inf$}
\newcommand{\NaN}{$NaN$}
\newcommand{\OrigBLAS}{1\xspace}
\newcommand{\BlueAlg}{2\xspace}
\newcommand{\LapackNrm}{3\xspace}
\newcommand{\KahanAlg}{4\xspace}
\newcommand{\mchead}[2]{\multicolumn{#1}{|c|}{#2}}
\newcommand\T{\rule{0pt}{2.6ex}} % Top strut
\newcommand\B{\rule[-1.2ex]{0pt}{0pt}} % Bottom strut
\newcommand{\lapackVersion}{{version 3.6.1}\xspace}
\newcommand{\lapackDate}{{June 2016}\xspace}
\newcommand{\FaithfulNorm}{\textit{FaithfulNorm}\xspace}

\newtheorem{test}{\bf Test}


% Settings for the listing package
\lstloadlanguages{Fortran}
\lstset{language=Fortran, 
        frame=single, 
        columns=[c]fixed,
        basicstyle={\ttfamily\footnotesize},
        commentstyle={\ttfamily\itshape},
        keywordstyle={\ttfamily},
        identifierstyle={\ttfamily},
        stringstyle={\ttfamily},
        showstringspaces=false
        }

%%%%%%%%%%%%%%%%%%%%%%% Prevent hyphenation %%%%%%%%%%%%%%%%%%%%
\hyphenation{abstractSortbase}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\begin{document}

\title{Remark on Algorithm 539: A Modern Fortran Reference Implementation for Carefully Computing the Euclidean Norm -- User Manual}
\author{Richard J. Hanson \and Tim Hopkins}
\date{\today}

\maketitle

\begin{abstract}
This document contains details of the software package that
accompanies the article \textit{Remark on Algorithm 539:
A Modern Fortran Reference Implementation for Carefully Computing the Euclidean Norm}.

A description is provided of each test that comprises
the extensive test suite designed to test extensively modern
implementations of the BLAS Level 1 \nrm routines for computing
the $l_2$ norm of a real or complex vector. 
% The following needs confirming by getting
% the package to run with gfortran
%These tests ensure
%100\% basic block and branch coverage of the hybrid method
%proposed in the article.
Details are given to allow the
user to add more tests if required.

A benchmark package is described which compares the performance
(execution time) and accuracy of the proposed method
against a competitive implementation. A number of alternative
algorithms/implementations are provided including the original
BLAS Level 1, the implementation that accompanies the Lapack
package, Blue's algorithm and a number of variants of these
methods that use compensated summation and more accurate
scaling. The format of the optional data file that may be
supplied to alter the benchmark parameters is also described.

Details are given of the two makefiles that accompany the
package along with information 
on how to edit the \filename{makefile.inc} file for a
new platform and the requirements on the Fortran compiler to
build the testing and benchmark executables.

Information is also provided on how to use the test software
and the benchmark program with a new implementation of the
\nrm routines.

\end{abstract}

\newpage
\input{Introduction.tex}
\input{Testing.tex}
\input{Benchmark.tex}
\input{fileStructure.tex}
\input{Makefile.tex}
\input{Update.tex}
\input{Results.tex}

\bibliographystyle{ACM-Reference-Format-Journals}
\bibliography{refs}

\end{document}
