\usepackage{latexsym}

\usepackage[pdftex]{graphicx}
\DeclareGraphicsExtensions{.pdf,.png,.jpg,.mps,.pdftex}
\usepackage[pdftex,bookmarks=true,plainpages=false,colorlinks=true, linkcolor=blue,
urlcolor=blue, pdfstartview=FitH]{hyperref}

\usepackage{url}
\usepackage{color}
\usepackage{listings,lstmisc}

\newcommand{\Jyrki}{$\backslash$Jyrki}

\definecolor{gold}{rgb}{1.,0.84,0.}
\definecolor{lightblue}{rgb}{0.8,0.85,1}
\definecolor{Lila}{rgb}{0.45,0.25,0.45}
\definecolor{pink}{rgb}{1,.75,.8}
\definecolor{NavyBlue}{rgb}{0, 0, 1}
\definecolor{Red}{rgb}{1,0,0}
\definecolor{ForestGreen}{rgb}{0,1,0}
\definecolor{YellowOrange}{rgb}{0.984,0.851,0.418}

\newcommand{\titlecolour}{\color{NavyBlue}}
\newcommand{\authorcolour}{\color{ForestGreen}}
\newcommand{\emphcolour}{\color{Red}} %RedOrange
\newcommand{\footercolour}{\color{ForestGreen}} %BlueGreen
\newcommand{\honecolour}{\color{NavyBlue}}
\newcommand{\htwocolour}{\color{Red}} %RedOrange

\renewcommand\labelenumi{\emphcolour\theenumi.}
\renewcommand\labelenumii{\emphcolour\theenumii)}
\renewcommand\labelitemi{\emphcolour$\m@th\bullet$}
\renewcommand\labelitemii{\emphcolour\normalfont\bfseries \textendash}
\renewcommand\labelitemiii{\emphcolour$\m@th\ast$}
\renewcommand\labelitemiv{\emphcolour$\m@th\cdot$}

\renewcommand*{\descriptionlabel}[1]{\hspace\labelsep
                   \normalfont\emphcolour\bfseries #1}

\addtolength{\textheight}{35mm}
\setlength{\topmargin}{-1.04cm}
\setlength{\headheight}{0cm}
\setlength{\headsep}{0cm}


\def\IR{{I\mkern-5mu R}}
\def\bbbR{{I\mkern-5mu R}}
\def\IN{{I\mkern-5mu N}}
\def\IZ{{Z\mkern-8mu Z}}
\gdef\qed{\hspace*{\fill}\raisebox{-.2ex}{$\Box$}}

\newcommand{\reg}{\mbox{$^{\mbox{$\bigcirc$}\hspace{-0.68em}\mathrm{R}}\,$}}
\newcommand{\tm}{\mbox{$^{\mathrm{TM}}$}}

\newcommand{\define}[1]{\textbf{\emphcolour\emph{{#1}}}}
\newcommand{\emphasize}[1]{\textbf{\emphcolour\emph{{#1}}}}

\newcommand{\normalize}{\setlength{\topsep}{0pt}%
\setlength{\partopsep}{0pt}\setlength{\parsep}{0pt}%
\setlength{\itemsep}{0pt}}

\newenvironment{ul}{\begin{itemize}\normalize}{\end{itemize}}
\newenvironment{ol}{\begin{enumerate}\normalize}{\end{enumerate}}
\newenvironment{dl}{\begin{description}\normalize}{\end{description}}
\newenvironment{code}{\begin{small}\ttfamily}{\end{small}}
\newenvironment{pre}{\begin{small}\ttfamily}{\end{small}}

\lstdefinelanguage{ConceptC++}%
  {morekeywords={bool,char,class,concept,concept\_map,const,do,else,false,for,if,include,int,operator,private,protected,public,return,sizeof,static,struct,template,true,typedef,typename,void,
    where,while},%
  sensitive=true,%
  morecomment=[l]{//},% 
  morecomment=[s]{/*}{*/},%
  morestring=[b]",%
}

\newcommand{\MyHookSign}{\hbox{\ensuremath\hookleftarrow}}

\lstset{breaklines=false,prebreak={\space\MyHookSign},basewidth={0.5em,0.45em},basicstyle=\small,identifierstyle=\ttfamily,keywordstyle=\bfseries,commentstyle=\itshape,aboveskip=2.5ex,belowskip=-1ex,}
\lstset{language=ConceptC++}
\lstset{literate={==}{$\,\equiv\,$}1 {<=}{$\,\leq$}1 {>=}{$\,\geq$}1
  {!=}{$\,\not\equiv\,$}1 {->}{$\,\rightarrow\,$}2
  {++}{\,\,\tiny\texttt{+}\texttt{+}}2 
  {--}{\,\,\tiny$\mathtt{-}\mathtt{-}$}2 
}
%\lstset{moredelim=[is][\color{Red}]{|}{|}}

\newcommand{\hr}{%
\newline\begin{pspicture}(0,0)(\textwidth,1ex)%
\psline[linewidth=1.2pt](0,0.5ex)(\textwidth,0.5ex)%
\end{pspicture}\newline%
}

\newcommand{\less}{\:\mbox{$\!\bigcirc\hspace*{-1.05em}<$}\;}
\newcommand{\equal}{\:\mbox{$\bigcirc\hspace*{-1.05em}=$}\;}
\newcommand{\greater}{\:\mbox{$\bigcirc\hspace*{-0.96em}>$}\;}

\newcommand{\eop}{\hspace*{\fill}\quad\rule{2.5mm}{2.5mm}}

\newcommand{\IF}{\textbf{if}\ }
\newcommand{\THEN}{\textbf{then}\ }
\newcommand{\ELSE}{\textbf{else}\ }
\newcommand{\FOR}{\textbf{for}\ }
\newcommand{\DO}{\textbf{do}\ }
\newcommand{\REPEAT}{\textbf{repeat}\ }
\newcommand{\RETURN}{\textbf{return}\ }
\newcommand{\UNTIL}{\textbf{until}\ }
\newcommand{\TIMES}{\textbf{times}\ }
\newcommand{\BREAK}{\textbf{break}\ }
\newcommand{\TO}{\textbf{to}\ }
\newcommand{\DOWNTO}{\textbf{downto}\ }
\newcommand{\WHILE}{\textbf{while}\ }
\newcommand{\STEP}{\textbf{step}\ }
\newcommand{\EACH}{\textbf{each}\ }
\newcommand{\AND}{\textbf{and}\ }
\newcommand{\NOT}{\textbf{not}\ }
\newcommand{\OR}{\textbf{or}\ }
\newcommand{\LOOP}{\textbf{loop}\ }
\newcommand{\GOTO}{\textbf{goto}\ }
\newcommand{\TRUE}{\textbf{true}\ }
\newcommand{\FALSE}{\textbf{false}\ }
\newcommand{\NIL}{\textbf{nil}\ }

\newcommand{\plus}{\!+\!}  
\newcommand{\minus}{\!-\!}
\newcommand{\mycolon}{\!:\!}  
\newcommand{\twodots}{\,.\,.\,}
\newcommand{\floors}[1]{\left\lfloor#1\right\rfloor}
\newcommand{\ceils}[1]{\left\lceil#1\right\rceil}
\newcommand{\set}[1]{\left\{#1\right\}}
\newcommand{\sequence}[1]{\left\langle#1\right\rangle}
\newcommand{\sfrac}[2]{{\textstyle \frac{{#1}}{{#2}}}}
\newcommand{\splice}{\colon\hspace*{-0.1em}}

\newcommand{\tyhjaa}{\mbox{${}_{\mbox{\rule{0mm}{1.7ex}}}^{\mbox{\rule{0cm}{1.7ex}}}$}}
\newcommand{\ylatyhjaa}{\mbox{${}^{\mbox{\rule{0cm}{1.7ex}}}$}}
\newcommand{\alatyhjaa}{\mbox{${}_{\mbox{\rule{0mm}{1.7ex}}}$}}

\renewcommand{\title}[1]{\raisebox{4ex}[0ex]{%
\pdfbookmark{Title page}{Title page}}%
\begin{center}%
\titlecolour\LARGE\bfseries\ignorespaces%
#1%
\unskip\end{center}%
}

\newcommand{\and@name}{and}
\newcommand{\last@and@name}{\unskip{}, and}
\newcounter{@people}
\newcounter{@person}
\def\count@people#1{%
  \setcounter{@people}{1}%
  \do@rest#1\end@people%
}
\def\end@people{\end@people}
\def\do@rest{\afterassignment\do@one\let\next= }
\def\do@one{%
  \ifx\next\end@people%
     \let\next\relax%
  \else%
    \ifx\next\and%
      \addtocounter{@people}{1}\relax%
    \fi%
    \let\next\do@rest%
  \fi%
  \next%
}

\newcommand{\speaker}[1]{\begin{center}%
\authorcolour\bfseries\large\ignorespaces%
#1%
\unskip\end{center}%
}

\newcommand{\coworker}[1]{%
\begin{center}\large%
#1%
\end{center}%
}

\newcommand{\yellowruler}{{\color{YellowOrange}\rule{\textwidth}{2pt}}}

\newcommand{\heading}[1]{%
\noindent\pdfbookmark{#1}{#1}\centerline{\honecolour\bfseries\Large\ignorespaces{}#1\unskip}\par}

\newcommand{\hone}[1]{\raisebox{4ex}[0ex]{\pdfbookmark{#1}{#1}}%
{\honecolour\bfseries\Large\ignorespaces{}#1\unskip}\newline\vspace*{-5mm}\yellowruler}

\newcommand{\honex}[2]{\raisebox{4ex}[0ex]{\pdfbookmark{#2}{#2}}%
{\honecolour\bfseries\Large\ignorespaces{}#1\unskip}\newline\vspace*{-5mm}\yellowruler}

\newcommand{\htwo}[1]{{\par\htwocolour\bfseries\ignorespaces{}#1\unskip}\par}

\newenvironment{algorithm}{\quad\begin{minipage}[t]{12cm}\begin{tabbing}%
\quad x\=\quad\=\quad\=\quad\=\kill}{\end{tabbing}\end{minipage}}

\newenvironment{advice}%
{\par\yellowruler\begin{center}\unskip}%
{\unskip\end{center}\yellowruler\par\vspace*{\smallskipamount}}

\newenvironment{lesson}%
{\par\yellowruler\begin{center}\unskip}%
{\unskip\end{center}\yellowruler\par\vspace*{\smallskipamount}}

\newcounter{pagenr}
\setcounter{pagenr}{0}

\newcommand{\copyrightowner}{Performance Engineering Laboratory}
\newcommand{\place}{}

\newcommand{\footerleft}{\makebox[0cm][l]{%
\raisebox{-18cm}[0cm][0cm]{\hspace*{-2cm}{\footercolour\tiny\copyright\
\copyrightowner}}}}

\newcommand{\footerright}{\hspace*{\textwidth}\hspace*{2cm}\makebox[0cm][r]{%
\raisebox{-18cm}[0cm][0cm]{\color{Lila}\tiny\place\ \tiny(\arabic{pagenr})}}}

%\hspace*{\fill}

\newenvironment{page}%
{\addtocounter{pagenr}{1}%\enlargethispage{1cm}%
\begin{slide}\footerleft\footerright}%
{\vspace*{\fill}\end{slide}\newpage}

\thispagestyle{empty}
\pagenumbering{arabic}
\pagestyle{empty}







