% This is openmp.sty, the preamble and style definitions for the OpenMP specification. % This is an include file. Please see the main file for more information. % % When editing this file: % % 1. To change formatting, appearance, or style, please edit openmp.sty. % % 2. Custom commands and macros are defined in openmp.sty. % % 3. Be kind to other editors -- keep a consistent style by copying-and-pasting to % create new content. % % 4. We use semantic markup, e.g. (see openmp.sty for a full list): % \code{} % for bold monospace keywords, code, operators, etc. % \plc{} % for italic placeholder names, grammar, etc. % % 5. Other recommendations: % Use the convenience macros defined in openmp.sty for the minor headers % such as Comments, Syntax, etc. % % To keep items together on the same page, prefer the use of % \begin{samepage}.... Avoid \parbox for text blocks as it interrupts line numbering. % When possible, avoid \filbreak, \pagebreak, \newpage, \clearpage unless that's % what you mean. Use \needspace{} cautiously for troublesome paragraphs. % % Avoid absolute lengths and measures in this file; use relative units when possible. % Vertical space can be relative to \baselineskip or ex units. Horizontal space % can be relative to \linewidth or em units. % % Prefer \emph{} to italicize terminology, e.g.: % This is a \emph{definition}, not a placeholder. % This is a \plc{var-name}. % % Quick list of the environments, commands and macros supported. Search below for more details. % % \binding % makes header of the same name % \comments % \constraints % \crossreferences % \descr % \effect % \format % \restrictions % \summary % \syntax % % \code{} % monospace, bold % \plc{} % for any kind of placeholder: italic % \begin{codepar} % for blocks of verbatim code: monospace, bold % \begin{boxedcode} % outlined verbatim code for syntax definitions, prototypes, etc. % \begin{indentedcodelist} % used with,e.g., "where clause is one of the following:" % % \specref{} % formats the cross-reference "Section X on page Y" % % \notestart % black horizontal rule for Notes % \noteend % % \cspecificstart % blue horizontal rule for C-specific text % \cspecificend % % \cppspecificstart % blue horizontal rule for C++ -specific text % \cppspecificend % % \ccppspecificstart % blue horizontal rule for C / C++ -specific text % \ccppspecificend % % \fortranspecificstart % blue horizontal rule for Fortran-specific text % \fortranspecificend % % \glossaryterm % for use in formatting glossary entries % \glossarydefstart % \glossarydefend % % \compactitem % single-spaced itemized lists for the Examples doc % \cexample % C/C++ code example for the Examples doc % \fexample % Fortran code example for the Examples doc \usepackage{comment} % allow use of \begin{comment} \usepackage{ifpdf,ifthen} % allow conditional tests in LaTeX definitions \usepackage{makecell} % Allows common formatting in cells with \thread & \makecell %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Document data % \author{} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Fonts \usepackage{amsmath} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{courier} \usepackage{helvet} \usepackage[utf8]{inputenc} % Main body serif font: \usepackage{tgtermes} \usepackage[T1]{fontenc} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Graphic elements \usepackage{graphicx} \usepackage{framed} % for making boxes with \begin{framed} \usepackage{tikz} % for flow charts, diagrams, arrows \usepackage{subcaption} % For subfigure \usepackage{float} % To fix location of figure: \begin{figure}[H] for no float %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Page formatting % % The PDF and book version need different margin spaces. The bookbuild % macro is set by the build system (see Makefile) to determine whether % we are building the PDF or the print-on-demand book version of the spec. % \ifdefined\bookbuild % we are building the book version of the spec, so we need to have a bit % more margin for the publisher to print \usepackage[paperwidth=8in, paperheight=10in, top=1.25in, bottom=1.5in, left=1.65in, right=0.85in]{geometry} \setlength{\oddsidemargin}{0.875in} \setlength{\evensidemargin}{0.385in} \else % we are building the PDF version of the spec, so we can use the default % margins \usepackage[paperwidth=7.5in, paperheight=9in, top=0.75in, bottom=1.0in, left=1.4in, right=0.6in]{geometry} \setlength{\oddsidemargin}{0.45in} \setlength{\evensidemargin}{0.185in} \fi \usepackage{changepage} % allows left/right-page margin readjustments \raggedbottom %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Paragraph formatting \usepackage{setspace} % allows use of \singlespacing, \onehalfspacing \usepackage{needspace} % allows use of \needspace to keep lines together \usepackage{parskip} % removes paragraph indenting \raggedright \usepackage[raggedrightboxes]{ragged2e} % is this needed? \lefthyphenmin=60 % only hyphenate if the left part is >= this many chars \righthyphenmin=60 % only hyphenate if the right part is >= this many chars %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Bulleted (itemized) lists % Align bullets with section header % Align text left % Small bullets % \compactitem for single-spaced lists (used in the Examples doc) \usepackage{enumitem} % for setting margins on lists \setlist{leftmargin=*} % don't indent bullet items \renewcommand{\labelitemi}{{\normalsize$\bullet$}} % bullet size % There is a \compactitem defined in package parlist (and perhaps others), however, % we'll define our own version of compactitem in terms of package enumitem that % we already use: \newenvironment{compactitem} {\begin{itemize}[itemsep=-1.2ex]} {\end{itemize}} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Tables % This allows tables to flow across page breaks, headers on each new page, etc. \usepackage{supertabular} \usepackage{caption} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Line numbering \usepackage[pagewise]{lineno} % for line numbers on left side of the page \pagewiselinenumbers \setlength\linenumbersep{6em} \renewcommand\linenumberfont{\normalfont\small\sffamily} \nolinenumbers % start with line numbers off %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Footers \usepackage{fancyhdr} % makes right/left footers \pagestyle{fancy} \fancyhead{} % clear all header fields \cfoot{} \renewcommand{\headrulewidth}{0pt} % Left side on even pages: % This requires that \footerText be defined in the main document: \fancyfoot[LE]{\bfseries \thepage \mdseries \hspace{2em} \footerText} \fancyhfoffset[E]{4em} % Right side on odd pages: \fancyfoot[RO]{\mdseries \leftmark \hspace{2em} \bfseries \thepage} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Section header format - we use four levels: \chapter \section \subsection \subsubsection. \usepackage{titlesec} % format headers with \titleformat{} \usepackage{tocloft} % Format and spacing for chapter, section, subsection, and subsubsection headers: \setcounter{secnumdepth}{4} % show numbers down to subsubsection level \titleformat{\chapter}[hang]% {\normalfont\sffamily\upshape\Huge\bfseries\fontsize{20}{20}\selectfont}% {\thechapter}{0.5em}{} \titlespacing{\chapter}{0ex}{0em plus 1em minus 1em}{2em plus 1em minus 0em}[10em] \titleformat{\section}[hang]{\huge\bfseries\sffamily\fontsize{16}{16}\selectfont}{\thesection}{0.5em}{} \titlespacing{\section}{0em}{3em plus 1em minus 1em}{1em plus 0.5em minus 0em}[10em] \titleformat{\subsection}[hang]{\LARGE\bfseries\sffamily\fontsize{14}{14}\selectfont}{\thesubsection}{0.5em}{} \titlespacing{\subsection}{0em}{3em plus 1em minus 1em}{0.75em plus 0.5em minus 0em}[10em] \titleformat{\subsubsection}[hang]{\needspace{1\baselineskip}% \Large\bfseries\sffamily\fontsize{12}{12}\selectfont}{\thesubsubsection}{0.5em}{} \titlespacing{\subsubsection}{0em}{3em plus 1em minus 1em}{0.5em plus 0.5em minus 0em}[10em] \setlength{\cftbeforetoctitleskip}{1.0ex} \setlength{\cftaftertoctitleskip}{3.0ex} \setlength{\cftbeforeloftitleskip}{1.0ex} \setlength{\cftafterloftitleskip}{3.0ex} \setlength{\cftbeforelottitleskip}{1.0ex} \setlength{\cftafterlottitleskip}{3.0ex} \renewcommand{\cftchapaftersnum}{} \makeatletter \renewcommand{\l@section}{\@dottedtocline{1}{1.5em}{2.6em}} \renewcommand{\l@subsection}{\@dottedtocline{2}{4.1em}{3.4em}} \makeatother %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Macros for minor headers: Summary, Syntax, Description, etc. % These headers are defined in terms of \paragraph \titleformat{\paragraph}[block]{\large\bfseries\sffamily\fontsize{11}{11}\selectfont}{}{}{} \titlespacing{\paragraph}{0em}{1.5em plus 0.55em minus 0.5em}{0.0em plus 0.55em minus 0.0em} % Use one of the convenience macros below, or \littleheader{} for an arbitrary header \newcommand{\littleheader}[1] {\paragraph*{#1}} \newcommand{\binding} {\littleheader{Binding}} \newcommand{\comments} {\littleheader{Comments}} \newcommand{\constraints} {\littleheader{Constraints on Arguments}} \newcommand{\crossreferences} {\littleheader{Cross References}} \newcommand{\descr} {\littleheader{Description}} \newcommand{\effect} {\littleheader{Effect}} \newcommand{\format} {\littleheader{Format}} \newcommand{\restrictions} {\littleheader{Restrictions}} \newcommand{\summary} {\littleheader{Summary}} \newcommand{\syntax} {\littleheader{Syntax}} \usepackage{scrlayer} \DeclareNewLayer[foreground,textarea,contents={ \phantom{a} \emph{This page intentionally left blank} } ]{intentionally.text} \DeclareNewPageStyleByLayers{intentionally}{intentionally.text} \renewcommand{\cleardoublepage}{\cleardoubleoddpageusingstyle{intentionally}} \newcommand{\chapdirname}{} \newcommand{\cchapter}[2] {\cleardoublepage\chapter{#1}% \renewcommand{\chapdirname}{#2}} \newcommand{\bchapter}[1] {\chapter*{#1}% \addcontentsline{toc}{chapter}{\protect\numberline{}#1}} %\newcommand{\sinput}[1] {\input{\chapdirname/#1}} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Code and placeholder semantic tagging. % % When possible, prefer semantic tags instead of typographic tags. The % following semantics tags are defined here: % % \code{} % for bold monospace keywords, code, operators, etc. % \plc{} % for italic placeholder names, grammar, etc. % % For function prototypes or other code snippets, you can use \code{} as % the outer wrapper, and use \plc{{} inside. Example: % % \code{\#pragma omp directive ( \plc{some-placeholder-identifier} :} % % To format text in italics for emphasis (rather than text as a placeholder), % use the generic \emph{} command. Example: % % This sentence \emph{emphasizes some non-placeholder words}. % Enable \alltt{} for formatting blocks of code: \usepackage{alltt} % This sets the default \code{} font to tt (monospace) and bold: \newcommand\code[1]{\texttt{\textbf{#1}}} \newcommand\scode[1]{\protect\textbf{\protect\texttt{\protect\detokenize{#1}}}} \newcommand\nspace[1]{\textrm{\textmd{ }}} % This defines the \plc{} placeholder font to be tt normal slanted: \newcommand\plc[1]{\textrm{\textmd{\itshape{#1}}}} \newcommand\splc[1]{\protect\textit{\protect\textrm{\protect\detokenize{#1}}}} % Environment for a paragraph of literal code, single-spaced, no outline, no indenting: \newenvironment{codepar}[1] {\begin{alltt}\bfseries #1} {\end{alltt}} % For blocks of code inside a box frame: \newenvironment{boxedcode}[1] {\vspace{0.25em plus 5em minus 0.25em}\begin{framed}\begin{minipage}[t]{\textwidth}\begin{alltt}\bfseries #1} {\end{alltt}\end{minipage}\end{framed}\vspace{0.25em plus 5em minus 0.25em}} % This sets the margins in the framed box: \setlength{\FrameSep}{0.6em} % For indented lists of verbatim code at a relaxed line spacing, % e.g., for use after "where clause is one of the following:" \usepackage{setspace} \newenvironment{indentedcodelist}{% \begin{adjustwidth}{0.25in}{}\begin{spacing}{1.5}\begin{alltt}\bfseries} {\end{alltt}\end{spacing}\vspace{-0.25\baselineskip}\end{adjustwidth}} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Macros for the black and blue lines and arrows delineating language-specific % and notes sections. Example: % % \fortranspecificstart % This is text that applies to Fortran. % \fortranspecificend % local parameters for use \linewitharrows and \notelinewitharrows: \newlength{\sbsz}\setlength{\sbsz}{0.05in} % size of arrows \newlength{\sblw}\setlength{\sblw}{1.35pt} % line width (thickness) \newlength{\sbtw} % text width \newlength{\sblen} % total width of horizontal rule \newlength{\sbht} % height of arrows \newlength{\sbhadj} % vertical adjustment for aligning arrows with the line \newlength{\sbns}\setlength{\sbns}{7\baselineskip} % arg for \needspace for downward arrows % \notelinewitharrows is a helper command that makes a black Note marker: % arg 1 = 1 or -1 for up or down arrows % arg 2 = solid or dashed or loosely dashed, etc. \newcommand{\notelinewitharrows}[2]{% \needspace{0.1\baselineskip}% \vbox{\begin{tikzpicture}% \setlength{\sblen}{\linewidth}% \setlength{\sbht}{#1\sbsz}\setlength{\sbht}{1.4\sbht}% \setlength{\sbhadj}{#1\sblw}\setlength{\sbhadj}{0.25\sbhadj}% \filldraw (\sblen, 0) -- (\sblen - \sbsz, \sbht) -- (\sblen - 2\sbsz, 0) -- (\sblen, 0); \draw[line width=\sblw, #2] (2\sbsz - \sblw, \sbhadj) -- (\sblen - 2\sbsz + \sblw, \sbhadj); \filldraw (0, 0) -- (\sbsz, \sbht) -- (0 + 2\sbsz, 0) -- (0, 0); \end{tikzpicture}}} % \linewitharrows is a helper command that makes a blue horizontal line, up or down arrows, and some text: % arg 1 = 1 or -1 for up or down arrows % arg 2 = solid or dashed or loosely dashed, etc. % arg 3 = text % arg 4 = text width \newcommand{\linewitharrows}[4]{% \needspace{0.1\baselineskip}% \vbox to 1\baselineskip {\begin{tikzpicture}% \setlength{\sbtw}{#4}% \setlength{\sblen}{\linewidth}% \setlength{\sbht}{#1\sbsz}\setlength{\sbht}{1.4\sbht}% \setlength{\sbhadj}{#1\sblw}\setlength{\sbhadj}{0.25\sbhadj}% \filldraw[color=blue!40] (\sblen, 0) -- (\sblen - \sbsz, \sbht) -- (\sblen - 2\sbsz, 0) -- (\sblen, 0); \draw[line width=\sblw, color=blue!40, #2] (2\sbsz - \sblw, \sbhadj) -- (0.5\sblen - 0.5\sbtw, \sbhadj); \draw[line width=\sblw, color=blue!40, #2] (0.5\sblen + 0.5\sbtw, \sbhadj) -- (\sblen - 2\sbsz + \sblw, \sbhadj); \filldraw[color=blue!40] (0, 0) -- (\sbsz, \sbht) -- (0 + 2\sbsz, 0) -- (0, 0); \node[color=blue!90] at (0.5\sblen, 0) {\large \textsf{\textup{#3}}}; \end{tikzpicture}}} \newcommand{\VSPb}{\vspace{0.5ex plus 5ex minus 0.25ex}} \newcommand{\VSPa}{\vspace{0.25ex plus 5ex minus 0.25ex}} % C \newcommand{\cspecificstart}{\needspace{\sbns}\linewitharrows{-1}{solid}{C}{3em}} \newcommand{\cspecificend}{\linewitharrows{1}{solid}{C}{3em}\bigskip} % C/C++ \newcommand{\ccppspecificstart}{\VSPb\linewitharrows{-1}{solid}{C / C++}{6em}\VSPa} \newcommand{\ccppspecificend}{\VSPb\linewitharrows{1}{solid}{C / C++}{6em}\VSPa} % C++ \newcommand{\cppspecificstart}{\needspace{\sbns}\linewitharrows{-1}{solid}{C++}{6em}} \newcommand{\cppspecificend}{\linewitharrows{1}{solid}{C++}{6em}\bigskip} % C90 \newcommand{\cNinetyspecificstart}{\needspace{\sbns}\linewitharrows{-1}{solid}{C90}{4em}} \newcommand{\cNinetyspecificend}{\linewitharrows{1}{solid}{C90}{4em}\bigskip} % C99 \newcommand{\cNinetyNinespecificstart}{\needspace{\sbns}\linewitharrows{-1}{solid}{C99}{4em}} \newcommand{\cNinetyNinespecificend}{\linewitharrows{1}{solid}{C99}{4em}\bigskip} % Fortran \newcommand{\fortranspecificstart}{\VSPb\linewitharrows{-1}{solid}{Fortran}{6em}\VSPa} \newcommand{\fortranspecificend}{\VSPb\linewitharrows{1}{solid}{Fortran}{6em}\VSPa} % Note \newcommand{\notestart}{\VSPb\notelinewitharrows{-1}{solid}\VSPa} \newcommand{\noteend}{\VSPb\notelinewitharrows{1}{solid}\VSPa} % convenience macro for formatting the word "Note:" at the beginning of note blocks: \newcommand{\noteheader}{{\textrm{\textsf{\textbf\textup\normalsize{{{{Note }}}}}}}} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Glossary formatting \newcommand{\glossaryterm}[1]{\needspace{1ex} \begin{adjustwidth}{-0.75in}{0.0in} \nolinenumbers\parbox[b][-0.95\baselineskip][t]{1.4in}{\flushright \textbf{#1}} \end{adjustwidth}\linenumbers} \newcommand{\glossarydefstart}{ \begin{adjustwidth}{0.79in}{0.0in}} \newcommand{\glossarydefend}{ \end{adjustwidth}\vspace{-1.5\baselineskip}} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Indexing and Table of Contents \usepackage{makeidx} \usepackage[nodotinlabels]{titletoc} % required for its [nodotinlabels] option % Clickable links in TOC and index: \usepackage[hyperindex=true,linktocpage=true]{hyperref} \hypersetup{ bookmarksnumbered = true, bookmarksopen = false, colorlinks = true, % Colors links instead of red boxes urlcolor = blue, % Color for external links linkcolor = blue % Color for internal links } %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Formats a cross reference label as "Section X on page Y". \newcommand{\specref}[1]{Section~\ref{#1} on page~\pageref{#1}} % For caption for supertabular and figure, by yanyh15 \captionsetup[table]{labelfont={sf,sc,bf},textfont=normalfont,singlelinecheck=off,labelformat=simple,labelsep=colon,aboveskip=00pt,belowskip=10pt} \captionsetup[figure]{labelfont={sf,sc,bf},textfont=normalfont,singlelinecheck=off,labelformat=simple,labelsep=colon} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Code example formatting for the Examples document % This defines: % \cexample formats blue markers, caption, and code for C examples % \cppexample formats blue markers, caption, and code for C++ examples % \fexample formats blue markers, caption, and code for Fortran (fixed) examples % \ffreeexample formats blue markers, caption, and code for Fortran90 (free) examples % Thanks to Jin, Haoqiang H. for the original definitions of the following: \usepackage{color,fancyvrb} % for \VerbatimInput \usepackage{toolbox} % for \toolboxMakeSplit \usepackage{xargs} % for optional args \renewcommand\theFancyVerbLine{\normalfont\footnotesize\sffamily S-\arabic{FancyVerbLine}} \newcommand{\myreplace}[3]{\bgroup\toolboxMakeSplit*{#1}{DoSplit}% \long\def\DoReplace##1{\DoSplit{##1}\lefttext\righttext \lefttext \toolboxIfElse{\ifx\righttext\undefined}{}% {#2\expandafter\DoReplace\expandafter{\righttext}}}% \DoReplace{#3}\egroup} \newcommand{\escstr}[1]{\myreplace{_}{\_}{#1}} \newcommandx*\verlabel[2][1=]{(\code{\small{}#1omp\_#2})} \newcommand{\exampleheader}[6]{% \ifthenelse{ \equal{#1}{} }{ \def\cname{#2} \def\ename\cname }{ \def\cname{#1.#2.#3} % Use following line for old numbering % \def\ename{\thechapter.#2.#3} % Use following for mneumonics \def\ename{\escstr{#1}.\escstr{#2}.#3} } \newcount\cnt \cnt=#4 \ifthenelse{ \equal{#5}{0} }{}{\global\advance\cnt by #5} \def\cverno{\ref{ex_vtag:\cname}} \ifthenelse{ \equal{\cverno}{pre_3.0} }{\def\cverno{}}{} \ifthenelse{ \equal{\cverno}{??} }{\def\cverno{#6}}{} \def\stagcnt{\pageref{ex_vtag:\cname}} \ifthenelse{ \equal{\cverno}{} }{ \global\advance\cnt by 1 \def\vername{\;\;\verlabel[pre\_]{3.0}} }{ \def\myver##1{\toolboxSplitAt{##1}{_}\lefttext\righttext \lefttext\toolboxIfElse{\ifx\righttext\undefined}% {\global\advance\cnt by 1}{\expandafter{\righttext}}} \def\vername{\;\;\verlabel{\myver{\cverno}}} } \def\fcnt{\the\cnt} % \def\fcnt{\stagcnt} \noindent \hypertarget{ex:\cname}{\textit{Example \ename}}\vername %\vspace*{-3mm} \code{\VerbatimInput[numbers=left,numbersep=5ex,firstnumber=1,firstline=\fcnt,fontsize=\small]% {\chapdirname/sources/\cname}} } \newcommandx*\cnexample[4][1=,4=0]{% \exampleheader{#2}{#3}{c}{7}{#4}{#1} } \newcommandx*\cppnexample[4][1=,4=0]{% \exampleheader{#2}{#3}{cpp}{7}{#4}{#1} } \newcommandx*\fnexample[4][1=,4=0]{% \exampleheader{#2}{#3}{f}{5}{#4}{#1} } \newcommandx*\ffreenexample[4][1=,4=0]{% \exampleheader{#2}{#3}{f90}{5}{#4}{#1} } \newcommandx*\srcnexample[5][1=,5=0]{% \exampleheader{#2}{#3}{#4}{0}{#5}{#1} } \newcommandx*\cexample[4][1=,4=0]{% \needspace{5\baselineskip}\ccppspecificstart \cnexample[#1]{#2}{#3}[#4] \ccppspecificend } \newcommandx*\cppexample[4][1=,4=0]{% \needspace{5\baselineskip}\cppspecificstart \cppnexample[#1]{#2}{#3}[#4] \cppspecificend } \newcommandx*\fexample[4][1=,4=0]{% \needspace{5\baselineskip}\fortranspecificstart \fnexample[#1]{#2}{#3}[#4] \fortranspecificend } \newcommandx*\ffreeexample[4][1=,4=0]{% \needspace{5\baselineskip}\fortranspecificstart \ffreenexample[#1]{#2}{#3}[#4] \fortranspecificend } \newcommandx*\hexentry[4][1=c,3=]{% \hyperlink{ex:#2.#1}{\splc{#2.#1}}% \ifthenelse{ \equal{#3}{} }{}{,~\hyperlink{ex:#2.#3}{\plc{#3}}}% & #4%:~\splc{same name} } \newcommandx*\hexmentry[5][1=c,3=]{% \hyperlink{ex:#2.#1}{\splc{#2.#1}}% \ifthenelse{ \equal{#3}{} }{}{,~\hyperlink{ex:#2.#3}{\plc{#3}}}% & #4:~\splc{#5.#1}\ifthenelse{ \equal{#3}{} }{}{,~\plc{#3}} } % Set default fonts: \rmfamily\mdseries\upshape\normalsize % This is the end of openmp.sty of the OpenMP specification.