\input mweb.tex

\def\title{Een testprogramma voor MWEB (Matlab Web)}
\def\xwebContentsTop{\bfseries
  \hrule\par\medskip
  \centerline{\Large\title}
  \vspace{2cm}
  \centerline{\large Mark Potse}
  \vspace{2cm}}  % this material will start the table of contents page

\def\Nchannels{N_{{\rm channels}}}

\par\medskip\hrule


\N1.  Test. Deze file dient voor het testen van {\tt MWEB} (Matlab Web).
Het bevat geen zinvol programma, maar alleen veel verschillende
matlab-structuren voor het
testen van de parser van {\tt mweave}.

% test the rebinder
\gdef\1{This is the replacement text of \string\1}

Mark Potse

e-mail: potse@amc.uva.nl

\Y\P\F\\{maptype} \\{int}
\par
\P\F\\{maptype} \\{int}
\par
\P\F\\{maptype} \\{int}
\par
\P\F\\{maptype} \\{int}
\par
\P\F\\{maptype} \\{int}
\par
\P\F\\{maptype} \\{int}
\par
\P\F\\{maptype} \\{int}
\par
\Y\P$\|{x}=[\1\O{0}\ \O{0}\ \O{2}\ \pi,\;$\39$\O{2}{*}\pi,\;$\39$\O{5},\;$\39$%
\O{4.5}\ \O{20}\ \O{9243857}\ \infty]\2;\;$\6
$\|{a}=\O{1};\;$\6
$\|{b}=\O{2}$\6
$\|{c}=\pi/\O{4};\;$\6
$\\{bs\_ColourOpt}=\O{1}$\Y\par
\fi

\N2. 2 if-elseif-else-end constructions. In the title of a ``starred
section'' program text may not be used, but in the documentation it
may: \CD{}\PB{$\&{if}\ $ $($ $\|{a}$ $=$ $\O{2}$ $)$}\DC{}, \CD{}\PB{$%
\&{elseif}\ $}\DC{}, \CD{}\PB{$\&{else}$}\DC{} and \CD{}\PB{$\&{end}$}\DC{}.

inserted \string\1 here: \1

\Y\P$\&{if}\ (\1\|{a}\I\|{b})\2$\1\6
$\|{a}=\|{b};\;$\2\6
$\&{end};\;$\7
$\&{if}\ (\1\|{a}\I\|{b})\2$\1\6
\X12:adjust baseline\X\relax\2\6
$\&{end};\;$\7
$\&{if}\ (\1\|{a}\S\|{b})\2$\1\6
$\|{a}=\\{some\_lousy\_variable\_with\_an\_ExtraordinaryLongName}$\6
$\\{text}(\1\O{2},\;$\39$\O{3},\;$\39$\.{'blah\ bla\ blah'})\2;\;$\2\6
$\&{elseif}\ $\1$(\1\|{a}<\|{b})\2$\6
$\\{text}(\1\O{5},\;$\39$\O{3},\;$\39$\.{'blah\ bla\ bla'})\2$\2\6
$\&{elseif}\ $\1$\|{x}$\6
$\&{if}\ \|{x}\S\O{1}$\1\6
$\|{y}=\|{x};\;$\2\6
$\&{elseif}\ $\1$(\1\|{x}\S\O{2})\2$\6
$\|{y}=\|{x}+\O{1};\;$\2\6
$\&{else}$\1\6
$\|{y}=\|{x}+\O{3};\;$\2\6
$\&{end};\;$\2\6
$\&{else}$\1\6
$\\{text}(\1\O{2},\;$\39$\O{3},\;$\39$\.{'blah\ bla\ blah'})\2;\;$\6
$\\{text}(\1\O{10},\;$\39$\O{7},\;$\39$\.{'bla\ blah\ blah'})\2;\;$\2\6
$\&{end};\;$\Y\par
\fi

\M3. An \CD{}\PB{$\&{if}\ $}\DC{} without braces:
\Y\P$\&{if}\ \|{a}\I\|{b}$\1\6
$\|{a}=\|{b};\;$\2\6
$\&{end};\;$\6
\X4:a \PB{$\&{for}\ $} loop\X\relax\6
$\|{c}=\O{2}/\O{3};\;$\Y\par
\fi

\N4. 2 for. Another example.
\Y\P\4\X4:a \PB{$\&{for}\ $} loop\X${}\S{}$\7
$\&{for}\ \|{i}=\O{1}\mathbin:\O{10}$\5
\C{ with a comment }\1\6
$\&{for}\ \|{j}=\O{1}\mathbin:\O{20}$\1\6
$\\{vect}(\1\|{i})\2=\\{matrix}(\1\O{2}{*}\|{i}+\O{1},\;$\39$\|{j})\2;\;$\2\6
$\&{end};\;$\2\6
$\&{end};\;$\Y\par
\A5.
\U3.\fi

\M5. vervolg.
\Y\P\4\X4:a \PB{$\&{for}\ $} loop\X${}\mathrel+\S{}$\7
$\&{for}\ \|{i}=[\1\O{1}\mathbin:\O{10}]\2$\1\6
$\\{vect}(\1\|{i})\2=\O{2}{*}\|{i}+\O{1};\;$\2\6
$\&{end};\;$\Y\par
\fi

\N6.  bs\_map.
Het volgende is overgenomen uit {\tt bs\_map.m}

\fi

\M7. For declarations like \CD{}\PB{$\&{clear}$}\DC{}, \CD{}\PB{$\&{global}$}%
\DC{} etc.:
\Y\P$\&{global}$\1\ $\\{PosInterval}\ \\{NegInterval}\ \\{bso\_Fine}\ \ldots$\6
$\\{bso\_Points}\ \\{bs\_BeginSampleNr}\ \\{bs\_EndSampleNr}\ \ldots$\6
$\\{bso\_MapAxSize}\ \\{bso\_Type}\ \\{bso\_Shoulders}\ \ldots$\6
$\\{bso\_PlusMinSize}\ \\{bso\_Grey}\ \\{bso\_Nlevels}$ $\ldots$\6
\X8:parameter handling\X\6
\X12:adjust baseline\X\6
\X13:make a figure window and axes\X\6
\X14:patient information\X\6
\X15:Make the map\X\6
\X18:print map info\X\6
\X19:create menu's\X\Y\par
\fi

\M8.  String handling:
\Y\P\4\X8:parameter handling\X${}\S{}$\6
$\\{bso\_ml}(\1\.{'Display'},\;$\39$\.{'no'})\2;\;$\6
$\\{bso\_map}(\1\.{'Display'},\;$\39$\.{'no'})\2;\;$\Y\par
\A9.
\U7.\fi

\M9.
\Y\P\4\X8:parameter handling\X${}\mathrel+\S{}$\6
$\&{if}\ (\1\\{bs\_ColourOpt}\W(\1\\{bso\_Type}\S\.{'p'}\V\\{bso\_Type}\S%
\.{'c'})\2)\2$\1\6
$\\{textcolour}=\.{'y'};\;$\2\6
$\&{else}$\1\6
$\\{textcolour}=\.{'k'};\;$\2\6
$\&{end};\;$\Y\par
\fi

\M10. In Matlab, the quote also serves as a transpose-operator:
\Y\P$\|{a}=\\{ones}(\1\O{3},\;$\39$\O{3})\2;\;$\6
$\|{c}=\|{b}^{\prime}$\6
$\|{c}=\O{4}^{\prime};\;$\6
$\|{c}=(\1\|{a}+\|{b})\2^{\prime};\;$\6
$\|{c}$ $=$ $(\1\|{a}+\O{4}i)\2$ $.$ $^{\prime}$ \Y\par
\fi

\M11. Quotes in a string.
\Y\P$\\{text}(\1\O{1},\;$\39$\O{2},\;$\39$\.{'He\ said:\ ''foo!'';\ ''''\ '})%
\2$\Y\par
\fi

\N12. 2 function calls.

\Y\P\4\D$\Nchannels\S$\5
$\O{64}$ \par
\P\F\\{Nchannels} \\{TeX}
\par
\Y\P\4\X12:adjust baseline\X${}\S{}$\6
$\\{bs\_Reg}=\\{ones}(\1\Nchannels,\;$\39$\O{500})\2;\;$\6
$\\{bs\_rejected}=\\{zeros}(\1\Nchannels)\2;\;$\6
$\\{bs\_BaseLineAlgorithm}=\O{1};\;$\6
$\\{bs\_BaseLn1}=\O{200};\;$\6
$\\{bs\_BaseLn2}=\O{400};\;$\6
$\\{bs\_BaseLineWidth}=\O{10};\;$\7
$\\{bs\_BA\_Reg}=\\{bs\_adj}(\1\ldots$\6
$\\{bs\_Reg},\;$\39$\\{bs\_rejected},\;$\39$\\{bs\_BaseLineAlgorithm},\;$\39$%
\ldots$\6
$\\{bs\_BaseLn1},\;$\39$\\{bs\_BaseLn2},\;$\39$\\{bs\_BaseLineWidth})\2;\;$\Y%
\par
\Us2\ET7.\fi

\M13.
\Y\P\4\X13:make a figure window and axes\X${}\S{}$\7
$\\{bs\_map\_winH}=\\{a4paper}(\1\\{bs\_FigScale})\2;\;$\6
$\\{bs\_map\_AX1}=\\{axes}(\1\ldots$\6
$\.{'Units'},\;$\39$\.{'normalized'},\;$\39$\ldots$\6
$\.{'Position'},\;$\39$[\1\O{0}\ \O{0}\ \O{1}\ \O{1}]\2,\;$\39$\ldots$\6
$\.{'Visible'},\;$\39$\.{'off'},\;$\39$\ldots$\6
$\.{'XLim'},\;$\39$[\1\O{0},\;$\39$\O{21}]\2,\;$\39$\ldots$\6
$\.{'YLim'},\;$\39$[\1\O{0}\ \O{29.7}]\2,\;$\39$\ldots$\6
$\.{'Clipping'},\;$\39$\.{'off'})\2;\;$\Y\par
\U7.\fi

\M14.
\Y\P\4\X14:patient information\X${}\S{}$\6
$\&{if}\ (\1\\{length}(\1\\{bs\_infostring})\2\G\O{16})\2$\1\6
$\\{text}(\1\O{3},\;$\39$\O{28.5},\;$\39$\\{bs\_infostring}(\1\O{10}\mathbin:%
\O{16})\2,\;$\39$\.{'Color'},\;$\39$\\{textcolour})\2;\;$\2\6
$\&{else}$\1\6
$\\{text}(\1\O{3},\;$\39$\O{28.5},\;$\39$\.{'?'},\;$\39$\.{'Color'},\;$\39$%
\\{textcolour})\2;\;$\2\6
$\&{end};\;$\6
$\\{text}(\1\O{7},\;$\39$\O{28.5},\;$\39$\\{bs\_filename},\;$\39$\.{'Color'},%
\;$\39$\\{textcolour})\2;\;$\Y\par
\U7.\fi

\M15.
\Y\P\4\X15:Make the map\X${}\S{}$\7
$\\{vec}=\\{zeros}(\1\O{64},\;$\39$\O{1})\2;\;$\6
$\\{vec}=\\{bs\_BA\_Reg}(\1\O{1}\mathbin:\O{64},\;$\39$\\{bs\_CurSampleNr})\2;%
\;$\6
$\\{bs\_Map}=\\{getmap}(\1\\{vec},\;$\39$\\{bs\_rejected})\2;\;$\6
\X16:define axes\X\6
\X17:call \PB{$\\{bsm}$}\X\Y\par
\U7.\fi

\M16.
\Y\P\4\X16:define axes\X${}\S{}$\6
$\\{bs\_map\_AX2}=\\{axes}(\1\ldots$\6
$\.{'Units'},\;$\39$\.{'normalized'},\;$\39$\ldots$\6
$\.{'Position'},\;$\39$[\1\O{4}/\O{21},\;$\39$\O{12}/\O{29.7},\;$\39$\\{bso%
\_MapAxSize}/\O{21},\;$\39$\\{bso\_MapAxSize}/\O{29.7}]\2,\;$\39$\ldots$\6
$\.{'Clipping'},\;$\39$\.{'off'})\2;\;$\Y\par
\Us15, 17\ETs18.\fi

\M17. Genest inspringen:
\Y\P\4\X17:call \PB{$\\{bsm}$}\X${}\S{}$\7
\X16:define axes\X\6
$\\{bsm}(\1\\{bs\_Map},\;$\39$\ldots$\6
$\.{'Type'},\;$\39$\\{bso\_Type},\;$\39$\ldots$\6
$\.{'Shoulders'},\;$\39$\\{bso\_Shoulders},\;$\39$\ldots$\6
$\.{'PlusMinSize'},\;$\39$\\{bso\_PlusMinSize},\;$\39$\ldots$\6
$\.{'Grey'},\;$\39$\\{bso\_Grey},\;$\39$\ldots$\6
$\.{'Fine'},\;$\39$\\{bso\_Fine},\;$\39$\ldots$\6
$\.{'Nlevels'},\;$\39$\\{bso\_Nlevels},\;$\39$\ldots$\6
$\.{'Leadnr'},\;$\39$\\{bso\_Leadnr},\;$\39$\ldots$\6
$\.{'Lead'},\;$\39$(\1\\{bs\_BA\_Reg}(\1\\{abs}(\1\\{bso\_Leadnr})\2,\;$\39$%
\\{bso\_Lead\_Begin}\mathbin:\\{bso\_Lead\_End})\2)\2,\;$\39$\ldots$\6
$\.{'Points'},\;$\39$[\1\\{bso\_Points}(\1\O{1})\2-\\{bso\_Lead\_Begin},\;$\39$%
\ldots$\6
$\\{bso\_Points}(\1\O{2})\2-\\{bso\_Lead\_Begin}]\2)\2;\;$\7
$\\{drawnow}$\5
\C{ Deze drawnow zorgt ervoor dat als er in het voorgaande een }\6
\C{ sequence lost raakt het script daar niet op blijft hangen. }\Y\par
\U15.\fi

\M18.
\Y\P\4\X18:print map info\X${}\S{}$\7
\X16:define axes\X\6
$\\{text}(\1\O{3},\;$\39$\O{6},\;$\39$[\1\.{'pos.\ contour\ interval:\ '},\;$%
\39$\\{num2str}(\1\\{PosInterval})\2]\2,\;$\39$\ldots$\6
$\.{'Color'},\;$\39$\\{textcolour})\2;\;$\6
$\\{text}(\1\O{3},\;$\39$\O{5},\;$\39$[\1\.{'neg.\ contour\ interval:\ '},\;$%
\39$\\{num2str}(\1\\{NegInterval})\2]\2,\;$\39$\ldots$\6
$\.{'Color'},\;$\39$\\{textcolour})\2;\;$\6
$\\{text}(\1\O{3},\;$\39$\O{4},\;$\39$[\1\.{'Sample:\ '},\;$\39$\\{num2str}(\1%
\\{bs\_CurSampleNr})\2]\2,\;$\39$\ldots$\6
$\.{'Color'},\;$\39$\\{textcolour})\2;\;$\6
$\\{text}(\1\O{3},\;$\39$\O{3},\;$\39$[\1\.{'Baseline:\ '},\;$\39$\ldots$\6
$\\{num2str}(\1\\{bs\_BaseLn1})\2,\;$\39$\.{'\ \ \ \ '},\;$\39$\ldots$\6
$\\{num2str}(\1\\{bs\_BaseLn2})\2]\2,\;$\39$\.{'Color'},\;$\39$\\{textcolour})%
\2;\;$\Y\par
\U7.\fi

\M19. De extra ruimte wordt gegenereerd door dubbele newlines, die in MWEB
equivalent zijn met \verb"@#".
\Y\P\4\X19:create menu's\X${}\S{}$\7
$\\{bs\_bsmWin\_PrintMenu}=\\{uimenu}(\1\.{'Label'},\;$\39$\.{'Print'},\;$\39$%
\.{'Separator'},\;$\39$\.{'on'})\2;\;$\7
$\\{bs\_bsmWin\_PrintSubMenu}=\\{uimenu}(\1\\{bs\_bsmWin\_PrintMenu},\;$\39$%
\ldots$\6
$\.{'Label'},\;$\39$\.{'\ '},\;$\39$\ldots$\6
$\.{'Separator'},\;$\39$\.{'on'},\;$\39$\ldots$\6
$\.{'Callback'},\;$\39$[\1\.{'print\ -dps\ -f'},\;$\39$\\{num2str}(\1\\{gcf})%
\2]\2)\2;\;$\Y\par
\U7.\fi

\M20. functiedefinities:

\Y\P$\&{function}\ $\1$\\{blah}(\1\\{arg1},\;\\{arg2})\2$\7
$\|{a}$ $=$ $\&{function}\ $\1$\\{boeh}(\1\\{arg1})\2$\7
$\&{for}\ \|{i}=\O{1}\mathbin:\O{3}$\1\6
$\|{a}=\|{b}+\|{c}(\1\|{i})\2$\2 $\&{end}$\6
$\\{bs\_map\_AX2}=\\{axes}(\1\ldots$\6
$\.{'Units'},\;$\39$\.{'normalized'},\;$\39$\ldots$\6
$\.{'Position'},\;$\39$[\1\O{4}/\O{21},\;$\39$\O{12}/\O{29.7},\;$\39$\\{bso%
\_MapAxSize}/\O{21},\;$\39$\\{bso\_MapAxSize}/\O{29.7}]\2,\;$\39$\ldots$\6
$\.{'Clipping'},\;$\39$\.{'off'})\2;\;$\par
\fi


\inx
\:\\{abs}, 17.
\:\\{arg1}, 20.
\:\\{arg2}, 20.
\:\\{axes}, 13, 16, 20.
\:\\{a4paper}, 13.
\:\\{blah}, 20.
\:\\{boeh}, 20.
\:\\{bs\_adj}, 12.
\:\\{bs\_BA\_Reg}, 12, 15, 17.
\:\\{bs\_BaseLineAlgorithm}, 12.
\:\\{bs\_BaseLineWidth}, 12.
\:\\{bs\_BaseLn1}, 12, 18.
\:\\{bs\_BaseLn2}, 12, 18.
\:\\{bs\_BeginSampleNr}, \[7].
\:\\{bs\_bsmWin\_PrintMenu}, 19.
\:\\{bs\_bsmWin\_PrintSubMenu}, 19.
\:\\{bs\_ColourOpt}, 1, 9.
\:\\{bs\_CurSampleNr}, 15, 18.
\:\\{bs\_EndSampleNr}, \[7].
\:\\{bs\_FigScale}, 13.
\:\\{bs\_filename}, 14.
\:\\{bs\_infostring}, 14.
\:\\{bs\_Map}, 15, 17.
\:\\{bs\_map\_AX1}, 13.
\:\\{bs\_map\_AX2}, 16, 20.
\:\\{bs\_map\_winH}, 13.
\:\\{bs\_Reg}, 12.
\:\\{bs\_rejected}, 12, 15.
\:\\{bsm}, 17.
\:\\{bso\_Fine}, \[7], 17.
\:\\{bso\_Grey}, \[7], 17.
\:\\{bso\_Lead\_Begin}, 17.
\:\\{bso\_Lead\_End}, 17.
\:\\{bso\_Leadnr}, 17.
\:\\{bso\_map}, 8.
\:\\{bso\_MapAxSize}, \[7], 16, 20.
\:\\{bso\_ml}, 8.
\:\\{bso\_Nlevels}, \[7], 17.
\:\\{bso\_PlusMinSize}, \[7], 17.
\:\\{bso\_Points}, \[7], 17.
\:\\{bso\_Shoulders}, \[7], 17.
\:\\{bso\_Type}, \[7], 9, 17.
\:\\{drawnow}, 17.
\:\\{gcf}, 19.
\:\\{getmap}, 15.
\:\\{int}, 1.
\:\\{length}, 14.
\:\\{maptype}, \[1].
\:\\{matrix}, 4.
\:$\Nchannels$, \[12].
\:\\{NegInterval}, \[7], 18.
\:\\{num2str}, 18, 19.
\:\\{ones}, 10, 12.
\:\\{PosInterval}, \[7], 18.
\:\\{some\_lousy\_variable\_with\_an\_ExtraordinaryLongName}, 2.
\:\\{TeX}, 12.
\:\\{text}, 2, 11, 14, 18.
\:\\{textcolour}, 9, 14, 18.
\:\\{uimenu}, 19.
\:\\{vec}, 15.
\:\\{vect}, 4, 5.
\:\\{zeros}, 12, 15.
\fin
\:\X15:Make the map\X
\U7.
\:\X4, 5:a \PB{$\&{for}\ $} loop\X
\U3.
\:\X12:adjust baseline\X
\Us2\ET7.
\:\X17:call \PB{$\\{bsm}$}\X
\U15.
\:\X19:create menu's\X
\U7.
\:\X16:define axes\X
\Us15, 17\ETs18.
\:\X13:make a figure window and axes\X
\U7.
\:\X8, 9:parameter handling\X
\U7.
\:\X14:patient information\X
\U7.
\:\X18:print map info\X
\U7.
\con
