Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Next revisionBoth sides next revision
docs:tutorial [2016/11/30 12:34] sbsdocs:tutorial [2017/03/24 16:01] sbs
Line 1: Line 1:
-<!DOCTYPE html><html>+<html>
 <head> <head>
 <title>Untitled Document</title> <title>Untitled Document</title>
-<!--Generated on Wed Nov 30 11:29:29 2016 by LaTeXML (version 0.8.2) http://dlmf.nist.gov/LaTeXML/.-->+<!-- Generated on Fri Mar 24 14:08:18 2017 by LaTeXML (version 0.8.2) http://dlmf.nist.gov/LaTeXML/. --
 + 
 +<meta http-equiv='Content-Type' content='text/html; charset=UTF-8'> 
 +<!-- autoinlined `/Volumes/Users/sbs/tex/sacdoc/tutorial/html/LaTeXML.css' --> 
 +<style type='text/css'> 
 +/*====================================================================== 
 + Core CSS for LaTeXML documents converted to (X)HTML */ 
 +/* Generic Page layout */ 
 +.ltx_page_header, 
 +.ltx_page_footer { font-size:0.8em;
 +.ltx_page_header *[rel~="prev"], 
 +.ltx_page_footer *[rel~="prev"] { float:left; } 
 +.ltx_page_header *[rel~="up"], 
 +.ltx_page_footer *[rel~="up"  { display:block; text-align:center;
 +.ltx_page_header *[rel~="next"], 
 +.ltx_page_footer *[rel~="next"] {  float:right;
 +/* What was I trying for here; need more selective rule! 
 +.ltx_page_header .ltx_ref, 
 +.ltx_page_footer .ltx_ref { 
 +    margin:0 1em; } 
 +*/ 
 +.ltx_page_header li { 
 +    padding:0.1em 0.2em 0.1em 1em;} 
 + 
 +/* Main content */ 
 +.ltx_page_content { clear:both; } 
 +.ltx_page_header  { border-bottom:1px solid; margin-bottom:5px;
 +.ltx_page_footer  { clear:both; border-top:1px solid; margin-top:5px; 
 + 
 +.ltx_page_header:after, 
 +.ltx_page_footer:after, 
 +.ltx_page_content:after { 
 +    content:"."; display:block; height:0; clear:both; visibility:hidden;
 +.ltx_page_footer:before { 
 +    content:"."; display:block; height:0; clear:both; visibility:hidden;
 + 
 +.ltx_page_logo     { font-size:80%; margin-top: 5px; clear:both; float:right;
 +.ltx_page_logo a   { font-variant: small-caps; } 
 +.ltx_page_logo img { vertical-align:-3px;
 + 
 +/* if shown */ 
 +.ltx_page_navbar li { white-space:nowrap; display:block; overflow:hidden;
 +/* If ref got turned into span, it's "this section"*/ 
 +.ltx_page_navbar li span.ltx_ref { white-space:normal; overflow:visible;
 + 
 +/* Ought to be easily removable/overridable? */ 
 +.ltx_pagination.ltx_role_newpage { height:2em; } 
 +/*====================================================================== 
 +  Document Structure; Titles & Frontmatter */ 
 + 
 +/* undo bold here to remove the browser's native h# styling, 
 +   at let all other styles override it (with more specific rules)*/ 
 +.ltx_title { font-size:100%; font-weight:normal;
 + 
 +/* Hack to simulate run-in! put class="ltx_runin" on a title or tag 
 +   for it to run-into the following text. */ 
 +.ltx_runin { display:inline;
 +.ltx_runin:after { content:" "; } 
 +.ltx_runin + .ltx_para, 
 +.ltx_runin + .ltx_para p, 
 +.ltx_runin + p { display:inline;
 + 
 +.ltx_outdent { margin-left: -2em; } 
 + 
 +/* .ltx_chapter_title, etc should be in ltx-article.css etc. 
 + */ 
 +.ltx_page_main { margin:0px; padding:1em 3em 1em 2em; } 
 +.ltx_tocentry  { list-style-type:none;
 + 
 +/* support for common author block layouts.*/ 
 +/* add class ltx_authors_1line to get authors in single line 
 +   with pop-up affiliation, etc. */ 
 +.ltx_authors_1line .ltx_creator, 
 +.ltx_authors_1line .ltx_author_before, 
 +.ltx_authors_1line .ltx_author_after { display:inline;
 +.ltx_authors_1line .ltx_author_notes { display:inline-block;
 +.ltx_authors_1line .ltx_author_notes:before { content:"*"; color:blue;
 +.ltx_authors_1line .ltx_author_notes span { display:none;
 +.ltx_authors_1line .ltx_author_notes:hover span { 
 +    display:block; position:absolute; z-index:10; 
 +    background:white; text-align:left; 
 +    border: 1px solid black; border-radius: 0 5px 5px 5px; box-shadow: 5px 5px 10px gray; } 
 + 
 +/* add class=ltx_authors_multiline to get authors & affliations on separate lines*/ 
 +.ltx_authors_multiline .ltx_creator, 
 +.ltx_authors_multiline .ltx_author_before, 
 +.ltx_authors_multiline .ltx_author_after, 
 +.ltx_authors_multiline .ltx_author_notes, 
 +.ltx_authors_multiline .ltx_author_notes .ltx_contact { 
 +    display:block;
 + 
 +/*====================================================================== 
 +  Para level */ 
 +.ltx_float { 
 +    margin: 1ex 3em 1ex 3em; }     
 +td.ltx_subfigure, 
 +td.ltx_subtable, 
 +td.ltx_subfloat { width:50%; } 
 +/* theorems, figure, tables, floats captions.. */ 
 +/*====================================================================== 
 + Blocks, Lists, Floats */ 
 +.ltx_p, 
 +.ltx_quote, 
 +.ltx_block, 
 +.ltx_para { 
 +    display: block; } 
 + 
 +/* alignment within blocks */ 
 +.ltx_align_left     { text-align:left;
 +.ltx_align_right    { text-align:right;
 +.ltx_align_center   { text-align:center;
 +.ltx_align_justify  { text-align:justify;
 +.ltx_align_top      { vertical-align:top;
 +.ltx_align_bottom   { vertical-align:bottom;
 +.ltx_align_middle   { vertical-align:middle;
 +.ltx_align_baseline { vertical-align:baseline;
 + 
 +.ltx_align_floatleft  { float:left; } 
 +.ltx_align_floatright { float:right;
 + 
 +.ltx_td.ltx_align_left,   .ltx_th.ltx_align_left, 
 +.ltx_td.ltx_align_right,  .ltx_th.ltx_align_right, 
 +.ltx_td.ltx_align_center, .ltx_th.ltx_align_center { white-space:nowrap;
 +.ltx_td.ltx_align_left.ltx_wrap,   .ltx_th.ltx_align_left.ltx_wrap, 
 +.ltx_td.ltx_align_right.ltx_wrap,  .ltx_th.ltx_align_right.ltx_wrap, 
 +.ltx_td.ltx_align_center.ltx_wrap, .ltx_th.ltx_align_center.ltx_wrap { white-space:normal;
 + 
 +.ltx_inline-block { display:inline-block;
 + 
 +/* equations in non-aligned mode (not normally used) */ 
 +.ltx_eqn_div { display:block; width:95%; text-align:center;
 + 
 +/* equations in aligned mode (aligning tags, etc as well as equations) */ 
 +.ltx_eqn_table { display:table; width:100%; border-collapse:collapse;
 +.ltx_eqn_row   { display:table-row;
 +.ltx_eqn_cell  { display:table-cell; width:auto; } 
 + 
 +.ltx_tag_equationgroup.ltx_align_left, 
 +.ltx_tag_equation.ltx_align_left{ position:absolute; left:3em; } 
 +.ltx_tag_equationgroup.ltx_align_right, 
 +.ltx_tag_equation.ltx_align_right{ position:absolute; right:3em; } 
 + 
 + 
 +table.ltx_eqn_align tr.ltx_equation td.ltx_align_left + td.ltx_align_right { padding-left:3em;
 +table.ltx_eqn_eqnarray tr.ltx_eqn_lefteqn + tr td.ltx_align_right { min-width:2em;
 + 
 +.ltx_eqn_eqno { max-width:0em; overflow:visible;
 +.ltx_eqn_eqno.ltx_align_right .ltx_tag { float:right;
 + 
 +.ltx_eqn_center_padleft, 
 +.ltx_eqn_center_padright { width:50%; min-width:2em;
 +.ltx_eqn_left_padleft, 
 +.ltx_eqn_right_padright { min-width:2em;
 +.ltx_eqn_left_padright, 
 +.ltx_eqn_right_padleft  { width:100%; } 
 + 
 +/* Various lists */ 
 +.ltx_itemize, 
 +.ltx_enumerate, 
 +.ltx_description { 
 +    display:block;
 +.ltx_itemize .ltx_item, 
 +.ltx_enumerate .ltx_item { 
 +    display: list-item; } 
 + 
 +/* Position the tag to look like a normal item bullet. */ 
 +li.ltx_item > .ltx_tag { 
 +    display:inline-block; margin-left:-1.5em; min-width:1.5em; 
 +    text-align:right;
 +.ltx_item .ltx_tag + .ltx_para, 
 +.ltx_item .ltx_tag + .ltx_para .ltx_p  { display:inline;
 + 
 +/* NOTE: Need to try harder to get runin appearance? */ 
 +dl.ltx_description dt { margin-right:0.5em; float:left; 
 +                    font-weight:bold; font-size:95%;
 +dl.ltx_description dd { margin-left:5em;
 +dl.ltx_description dl.ltx_description dd { margin-left:3em;
 + 
 +/* Theorems */ 
 +.ltx_theorem  {margin:1em 0em 1em 0em; } 
 +.ltx_title_theorem { font-size:100%;
 + 
 +/* Bibliographies */ 
 +.ltx_bibliography dt { margin-right:0.5em; float:left; } 
 +.ltx_bibliography dd { margin-left:3em;
 +/*.ltx_biblist { list-style-type:none; }*/ 
 +.ltx_bibitem { list-style-type:none;
 +.ltx_bibtag { font-weight:bold; margin-left:-2em; width:3em; } 
 +/*.bibitem-tag + div { display:inline; }*/ 
 +.ltx_bib_title { font-style:italic;
 +.ltx_bib_article .bib-title { font-style:normal !important; } 
 +.ltx_bib_journal  { font-style:italic;
 +.ltx_bib_volume { font-weight:bold;
 + 
 +/* Indices */ 
 +.ltx_indexlist li { list-style-type:none; 
 +.ltx_indexlist { margin-left:1em; padding-left:1em;
 + 
 +/* Listings */ 
 +.ltx_listing { 
 +    display:block; 
 +    margin: 1ex 3em 1ex 3em; 
 +    overflow-x:auto;
 +.ltx_float .ltx_listing { 
 +    margin: 0; } 
 +.ltx_listingline { white-space:nowrap; min-height:1em;
 +.ltx_lst_numbers_left .ltx_listingline .ltx_tag { 
 +    background-color:transparent; 
 +    margin-left:-3em; width:2.5em; 
 +    position:absolute;  
 +    text-align:right;
 +.ltx_lst_numbers_right .ltx_listingline .ltx_tag { 
 +    background-color:transparent; 
 +    width:2.5em; 
 +    position:absolute; right:3em; 
 +    text-align:right;
 +/* 
 +    position:absolute; left:0em; 
 +    max-width:0em; text-align:right;
 +*/ 
 +.ltx_parbox {text-indent:0em;
 + 
 +/* NOTE that it is CRITICAL to put position:relative outside & absolute inside!! 
 +   I wish I understood why! 
 +   Outer box establishes resulting size, neutralizes any outer positioning, etc; 
 +   inner establishes position of stuff to be rotated */ 
 +.ltx_transformed_outer { 
 +    position:relative; bottom:0pt;left:0pt; 
 +    overflow:visible;
 +.ltx_transformed_inner { 
 +    display:block; 
 +    position:absolute;bottom:0pt;left:0pt;
 +.ltx_transformed_inner > .ltx_p {text-indent:0em; margin:0; padding:0; } 
 +/* If simulating a table (html5), try to get rowspan to work...sorta? */ 
 +span.ltx_rowspan { position:absolute; top:0; bottom:0; } 
 + 
 +/* by default, p doesn't indent */ 
 +.ltx_p { text-indent:0em; white-space:normal;
 +/* explicit control of indentation (on ltx_para) */ 
 +.ltx_indent > .ltx_p:first-child { text-indent:2em!important;
 +.ltx_noindent > .ltx_p:first-child { text-indent:0em!important;
 + 
 +/*====================================================================== 
 +  Columns */ 
 +.ltx_page_column1 { 
 +    width:44%; float:left; } /* IE uses % of wrong container*/ 
 +.ltx_page_column2 { 
 +    width:44%; float:right;
 +.ltx_page_columns > .ltx_page_column1 { 
 +    width:48%; float:left; } 
 +.ltx_page_columns > .ltx_page_column2 { 
 +    width:48%; float:right;
 +.ltx_page_columns:after { 
 +    content:"."; display:block; height:0; clear:both; visibility:hidden;
 + 
 +/*====================================================================== 
 + Borders and such */ 
 +.ltx_tabular { display:inline-table; border-collapse:collapse;
 +.ltx_tabular.ltx_centering { display:table;
 +.ltx_thead, 
 +.ltx_tfoot, 
 +.ltx_tbody   { display:table-row-group;
 +.ltx_tr      { display:table-row;
 +.ltx_td, 
 +.ltx_th      { display:table-cell;
 + 
 +.ltx_framed  { border:1px solid black;} 
 +.ltx_tabular .ltx_td, 
 +.ltx_tabular .ltx_th { padding:0.1em 0.5em; } 
 +/* regular lines */ 
 +.ltx_border_t  { border-top:1px solid black; } 
 +.ltx_border_r  { border-right:1px solid black; } 
 +.ltx_border_b  { border-bottom:1px solid black; } 
 +.ltx_border_l  { border-left:1px solid black; } 
 +/* double lines */ 
 +.ltx_border_tt { border-top:3px double black; } 
 +.ltx_border_rr { border-right:3px double black; } 
 +.ltx_border_bb { border-bottom:3px double black; } 
 +.ltx_border_ll { border-left:3px double black; } 
 +/* Light lines */ 
 +.ltx_border_T  { border-top:1px solid gray; } 
 +.ltx_border_R  { border-right:1px solid gray; } 
 +.ltx_border_B  { border-bottom:1px solid gray; } 
 +.ltx_border_L  { border-left:1px solid gray; } 
 +/* Framing */ 
 +.ltx_framed_rectangle { border-style:solid; border-width:1px;
 +.ltx_framed_top       { border-top-style:solid; border-top-width:1px;
 +.ltx_framed_left      { border-left-style:solid; border-left-width:1px;
 +.ltx_framed_right     { border-right-style:solid; border-right-width:1px;
 +.ltx_framed_bottom, 
 +.ltx_framed_underline { border-bottom-style:solid; border-bottom-width:1px;
 +.ltx_framed_topbottom { border-top-style:solid; border-top-width:1px; 
 +                        border-bottom-style:solid; border-bottom-width:1px;
 +.ltx_framed_leftright { border-left-style:solid; border-left-width:1px; 
 +                        border-right-style:solid; border-right-width:1px;
 + 
 +/*====================================================================== 
 + Misc */ 
 +/* .ltx_verbatim*/ 
 +.ltx_verbatim { text-align:left;
 +/*====================================================================== 
 + Meta stuff, footnotes */ 
 +.ltx_note_content { display:none;
 +/*right:5%;  */ 
 +.ltx_note_content { 
 +     max-width: 70%; font-size:90%; left:15%; 
 +     text-align:left; 
 +     background-color: white;  
 +     padding: 0.5em 1em 0.5em 1.5em; 
 +     border: 1px solid black; border-radius: 0 5px 5px 5px; box-shadow: 5px 5px 10px gray; } 
 +.ltx_note_mark    { color:blue; } 
 +.ltx_note_type    { font-weight: bold; } 
 +.ltx_note { display:inline-block; text-indent:0; } /* So we establish containing block */ 
 +.ltx_note_content .ltx_note_mark { position:absolute; left:0.2em; top:-0.1em; } 
 +.ltx_note:hover .ltx_note_content, 
 +.ltx_note .ltx_note_content:hover { 
 +   display:block; position:absolute; z-index:10; } 
 + 
 +.ltx_ERROR        { color:red; } 
 +.ltx_rdf          { display:none;
 +.ltx_missing      { color:red;}  
 +.ltx_nounicode    { color:red; } 
 +/*====================================================================== 
 + SVG (pgf/tikz ?) basics */ 
 + 
 +/* Stuff appearing in svg:foreignObject */ 
 +.ltx_svg_fog foreignObject  { margin:0; padding:0; overflow:visible;
 +.ltx_svg_fog foreignObject > p { margin:0; padding:0; display:block;
 +/*.ltx_svg_fog foreignObject > p { margin:0; padding:0; display:block; white-space:nowrap; }*/ 
 + 
 +/*====================================================================== 
 + Low-level Basics */ 
 +/* Note that LaTeX(ML)'s font model doesn't map quite exactly to CSS's */ 
 +/* Font Families => font-family */ 
 +.ltx_font_serif      { font-family: serif; } 
 +.ltx_font_sansserif  { font-family: sans-serif; } 
 +.ltx_font_typewriter { font-family: monospace; } 
 +/* dingbats should be converted to unicode? */ 
 +/* Math font families handled within math: script, symbol, fraktur, blackboard ? */ 
 +/* Font Series => font-weight */ 
 +.ltx_font_bold       { font-weight: bold; } 
 +.ltx_font_medium     { font-weight: normal; } 
 +/* Font Shapes => font-style or font-variant */ 
 +.ltx_font_italic     { font-style: italic; font-variant:normal;
 +.ltx_font_upright    { font-style: normal; font-variant:normal;
 +.ltx_font_slanted    { font-style: oblique; font-variant:normal;
 +.ltx_font_smallcaps  { font-variant: small-caps; font-style:normal;
 +.ltx_font_oldstyle   { font-variant: oldstyle-nums;  /* experimental css3 ? Doesn't seem to work!*/ 
 +                       font-style:normal;  
 +                       -moz-font-feature-settings: "onum"; 
 +                       -ms-font-feature-settings: "onum"; 
 +                       -webkit-font-feature-settings: "onum"; 
 +                       font-variant-numeric: oldstyle-nums;
 +.ltx_font_mathcaligraphic { font-family: "Lucida Calligraphy", "Zapf Chancery","URW Chancery L"; } 
 +/* 
 + 
 +.ltx_font_mathscript { ? } 
 +*/ 
 +cite                 { font-style: normal; } 
 + 
 +.ltx_red        { color:red; } 
 +/*.ltx_centering  { text-align:center; margin:auto; }*/ 
 +/*.ltx_inline-block.ltx_centering,*/ 
 +/* Hmm.... is this right in general? */ 
 +.ltx_centering  { display:block; margin:auto; text-align:center;
 + 
 +/* Dubious stuff */ 
 +.ltx_hflipped { 
 +    display:inline-block; 
 +    -moz-transform: scaleX(-1); 
 +    -o-transform: scaleX(-1); 
 +    -webkit-transform: scaleX(-1); 
 +    transform: scaleX(-1); 
 +    filter: FlipH; 
 +    -ms-fliter: "FlipH";
 +.ltx_vflipped { 
 +    display:inline-block; 
 +    -moz-transform: scaleY(-1); 
 +    -o-transform: scaleY(-1); 
 +    -webkit-transform: scaleY(-1); 
 +    transform: scaleY(-1); 
 +    filter: FlipV; 
 +    -ms-fliter: "FlipV";
 + 
 +/* .ltx_phantom handled in xslt */ 
 + 
 + 
 +</style> 
 + 
 +<!-- autoinlined `/Volumes/Users/sbs/tex/sacdoc/tutorial/html/ltx-report.css' --> 
 +<style type='text/css'> 
 + 
 +.ltx_title_document      { font-size:170%; text-align:center; margin:1em 0 1em 0; } 
 +.ltx_authors, 
 +.ltx_role_author         { text-align:center; margin:1em 0 1em 0; } 
 +.ltx_role_author .ltx_personname  { font-size: 120%; } 
 +.ltx_date        { text-align:center; font-size: 120%; margin:1em 0 1em 0; } 
 +.ltx_subtitle    { text-align:center; font-size: 120%; padding-left:0.2em; margin-left:-0.5em;
 + 
 +.ltx_title_abstract      { text-align:center; font-size: 100%; font-weight:bold;
 +.ltx_abstract { margin-left:4em; margin-right:4em;
 + 
 +.ltx_appendix, 
 +.ltx_part,    
 +.ltx_chapter,    
 +.ltx_section,    
 +.ltx_subsection, 
 +.ltx_subsubsection { margin-top:1.5em;
 +.ltx_paragraph, 
 +.ltx_subparagraph   { margin-top:1.0em;
 + 
 +.ltx_title_part          { font-size:200%; font-weight:bold; margin-bottom:1em;
 +.ltx_title_appendix, 
 +.ltx_title_chapter       { font-size:200%; font-weight:bold; margin-bottom:1em;
 +.ltx_title_chapter .ltx_tag { display:block; font-size:90%; margin-bottom:0.5em;
 +.ltx_title_section       { font-size:140%; font-weight:bold; margin-bottom:1em;
 +.ltx_title_subsection    { font-size:120%; font-weight:bold; margin-bottom:1em;
 +.ltx_title_subsubsection { font-size:100%; font-weight:bold; margin-bottom:1em;
 + 
 +/* Paragraph & Subparagraph titles should be runin! */ 
 +.ltx_title_paragraph   { font-size:100%; font-weight:bold; display:inline;  
 +                         margin-right:1em;
 +.ltx_paragraph .ltx_title, 
 +.ltx_paragraph .ltx_title + .ltx_para, 
 +.ltx_paragraph .ltx_title + .ltx_para > .ltx_p { display:inline;
 + 
 +.ltx_title_subparagraph  { font-size:100%; font-weight:bold; display:inline;  
 +                           margin-left:2em; margin-right:1em;
 +.ltx_subparagraph .ltx_title, 
 +.ltx_subparagraph .ltx_title + .ltx_para, 
 +.ltx_subparagraph .ltx_title + .ltx_para > .ltx_p { display:inline;
 + 
 +.ltx_figure  { text-align:center; margin:auto; margin:0.5em;
 +.ltx_table   { text-align:center; margin:auto; margin:0.5em;
 + 
 +/* experimental: flex model, to center short captions, justify long ones */ 
 +.ltx_table, 
 +.ltx_figure { display:flex; flex-direction:column; align-items:center;
 +.ltx_table .ltx_caption, 
 +.ltx_figure .ltx_caption { text-align:justify;
 + 
 +/* first p in para gets indented */ 
 +.ltx_para > .ltx_p:first-child { text-indent:2em;
 +/* except the initial in a section */ 
 +section > .ltx_title +.ltx_para > .ltx_p, 
 +section > .ltx_title +.ltx_date +.ltx_para > .ltx_p {text-indent:0em;
 + 
 +.ltx_itemize { margin-left:1em;
 + 
 +.ltx_theorem { margin-top:0.5em; margin-bottom:0.5em;
 +.ltx_theorem .ltx_title { margin-bottom:0.1em; font-weight:normal;
 +.ltx_theorem .ltx_title + .ltx_para, 
 +.ltx_theorem .ltx_title + .ltx_para .ltx_p, 
 +.ltx_theorem .ltx_title + .ltx_p  { margin-top:0em;
 + 
 +</style> 
 + 
 +<!-- autoinlined `/Volumes/Users/sbs/tex/sacdoc/tutorial/html/ltx-listings.css' --> 
 +<style type='text/css'> 
 + 
 +.ltx_listing_data { 
 +  float:right; }   
 +.ltx_listing_data a { 
 +  text-decoration:none;
 +</style> 
 + 
 +<link rel='stylesheet' href='http://www.sac-home.org/dokuwiki/lib/tpl/bootstrap3/assets/bootstrap/journal/bootstrap.min.css' type='text/css'> 
 +<!-- autoinlined `/Volumes/Users/sbs/tex/sacdoc/tutorial/html/tutorial.css' --> 
 +<style type='text/css'> 
 +/*body { 
 +    padding-top:  1em; 
 +    max-width:   50em; 
 +    margin:      auto; 
 +}*/ 
 + 
 +/* This section converts inline menu div into a floating menu.  */ 
 +.ltx_role_contents { 
 +    width: 300px; 
 +    margin-left: 0px; 
 +    overflow-y: auto; 
 +    max-height: 90%; 
 +    /*padding-top: 15px;*/ 
 +    /*border-right: 1px solid black;*/ 
 +    float: left; 
 +    clear: left; 
 +    top: 0; 
 +    position: fixed; 
 +    margin-top: 85px; 
 +    padding-right: 5px; 
 +
 + 
 +.ltx_page_main { 
 +    margin-top: -30px; 
 +    padding: 0; 
 +
 + 
 +.ltx_titlepage { 
 +    padding-left: 320px; 
 +
 + 
 +.ltx_part { 
 +    padding-left: 320px; 
 +
 + 
 +.ltx_role_contents h6 { 
 +    display: none; 
 +
 + 
 +.ltx_role_contents > ul { 
 +    padding: 0; 
 +
 + 
 +.ltx_page_footer { 
 +    display: none; 
 +
 +/* end of floating-menu-related definitions.  */ 
 + 
 +/* This places captions of the code snippets behind the snippet. 
 +   XXX This is a hack as currently LateXML gets confused when 
 +       position of a caption (as specified by lstset in tex) is 
 +       bottom.  Therefore, we keep tex definition on top and 
 +       fix it via CSS. 
 + 
 +   XXX I am not sure that changing display to 'table' is a good 
 +       idea, but I don't know any other way on how to move the 
 +       caption down.  */ 
 +figure { 
 +  display: table; 
 +  width: 95%; 
 +
 +figcaption { 
 +  display: table-caption; 
 +  caption-side: bottom; 
 +
 + 
 +/* We don't need paragraph indentation in html.  */ 
 +.ltx_para > .ltx_p:first-child { text-indent:0em;
 + 
 + 
 +/* This minheight needs to be adjusted to the bootstrap 
 +   minimum height so that the line numbers in listings 
 +   behave correctly.  */ 
 +.ltx_listingline { 
 +    white-space:nowrap; 
 +    min-height:1.42857143em; 
 +
 + 
 +/* Get rid of italic inside the theorem environment. 
 +   This has an effect on the way excersises look.  */ 
 +.ltx_theorem_theorem .ltx_font_italic { 
 +    font-style: normal; 
 +
 + 
 +.ltx_theorem_theorem { 
 +    border-left: 7px solid #ccc; 
 +    /*padding: 2px 4px;*/ 
 +    padding-left: 10px; 
 +    margin-left: 3em; 
 +
 + 
 +.ltx_theorem_theorem h6 { 
 +    /*color: #333;*/ 
 +    font-weight: normal; 
 +
 + 
 +.ltx_listing { 
 +    /* A combination of pre and code.  */ 
 +    font-family: Menlo, Monaco, Consolas, "Courier New", monospace; 
 +    padding: 2px 4px; 
 +    font-size: 90%; 
 +    border-radius: 4px; 
 +    display: block; 
 +    line-height: 1.42857143; 
 +    word-break: break-all; 
 +    word-wrap: break-word; 
 +    color: #333333; 
 +    background-color: #f5f5f5; 
 +    border: 1px solid #cccccc; 
 +
 + 
 +.ltx_caption { 
 +    padding-top: 8px; 
 +    padding-bottom: 8px; 
 +    color: #999999; 
 +    text-align: center; 
 +
 + 
 +.ltx_framed_rectangle { 
 +    text-align: left; 
 +    border: 1px solid #cccccc; 
 +    font-size: 90%; 
 +    border-radius: 4px; 
 +    padding: 2px 4px; 
 +
 + 
 +.ltx_theorem_theorem { 
 +    font-style: normal important!; 
 +
 +/*.ltx_framed_rectangle { 
 +    float: left; 
 +    width: 20em; 
 +    margin-right: 10px; 
 +    margin-left: -10em; 
 +}*/ 
 + 
 +</style>
  
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
-<link rel="stylesheet" href="LaTeXML.css" type="text/css"> 
-<link rel="stylesheet" href="ltx-report.css" type="text/css"> 
-<link rel="stylesheet" href="ltx-listings.css" type="text/css"> 
-<link rel="stylesheet" href="http://www.sac-home.org/dokuwiki/lib/tpl/bootstrap3/assets/bootstrap/journal/bootstrap.min.css" type="text/css"> 
-<link rel="stylesheet" href="tutorial.css" type="text/css"> 
 </head> </head>
 <body> <body>
-<div class="ltx_page_main"+<div class='ltx_page_main'
-<div class="ltx_page_content"+<div class='ltx_page_content'
-<article class="ltx_document"+<article class='ltx_document'
-<div class="ltx_titlepage"+<div class='ltx_titlepage'
-<p class="ltx_p"><span class="ltx_textstyle="font-size:298%;">SINGLE ASSIGNMENT C +<p class='ltx_p'><span class='ltx_textstyle='font-size:298%;'>SINGLE ASSIGNMENT C 
-<br class="ltx_break"></span> +<br class='ltx_break'></span> 
-<span class="ltx_textstyle="font-size:298%;">TUTORIAL +<span class='ltx_textstyle='font-size:298%;'>TUTORIAL 
-<br class="ltx_break"></span> +<br class='ltx_break'></span> 
-<span class="ltx_textstyle="font-size:144%;">VERSION 1.2</span></p> +<span class='ltx_textstyle='font-size:144%;'>VERSION 1.2</span></p> 
-<p class="ltx_p"><span class="ltx_text ltx_font_smallcapsstyle="font-size:144%;">Sven-Bodo Scholz<span class="ltx_text ltx_font_upright"> </span>Stephan Herhut +<p class='ltx_p'><span class='ltx_text ltx_font_smallcapsstyle='font-size:144%;'>Sven-Bodo Scholz<span class='ltx_text ltx_font_upright'> </span>Stephan Herhut 
-<br class="ltx_break">Frank Penczek<span class="ltx_text ltx_font_upright"> </span>Clemens Grelck +<br class='ltx_break'>Frank Penczek<span class='ltx_text ltx_font_upright'> </span>Clemens Grelck 
-<br class="ltx_break">Artem Shinkarov +<br class='ltx_break'>Artem Shinkarov 
-<br class="ltx_break"></span></p> +<br class='ltx_break'></span></p> 
-<p class="ltx_p"><span class="ltx_text ltx_font_smallcapsstyle="font-size:120%;">November 302016</span></p>+<p class='ltx_p'><span class='ltx_text ltx_font_smallcapsstyle='font-size:120%;'>March 242017</span></p>
 </div> </div>
-<div class="ltx_TOC ltx_role_contents">+<div class='ltx_TOC ltx_role_contents'>
 <h6>Contents:</h6> <h6>Contents:</h6>
-<ul class="ltx_toclist"+<ul class='ltx_toclist'
-<li class="ltx_tocentry ltx_tocentry_part"+<li class='ltx_tocentry ltx_tocentry_part'
-<a href="#Pt1title="Part I Trails Covering the Basics of SaCclass="ltx_ref"><span class="ltx_text ltx_ref_title"><span class="ltx_tag ltx_tag_ref">I </span>Trails Covering the Basics of SaC</span></a> +<a href='#Pt1title='Part I Trails Covering the Basics of SaCclass='ltx_ref'><span class='ltx_text ltx_ref_title'><span class='ltx_tag ltx_tag_ref'>I </span>Trails Covering the Basics of SaC</span></a> 
-<ul class="ltx_toclist ltx_toclist_part"+<ul class='ltx_toclist ltx_toclist_part'
-<li class="ltx_tocentry ltx_tocentry_chapter"+<li class='ltx_tocentry ltx_tocentry_chapter'
-<a href="#Ch1title="Chapter 1 Running the first program ‣ Part I Trails Covering the Basics of SaCclass="ltx_ref"><span class="ltx_text ltx_ref_title"><span class="ltx_tag ltx_tag_ref">1 </span>Running the first program</span></a> +<a href='#Ch1title='Chapter 1 Running the first program ‣ Part I Trails Covering the Basics of SaCclass='ltx_ref'><span class='ltx_text ltx_ref_title'><span class='ltx_tag ltx_tag_ref'>1 </span>Running the first program</span></a> 
-<ul class="ltx_toclist ltx_toclist_chapter"+<ul class='ltx_toclist ltx_toclist_chapter'
-<li class="ltx_tocentry ltx_tocentry_section"><a href="#Ch1.S1title="1.1 A Checklist ‣ Chapter 1 Running the first program ‣ Part I Trails Covering the Basics of SaCclass="ltx_ref"><span class="ltx_text ltx_ref_title"><span class="ltx_tag ltx_tag_ref">1.1 </span>A Checklist</span></a></li> +<li class='ltx_tocentry ltx_tocentry_section'><a href='#Ch1.S1title='1.1 A Checklist ‣ Chapter 1 Running the first program ‣ Part I Trails Covering the Basics of SaCclass='ltx_ref'><span class='ltx_text ltx_ref_title'><span class='ltx_tag ltx_tag_ref'>1.1 </span>A Checklist</span></a></li> 
-<li class="ltx_tocentry ltx_tocentry_section"><a href="#Ch1.S2title="1.2 Create your first SaC Source File ‣ Chapter 1 Running the first program ‣ Part I Trails Covering the Basics of SaCclass="ltx_ref"><span class="ltx_text ltx_ref_title"><span class="ltx_tag ltx_tag_ref">1.2 </span>Create your first <span class="ltx_text ltx_font_smallcaps">SaC</span> Source File</span></a></li> +<li class='ltx_tocentry ltx_tocentry_section'><a href='#Ch1.S2title='1.2 Create your first SaC Source File ‣ Chapter 1 Running the first program ‣ Part I Trails Covering the Basics of SaCclass='ltx_ref'><span class='ltx_text ltx_ref_title'><span class='ltx_tag ltx_tag_ref'>1.2 </span>Create your first <span class='ltx_text ltx_font_smallcaps'>SaC</span> Source File</span></a></li> 
-<li class="ltx_tocentry ltx_tocentry_section"><a href="#Ch1.S3title="1.3 Compile the Source File and Run the Program ‣ Chapter 1 Running the first program ‣ Part I Trails Covering the Basics of SaCclass="ltx_ref"><span class="ltx_text ltx_ref_title"><span class="ltx_tag ltx_tag_ref">1.3 </span>Compile the Source File and Run the Program</span></a></li>+<li class='ltx_tocentry ltx_tocentry_section'><a href='#Ch1.S3title='1.3 Compile the Source File and Run the Program ‣ Chapter 1 Running the first program ‣ Part I Trails Covering the Basics of SaCclass='ltx_ref'><span class='ltx_text ltx_ref_title'><span class='ltx_tag ltx_tag_ref'>1.3 </span>Compile the Source File and Run the Program</span></a></li>
 </ul> </ul>
 </li> </li>
-<li class="ltx_tocentry ltx_tocentry_chapter"+<li class='ltx_tocentry ltx_tocentry_chapter'
-<a href="#Ch2title="Chapter 2 Array Programming Basics ‣ Part I Trails Covering the Basics of SaCclass="ltx_ref"><span class="ltx_text ltx_ref_title"><span class="ltx_tag ltx_tag_ref">2 </span>Array Programming Basics</span></a> +<a href='#Ch2title='Chapter 2 Array Programming Basics ‣ Part I Trails Covering the Basics of SaCclass='ltx_ref'><span class='ltx_text ltx_ref_title'><span class='ltx_tag ltx_tag_ref'>2 </span>Array Programming Basics</span></a> 
-<ul class="ltx_toclist ltx_toclist_chapter"+<ul class='ltx_toclist ltx_toclist_chapter'
-<li class="ltx_tocentry ltx_tocentry_section"+<li class='ltx_tocentry ltx_tocentry_section'
-<a href="#Ch2.S1title="2.1 Lesson 1: Arrays as Data ‣ Chapter 2 Array Programming Basics ‣ Part I Trails Covering the Basics of SaCclass="ltx_ref"><span class="ltx_text ltx_ref_title"><span class="ltx_tag ltx_tag_ref">2.1 </span>Lesson 1: Arrays as Data</span></a> +<a href='#Ch2.S1title='2.1 Lesson 1: Arrays as Data ‣ Chapter 2 Array Programming Basics ‣ Part I Trails Covering the Basics of SaCclass='ltx_ref'><span class='ltx_text ltx_ref_title'><span class='ltx_tag ltx_tag_ref'>2.1 </span>Lesson 1: Arrays as Data</span></a> 
-<ul class="ltx_toclist ltx_toclist_section"+<ul class='ltx_toclist ltx_toclist_section'
-<li class="ltx_tocentry ltx_tocentry_subsection"><a href="#Ch2.S1.SS1title="2.1.1 Defining Arrays ‣ 2.1 Lesson 1: Arrays as Data ‣ Chapter 2 Array Programming Basics ‣ Part I Trails Covering the Basics of SaCclass="ltx_ref"><span class="ltx_text ltx_ref_title"><span class="ltx_tag ltx_tag_ref">2.1.1 </span>Defining Arrays</span></a></li> +<li class='ltx_tocentry ltx_tocentry_subsection'><a href='#Ch2.S1.SS1title='2.1.1 Defining Arrays ‣ 2.1 Lesson 1: Arrays as Data ‣ Chapter 2 Array Programming Basics ‣ Part I Trails Covering the Basics of SaCclass='ltx_ref'><span class='ltx_text ltx_ref_title'><span class='ltx_tag ltx_tag_ref'>2.1.1 </span>Defining Arrays</span></a></li> 
-<li class="ltx_tocentry ltx_tocentry_subsection"><a href="#Ch2.S1.SS2title="2.1.2 Arrays and Variables ‣ 2.1 Lesson 1: Arrays as Data ‣ Chapter 2 Array Programming Basics ‣ Part I Trails Covering the Basics of SaCclass="ltx_ref"><span class="ltx_text ltx_ref_title"><span class="ltx_tag ltx_tag_ref">2.1.2 </span>Arrays and Variables</span></a></li>+<li class='ltx_tocentry ltx_tocentry_subsection'><a href='#Ch2.S1.SS2title='2.1.2 Arrays and Variables ‣ 2.1 Lesson 1: Arrays as Data ‣ Chapter 2 Array Programming Basics ‣ Part I Trails Covering the Basics of SaCclass='ltx_ref'><span class='ltx_text ltx_ref_title'><span class='ltx_tag ltx_tag_ref'>2.1.2 </span>Arrays and Variables</span></a></li>
 </ul> </ul>
 </li> </li>
-<li class="ltx_tocentry ltx_tocentry_section"+<li class='ltx_tocentry ltx_tocentry_section'
-<a href="#Ch2.S2title="2.2 Lesson 2: Shape-Invariant Programming ‣ Chapter 2 Array Programming Basics ‣ Part I Trails Covering the Basics of SaCclass="ltx_ref"><span class="ltx_text ltx_ref_title"><span class="ltx_tag ltx_tag_ref">2.2 </span>Lesson 2: Shape-Invariant Programming</span></a> +<a href='#Ch2.S2title='2.2 Lesson 2: Shape-Invariant Programming ‣ Chapter 2 Array Programming Basics ‣ Part I Trails Covering the Basics of SaCclass='ltx_ref'><span class='ltx_text ltx_ref_title'><span class='ltx_tag ltx_tag_ref'>2.2 </span>Lesson 2: Shape-Invariant Programming</span></a> 
-<ul class="ltx_toclist ltx_toclist_section"+<ul class='ltx_toclist ltx_toclist_section'
-<li class="ltx_tocentry ltx_tocentry_subsection"><a href="#Ch2.S2.SS1title="2.2.1 Standard Array Operations ‣ 2.2 Lesson 2: Shape-Invariant Programming ‣ Chapter 2 Array Programming Basics ‣ Part I Trails Covering the Basics of SaCclass="ltx_ref"><span class="ltx_text ltx_ref_title"><span class="ltx_tag ltx_tag_ref">2.2.1 </span>Standard Array Operations</span></a></li> +<li class='ltx_tocentry ltx_tocentry_subsection'><a href='#Ch2.S2.SS1title='2.2.1 Standard Array Operations ‣ 2.2 Lesson 2: Shape-Invariant Programming ‣ Chapter 2 Array Programming Basics ‣ Part I Trails Covering the Basics of SaCclass='ltx_ref'><span class='ltx_text ltx_ref_title'><span class='ltx_tag ltx_tag_ref'>2.2.1 </span>Standard Array Operations</span></a></li> 
-<li class="ltx_tocentry ltx_tocentry_subsection"><a href="#Ch2.S2.SS2title="2.2.2 Axis Control Notation ‣ 2.2 Lesson 2: Shape-Invariant Programming ‣ Chapter 2 Array Programming Basics ‣ Part I Trails Covering the Basics of SaCclass="ltx_ref"><span class="ltx_text ltx_ref_title"><span class="ltx_tag ltx_tag_ref">2.2.2 </span>Axis Control Notation</span></a></li> +<li class='ltx_tocentry ltx_tocentry_subsection'><a href='#Ch2.S2.SS2title='2.2.2 Axis Control Notation ‣ 2.2 Lesson 2: Shape-Invariant Programming ‣ Chapter 2 Array Programming Basics ‣ Part I Trails Covering the Basics of SaCclass='ltx_ref'><span class='ltx_text ltx_ref_title'><span class='ltx_tag ltx_tag_ref'>2.2.2 </span>Axis Control Notation</span></a></li> 
-<li class="ltx_tocentry ltx_tocentry_subsection"><a href="#Ch2.S2.SS3title="2.2.3 Putting it all Together ‣ 2.2 Lesson 2: Shape-Invariant Programming ‣ Chapter 2 Array Programming Basics ‣ Part I Trails Covering the Basics of SaCclass="ltx_ref"><span class="ltx_text ltx_ref_title"><span class="ltx_tag ltx_tag_ref">2.2.3 </span>Putting it all Together</span></a></li>+<li class='ltx_tocentry ltx_tocentry_subsection'><a href='#Ch2.S2.SS3title='2.2.3 Putting it all Together ‣ 2.2 Lesson 2: Shape-Invariant Programming ‣ Chapter 2 Array Programming Basics ‣ Part I Trails Covering the Basics of SaCclass='ltx_ref'><span class='ltx_text ltx_ref_title'><span class='ltx_tag ltx_tag_ref'>2.2.3 </span>Putting it all Together</span></a></li>
 </ul> </ul>
 </li> </li>
 </ul> </ul>
 </li> </li>
-<li class="ltx_tocentry ltx_tocentry_chapter"+<li class='ltx_tocentry ltx_tocentry_chapter'
-<a href="#Ch3title="Chapter 3 Basic Program Structure ‣ Part I Trails Covering the Basics of SaCclass="ltx_ref"><span class="ltx_text ltx_ref_title"><span class="ltx_tag ltx_tag_ref">3 </span>Basic Program Structure</span></a> +<a href='#Ch3title='Chapter 3 Basic Program Structure ‣ Part I Trails Covering the Basics of SaCclass='ltx_ref'><span class='ltx_text ltx_ref_title'><span class='ltx_tag ltx_tag_ref'>3 </span>Basic Program Structure</span></a> 
-<ul class="ltx_toclist ltx_toclist_chapter"+<ul class='ltx_toclist ltx_toclist_chapter'
-<li class="ltx_tocentry ltx_tocentry_section"+<li class='ltx_tocentry ltx_tocentry_section'
-<a href="#Ch3.S1title="3.1 Lesson 3: Functions and their Types ‣ Chapter 3 Basic Program Structure ‣ Part I Trails Covering the Basics of SaCclass="ltx_ref"><span class="ltx_text ltx_ref_title"><span class="ltx_tag ltx_tag_ref">3.1 </span>Lesson 3: Functions and their Types</span></a> +<a href='#Ch3.S1title='3.1 Lesson 3: Functions and their Types ‣ Chapter 3 Basic Program Structure ‣ Part I Trails Covering the Basics of SaCclass='ltx_ref'><span class='ltx_text ltx_ref_title'><span class='ltx_tag ltx_tag_ref'>3.1 </span>Lesson 3: Functions and their Types</span></a> 
-<ul class="ltx_toclist ltx_toclist_section"+<ul class='ltx_toclist ltx_toclist_section'
-<li class="ltx_tocentry ltx_tocentry_subsection"><a href="#Ch3.S1.SS1title="3.1.1 Function Definitions ‣ 3.1 Lesson 3: Functions and their Types ‣ Chapter 3 Basic Program Structure ‣ Part I Trails Covering the Basics of SaCclass="ltx_ref"><span class="ltx_text ltx_ref_title"><span class="ltx_tag ltx_tag_ref">3.1.1 </span>Function Definitions</span></a></li> +<li class='ltx_tocentry ltx_tocentry_subsection'><a href='#Ch3.S1.SS1title='3.1.1 Function Definitions ‣ 3.1 Lesson 3: Functions and their Types ‣ Chapter 3 Basic Program Structure ‣ Part I Trails Covering the Basics of SaCclass='ltx_ref'><span class='ltx_text ltx_ref_title'><span class='ltx_tag ltx_tag_ref'>3.1.1 </span>Function Definitions</span></a></li> 
-<li class="ltx_tocentry ltx_tocentry_subsection"><a href="#Ch3.S1.SS2title="3.1.2 Built-in Types ‣ 3.1 Lesson 3: Functions and their Types ‣ Chapter 3 Basic Program Structure ‣ Part I Trails Covering the Basics of SaCclass="ltx_ref"><span class="ltx_text ltx_ref_title"><span class="ltx_tag ltx_tag_ref">3.1.2 </span>Built-in Types</span></a></li> +<li class='ltx_tocentry ltx_tocentry_subsection'><a href='#Ch3.S1.SS2title='3.1.2 Built-in Types ‣ 3.1 Lesson 3: Functions and their Types ‣ Chapter 3 Basic Program Structure ‣ Part I Trails Covering the Basics of SaCclass='ltx_ref'><span class='ltx_text ltx_ref_title'><span class='ltx_tag ltx_tag_ref'>3.1.2 </span>Built-in Types</span></a></li> 
-<li class="ltx_tocentry ltx_tocentry_subsection"><a href="#Ch3.S1.SS3title="3.1.3 Subtyping ‣ 3.1 Lesson 3: Functions and their Types ‣ Chapter 3 Basic Program Structure ‣ Part I Trails Covering the Basics of SaCclass="ltx_ref"><span class="ltx_text ltx_ref_title"><span class="ltx_tag ltx_tag_ref">3.1.3 </span>Subtyping</span></a></li> +<li class='ltx_tocentry ltx_tocentry_subsection'><a href='#Ch3.S1.SS3title='3.1.3 Subtyping ‣ 3.1 Lesson 3: Functions and their Types ‣ Chapter 3 Basic Program Structure ‣ Part I Trails Covering the Basics of SaCclass='ltx_ref'><span class='ltx_text ltx_ref_title'><span class='ltx_tag ltx_tag_ref'>3.1.3 </span>Subtyping</span></a></li> 
-<li class="ltx_tocentry ltx_tocentry_subsection"><a href="#Ch3.S1.SS4title="3.1.4 Function Overloading ‣ 3.1 Lesson 3: Functions and their Types ‣ Chapter 3 Basic Program Structure ‣ Part I Trails Covering the Basics of SaCclass="ltx_ref"><span class="ltx_text ltx_ref_title"><span class="ltx_tag ltx_tag_ref">3.1.4 </span>Function Overloading</span></a></li>+<li class='ltx_tocentry ltx_tocentry_subsection'><a href='#Ch3.S1.SS4title='3.1.4 Function Overloading ‣ 3.1 Lesson 3: Functions and their Types ‣ Chapter 3 Basic Program Structure ‣ Part I Trails Covering the Basics of SaCclass='ltx_ref'><span class='ltx_text ltx_ref_title'><span class='ltx_tag ltx_tag_ref'>3.1.4 </span>Function Overloading</span></a></li>
 </ul> </ul>
 </li> </li>
-<li class="ltx_tocentry ltx_tocentry_section"+<li class='ltx_tocentry ltx_tocentry_section'
-<a href="#Ch3.S2title="3.2 Lesson 4: Function Bodies ‣ Chapter 3 Basic Program Structure ‣ Part I Trails Covering the Basics of SaCclass="ltx_ref"><span class="ltx_text ltx_ref_title"><span class="ltx_tag ltx_tag_ref">3.2 </span>Lesson 4: Function Bodies</span></a> +<a href='#Ch3.S2title='3.2 Lesson 4: Function Bodies ‣ Chapter 3 Basic Program Structure ‣ Part I Trails Covering the Basics of SaCclass='ltx_ref'><span class='ltx_text ltx_ref_title'><span class='ltx_tag ltx_tag_ref'>3.2 </span>Lesson 4: Function Bodies</span></a> 
-<ul class="ltx_toclist ltx_toclist_section"+<ul class='ltx_toclist ltx_toclist_section'
-<li class="ltx_tocentry ltx_tocentry_subsection"><a href="#Ch3.S2.SS1title="3.2.1 Variable Declarations ‣ 3.2 Lesson 4: Function Bodies ‣ Chapter 3 Basic Program Structure ‣ Part I Trails Covering the Basics of SaCclass="ltx_ref"><span class="ltx_text ltx_ref_title"><span class="ltx_tag ltx_tag_ref">3.2.1 </span>Variable Declarations</span></a></li> +<li class='ltx_tocentry ltx_tocentry_subsection'><a href='#Ch3.S2.SS1title='3.2.1 Variable Declarations ‣ 3.2 Lesson 4: Function Bodies ‣ Chapter 3 Basic Program Structure ‣ Part I Trails Covering the Basics of SaCclass='ltx_ref'><span class='ltx_text ltx_ref_title'><span class='ltx_tag ltx_tag_ref'>3.2.1 </span>Variable Declarations</span></a></li> 
-<li class="ltx_tocentry ltx_tocentry_subsection"><a href="#Ch3.S2.SS2title="3.2.2 Assignments ‣ 3.2 Lesson 4: Function Bodies ‣ Chapter 3 Basic Program Structure ‣ Part I Trails Covering the Basics of SaCclass="ltx_ref"><span class="ltx_text ltx_ref_title"><span class="ltx_tag ltx_tag_ref">3.2.2 </span>Assignments</span></a></li> +<li class='ltx_tocentry ltx_tocentry_subsection'><a href='#Ch3.S2.SS2title='3.2.2 Assignments ‣ 3.2 Lesson 4: Function Bodies ‣ Chapter 3 Basic Program Structure ‣ Part I Trails Covering the Basics of SaCclass='ltx_ref'><span class='ltx_text ltx_ref_title'><span class='ltx_tag ltx_tag_ref'>3.2.2 </span>Assignments</span></a></li> 
-<li class="ltx_tocentry ltx_tocentry_subsection"><a href="#Ch3.S2.SS3title="3.2.3 Conditionals ‣ 3.2 Lesson 4: Function Bodies ‣ Chapter 3 Basic Program Structure ‣ Part I Trails Covering the Basics of SaCclass="ltx_ref"><span class="ltx_text ltx_ref_title"><span class="ltx_tag ltx_tag_ref">3.2.3 </span>Conditionals</span></a></li> +<li class='ltx_tocentry ltx_tocentry_subsection'><a href='#Ch3.S2.SS3title='3.2.3 Conditionals ‣ 3.2 Lesson 4: Function Bodies ‣ Chapter 3 Basic Program Structure ‣ Part I Trails Covering the Basics of SaCclass='ltx_ref'><span class='ltx_text ltx_ref_title'><span class='ltx_tag ltx_tag_ref'>3.2.3 </span>Conditionals</span></a></li> 
-<li class="ltx_tocentry ltx_tocentry_subsection"><a href="#Ch3.S2.SS4title="3.2.4 Loops ‣ 3.2 Lesson 4: Function Bodies ‣ Chapter 3 Basic Program Structure ‣ Part I Trails Covering the Basics of SaCclass="ltx_ref"><span class="ltx_text ltx_ref_title"><span class="ltx_tag ltx_tag_ref">3.2.4 </span>Loops</span></a></li> +<li class='ltx_tocentry ltx_tocentry_subsection'><a href='#Ch3.S2.SS4title='3.2.4 Loops ‣ 3.2 Lesson 4: Function Bodies ‣ Chapter 3 Basic Program Structure ‣ Part I Trails Covering the Basics of SaCclass='ltx_ref'><span class='ltx_text ltx_ref_title'><span class='ltx_tag ltx_tag_ref'>3.2.4 </span>Loops</span></a></li> 
-<li class="ltx_tocentry ltx_tocentry_subsection"><a href="#Ch3.S2.SS5title="3.2.5 Explicit Control Flow Manipulation ‣ 3.2 Lesson 4: Function Bodies ‣ Chapter 3 Basic Program Structure ‣ Part I Trails Covering the Basics of SaCclass="ltx_ref"><span class="ltx_text ltx_ref_title"><span class="ltx_tag ltx_tag_ref">3.2.5 </span>Explicit Control Flow Manipulation</span></a></li>+<li class='ltx_tocentry ltx_tocentry_subsection'><a href='#Ch3.S2.SS5title='3.2.5 Explicit Control Flow Manipulation ‣ 3.2 Lesson 4: Function Bodies ‣ Chapter 3 Basic Program Structure ‣ Part I Trails Covering the Basics of SaCclass='ltx_ref'><span class='ltx_text ltx_ref_title'><span class='ltx_tag ltx_tag_ref'>3.2.5 </span>Explicit Control Flow Manipulation</span></a></li>
 </ul> </ul>
 </li> </li>
-<li class="ltx_tocentry ltx_tocentry_section"+<li class='ltx_tocentry ltx_tocentry_section'
-<a href="#Ch3.S3title="3.3 Lesson 5: Advanced Topics ‣ Chapter 3 Basic Program Structure ‣ Part I Trails Covering the Basics of SaCclass="ltx_ref"><span class="ltx_text ltx_ref_title"><span class="ltx_tag ltx_tag_ref">3.3 </span>Lesson 5: Advanced Topics</span></a> +<a href='#Ch3.S3title='3.3 Lesson 5: Advanced Topics ‣ Chapter 3 Basic Program Structure ‣ Part I Trails Covering the Basics of SaCclass='ltx_ref'><span class='ltx_text ltx_ref_title'><span class='ltx_tag ltx_tag_ref'>3.3 </span>Lesson 5: Advanced Topics</span></a> 
-<ul class="ltx_toclist ltx_toclist_section"+<ul class='ltx_toclist ltx_toclist_section'
-<li class="ltx_tocentry ltx_tocentry_subsection"><a href="#Ch3.S3.SS1title="3.3.1 User-defined Types ‣ 3.3 Lesson 5: Advanced Topics ‣ Chapter 3 Basic Program Structure ‣ Part I Trails Covering the Basics of SaCclass="ltx_ref"><span class="ltx_text ltx_ref_title"><span class="ltx_tag ltx_tag_ref">3.3.1 </span>User-defined Types</span></a></li> +<li class='ltx_tocentry ltx_tocentry_subsection'><a href='#Ch3.S3.SS1title='3.3.1 User-defined Types ‣ 3.3 Lesson 5: Advanced Topics ‣ Chapter 3 Basic Program Structure ‣ Part I Trails Covering the Basics of SaCclass='ltx_ref'><span class='ltx_text ltx_ref_title'><span class='ltx_tag ltx_tag_ref'>3.3.1 </span>User-defined Types</span></a></li> 
-<li class="ltx_tocentry ltx_tocentry_subsection"><a href="#Ch3.S3.SS2title="3.3.2 Type Conversions ‣ 3.3 Lesson 5: Advanced Topics ‣ Chapter 3 Basic Program Structure ‣ Part I Trails Covering the Basics of SaCclass="ltx_ref"><span class="ltx_text ltx_ref_title"><span class="ltx_tag ltx_tag_ref">3.3.2 </span>Type Conversions</span></a></li>+<li class='ltx_tocentry ltx_tocentry_subsection'><a href='#Ch3.S3.SS2title='3.3.2 Type Conversions ‣ 3.3 Lesson 5: Advanced Topics ‣ Chapter 3 Basic Program Structure ‣ Part I Trails Covering the Basics of SaCclass='ltx_ref'><span class='ltx_text ltx_ref_title'><span class='ltx_tag ltx_tag_ref'>3.3.2 </span>Type Conversions</span></a></li>
 </ul> </ul>
 </li> </li>
 </ul> </ul>
 </li> </li>
-<li class="ltx_tocentry ltx_tocentry_chapter"+<li class='ltx_tocentry ltx_tocentry_chapter'
-<a href="#Ch4title="Chapter 4 With-Loops ‣ Part I Trails Covering the Basics of SaCclass="ltx_ref"><span class="ltx_text ltx_ref_title"><span class="ltx_tag ltx_tag_ref">4 </span>With-Loops</span></a> +<a href='#Ch4title='Chapter 4 With-Loops ‣ Part I Trails Covering the Basics of SaCclass='ltx_ref'><span class='ltx_text ltx_ref_title'><span class='ltx_tag ltx_tag_ref'>4 </span>With-Loops</span></a> 
-<ul class="ltx_toclist ltx_toclist_chapter"+<ul class='ltx_toclist ltx_toclist_chapter'
-<li class="ltx_tocentry ltx_tocentry_section"+<li class='ltx_tocentry ltx_tocentry_section'
-<a href="#Ch4.S1title="4.1 Lesson 6: with-loop Basics ‣ Chapter 4 With-Loops ‣ Part I Trails Covering the Basics of SaCclass="ltx_ref"><span class="ltx_text ltx_ref_title"><span class="ltx_tag ltx_tag_ref">4.1 </span>Lesson 6: with-loop Basics</span></a> +<a href='#Ch4.S1title='4.1 Lesson 6: with-loop Basics ‣ Chapter 4 With-Loops ‣ Part I Trails Covering the Basics of SaCclass='ltx_ref'><span class='ltx_text ltx_ref_title'><span class='ltx_tag ltx_tag_ref'>4.1 </span>Lesson 6: with-loop Basics</span></a> 
-<ul class="ltx_toclist ltx_toclist_section"+<ul class='ltx_toclist ltx_toclist_section'
-<li class="ltx_tocentry ltx_tocentry_subsection"><a href="#Ch4.S1.SS1title="4.1.1 Basic Components ‣ 4.1 Lesson 6: with-loop Basics ‣ Chapter 4 With-Loops ‣ Part I Trails Covering the Basics of SaCclass="ltx_ref"><span class="ltx_text ltx_ref_title"><span class="ltx_tag ltx_tag_ref">4.1.1 </span>Basic Components</span></a></li> +<li class='ltx_tocentry ltx_tocentry_subsection'><a href='#Ch4.S1.SS1title='4.1.1 Basic Components ‣ 4.1 Lesson 6: with-loop Basics ‣ Chapter 4 With-Loops ‣ Part I Trails Covering the Basics of SaCclass='ltx_ref'><span class='ltx_text ltx_ref_title'><span class='ltx_tag ltx_tag_ref'>4.1.1 </span>Basic Components</span></a></li> 
-<li class="ltx_tocentry ltx_tocentry_subsection"><a href="#Ch4.S1.SS2title="4.1.2 Generator Ranges ‣ 4.1 Lesson 6: with-loop Basics ‣ Chapter 4 With-Loops ‣ Part I Trails Covering the Basics of SaCclass="ltx_ref"><span class="ltx_text ltx_ref_title"><span class="ltx_tag ltx_tag_ref">4.1.2 </span>Generator Ranges</span></a></li> +<li class='ltx_tocentry ltx_tocentry_subsection'><a href='#Ch4.S1.SS2title='4.1.2 Generator Ranges ‣ 4.1 Lesson 6: with-loop Basics ‣ Chapter 4 With-Loops ‣ Part I Trails Covering the Basics of SaCclass='ltx_ref'><span class='ltx_text ltx_ref_title'><span class='ltx_tag ltx_tag_ref'>4.1.2 </span>Generator Ranges</span></a></li> 
-<li class="ltx_tocentry ltx_tocentry_subsection"><a href="#Ch4.S1.SS3title="4.1.3 Generator Expressions ‣ 4.1 Lesson 6: with-loop Basics ‣ Chapter 4 With-Loops ‣ Part I Trails Covering the Basics of SaCclass="ltx_ref"><span class="ltx_text ltx_ref_title"><span class="ltx_tag ltx_tag_ref">4.1.3 </span>Generator Expressions</span></a></li> +<li class='ltx_tocentry ltx_tocentry_subsection'><a href='#Ch4.S1.SS3title='4.1.3 Generator Expressions ‣ 4.1 Lesson 6: with-loop Basics ‣ Chapter 4 With-Loops ‣ Part I Trails Covering the Basics of SaCclass='ltx_ref'><span class='ltx_text ltx_ref_title'><span class='ltx_tag ltx_tag_ref'>4.1.3 </span>Generator Expressions</span></a></li> 
-<li class="ltx_tocentry ltx_tocentry_subsection"><a href="#Ch4.S1.SS4title="4.1.4 Reductions and further with-loop Operations ‣ 4.1 Lesson 6: with-loop Basics ‣ Chapter 4 With-Loops ‣ Part I Trails Covering the Basics of SaCclass="ltx_ref"><span class="ltx_text ltx_ref_title"><span class="ltx_tag ltx_tag_ref">4.1.4 </span>Reductions and further with-loop Operations</span></a></li>+<li class='ltx_tocentry ltx_tocentry_subsection'><a href='#Ch4.S1.SS4title='4.1.4 Reductions and further with-loop Operations ‣ 4.1 Lesson 6: with-loop Basics ‣ Chapter 4 With-Loops ‣ Part I Trails Covering the Basics of SaCclass='ltx_ref'><span class='ltx_text ltx_ref_title'><span class='ltx_tag ltx_tag_ref'>4.1.4 </span>Reductions and further with-loop Operations</span></a></li>
 </ul> </ul>
 </li> </li>
 </ul> </ul>
 </li> </li>
-<li class="ltx_tocentry ltx_tocentry_chapter"+<li class='ltx_tocentry ltx_tocentry_chapter'
-<a href="#Ch5title="Chapter 5 Working with Modules ‣ Part I Trails Covering the Basics of SaCclass="ltx_ref"><span class="ltx_text ltx_ref_title"><span class="ltx_tag ltx_tag_ref">5 </span>Working with Modules</span></a> +<a href='#Ch5title='Chapter 5 Working with Modules ‣ Part I Trails Covering the Basics of SaCclass='ltx_ref'><span class='ltx_text ltx_ref_title'><span class='ltx_tag ltx_tag_ref'>5 </span>Working with Modules</span></a> 
-<ul class="ltx_toclist ltx_toclist_chapter"+<ul class='ltx_toclist ltx_toclist_chapter'
-<li class="ltx_tocentry ltx_tocentry_section"><a href="#Ch5.S1title="5.1 Name Spaces ‣ Chapter 5 Working with Modules ‣ Part I Trails Covering the Basics of SaCclass="ltx_ref"><span class="ltx_text ltx_ref_title"><span class="ltx_tag ltx_tag_ref">5.1 </span>Name Spaces</span></a></li> +<li class='ltx_tocentry ltx_tocentry_section'><a href='#Ch5.S1title='5.1 Name Spaces ‣ Chapter 5 Working with Modules ‣ Part I Trails Covering the Basics of SaCclass='ltx_ref'><span class='ltx_text ltx_ref_title'><span class='ltx_tag ltx_tag_ref'>5.1 </span>Name Spaces</span></a></li> 
-<li class="ltx_tocentry ltx_tocentry_section"><a href="#Ch5.S2title="5.2 Use Statements ‣ Chapter 5 Working with Modules ‣ Part I Trails Covering the Basics of SaCclass="ltx_ref"><span class="ltx_text ltx_ref_title"><span class="ltx_tag ltx_tag_ref">5.2 </span>Use Statements</span></a></li> +<li class='ltx_tocentry ltx_tocentry_section'><a href='#Ch5.S2title='5.2 Use Statements ‣ Chapter 5 Working with Modules ‣ Part I Trails Covering the Basics of SaCclass='ltx_ref'><span class='ltx_text ltx_ref_title'><span class='ltx_tag ltx_tag_ref'>5.2 </span>Use Statements</span></a></li> 
-<li class="ltx_tocentry ltx_tocentry_section"><a href="#Ch5.S3title="5.3 Import statement ‣ Chapter 5 Working with Modules ‣ Part I Trails Covering the Basics of SaCclass="ltx_ref"><span class="ltx_text ltx_ref_title"><span class="ltx_tag ltx_tag_ref">5.3 </span>Import statement</span></a></li> +<li class='ltx_tocentry ltx_tocentry_section'><a href='#Ch5.S3title='5.3 Import statement ‣ Chapter 5 Working with Modules ‣ Part I Trails Covering the Basics of SaCclass='ltx_ref'><span class='ltx_text ltx_ref_title'><span class='ltx_tag ltx_tag_ref'>5.3 </span>Import statement</span></a></li> 
-<li class="ltx_tocentry ltx_tocentry_section"><a href="#Ch5.S4title="5.4 Putting It Together ‣ Chapter 5 Working with Modules ‣ Part I Trails Covering the Basics of SaCclass="ltx_ref"><span class="ltx_text ltx_ref_title"><span class="ltx_tag ltx_tag_ref">5.4 </span>Putting It Together</span></a></li> +<li class='ltx_tocentry ltx_tocentry_section'><a href='#Ch5.S4title='5.4 Putting It Together ‣ Chapter 5 Working with Modules ‣ Part I Trails Covering the Basics of SaCclass='ltx_ref'><span class='ltx_text ltx_ref_title'><span class='ltx_tag ltx_tag_ref'>5.4 </span>Putting It Together</span></a></li> 
-<li class="ltx_tocentry ltx_tocentry_section"><a href="#Ch5.S5title="5.5 Implementing Modules ‣ Chapter 5 Working with Modules ‣ Part I Trails Covering the Basics of SaCclass="ltx_ref"><span class="ltx_text ltx_ref_title"><span class="ltx_tag ltx_tag_ref">5.5 </span>Implementing Modules</span></a></li>+<li class='ltx_tocentry ltx_tocentry_section'><a href='#Ch5.S5title='5.5 Implementing Modules ‣ Chapter 5 Working with Modules ‣ Part I Trails Covering the Basics of SaCclass='ltx_ref'><span class='ltx_text ltx_ref_title'><span class='ltx_tag ltx_tag_ref'>5.5 </span>Implementing Modules</span></a></li>
 </ul> </ul>
 </li> </li>
-<li class="ltx_tocentry ltx_tocentry_chapter"+<li class='ltx_tocentry ltx_tocentry_chapter'
-<a href="#Ch6title="Chapter 6 Case Studies ‣ Part I Trails Covering the Basics of SaCclass="ltx_ref"><span class="ltx_text ltx_ref_title"><span class="ltx_tag ltx_tag_ref">6 </span>Case Studies</span></a> +<a href='#Ch6title='Chapter 6 Case Studies ‣ Part I Trails Covering the Basics of SaCclass='ltx_ref'><span class='ltx_text ltx_ref_title'><span class='ltx_tag ltx_tag_ref'>6 </span>Case Studies</span></a> 
-<ul class="ltx_toclist ltx_toclist_chapter"+<ul class='ltx_toclist ltx_toclist_chapter'
-<li class="ltx_tocentry ltx_tocentry_section"><a href="#Ch6.S1title="6.1 Lesson 7: Image Processing ‣ Chapter 6 Case Studies ‣ Part I Trails Covering the Basics of SaCclass="ltx_ref"><span class="ltx_text ltx_ref_title"><span class="ltx_tag ltx_tag_ref">6.1 </span>Lesson 7: Image Processing</span></a></li> +<li class='ltx_tocentry ltx_tocentry_section'><a href='#Ch6.S1title='6.1 Lesson 7: Image Processing ‣ Chapter 6 Case Studies ‣ Part I Trails Covering the Basics of SaCclass='ltx_ref'><span class='ltx_text ltx_ref_title'><span class='ltx_tag ltx_tag_ref'>6.1 </span>Lesson 7: Image Processing</span></a></li> 
-<li class="ltx_tocentry ltx_tocentry_section"><a href="#Ch6.S2title="6.2 Lesson 8: Computing Mandelbrot Images ‣ Chapter 6 Case Studies ‣ Part I Trails Covering the Basics of SaCclass="ltx_ref"><span class="ltx_text ltx_ref_title"><span class="ltx_tag ltx_tag_ref">6.2 </span>Lesson 8: Computing Mandelbrot Images</span></a></li>+<li class='ltx_tocentry ltx_tocentry_section'><a href='#Ch6.S2title='6.2 Lesson 8: Computing Mandelbrot Images ‣ Chapter 6 Case Studies ‣ Part I Trails Covering the Basics of SaCclass='ltx_ref'><span class='ltx_text ltx_ref_title'><span class='ltx_tag ltx_tag_ref'>6.2 </span>Lesson 8: Computing Mandelbrot Images</span></a></li>
 </ul> </ul>
 </li> </li>
 </ul> </ul>
 </li> </li>
-<li class="ltx_tocentry ltx_tocentry_part"+<li class='ltx_tocentry ltx_tocentry_part'
-<a href="#Pt2title="Part II Trails Covering More Advanced Features of SaCclass="ltx_ref"><span class="ltx_text ltx_ref_title"><span class="ltx_tag ltx_tag_ref">II </span>Trails Covering More Advanced Features of SaC</span></a> +<a href='#Pt2title='Part II Trails Covering More Advanced Features of SaCclass='ltx_ref'><span class='ltx_text ltx_ref_title'><span class='ltx_tag ltx_tag_ref'>II </span>Trails Covering More Advanced Features of SaC</span></a> 
-<ul class="ltx_toclist ltx_toclist_part"+<ul class='ltx_toclist ltx_toclist_part'
-<li class="ltx_tocentry ltx_tocentry_chapter"+<li class='ltx_tocentry ltx_tocentry_chapter'
-<a href="#Ch7title="Chapter 7 Treasures in the Standard Library ‣ Part II Trails Covering More Advanced Features of SaCclass="ltx_ref"><span class="ltx_text ltx_ref_title"><span class="ltx_tag ltx_tag_ref">7 </span>Treasures in the Standard Library</span></a> +<a href='#Ch7title='Chapter 7 Treasures in the Standard Library ‣ Part II Trails Covering More Advanced Features of SaCclass='ltx_ref'><span class='ltx_text ltx_ref_title'><span class='ltx_tag ltx_tag_ref'>7 </span>Treasures in the Standard Library</span></a> 
-<ul class="ltx_toclist ltx_toclist_chapter"+<ul class='ltx_toclist ltx_toclist_chapter'
-<li class="ltx_tocentry ltx_tocentry_section"><a href="#Ch7.S1title="7.1 Lesson: Benchmarking SaC Programs ‣ Chapter 7 Treasures in the Standard Library ‣ Part II Trails Covering More Advanced Features of SaCclass="ltx_ref"><span class="ltx_text ltx_ref_title"><span class="ltx_tag ltx_tag_ref">7.1 </span>Lesson: Benchmarking <span class="ltx_text ltx_font_smallcaps">SaC</span> Programs</span></a></li>+<li class='ltx_tocentry ltx_tocentry_section'><a href='#Ch7.S1title='7.1 Lesson: Benchmarking SaC Programs ‣ Chapter 7 Treasures in the Standard Library ‣ Part II Trails Covering More Advanced Features of SaCclass='ltx_ref'><span class='ltx_text ltx_ref_title'><span class='ltx_tag ltx_tag_ref'>7.1 </span>Lesson: Benchmarking <span class='ltx_text ltx_font_smallcaps'>SaC</span> Programs</span></a></li>
 </ul> </ul>
 </li> </li>
-<li class="ltx_tocentry ltx_tocentry_chapter"><a href="#Ch8title="Chapter 8 User Defined Types ‣ Part II Trails Covering More Advanced Features of SaCclass="ltx_ref"><span class="ltx_text ltx_ref_title"><span class="ltx_tag ltx_tag_ref">8 </span>User Defined Types</span></a></li> +<li class='ltx_tocentry ltx_tocentry_chapter'><a href='#Ch8title='Chapter 8 User Defined Types ‣ Part II Trails Covering More Advanced Features of SaCclass='ltx_ref'><span class='ltx_text ltx_ref_title'><span class='ltx_tag ltx_tag_ref'>8 </span>User Defined Types</span></a></li> 
-<li class="ltx_tocentry ltx_tocentry_chapter"+<li class='ltx_tocentry ltx_tocentry_chapter'
-<a href="#Ch9title="Chapter 9 Dealing with I/O and State in General ‣ Part II Trails Covering More Advanced Features of SaCclass="ltx_ref"><span class="ltx_text ltx_ref_title"><span class="ltx_tag ltx_tag_ref">9 </span>Dealing with I/O and State in General</span></a> +<a href='#Ch9title='Chapter 9 Dealing with I/O and State in General ‣ Part II Trails Covering More Advanced Features of SaCclass='ltx_ref'><span class='ltx_text ltx_ref_title'><span class='ltx_tag ltx_tag_ref'>9 </span>Dealing with I/O and State in General</span></a> 
-<ul class="ltx_toclist ltx_toclist_chapter"+<ul class='ltx_toclist ltx_toclist_chapter'
-<li class="ltx_tocentry ltx_tocentry_section"+<li class='ltx_tocentry ltx_tocentry_section'
-<a href="#Ch9.S1title="9.1 Lesson: States and Objects — the basics ‣ Chapter 9 Dealing with I/O and State in General ‣ Part II Trails Covering More Advanced Features of SaCclass="ltx_ref"><span class="ltx_text ltx_ref_title"><span class="ltx_tag ltx_tag_ref">9.1 </span>Lesson: States and Objects — the basics</span></a> +<a href='#Ch9.S1title='9.1 Lesson: States and Objects — the basics ‣ Chapter 9 Dealing with I/O and State in General ‣ Part II Trails Covering More Advanced Features of SaCclass='ltx_ref'><span class='ltx_text ltx_ref_title'><span class='ltx_tag ltx_tag_ref'>9.1 </span>Lesson: States and Objects — the basics</span></a> 
-<ul class="ltx_toclist ltx_toclist_section"+<ul class='ltx_toclist ltx_toclist_section'
-<li class="ltx_tocentry ltx_tocentry_subsection"><a href="#Ch9.S1.SS1title="9.1.1 Extending Classes ‣ 9.1 Lesson: States and Objects — the basics ‣ Chapter 9 Dealing with I/O and State in General ‣ Part II Trails Covering More Advanced Features of SaCclass="ltx_ref"><span class="ltx_text ltx_ref_title"><span class="ltx_tag ltx_tag_ref">9.1.1 </span>Extending Classes</span></a></li> +<li class='ltx_tocentry ltx_tocentry_subsection'><a href='#Ch9.S1.SS1title='9.1.1 Extending Classes ‣ 9.1 Lesson: States and Objects — the basics ‣ Chapter 9 Dealing with I/O and State in General ‣ Part II Trails Covering More Advanced Features of SaCclass='ltx_ref'><span class='ltx_text ltx_ref_title'><span class='ltx_tag ltx_tag_ref'>9.1.1 </span>Extending Classes</span></a></li> 
-<li class="ltx_tocentry ltx_tocentry_subsection"><a href="#Ch9.S1.SS2title="9.1.2 States using Classes ‣ 9.1 Lesson: States and Objects — the basics ‣ Chapter 9 Dealing with I/O and State in General ‣ Part II Trails Covering More Advanced Features of SaCclass="ltx_ref"><span class="ltx_text ltx_ref_title"><span class="ltx_tag ltx_tag_ref">9.1.2 </span>States using Classes</span></a></li> +<li class='ltx_tocentry ltx_tocentry_subsection'><a href='#Ch9.S1.SS2title='9.1.2 States using Classes ‣ 9.1 Lesson: States and Objects — the basics ‣ Chapter 9 Dealing with I/O and State in General ‣ Part II Trails Covering More Advanced Features of SaCclass='ltx_ref'><span class='ltx_text ltx_ref_title'><span class='ltx_tag ltx_tag_ref'>9.1.2 </span>States using Classes</span></a></li> 
-<li class="ltx_tocentry ltx_tocentry_subsection"><a href="#Ch9.S1.SS3title="9.1.3 Global Objects ‣ 9.1 Lesson: States and Objects — the basics ‣ Chapter 9 Dealing with I/O and State in General ‣ Part II Trails Covering More Advanced Features of SaCclass="ltx_ref"><span class="ltx_text ltx_ref_title"><span class="ltx_tag ltx_tag_ref">9.1.3 </span>Global Objects</span></a></li>+<li class='ltx_tocentry ltx_tocentry_subsection'><a href='#Ch9.S1.SS3title='9.1.3 Global Objects ‣ 9.1 Lesson: States and Objects — the basics ‣ Chapter 9 Dealing with I/O and State in General ‣ Part II Trails Covering More Advanced Features of SaCclass='ltx_ref'><span class='ltx_text ltx_ref_title'><span class='ltx_tag ltx_tag_ref'>9.1.3 </span>Global Objects</span></a></li>
 </ul> </ul>
 </li> </li>
-<li class="ltx_tocentry ltx_tocentry_section"><a href="#Ch9.S2title="9.2 Lesson: Nondeterminism through Shared State in Wihth-Loops ‣ Chapter 9 Dealing with I/O and State in General ‣ Part II Trails Covering More Advanced Features of SaCclass="ltx_ref"><span class="ltx_text ltx_ref_title"><span class="ltx_tag ltx_tag_ref">9.2 </span>Lesson: Nondeterminism through Shared State in Wihth-Loops</span></a></li>+<li class='ltx_tocentry ltx_tocentry_section'><a href='#Ch9.S2title='9.2 Lesson: Nondeterminism through Shared State in Wihth-Loops ‣ Chapter 9 Dealing with I/O and State in General ‣ Part II Trails Covering More Advanced Features of SaCclass='ltx_ref'><span class='ltx_text ltx_ref_title'><span class='ltx_tag ltx_tag_ref'>9.2 </span>Lesson: Nondeterminism through Shared State in Wihth-Loops</span></a></li>
 </ul> </ul>
 </li> </li>
-<li class="ltx_tocentry ltx_tocentry_chapter"+<li class='ltx_tocentry ltx_tocentry_chapter'
-<a href="#Ch10title="Chapter 10 Interfacing with Other Languages ‣ Part II Trails Covering More Advanced Features of SaCclass="ltx_ref"><span class="ltx_text ltx_ref_title"><span class="ltx_tag ltx_tag_ref">10 </span>Interfacing with Other Languages</span></a> +<a href='#Ch10title='Chapter 10 Interfacing with Other Languages ‣ Part II Trails Covering More Advanced Features of SaCclass='ltx_ref'><span class='ltx_text ltx_ref_title'><span class='ltx_tag ltx_tag_ref'>10 </span>Interfacing with Other Languages</span></a> 
-<ul class="ltx_toclist ltx_toclist_chapter"+<ul class='ltx_toclist ltx_toclist_chapter'
-<li class="ltx_tocentry ltx_tocentry_section"+<li class='ltx_tocentry ltx_tocentry_section'
-<a href="#Ch10.S1title="10.1 Lesson: Calling C from SaC ‣ Chapter 10 Interfacing with Other Languages ‣ Part II Trails Covering More Advanced Features of SaCclass="ltx_ref"><span class="ltx_text ltx_ref_title"><span class="ltx_tag ltx_tag_ref">10.1 </span>Lesson: Calling <span class="ltx_text ltx_font_smallcaps">C</span> from <span class="ltx_text ltx_font_smallcaps">SaC</span></span></a> +<a href='#Ch10.S1title='10.1 Lesson: Calling C from SaC ‣ Chapter 10 Interfacing with Other Languages ‣ Part II Trails Covering More Advanced Features of SaCclass='ltx_ref'><span class='ltx_text ltx_ref_title'><span class='ltx_tag ltx_tag_ref'>10.1 </span>Lesson: Calling <span class='ltx_text ltx_font_smallcaps'>C</span> from <span class='ltx_text ltx_font_smallcaps'>SaC</span></span></a> 
-<ul class="ltx_toclist ltx_toclist_section"+<ul class='ltx_toclist ltx_toclist_section'
-<li class="ltx_tocentry ltx_tocentry_subsection"><a href="#Ch10.S1.SS1title="10.1.1 Using C in the Small ‣ 10.1 Lesson: Calling C from SaC ‣ Chapter 10 Interfacing with Other Languages ‣ Part II Trails Covering More Advanced Features of SaCclass="ltx_ref"><span class="ltx_text ltx_ref_title"><span class="ltx_tag ltx_tag_ref">10.1.1 </span>Using C in Small</span></a></li> +<li class='ltx_tocentry ltx_tocentry_subsection'><a href='#Ch10.S1.SS1title='10.1.1 Using C in the Small ‣ 10.1 Lesson: Calling C from SaC ‣ Chapter 10 Interfacing with Other Languages ‣ Part II Trails Covering More Advanced Features of SaCclass='ltx_ref'><span class='ltx_text ltx_ref_title'><span class='ltx_tag ltx_tag_ref'>10.1.1 </span>Using C in Small</span></a></li> 
-<li class="ltx_tocentry ltx_tocentry_subsection"><a href="#Ch10.S1.SS2title="10.1.2 Stateful C functions ‣ 10.1 Lesson: Calling C from SaC ‣ Chapter 10 Interfacing with Other Languages ‣ Part II Trails Covering More Advanced Features of SaCclass="ltx_ref"><span class="ltx_text ltx_ref_title"><span class="ltx_tag ltx_tag_ref">10.1.2 </span>Stateful <span class="ltx_text ltx_font_smallcaps">C</span> functions</span></a></li> +<li class='ltx_tocentry ltx_tocentry_subsection'><a href='#Ch10.S1.SS2title='10.1.2 Stateful C functions ‣ 10.1 Lesson: Calling C from SaC ‣ Chapter 10 Interfacing with Other Languages ‣ Part II Trails Covering More Advanced Features of SaCclass='ltx_ref'><span class='ltx_text ltx_ref_title'><span class='ltx_tag ltx_tag_ref'>10.1.2 </span>Stateful <span class='ltx_text ltx_font_smallcaps'>C</span> functions</span></a></li> 
-<li class="ltx_tocentry ltx_tocentry_subsection"><a href="#Ch10.S1.SS3title="10.1.3 Using pragma directives ‣ 10.1 Lesson: Calling C from SaC ‣ Chapter 10 Interfacing with Other Languages ‣ Part II Trails Covering More Advanced Features of SaCclass="ltx_ref"><span class="ltx_text ltx_ref_title"><span class="ltx_tag ltx_tag_ref">10.1.3 </span>Using pragma directives</span></a></li> +<li class='ltx_tocentry ltx_tocentry_subsection'><a href='#Ch10.S1.SS3title='10.1.3 Using pragma directives ‣ 10.1 Lesson: Calling C from SaC ‣ Chapter 10 Interfacing with Other Languages ‣ Part II Trails Covering More Advanced Features of SaCclass='ltx_ref'><span class='ltx_text ltx_ref_title'><span class='ltx_tag ltx_tag_ref'>10.1.3 </span>Using pragma directives</span></a></li> 
-<li class="ltx_tocentry ltx_tocentry_subsection"><a href="#Ch10.S1.SS4title="10.1.4 Example TermFile ‣ 10.1 Lesson: Calling C from SaC ‣ Chapter 10 Interfacing with Other Languages ‣ Part II Trails Covering More Advanced Features of SaCclass="ltx_ref"><span class="ltx_text ltx_ref_title"><span class="ltx_tag ltx_tag_ref">10.1.4 </span>Example TermFile</span></a></li>+<li class='ltx_tocentry ltx_tocentry_subsection'><a href='#Ch10.S1.SS4title='10.1.4 Example TermFile ‣ 10.1 Lesson: Calling C from SaC ‣ Chapter 10 Interfacing with Other Languages ‣ Part II Trails Covering More Advanced Features of SaCclass='ltx_ref'><span class='ltx_text ltx_ref_title'><span class='ltx_tag ltx_tag_ref'>10.1.4 </span>Example TermFile</span></a></li>
 </ul> </ul>
 </li> </li>
-<li class="ltx_tocentry ltx_tocentry_section"><a href="#Ch10.S2title="10.2 Lesson: Using SaC libraries from C ‣ Chapter 10 Interfacing with Other Languages ‣ Part II Trails Covering More Advanced Features of SaCclass="ltx_ref"><span class="ltx_text ltx_ref_title"><span class="ltx_tag ltx_tag_ref">10.2 </span>Lesson: Using <span class="ltx_text ltx_font_smallcaps">SaC</span> libraries from <span class="ltx_text ltx_font_smallcaps">C</span></span></a></li> +<li class='ltx_tocentry ltx_tocentry_section'><a href='#Ch10.S2title='10.2 Lesson: Using SaC libraries from C ‣ Chapter 10 Interfacing with Other Languages ‣ Part II Trails Covering More Advanced Features of SaCclass='ltx_ref'><span class='ltx_text ltx_ref_title'><span class='ltx_tag ltx_tag_ref'>10.2 </span>Lesson: Using <span class='ltx_text ltx_font_smallcaps'>SaC</span> libraries from <span class='ltx_text ltx_font_smallcaps'>C</span></span></a></li> 
-<li class="ltx_tocentry ltx_tocentry_section"><a href="#Ch10.S3title="10.3 Lesson: Using SaC libraries from C++ ‣ Chapter 10 Interfacing with Other Languages ‣ Part II Trails Covering More Advanced Features of SaCclass="ltx_ref"><span class="ltx_text ltx_ref_title"><span class="ltx_tag ltx_tag_ref">10.3 </span>Lesson: Using <span class="ltx_text ltx_font_smallcaps">SaC</span> libraries from <span class="ltx_text ltx_font_smallcaps">C++</span></span></a></li> +<li class='ltx_tocentry ltx_tocentry_section'><a href='#Ch10.S3title='10.3 Lesson: Using SaC libraries from C++ ‣ Chapter 10 Interfacing with Other Languages ‣ Part II Trails Covering More Advanced Features of SaCclass='ltx_ref'><span class='ltx_text ltx_ref_title'><span class='ltx_tag ltx_tag_ref'>10.3 </span>Lesson: Using <span class='ltx_text ltx_font_smallcaps'>SaC</span> libraries from <span class='ltx_text ltx_font_smallcaps'>C++</span></span></a></li> 
-<li class="ltx_tocentry ltx_tocentry_section"><a href="#Ch10.S4title="10.4 Lesson: Using SaC libraries from Fortran ‣ Chapter 10 Interfacing with Other Languages ‣ Part II Trails Covering More Advanced Features of SaCclass="ltx_ref"><span class="ltx_text ltx_ref_title"><span class="ltx_tag ltx_tag_ref">10.4 </span>Lesson: Using <span class="ltx_text ltx_font_smallcaps">SaC</span> libraries from <span class="ltx_text ltx_font_smallcaps">Fortran</span></span></a></li>+<li class='ltx_tocentry ltx_tocentry_section'><a href='#Ch10.S4title='10.4 Lesson: Using SaC libraries from Fortran ‣ Chapter 10 Interfacing with Other Languages ‣ Part II Trails Covering More Advanced Features of SaCclass='ltx_ref'><span class='ltx_text ltx_ref_title'><span class='ltx_tag ltx_tag_ref'>10.4 </span>Lesson: Using <span class='ltx_text ltx_font_smallcaps'>SaC</span> libraries from <span class='ltx_text ltx_font_smallcaps'>Fortran</span></span></a></li>
 </ul> </ul>
 </li> </li>
Line 170: Line 769:
 </ul> </ul>
 </div> </div>
-<section id="Pt1class="ltx_part"+<section id='Pt1class='ltx_part'
-<h2 class="ltx_title ltx_title_part"+<h2 class='ltx_title ltx_title_part'
-<span class="ltx_tag ltx_tag_part">Part I </span>Trails Covering the Basics of <span class="ltx_text ltx_font_smallcaps">SaC</span>+<span class='ltx_tag ltx_tag_part'>Part I </span>Trails Covering the Basics of <span class='ltx_text ltx_font_smallcaps'>SaC</span>
 </h2> </h2>
  
-<section id="Ch1class="ltx_chapter"+<section id='Ch1class='ltx_chapter'
-<h3 class="ltx_title ltx_title_chapter"+<h3 class='ltx_title ltx_title_chapter'
-<span class="ltx_tag ltx_tag_chapter">Chapter 1 </span>Running the first program</h3>+<span class='ltx_tag ltx_tag_chapter'>Chapter 1 </span>Running the first program</h3>
  
-<div id="Ch1.p1class="ltx_para"+<div id='Ch1.p1class='ltx_para'
-<p class="ltx_p">The following instructions will help you write your first <span class="ltx_text ltx_font_smallcaps">SaC</span> program.</p>+<p class='ltx_p'>The following instructions will help you write your first <span class='ltx_text ltx_font_smallcaps'>SaC</span> program.</p>
 </div> </div>
-<section id="Ch1.S1class="ltx_section"+<section id='Ch1.S1class='ltx_section'
-<h4 class="ltx_title ltx_title_section"+<h4 class='ltx_title ltx_title_section'
-<span class="ltx_tag ltx_tag_section">1.1 </span>A Checklist</h4>+<span class='ltx_tag ltx_tag_section'>1.1 </span>A Checklist</h4>
  
-<div id="Ch1.S1.p1class="ltx_para"+<div id='Ch1.S1.p1class='ltx_para'
-<p class="ltx_p">To successfully write and run your first <span class="ltx_text ltx_font_smallcaps">SaC</span> program, you will need:</p> +<p class='ltx_p'>To successfully write and run your first <span class='ltx_text ltx_font_smallcaps'>SaC</span> program, you will need:</p> 
-<ul id="Ch1.I1class="ltx_itemize"+<ul id='Ch1.I1class='ltx_itemize'
-<li id="Ch1.I1.i1class="ltx_itemstyle="list-style-type:none;"+<li id='Ch1.I1.i1class='ltx_itemstyle='list-style-type:none;'
-<span class="ltx_tag ltx_tag_itemize">•</span>  +<span class='ltx_tag ltx_tag_itemize'>•</span>  
-<div id="Ch1.I1.i1.p1class="ltx_para"+<div id='Ch1.I1.i1.p1class='ltx_para'
-<p class="ltx_p">An <span class="ltx_text ltx_font_bold">ANSI C compiler</span>, such as <span class="ltx_text ltx_font_typewriter">gcc</span>. Though not needed directly, +<p class='ltx_p'>An <span class='ltx_text ltx_font_bold'>ANSI C compiler</span>, such as <span class='ltx_text ltx_font_typewriter'>gcc</span>. Though not needed directly, 
-the <span class="ltx_text ltx_font_smallcaps">SaC</span> compiler relies on it.</p>+the <span class='ltx_text ltx_font_smallcaps'>SaC</span> compiler relies on it.</p>
 </div> </div>
 </li> </li>
-<li id="Ch1.I1.i2class="ltx_itemstyle="list-style-type:none;"+<li id='Ch1.I1.i2class='ltx_itemstyle='list-style-type:none;'
-<span class="ltx_tag ltx_tag_itemize">•</span>  +<span class='ltx_tag ltx_tag_itemize'>•</span>  
-<div id="Ch1.I1.i2.p1class="ltx_para"+<div id='Ch1.I1.i2.p1class='ltx_para'
-<p class="ltx_p">The <span class="ltx_text ltx_font_bold">SaC compiler</span> <span class="ltx_text ltx_font_typewriter">sac2c</span>. It can be downloaded at +<p class='ltx_p'>The <span class='ltx_text ltx_font_bold'>SaC compiler</span> <span class='ltx_text ltx_font_typewriter'>sac2c</span>. It can be downloaded at 
-<a href="http://www.sac-home.orgtitle="" class="ltx_ref ltx_url ltx_font_typewriter">http://www.sac-home.org</a>; see instructions in the Download+<a href='http://www.sac-home.orgtitle='' class='ltx_ref ltx_url ltx_font_typewriter'>http://www.sac-home.org</a>; see instructions in the Download
 section.</p> section.</p>
 </div> </div>
 </li> </li>
-<li id="Ch1.I1.i3class="ltx_itemstyle="list-style-type:none;"+<li id='Ch1.I1.i3class='ltx_itemstyle='list-style-type:none;'
-<span class="ltx_tag ltx_tag_itemize">•</span>  +<span class='ltx_tag ltx_tag_itemize'>•</span>  
-<div id="Ch1.I1.i3.p1class="ltx_para"+<div id='Ch1.I1.i3.p1class='ltx_para'
-<p class="ltx_p">The <span class="ltx_text ltx_font_bold">SaC standard library</span> can be downloaded from GitHub +<p class='ltx_p'>The <span class='ltx_text ltx_font_bold'>SaC standard library</span> can be downloaded from GitHub 
-<a href="http://www.github.com/SacBase/stdlib-coretitle="" class="ltx_ref ltx_url ltx_font_typewriter">http://www.github.com/SacBase/stdlib-core</a>. The process+<a href='http://www.github.com/SacBase/stdlib-coretitle='' class='ltx_ref ltx_url ltx_font_typewriter'>http://www.github.com/SacBase/stdlib-core</a>. The process
 of installation is described in README.md file of the stdlib of installation is described in README.md file of the stdlib
 repository.</p> repository.</p>
 </div> </div>
 </li> </li>
-<li id="Ch1.I1.i4class="ltx_itemstyle="list-style-type:none;"+<li id='Ch1.I1.i4class='ltx_itemstyle='list-style-type:none;'
-<span class="ltx_tag ltx_tag_itemize">•</span>  +<span class='ltx_tag ltx_tag_itemize'>•</span>  
-<div id="Ch1.I1.i4.p1class="ltx_para"+<div id='Ch1.I1.i4.p1class='ltx_para'
-<p class="ltx_p">Your favorite <span class="ltx_text ltx_font_bold">text editor</span>, such as <span class="ltx_text ltx_font_typewriter">vi</span> or <span class="ltx_text ltx_font_typewriter">emacs</span>.</p>+<p class='ltx_p'>Your favorite <span class='ltx_text ltx_font_bold'>text editor</span>, such as <span class='ltx_text ltx_font_typewriter'>vi</span> or <span class='ltx_text ltx_font_typewriter'>emacs</span>.</p>
 </div> </div>
 </li> </li>
Line 222: Line 821:
 </div> </div>
 </section> </section>
-<section id="Ch1.S2class="ltx_section"+<section id='Ch1.S2class='ltx_section'
-<h4 class="ltx_title ltx_title_section"+<h4 class='ltx_title ltx_title_section'
-<span class="ltx_tag ltx_tag_section">1.2 </span>Create your first <span class="ltx_text ltx_font_smallcaps">SaC</span> Source File</h4>+<span class='ltx_tag ltx_tag_section'>1.2 </span>Create your first <span class='ltx_text ltx_font_smallcaps'>SaC</span> Source File</h4>
  
-<div id="Ch1.S2.p1class="ltx_para"+<div id='Ch1.S2.p1class='ltx_para'
-<p class="ltx_p">Start your editor and type the following program:</p>+<p class='ltx_p'>Start your editor and type the following program:</p>
 </div> </div>
-<figure id="LST1class="ltx_float ltx_lstlisting ltx_role_listing"+<figure id='LST1class='ltx_float ltx_lstlisting ltx_role_listing'
-<figcaption class="ltx_caption"><span class="ltx_tag ltx_tag_float">Listing 1: </span>Hello World</figcaption> +<figcaption class='ltx_caption'><span class='ltx_tag ltx_tag_float'>Listing 1: </span>Hello World</figcaption> 
-<div class="ltx_listing ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_listing"+<div class='ltx_listing ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_listing'
-<div class="ltx_listing_data"><a href="data:text/plain;base64,dXNlIFN0ZElPOiBhbGw7CnVzZSBBcnJheTogYWxsOwoKaW50IG1haW4oKQp7CiAgcHJpbnRmKCJI%0AZWxsbyBXb3JsZCFcbiIpOwogIHJldHVybiAwOwp9%0A">⬇</a></div> +<div class='ltx_listing_data'><a href='data:text/plain;base64,dXNlIFN0ZElPOiBhbGw7CnVzZSBBcnJheTogYWxsOwoKaW50IG1haW4oKQp7CiAgcHJpbnRmKCJI%0AZWxsbyBXb3JsZCFcbiIpOwogIHJldHVybiAwOwp9%0A'>⬇</a></div> 
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">1</span></span><span class="ltx_text ltx_lst_keyword ltx_font_bold">use</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">StdIO</span>:<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">all</span>;+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>1</span></span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>use</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>StdIO</span>:<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>all</span>;
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">2</span></span><span class="ltx_text ltx_lst_keyword ltx_font_bold">use</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">Array</span>:<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">all</span>;+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>2</span></span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>use</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>Array</span>:<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>all</span>;
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">3</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>3</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">4</span></span><span class="ltx_text ltx_lst_keyword ltx_font_bold">int</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">main</span>()+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>4</span></span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>int</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>main</span>()
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">5</span></span>{+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>5</span></span>{
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">6</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">printf</span>(<span class="ltx_text ltx_lst_string">”Hello<span class="ltx_text ltx_lst_space"> </span>World!\n”</span>);+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>6</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>printf</span>(<span class='ltx_text ltx_lst_string'>”Hello<span class='ltx_text ltx_lst_space'> </span>World!\n”</span>);
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">7</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_keyword ltx_font_bold">return</span><span class="ltx_text ltx_lst_space"> </span>0;+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>7</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>return</span><span class='ltx_text ltx_lst_space'> </span>0;
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">8</span></span>}+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>8</span></span>}
 </div> </div>
 </div> </div>
 </figure> </figure>
-<div id="Ch1.S2.p2class="ltx_para"+<div id='Ch1.S2.p2class='ltx_para'
-<p class="ltx_p">As you can see, it has a strong resemblance to C. The major difference+<p class='ltx_p'>As you can see, it has a strong resemblance to C. The major difference
 are the module use declarations at the beginning of the program. are the module use declarations at the beginning of the program.
 For now, it suffices to keep in mind, that these two use declarations for most For now, it suffices to keep in mind, that these two use declarations for most
 experiments will do the job.</p> experiments will do the job.</p>
 </div> </div>
-<div id="Ch1.S2.p3class="ltx_para"+<div id='Ch1.S2.p3class='ltx_para'
-<p class="ltx_p">In order to proceed, save this program into a file named <span class="ltx_text ltx_font_typewriter">world.sac</span>.</p>+<p class='ltx_p'>In order to proceed, save this program into a file named <span class='ltx_text ltx_font_typewriter'>world.sac</span>.</p>
 </div> </div>
 </section> </section>
-<section id="Ch1.S3class="ltx_section"+<section id='Ch1.S3class='ltx_section'
-<h4 class="ltx_title ltx_title_section"+<h4 class='ltx_title ltx_title_section'
-<span class="ltx_tag ltx_tag_section">1.3 </span>Compile the Source File and Run the Program</h4>+<span class='ltx_tag ltx_tag_section'>1.3 </span>Compile the Source File and Run the Program</h4>
  
-<div id="Ch1.S3.p1class="ltx_para"+<div id='Ch1.S3.p1class='ltx_para'
-<p class="ltx_p">The <span class="ltx_text ltx_font_smallcaps">SaC</span> compiler invocation is similar to the standard invocation of +<p class='ltx_p'>The <span class='ltx_text ltx_font_smallcaps'>SaC</span> compiler invocation is similar to the standard invocation of 
-<span class="ltx_text ltx_font_smallcaps">C</span> compilers. +<span class='ltx_text ltx_font_smallcaps'>C</span> compilers. 
-A typical shell session for compiling <span class="ltx_text ltx_font_typewriter">world.sac</span> could be:</p>+A typical shell session for compiling <span class='ltx_text ltx_font_typewriter'>world.sac</span> could be:</p>
 </div> </div>
-<figure id="LST2class="ltx_float ltx_lstlisting ltx_role_listing"+<figure id='LST2class='ltx_float ltx_lstlisting ltx_role_listing'
-<figcaption class="ltx_caption"><span class="ltx_tag ltx_tag_float">Listing 2: </span>Typical shell session</figcaption> +<figcaption class='ltx_caption'><span class='ltx_tag ltx_tag_float'>Listing 2: </span>Typical shell session</figcaption> 
-<div class="ltx_listing ltx_lst_language_bash ltx_lstlisting ltx_listing"+<div class='ltx_listing ltx_lst_language_bash ltx_lstlisting ltx_listing'
-<div class="ltx_listing_data"><a href="data:text/plain;base64,JCBjZCAvaG9tZS9zYnMvc2FjLwokIGxzCndvcmxkLnNhYwokIHNhYzJjICB3b3JsZC5zYWMKJCBs%0AcwphLm91dCAgICAgIGEub3V0LmMgICAgd29ybGQuc2FjCiQgYS5vdXQKSGVsbG8gV29ybGQh%0A">⬇</a></div> +<div class='ltx_listing_data'><a href='data:text/plain;base64,JCBjZCAvaG9tZS9zYnMvc2FjLwokIGxzCndvcmxkLnNhYwokIHNhYzJjICB3b3JsZC5zYWMKJCBs%0AcwphLm91dCAgICAgIGEub3V0LmMgICAgd29ybGQuc2FjCiQgYS5vdXQKSGVsbG8gV29ybGQh%0A'>⬇</a></div> 
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_text ltx_lst_identifier">$</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_keyword ltx_font_bold">cd</span><span class="ltx_text ltx_lst_space"> </span>/<span class="ltx_text ltx_lst_identifier">home</span>/<span class="ltx_text ltx_lst_identifier">sbs</span>/<span class="ltx_text ltx_lst_identifier">sac</span>/+<span class='ltx_text ltx_lst_identifier'>$</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>cd</span><span class='ltx_text ltx_lst_space'> </span>/<span class='ltx_text ltx_lst_identifier'>home</span>/<span class='ltx_text ltx_lst_identifier'>sbs</span>/<span class='ltx_text ltx_lst_identifier'>sac</span>/
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_text ltx_lst_identifier">$</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">ls</span>+<span class='ltx_text ltx_lst_identifier'>$</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>ls</span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_text ltx_lst_identifier">world</span>.<span class="ltx_text ltx_lst_identifier">sac</span>+<span class='ltx_text ltx_lst_identifier'>world</span>.<span class='ltx_text ltx_lst_identifier'>sac</span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_text ltx_lst_identifier">$</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">sac2c</span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">world</span>.<span class="ltx_text ltx_lst_identifier">sac</span>+<span class='ltx_text ltx_lst_identifier'>$</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>sac2c</span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>world</span>.<span class='ltx_text ltx_lst_identifier'>sac</span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_text ltx_lst_identifier">$</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">ls</span>+<span class='ltx_text ltx_lst_identifier'>$</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>ls</span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_text ltx_lst_identifier">a</span>.<span class="ltx_text ltx_lst_identifier">out</span><span class="ltx_text ltx_lst_space">      </span><span class="ltx_text ltx_lst_identifier">a</span>.<span class="ltx_text ltx_lst_identifier">out</span>.<span class="ltx_text ltx_lst_identifier">c</span><span class="ltx_text ltx_lst_space">    </span><span class="ltx_text ltx_lst_identifier">world</span>.<span class="ltx_text ltx_lst_identifier">sac</span>+<span class='ltx_text ltx_lst_identifier'>a</span>.<span class='ltx_text ltx_lst_identifier'>out</span><span class='ltx_text ltx_lst_space'>      </span><span class='ltx_text ltx_lst_identifier'>a</span>.<span class='ltx_text ltx_lst_identifier'>out</span>.<span class='ltx_text ltx_lst_identifier'>c</span><span class='ltx_text ltx_lst_space'>    </span><span class='ltx_text ltx_lst_identifier'>world</span>.<span class='ltx_text ltx_lst_identifier'>sac</span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_text ltx_lst_identifier">$</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">a</span>.<span class="ltx_text ltx_lst_identifier">out</span>+<span class='ltx_text ltx_lst_identifier'>$</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>a</span>.<span class='ltx_text ltx_lst_identifier'>out</span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_text ltx_lst_identifier">Hello</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">World</span>!+<span class='ltx_text ltx_lst_identifier'>Hello</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>World</span>!
 </div> </div>
 </div> </div>
 </figure> </figure>
-<div id="Ch1.S3.p2class="ltx_para"+<div id='Ch1.S3.p2class='ltx_para'
-<p class="ltx_p">The compilation process consists of two steps. +<p class='ltx_p'>The compilation process consists of two steps. 
-First, the <span class="ltx_text ltx_font_smallcaps">SaC</span> compiler generates a <span class="ltx_text ltx_font_smallcaps">C</span> file, which then is compiled +First, the <span class='ltx_text ltx_font_smallcaps'>SaC</span> compiler generates a <span class='ltx_text ltx_font_smallcaps'>C</span> file, which then is compiled 
-into target code by utilizing the system’s <span class="ltx_text ltx_font_smallcaps">C</span> compiler. +into target code by utilizing the system’s <span class='ltx_text ltx_font_smallcaps'>C</span> compiler. 
-If no target file name is specified, the intermediate <span class="ltx_text ltx_font_smallcaps">C</span> file is named +If no target file name is specified, the intermediate <span class='ltx_text ltx_font_smallcaps'>C</span> file is named 
-<span class="ltx_text ltx_font_typewriter">a.out.c</span> so that the subsequent invocation of the <span class="ltx_text ltx_font_smallcaps">C</span> compiler +<span class='ltx_text ltx_font_typewriter'>a.out.c</span> so that the subsequent invocation of the <span class='ltx_text ltx_font_smallcaps'>C</span> compiler 
-creates an executable named <span class="ltx_text ltx_font_typewriter">a.out</span>.</p>+creates an executable named <span class='ltx_text ltx_font_typewriter'>a.out</span>.</p>
 </div> </div>
-<div id="Ch1.S3.p3class="ltx_para"+<div id='Ch1.S3.p3class='ltx_para'
-<p class="ltx_p">In the same way the default target name <span class="ltx_text ltx_font_typewriter">a.out</span> is borrowed from +<p class='ltx_p'>In the same way the default target name <span class='ltx_text ltx_font_typewriter'>a.out</span> is borrowed from 
-standard <span class="ltx_text ltx_font_smallcaps">C</span> compilers, the <span class="ltx_text ltx_font_typewriter">-o</span> option for specifying target names+standard <span class='ltx_text ltx_font_smallcaps'>C</span> compilers, the <span class='ltx_text ltx_font_typewriter'>-o</span> option for specifying target names
 is adopted as well. is adopted as well.
-For example, <span class="ltx_text ltx_font_typewriter">sac2c -o world world.sac</span> results +For example, <span class='ltx_text ltx_font_typewriter'>sac2c -o world world.sac</span> results 
-in files <span class="ltx_text ltx_font_typewriter">world.c</span> and <span class="ltx_text ltx_font_typewriter">world</span>.</p>+in files <span class='ltx_text ltx_font_typewriter'>world.c</span> and <span class='ltx_text ltx_font_typewriter'>world</span>.</p>
 </div> </div>
-<div id="Ch1.S3.p4class="ltx_para"+<div id='Ch1.S3.p4class='ltx_para'
-<p class="ltx_p">Note here, that the compiled program, depending on the operating system,+<p class='ltx_p'>Note here, that the compiled program, depending on the operating system,
 is linked either statically or dynamically. is linked either statically or dynamically.
 However, it does not require any further linking or interpretation.</p> However, it does not require any further linking or interpretation.</p>
Line 330: Line 929:
 </section> </section>
 </section> </section>
-<section id="Ch2class="ltx_chapter"+<section id='Ch2class='ltx_chapter'
-<h3 class="ltx_title ltx_title_chapter"+<h3 class='ltx_title ltx_title_chapter'
-<span class="ltx_tag ltx_tag_chapter">Chapter 2 </span>Array Programming Basics</h3>+<span class='ltx_tag ltx_tag_chapter'>Chapter 2 </span>Array Programming Basics</h3>
  
-<div id="Ch2.p1class="ltx_para"+<div id='Ch2.p1class='ltx_para'
-<p class="ltx_p">This trail gives an introduction to the basic concepts of array programming +<p class='ltx_p'>This trail gives an introduction to the basic concepts of array programming 
-in <span class="ltx_text ltx_font_smallcaps">SaC</span>+in <span class='ltx_text ltx_font_smallcaps'>SaC</span>
-It consists of two lessons: <span class="ltx_text ltx_font_italic">Arrays as Data</span> and <span class="ltx_text ltx_font_italic">Shape-Invariant Programming</span>+It consists of two lessons: <span class='ltx_text ltx_font_italic'>Arrays as Data</span> and <span class='ltx_text ltx_font_italic'>Shape-Invariant Programming</span>
-In the former lesson, the major differences between arrays in <span class="ltx_text ltx_font_smallcaps">SaC</span> and arrays+In the former lesson, the major differences between arrays in <span class='ltx_text ltx_font_smallcaps'>SaC</span> and arrays
 in more mainstream languages are explained. in more mainstream languages are explained.
-The lesson <span class="ltx_text ltx_font_italic">Shape-Invariant Programming</span> gives an introduction into the most +The lesson <span class='ltx_text ltx_font_italic'>Shape-Invariant Programming</span> gives an introduction into the most 
-important array operations available in <span class="ltx_text ltx_font_smallcaps">SaC</span>.+important array operations available in <span class='ltx_text ltx_font_smallcaps'>SaC</span>.
 Based on these operations, several small examples demonstrate how more complex Based on these operations, several small examples demonstrate how more complex
 array operations can be constructed by simply combining the basic ones.</p> array operations can be constructed by simply combining the basic ones.</p>
 </div> </div>
-<section id="Ch2.S1class="ltx_section"+<section id='Ch2.S1class='ltx_section'
-<h4 class="ltx_title ltx_title_section"+<h4 class='ltx_title ltx_title_section'
-<span class="ltx_tag ltx_tag_section">2.1 </span>Lesson 1: Arrays as Data</h4>+<span class='ltx_tag ltx_tag_section'>2.1 </span>Lesson 1: Arrays as Data</h4>
  
-<div id="Ch2.S1.p1class="ltx_para"+<div id='Ch2.S1.p1class='ltx_para'
-<p class="ltx_p">In <span class="ltx_text ltx_font_smallcaps">SaC</span>, arrays are the only data structures available. Even scalar values+<p class='ltx_p'>In <span class='ltx_text ltx_font_smallcaps'>SaC</span>, arrays are the only data structures available. Even scalar values
 are considered arrays. are considered arrays.
-Each array is represented by two vectors, a so-called <em class="ltx_emph">shape vector</em> +Each array is represented by two vectors, a so-called <em class='ltx_emph'>shape vector</em> 
-and a <em class="ltx_emph">data vector</em>+and a <em class='ltx_emph'>data vector</em>
-An array’s shape vector defines its <em class="ltx_emph">shape</em>, i.e. its extent within each axis, +An array’s shape vector defines its <em class='ltx_emph'>shape</em>, i.e. its extent within each axis, 
-and its <em class="ltx_emph">dimensionality</em> (or <em class="ltx_emph">rank</em>), which is given implicitly by the shape vector’s+and its <em class='ltx_emph'>dimensionality</em> (or <em class='ltx_emph'>rank</em>), which is given implicitly by the shape vector’s
 length.</p> length.</p>
 </div> </div>
-<div id="Ch2.S1.p2class="ltx_para"+<div id='Ch2.S1.p2class='ltx_para'
-<p class="ltx_p">The section on <em class="ltx_emph">Defining Arrays</em> explains how arrays of various dimensionality +<p class='ltx_p'>The section on <em class='ltx_emph'>Defining Arrays</em> explains how arrays of various dimensionality 
-can be defined in <span class="ltx_text ltx_font_smallcaps">SaC</span>, and how they can be generated via nesting. +can be defined in <span class='ltx_text ltx_font_smallcaps'>SaC</span>, and how they can be generated via nesting. 
-Furthermore, some elementary notation such as <em class="ltx_emph">scalars</em>, <em class="ltx_emph">vectors</em>, and +Furthermore, some elementary notation such as <em class='ltx_emph'>scalars</em>, <em class='ltx_emph'>vectors</em>, and 
-<em class="ltx_emph">matrices</em> is defined.</p>+<em class='ltx_emph'>matrices</em> is defined.</p>
 </div> </div>
-<div id="Ch2.S1.p3class="ltx_para"+<div id='Ch2.S1.p3class='ltx_para'
-<p class="ltx_p">The section on <em class="ltx_emph">Arrays and Variables</em> discusses the purely functional +<p class='ltx_p'>The section on <em class='ltx_emph'>Arrays and Variables</em> discusses the purely functional 
-array model used in <span class="ltx_text ltx_font_smallcaps">SaC</span>.</p>+array model used in <span class='ltx_text ltx_font_smallcaps'>SaC</span>.</p>
 </div> </div>
-<section id="Ch2.S1.SS1class="ltx_subsection"+<section id='Ch2.S1.SS1class='ltx_subsection'
-<h5 class="ltx_title ltx_title_subsection"+<h5 class='ltx_title ltx_title_subsection'
-<span class="ltx_tag ltx_tag_subsection">2.1.1 </span>Defining Arrays</h5>+<span class='ltx_tag ltx_tag_subsection'>2.1.1 </span>Defining Arrays</h5>
  
-<div id="Ch2.S1.SS1.p1class="ltx_para"+<div id='Ch2.S1.SS1.p1class='ltx_para'
-<p class="ltx_p">In this section, several means for specifying arrays are explained.</p>+<p class='ltx_p'>In this section, several means for specifying arrays are explained.</p>
 </div> </div>
-<div id="Ch2.S1.SS1.p2class="ltx_para"+<div id='Ch2.S1.SS1.p2class='ltx_para'
-<p class="ltx_p">In principle, all arrays in <span class="ltx_text ltx_font_smallcaps">SaC</span> can be defined by using the <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">reshape</span> operation. +<p class='ltx_p'>In principle, all arrays in <span class='ltx_text ltx_font_smallcaps'>SaC</span> can be defined by using the <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>reshape</span> operation. 
-<span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">reshape</span> expects two operands, a shape vector and a data vector, both of which+<span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>reshape</span> expects two operands, a shape vector and a data vector, both of which
 are specified as comma separated lists of numbers enclosed in square brackets.</p> are specified as comma separated lists of numbers enclosed in square brackets.</p>
 </div> </div>
-<div id="Ch2.S1.SS1.p3class="ltx_para"+<div id='Ch2.S1.SS1.p3class='ltx_para'
-<p class="ltx_p">To get started, try the following program:</p>+<p class='ltx_p'>To get started, try the following program:</p>
 </div> </div>
-<figure id="LST3class="ltx_float ltx_lstlisting ltx_role_listing"+<figure id='LST3class='ltx_float ltx_lstlisting ltx_role_listing'
-<figcaption class="ltx_caption"><span class="ltx_tag ltx_tag_float">Listing 3: </span>Defining Arrays I</figcaption> +<figcaption class='ltx_caption'><span class='ltx_tag ltx_tag_float'>Listing 3: </span>Defining Arrays I</figcaption> 
-<div class="ltx_listing ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_listing"+<div class='ltx_listing ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_listing'
-<div class="ltx_listing_data"><a href="data:text/plain;base64,dXNlIFN0ZElPOiBhbGw7CnVzZSBBcnJheTogYWxsOwoKaW50IG1haW4oKQp7CiAgcHJpbnQocmVz%0AaGFwZShbNV0sIFsxLDIsMyw0LDVdKSk7CiAgcHJpbnQocmVzaGFwZShbMywyXSwgWzEsMiwzLDQs%0ANSw2XSkpOwogIHByaW50KHJlc2hhcGUoWzMsMiwxXSwgWzEsMiwzLDQsNSw2XSkpOwogIHJldHVy%0AbiAwOwp9%0A">⬇</a></div> +<div class='ltx_listing_data'><a href='data:text/plain;base64,dXNlIFN0ZElPOiBhbGw7CnVzZSBBcnJheTogYWxsOwoKaW50IG1haW4oKQp7CiAgcHJpbnQocmVz%0AaGFwZShbNV0sIFsxLDIsMyw0LDVdKSk7CiAgcHJpbnQocmVzaGFwZShbMywyXSwgWzEsMiwzLDQs%0ANSw2XSkpOwogIHByaW50KHJlc2hhcGUoWzMsMiwxXSwgWzEsMiwzLDQsNSw2XSkpOwogIHJldHVy%0AbiAwOwp9%0A'>⬇</a></div> 
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">1</span></span><span class="ltx_text ltx_lst_keyword ltx_font_bold">use</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">StdIO</span>:<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">all</span>;+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>1</span></span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>use</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>StdIO</span>:<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>all</span>;
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">2</span></span><span class="ltx_text ltx_lst_keyword ltx_font_bold">use</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">Array</span>:<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">all</span>;+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>2</span></span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>use</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>Array</span>:<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>all</span>;
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">3</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>3</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">4</span></span><span class="ltx_text ltx_lst_keyword ltx_font_bold">int</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">main</span>()+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>4</span></span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>int</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>main</span>()
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">5</span></span>{+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>5</span></span>{
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">6</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">print</span>(<span class="ltx_text ltx_lst_identifier">reshape</span>([5],<span class="ltx_text ltx_lst_space"> </span>[1,2,3,4,5]));+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>6</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>print</span>(<span class='ltx_text ltx_lst_identifier'>reshape</span>([5],<span class='ltx_text ltx_lst_space'> </span>[1,2,3,4,5]));
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">7</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">print</span>(<span class="ltx_text ltx_lst_identifier">reshape</span>([3,2],<span class="ltx_text ltx_lst_space"> </span>[1,2,3,4,5,6]));+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>7</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>print</span>(<span class='ltx_text ltx_lst_identifier'>reshape</span>([3,2],<span class='ltx_text ltx_lst_space'> </span>[1,2,3,4,5,6]));
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">8</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">print</span>(<span class="ltx_text ltx_lst_identifier">reshape</span>([3,2,1],<span class="ltx_text ltx_lst_space"> </span>[1,2,3,4,5,6]));+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>8</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>print</span>(<span class='ltx_text ltx_lst_identifier'>reshape</span>([3,2,1],<span class='ltx_text ltx_lst_space'> </span>[1,2,3,4,5,6]));
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">9</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_keyword ltx_font_bold">return</span><span class="ltx_text ltx_lst_space"> </span>0;+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>9</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>return</span><span class='ltx_text ltx_lst_space'> </span>0;
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">10</span></span>}+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>10</span></span>}
 </div> </div>
 </div> </div>
 </figure> </figure>
-<div id="Ch2.S1.SS1.p4class="ltx_para"+<div id='Ch2.S1.SS1.p4class='ltx_para'
-<p class="ltx_p">It prints three arrays:</p> +<p class='ltx_p'>It prints three arrays:</p> 
-<ul id="Ch2.I1class="ltx_itemize"+<ul id='Ch2.I1class='ltx_itemize'
-<li id="Ch2.I1.i1class="ltx_itemstyle="list-style-type:none;"+<li id='Ch2.I1.i1class='ltx_itemstyle='list-style-type:none;'
-<span class="ltx_tag ltx_tag_itemize">•</span>  +<span class='ltx_tag ltx_tag_itemize'>•</span>  
-<div id="Ch2.I1.i1.p1class="ltx_para"+<div id='Ch2.I1.i1.p1class='ltx_para'
-<p class="ltx_p">an array of dimensionality 1 with 5 elements <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting">[1,2,3,4,5]</span></p>+<p class='ltx_p'>an array of dimensionality 1 with 5 elements <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>[1,2,3,4,5]</span></p>
 </div> </div>
 </li> </li>
-<li id="Ch2.I1.i2class="ltx_itemstyle="list-style-type:none;"+<li id='Ch2.I1.i2class='ltx_itemstyle='list-style-type:none;'
-<span class="ltx_tag ltx_tag_itemize">•</span>  +<span class='ltx_tag ltx_tag_itemize'>•</span>  
-<div id="Ch2.I1.i2.p1class="ltx_para"+<div id='Ch2.I1.i2.p1class='ltx_para'
-<p class="ltx_p">an array of dimensionality 2 with 3 rows and 2 columns, and</p>+<p class='ltx_p'>an array of dimensionality 2 with 3 rows and 2 columns, and</p>
 </div> </div>
 </li> </li>
-<li id="Ch2.I1.i3class="ltx_itemstyle="list-style-type:none;"+<li id='Ch2.I1.i3class='ltx_itemstyle='list-style-type:none;'
-<span class="ltx_tag ltx_tag_itemize">•</span>  +<span class='ltx_tag ltx_tag_itemize'>•</span>  
-<div id="Ch2.I1.i3.p1class="ltx_para"+<div id='Ch2.I1.i3.p1class='ltx_para'
-<p class="ltx_p">a 3-dimensional array with 3 elements in the leftmost axis,+<p class='ltx_p'>a 3-dimensional array with 3 elements in the leftmost axis,
 2 elements in the middle axis, and one element in the rightmost axis.</p> 2 elements in the middle axis, and one element in the rightmost axis.</p>
 </div> </div>
Line 443: Line 1042:
 </ul> </ul>
 </div> </div>
-<div id="Ch2.S1.SS1.p5class="ltx_para"+<div id='Ch2.S1.SS1.p5class='ltx_para'
-<p class="ltx_p">Note here, that the function <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">print</span> can be applied to arbitrary arrays.+<p class='ltx_p'>Note here, that the function <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>print</span> can be applied to arbitrary arrays.
 Besides printing its argument’s dimensionality and shape, i.e. its shape vector, Besides printing its argument’s dimensionality and shape, i.e. its shape vector,
 a more intuitive representation of the array’s data vector is shown. a more intuitive representation of the array’s data vector is shown.
Line 451: Line 1050:
 Therefore, the 3-dimensional array is printed as a 2-dimensional array of vectors.</p> Therefore, the 3-dimensional array is printed as a 2-dimensional array of vectors.</p>
 </div> </div>
-<div id="Thmtheorem1class="ltx_theorem ltx_theorem_theorem"+<div id='Thmtheorem1class='ltx_theorem ltx_theorem_theorem'
-<h6 class="ltx_title ltx_runin ltx_font_bold ltx_title_theorem">Exercise 1. </h6> +<h6 class='ltx_title ltx_runin ltx_font_bold ltx_title_theorem'>Exercise 1. </h6> 
-<div id="Thmtheorem1.p1class="ltx_para"+<div id='Thmtheorem1.p1class='ltx_para'
-<p class="ltx_p">In all these examples, the product of the shape vector matches the length of+<p class='ltx_p'>In all these examples, the product of the shape vector matches the length of
 the data vector. the data vector.
 What do you expect to happen, if this condition does not hold?</p> What do you expect to happen, if this condition does not hold?</p>
 </div> </div>
 </div> </div>
-<div id="Ch2.S1.SS1.p6class="ltx_para ltx_noindent"+<div id='Ch2.S1.SS1.p6class='ltx_para ltx_noindent'
-<p class="ltx_p">For reasons of convenience, we use the following terminology:</p> +<p class='ltx_p'>For reasons of convenience, we use the following terminology:</p> 
-<dl id="Ch2.I2class="ltx_description"+<dl id='Ch2.I2class='ltx_description'
-<dt id="Ch2.I2.ix1class="ltx_item"><span class="ltx_tag ltx_tag_description">scalar</span></dt> +<dt id='Ch2.I2.ix1class='ltx_item'><span class='ltx_tag ltx_tag_description'>scalar</span></dt> 
-<dd class="ltx_item"+<dd class='ltx_item'
-<div id="Ch2.I2.ix1.p1class="ltx_para"+<div id='Ch2.I2.ix1.p1class='ltx_para'
-<p class="ltx_p">always denotes an array of dimensionality 0,</p>+<p class='ltx_p'>always denotes an array of dimensionality 0,</p>
 </div> </div>
 </dd> </dd>
-<dt id="Ch2.I2.ix2class="ltx_item"><span class="ltx_tag ltx_tag_description">vector</span></dt> +<dt id='Ch2.I2.ix2class='ltx_item'><span class='ltx_tag ltx_tag_description'>vector</span></dt> 
-<dd class="ltx_item"+<dd class='ltx_item'
-<div id="Ch2.I2.ix2.p1class="ltx_para"+<div id='Ch2.I2.ix2.p1class='ltx_para'
-<p class="ltx_p">always denotes an array of dimensionality 1, and</p>+<p class='ltx_p'>always denotes an array of dimensionality 1, and</p>
 </div> </div>
 </dd> </dd>
-<dt id="Ch2.I2.ix3class="ltx_item"><span class="ltx_tag ltx_tag_description">matrix</span></dt> +<dt id='Ch2.I2.ix3class='ltx_item'><span class='ltx_tag ltx_tag_description'>matrix</span></dt> 
-<dd class="ltx_item"+<dd class='ltx_item'
-<div id="Ch2.I2.ix3.p1class="ltx_para"+<div id='Ch2.I2.ix3.p1class='ltx_para'
-<p class="ltx_p">always denotes an array of dimensionality 2.</p>+<p class='ltx_p'>always denotes an array of dimensionality 2.</p>
 </div> </div>
 </dd> </dd>
 </dl> </dl>
 </div> </div>
-<div id="Ch2.S1.SS1.p7class="ltx_para"+<div id='Ch2.S1.SS1.p7class='ltx_para'
-<p class="ltx_p">As <em class="ltx_emph">all</em> arrays can be defined in terms of <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">reshape</span>, the following+<p class='ltx_p'>As <em class='ltx_emph'>all</em> arrays can be defined in terms of <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>reshape</span>, the following
 program as well is perfectly legal: program as well is perfectly legal:
 </p> </p>
 </div> </div>
-<figure id="LST4class="ltx_float ltx_lstlisting ltx_role_listing"+<figure id='LST4class='ltx_float ltx_lstlisting ltx_role_listing'
-<figcaption class="ltx_caption"><span class="ltx_tag ltx_tag_float">Listing 4: </span>Defining Arrays II</figcaption> +<figcaption class='ltx_caption'><span class='ltx_tag ltx_tag_float'>Listing 4: </span>Defining Arrays II</figcaption> 
-<div class="ltx_listing ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_listing"+<div class='ltx_listing ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_listing'
-<div class="ltx_listing_data"><a href="data:text/plain;base64,dXNlIFN0ZElPOiBhbGw7CnVzZSBBcnJheTogYWxsOwoKaW50IG1haW4oKQp7CiAgcHJpbnQocmVz%0AaGFwZShbMV0sIFsxXSkpOwogIHByaW50KHJlc2hhcGUoW10sIFsxXSkpOwogIHJldHVybiAwOwp9%0A">⬇</a></div> +<div class='ltx_listing_data'><a href='data:text/plain;base64,dXNlIFN0ZElPOiBhbGw7CnVzZSBBcnJheTogYWxsOwoKaW50IG1haW4oKQp7CiAgcHJpbnQocmVz%0AaGFwZShbMV0sIFsxXSkpOwogIHByaW50KHJlc2hhcGUoW10sIFsxXSkpOwogIHJldHVybiAwOwp9%0A'>⬇</a></div> 
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">1</span></span><span class="ltx_text ltx_lst_keyword ltx_font_bold">use</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">StdIO</span>:<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">all</span>;+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>1</span></span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>use</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>StdIO</span>:<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>all</span>;
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">2</span></span><span class="ltx_text ltx_lst_keyword ltx_font_bold">use</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">Array</span>:<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">all</span>;+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>2</span></span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>use</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>Array</span>:<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>all</span>;
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">3</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>3</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">4</span></span><span class="ltx_text ltx_lst_keyword ltx_font_bold">int</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">main</span>()+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>4</span></span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>int</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>main</span>()
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">5</span></span>{+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>5</span></span>{
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">6</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">print</span>(<span class="ltx_text ltx_lst_identifier">reshape</span>([1],<span class="ltx_text ltx_lst_space"> </span>[1]));+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>6</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>print</span>(<span class='ltx_text ltx_lst_identifier'>reshape</span>([1],<span class='ltx_text ltx_lst_space'> </span>[1]));
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">7</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">print</span>(<span class="ltx_text ltx_lst_identifier">reshape</span>([],<span class="ltx_text ltx_lst_space"> </span>[1]));+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>7</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>print</span>(<span class='ltx_text ltx_lst_identifier'>reshape</span>([],<span class='ltx_text ltx_lst_space'> </span>[1]));
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">8</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_keyword ltx_font_bold">return</span><span class="ltx_text ltx_lst_space"> </span>0;+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>8</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>return</span><span class='ltx_text ltx_lst_space'> </span>0;
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">9</span></span>}+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>9</span></span>}
 </div> </div>
 </div> </div>
 </figure> </figure>
-<div id="Ch2.S1.SS1.p8class="ltx_para"+<div id='Ch2.S1.SS1.p8class='ltx_para'
-<p class="ltx_p">The most interesting aspect of this program is the array defined in+<p class='ltx_p'>The most interesting aspect of this program is the array defined in
 line 7. line 7.
 The empty shape vector makes it a 0-dimensional array, i.e. a scalar. The empty shape vector makes it a 0-dimensional array, i.e. a scalar.
 The data vector carries the scalar’s value, which, in this example, is 1.</p> The data vector carries the scalar’s value, which, in this example, is 1.</p>
 </div> </div>
-<div id="Thmtheorem2class="ltx_theorem ltx_theorem_theorem"+<div id='Thmtheorem2class='ltx_theorem ltx_theorem_theorem'
-<h6 class="ltx_title ltx_runin ltx_font_bold ltx_title_theorem">Exercise 2. </h6> +<h6 class='ltx_title ltx_runin ltx_font_bold ltx_title_theorem'>Exercise 2. </h6> 
-<div id="Thmtheorem2.p1class="ltx_para"+<div id='Thmtheorem2.p1class='ltx_para'
-<p class="ltx_p">The arguments of <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">reshape</span> are vectors, i.e. arrays of dimensionality 1. +<p class='ltx_p'>The arguments of <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>reshape</span> are vectors, i.e. arrays of dimensionality 1. 
-Can they be specified by <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">e</span> expressions themselves?</p>+Can they be specified by <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>e</span> expressions themselves?</p>
 </div> </div>
 </div> </div>
-<div id="Ch2.S1.SS1.p9class="ltx_para"+<div id='Ch2.S1.SS1.p9class='ltx_para'
-<p class="ltx_p">The <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">reshape</span> notation is relatively clumsy, in particular, when+<p class='ltx_p'>The <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>reshape</span> notation is relatively clumsy, in particular, when
 being used for scalars. being used for scalars.
 Therefore, scalars and vectors can alternatively be specified by Therefore, scalars and vectors can alternatively be specified by
 shortcut notations as well.</p> shortcut notations as well.</p>
 </div> </div>
-<div id="Ch2.S1.SS1.p10class="ltx_para"+<div id='Ch2.S1.SS1.p10class='ltx_para'
-<p class="ltx_p">For experimenting with these, try the following:</p>+<p class='ltx_p'>For experimenting with these, try the following:</p>
 </div> </div>
-<figure id="LST5class="ltx_float ltx_lstlisting ltx_role_listing"+<figure id='LST5class='ltx_float ltx_lstlisting ltx_role_listing'
-<figcaption class="ltx_caption"><span class="ltx_tag ltx_tag_float">Listing 5: </span>Shortcut Notation for Arrays</figcaption> +<figcaption class='ltx_caption'><span class='ltx_tag ltx_tag_float'>Listing 5: </span>Shortcut Notation for Arrays</figcaption> 
-<div class="ltx_listing ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_listing"+<div class='ltx_listing ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_listing'
-<div class="ltx_listing_data"><a href="data:text/plain;base64,dXNlIFN0ZElPOiBhbGw7CnVzZSBBcnJheTogYWxsOwoKaW50IG1haW4oKQp7CiAgcHJpbnQoMSk7%0ACiAgcHJpbnQoWzEsMiwzLDQsNV0pOwogIHByaW50KFtbMSwyXSwgWzMsNF0sIFs1LDZdXSk7CiAg%0AcHJpbnQoZ2VuYXJyYXkoWzQsMywyXSwgMSkpOwogIHByaW50KGdlbmFycmF5KFs0LDNdLCBbMSwy%0AXSkpOwogIHJldHVybiAwOwp9%0A">⬇</a></div> +<div class='ltx_listing_data'><a href='data:text/plain;base64,dXNlIFN0ZElPOiBhbGw7CnVzZSBBcnJheTogYWxsOwoKaW50IG1haW4oKQp7CiAgcHJpbnQoMSk7%0ACiAgcHJpbnQoWzEsMiwzLDQsNV0pOwogIHByaW50KFtbMSwyXSwgWzMsNF0sIFs1LDZdXSk7CiAg%0AcHJpbnQoZ2VuYXJyYXkoWzQsMywyXSwgMSkpOwogIHByaW50KGdlbmFycmF5KFs0LDNdLCBbMSwy%0AXSkpOwogIHJldHVybiAwOwp9%0A'>⬇</a></div> 
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">1</span></span><span class="ltx_text ltx_lst_keyword ltx_font_bold">use</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">StdIO</span>:<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">all</span>;+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>1</span></span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>use</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>StdIO</span>:<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>all</span>;
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">2</span></span><span class="ltx_text ltx_lst_keyword ltx_font_bold">use</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">Array</span>:<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">all</span>;+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>2</span></span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>use</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>Array</span>:<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>all</span>;
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">3</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>3</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">4</span></span><span class="ltx_text ltx_lst_keyword ltx_font_bold">int</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">main</span>()+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>4</span></span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>int</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>main</span>()
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">5</span></span>{+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>5</span></span>{
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">6</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">print</span>(1);+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>6</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>print</span>(1);
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">7</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">print</span>([1,2,3,4,5]);+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>7</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>print</span>([1,2,3,4,5]);
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">8</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">print</span>([[1,2],<span class="ltx_text ltx_lst_space"> </span>[3,4],<span class="ltx_text ltx_lst_space"> </span>[5,6]]);+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>8</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>print</span>([[1,2],<span class='ltx_text ltx_lst_space'> </span>[3,4],<span class='ltx_text ltx_lst_space'> </span>[5,6]]);
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">9</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">print</span>(<span class="ltx_text ltx_lst_identifier">genarray</span>([4,3,2],<span class="ltx_text ltx_lst_space"> </span>1));+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>9</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>print</span>(<span class='ltx_text ltx_lst_identifier'>genarray</span>([4,3,2],<span class='ltx_text ltx_lst_space'> </span>1));
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">10</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">print</span>(<span class="ltx_text ltx_lst_identifier">genarray</span>([4,3],<span class="ltx_text ltx_lst_space"> </span>[1,2]));+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>10</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>print</span>(<span class='ltx_text ltx_lst_identifier'>genarray</span>([4,3],<span class='ltx_text ltx_lst_space'> </span>[1,2]));
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">11</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_keyword ltx_font_bold">return</span><span class="ltx_text ltx_lst_space"> </span>0;+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>11</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>return</span><span class='ltx_text ltx_lst_space'> </span>0;
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">12</span></span>}+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>12</span></span>}
 </div> </div>
 </div> </div>
 </figure> </figure>
-<div id="Ch2.S1.SS1.p11class="ltx_para"+<div id='Ch2.S1.SS1.p11class='ltx_para'
-<p class="ltx_p">From these examples, we can see that scalars can be used in the same way as in most+<p class='ltx_p'>From these examples, we can see that scalars can be used in the same way as in most
 programming languages, and that the notation used for the parameters of programming languages, and that the notation used for the parameters of
-<span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">reshape</span> +<span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>reshape</span> 
-in the examples above in fact is a standard abbreviation of <span class="ltx_text ltx_font_smallcaps">SaC</span>.+in the examples above in fact is a standard abbreviation of <span class='ltx_text ltx_font_smallcaps'>SaC</span>.
 The example in line 8 shows that nestings of arrays are implicitly eliminated, i.e. The example in line 8 shows that nestings of arrays are implicitly eliminated, i.e.
 the resulting array is identical to:</p> the resulting array is identical to:</p>
 </div> </div>
-<div id="Ch2.S1.SS1.p12class="ltx_para"+<div id='Ch2.S1.SS1.p12class='ltx_para'
-<p class="ltx_p ltx_align_center"><span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting"><span class="ltx_text ltx_lst_identifier">reshape</span>([3,2],<span class="ltx_text ltx_lst_space"> </span>[1,2,3,4,5,6])</span>.</p>+<p class='ltx_p ltx_align_center'><span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'><span class='ltx_text ltx_lst_identifier'>reshape</span>([3,2],<span class='ltx_text ltx_lst_space'> </span>[1,2,3,4,5,6])</span>.</p>
 </div> </div>
-<div id="Ch2.S1.SS1.p13class="ltx_para ltx_noindent"+<div id='Ch2.S1.SS1.p13class='ltx_para ltx_noindent'
-<p class="ltx_p">For this reason, array nestings in <span class="ltx_text ltx_font_smallcaps">SaC</span> always have to be <em class="ltx_emph">homogeneous</em>,+<p class='ltx_p'>For this reason, array nestings in <span class='ltx_text ltx_font_smallcaps'>SaC</span> always have to be <em class='ltx_emph'>homogeneous</em>,
 i.e. the inner array components have to have identical shapes.</p> i.e. the inner array components have to have identical shapes.</p>
 </div> </div>
-<div id="Ch2.S1.SS1.p14class="ltx_para"+<div id='Ch2.S1.SS1.p14class='ltx_para'
-<p class="ltx_p">Furthermore, a new function is introduced: <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">genarray</span>.+<p class='ltx_p'>Furthermore, a new function is introduced: <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>genarray</span>.
 It expects two arguments, a shape vector that defines the shape of the result It expects two arguments, a shape vector that defines the shape of the result
 and a default element to be inserted at each position of the result. and a default element to be inserted at each position of the result.
Line 606: Line 1205:
 arrays as well, which implicitly extends the dimensionality of the result array.</p> arrays as well, which implicitly extends the dimensionality of the result array.</p>
 </div> </div>
-<div id="Thmtheorem3class="ltx_theorem ltx_theorem_theorem"+<div id='Thmtheorem3class='ltx_theorem ltx_theorem_theorem'
-<h6 class="ltx_title ltx_runin ltx_font_bold ltx_title_theorem">Exercise 3. </h6> +<h6 class='ltx_title ltx_runin ltx_font_bold ltx_title_theorem'>Exercise 3. </h6> 
-<div id="Thmtheorem3.p1class="ltx_para"+<div id='Thmtheorem3.p1class='ltx_para'
-<p class="ltx_p">Given the language constructs introduced so far, can you define an array that would print as</p> +<p class='ltx_p'>Given the language constructs introduced so far, can you define an array that would print as</p> 
-<pre class="ltx_verbatim ltx_font_typewriter">+<pre class='ltx_verbatim ltx_font_typewriter'>
 Dimension:  3 Dimension:  3
 Shape    : &lt;  5,  2,  2&gt; Shape    : &lt;  5,  2,  2&gt;
Line 619: Line 1218:
 &lt; 0  0 &gt; &lt; 0  1 &gt; &lt; 0  0 &gt; &lt; 0  1 &gt;
 </pre> </pre>
-<p class="ltx_p">but whose definition does not contain the symbol ‘1’ more than once?</p>+<p class='ltx_p'>but whose definition does not contain the symbol ‘1’ more than once?</p>
 </div> </div>
 </div> </div>
 </section> </section>
-<section id="Ch2.S1.SS2class="ltx_subsection"+<section id='Ch2.S1.SS2class='ltx_subsection'
-<h5 class="ltx_title ltx_title_subsection"+<h5 class='ltx_title ltx_title_subsection'
-<span class="ltx_tag ltx_tag_subsection">2.1.2 </span>Arrays and Variables</h5>+<span class='ltx_tag ltx_tag_subsection'>2.1.2 </span>Arrays and Variables</h5>
  
-<div id="Ch2.S1.SS2.p1class="ltx_para"+<div id='Ch2.S1.SS2.p1class='ltx_para'
-<p class="ltx_p">This section explains why in <span class="ltx_text ltx_font_smallcaps">SaC</span> arrays are data and not containers for values+<p class='ltx_p'>This section explains why in <span class='ltx_text ltx_font_smallcaps'>SaC</span> arrays are data and not containers for values
 as found in most other languages.</p> as found in most other languages.</p>
 </div> </div>
-<div id="Ch2.S1.SS2.p2class="ltx_para"+<div id='Ch2.S1.SS2.p2class='ltx_para'
-<p class="ltx_p">So far, all examples were expression based, i.e. we did not use any variables.+<p class='ltx_p'>So far, all examples were expression based, i.e. we did not use any variables.
 Traditionally, there are two different ways of introducing variables. Traditionally, there are two different ways of introducing variables.
-In conventional (imperative) languages such as <span class="ltx_text ltx_font_smallcaps">C</span>, variables denote memory+In conventional (imperative) languages such as <span class='ltx_text ltx_font_smallcaps'>C</span>, variables denote memory
 locations which hold values that may change during computation. locations which hold values that may change during computation.
 In functional languages, similar to mathematics, variables are considered place holders for values. In functional languages, similar to mathematics, variables are considered place holders for values.
Line 642: Line 1241:
 are involved.</p> are involved.</p>
 </div> </div>
-<div id="Ch2.S1.SS2.p3class="ltx_para"+<div id='Ch2.S1.SS2.p3class='ltx_para'
-<p class="ltx_p">Let’s have a look at an example:</p>+<p class='ltx_p'>Let’s have a look at an example:</p>
 </div> </div>
-<figure id="LST6class="ltx_float ltx_lstlisting ltx_role_listing"+<figure id='LST6class='ltx_float ltx_lstlisting ltx_role_listing'
-<figcaption class="ltx_caption"><span class="ltx_tag ltx_tag_float">Listing 6: </span>Variables as Placeholders</figcaption> +<figcaption class='ltx_caption'><span class='ltx_tag ltx_tag_float'>Listing 6: </span>Variables as Placeholders</figcaption> 
-<div class="ltx_listing ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_listing"+<div class='ltx_listing ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_listing'
-<div class="ltx_listing_data"><a href="data:text/plain;base64,dXNlIFN0ZElPOiBhbGw7CnVzZSBBcnJheTogYWxsOwoKaW50IG1haW4oKQp7CiAgYSA9IFsxLDIs%0AMyw0XTsKICBwcmludChhKTsKCiAgYiA9IG1vZGFycmF5KGEsIFswXSwgOSk7CiAgcHJpbnQoYik7%0ACgogIHJldHVybiAwOwp9%0A">⬇</a></div> +<div class='ltx_listing_data'><a href='data:text/plain;base64,dXNlIFN0ZElPOiBhbGw7CnVzZSBBcnJheTogYWxsOwoKaW50IG1haW4oKQp7CiAgYSA9IFsxLDIs%0AMyw0XTsKICBwcmludChhKTsKCiAgYiA9IG1vZGFycmF5KGEsIFswXSwgOSk7CiAgcHJpbnQoYik7%0ACgogIHJldHVybiAwOwp9%0A'>⬇</a></div> 
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">1</span></span><span class="ltx_text ltx_lst_keyword ltx_font_bold">use</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">StdIO</span>:<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">all</span>;+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>1</span></span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>use</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>StdIO</span>:<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>all</span>;
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">2</span></span><span class="ltx_text ltx_lst_keyword ltx_font_bold">use</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">Array</span>:<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">all</span>;+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>2</span></span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>use</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>Array</span>:<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>all</span>;
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">3</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>3</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">4</span></span><span class="ltx_text ltx_lst_keyword ltx_font_bold">int</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">main</span>()+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>4</span></span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>int</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>main</span>()
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">5</span></span>{+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>5</span></span>{
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">6</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">a</span><span class="ltx_text ltx_lst_space"> </span>=<span class="ltx_text ltx_lst_space"> </span>[1,2,3,4];+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>6</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>a</span><span class='ltx_text ltx_lst_space'> </span>=<span class='ltx_text ltx_lst_space'> </span>[1,2,3,4];
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">7</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">print</span>(<span class="ltx_text ltx_lst_identifier">a</span>);+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>7</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>print</span>(<span class='ltx_text ltx_lst_identifier'>a</span>);
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">8</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>8</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">9</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">b</span><span class="ltx_text ltx_lst_space"> </span>=<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">modarray</span>(<span class="ltx_text ltx_lst_identifier">a</span>,<span class="ltx_text ltx_lst_space"> </span>[0],<span class="ltx_text ltx_lst_space"> </span>9);+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>9</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>b</span><span class='ltx_text ltx_lst_space'> </span>=<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>modarray</span>(<span class='ltx_text ltx_lst_identifier'>a</span>,<span class='ltx_text ltx_lst_space'> </span>[0],<span class='ltx_text ltx_lst_space'> </span>9);
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">10</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">print</span>(<span class="ltx_text ltx_lst_identifier">b</span>);+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>10</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>print</span>(<span class='ltx_text ltx_lst_identifier'>b</span>);
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">11</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>11</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">12</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_keyword ltx_font_bold">return</span><span class="ltx_text ltx_lst_space"> </span>0;+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>12</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>return</span><span class='ltx_text ltx_lst_space'> </span>0;
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">13</span></span>}+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>13</span></span>}
 </div> </div>
 </div> </div>
 </figure> </figure>
-<div id="Ch2.S1.SS2.p4class="ltx_para"+<div id='Ch2.S1.SS2.p4class='ltx_para'
-<p class="ltx_p">The function <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">modarray</span> expects three arguments: an array to be “modified”,+<p class='ltx_p'>The function <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>modarray</span> expects three arguments: an array to be “modified”,
 an index that indicates the exact position within the array to be “modified”, an index that indicates the exact position within the array to be “modified”,
 and the value that is to be inserted at the specified position. and the value that is to be inserted at the specified position.
-As we would expect, the resulting array <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">b</span> is almost identical to <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">a</span>, +As we would expect, the resulting array <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>b</span> is almost identical to <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>a</span>, 
-only the very first element has changed into <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting">9</span>.</p>+only the very first element has changed into <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>9</span>.</p>
 </div> </div>
-<div id="Ch2.S1.SS2.p5class="ltx_para"+<div id='Ch2.S1.SS2.p5class='ltx_para'
-<p class="ltx_p ltx_align_center"><span class="ltx_text ltx_font_bold">Note here, that indexing in </span><span class="ltx_text ltx_font_smallcaps">SaC</span><span class="ltx_text ltx_font_bold"> always starts with index <span class="ltx_text ltx_lstlisting"></span>!</span></p>+<p class='ltx_p ltx_align_center'><span class='ltx_text ltx_font_bold'>Note here, that indexing in </span><span class='ltx_text ltx_font_smallcaps'>SaC</span><span class='ltx_text ltx_font_bold'> always starts with index <span class='ltx_text ltx_lstlisting'></span>!</span></p>
 </div> </div>
-<div id="Ch2.S1.SS2.p6class="ltx_para"+<div id='Ch2.S1.SS2.p6class='ltx_para'
-<p class="ltx_p">Referring to the container / place holder discussion, the crucial question is: +<p class='ltx_p'>Referring to the container / place holder discussion, the crucial question is: 
-does the variable <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">a</span> denote a container, whose value is changed by +does the variable <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>a</span> denote a container, whose value is changed by 
-<span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">modarray</span>? If this would be the case, <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">a</span> and <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">b</span> +<span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>modarray</span>? If this would be the case, <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>a</span> and <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>b</span> 
-would share the same container, and every access to <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">a</span> after+would share the same container, and every access to <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>a</span> after
 line 9 would line 9 would
-yield <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting">[9,2,3,4]</span>. If <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">a</span> in fact is a place holder, it will +yield <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>[9,2,3,4]</span>. If <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>a</span> in fact is a place holder, it will 
-always denote the array <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting">[1,2,3,4]</span>, no matter what functions have +always denote the array <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>[1,2,3,4]</span>, no matter what functions have 
-obtained <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">a</span> as an argument.</p>+obtained <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>a</span> as an argument.</p>
 </div> </div>
-<div id="Ch2.S1.SS2.p7class="ltx_para"+<div id='Ch2.S1.SS2.p7class='ltx_para'
-<p class="ltx_p">To answer this question, you may simply shift the first call of +<p class='ltx_p'>To answer this question, you may simply shift the first call of 
-<span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">print</span> two lines down. As you can see, in <span class="ltx_text ltx_font_smallcaps">SaC</span>, variables are indeed+<span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>print</span> two lines down. As you can see, in <span class='ltx_text ltx_font_smallcaps'>SaC</span>, variables are indeed
 place holders.</p> place holders.</p>
 </div> </div>
-<div id="Ch2.S1.SS2.p8class="ltx_para"+<div id='Ch2.S1.SS2.p8class='ltx_para'
-<p class="ltx_p ltx_align_center">+<p class='ltx_p ltx_align_center'>
  
-<span class="ltx_inline-block ltx_minipage ltx_align_middle ltx_framed_rectanglestyle="width:390.3pt;"+<span class='ltx_inline-block ltx_minipage ltx_align_middle ltx_framed_rectanglestyle='width:390.3pt;'
-<span class="ltx_p"><span class="ltx_text ltx_font_bold">A note for efficiency freaks:</span></span> +<span class='ltx_p'><span class='ltx_text ltx_font_bold'>A note for efficiency freaks:</span></span> 
-<span class="ltx_p"><span class="ltx_text ltx_font_italic">You may wonder whether this implies that <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">modarray</span> always copies the entire array. +<span class='ltx_p'><span class='ltx_text ltx_font_italic'>You may wonder whether this implies that <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>modarray</span> always copies the entire array. 
-In fact, it only copies <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">a</span> if the place-holder property would be violated otherwise.</span></span>+In fact, it only copies <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>a</span> if the place-holder property would be violated otherwise.</span></span>
 </span> </span>
 </p> </p>
 </div> </div>
-<div id="Ch2.S1.SS2.p9class="ltx_para"+<div id='Ch2.S1.SS2.p9class='ltx_para'
-<p class="ltx_p">As a result of this place-holder property, it is guaranteed that no function call can affect+<p class='ltx_p'>As a result of this place-holder property, it is guaranteed that no function call can affect
 the value of its arguments. the value of its arguments.
-In other words, the underlying concept <em class="ltx_emph">guarantees</em>, that all functions are+In other words, the underlying concept <em class='ltx_emph'>guarantees</em>, that all functions are
 “pure”. “pure”.
 Although this helps in avoiding nasty errors due to non-intended side-effects, Although this helps in avoiding nasty errors due to non-intended side-effects,
Line 734: Line 1333:
 in particular, if arrays are to be modified successively.</p> in particular, if arrays are to be modified successively.</p>
 </div> </div>
-<div id="Ch2.S1.SS2.p10class="ltx_para"+<div id='Ch2.S1.SS2.p10class='ltx_para'
-<p class="ltx_p">To cope with this problem, in <span class="ltx_text ltx_font_smallcaps">SaC</span>, variables do have a so-called <em class="ltx_emph">scope</em>, i.e. each variable definition is associated with a well-defined portion of program code+<p class='ltx_p'>To cope with this problem, in <span class='ltx_text ltx_font_smallcaps'>SaC</span>, variables do have a so-called <em class='ltx_emph'>scope</em>, i.e. each variable definition is associated with a well-defined portion of program code
 where its definition is valid. where its definition is valid.
 In a sequence of variable definitions, the scope of a variable starts with the left-hand In a sequence of variable definitions, the scope of a variable starts with the left-hand
Line 744: Line 1343:
 This measure allows us to reuse variable names. This measure allows us to reuse variable names.
 A slight modification of our example demonstrates the effect of variable scopes A slight modification of our example demonstrates the effect of variable scopes
-in <span class="ltx_text ltx_font_smallcaps">SaC</span>:</p>+in <span class='ltx_text ltx_font_smallcaps'>SaC</span>:</p>
 </div> </div>
-<figure id="LST7class="ltx_float ltx_lstlisting ltx_role_listing"+<figure id='LST7class='ltx_float ltx_lstlisting ltx_role_listing'
-<figcaption class="ltx_caption"><span class="ltx_tag ltx_tag_float">Listing 7: </span>Variable Scopes</figcaption> +<figcaption class='ltx_caption'><span class='ltx_tag ltx_tag_float'>Listing 7: </span>Variable Scopes</figcaption> 
-<div class="ltx_listing ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_listing"+<div class='ltx_listing ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_listing'
-<div class="ltx_listing_data"><a href="data:text/plain;base64,dXNlIFN0ZElPOiBhbGw7CnVzZSBBcnJheTogYWxsOwoKaW50IG1haW4oKQp7CiAgYSA9IFsxLDIs%0AMyw0XTsKCiAgYiA9IG1vZGFycmF5KGEsIFswXSwgOSk7CiAgcHJpbnQoYSk7CiAgYSA9IGI7CiAg%0AcHJpbnQoYSk7CgogIGEgPSBtb2RhcnJheShhLCBbMV0sIDgpOwogIHByaW50KGEpOwoKICByZXR1%0Acm4gMDsKfQ==%0A">⬇</a></div> +<div class='ltx_listing_data'><a href='data:text/plain;base64,dXNlIFN0ZElPOiBhbGw7CnVzZSBBcnJheTogYWxsOwoKaW50IG1haW4oKQp7CiAgYSA9IFsxLDIs%0AMyw0XTsKCiAgYiA9IG1vZGFycmF5KGEsIFswXSwgOSk7CiAgcHJpbnQoYSk7CiAgYSA9IGI7CiAg%0AcHJpbnQoYSk7CgogIGEgPSBtb2RhcnJheShhLCBbMV0sIDgpOwogIHByaW50KGEpOwoKICByZXR1%0Acm4gMDsKfQ==%0A'>⬇</a></div> 
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">1</span></span><span class="ltx_text ltx_lst_keyword ltx_font_bold">use</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">StdIO</span>:<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">all</span>;+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>1</span></span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>use</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>StdIO</span>:<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>all</span>;
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">2</span></span><span class="ltx_text ltx_lst_keyword ltx_font_bold">use</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">Array</span>:<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">all</span>;+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>2</span></span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>use</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>Array</span>:<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>all</span>;
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">3</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>3</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">4</span></span><span class="ltx_text ltx_lst_keyword ltx_font_bold">int</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">main</span>()+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>4</span></span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>int</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>main</span>()
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">5</span></span>{+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>5</span></span>{
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">6</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">a</span><span class="ltx_text ltx_lst_space"> </span>=<span class="ltx_text ltx_lst_space"> </span>[1,2,3,4];+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>6</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>a</span><span class='ltx_text ltx_lst_space'> </span>=<span class='ltx_text ltx_lst_space'> </span>[1,2,3,4];
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">7</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>7</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">8</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">b</span><span class="ltx_text ltx_lst_space"> </span>=<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">modarray</span>(<span class="ltx_text ltx_lst_identifier">a</span>,<span class="ltx_text ltx_lst_space"> </span>[0],<span class="ltx_text ltx_lst_space"> </span>9);+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>8</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>b</span><span class='ltx_text ltx_lst_space'> </span>=<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>modarray</span>(<span class='ltx_text ltx_lst_identifier'>a</span>,<span class='ltx_text ltx_lst_space'> </span>[0],<span class='ltx_text ltx_lst_space'> </span>9);
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">9</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">print</span>(<span class="ltx_text ltx_lst_identifier">a</span>);+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>9</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>print</span>(<span class='ltx_text ltx_lst_identifier'>a</span>);
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">10</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">a</span><span class="ltx_text ltx_lst_space"> </span>=<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">b</span>;+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>10</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>a</span><span class='ltx_text ltx_lst_space'> </span>=<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>b</span>;
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">11</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">print</span>(<span class="ltx_text ltx_lst_identifier">a</span>);+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>11</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>print</span>(<span class='ltx_text ltx_lst_identifier'>a</span>);
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">12</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>12</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">13</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">a</span><span class="ltx_text ltx_lst_space"> </span>=<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">modarray</span>(<span class="ltx_text ltx_lst_identifier">a</span>,<span class="ltx_text ltx_lst_space"> </span>[1],<span class="ltx_text ltx_lst_space"> </span>8);+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>13</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>a</span><span class='ltx_text ltx_lst_space'> </span>=<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>modarray</span>(<span class='ltx_text ltx_lst_identifier'>a</span>,<span class='ltx_text ltx_lst_space'> </span>[1],<span class='ltx_text ltx_lst_space'> </span>8);
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">14</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">print</span>(<span class="ltx_text ltx_lst_identifier">a</span>);+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>14</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>print</span>(<span class='ltx_text ltx_lst_identifier'>a</span>);
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">15</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>15</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">16</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_keyword ltx_font_bold">return</span><span class="ltx_text ltx_lst_space"> </span>0;+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>16</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>return</span><span class='ltx_text ltx_lst_space'> </span>0;
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">17</span></span>}+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>17</span></span>}
 </div> </div>
 </div> </div>
 </figure> </figure>
-<div id="Ch2.S1.SS2.p11class="ltx_para"+<div id='Ch2.S1.SS2.p11class='ltx_para'
-<p class="ltx_p">Here, the use of <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">a</span> on the right-hand side of line 9 still refers+<p class='ltx_p'>Here, the use of <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>a</span> on the right-hand side of line 9 still refers
 to the definition of line 6, whereas the use in line 11 refers to the definition to the definition of line 6, whereas the use in line 11 refers to the definition
 in line 10.</p> in line 10.</p>
 </div> </div>
-<div id="Ch2.S1.SS2.p12class="ltx_para"+<div id='Ch2.S1.SS2.p12class='ltx_para'
-<p class="ltx_p">The definition in line 13 shows, how variable scopes can be used to specify+<p class='ltx_p'>The definition in line 13 shows, how variable scopes can be used to specify
 code that looks very much “imperative”. code that looks very much “imperative”.
-However, you should always keep in mind, that in <span class="ltx_text ltx_font_smallcaps">SaC</span>, the place-holder property +However, you should always keep in mind, that in <span class='ltx_text ltx_font_smallcaps'>SaC</span>, the place-holder property 
-<em class="ltx_emph">always</em> holds!</p>+<em class='ltx_emph'>always</em> holds!</p>
 </div> </div>
-<div id="Thmtheorem4class="ltx_theorem ltx_theorem_theorem"+<div id='Thmtheorem4class='ltx_theorem ltx_theorem_theorem'
-<h6 class="ltx_title ltx_runin ltx_font_bold ltx_title_theorem">Exercise 4. </h6> +<h6 class='ltx_title ltx_runin ltx_font_bold ltx_title_theorem'>Exercise 4. </h6> 
-<div id="Thmtheorem4.p1class="ltx_para"+<div id='Thmtheorem4.p1class='ltx_para'
-<p class="ltx_p">What result do you expect from the following <span class="ltx_text ltx_font_smallcaps">SaC</span> program?</p>+<p class='ltx_p'>What result do you expect from the following <span class='ltx_text ltx_font_smallcaps'>SaC</span> program?</p>
 </div> </div>
 </div> </div>
-<figure id="LST8class="ltx_float ltx_lstlisting ltx_role_listing"+<figure id='LST8class='ltx_float ltx_lstlisting ltx_role_listing'
-<figcaption class="ltx_caption"><span class="ltx_tag ltx_tag_float">Listing 8: </span>Scope Exercise</figcaption> +<figcaption class='ltx_caption'><span class='ltx_tag ltx_tag_float'>Listing 8: </span>Scope Exercise</figcaption> 
-<div class="ltx_listing ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_listing"+<div class='ltx_listing ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_listing'
-<div class="ltx_listing_data"><a href="data:text/plain;base64,dXNlIFN0ZElPOiBhbGw7CnVzZSBBcnJheTogYWxsOwoKaW50IG1haW4oKQp7CiAgYSA9IFsxLDIs%0AMyw0XTsKICBiID0gW2EsYV07CgogIGEgPSBtb2RhcnJheShtb2RhcnJheShhLCBbMF0sIDApLCBb%0AMV0sIDApOwogIGIgPSBtb2RhcnJheShiLCBbMF0sIGEpOwogIHByaW50KGIpOwoKICByZXR1cm4g%0AMDsKfQ==%0A">⬇</a></div> +<div class='ltx_listing_data'><a href='data:text/plain;base64,dXNlIFN0ZElPOiBhbGw7CnVzZSBBcnJheTogYWxsOwoKaW50IG1haW4oKQp7CiAgYSA9IFsxLDIs%0AMyw0XTsKICBiID0gW2EsYV07CgogIGEgPSBtb2RhcnJheShtb2RhcnJheShhLCBbMF0sIDApLCBb%0AMV0sIDApOwogIGIgPSBtb2RhcnJheShiLCBbMF0sIGEpOwogIHByaW50KGIpOwoKICByZXR1cm4g%0AMDsKfQ==%0A'>⬇</a></div> 
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">1</span></span><span class="ltx_text ltx_lst_keyword ltx_font_bold">use</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">StdIO</span>:<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">all</span>;+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>1</span></span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>use</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>StdIO</span>:<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>all</span>;
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">2</span></span><span class="ltx_text ltx_lst_keyword ltx_font_bold">use</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">Array</span>:<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">all</span>;+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>2</span></span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>use</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>Array</span>:<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>all</span>;
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">3</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>3</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">4</span></span><span class="ltx_text ltx_lst_keyword ltx_font_bold">int</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">main</span>()+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>4</span></span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>int</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>main</span>()
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">5</span></span>{+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>5</span></span>{
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">6</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">a</span><span class="ltx_text ltx_lst_space"> </span>=<span class="ltx_text ltx_lst_space"> </span>[1,2,3,4];+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>6</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>a</span><span class='ltx_text ltx_lst_space'> </span>=<span class='ltx_text ltx_lst_space'> </span>[1,2,3,4];
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">7</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">b</span><span class="ltx_text ltx_lst_space"> </span>=<span class="ltx_text ltx_lst_space"> </span>[<span class="ltx_text ltx_lst_identifier">a</span>,<span class="ltx_text ltx_lst_identifier">a</span>];+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>7</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>b</span><span class='ltx_text ltx_lst_space'> </span>=<span class='ltx_text ltx_lst_space'> </span>[<span class='ltx_text ltx_lst_identifier'>a</span>,<span class='ltx_text ltx_lst_identifier'>a</span>];
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">8</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>8</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">9</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">a</span><span class="ltx_text ltx_lst_space"> </span>=<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">modarray</span>(<span class="ltx_text ltx_lst_identifier">modarray</span>(<span class="ltx_text ltx_lst_identifier">a</span>,<span class="ltx_text ltx_lst_space"> </span>[0],<span class="ltx_text ltx_lst_space"> </span>0),<span class="ltx_text ltx_lst_space"> </span>[1],<span class="ltx_text ltx_lst_space"> </span>0);+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>9</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>a</span><span class='ltx_text ltx_lst_space'> </span>=<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>modarray</span>(<span class='ltx_text ltx_lst_identifier'>modarray</span>(<span class='ltx_text ltx_lst_identifier'>a</span>,<span class='ltx_text ltx_lst_space'> </span>[0],<span class='ltx_text ltx_lst_space'> </span>0),<span class='ltx_text ltx_lst_space'> </span>[1],<span class='ltx_text ltx_lst_space'> </span>0);
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">10</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">b</span><span class="ltx_text ltx_lst_space"> </span>=<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">modarray</span>(<span class="ltx_text ltx_lst_identifier">b</span>,<span class="ltx_text ltx_lst_space"> </span>[0],<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">a</span>);+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>10</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>b</span><span class='ltx_text ltx_lst_space'> </span>=<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>modarray</span>(<span class='ltx_text ltx_lst_identifier'>b</span>,<span class='ltx_text ltx_lst_space'> </span>[0],<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>a</span>);
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">11</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">print</span>(<span class="ltx_text ltx_lst_identifier">b</span>);+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>11</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>print</span>(<span class='ltx_text ltx_lst_identifier'>b</span>);
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">12</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>12</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">13</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_keyword ltx_font_bold">return</span><span class="ltx_text ltx_lst_space"> </span>0;+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>13</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>return</span><span class='ltx_text ltx_lst_space'> </span>0;
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">14</span></span>}+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>14</span></span>}
 </div> </div>
 </div> </div>
Line 870: Line 1469:
 </section> </section>
 </section> </section>
-<section id="Ch2.S2class="ltx_section"+<section id='Ch2.S2class='ltx_section'
-<h4 class="ltx_title ltx_title_section"+<h4 class='ltx_title ltx_title_section'
-<span class="ltx_tag ltx_tag_section">2.2 </span>Lesson 2: Shape-Invariant Programming</h4>+<span class='ltx_tag ltx_tag_section'>2.2 </span>Lesson 2: Shape-Invariant Programming</h4>
  
-<div id="Ch2.S2.p1class="ltx_para"+<div id='Ch2.S2.p1class='ltx_para'
-<p class="ltx_p">The term <em class="ltx_emph">shape-invariant programming</em> refers to a programming style+<p class='ltx_p'>The term <em class='ltx_emph'>shape-invariant programming</em> refers to a programming style
 where all array operations are defined in terms of operations that where all array operations are defined in terms of operations that
 are applied to entire arrays rather than to individual array elements. are applied to entire arrays rather than to individual array elements.
 In order to realize such a programming style, it is an essential In order to realize such a programming style, it is an essential
 prerequisite to be able to apply functions to arbitrarily shaped arguments. prerequisite to be able to apply functions to arbitrarily shaped arguments.
-In <span class="ltx_text ltx_font_smallcaps">SaC</span>, this is the case.</p>+In <span class='ltx_text ltx_font_smallcaps'>SaC</span>, this is the case.</p>
 </div> </div>
-<div id="Ch2.S2.p2class="ltx_para"+<div id='Ch2.S2.p2class='ltx_para'
-<p class="ltx_p">All built-in array operations as well as all array operations supplied by the+<p class='ltx_p'>All built-in array operations as well as all array operations supplied by the
 standard library can be applied to arguments of arbitrary shapes. standard library can be applied to arguments of arbitrary shapes.
 However, most of the operations that require more than one argument do have However, most of the operations that require more than one argument do have
Line 892: Line 1491:
 such a kind of domain error and produce a runtime error instead.</p> such a kind of domain error and produce a runtime error instead.</p>
 </div> </div>
-<div id="Ch2.S2.p3class="ltx_para"+<div id='Ch2.S2.p3class='ltx_para'
-<p class="ltx_p">This lesson consists of three parts: +<p class='ltx_p'>This lesson consists of three parts: 
-The section on <span class="ltx_text ltx_font_italic">Standard Array Operations</span> introduces the most important +The section on <span class='ltx_text ltx_font_italic'>Standard Array Operations</span> introduces the most important 
-standard array operations provided by the current <span class="ltx_text ltx_font_smallcaps">SaC</span> compiler +standard array operations provided by the current <span class='ltx_text ltx_font_smallcaps'>SaC</span> compiler 
-release<span class="ltx_note ltx_role_footnote"><sup class="ltx_note_mark">1</sup><span class="ltx_note_outer"><span class="ltx_note_content"><sup class="ltx_note_mark">1</sup>As of this writing, the latest <span class="ltx_text ltx_font_smallcaps">SaC</span> compiler release+release<span class='ltx_note ltx_role_footnote'><sup class='ltx_note_mark'>1</sup><span class='ltx_note_outer'><span class='ltx_note_content'><sup class='ltx_note_mark'>1</sup>As of this writing, the latest <span class='ltx_text ltx_font_smallcaps'>SaC</span> compiler release
 is version 1.2.</span></span></span>. is version 1.2.</span></span></span>.
-The next section explains <span class="ltx_text ltx_font_italic">Axis Control Notation</span>, a powerful but simple+The next section explains <span class='ltx_text ltx_font_italic'>Axis Control Notation</span>, a powerful but simple
 way of manipulating the focus of array operations with respect to individual axes of argument arrays. way of manipulating the focus of array operations with respect to individual axes of argument arrays.
 With the axis-control notation, the basic operations often can easily be combined into rather With the axis-control notation, the basic operations often can easily be combined into rather
-complex operations as demonstrated in the section on <span class="ltx_text ltx_font_italic">Putting it all Together</span>.</p>+complex operations as demonstrated in the section on <span class='ltx_text ltx_font_italic'>Putting it all Together</span>.</p>
 </div> </div>
-<section id="Ch2.S2.SS1class="ltx_subsection"+<section id='Ch2.S2.SS1class='ltx_subsection'
-<h5 class="ltx_title ltx_title_subsection"+<h5 class='ltx_title ltx_title_subsection'
-<span class="ltx_tag ltx_tag_subsection">2.2.1 </span>Standard Array Operations</h5>+<span class='ltx_tag ltx_tag_subsection'>2.2.1 </span>Standard Array Operations</h5>
  
-<div id="Ch2.S2.SS1.p1class="ltx_para"+<div id='Ch2.S2.SS1.p1class='ltx_para'
-<p class="ltx_p">In the sequel, several toy examples demonstrate the functionality of the most basic +<p class='ltx_p'>In the sequel, several toy examples demonstrate the functionality of the most basic 
-array operations that come as part of the current <span class="ltx_text ltx_font_smallcaps">SaC</span> release. +array operations that come as part of the current <span class='ltx_text ltx_font_smallcaps'>SaC</span> release. 
-Their design is inspired by those available in <span class="ltx_text ltx_font_smallcaps">APL</span>.+Their design is inspired by those available in <span class='ltx_text ltx_font_smallcaps'>APL</span>.
 However, several aspects — in particular regarding the treatment of special However, several aspects — in particular regarding the treatment of special
-cases in <span class="ltx_text ltx_font_smallcaps">APL</span> — have +cases in <span class='ltx_text ltx_font_smallcaps'>APL</span> — have 
-been adjusted to allow for a more favourable compilation in <span class="ltx_text ltx_font_smallcaps">SaC</span> that yields better runtime performance.</p>+been adjusted to allow for a more favourable compilation in <span class='ltx_text ltx_font_smallcaps'>SaC</span> that yields better runtime performance.</p>
 </div> </div>
-<div id="Ch2.S2.SS1.p2class="ltx_para"+<div id='Ch2.S2.SS1.p2class='ltx_para'
-<p class="ltx_p ltx_align_center">+<p class='ltx_p ltx_align_center'>
  
-<span class="ltx_inline-block ltx_minipage ltx_align_middle ltx_framed_rectanglestyle="width:390.3pt;"+<span class='ltx_inline-block ltx_minipage ltx_align_middle ltx_framed_rectanglestyle='width:390.3pt;'
-<span class="ltx_p"><span class="ltx_text ltx_font_bold">A note for language design freaks:</span></span> +<span class='ltx_p'><span class='ltx_text ltx_font_bold'>A note for language design freaks:</span></span> 
-<span class="ltx_p"><span class="ltx_text ltx_font_italic">You may have your own ideas on what primitive array operations should be available+<span class='ltx_p'><span class='ltx_text ltx_font_italic'>You may have your own ideas on what primitive array operations should be available
 and how the precise semantics of these should look like. and how the precise semantics of these should look like.
-Therefore, it should be mentioned here, that </span><span class="ltx_text ltx_font_bold">all</span><span class="ltx_text ltx_font_italic"> array operations introduced in the+Therefore, it should be mentioned here, that </span><span class='ltx_text ltx_font_bold'>all</span><span class='ltx_text ltx_font_italic'> array operations introduced in the
 remainder of this section are not remainder of this section are not
-hard-wired into the language, but they are defined in the module <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">Array</span>+hard-wired into the language, but they are defined in the module <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>Array</span>
 from the standard library. from the standard library.
-This is to say that the advanced <span class="ltx_text ltx_font_smallcaps">SaC</span> programmer may write his own set of+This is to say that the advanced <span class='ltx_text ltx_font_smallcaps'>SaC</span> programmer may write his own set of
 standard array operations. standard array operations.
 </span></span> </span></span>
Line 932: Line 1531:
 </p> </p>
 </div> </div>
-<div id="Ch2.S2.SS1.p3class="ltx_para"+<div id='Ch2.S2.SS1.p3class='ltx_para'
-<p class="ltx_p">The individual parts of this section are all organized according+<p class='ltx_p'>The individual parts of this section are all organized according
 to the following scheme: to the following scheme:
 first, a semi-formal introduction to the functionality of individual operations first, a semi-formal introduction to the functionality of individual operations
Line 940: Line 1539:
 with respect to domain restrictions if these do exist‘.</p> with respect to domain restrictions if these do exist‘.</p>
 </div> </div>
-<section id="Ch2.S2.SS1.SSSx1class="ltx_subsubsection"+<section id='Ch2.S2.SS1.SSSx1class='ltx_subsubsection'
-<h6 class="ltx_title ltx_title_subsubsection">Basic Operations</h6>+<h6 class='ltx_title ltx_title_subsubsection'>Basic Operations</h6>
  
-<div id="Ch2.S2.SS1.SSSx1.p1class="ltx_para"+<div id='Ch2.S2.SS1.SSSx1.p1class='ltx_para'
-<p class="ltx_p">The most basic operations are very close to the model of arrays in <span class="ltx_text ltx_font_smallcaps">SaC</span>.+<p class='ltx_p'>The most basic operations are very close to the model of arrays in <span class='ltx_text ltx_font_smallcaps'>SaC</span>.
 They comprise functions for inspecting, creating, and modifying an array’s They comprise functions for inspecting, creating, and modifying an array’s
 shape and content. shape and content.
Line 952: Line 1551:
 already.</p> already.</p>
 </div> </div>
-<div id="Ch2.S2.SS1.SSSx1.p2class="ltx_para"+<div id='Ch2.S2.SS1.SSSx1.p2class='ltx_para'
-<dl id="Ch2.I3class="ltx_description"+<dl id='Ch2.I3class='ltx_description'
-<dt id="Ch2.I3.ix1class="ltx_item"><span class="ltx_tag ltx_tag_description">dim(a)</span></dt> +<dt id='Ch2.I3.ix1class='ltx_item'><span class='ltx_tag ltx_tag_description'>dim(a)</span></dt> 
-<dd class="ltx_item"+<dd class='ltx_item'
-<div id="Ch2.I3.ix1.p1class="ltx_para"+<div id='Ch2.I3.ix1.p1class='ltx_para'
-<p class="ltx_p">returns the (scalar) dimensionality of the argument array +<p class='ltx_p'>returns the (scalar) dimensionality of the argument array 
-<span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">a</span>+<span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>a</span>
-<br class="ltx_break"><span class="ltx_text ltx_font_italic">Domain restrictions</span>: none.</p>+<br class='ltx_break'><span class='ltx_text ltx_font_italic'>Domain restrictions</span>: none.</p>
 </div> </div>
 </dd> </dd>
-<dt id="Ch2.I3.ix2class="ltx_item"><span class="ltx_tag ltx_tag_description">shape(a)</span></dt> +<dt id='Ch2.I3.ix2class='ltx_item'><span class='ltx_tag ltx_tag_description'>shape(a)</span></dt> 
-<dd class="ltx_item"+<dd class='ltx_item'
-<div id="Ch2.I3.ix2.p1class="ltx_para"+<div id='Ch2.I3.ix2.p1class='ltx_para'
-<p class="ltx_p">returns the shape vector of the argument array <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">a</span>+<p class='ltx_p'>returns the shape vector of the argument array <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>a</span>
-<br class="ltx_break"><span class="ltx_text ltx_font_italic">Domain restrictions</span>: none.</p>+<br class='ltx_break'><span class='ltx_text ltx_font_italic'>Domain restrictions</span>: none.</p>
 </div> </div>
 </dd> </dd>
-<dt id="Ch2.I3.ix3class="ltx_item"><span class="ltx_tag ltx_tag_description">a[iv]</span></dt> +<dt id='Ch2.I3.ix3class='ltx_item'><span class='ltx_tag ltx_tag_description'>a[iv]</span></dt> 
-<dd class="ltx_item"+<dd class='ltx_item'
-<div id="Ch2.I3.ix3.p1class="ltx_para"+<div id='Ch2.I3.ix3.p1class='ltx_para'
-<p class="ltx_p">constitutes a short-cut notation for <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting"><span class="ltx_text ltx_lst_identifier">sel</span>(<span class="ltx_text ltx_lst_identifier">iv</span>,<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">a</span>)</span>+<p class='ltx_p'>constitutes a short-cut notation for <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'><span class='ltx_text ltx_lst_identifier'>sel</span>(<span class='ltx_text ltx_lst_identifier'>iv</span>,<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>a</span>)</span>
-It selects the array element of <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">a</span> at index position <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">iv</span>+It selects the array element of <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>a</span> at index position <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>iv</span>
-As <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">a</span> may be of any shape, the index position is given as an +As <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>a</span> may be of any shape, the index position is given as an 
-<em class="ltx_emph">index vector</em>. The dimensionality of the result is identical to the dimensionality of +<em class='ltx_emph'>index vector</em>. The dimensionality of the result is identical to the dimensionality of 
-<span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">a</span> minus the length of <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">iv</span>.+<span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>a</span> minus the length of <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>iv</span>.
 Accordingly, its shape is derived from the last components of Accordingly, its shape is derived from the last components of
-the shape of <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">a</span>+the shape of <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>a</span>
-<br class="ltx_break"><span class="ltx_text ltx_font_italic">Domain restrictions</span>:</p> +<br class='ltx_break'><span class='ltx_text ltx_font_italic'>Domain restrictions</span>:</p> 
-<ul id="Ch2.I3.I1class="ltx_itemize"+<ul id='Ch2.I3.I1class='ltx_itemize'
-<li id="Ch2.I3.I1.i1class="ltx_itemstyle="list-style-type:none;"+<li id='Ch2.I3.I1.i1class='ltx_itemstyle='list-style-type:none;'
-<span class="ltx_tag ltx_tag_itemize"><span class="ltx_text ltx_font_bold">–</span></span>  +<span class='ltx_tag ltx_tag_itemize'><span class='ltx_text ltx_font_bold'>–</span></span>  
-<div id="Ch2.I3.I1.i1.p1class="ltx_para"+<div id='Ch2.I3.I1.i1.p1class='ltx_para'
-<p class="ltx_p"><span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting"><span class="ltx_text ltx_lst_identifier">dim</span>(<span class="ltx_text ltx_lst_identifier">iv</span>)<span class="ltx_text ltx_lst_space"> </span>==<span class="ltx_text ltx_lst_space"> </span>1</span></p>+<p class='ltx_p'><span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'><span class='ltx_text ltx_lst_identifier'>dim</span>(<span class='ltx_text ltx_lst_identifier'>iv</span>)<span class='ltx_text ltx_lst_space'> </span>==<span class='ltx_text ltx_lst_space'> </span>1</span></p>
 </div> </div>
 </li> </li>
-<li id="Ch2.I3.I1.i2class="ltx_itemstyle="list-style-type:none;"+<li id='Ch2.I3.I1.i2class='ltx_itemstyle='list-style-type:none;'
-<span class="ltx_tag ltx_tag_itemize"><span class="ltx_text ltx_font_bold">–</span></span>  +<span class='ltx_tag ltx_tag_itemize'><span class='ltx_text ltx_font_bold'>–</span></span>  
-<div id="Ch2.I3.I1.i2.p1class="ltx_para"+<div id='Ch2.I3.I1.i2.p1class='ltx_para'
-<p class="ltx_p"><span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting"><span class="ltx_text ltx_lst_identifier">shape</span>(<span class="ltx_text ltx_lst_identifier">iv</span>)[[0]]<span class="ltx_text ltx_lst_space"> </span>&lt;=<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">dim</span>(<span class="ltx_text ltx_lst_identifier">a</span>)</span></p>+<p class='ltx_p'><span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'><span class='ltx_text ltx_lst_identifier'>shape</span>(<span class='ltx_text ltx_lst_identifier'>iv</span>)[[0]]<span class='ltx_text ltx_lst_space'> </span>&lt;=<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>dim</span>(<span class='ltx_text ltx_lst_identifier'>a</span>)</span></p>
 </div> </div>
 </li> </li>
-<li id="Ch2.I3.I1.i3class="ltx_itemstyle="list-style-type:none;"+<li id='Ch2.I3.I1.i3class='ltx_itemstyle='list-style-type:none;'
-<span class="ltx_tag ltx_tag_itemize"><span class="ltx_text ltx_font_bold">–</span></span>  +<span class='ltx_tag ltx_tag_itemize'><span class='ltx_text ltx_font_bold'>–</span></span>  
-<div id="Ch2.I3.I1.i3.p1class="ltx_para"+<div id='Ch2.I3.I1.i3.p1class='ltx_para'
-<p class="ltx_p"><math id="Ch2.I3.I1.i3.p1.m1class="ltx_Mathalttext="{{{{{{\forall\textrm{\lstinline 1}}}\in\{0,\dots,\textrm{\lstinline 1}}}\}:\textrm{% +<p class='ltx_p'><math id='Ch2.I3.I1.i3.p1.m1class='ltx_Mathalttext='{{{{{{\forall\textrm{\lstinline 1}}}\in\{0,\dots,\textrm{\lstinline 1}}}\}:\textrm{% 
-\lstinline 1}}}display="inline"><mrow><mrow><mrow><mo>∀</mo><mtext class="ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">i</mtext></mrow><mo>∈</mo><mrow><mo stretchy="false">{</mo><mn>0</mn><mo>,</mo><mi mathvariant="normal">…</mi><mo>,</mo><mrow class="ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting"><mtext>shape</mtext><mtext>(</mtext><mtext>iv</mtext><mtext>)[[0]]</mtext></mrow><mo stretchy="false">}</mo></mrow></mrow><mo>:</mo><mrow class="ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting"><mtext>iv</mtext><mtext>[[</mtext><mtext>i</mtext><mtext>]]</mtext><mtext> </mtext><mtext>&lt;</mtext><mtext> </mtext><mtext>shape</mtext><mtext>(</mtext><mtext>a</mtext><mtext>)[[</mtext><mtext>i</mtext><mtext>]]</mtext></mrow></mrow></math>.</p>+\lstinline 1}}}display='inline'><mrow><mrow><mrow><mo>∀</mo><mtext class='ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>i</mtext></mrow><mo>∈</mo><mrow><mo stretchy='false'>{</mo><mn>0</mn><mo>,</mo><mi mathvariant='normal'>…</mi><mo>,</mo><mrow class='ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'><mtext>shape</mtext><mtext>(</mtext><mtext>iv</mtext><mtext>)[[0]]</mtext></mrow><mo stretchy='false'>}</mo></mrow></mrow><mo>:</mo><mrow class='ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'><mtext>iv</mtext><mtext>[[</mtext><mtext>i</mtext><mtext>]]</mtext><mtext> </mtext><mtext>&lt;</mtext><mtext> </mtext><mtext>shape</mtext><mtext>(</mtext><mtext>a</mtext><mtext>)[[</mtext><mtext>i</mtext><mtext>]]</mtext></mrow></mrow></math>.</p>
 </div> </div>
 </li> </li>
Line 1003: Line 1602:
 </div> </div>
 </dd> </dd>
-<dt id="Ch2.I3.ix4class="ltx_item"><span class="ltx_tag ltx_tag_description">a[iv]=expr</span></dt> +<dt id='Ch2.I3.ix4class='ltx_item'><span class='ltx_tag ltx_tag_description'>a[iv]=expr</span></dt> 
-<dd class="ltx_item"+<dd class='ltx_item'
-<div id="Ch2.I3.ix4.p1class="ltx_para"+<div id='Ch2.I3.ix4.p1class='ltx_para'
-<p class="ltx_p">is a short-cut notation for an assignment of the form +<p class='ltx_p'>is a short-cut notation for an assignment of the form 
-<span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting"><span class="ltx_text ltx_lst_identifier">a</span><span class="ltx_text ltx_lst_space"> </span>=<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">modarray</span>(<span class="ltx_text ltx_lst_identifier">a</span>,<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">iv</span>,<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">expr</span>)</span>.+<span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'><span class='ltx_text ltx_lst_identifier'>a</span><span class='ltx_text ltx_lst_space'> </span>=<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>modarray</span>(<span class='ltx_text ltx_lst_identifier'>a</span>,<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>iv</span>,<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>expr</span>)</span>.
 The result of this application is a new array which is almost identical to The result of this application is a new array which is almost identical to
-<span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">a</span>. Only the element (subarray) at index position <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">iv</span> +<span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>a</span>. Only the element (subarray) at index position <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>iv</span> 
-is different; it is replaced by <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">expr</span>+is different; it is replaced by <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>expr</span>
-<br class="ltx_break"><span class="ltx_text ltx_font_italic">Domain restrictions</span>:</p> +<br class='ltx_break'><span class='ltx_text ltx_font_italic'>Domain restrictions</span>:</p> 
-<ul id="Ch2.I3.I2class="ltx_itemize"+<ul id='Ch2.I3.I2class='ltx_itemize'
-<li id="Ch2.I3.I2.i1class="ltx_itemstyle="list-style-type:none;"+<li id='Ch2.I3.I2.i1class='ltx_itemstyle='list-style-type:none;'
-<span class="ltx_tag ltx_tag_itemize"><span class="ltx_text ltx_font_bold">–</span></span>  +<span class='ltx_tag ltx_tag_itemize'><span class='ltx_text ltx_font_bold'>–</span></span>  
-<div id="Ch2.I3.I2.i1.p1class="ltx_para"+<div id='Ch2.I3.I2.i1.p1class='ltx_para'
-<p class="ltx_p"><span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting"><span class="ltx_text ltx_lst_identifier">dim</span>(<span class="ltx_text ltx_lst_identifier">iv</span>)<span class="ltx_text ltx_lst_space"> </span>==<span class="ltx_text ltx_lst_space"> </span>1</span></p>+<p class='ltx_p'><span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'><span class='ltx_text ltx_lst_identifier'>dim</span>(<span class='ltx_text ltx_lst_identifier'>iv</span>)<span class='ltx_text ltx_lst_space'> </span>==<span class='ltx_text ltx_lst_space'> </span>1</span></p>
 </div> </div>
 </li> </li>
-<li id="Ch2.I3.I2.i2class="ltx_itemstyle="list-style-type:none;"+<li id='Ch2.I3.I2.i2class='ltx_itemstyle='list-style-type:none;'
-<span class="ltx_tag ltx_tag_itemize"><span class="ltx_text ltx_font_bold">–</span></span>  +<span class='ltx_tag ltx_tag_itemize'><span class='ltx_text ltx_font_bold'>–</span></span>  
-<div id="Ch2.I3.I2.i2.p1class="ltx_para"+<div id='Ch2.I3.I2.i2.p1class='ltx_para'
-<p class="ltx_p"><span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting"><span class="ltx_text ltx_lst_identifier">shape</span>(<span class="ltx_text ltx_lst_identifier">iv</span>)[[0]]<span class="ltx_text ltx_lst_space"> </span>&lt;=<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">dim</span>(<span class="ltx_text ltx_lst_identifier">a</span>)</span></p>+<p class='ltx_p'><span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'><span class='ltx_text ltx_lst_identifier'>shape</span>(<span class='ltx_text ltx_lst_identifier'>iv</span>)[[0]]<span class='ltx_text ltx_lst_space'> </span>&lt;=<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>dim</span>(<span class='ltx_text ltx_lst_identifier'>a</span>)</span></p>
 </div> </div>
 </li> </li>
-<li id="Ch2.I3.I2.i3class="ltx_itemstyle="list-style-type:none;"+<li id='Ch2.I3.I2.i3class='ltx_itemstyle='list-style-type:none;'
-<span class="ltx_tag ltx_tag_itemize"><span class="ltx_text ltx_font_bold">–</span></span>  +<span class='ltx_tag ltx_tag_itemize'><span class='ltx_text ltx_font_bold'>–</span></span>  
-<div id="Ch2.I3.I2.i3.p1class="ltx_para"+<div id='Ch2.I3.I2.i3.p1class='ltx_para'
-<p class="ltx_p"><math id="Ch2.I3.I2.i3.p1.m1class="ltx_Mathalttext="{{{{{{\forall\textrm{\lstinline 1}}}\in\{0,\dots,\textrm{\lstinline 1}}}\}:\textrm{% +<p class='ltx_p'><math id='Ch2.I3.I2.i3.p1.m1class='ltx_Mathalttext='{{{{{{\forall\textrm{\lstinline 1}}}\in\{0,\dots,\textrm{\lstinline 1}}}\}:\textrm{% 
-\lstinline 1}}}display="inline"><mrow><mrow><mrow><mo>∀</mo><mtext class="ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">i</mtext></mrow><mo>∈</mo><mrow><mo stretchy="false">{</mo><mn>0</mn><mo>,</mo><mi mathvariant="normal">…</mi><mo>,</mo><mrow class="ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting"><mtext>shape</mtext><mtext>(</mtext><mtext>iv</mtext><mtext>)[[0]]</mtext></mrow><mo stretchy="false">}</mo></mrow></mrow><mo>:</mo><mrow class="ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting"><mtext>iv</mtext><mtext>[[</mtext><mtext>i</mtext><mtext>]]</mtext><mtext> </mtext><mtext>&lt;</mtext><mtext> </mtext><mtext>shape</mtext><mtext>(</mtext><mtext>a</mtext><mtext>)[[</mtext><mtext>i</mtext><mtext>]]</mtext></mrow></mrow></math></p>+\lstinline 1}}}display='inline'><mrow><mrow><mrow><mo>∀</mo><mtext class='ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>i</mtext></mrow><mo>∈</mo><mrow><mo stretchy='false'>{</mo><mn>0</mn><mo>,</mo><mi mathvariant='normal'>…</mi><mo>,</mo><mrow class='ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'><mtext>shape</mtext><mtext>(</mtext><mtext>iv</mtext><mtext>)[[0]]</mtext></mrow><mo stretchy='false'>}</mo></mrow></mrow><mo>:</mo><mrow class='ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'><mtext>iv</mtext><mtext>[[</mtext><mtext>i</mtext><mtext>]]</mtext><mtext> </mtext><mtext>&lt;</mtext><mtext> </mtext><mtext>shape</mtext><mtext>(</mtext><mtext>a</mtext><mtext>)[[</mtext><mtext>i</mtext><mtext>]]</mtext></mrow></mrow></math></p>
 </div> </div>
 </li> </li>
-<li id="Ch2.I3.I2.i4class="ltx_itemstyle="list-style-type:none;"+<li id='Ch2.I3.I2.i4class='ltx_itemstyle='list-style-type:none;'
-<span class="ltx_tag ltx_tag_itemize"><span class="ltx_text ltx_font_bold">–</span></span>  +<span class='ltx_tag ltx_tag_itemize'><span class='ltx_text ltx_font_bold'>–</span></span>  
-<div id="Ch2.I3.I2.i4.p1class="ltx_para"+<div id='Ch2.I3.I2.i4.p1class='ltx_para'
-<p class="ltx_p"><span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting"><span class="ltx_text ltx_lst_identifier">shape</span>(<span class="ltx_text ltx_lst_identifier">expr</span>)<span class="ltx_text ltx_lst_space"> </span>==<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">shape</span>(<span class="ltx_text ltx_lst_identifier">a</span>[<span class="ltx_text ltx_lst_identifier">iv</span>])</span>.</p>+<p class='ltx_p'><span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'><span class='ltx_text ltx_lst_identifier'>shape</span>(<span class='ltx_text ltx_lst_identifier'>expr</span>)<span class='ltx_text ltx_lst_space'> </span>==<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>shape</span>(<span class='ltx_text ltx_lst_identifier'>a</span>[<span class='ltx_text ltx_lst_identifier'>iv</span>])</span>.</p>
 </div> </div>
 </li> </li>
Line 1041: Line 1640:
 </div> </div>
 </dd> </dd>
-<dt id="Ch2.I3.ix5class="ltx_item"><span class="ltx_tag ltx_tag_description">reshape(shp, expr)</span></dt> +<dt id='Ch2.I3.ix5class='ltx_item'><span class='ltx_tag ltx_tag_description'>reshape(shp, expr)</span></dt> 
-<dd class="ltx_item"+<dd class='ltx_item'
-<div id="Ch2.I3.ix5.p1class="ltx_para"+<div id='Ch2.I3.ix5.p1class='ltx_para'
-<p class="ltx_p">computes an array with shape vector <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">shp</span> +<p class='ltx_p'>computes an array with shape vector <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>shp</span> 
-and data vector identical to that of <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">expr</span>+and data vector identical to that of <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>expr</span>
-<br class="ltx_break"><span class="ltx_text ltx_font_italic">Domain restrictions</span>:</p> +<br class='ltx_break'><span class='ltx_text ltx_font_italic'>Domain restrictions</span>:</p> 
-<ul id="Ch2.I3.I3class="ltx_itemize"+<ul id='Ch2.I3.I3class='ltx_itemize'
-<li id="Ch2.I3.I3.i1class="ltx_itemstyle="list-style-type:none;"+<li id='Ch2.I3.I3.i1class='ltx_itemstyle='list-style-type:none;'
-<span class="ltx_tag ltx_tag_itemize"><span class="ltx_text ltx_font_bold">–</span></span>  +<span class='ltx_tag ltx_tag_itemize'><span class='ltx_text ltx_font_bold'>–</span></span>  
-<div id="Ch2.I3.I3.i1.p1class="ltx_para"+<div id='Ch2.I3.I3.i1.p1class='ltx_para'
-<p class="ltx_p"><span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting"><span class="ltx_text ltx_lst_identifier">dim</span>(<span class="ltx_text ltx_lst_identifier">shp</span>)<span class="ltx_text ltx_lst_space"> </span>==<span class="ltx_text ltx_lst_space"> </span>1</span></p>+<p class='ltx_p'><span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'><span class='ltx_text ltx_lst_identifier'>dim</span>(<span class='ltx_text ltx_lst_identifier'>shp</span>)<span class='ltx_text ltx_lst_space'> </span>==<span class='ltx_text ltx_lst_space'> </span>1</span></p>
 </div> </div>
 </li> </li>
-<li id="Ch2.I3.I3.i2class="ltx_itemstyle="list-style-type:none;"+<li id='Ch2.I3.I3.i2class='ltx_itemstyle='list-style-type:none;'
-<span class="ltx_tag ltx_tag_itemize"><span class="ltx_text ltx_font_bold">–</span></span>  +<span class='ltx_tag ltx_tag_itemize'><span class='ltx_text ltx_font_bold'>–</span></span>  
-<div id="Ch2.I3.I3.i2.p1class="ltx_para"+<div id='Ch2.I3.I3.i2.p1class='ltx_para'
-<p class="ltx_p"><math id="Ch2.I3.I3.i2.p1.m1class="ltx_Mathalttext="{{{{{{{{\prod\limits_{i=0}^{{\textrm{\lstinline 1}}}}}\textrm{\lstinline 1}}}=\prod% +<p class='ltx_p'><math id='Ch2.I3.I3.i2.p1.m1class='ltx_Mathalttext='{{{{{{{{\prod\limits_{i=0}^{{\textrm{\lstinline 1}}}}}\textrm{\lstinline 1}}}=\prod% 
-\limits_{i=0}^{{\textrm{\lstinline 1}}}}}\textrm{\lstinline 1}}}display="inline"><mrow><mrow><munderover><mo largeop="truemovablelimits="falsesymmetric="true">∏</mo><mrow><mi>i</mi><mo>=</mo><mn>0</mn></mrow><mrow class="ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting"><mtext>shape</mtext><mtext>(</mtext><mtext>shp</mtext><mtext>)[[0]]-1</mtext></mrow></munderover><mrow class="ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting"><mtext>shp</mtext><mtext>[[</mtext><mtext>i</mtext><mtext>]]</mtext></mrow></mrow><mo>=</mo><mrow><munderover><mo largeop="truemovablelimits="falsesymmetric="true">∏</mo><mrow><mi>i</mi><mo>=</mo><mn>0</mn></mrow><mrow class="ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting"><mtext>dim</mtext><mtext>(</mtext><mtext>expr</mtext><mtext>)-1</mtext></mrow></munderover><mrow class="ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting"><mtext>shape</mtext><mtext>(</mtext><mtext>expr</mtext><mtext>)[[</mtext><mtext>i</mtext><mtext>]]</mtext></mrow></mrow></mrow></math>.</p>+\limits_{i=0}^{{\textrm{\lstinline 1}}}}}\textrm{\lstinline 1}}}display='inline'><mrow><mrow><munderover><mo largeop='truemovablelimits='falsesymmetric='true'>∏</mo><mrow><mi>i</mi><mo>=</mo><mn>0</mn></mrow><mrow class='ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'><mtext>shape</mtext><mtext>(</mtext><mtext>shp</mtext><mtext>)[[0]]-1</mtext></mrow></munderover><mrow class='ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'><mtext>shp</mtext><mtext>[[</mtext><mtext>i</mtext><mtext>]]</mtext></mrow></mrow><mo>=</mo><mrow><munderover><mo largeop='truemovablelimits='falsesymmetric='true'>∏</mo><mrow><mi>i</mi><mo>=</mo><mn>0</mn></mrow><mrow class='ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'><mtext>dim</mtext><mtext>(</mtext><mtext>expr</mtext><mtext>)-1</mtext></mrow></munderover><mrow class='ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'><mtext>shape</mtext><mtext>(</mtext><mtext>expr</mtext><mtext>)[[</mtext><mtext>i</mtext><mtext>]]</mtext></mrow></mrow></mrow></math>.</p>
 </div> </div>
 </li> </li>
Line 1064: Line 1663:
 </div> </div>
 </dd> </dd>
-<dt id="Ch2.I3.ix6class="ltx_item"><span class="ltx_tag ltx_tag_description">genarray(shp, expr)</span></dt> +<dt id='Ch2.I3.ix6class='ltx_item'><span class='ltx_tag ltx_tag_description'>genarray(shp, expr)</span></dt> 
-<dd class="ltx_item"+<dd class='ltx_item'
-<div id="Ch2.I3.ix6.p1class="ltx_para"+<div id='Ch2.I3.ix6.p1class='ltx_para'
-<p class="ltx_p">generates an array of shape <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">shp</span>, +<p class='ltx_p'>generates an array of shape <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>shp</span>, 
-whose elements are all identical to <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">expr</span>+whose elements are all identical to <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>expr</span>
-<br class="ltx_break"><span class="ltx_text ltx_font_italic">Domain restrictions</span>: <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting"><span class="ltx_text ltx_lst_identifier">dim</span>(<span class="ltx_text ltx_lst_identifier">shp</span>)<span class="ltx_text ltx_lst_space"> </span>==<span class="ltx_text ltx_lst_space"> </span>1</span>.</p>+<br class='ltx_break'><span class='ltx_text ltx_font_italic'>Domain restrictions</span>: <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'><span class='ltx_text ltx_lst_identifier'>dim</span>(<span class='ltx_text ltx_lst_identifier'>shp</span>)<span class='ltx_text ltx_lst_space'> </span>==<span class='ltx_text ltx_lst_space'> </span>1</span>.</p>
 </div> </div>
 </dd> </dd>
 </dl> </dl>
 </div> </div>
-<div id="Ch2.S2.SS1.SSSx1.p3class="ltx_para"+<div id='Ch2.S2.SS1.SSSx1.p3class='ltx_para'
-<p class="ltx_p">Although these operations are fairly self-explaining or known from +<p class='ltx_p'>Although these operations are fairly self-explaining or known from 
-Lesson <a href="#Ch2.S1title="2.1 Lesson 1: Arrays as Data ‣ Chapter 2 Array Programming Basics ‣ Part I Trails Covering the Basics of SaCclass="ltx_ref"><span class="ltx_text ltx_ref_tag">2.1</span></a> on <span class="ltx_text ltx_font_bold">Arrays as Data</span>, let us have a look+Lesson <a href='#Ch2.S1title='2.1 Lesson 1: Arrays as Data ‣ Chapter 2 Array Programming Basics ‣ Part I Trails Covering the Basics of SaCclass='ltx_ref'><span class='ltx_text ltx_ref_tag'>2.1</span></a> on <span class='ltx_text ltx_font_bold'>Arrays as Data</span>, let us have a look
 at a few example applications:</p> at a few example applications:</p>
 </div> </div>
-<figure id="LST9class="ltx_float ltx_lstlisting ltx_role_listing"+<figure id='LST9class='ltx_float ltx_lstlisting ltx_role_listing'
-<figcaption class="ltx_caption"><span class="ltx_tag ltx_tag_float">Listing 9: </span>Basic Operations</figcaption> +<figcaption class='ltx_caption'><span class='ltx_tag ltx_tag_float'>Listing 9: </span>Basic Operations</figcaption> 
-<div class="ltx_listing ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_listing"+<div class='ltx_listing ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_listing'
-<div class="ltx_listing_data"><a href="data:text/plain;base64,dXNlIFN0ZElPOiBhbGw7CnVzZSBBcnJheTogYWxsOwoKaW50IG1haW4oKQp7CiAgdmVjdCA9IFsx%0ALDIsMyw0LDUsNiw3LDgsOSwxMCwxMSwxMl07CgogIG1hdCA9IHJlc2hhcGUoWzMsNF0sIHZlY3Qp%0AOwogIHByaW50KG1hdCk7CgogIHByaW50KG1hdFtbMSwxXV0pOwogIHByaW50KG1hdFtbMl1dKTsK%0AICBwcmludChtYXRbW11dKTsKCiAgbWF0W1sxLDFdXSA9IDA7CiAgcHJpbnQobWF0KTsKICBtYXRb%0AWzJdXSA9IFswLDAsMCwwXTsKICBwcmludChtYXQpOwogIG1hdFtbXV0gPSBnZW5hcnJheShbMyw0%0AXSwgMCk7CiAgcHJpbnQobWF0KTsKCiAgZW1wdHlfdmVjdCA9IFtdOwogIHByaW50KGVtcHR5X3Zl%0AY3QpOwogIGVtcHR5X21hdCA9IHJlc2hhcGUoWzIyLDBdLCBlbXB0eV92ZWN0KTsKICBwcmludChl%0AbXB0eV9tYXQpOwogIHByaW50KGRpbShlbXB0eV9tYXQpKTsKICBwcmludChzaGFwZShlbXB0eV9t%0AYXQpKTsKCiAgcmV0dXJuIDA7Cn0=%0A">⬇</a></div> +<div class='ltx_listing_data'><a href='data:text/plain;base64,dXNlIFN0ZElPOiBhbGw7CnVzZSBBcnJheTogYWxsOwoKaW50IG1haW4oKQp7CiAgdmVjdCA9IFsx%0ALDIsMyw0LDUsNiw3LDgsOSwxMCwxMSwxMl07CgogIG1hdCA9IHJlc2hhcGUoWzMsNF0sIHZlY3Qp%0AOwogIHByaW50KG1hdCk7CgogIHByaW50KG1hdFtbMSwxXV0pOwogIHByaW50KG1hdFtbMl1dKTsK%0AICBwcmludChtYXRbW11dKTsKCiAgbWF0W1sxLDFdXSA9IDA7CiAgcHJpbnQobWF0KTsKICBtYXRb%0AWzJdXSA9IFswLDAsMCwwXTsKICBwcmludChtYXQpOwogIG1hdFtbXV0gPSBnZW5hcnJheShbMyw0%0AXSwgMCk7CiAgcHJpbnQobWF0KTsKCiAgZW1wdHlfdmVjdCA9IFtdOwogIHByaW50KGVtcHR5X3Zl%0AY3QpOwogIGVtcHR5X21hdCA9IHJlc2hhcGUoWzIyLDBdLCBlbXB0eV92ZWN0KTsKICBwcmludChl%0AbXB0eV9tYXQpOwogIHByaW50KGRpbShlbXB0eV9tYXQpKTsKICBwcmludChzaGFwZShlbXB0eV9t%0AYXQpKTsKCiAgcmV0dXJuIDA7Cn0=%0A'>⬇</a></div> 
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">1</span></span><span class="ltx_text ltx_lst_keyword ltx_font_bold">use</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">StdIO</span>:<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">all</span>;+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>1</span></span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>use</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>StdIO</span>:<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>all</span>;
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">2</span></span><span class="ltx_text ltx_lst_keyword ltx_font_bold">use</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">Array</span>:<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">all</span>;+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>2</span></span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>use</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>Array</span>:<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>all</span>;
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">3</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>3</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">4</span></span><span class="ltx_text ltx_lst_keyword ltx_font_bold">int</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">main</span>()+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>4</span></span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>int</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>main</span>()
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">5</span></span>{+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>5</span></span>{
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">6</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">vect</span><span class="ltx_text ltx_lst_space"> </span>=<span class="ltx_text ltx_lst_space"> </span>[1,2,3,4,5,6,7,8,9,10,11,12];+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>6</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>vect</span><span class='ltx_text ltx_lst_space'> </span>=<span class='ltx_text ltx_lst_space'> </span>[1,2,3,4,5,6,7,8,9,10,11,12];
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">7</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>7</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">8</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">mat</span><span class="ltx_text ltx_lst_space"> </span>=<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">reshape</span>([3,4],<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">vect</span>);+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>8</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>mat</span><span class='ltx_text ltx_lst_space'> </span>=<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>reshape</span>([3,4],<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>vect</span>);
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">9</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">print</span>(<span class="ltx_text ltx_lst_identifier">mat</span>);+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>9</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>print</span>(<span class='ltx_text ltx_lst_identifier'>mat</span>);
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">10</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>10</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">11</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">print</span>(<span class="ltx_text ltx_lst_identifier">mat</span>[[1,1]]);+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>11</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>print</span>(<span class='ltx_text ltx_lst_identifier'>mat</span>[[1,1]]);
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">12</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">print</span>(<span class="ltx_text ltx_lst_identifier">mat</span>[[2]]);+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>12</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>print</span>(<span class='ltx_text ltx_lst_identifier'>mat</span>[[2]]);
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">13</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">print</span>(<span class="ltx_text ltx_lst_identifier">mat</span>[[]]);+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>13</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>print</span>(<span class='ltx_text ltx_lst_identifier'>mat</span>[[]]);
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">14</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>14</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">15</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">mat</span>[[1,1]]<span class="ltx_text ltx_lst_space"> </span>=<span class="ltx_text ltx_lst_space"> </span>0;+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>15</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>mat</span>[[1,1]]<span class='ltx_text ltx_lst_space'> </span>=<span class='ltx_text ltx_lst_space'> </span>0;
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">16</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">print</span>(<span class="ltx_text ltx_lst_identifier">mat</span>);+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>16</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>print</span>(<span class='ltx_text ltx_lst_identifier'>mat</span>);
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">17</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">mat</span>[[2]]<span class="ltx_text ltx_lst_space"> </span>=<span class="ltx_text ltx_lst_space"> </span>[0,0,0,0];+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>17</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>mat</span>[[2]]<span class='ltx_text ltx_lst_space'> </span>=<span class='ltx_text ltx_lst_space'> </span>[0,0,0,0];
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">18</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">print</span>(<span class="ltx_text ltx_lst_identifier">mat</span>);+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>18</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>print</span>(<span class='ltx_text ltx_lst_identifier'>mat</span>);
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">19</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">mat</span>[[]]<span class="ltx_text ltx_lst_space"> </span>=<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">genarray</span>([3,4],<span class="ltx_text ltx_lst_space"> </span>0);+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>19</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>mat</span>[[]]<span class='ltx_text ltx_lst_space'> </span>=<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>genarray</span>([3,4],<span class='ltx_text ltx_lst_space'> </span>0);
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">20</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">print</span>(<span class="ltx_text ltx_lst_identifier">mat</span>);+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>20</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>print</span>(<span class='ltx_text ltx_lst_identifier'>mat</span>);
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">21</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>21</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">22</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">empty_vect</span><span class="ltx_text ltx_lst_space"> </span>=<span class="ltx_text ltx_lst_space"> </span>[];+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>22</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>empty_vect</span><span class='ltx_text ltx_lst_space'> </span>=<span class='ltx_text ltx_lst_space'> </span>[];
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">23</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">print</span>(<span class="ltx_text ltx_lst_identifier">empty_vect</span>);+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>23</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>print</span>(<span class='ltx_text ltx_lst_identifier'>empty_vect</span>);
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">24</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">empty_mat</span><span class="ltx_text ltx_lst_space"> </span>=<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">reshape</span>([22,0],<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">empty_vect</span>);+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>24</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>empty_mat</span><span class='ltx_text ltx_lst_space'> </span>=<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>reshape</span>([22,0],<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>empty_vect</span>);
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">25</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">print</span>(<span class="ltx_text ltx_lst_identifier">empty_mat</span>);+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>25</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>print</span>(<span class='ltx_text ltx_lst_identifier'>empty_mat</span>);
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">26</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">print</span>(<span class="ltx_text ltx_lst_identifier">dim</span>(<span class="ltx_text ltx_lst_identifier">empty_mat</span>));+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>26</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>print</span>(<span class='ltx_text ltx_lst_identifier'>dim</span>(<span class='ltx_text ltx_lst_identifier'>empty_mat</span>));
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">27</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">print</span>(<span class="ltx_text ltx_lst_identifier">shape</span>(<span class="ltx_text ltx_lst_identifier">empty_mat</span>));+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>27</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>print</span>(<span class='ltx_text ltx_lst_identifier'>shape</span>(<span class='ltx_text ltx_lst_identifier'>empty_mat</span>));
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">28</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>28</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">29</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_keyword ltx_font_bold">return</span><span class="ltx_text ltx_lst_space"> </span>0;+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>29</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>return</span><span class='ltx_text ltx_lst_space'> </span>0;
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">30</span></span>}+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>30</span></span>}
 </div> </div>
 </div> </div>
 </figure> </figure>
-<div id="Ch2.S2.SS1.SSSx1.p4class="ltx_para"+<div id='Ch2.S2.SS1.SSSx1.p4class='ltx_para'
-<p class="ltx_p">The different selections in lines 11-13 show how+<p class='ltx_p'>The different selections in lines 11-13 show how
 the dimensionality of the selected element increases as the length of the index the dimensionality of the selected element increases as the length of the index
 vector decreases. If the index vector degenerates into an empty vector, the vector decreases. If the index vector degenerates into an empty vector, the
Line 1183: Line 1782:
 of individual elements, rows, or the entire array.</p> of individual elements, rows, or the entire array.</p>
 </div> </div>
-<div id="Ch2.S2.SS1.SSSx1.p5class="ltx_para"+<div id='Ch2.S2.SS1.SSSx1.p5class='ltx_para'
-<p class="ltx_p">Lines 22-27 are meant to draw the reader’s+<p class='ltx_p'>Lines 22-27 are meant to draw the reader’s
 attention to the fact that there exists an unlimited number of distinct empty attention to the fact that there exists an unlimited number of distinct empty
-arrays in <span class="ltx_text ltx_font_smallcaps">SaC</span>!</p>+arrays in <span class='ltx_text ltx_font_smallcaps'>SaC</span>!</p>
 </div> </div>
-<div id="Thmtheorem5class="ltx_theorem ltx_theorem_theorem"+<div id='Thmtheorem5class='ltx_theorem ltx_theorem_theorem'
-<h6 class="ltx_title ltx_runin ltx_font_bold ltx_title_theorem">Exercise 5. </h6> +<h6 class='ltx_title ltx_runin ltx_font_bold ltx_title_theorem'>Exercise 5. </h6> 
-<div id="Thmtheorem5.p1class="ltx_para"+<div id='Thmtheorem5.p1class='ltx_para'
-<p class="ltx_p">Assuming <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">mat</span> to be defined as in the previous example, what results do you+<p class='ltx_p'>Assuming <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>mat</span> to be defined as in the previous example, what results do you
 expect from the following expressions:</p> expect from the following expressions:</p>
-<ul id="Ch2.I4class="ltx_itemize"+<ul id='Ch2.I4class='ltx_itemize'
-<li id="Ch2.I4.i1class="ltx_itemstyle="list-style-type:none;"+<li id='Ch2.I4.i1class='ltx_itemstyle='list-style-type:none;'
-<span class="ltx_tag ltx_tag_itemize">•</span>  +<span class='ltx_tag ltx_tag_itemize'>•</span>  
-<div id="Ch2.I4.i1.p1class="ltx_para"+<div id='Ch2.I4.i1.p1class='ltx_para'
-<p class="ltx_p"><span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting">([3,0,5],<span class="ltx_text ltx_lst_space"> </span>[])[[]]</span>?</p>+<p class='ltx_p'><span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>([3,0,5],<span class='ltx_text ltx_lst_space'> </span>[])[[]]</span>?</p>
 </div> </div>
 </li> </li>
-<li id="Ch2.I4.i2class="ltx_itemstyle="list-style-type:none;"+<li id='Ch2.I4.i2class='ltx_itemstyle='list-style-type:none;'
-<span class="ltx_tag ltx_tag_itemize">•</span>  +<span class='ltx_tag ltx_tag_itemize'>•</span>  
-<div id="Ch2.I4.i2.p1class="ltx_para"+<div id='Ch2.I4.i2.p1class='ltx_para'
-<p class="ltx_p"><span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting">([3,0,5],<span class="ltx_text ltx_lst_space"> </span>[])[[1]]</span>?</p>+<p class='ltx_p'><span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>([3,0,5],<span class='ltx_text ltx_lst_space'> </span>[])[[1]]</span>?</p>
 </div> </div>
 </li> </li>
-<li id="Ch2.I4.i3class="ltx_itemstyle="list-style-type:none;"+<li id='Ch2.I4.i3class='ltx_itemstyle='list-style-type:none;'
-<span class="ltx_tag ltx_tag_itemize">•</span>  +<span class='ltx_tag ltx_tag_itemize'>•</span>  
-<div id="Ch2.I4.i3.p1class="ltx_para"+<div id='Ch2.I4.i3.p1class='ltx_para'
-<p class="ltx_p"><span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting">([3,0,5],<span class="ltx_text ltx_lst_space"> </span>[])[[1,0]]</span>?</p>+<p class='ltx_p'><span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>([3,0,5],<span class='ltx_text ltx_lst_space'> </span>[])[[1,0]]</span>?</p>
 </div> </div>
 </li> </li>
-<li id="Ch2.I4.i4class="ltx_itemstyle="list-style-type:none;"+<li id='Ch2.I4.i4class='ltx_itemstyle='list-style-type:none;'
-<span class="ltx_tag ltx_tag_itemize">•</span>  +<span class='ltx_tag ltx_tag_itemize'>•</span>  
-<div id="Ch2.I4.i4.p1class="ltx_para"+<div id='Ch2.I4.i4.p1class='ltx_para'
-<p class="ltx_p"><span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting"><span class="ltx_text ltx_lst_identifier">mat</span>[<span class="ltx_text ltx_lst_identifier">reshape</span>([2,0],<span class="ltx_text ltx_lst_space"> </span>[])]</span>?</p>+<p class='ltx_p'><span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'><span class='ltx_text ltx_lst_identifier'>mat</span>[<span class='ltx_text ltx_lst_identifier'>reshape</span>([2,0],<span class='ltx_text ltx_lst_space'> </span>[])]</span>?</p>
 </div> </div>
 </li> </li>
Line 1222: Line 1821:
 </div> </div>
 </section> </section>
-<section id="Ch2.S2.SS1.SSSx2class="ltx_subsubsection"+<section id='Ch2.S2.SS1.SSSx2class='ltx_subsubsection'
-<h6 class="ltx_title ltx_title_subsubsection">Element-wise Extensions</h6>+<h6 class='ltx_title ltx_title_subsubsection'>Element-wise Extensions</h6>
  
-<div id="Ch2.S2.SS1.SSSx2.p1class="ltx_para"+<div id='Ch2.S2.SS1.SSSx2.p1class='ltx_para'
-<p class="ltx_p">Most of the operations that can be found as standard operations on scalars +<p class='ltx_p'>Most of the operations that can be found as standard operations on scalars 
-in other languages are applicable to entire arrays in <span class="ltx_text ltx_font_smallcaps">SaC</span>.+in other languages are applicable to entire arrays in <span class='ltx_text ltx_font_smallcaps'>SaC</span>.
 Their semantics are simply element-wise extensions of the well-known scalar Their semantics are simply element-wise extensions of the well-known scalar
 operations. operations.
Line 1240: Line 1839:
 argument arrays.</p> argument arrays.</p>
 </div> </div>
-<div id="Ch2.S2.SS1.SSSx2.p2class="ltx_para"+<div id='Ch2.S2.SS1.SSSx2.p2class='ltx_para'
-<p class="ltx_p">In detail, the following operations are available:</p>+<p class='ltx_p'>In detail, the following operations are available:</p>
 </div> </div>
-<div id="Ch2.S2.SS1.SSSx2.p3class="ltx_para"+<div id='Ch2.S2.SS1.SSSx2.p3class='ltx_para'
-<dl id="Ch2.I5class="ltx_description"+<dl id='Ch2.I5class='ltx_description'
-<dt id="Ch2.I5.ix1class="ltx_item"><span class="ltx_tag ltx_tag_description">arithmetic operations</span></dt> +<dt id='Ch2.I5.ix1class='ltx_item'><span class='ltx_tag ltx_tag_description'>arithmetic operations</span></dt> 
-<dd class="ltx_item"+<dd class='ltx_item'
-<div id="Ch2.I5.ix1.p1class="ltx_para"+<div id='Ch2.I5.ix1.p1class='ltx_para'
-<p class="ltx_p">including addition (<span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting"><math id="Ch2.I5.ix1.p1.m1class="ltx_Mathalttext="e_{1}display="inline"><msub><mi>e</mi><mn>1</mn></msub></math><span class="ltx_text ltx_lst_space"> </span>+<span class="ltx_text ltx_lst_space"> </span><math id="Ch2.I5.ix1.p1.m2class="ltx_Mathalttext="e_{2}display="inline"><msub><mi>e</mi><mn>2</mn></msub></math></span>), +<p class='ltx_p'>including addition (<span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'><math id='Ch2.I5.ix1.p1.m1class='ltx_Mathalttext='e_{1}display='inline'><msub><mi>e</mi><mn>1</mn></msub></math><span class='ltx_text ltx_lst_space'> </span>+<span class='ltx_text ltx_lst_space'> </span><math id='Ch2.I5.ix1.p1.m2class='ltx_Mathalttext='e_{2}display='inline'><msub><mi>e</mi><mn>2</mn></msub></math></span>), 
-subtraction (<span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting"><math id="Ch2.I5.ix1.p1.m3class="ltx_Mathalttext="e_{1}display="inline"><msub><mi>e</mi><mn>1</mn></msub></math><span class="ltx_text ltx_lst_space"> </span>-<span class="ltx_text ltx_lst_space"> </span><math id="Ch2.I5.ix1.p1.m4class="ltx_Mathalttext="e_{2}display="inline"><msub><mi>e</mi><mn>2</mn></msub></math></span>), negation (<span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting">-<math id="Ch2.I5.ix1.p1.m5class="ltx_Mathalttext="e_{1}display="inline"><msub><mi>e</mi><mn>1</mn></msub></math></span>), multiplication +subtraction (<span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'><math id='Ch2.I5.ix1.p1.m3class='ltx_Mathalttext='e_{1}display='inline'><msub><mi>e</mi><mn>1</mn></msub></math><span class='ltx_text ltx_lst_space'> </span>-<span class='ltx_text ltx_lst_space'> </span><math id='Ch2.I5.ix1.p1.m4class='ltx_Mathalttext='e_{2}display='inline'><msub><mi>e</mi><mn>2</mn></msub></math></span>), negation (<span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>-<math id='Ch2.I5.ix1.p1.m5class='ltx_Mathalttext='e_{1}display='inline'><msub><mi>e</mi><mn>1</mn></msub></math></span>), multiplication 
-(<span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting"><math id="Ch2.I5.ix1.p1.m6class="ltx_Mathalttext="e_{1}display="inline"><msub><mi>e</mi><mn>1</mn></msub></math><span class="ltx_text ltx_lst_space"> </span>*<span class="ltx_text ltx_lst_space"> </span><math id="Ch2.I5.ix1.p1.m7class="ltx_Mathalttext="e_{2}display="inline"><msub><mi>e</mi><mn>2</mn></msub></math></span>), and division (<span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting"><math id="Ch2.I5.ix1.p1.m8class="ltx_Mathalttext="e_{1}display="inline"><msub><mi>e</mi><mn>1</mn></msub></math><span class="ltx_text ltx_lst_space"> </span>/<span class="ltx_text ltx_lst_space"> </span><math id="Ch2.I5.ix1.p1.m9class="ltx_Mathalttext="e_{2}display="inline"><msub><mi>e</mi><mn>2</mn></msub></math></span>). +(<span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'><math id='Ch2.I5.ix1.p1.m6class='ltx_Mathalttext='e_{1}display='inline'><msub><mi>e</mi><mn>1</mn></msub></math><span class='ltx_text ltx_lst_space'> </span>*<span class='ltx_text ltx_lst_space'> </span><math id='Ch2.I5.ix1.p1.m7class='ltx_Mathalttext='e_{2}display='inline'><msub><mi>e</mi><mn>2</mn></msub></math></span>), and division (<span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'><math id='Ch2.I5.ix1.p1.m8class='ltx_Mathalttext='e_{1}display='inline'><msub><mi>e</mi><mn>1</mn></msub></math><span class='ltx_text ltx_lst_space'> </span>/<span class='ltx_text ltx_lst_space'> </span><math id='Ch2.I5.ix1.p1.m9class='ltx_Mathalttext='e_{2}display='inline'><msub><mi>e</mi><mn>2</mn></msub></math></span>). 
-Furthermore, a modulo operation (<span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting"><math id="Ch2.I5.ix1.p1.m10class="ltx_Mathalttext="e_{1}display="inline"><msub><mi>e</mi><mn>1</mn></msub></math><span class="ltx_text ltx_lst_space"> </span>%<span class="ltx_text ltx_lst_space"> </span><math id="Ch2.I5.ix1.p1.m11class="ltx_Mathalttext="e_{2}display="inline"><msub><mi>e</mi><mn>2</mn></msub></math></span>) is supported on integer+Furthermore, a modulo operation (<span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'><math id='Ch2.I5.ix1.p1.m10class='ltx_Mathalttext='e_{1}display='inline'><msub><mi>e</mi><mn>1</mn></msub></math><span class='ltx_text ltx_lst_space'> </span>%<span class='ltx_text ltx_lst_space'> </span><math id='Ch2.I5.ix1.p1.m11class='ltx_Mathalttext='e_{2}display='inline'><msub><mi>e</mi><mn>2</mn></msub></math></span>) is supported on integer
 numbers. numbers.
-<br class="ltx_break"><span class="ltx_text ltx_font_italic">Domain restrictions</span>: the element types of <math id="Ch2.I5.ix1.p1.m12class="ltx_Mathalttext="e_{1}display="inline"><msub><mi>e</mi><mn>1</mn></msub></math> and +<br class='ltx_break'><span class='ltx_text ltx_font_italic'>Domain restrictions</span>: the element types of <math id='Ch2.I5.ix1.p1.m12class='ltx_Mathalttext='e_{1}display='inline'><msub><mi>e</mi><mn>1</mn></msub></math> and 
-<math id="Ch2.I5.ix1.p1.m13class="ltx_Mathalttext="e_{2}display="inline"><msub><mi>e</mi><mn>2</mn></msub></math> have to be of the same numerical type.</p>+<math id='Ch2.I5.ix1.p1.m13class='ltx_Mathalttext='e_{2}display='inline'><msub><mi>e</mi><mn>2</mn></msub></math> have to be of the same numerical type.</p>
 </div> </div>
 </dd> </dd>
-<dt id="Ch2.I5.ix2class="ltx_item"><span class="ltx_tag ltx_tag_description">logical operations</span></dt> +<dt id='Ch2.I5.ix2class='ltx_item'><span class='ltx_tag ltx_tag_description'>logical operations</span></dt> 
-<dd class="ltx_item"+<dd class='ltx_item'
-<div id="Ch2.I5.ix2.p1class="ltx_para"+<div id='Ch2.I5.ix2.p1class='ltx_para'
-<p class="ltx_p">including conjunction (<span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting"><math id="Ch2.I5.ix2.p1.m1class="ltx_Mathalttext="e_{1}display="inline"><msub><mi>e</mi><mn>1</mn></msub></math><span class="ltx_text ltx_lst_space"> </span>&amp;&amp;<span class="ltx_text ltx_lst_space"> </span><math id="Ch2.I5.ix2.p1.m2class="ltx_Mathalttext="e_{2}display="inline"><msub><mi>e</mi><mn>2</mn></msub></math></span>), disjunction +<p class='ltx_p'>including conjunction (<span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'><math id='Ch2.I5.ix2.p1.m1class='ltx_Mathalttext='e_{1}display='inline'><msub><mi>e</mi><mn>1</mn></msub></math><span class='ltx_text ltx_lst_space'> </span>&amp;&amp;<span class='ltx_text ltx_lst_space'> </span><math id='Ch2.I5.ix2.p1.m2class='ltx_Mathalttext='e_{2}display='inline'><msub><mi>e</mi><mn>2</mn></msub></math></span>), disjunction 
-(<span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting"><math id="Ch2.I5.ix2.p1.m3class="ltx_Mathalttext="e_{1}display="inline"><msub><mi>e</mi><mn>1</mn></msub></math><span class="ltx_text ltx_lst_space"> </span>||<span class="ltx_text ltx_lst_space"> </span><math id="Ch2.I5.ix2.p1.m4class="ltx_Mathalttext="e_{2}display="inline"><msub><mi>e</mi><mn>2</mn></msub></math></span>), and negation (<span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting">!<math id="Ch2.I5.ix2.p1.m5class="ltx_Mathalttext="e_{1}display="inline"><msub><mi>e</mi><mn>1</mn></msub></math></span>). +(<span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'><math id='Ch2.I5.ix2.p1.m3class='ltx_Mathalttext='e_{1}display='inline'><msub><mi>e</mi><mn>1</mn></msub></math><span class='ltx_text ltx_lst_space'> </span>||<span class='ltx_text ltx_lst_space'> </span><math id='Ch2.I5.ix2.p1.m4class='ltx_Mathalttext='e_{2}display='inline'><msub><mi>e</mi><mn>2</mn></msub></math></span>), and negation (<span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>!<math id='Ch2.I5.ix2.p1.m5class='ltx_Mathalttext='e_{1}display='inline'><msub><mi>e</mi><mn>1</mn></msub></math></span>). 
-<br class="ltx_break"><span class="ltx_text ltx_font_italic">Domain restrictions</span>: the element types have to be Boolean.</p>+<br class='ltx_break'><span class='ltx_text ltx_font_italic'>Domain restrictions</span>: the element types have to be Boolean.</p>
 </div> </div>
 </dd> </dd>
-<dt id="Ch2.I5.ix3class="ltx_item"><span class="ltx_tag ltx_tag_description">relational operations</span></dt> +<dt id='Ch2.I5.ix3class='ltx_item'><span class='ltx_tag ltx_tag_description'>relational operations</span></dt> 
-<dd class="ltx_item"+<dd class='ltx_item'
-<div id="Ch2.I5.ix3.p1class="ltx_para"+<div id='Ch2.I5.ix3.p1class='ltx_para'
-<p class="ltx_p">including less-than (<span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting"><math id="Ch2.I5.ix3.p1.m1class="ltx_Mathalttext="e_{1}display="inline"><msub><mi>e</mi><mn>1</mn></msub></math><span class="ltx_text ltx_lst_space"> </span>&lt;<span class="ltx_text ltx_lst_space"> </span><math id="Ch2.I5.ix3.p1.m2class="ltx_Mathalttext="e_{2}display="inline"><msub><mi>e</mi><mn>2</mn></msub></math></span>), +<p class='ltx_p'>including less-than (<span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'><math id='Ch2.I5.ix3.p1.m1class='ltx_Mathalttext='e_{1}display='inline'><msub><mi>e</mi><mn>1</mn></msub></math><span class='ltx_text ltx_lst_space'> </span>&lt;<span class='ltx_text ltx_lst_space'> </span><math id='Ch2.I5.ix3.p1.m2class='ltx_Mathalttext='e_{2}display='inline'><msub><mi>e</mi><mn>2</mn></msub></math></span>), 
-less-or-equal (<span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting"><math id="Ch2.I5.ix3.p1.m3class="ltx_Mathalttext="e_{1}display="inline"><msub><mi>e</mi><mn>1</mn></msub></math><span class="ltx_text ltx_lst_space"> </span>&lt;=<span class="ltx_text ltx_lst_space"> </span><math id="Ch2.I5.ix3.p1.m4class="ltx_Mathalttext="e_{2}display="inline"><msub><mi>e</mi><mn>2</mn></msub></math></span>), equal (<span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting"><math id="Ch2.I5.ix3.p1.m5class="ltx_Mathalttext="e_{1}display="inline"><msub><mi>e</mi><mn>1</mn></msub></math><span class="ltx_text ltx_lst_space"> </span>==<span class="ltx_text ltx_lst_space"> </span><math id="Ch2.I5.ix3.p1.m6class="ltx_Mathalttext="e_{2}display="inline"><msub><mi>e</mi><mn>2</mn></msub></math></span>), +less-or-equal (<span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'><math id='Ch2.I5.ix3.p1.m3class='ltx_Mathalttext='e_{1}display='inline'><msub><mi>e</mi><mn>1</mn></msub></math><span class='ltx_text ltx_lst_space'> </span>&lt;=<span class='ltx_text ltx_lst_space'> </span><math id='Ch2.I5.ix3.p1.m4class='ltx_Mathalttext='e_{2}display='inline'><msub><mi>e</mi><mn>2</mn></msub></math></span>), equal (<span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'><math id='Ch2.I5.ix3.p1.m5class='ltx_Mathalttext='e_{1}display='inline'><msub><mi>e</mi><mn>1</mn></msub></math><span class='ltx_text ltx_lst_space'> </span>==<span class='ltx_text ltx_lst_space'> </span><math id='Ch2.I5.ix3.p1.m6class='ltx_Mathalttext='e_{2}display='inline'><msub><mi>e</mi><mn>2</mn></msub></math></span>), 
-not-equal (<span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting"><math id="Ch2.I5.ix3.p1.m7class="ltx_Mathalttext="e_{1}display="inline"><msub><mi>e</mi><mn>1</mn></msub></math><span class="ltx_text ltx_lst_space"> </span>!=<span class="ltx_text ltx_lst_space"> </span><math id="Ch2.I5.ix3.p1.m8class="ltx_Mathalttext="e_{2}display="inline"><msub><mi>e</mi><mn>2</mn></msub></math></span>), +not-equal (<span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'><math id='Ch2.I5.ix3.p1.m7class='ltx_Mathalttext='e_{1}display='inline'><msub><mi>e</mi><mn>1</mn></msub></math><span class='ltx_text ltx_lst_space'> </span>!=<span class='ltx_text ltx_lst_space'> </span><math id='Ch2.I5.ix3.p1.m8class='ltx_Mathalttext='e_{2}display='inline'><msub><mi>e</mi><mn>2</mn></msub></math></span>), 
-greater-or-equal (<span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting"><math id="Ch2.I5.ix3.p1.m9class="ltx_Mathalttext="e_{1}display="inline"><msub><mi>e</mi><mn>1</mn></msub></math><span class="ltx_text ltx_lst_space"> </span>&gt;=<span class="ltx_text ltx_lst_space"> </span><math id="Ch2.I5.ix3.p1.m10class="ltx_Mathalttext="e_{2}display="inline"><msub><mi>e</mi><mn>2</mn></msub></math></span>), and greater-than +greater-or-equal (<span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'><math id='Ch2.I5.ix3.p1.m9class='ltx_Mathalttext='e_{1}display='inline'><msub><mi>e</mi><mn>1</mn></msub></math><span class='ltx_text ltx_lst_space'> </span>&gt;=<span class='ltx_text ltx_lst_space'> </span><math id='Ch2.I5.ix3.p1.m10class='ltx_Mathalttext='e_{2}display='inline'><msub><mi>e</mi><mn>2</mn></msub></math></span>), and greater-than 
-(<span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting"><math id="Ch2.I5.ix3.p1.m11class="ltx_Mathalttext="e_{1}display="inline"><msub><mi>e</mi><mn>1</mn></msub></math><span class="ltx_text ltx_lst_space"> </span>&gt;<span class="ltx_text ltx_lst_space"> </span><math id="Ch2.I5.ix3.p1.m12class="ltx_Mathalttext="e2display="inline"><mrow><mi>e</mi><mo>⁢</mo><mn>2</mn></mrow></math></span>). +(<span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'><math id='Ch2.I5.ix3.p1.m11class='ltx_Mathalttext='e_{1}display='inline'><msub><mi>e</mi><mn>1</mn></msub></math><span class='ltx_text ltx_lst_space'> </span>&gt;<span class='ltx_text ltx_lst_space'> </span><math id='Ch2.I5.ix3.p1.m12class='ltx_Mathalttext='e2display='inline'><mrow><mi>e</mi><mo>⁢</mo><mn>2</mn></mrow></math></span>). 
-<br class="ltx_break"><span class="ltx_text ltx_font_italic">Domain restrictions</span>: the element types of <math id="Ch2.I5.ix3.p1.m13class="ltx_Mathalttext="e_{1}display="inline"><msub><mi>e</mi><mn>1</mn></msub></math> and <math id="Ch2.I5.ix3.p1.m14class="ltx_Mathalttext="e_{2}display="inline"><msub><mi>e</mi><mn>2</mn></msub></math> have to be of the same type.</p>+<br class='ltx_break'><span class='ltx_text ltx_font_italic'>Domain restrictions</span>: the element types of <math id='Ch2.I5.ix3.p1.m13class='ltx_Mathalttext='e_{1}display='inline'><msub><mi>e</mi><mn>1</mn></msub></math> and <math id='Ch2.I5.ix3.p1.m14class='ltx_Mathalttext='e_{2}display='inline'><msub><mi>e</mi><mn>2</mn></msub></math> have to be of the same type.</p>
 </div> </div>
 </dd> </dd>
-<dt id="Ch2.I5.ix4class="ltx_item"><span class="ltx_tag ltx_tag_description">max (<math id="Ch2.I5.ix4.m1class="ltx_Mathalttext="e_{1}display="inline"><msub><mi>e</mi><mn>1</mn></msub></math>, <math id="Ch2.I5.ix4.m2class="ltx_Mathalttext="e_{2}display="inline"><msub><mi>e</mi><mn>2</mn></msub></math>), min (<math id="Ch2.I5.ix4.m3class="ltx_Mathalttext="e_{1}display="inline"><msub><mi>e</mi><mn>1</mn></msub></math>, <math id="Ch2.I5.ix4.m4class="ltx_Mathalttext="e_{2}display="inline"><msub><mi>e</mi><mn>2</mn></msub></math>)</span></dt> +<dt id='Ch2.I5.ix4class='ltx_item'><span class='ltx_tag ltx_tag_description'>max (<math id='Ch2.I5.ix4.m1class='ltx_Mathalttext='e_{1}display='inline'><msub><mi>e</mi><mn>1</mn></msub></math>, <math id='Ch2.I5.ix4.m2class='ltx_Mathalttext='e_{2}display='inline'><msub><mi>e</mi><mn>2</mn></msub></math>), min (<math id='Ch2.I5.ix4.m3class='ltx_Mathalttext='e_{1}display='inline'><msub><mi>e</mi><mn>1</mn></msub></math>, <math id='Ch2.I5.ix4.m4class='ltx_Mathalttext='e_{2}display='inline'><msub><mi>e</mi><mn>2</mn></msub></math>)</span></dt> 
-<dd class="ltx_item"+<dd class='ltx_item'
-<div id="Ch2.I5.ix4.p1class="ltx_para"+<div id='Ch2.I5.ix4.p1class='ltx_para'
-<p class="ltx_p">compute the element-wise maximum and+<p class='ltx_p'>compute the element-wise maximum and
 minimum, respectively. minimum, respectively.
-<br class="ltx_break"><span class="ltx_text ltx_font_italic">Domain restrictions</span>: the element types of <math id="Ch2.I5.ix4.p1.m1class="ltx_Mathalttext="e_{1}display="inline"><msub><mi>e</mi><mn>1</mn></msub></math> and <math id="Ch2.I5.ix4.p1.m2class="ltx_Mathalttext="e_{2}display="inline"><msub><mi>e</mi><mn>2</mn></msub></math> have to be of the same type.</p>+<br class='ltx_break'><span class='ltx_text ltx_font_italic'>Domain restrictions</span>: the element types of <math id='Ch2.I5.ix4.p1.m1class='ltx_Mathalttext='e_{1}display='inline'><msub><mi>e</mi><mn>1</mn></msub></math> and <math id='Ch2.I5.ix4.p1.m2class='ltx_Mathalttext='e_{2}display='inline'><msub><mi>e</mi><mn>2</mn></msub></math> have to be of the same type.</p>
 </div> </div>
 </dd> </dd>
-<dt id="Ch2.I5.ix5class="ltx_item"><span class="ltx_tag ltx_tag_description">where (p, <math id="Ch2.I5.ix5.m1class="ltx_Mathalttext="e_{1}display="inline"><msub><mi>e</mi><mn>1</mn></msub></math>, <math id="Ch2.I5.ix5.m2class="ltx_Mathalttext="e_{2}display="inline"><msub><mi>e</mi><mn>2</mn></msub></math>)</span></dt> +<dt id='Ch2.I5.ix5class='ltx_item'><span class='ltx_tag ltx_tag_description'>where (p, <math id='Ch2.I5.ix5.m1class='ltx_Mathalttext='e_{1}display='inline'><msub><mi>e</mi><mn>1</mn></msub></math>, <math id='Ch2.I5.ix5.m2class='ltx_Mathalttext='e_{2}display='inline'><msub><mi>e</mi><mn>2</mn></msub></math>)</span></dt> 
-<dd class="ltx_item"+<dd class='ltx_item'
-<div id="Ch2.I5.ix5.p1class="ltx_para"+<div id='Ch2.I5.ix5.p1class='ltx_para'
-<p class="ltx_p">is an element-wise extension of a conditional. +<p class='ltx_p'>is an element-wise extension of a conditional. 
-It expects <math id="Ch2.I5.ix5.p1.m1class="ltx_Mathalttext="pdisplay="inline"><mi>p</mi></math>, <math id="Ch2.I5.ix5.p1.m2class="ltx_Mathalttext="e_{1}display="inline"><msub><mi>e</mi><mn>1</mn></msub></math>, and <math id="Ch2.I5.ix5.p1.m3class="ltx_Mathalttext="e_{2}display="inline"><msub><mi>e</mi><mn>2</mn></msub></math> either to have identical shapes+It expects <math id='Ch2.I5.ix5.p1.m1class='ltx_Mathalttext='pdisplay='inline'><mi>p</mi></math>, <math id='Ch2.I5.ix5.p1.m2class='ltx_Mathalttext='e_{1}display='inline'><msub><mi>e</mi><mn>1</mn></msub></math>, and <math id='Ch2.I5.ix5.p1.m3class='ltx_Mathalttext='e_{2}display='inline'><msub><mi>e</mi><mn>2</mn></msub></math> either to have identical shapes
 or to be scalar. If at least one of the three arrays is non-scalar, that or to be scalar. If at least one of the three arrays is non-scalar, that
 shape serves as shape of the result, whose values are taken from shape serves as shape of the result, whose values are taken from
-<math id="Ch2.I5.ix5.p1.m4class="ltx_Mathalttext="e_{1}display="inline"><msub><mi>e</mi><mn>1</mn></msub></math> or <math id="Ch2.I5.ix5.p1.m5class="ltx_Mathalttext="e_{2}display="inline"><msub><mi>e</mi><mn>2</mn></msub></math> depending on the value (s) of <math id="Ch2.I5.ix5.p1.m6class="ltx_Mathalttext="pdisplay="inline"><mi>p</mi></math>+<math id='Ch2.I5.ix5.p1.m4class='ltx_Mathalttext='e_{1}display='inline'><msub><mi>e</mi><mn>1</mn></msub></math> or <math id='Ch2.I5.ix5.p1.m5class='ltx_Mathalttext='e_{2}display='inline'><msub><mi>e</mi><mn>2</mn></msub></math> depending on the value (s) of <math id='Ch2.I5.ix5.p1.m6class='ltx_Mathalttext='pdisplay='inline'><mi>p</mi></math>
-<br class="ltx_break"><span class="ltx_text ltx_font_italic">Domain restrictions</span>:</p> +<br class='ltx_break'><span class='ltx_text ltx_font_italic'>Domain restrictions</span>:</p> 
-<ul id="Ch2.I5.I1class="ltx_itemize"+<ul id='Ch2.I5.I1class='ltx_itemize'
-<li id="Ch2.I5.I1.i1class="ltx_itemstyle="list-style-type:none;"+<li id='Ch2.I5.I1.i1class='ltx_itemstyle='list-style-type:none;'
-<span class="ltx_tag ltx_tag_itemize"><span class="ltx_text ltx_font_bold">–</span></span>  +<span class='ltx_tag ltx_tag_itemize'><span class='ltx_text ltx_font_bold'>–</span></span>  
-<div id="Ch2.I5.I1.i1.p1class="ltx_para"+<div id='Ch2.I5.I1.i1.p1class='ltx_para'
-<p class="ltx_p">the element type of <math id="Ch2.I5.I1.i1.p1.m1class="ltx_Mathalttext="pdisplay="inline"><mi>p</mi></math> has to be boolean+<p class='ltx_p'>the element type of <math id='Ch2.I5.I1.i1.p1.m1class='ltx_Mathalttext='pdisplay='inline'><mi>p</mi></math> has to be boolean
 </p> </p>
 </div> </div>
 </li> </li>
-<li id="Ch2.I5.I1.i2class="ltx_itemstyle="list-style-type:none;"+<li id='Ch2.I5.I1.i2class='ltx_itemstyle='list-style-type:none;'
-<span class="ltx_tag ltx_tag_itemize"><span class="ltx_text ltx_font_bold">–</span></span>  +<span class='ltx_tag ltx_tag_itemize'><span class='ltx_text ltx_font_bold'>–</span></span>  
-<div id="Ch2.I5.I1.i2.p1class="ltx_para"+<div id='Ch2.I5.I1.i2.p1class='ltx_para'
-<p class="ltx_p">the element types of <math id="Ch2.I5.I1.i2.p1.m1class="ltx_Mathalttext="e_{1}display="inline"><msub><mi>e</mi><mn>1</mn></msub></math> and <math id="Ch2.I5.I1.i2.p1.m2class="ltx_Mathalttext="e_{2}display="inline"><msub><mi>e</mi><mn>2</mn></msub></math> have to be identical</p>+<p class='ltx_p'>the element types of <math id='Ch2.I5.I1.i2.p1.m1class='ltx_Mathalttext='e_{1}display='inline'><msub><mi>e</mi><mn>1</mn></msub></math> and <math id='Ch2.I5.I1.i2.p1.m2class='ltx_Mathalttext='e_{2}display='inline'><msub><mi>e</mi><mn>2</mn></msub></math> have to be identical</p>
 </div> </div>
 </li> </li>
-<li id="Ch2.I5.I1.i3class="ltx_itemstyle="list-style-type:none;"+<li id='Ch2.I5.I1.i3class='ltx_itemstyle='list-style-type:none;'
-<span class="ltx_tag ltx_tag_itemize"><span class="ltx_text ltx_font_bold">–</span></span>  +<span class='ltx_tag ltx_tag_itemize'><span class='ltx_text ltx_font_bold'>–</span></span>  
-<div id="Ch2.I5.I1.i3.p1class="ltx_para"+<div id='Ch2.I5.I1.i3.p1class='ltx_para'
-<p class="ltx_p"><math id="Ch2.I5.I1.i3.p1.m1class="ltx_Mathalttext="{{{{{{{{{{{{{{\exists\textrm{\lstinline 1}}}:((\textrm{\lstinline 1}}}\vee\textrm{\lstinline+<p class='ltx_p'><math id='Ch2.I5.I1.i3.p1.m1class='ltx_Mathalttext='{{{{{{{{{{{{{{\exists\textrm{\lstinline 1}}}:((\textrm{\lstinline 1}}}\vee\textrm{\lstinline
 1% 1%
 }}})\wedge(\textrm{\lstinline 1}}}\vee\textrm{\lstinline 1}}})\wedge(\textrm{% }}})\wedge(\textrm{\lstinline 1}}}\vee\textrm{\lstinline 1}}})\wedge(\textrm{%
-\lstinline 1}}}\vee\textrm{\lstinline 1}}}))display="inline"><mrow><mrow><mo>∃</mo><mtext class="ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">shp</mtext></mrow><mo>:</mo><mrow><mo stretchy="false">(</mo><mrow><mrow><mo stretchy="false">(</mo><mrow><mrow class="ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting"><mtext>shape</mtext><mtext>(</mtext><mtext>p</mtext><mtext>)</mtext><mtext> </mtext><mtext>==</mtext><mtext> </mtext><mtext>shp</mtext></mrow><mo>∨</mo><mrow class="ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting"><mtext>shape</mtext><mtext>(</mtext><mtext>p</mtext><mtext>)</mtext><mtext> </mtext><mtext>==</mtext><mtext> </mtext><mtext>[]</mtext></mrow></mrow><mo stretchy="false">)</mo></mrow><mo>∧</mo><mrow><mo stretchy="false">(</mo><mrow><mrow class="ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting"><mtext>shape</mtext><mtext>(</mtext><mtext>e_1</mtext><mtext>)</mtext><mtext> </mtext><mtext>==</mtext><mtext> </mtext><mtext>shp</mtext></mrow><mo>∨</mo><mrow class="ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting"><mtext>shape</mtext><mtext>(</mtext><mtext>e_1</mtext><mtext>)</mtext><mtext> </mtext><mtext>==</mtext><mtext> </mtext><mtext>[]</mtext></mrow></mrow><mo stretchy="false">)</mo></mrow><mo>∧</mo><mrow><mo stretchy="false">(</mo><mrow><mrow class="ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting"><mtext>shape</mtext><mtext>(</mtext><mtext>e_2</mtext><mtext>)</mtext><mtext> </mtext><mtext>==</mtext><mtext> </mtext><mtext>shp</mtext></mrow><mo>∨</mo><mrow class="ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting"><mtext>shape</mtext><mtext>(</mtext><mtext>e_2</mtext><mtext>)</mtext><mtext> </mtext><mtext>==</mtext><mtext> </mtext><mtext>[]</mtext></mrow></mrow><mo stretchy="false">)</mo></mrow></mrow><mo stretchy="false">)</mo></mrow></mrow></math>.</p>+\lstinline 1}}}\vee\textrm{\lstinline 1}}}))display='inline'><mrow><mrow><mo>∃</mo><mtext class='ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>shp</mtext></mrow><mo>:</mo><mrow><mo stretchy='false'>(</mo><mrow><mrow><mo stretchy='false'>(</mo><mrow><mrow class='ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'><mtext>shape</mtext><mtext>(</mtext><mtext>p</mtext><mtext>)</mtext><mtext> </mtext><mtext>==</mtext><mtext> </mtext><mtext>shp</mtext></mrow><mo>∨</mo><mrow class='ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'><mtext>shape</mtext><mtext>(</mtext><mtext>p</mtext><mtext>)</mtext><mtext> </mtext><mtext>==</mtext><mtext> </mtext><mtext>[]</mtext></mrow></mrow><mo stretchy='false'>)</mo></mrow><mo>∧</mo><mrow><mo stretchy='false'>(</mo><mrow><mrow class='ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'><mtext>shape</mtext><mtext>(</mtext><mtext>e_1</mtext><mtext>)</mtext><mtext> </mtext><mtext>==</mtext><mtext> </mtext><mtext>shp</mtext></mrow><mo>∨</mo><mrow class='ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'><mtext>shape</mtext><mtext>(</mtext><mtext>e_1</mtext><mtext>)</mtext><mtext> </mtext><mtext>==</mtext><mtext> </mtext><mtext>[]</mtext></mrow></mrow><mo stretchy='false'>)</mo></mrow><mo>∧</mo><mrow><mo stretchy='false'>(</mo><mrow><mrow class='ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'><mtext>shape</mtext><mtext>(</mtext><mtext>e_2</mtext><mtext>)</mtext><mtext> </mtext><mtext>==</mtext><mtext> </mtext><mtext>shp</mtext></mrow><mo>∨</mo><mrow class='ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'><mtext>shape</mtext><mtext>(</mtext><mtext>e_2</mtext><mtext>)</mtext><mtext> </mtext><mtext>==</mtext><mtext> </mtext><mtext>[]</mtext></mrow></mrow><mo stretchy='false'>)</mo></mrow></mrow><mo stretchy='false'>)</mo></mrow></mrow></math>.</p>
 </div> </div>
 </li> </li>
Line 1321: Line 1920:
 </dl> </dl>
 </div> </div>
-<div id="Ch2.S2.SS1.SSSx2.p4class="ltx_para"+<div id='Ch2.S2.SS1.SSSx2.p4class='ltx_para'
-<p class="ltx_p">Again, these operations are fairly self-explanatory.+<p class='ltx_p'>Again, these operations are fairly self-explanatory.
 Nevertheless, we present a few examples:</p> Nevertheless, we present a few examples:</p>
 </div> </div>
-<figure id="LST10class="ltx_float ltx_lstlisting ltx_role_listing"+<figure id='LST10class='ltx_float ltx_lstlisting ltx_role_listing'
-<figcaption class="ltx_caption"><span class="ltx_tag ltx_tag_float">Listing 10: </span>Elementwise Extensions</figcaption> +<figcaption class='ltx_caption'><span class='ltx_tag ltx_tag_float'>Listing 10: </span>Elementwise Extensions</figcaption> 
-<div class="ltx_listing ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_listing"+<div class='ltx_listing ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_listing'
-<div class="ltx_listing_data"><a href="data:text/plain;base64,dXNlIFN0ZElPOiBhbGw7CnVzZSBBcnJheTogYWxsOwoKaW50IG1haW4oKQp7CiAgdmVjdCA9IFsx%0ALDIsMyw0LDUsNiw3LDgsOV07CgogIG1hdCA9IFt2ZWN0LCB2ZWN0KzEwLCB2ZWN0KzIwXTsKICBw%0AcmludChtYXQpOwoKICBtYXQyID0gd2hlcmUobWF0ICUgMiA9PSAwLCBtYXQsIC1tYXQpOwogIHBy%0AaW50KG1hdDIpOwoKICBwcmludChtYXgobWF0MiwgMCkpOwoKICByZXR1cm4gMDsKfQ==%0A">⬇</a></div> +<div class='ltx_listing_data'><a href='data:text/plain;base64,dXNlIFN0ZElPOiBhbGw7CnVzZSBBcnJheTogYWxsOwoKaW50IG1haW4oKQp7CiAgdmVjdCA9IFsx%0ALDIsMyw0LDUsNiw3LDgsOV07CgogIG1hdCA9IFt2ZWN0LCB2ZWN0KzEwLCB2ZWN0KzIwXTsKICBw%0AcmludChtYXQpOwoKICBtYXQyID0gd2hlcmUobWF0ICUgMiA9PSAwLCBtYXQsIC1tYXQpOwogIHBy%0AaW50KG1hdDIpOwoKICBwcmludChtYXgobWF0MiwgMCkpOwoKICByZXR1cm4gMDsKfQ==%0A'>⬇</a></div> 
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">1</span></span><span class="ltx_text ltx_lst_keyword ltx_font_bold">use</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">StdIO</span>:<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">all</span>;+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>1</span></span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>use</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>StdIO</span>:<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>all</span>;
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">2</span></span><span class="ltx_text ltx_lst_keyword ltx_font_bold">use</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">Array</span>:<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">all</span>;+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>2</span></span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>use</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>Array</span>:<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>all</span>;
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">3</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>3</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">4</span></span><span class="ltx_text ltx_lst_keyword ltx_font_bold">int</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">main</span>()+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>4</span></span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>int</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>main</span>()
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">5</span></span>{+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>5</span></span>{
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">6</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">vect</span><span class="ltx_text ltx_lst_space"> </span>=<span class="ltx_text ltx_lst_space"> </span>[1,2,3,4,5,6,7,8,9];+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>6</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>vect</span><span class='ltx_text ltx_lst_space'> </span>=<span class='ltx_text ltx_lst_space'> </span>[1,2,3,4,5,6,7,8,9];
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">7</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>7</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">8</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">mat</span><span class="ltx_text ltx_lst_space"> </span>=<span class="ltx_text ltx_lst_space"> </span>[<span class="ltx_text ltx_lst_identifier">vect</span>,<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">vect</span>+10,<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">vect</span>+20];+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>8</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>mat</span><span class='ltx_text ltx_lst_space'> </span>=<span class='ltx_text ltx_lst_space'> </span>[<span class='ltx_text ltx_lst_identifier'>vect</span>,<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>vect</span>+10,<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>vect</span>+20];
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">9</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">print</span>(<span class="ltx_text ltx_lst_identifier">mat</span>);+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>9</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>print</span>(<span class='ltx_text ltx_lst_identifier'>mat</span>);
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">10</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>10</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">11</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">mat2</span><span class="ltx_text ltx_lst_space"> </span>=<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">where</span>(<span class="ltx_text ltx_lst_identifier">mat</span><span class="ltx_text ltx_lst_space"> </span>%<span class="ltx_text ltx_lst_space"> </span>2<span class="ltx_text ltx_lst_space"> </span>==<span class="ltx_text ltx_lst_space"> </span>0,<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">mat</span>,<span class="ltx_text ltx_lst_space"> </span>-<span class="ltx_text ltx_lst_identifier">mat</span>);+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>11</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>mat2</span><span class='ltx_text ltx_lst_space'> </span>=<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>where</span>(<span class='ltx_text ltx_lst_identifier'>mat</span><span class='ltx_text ltx_lst_space'> </span>%<span class='ltx_text ltx_lst_space'> </span>2<span class='ltx_text ltx_lst_space'> </span>==<span class='ltx_text ltx_lst_space'> </span>0,<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>mat</span>,<span class='ltx_text ltx_lst_space'> </span>-<span class='ltx_text ltx_lst_identifier'>mat</span>);
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">12</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">print</span>(<span class="ltx_text ltx_lst_identifier">mat2</span>);+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>12</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>print</span>(<span class='ltx_text ltx_lst_identifier'>mat2</span>);
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">13</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>13</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">14</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">print</span>(<span class="ltx_text ltx_lst_identifier">max</span>(<span class="ltx_text ltx_lst_identifier">mat2</span>,<span class="ltx_text ltx_lst_space"> </span>0));+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>14</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>print</span>(<span class='ltx_text ltx_lst_identifier'>max</span>(<span class='ltx_text ltx_lst_identifier'>mat2</span>,<span class='ltx_text ltx_lst_space'> </span>0));
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">15</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>15</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">16</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_keyword ltx_font_bold">return</span><span class="ltx_text ltx_lst_space"> </span>0;+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>16</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>return</span><span class='ltx_text ltx_lst_space'> </span>0;
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">17</span></span>}+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>17</span></span>}
 </div> </div>
 </div> </div>
 </figure> </figure>
-<div id="Ch2.S2.SS1.SSSx2.p5class="ltx_para"+<div id='Ch2.S2.SS1.SSSx2.p5class='ltx_para'
-<p class="ltx_p">The most interesting part of this example is the definition +<p class='ltx_p'>The most interesting part of this example is the definition 
-of the matrix <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">mat2</span> in line 11. +of the matrix <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>mat2</span> in line 11. 
-The even numbers from the matrix <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">mat</span> are taken as they are, whereas+The even numbers from the matrix <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>mat</span> are taken as they are, whereas
 the odd numbers are negated. the odd numbers are negated.
 Note here, that all sub expressions in predicate position are in fact non-scalar Note here, that all sub expressions in predicate position are in fact non-scalar
-arrays: <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting">(<span class="ltx_text ltx_lst_identifier">mat</span><span class="ltx_text ltx_lst_space"> </span>\%<span class="ltx_text ltx_lst_space"> </span>2)</span> denotes a matrix of zeros and ones and +arrays: <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>(<span class='ltx_text ltx_lst_identifier'>mat</span><span class='ltx_text ltx_lst_space'> </span>\%<span class='ltx_text ltx_lst_space'> </span>2)</span> denotes a matrix of zeros and ones and 
-<span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting">(<span class="ltx_text ltx_lst_identifier">mat</span><span class="ltx_text ltx_lst_space"> </span>\%<span class="ltx_text ltx_lst_space"> </span>2)<span class="ltx_text ltx_lst_space"> </span>==<span class="ltx_text ltx_lst_space"> </span></span> denotes a matrix of boolean values.</p>+<span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>(<span class='ltx_text ltx_lst_identifier'>mat</span><span class='ltx_text ltx_lst_space'> </span>\%<span class='ltx_text ltx_lst_space'> </span>2)<span class='ltx_text ltx_lst_space'> </span>==<span class='ltx_text ltx_lst_space'> </span></span> denotes a matrix of boolean values.</p>
 </div> </div>
-<div id="Thmtheorem6class="ltx_theorem ltx_theorem_theorem"+<div id='Thmtheorem6class='ltx_theorem ltx_theorem_theorem'
-<h6 class="ltx_title ltx_runin ltx_font_bold ltx_title_theorem">Exercise 6. </h6> +<h6 class='ltx_title ltx_runin ltx_font_bold ltx_title_theorem'>Exercise 6. </h6> 
-<div id="Thmtheorem6.p1class="ltx_para"+<div id='Thmtheorem6.p1class='ltx_para'
-<p class="ltx_p">What results do you expect from the following expressions:</p> +<p class='ltx_p'>What results do you expect from the following expressions:</p> 
-<ul id="Ch2.I6class="ltx_itemize"+<ul id='Ch2.I6class='ltx_itemize'
-<li id="Ch2.I6.i1class="ltx_itemstyle="list-style-type:none;"+<li id='Ch2.I6.i1class='ltx_itemstyle='list-style-type:none;'
-<span class="ltx_tag ltx_tag_itemize">•</span>  +<span class='ltx_tag ltx_tag_itemize'>•</span>  
-<div id="Ch2.I6.i1.p1class="ltx_para"+<div id='Ch2.I6.i1.p1class='ltx_para'
-<p class="ltx_p"><span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting"><span class="ltx_text ltx_lst_identifier">min</span>(<span class="ltx_text ltx_lst_identifier">reshape</span>([3,0,5],<span class="ltx_text ltx_lst_space"> </span>[]),<span class="ltx_text ltx_lst_space"> </span>42)</span>?</p>+<p class='ltx_p'><span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'><span class='ltx_text ltx_lst_identifier'>min</span>(<span class='ltx_text ltx_lst_identifier'>reshape</span>([3,0,5],<span class='ltx_text ltx_lst_space'> </span>[]),<span class='ltx_text ltx_lst_space'> </span>42)</span>?</p>
 </div> </div>
 </li> </li>
-<li id="Ch2.I6.i2class="ltx_itemstyle="list-style-type:none;"+<li id='Ch2.I6.i2class='ltx_itemstyle='list-style-type:none;'
-<span class="ltx_tag ltx_tag_itemize">•</span>  +<span class='ltx_tag ltx_tag_itemize'>•</span>  
-<div id="Ch2.I6.i2.p1class="ltx_para"+<div id='Ch2.I6.i2.p1class='ltx_para'
-<p class="ltx_p"><span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting"><span class="ltx_text ltx_lst_identifier">reshape</span>([3,0,5],<span class="ltx_text ltx_lst_space"> </span>[])<span class="ltx_text ltx_lst_space"> </span>+<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">reshape</span>([3,0,5],<span class="ltx_text ltx_lst_space"> </span>[])</span>?</p>+<p class='ltx_p'><span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'><span class='ltx_text ltx_lst_identifier'>reshape</span>([3,0,5],<span class='ltx_text ltx_lst_space'> </span>[])<span class='ltx_text ltx_lst_space'> </span>+<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>reshape</span>([3,0,5],<span class='ltx_text ltx_lst_space'> </span>[])</span>?</p>
 </div> </div>
 </li> </li>
-<li id="Ch2.I6.i3class="ltx_itemstyle="list-style-type:none;"+<li id='Ch2.I6.i3class='ltx_itemstyle='list-style-type:none;'
-<span class="ltx_tag ltx_tag_itemize">•</span>  +<span class='ltx_tag ltx_tag_itemize'>•</span>  
-<div id="Ch2.I6.i3.p1class="ltx_para"+<div id='Ch2.I6.i3.p1class='ltx_para'
-<p class="ltx_p"><span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting"><span class="ltx_text ltx_lst_identifier">reshape</span>([1,1],<span class="ltx_text ltx_lst_space"> </span>[1])<span class="ltx_text ltx_lst_space"> </span>+<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">reshape</span>([1],<span class="ltx_text ltx_lst_space"> </span>[1])</span>?</p>+<p class='ltx_p'><span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'><span class='ltx_text ltx_lst_identifier'>reshape</span>([1,1],<span class='ltx_text ltx_lst_space'> </span>[1])<span class='ltx_text ltx_lst_space'> </span>+<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>reshape</span>([1],<span class='ltx_text ltx_lst_space'> </span>[1])</span>?</p>
 </div> </div>
 </li> </li>
Line 1418: Line 2017:
 </div> </div>
 </section> </section>
-<section id="Ch2.S2.SS1.SSSx3class="ltx_subsubsection"+<section id='Ch2.S2.SS1.SSSx3class='ltx_subsubsection'
-<h6 class="ltx_title ltx_title_subsubsection">Restructuring Operations</h6>+<h6 class='ltx_title ltx_title_subsubsection'>Restructuring Operations</h6>
  
-<div id="Ch2.S2.SS1.SSSx3.p1class="ltx_para"+<div id='Ch2.S2.SS1.SSSx3.p1class='ltx_para'
-<p class="ltx_p">The operations to be introduced here do not compute new values at all.+<p class='ltx_p'>The operations to be introduced here do not compute new values at all.
 Instead, they are meant to create slightly differently structured arrays Instead, they are meant to create slightly differently structured arrays
 from existing ones. from existing ones.
 Therefore, they are applicable to arrays of all built-in element types.</p> Therefore, they are applicable to arrays of all built-in element types.</p>
 </div> </div>
-<div id="Ch2.S2.SS1.SSSx3.p2class="ltx_para"+<div id='Ch2.S2.SS1.SSSx3.p2class='ltx_para'
-<dl id="Ch2.I7class="ltx_description"+<dl id='Ch2.I7class='ltx_description'
-<dt id="Ch2.I7.ix1class="ltx_item"><span class="ltx_tag ltx_tag_description">take(sv, a)</span></dt> +<dt id='Ch2.I7.ix1class='ltx_item'><span class='ltx_tag ltx_tag_description'>take(sv, a)</span></dt> 
-<dd class="ltx_item"+<dd class='ltx_item'
-<div id="Ch2.I7.ix1.p1class="ltx_para"+<div id='Ch2.I7.ix1.p1class='ltx_para'
-<p class="ltx_p">takes as many elements from the array <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">a</span> as indicated +<p class='ltx_p'>takes as many elements from the array <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>a</span> as indicated 
-by the shape vector <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">sv</span>. Each element of <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">sv</span> corresponds to +by the shape vector <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>sv</span>. Each element of <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>sv</span> corresponds to 
-one axis of <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">a</span> starting from the leftmost one. +one axis of <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>a</span> starting from the leftmost one. 
-For positive components of <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">sv</span>, the elements are taken from the+For positive components of <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>sv</span>, the elements are taken from the
 “beginning”, i.e. starting with index 0, otherwise they are taken “beginning”, i.e. starting with index 0, otherwise they are taken
 from the “end” including the maximum legal index of the corresponding from the “end” including the maximum legal index of the corresponding
 axis. axis.
-All axes of <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">a</span> where there exists no corresponding element in +All axes of <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>a</span> where there exists no corresponding element in 
-<span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">sv</span> are taken entirely. +<span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>sv</span> are taken entirely. 
-<br class="ltx_break"><span class="ltx_text ltx_font_italic">Domain restrictions</span>:</p> +<br class='ltx_break'><span class='ltx_text ltx_font_italic'>Domain restrictions</span>:</p> 
-<ul id="Ch2.I7.I1class="ltx_itemize"+<ul id='Ch2.I7.I1class='ltx_itemize'
-<li id="Ch2.I7.I1.i1class="ltx_itemstyle="list-style-type:none;"+<li id='Ch2.I7.I1.i1class='ltx_itemstyle='list-style-type:none;'
-<span class="ltx_tag ltx_tag_itemize"><span class="ltx_text ltx_font_bold">–</span></span>  +<span class='ltx_tag ltx_tag_itemize'><span class='ltx_text ltx_font_bold'>–</span></span>  
-<div id="Ch2.I7.I1.i1.p1class="ltx_para"+<div id='Ch2.I7.I1.i1.p1class='ltx_para'
-<p class="ltx_p"><span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting"><span class="ltx_text ltx_lst_identifier">dim</span>(<span class="ltx_text ltx_lst_identifier">sv</span>)<span class="ltx_text ltx_lst_space"> </span>==<span class="ltx_text ltx_lst_space"> </span>1</span></p>+<p class='ltx_p'><span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'><span class='ltx_text ltx_lst_identifier'>dim</span>(<span class='ltx_text ltx_lst_identifier'>sv</span>)<span class='ltx_text ltx_lst_space'> </span>==<span class='ltx_text ltx_lst_space'> </span>1</span></p>
 </div> </div>
 </li> </li>
-<li id="Ch2.I7.I1.i2class="ltx_itemstyle="list-style-type:none;"+<li id='Ch2.I7.I1.i2class='ltx_itemstyle='list-style-type:none;'
-<span class="ltx_tag ltx_tag_itemize"><span class="ltx_text ltx_font_bold">–</span></span>  +<span class='ltx_tag ltx_tag_itemize'><span class='ltx_text ltx_font_bold'>–</span></span>  
-<div id="Ch2.I7.I1.i2.p1class="ltx_para"+<div id='Ch2.I7.I1.i2.p1class='ltx_para'
-<p class="ltx_p"><span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting"><span class="ltx_text ltx_lst_identifier">shape</span>(<span class="ltx_text ltx_lst_identifier">sv</span>)[[0]]<span class="ltx_text ltx_lst_space"> </span>&lt;=<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">dim</span>(<span class="ltx_text ltx_lst_identifier">a</span>)</span></p>+<p class='ltx_p'><span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'><span class='ltx_text ltx_lst_identifier'>shape</span>(<span class='ltx_text ltx_lst_identifier'>sv</span>)[[0]]<span class='ltx_text ltx_lst_space'> </span>&lt;=<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>dim</span>(<span class='ltx_text ltx_lst_identifier'>a</span>)</span></p>
 </div> </div>
 </li> </li>
-<li id="Ch2.I7.I1.i3class="ltx_itemstyle="list-style-type:none;"+<li id='Ch2.I7.I1.i3class='ltx_itemstyle='list-style-type:none;'
-<span class="ltx_tag ltx_tag_itemize"><span class="ltx_text ltx_font_bold">–</span></span>  +<span class='ltx_tag ltx_tag_itemize'><span class='ltx_text ltx_font_bold'>–</span></span>  
-<div id="Ch2.I7.I1.i3.p1class="ltx_para"+<div id='Ch2.I7.I1.i3.p1class='ltx_para'
-<p class="ltx_p"><math id="Ch2.I7.I1.i3.p1.m1class="ltx_Mathalttext="{{{{{{\forall\textrm{\lstinline 1}}}\in\{0,\dots,\textrm{\lstinline 1}}}\}:\textrm{% +<p class='ltx_p'><math id='Ch2.I7.I1.i3.p1.m1class='ltx_Mathalttext='{{{{{{\forall\textrm{\lstinline 1}}}\in\{0,\dots,\textrm{\lstinline 1}}}\}:\textrm{% 
-\lstinline 1}}}display="inline"><mrow><mrow><mrow><mo>∀</mo><mtext class="ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">i</mtext></mrow><mo>∈</mo><mrow><mo stretchy="false">{</mo><mn>0</mn><mo>,</mo><mi mathvariant="normal">…</mi><mo>,</mo><mrow class="ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting"><mtext>shape</mtext><mtext>(</mtext><mtext>sv</mtext><mtext>)[[0]]</mtext></mrow><mo stretchy="false">}</mo></mrow></mrow><mo>:</mo><mrow class="ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting"><mtext>sv</mtext><mtext>[[</mtext><mtext>i</mtext><mtext>]]</mtext><mtext> </mtext><mtext>&lt;=</mtext><mtext> </mtext><mtext>shape</mtext><mtext>(</mtext><mtext>a</mtext><mtext>)[[</mtext><mtext>i</mtext><mtext>]]</mtext></mrow></mrow></math></p>+\lstinline 1}}}display='inline'><mrow><mrow><mrow><mo>∀</mo><mtext class='ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>i</mtext></mrow><mo>∈</mo><mrow><mo stretchy='false'>{</mo><mn>0</mn><mo>,</mo><mi mathvariant='normal'>…</mi><mo>,</mo><mrow class='ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'><mtext>shape</mtext><mtext>(</mtext><mtext>sv</mtext><mtext>)[[0]]</mtext></mrow><mo stretchy='false'>}</mo></mrow></mrow><mo>:</mo><mrow class='ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'><mtext>sv</mtext><mtext>[[</mtext><mtext>i</mtext><mtext>]]</mtext><mtext> </mtext><mtext>&lt;=</mtext><mtext> </mtext><mtext>shape</mtext><mtext>(</mtext><mtext>a</mtext><mtext>)[[</mtext><mtext>i</mtext><mtext>]]</mtext></mrow></mrow></math></p>
 </div> </div>
 </li> </li>
Line 1465: Line 2064:
 </div> </div>
 </dd> </dd>
-<dt id="Ch2.I7.ix2class="ltx_item"><span class="ltx_tag ltx_tag_description">drop(sv, a)</span></dt> +<dt id='Ch2.I7.ix2class='ltx_item'><span class='ltx_tag ltx_tag_description'>drop(sv, a)</span></dt> 
-<dd class="ltx_item"+<dd class='ltx_item'
-<div id="Ch2.I7.ix2.p1class="ltx_para"+<div id='Ch2.I7.ix2.p1class='ltx_para'
-<p class="ltx_p">drops as many elements from the array <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">a</span> as indicated +<p class='ltx_p'>drops as many elements from the array <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>a</span> as indicated 
-by the shape vector <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">sv</span>. Each element of <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">sv</span> corresponds to +by the shape vector <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>sv</span>. Each element of <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>sv</span> corresponds to 
-one axis of <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">a</span> starting from the leftmost one. +one axis of <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>a</span> starting from the leftmost one. 
-For positive components of <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">sv</span>, the elements are dropped from the+For positive components of <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>sv</span>, the elements are dropped from the
 “beginning”, i.e. starting with index 0, otherwise they are dropped “beginning”, i.e. starting with index 0, otherwise they are dropped
 from the “end” starting from the maximum legal index of the corresponding from the “end” starting from the maximum legal index of the corresponding
 axis. axis.
-All axes of <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">a</span> where there exists no corresponding element in +All axes of <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>a</span> where there exists no corresponding element in 
-<span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">sv</span> are left untouched. +<span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>sv</span> are left untouched. 
-<br class="ltx_break"><span class="ltx_text ltx_font_italic">Domain restrictions</span>:</p> +<br class='ltx_break'><span class='ltx_text ltx_font_italic'>Domain restrictions</span>:</p> 
-<ul id="Ch2.I7.I2class="ltx_itemize"+<ul id='Ch2.I7.I2class='ltx_itemize'
-<li id="Ch2.I7.I2.i1class="ltx_itemstyle="list-style-type:none;"+<li id='Ch2.I7.I2.i1class='ltx_itemstyle='list-style-type:none;'
-<span class="ltx_tag ltx_tag_itemize"><span class="ltx_text ltx_font_bold">–</span></span>  +<span class='ltx_tag ltx_tag_itemize'><span class='ltx_text ltx_font_bold'>–</span></span>  
-<div id="Ch2.I7.I2.i1.p1class="ltx_para"+<div id='Ch2.I7.I2.i1.p1class='ltx_para'
-<p class="ltx_p"><span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting"><span class="ltx_text ltx_lst_identifier">dim</span>(<span class="ltx_text ltx_lst_identifier">sv</span>)=<span class="ltx_text ltx_lst_space"> </span>1</span></p>+<p class='ltx_p'><span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'><span class='ltx_text ltx_lst_identifier'>dim</span>(<span class='ltx_text ltx_lst_identifier'>sv</span>)=<span class='ltx_text ltx_lst_space'> </span>1</span></p>
 </div> </div>
 </li> </li>
-<li id="Ch2.I7.I2.i2class="ltx_itemstyle="list-style-type:none;"+<li id='Ch2.I7.I2.i2class='ltx_itemstyle='list-style-type:none;'
-<span class="ltx_tag ltx_tag_itemize"><span class="ltx_text ltx_font_bold">–</span></span>  +<span class='ltx_tag ltx_tag_itemize'><span class='ltx_text ltx_font_bold'>–</span></span>  
-<div id="Ch2.I7.I2.i2.p1class="ltx_para"+<div id='Ch2.I7.I2.i2.p1class='ltx_para'
-<p class="ltx_p"><span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting"><span class="ltx_text ltx_lst_identifier">shape</span>(<span class="ltx_text ltx_lst_identifier">sv</span>)[[0]]<span class="ltx_text ltx_lst_space"> </span>&lt;=<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">dim</span>(<span class="ltx_text ltx_lst_identifier">a</span>)</span></p>+<p class='ltx_p'><span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'><span class='ltx_text ltx_lst_identifier'>shape</span>(<span class='ltx_text ltx_lst_identifier'>sv</span>)[[0]]<span class='ltx_text ltx_lst_space'> </span>&lt;=<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>dim</span>(<span class='ltx_text ltx_lst_identifier'>a</span>)</span></p>
 </div> </div>
 </li> </li>
-<li id="Ch2.I7.I2.i3class="ltx_itemstyle="list-style-type:none;"+<li id='Ch2.I7.I2.i3class='ltx_itemstyle='list-style-type:none;'
-<span class="ltx_tag ltx_tag_itemize"><span class="ltx_text ltx_font_bold">–</span></span>  +<span class='ltx_tag ltx_tag_itemize'><span class='ltx_text ltx_font_bold'>–</span></span>  
-<div id="Ch2.I7.I2.i3.p1class="ltx_para"+<div id='Ch2.I7.I2.i3.p1class='ltx_para'
-<p class="ltx_p"><math id="Ch2.I7.I2.i3.p1.m1class="ltx_Mathalttext="{{{{{{\forall\textrm{\lstinline 1}}}\in\{0,\dots,\textrm{\lstinline 1}}}\}:\textrm{% +<p class='ltx_p'><math id='Ch2.I7.I2.i3.p1.m1class='ltx_Mathalttext='{{{{{{\forall\textrm{\lstinline 1}}}\in\{0,\dots,\textrm{\lstinline 1}}}\}:\textrm{% 
-\lstinline 1}}}display="inline"><mrow><mrow><mrow><mo>∀</mo><mtext class="ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">i</mtext></mrow><mo>∈</mo><mrow><mo stretchy="false">{</mo><mn>0</mn><mo>,</mo><mi mathvariant="normal">…</mi><mo>,</mo><mrow class="ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting"><mtext>shape</mtext><mtext>(</mtext><mtext>sv</mtext><mtext>)[[0]]</mtext></mrow><mo stretchy="false">}</mo></mrow></mrow><mo>:</mo><mrow class="ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting"><mtext>sv</mtext><mtext>[[</mtext><mtext>i</mtext><mtext>]]</mtext><mtext> </mtext><mtext>&lt;=</mtext><mtext> </mtext><mtext>shape</mtext><mtext>(</mtext><mtext>a</mtext><mtext>)[[</mtext><mtext>i</mtext><mtext>]]</mtext></mrow></mrow></math></p>+\lstinline 1}}}display='inline'><mrow><mrow><mrow><mo>∀</mo><mtext class='ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>i</mtext></mrow><mo>∈</mo><mrow><mo stretchy='false'>{</mo><mn>0</mn><mo>,</mo><mi mathvariant='normal'>…</mi><mo>,</mo><mrow class='ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'><mtext>shape</mtext><mtext>(</mtext><mtext>sv</mtext><mtext>)[[0]]</mtext></mrow><mo stretchy='false'>}</mo></mrow></mrow><mo>:</mo><mrow class='ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'><mtext>sv</mtext><mtext>[[</mtext><mtext>i</mtext><mtext>]]</mtext><mtext> </mtext><mtext>&lt;=</mtext><mtext> </mtext><mtext>shape</mtext><mtext>(</mtext><mtext>a</mtext><mtext>)[[</mtext><mtext>i</mtext><mtext>]]</mtext></mrow></mrow></math></p>
 </div> </div>
 </li> </li>
Line 1501: Line 2100:
 </div> </div>
 </dd> </dd>
-<dt id="Ch2.I7.ix3class="ltx_item"><span class="ltx_tag ltx_tag_description">tile(sv, ov, a)</span></dt> +<dt id='Ch2.I7.ix3class='ltx_item'><span class='ltx_tag ltx_tag_description'>tile(sv, ov, a)</span></dt> 
-<dd class="ltx_item"+<dd class='ltx_item'
-<div id="Ch2.I7.ix3.p1class="ltx_para"+<div id='Ch2.I7.ix3.p1class='ltx_para'
-<p class="ltx_p">takes a tile of shape <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">sv</span> from <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">a</span> +<p class='ltx_p'>takes a tile of shape <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>sv</span> from <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>a</span> 
-starting at the index specified by the offset vector <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">ov</span>+starting at the index specified by the offset vector <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>ov</span>
-For axes where no values of <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">sv</span> or <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">ov</span> are specified +For axes where no values of <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>sv</span> or <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>ov</span> are specified 
-these are assumed to be identical to the extent of <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">a</span> along that axis or 0,+these are assumed to be identical to the extent of <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>a</span> along that axis or 0,
 respectively. respectively.
-<br class="ltx_break"><span class="ltx_text ltx_font_italic">Domain restrictions</span>:</p> +<br class='ltx_break'><span class='ltx_text ltx_font_italic'>Domain restrictions</span>:</p> 
-<ul id="Ch2.I7.I3class="ltx_itemize"+<ul id='Ch2.I7.I3class='ltx_itemize'
-<li id="Ch2.I7.I3.i1class="ltx_itemstyle="list-style-type:none;"+<li id='Ch2.I7.I3.i1class='ltx_itemstyle='list-style-type:none;'
-<span class="ltx_tag ltx_tag_itemize"><span class="ltx_text ltx_font_bold">–</span></span>  +<span class='ltx_tag ltx_tag_itemize'><span class='ltx_text ltx_font_bold'>–</span></span>  
-<div id="Ch2.I7.I3.i1.p1class="ltx_para"+<div id='Ch2.I7.I3.i1.p1class='ltx_para'
-<p class="ltx_p"><span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting"><span class="ltx_text ltx_lst_identifier">dim</span>(<span class="ltx_text ltx_lst_identifier">sv</span>)<span class="ltx_text ltx_lst_space"> </span>==<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">dim</span>(<span class="ltx_text ltx_lst_identifier">ov</span>)<span class="ltx_text ltx_lst_space"> </span>==<span class="ltx_text ltx_lst_space"> </span>1</span>+<p class='ltx_p'><span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'><span class='ltx_text ltx_lst_identifier'>dim</span>(<span class='ltx_text ltx_lst_identifier'>sv</span>)<span class='ltx_text ltx_lst_space'> </span>==<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>dim</span>(<span class='ltx_text ltx_lst_identifier'>ov</span>)<span class='ltx_text ltx_lst_space'> </span>==<span class='ltx_text ltx_lst_space'> </span>1</span>
 </p> </p>
 </div> </div>
 </li> </li>
-<li id="Ch2.I7.I3.i2class="ltx_itemstyle="list-style-type:none;"+<li id='Ch2.I7.I3.i2class='ltx_itemstyle='list-style-type:none;'
-<span class="ltx_tag ltx_tag_itemize"><span class="ltx_text ltx_font_bold">–</span></span>  +<span class='ltx_tag ltx_tag_itemize'><span class='ltx_text ltx_font_bold'>–</span></span>  
-<div id="Ch2.I7.I3.i2.p1class="ltx_para"+<div id='Ch2.I7.I3.i2.p1class='ltx_para'
-<p class="ltx_p"><span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting"><span class="ltx_text ltx_lst_identifier">shape</span>(<span class="ltx_text ltx_lst_identifier">sv</span>)[[0]]<span class="ltx_text ltx_lst_space"> </span>&lt;=<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">dim</span>(<span class="ltx_text ltx_lst_identifier">a</span>)</span></p>+<p class='ltx_p'><span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'><span class='ltx_text ltx_lst_identifier'>shape</span>(<span class='ltx_text ltx_lst_identifier'>sv</span>)[[0]]<span class='ltx_text ltx_lst_space'> </span>&lt;=<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>dim</span>(<span class='ltx_text ltx_lst_identifier'>a</span>)</span></p>
 </div> </div>
 </li> </li>
-<li id="Ch2.I7.I3.i3class="ltx_itemstyle="list-style-type:none;"+<li id='Ch2.I7.I3.i3class='ltx_itemstyle='list-style-type:none;'
-<span class="ltx_tag ltx_tag_itemize"><span class="ltx_text ltx_font_bold">–</span></span>  +<span class='ltx_tag ltx_tag_itemize'><span class='ltx_text ltx_font_bold'>–</span></span>  
-<div id="Ch2.I7.I3.i3.p1class="ltx_para"+<div id='Ch2.I7.I3.i3.p1class='ltx_para'
-<p class="ltx_p"><span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting"><span class="ltx_text ltx_lst_identifier">shape</span>(<span class="ltx_text ltx_lst_identifier">ov</span>)[[0]]<span class="ltx_text ltx_lst_space"> </span>&lt;=<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">dim</span>(<span class="ltx_text ltx_lst_identifier">a</span>)</span></p>+<p class='ltx_p'><span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'><span class='ltx_text ltx_lst_identifier'>shape</span>(<span class='ltx_text ltx_lst_identifier'>ov</span>)[[0]]<span class='ltx_text ltx_lst_space'> </span>&lt;=<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>dim</span>(<span class='ltx_text ltx_lst_identifier'>a</span>)</span></p>
 </div> </div>
 </li> </li>
-<li id="Ch2.I7.I3.i4class="ltx_itemstyle="list-style-type:none;"+<li id='Ch2.I7.I3.i4class='ltx_itemstyle='list-style-type:none;'
-<span class="ltx_tag ltx_tag_itemize"><span class="ltx_text ltx_font_bold">–</span></span>  +<span class='ltx_tag ltx_tag_itemize'><span class='ltx_text ltx_font_bold'>–</span></span>  
-<div id="Ch2.I7.I3.i4.p1class="ltx_para"+<div id='Ch2.I7.I3.i4.p1class='ltx_para'
-<p class="ltx_p"><math id="Ch2.I7.I3.i4.p1.m1class="ltx_Mathalttext="{{{{{{\forall\textrm{\lstinline 1}}}\in\{0,\dots,\textrm{\lstinline 1}}}\}:\textrm{% +<p class='ltx_p'><math id='Ch2.I7.I3.i4.p1.m1class='ltx_Mathalttext='{{{{{{\forall\textrm{\lstinline 1}}}\in\{0,\dots,\textrm{\lstinline 1}}}\}:\textrm{% 
-\lstinline 1}}}display="inline"><mrow><mrow><mrow><mo>∀</mo><mtext class="ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">i</mtext></mrow><mo>∈</mo><mrow><mo stretchy="false">{</mo><mn>0</mn><mo>,</mo><mi mathvariant="normal">…</mi><mo>,</mo><mrow class="ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting"><mtext>shape</mtext><mtext>(</mtext><mtext>ov</mtext><mtext>)[[0]]</mtext></mrow><mo stretchy="false">}</mo></mrow></mrow><mo>:</mo><mrow class="ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting"><mtext>ov</mtext><mtext>[[</mtext><mtext>i</mtext><mtext>]]</mtext><mtext> </mtext><mtext>&lt;=</mtext><mtext> </mtext><mtext>shape</mtext><mtext>(</mtext><mtext>a</mtext><mtext>)[[</mtext><mtext>i</mtext><mtext>]]</mtext></mrow></mrow></math></p>+\lstinline 1}}}display='inline'><mrow><mrow><mrow><mo>∀</mo><mtext class='ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>i</mtext></mrow><mo>∈</mo><mrow><mo stretchy='false'>{</mo><mn>0</mn><mo>,</mo><mi mathvariant='normal'>…</mi><mo>,</mo><mrow class='ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'><mtext>shape</mtext><mtext>(</mtext><mtext>ov</mtext><mtext>)[[0]]</mtext></mrow><mo stretchy='false'>}</mo></mrow></mrow><mo>:</mo><mrow class='ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'><mtext>ov</mtext><mtext>[[</mtext><mtext>i</mtext><mtext>]]</mtext><mtext> </mtext><mtext>&lt;=</mtext><mtext> </mtext><mtext>shape</mtext><mtext>(</mtext><mtext>a</mtext><mtext>)[[</mtext><mtext>i</mtext><mtext>]]</mtext></mrow></mrow></math></p>
 </div> </div>
 </li> </li>
-<li id="Ch2.I7.I3.i5class="ltx_itemstyle="list-style-type:none;"+<li id='Ch2.I7.I3.i5class='ltx_itemstyle='list-style-type:none;'
-<span class="ltx_tag ltx_tag_itemize"><span class="ltx_text ltx_font_bold">–</span></span>  +<span class='ltx_tag ltx_tag_itemize'><span class='ltx_text ltx_font_bold'>–</span></span>  
-<div id="Ch2.I7.I3.i5.p1class="ltx_para"+<div id='Ch2.I7.I3.i5.p1class='ltx_para'
-<p class="ltx_p"><math id="Ch2.I7.I3.i5.p1.m1class="ltx_Mathalttext="{{{{{{\forall\textrm{\lstinline 1}}}\in\{0,\dots,\textrm{\lstinline 1}}}\}:\textrm{% +<p class='ltx_p'><math id='Ch2.I7.I3.i5.p1.m1class='ltx_Mathalttext='{{{{{{\forall\textrm{\lstinline 1}}}\in\{0,\dots,\textrm{\lstinline 1}}}\}:\textrm{% 
-\lstinline 1}}}display="inline"><mrow><mrow><mrow><mo>∀</mo><mtext class="ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">i</mtext></mrow><mo>∈</mo><mrow><mo stretchy="false">{</mo><mn>0</mn><mo>,</mo><mi mathvariant="normal">…</mi><mo>,</mo><mrow class="ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting"><mtext>min</mtext><mtext>(</mtext><mtext>shape</mtext><mtext>(</mtext><mtext>ov</mtext><mtext>)[[0]],</mtext><mtext> </mtext><mtext>shape</mtext><mtext>(</mtext><mtext>sv</mtext><mtext>)[[0]])</mtext></mrow><mo stretchy="false">}</mo></mrow></mrow><mo>:</mo><mrow class="ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting"><mtext>ov</mtext><mtext>[[</mtext><mtext>i</mtext><mtext>]]</mtext><mtext> </mtext><mtext>+</mtext><mtext> </mtext><mtext>sv</mtext><mtext>[[</mtext><mtext>i</mtext><mtext>]]</mtext><mtext> </mtext><mtext>&lt;=</mtext><mtext> </mtext><mtext>shape</mtext><mtext>(</mtext><mtext>a</mtext><mtext>)[[</mtext><mtext>i</mtext><mtext>]]</mtext></mrow></mrow></math></p>+\lstinline 1}}}display='inline'><mrow><mrow><mrow><mo>∀</mo><mtext class='ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>i</mtext></mrow><mo>∈</mo><mrow><mo stretchy='false'>{</mo><mn>0</mn><mo>,</mo><mi mathvariant='normal'>…</mi><mo>,</mo><mrow class='ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'><mtext>min</mtext><mtext>(</mtext><mtext>shape</mtext><mtext>(</mtext><mtext>ov</mtext><mtext>)[[0]],</mtext><mtext> </mtext><mtext>shape</mtext><mtext>(</mtext><mtext>sv</mtext><mtext>)[[0]])</mtext></mrow><mo stretchy='false'>}</mo></mrow></mrow><mo>:</mo><mrow class='ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'><mtext>ov</mtext><mtext>[[</mtext><mtext>i</mtext><mtext>]]</mtext><mtext> </mtext><mtext>+</mtext><mtext> </mtext><mtext>sv</mtext><mtext>[[</mtext><mtext>i</mtext><mtext>]]</mtext><mtext> </mtext><mtext>&lt;=</mtext><mtext> </mtext><mtext>shape</mtext><mtext>(</mtext><mtext>a</mtext><mtext>)[[</mtext><mtext>i</mtext><mtext>]]</mtext></mrow></mrow></math></p>
 </div> </div>
 </li> </li>
-<li id="Ch2.I7.I3.i6class="ltx_itemstyle="list-style-type:none;"+<li id='Ch2.I7.I3.i6class='ltx_itemstyle='list-style-type:none;'
-<span class="ltx_tag ltx_tag_itemize"><span class="ltx_text ltx_font_bold">–</span></span>  +<span class='ltx_tag ltx_tag_itemize'><span class='ltx_text ltx_font_bold'>–</span></span>  
-<div id="Ch2.I7.I3.i6.p1class="ltx_para"+<div id='Ch2.I7.I3.i6.p1class='ltx_para'
-<p class="ltx_p"><math id="Ch2.I7.I3.i6.p1.m1class="ltx_Mathalttext="{{{{{{{{\forall\textrm{\lstinline 1}}}\in\{\textrm{\lstinline 1}}},\dots,\textrm{% +<p class='ltx_p'><math id='Ch2.I7.I3.i6.p1.m1class='ltx_Mathalttext='{{{{{{{{\forall\textrm{\lstinline 1}}}\in\{\textrm{\lstinline 1}}},\dots,\textrm{% 
-\lstinline 1}}}\}:\textrm{\lstinline 1}}}display="inline"><mrow><mrow><mrow><mo>∀</mo><mtext class="ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">i</mtext></mrow><mo>∈</mo><mrow><mo stretchy="false">{</mo><mrow class="ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting"><mtext>min</mtext><mtext>(</mtext><mtext>shape</mtext><mtext>(</mtext><mtext>ov</mtext><mtext>)[[0]],</mtext><mtext> </mtext><mtext>shape</mtext><mtext>(</mtext><mtext>sv</mtext><mtext>)[[0]])</mtext></mrow><mo>,</mo><mi mathvariant="normal">…</mi><mo>,</mo><mrow class="ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting"><mtext>shape</mtext><mtext>(</mtext><mtext>sv</mtext><mtext>)[[0]]</mtext></mrow><mo stretchy="false">}</mo></mrow></mrow><mo>:</mo><mrow class="ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting"><mtext>sv</mtext><mtext>[[</mtext><mtext>i</mtext><mtext>]]</mtext><mtext> </mtext><mtext>&lt;=</mtext><mtext> </mtext><mtext>shape</mtext><mtext>(</mtext><mtext>a</mtext><mtext>)[[</mtext><mtext>i</mtext><mtext>]]</mtext></mrow></mrow></math></p>+\lstinline 1}}}\}:\textrm{\lstinline 1}}}display='inline'><mrow><mrow><mrow><mo>∀</mo><mtext class='ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>i</mtext></mrow><mo>∈</mo><mrow><mo stretchy='false'>{</mo><mrow class='ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'><mtext>min</mtext><mtext>(</mtext><mtext>shape</mtext><mtext>(</mtext><mtext>ov</mtext><mtext>)[[0]],</mtext><mtext> </mtext><mtext>shape</mtext><mtext>(</mtext><mtext>sv</mtext><mtext>)[[0]])</mtext></mrow><mo>,</mo><mi mathvariant='normal'>…</mi><mo>,</mo><mrow class='ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'><mtext>shape</mtext><mtext>(</mtext><mtext>sv</mtext><mtext>)[[0]]</mtext></mrow><mo stretchy='false'>}</mo></mrow></mrow><mo>:</mo><mrow class='ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'><mtext>sv</mtext><mtext>[[</mtext><mtext>i</mtext><mtext>]]</mtext><mtext> </mtext><mtext>&lt;=</mtext><mtext> </mtext><mtext>shape</mtext><mtext>(</mtext><mtext>a</mtext><mtext>)[[</mtext><mtext>i</mtext><mtext>]]</mtext></mrow></mrow></math></p>
 </div> </div>
 </li> </li>
Line 1554: Line 2153:
 </div> </div>
 </dd> </dd>
-<dt id="Ch2.I7.ix4class="ltx_item"><span class="ltx_tag ltx_tag_description"><math id="Ch2.I7.ix4.m1class="ltx_Mathalttext="e_{1}display="inline"><msub><mi>e</mi><mn>1</mn></msub></math> ++ <math id="Ch2.I7.ix4.m2class="ltx_Mathalttext="e_{2}display="inline"><msub><mi>e</mi><mn>2</mn></msub></math></span></dt> +<dt id='Ch2.I7.ix4class='ltx_item'><span class='ltx_tag ltx_tag_description'><math id='Ch2.I7.ix4.m1class='ltx_Mathalttext='e_{1}display='inline'><msub><mi>e</mi><mn>1</mn></msub></math> ++ <math id='Ch2.I7.ix4.m2class='ltx_Mathalttext='e_{2}display='inline'><msub><mi>e</mi><mn>2</mn></msub></math></span></dt> 
-<dd class="ltx_item"+<dd class='ltx_item'
-<div id="Ch2.I7.ix4.p1class="ltx_para"+<div id='Ch2.I7.ix4.p1class='ltx_para'
-<p class="ltx_p">concatenates arrays <math id="Ch2.I7.ix4.p1.m1class="ltx_Mathalttext="e_{1}display="inline"><msub><mi>e</mi><mn>1</mn></msub></math> and <math id="Ch2.I7.ix4.p1.m2class="ltx_Mathalttext="e_{2}display="inline"><msub><mi>e</mi><mn>2</mn></msub></math> with respect to the leftmost axis. +<p class='ltx_p'>concatenates arrays <math id='Ch2.I7.ix4.p1.m1class='ltx_Mathalttext='e_{1}display='inline'><msub><mi>e</mi><mn>1</mn></msub></math> and <math id='Ch2.I7.ix4.p1.m2class='ltx_Mathalttext='e_{2}display='inline'><msub><mi>e</mi><mn>2</mn></msub></math> with respect to the leftmost axis. 
-As in <span class="ltx_text ltx_font_smallcaps">SaC</span> all arrays are homogeneous, this requires all but the leftmost+As in <span class='ltx_text ltx_font_smallcaps'>SaC</span> all arrays are homogeneous, this requires all but the leftmost
 axis to be of identical extent. axis to be of identical extent.
-<br class="ltx_break"><span class="ltx_text ltx_font_italic">Domain restrictions</span>:</p> +<br class='ltx_break'><span class='ltx_text ltx_font_italic'>Domain restrictions</span>:</p> 
-<ul id="Ch2.I7.I4class="ltx_itemize"+<ul id='Ch2.I7.I4class='ltx_itemize'
-<li id="Ch2.I7.I4.i1class="ltx_itemstyle="list-style-type:none;"+<li id='Ch2.I7.I4.i1class='ltx_itemstyle='list-style-type:none;'
-<span class="ltx_tag ltx_tag_itemize"><span class="ltx_text ltx_font_bold">–</span></span>  +<span class='ltx_tag ltx_tag_itemize'><span class='ltx_text ltx_font_bold'>–</span></span>  
-<div id="Ch2.I7.I4.i1.p1class="ltx_para"+<div id='Ch2.I7.I4.i1.p1class='ltx_para'
-<p class="ltx_p"><math id="Ch2.I7.I4.i1.p1.m1class="ltx_Mathalttext="e_{1}display="inline"><msub><mi>e</mi><mn>1</mn></msub></math> and <math id="Ch2.I7.I4.i1.p1.m2class="ltx_Mathalttext="e_{2}display="inline"><msub><mi>e</mi><mn>2</mn></msub></math> have to be of identical element type</p>+<p class='ltx_p'><math id='Ch2.I7.I4.i1.p1.m1class='ltx_Mathalttext='e_{1}display='inline'><msub><mi>e</mi><mn>1</mn></msub></math> and <math id='Ch2.I7.I4.i1.p1.m2class='ltx_Mathalttext='e_{2}display='inline'><msub><mi>e</mi><mn>2</mn></msub></math> have to be of identical element type</p>
 </div> </div>
 </li> </li>
-<li id="Ch2.I7.I4.i2class="ltx_itemstyle="list-style-type:none;"+<li id='Ch2.I7.I4.i2class='ltx_itemstyle='list-style-type:none;'
-<span class="ltx_tag ltx_tag_itemize"><span class="ltx_text ltx_font_bold">–</span></span>  +<span class='ltx_tag ltx_tag_itemize'><span class='ltx_text ltx_font_bold'>–</span></span>  
-<div id="Ch2.I7.I4.i2.p1class="ltx_para"+<div id='Ch2.I7.I4.i2.p1class='ltx_para'
-<p class="ltx_p"><span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting"><span class="ltx_text ltx_lst_identifier">drop</span>(1,<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">shape</span>(<math id="Ch2.I7.I4.i2.p1.m1class="ltx_Mathalttext="e_{1}display="inline"><msub><mi>e</mi><mn>1</mn></msub></math>))<span class="ltx_text ltx_lst_space"> </span>==<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">drop</span>(1,<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">shape</span>(<math id="Ch2.I7.I4.i2.p1.m2class="ltx_Mathalttext="e_{2}display="inline"><msub><mi>e</mi><mn>2</mn></msub></math>))</span>.</p>+<p class='ltx_p'><span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'><span class='ltx_text ltx_lst_identifier'>drop</span>(1,<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>shape</span>(<math id='Ch2.I7.I4.i2.p1.m1class='ltx_Mathalttext='e_{1}display='inline'><msub><mi>e</mi><mn>1</mn></msub></math>))<span class='ltx_text ltx_lst_space'> </span>==<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>drop</span>(1,<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>shape</span>(<math id='Ch2.I7.I4.i2.p1.m2class='ltx_Mathalttext='e_{2}display='inline'><msub><mi>e</mi><mn>2</mn></msub></math>))</span>.</p>
 </div> </div>
 </li> </li>
Line 1577: Line 2176:
 </div> </div>
 </dd> </dd>
-<dt id="Ch2.I7.ix5class="ltx_item"><span class="ltx_tag ltx_tag_description">rotate(ov, a)</span></dt> +<dt id='Ch2.I7.ix5class='ltx_item'><span class='ltx_tag ltx_tag_description'>rotate(ov, a)</span></dt> 
-<dd class="ltx_item"+<dd class='ltx_item'
-<div id="Ch2.I7.ix5.p1class="ltx_para"+<div id='Ch2.I7.ix5.p1class='ltx_para'
-<p class="ltx_p">rotates the array <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">a</span> with respect to those axes specified +<p class='ltx_p'>rotates the array <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>a</span> with respect to those axes specified 
-by the offset vector <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">ov</span>+by the offset vector <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>ov</span>
-Starting from the leftmost axis, the elements of <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">ov</span> specify by how many+Starting from the leftmost axis, the elements of <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>ov</span> specify by how many
 positions the elements are rotated towards increasing indices (positive values) positions the elements are rotated towards increasing indices (positive values)
 or towards decreasing indices (negative values). or towards decreasing indices (negative values).
-<span class="ltx_text ltx_font_italic">Domain restrictions</span>:</p> +<span class='ltx_text ltx_font_italic'>Domain restrictions</span>:</p> 
-<ul id="Ch2.I7.I5class="ltx_itemize"+<ul id='Ch2.I7.I5class='ltx_itemize'
-<li id="Ch2.I7.I5.i1class="ltx_itemstyle="list-style-type:none;"+<li id='Ch2.I7.I5.i1class='ltx_itemstyle='list-style-type:none;'
-<span class="ltx_tag ltx_tag_itemize"><span class="ltx_text ltx_font_bold">–</span></span>  +<span class='ltx_tag ltx_tag_itemize'><span class='ltx_text ltx_font_bold'>–</span></span>  
-<div id="Ch2.I7.I5.i1.p1class="ltx_para"+<div id='Ch2.I7.I5.i1.p1class='ltx_para'
-<p class="ltx_p"><span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting"><span class="ltx_text ltx_lst_identifier">dim</span>(<span class="ltx_text ltx_lst_identifier">ov</span>)<span class="ltx_text ltx_lst_space"> </span>==<span class="ltx_text ltx_lst_space"> </span>1</span></p>+<p class='ltx_p'><span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'><span class='ltx_text ltx_lst_identifier'>dim</span>(<span class='ltx_text ltx_lst_identifier'>ov</span>)<span class='ltx_text ltx_lst_space'> </span>==<span class='ltx_text ltx_lst_space'> </span>1</span></p>
 </div> </div>
 </li> </li>
-<li id="Ch2.I7.I5.i2class="ltx_itemstyle="list-style-type:none;"+<li id='Ch2.I7.I5.i2class='ltx_itemstyle='list-style-type:none;'
-<span class="ltx_tag ltx_tag_itemize"><span class="ltx_text ltx_font_bold">–</span></span>  +<span class='ltx_tag ltx_tag_itemize'><span class='ltx_text ltx_font_bold'>–</span></span>  
-<div id="Ch2.I7.I5.i2.p1class="ltx_para"+<div id='Ch2.I7.I5.i2.p1class='ltx_para'
-<p class="ltx_p"><span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting"><span class="ltx_text ltx_lst_identifier">shape</span>(<span class="ltx_text ltx_lst_identifier">ov</span>)[[0]]<span class="ltx_text ltx_lst_space"> </span>&lt;=<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">dim</span>(<span class="ltx_text ltx_lst_identifier">a</span>)</span></p>+<p class='ltx_p'><span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'><span class='ltx_text ltx_lst_identifier'>shape</span>(<span class='ltx_text ltx_lst_identifier'>ov</span>)[[0]]<span class='ltx_text ltx_lst_space'> </span>&lt;=<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>dim</span>(<span class='ltx_text ltx_lst_identifier'>a</span>)</span></p>
 </div> </div>
 </li> </li>
Line 1602: Line 2201:
 </div> </div>
 </dd> </dd>
-<dt id="Ch2.I7.ix6class="ltx_item"><span class="ltx_tag ltx_tag_description">shift(ov, expr, a)</span></dt> +<dt id='Ch2.I7.ix6class='ltx_item'><span class='ltx_tag ltx_tag_description'>shift(ov, expr, a)</span></dt> 
-<dd class="ltx_item"+<dd class='ltx_item'
-<div id="Ch2.I7.ix6.p1class="ltx_para"+<div id='Ch2.I7.ix6.p1class='ltx_para'
-<p class="ltx_p">shifts the array <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">a</span> with respect to those axes specified +<p class='ltx_p'>shifts the array <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>a</span> with respect to those axes specified 
-by the offset vector <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">ov</span>.+by the offset vector <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>ov</span>.
 The element positions that become “void” are filled by the (scalar) The element positions that become “void” are filled by the (scalar)
-default element <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">expr</span>+default element <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>expr</span>
-Again, depending on the sign of the values of <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">ov</span> the elements+Again, depending on the sign of the values of <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>ov</span> the elements
 are either shifted towards increasing or decreasing indices. are either shifted towards increasing or decreasing indices.
-<br class="ltx_break"><span class="ltx_text ltx_font_italic">Domain restrictions</span>:</p> +<br class='ltx_break'><span class='ltx_text ltx_font_italic'>Domain restrictions</span>:</p> 
-<ul id="Ch2.I7.I6class="ltx_itemize"+<ul id='Ch2.I7.I6class='ltx_itemize'
-<li id="Ch2.I7.I6.i1class="ltx_itemstyle="list-style-type:none;"+<li id='Ch2.I7.I6.i1class='ltx_itemstyle='list-style-type:none;'
-<span class="ltx_tag ltx_tag_itemize"><span class="ltx_text ltx_font_bold">–</span></span>  +<span class='ltx_tag ltx_tag_itemize'><span class='ltx_text ltx_font_bold'>–</span></span>  
-<div id="Ch2.I7.I6.i1.p1class="ltx_para"+<div id='Ch2.I7.I6.i1.p1class='ltx_para'
-<p class="ltx_p"><span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting"><span class="ltx_text ltx_lst_identifier">dim</span>(<span class="ltx_text ltx_lst_identifier">ov</span>)<span class="ltx_text ltx_lst_space"> </span>==<span class="ltx_text ltx_lst_space"> </span>1</span></p>+<p class='ltx_p'><span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'><span class='ltx_text ltx_lst_identifier'>dim</span>(<span class='ltx_text ltx_lst_identifier'>ov</span>)<span class='ltx_text ltx_lst_space'> </span>==<span class='ltx_text ltx_lst_space'> </span>1</span></p>
 </div> </div>
 </li> </li>
-<li id="Ch2.I7.I6.i2class="ltx_itemstyle="list-style-type:none;"+<li id='Ch2.I7.I6.i2class='ltx_itemstyle='list-style-type:none;'
-<span class="ltx_tag ltx_tag_itemize"><span class="ltx_text ltx_font_bold">–</span></span>  +<span class='ltx_tag ltx_tag_itemize'><span class='ltx_text ltx_font_bold'>–</span></span>  
-<div id="Ch2.I7.I6.i2.p1class="ltx_para"+<div id='Ch2.I7.I6.i2.p1class='ltx_para'
-<p class="ltx_p"><span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting"><span class="ltx_text ltx_lst_identifier">shape</span>(<span class="ltx_text ltx_lst_identifier">ov</span>)[[0]]<span class="ltx_text ltx_lst_space"> </span>&lt;=<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">dim</span>(<span class="ltx_text ltx_lst_identifier">a</span>)</span></p>+<p class='ltx_p'><span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'><span class='ltx_text ltx_lst_identifier'>shape</span>(<span class='ltx_text ltx_lst_identifier'>ov</span>)[[0]]<span class='ltx_text ltx_lst_space'> </span>&lt;=<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>dim</span>(<span class='ltx_text ltx_lst_identifier'>a</span>)</span></p>
 </div> </div>
 </li> </li>
-<li id="Ch2.I7.I6.i3class="ltx_itemstyle="list-style-type:none;"+<li id='Ch2.I7.I6.i3class='ltx_itemstyle='list-style-type:none;'
-<span class="ltx_tag ltx_tag_itemize"><span class="ltx_text ltx_font_bold">–</span></span>  +<span class='ltx_tag ltx_tag_itemize'><span class='ltx_text ltx_font_bold'>–</span></span>  
-<div id="Ch2.I7.I6.i3.p1class="ltx_para"+<div id='Ch2.I7.I6.i3.p1class='ltx_para'
-<p class="ltx_p"><span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting"><span class="ltx_text ltx_lst_identifier">shape</span>(<span class="ltx_text ltx_lst_identifier">expr</span>)[[0]]<span class="ltx_text ltx_lst_space"> </span>==<span class="ltx_text ltx_lst_space">  </span>[]</span></p>+<p class='ltx_p'><span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'><span class='ltx_text ltx_lst_identifier'>shape</span>(<span class='ltx_text ltx_lst_identifier'>expr</span>)[[0]]<span class='ltx_text ltx_lst_space'> </span>==<span class='ltx_text ltx_lst_space'>  </span>[]</span></p>
 </div> </div>
 </li> </li>
Line 1636: Line 2235:
 </dl> </dl>
 </div> </div>
-<div id="Ch2.S2.SS1.SSSx3.p3class="ltx_para"+<div id='Ch2.S2.SS1.SSSx3.p3class='ltx_para'
-<p class="ltx_p">A few examples:</p>+<p class='ltx_p'>A few examples:</p>
 </div> </div>
-<figure id="LST11class="ltx_float ltx_lstlisting ltx_role_listing"+<figure id='LST11class='ltx_float ltx_lstlisting ltx_role_listing'
-<figcaption class="ltx_caption"><span class="ltx_tag ltx_tag_float">Listing 11: </span>Restructuring Operations</figcaption> +<figcaption class='ltx_caption'><span class='ltx_tag ltx_tag_float'>Listing 11: </span>Restructuring Operations</figcaption> 
-<div class="ltx_listing ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_listing"+<div class='ltx_listing ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_listing'
-<div class="ltx_listing_data"><a href="data:text/plain;base64,dXNlIFN0ZElPOiBhbGw7CnVzZSBBcnJheTogYWxsOwoKaW50IG1haW4oKQp7CiAgdmVjdCA9IFsx%0ALDIsMyw0LDUsNiw3LDgsOV07CgogIG1hdCA9IFt2ZWN0LCB2ZWN0KzEwLCB2ZWN0KzIwXTsKICBw%0AcmludChtYXQpOwoKICBwcmludCh0YWtlKFsyLC0yXSwgbWF0KSk7CiAgcHJpbnQodGFrZShbMl0s%0AIG1hdCkpOwogIHByaW50KHRha2UoW10sIG1hdCkpOwoKICBwcmludCh0YWtlKFswXSwgbWF0KSk7%0ACiAgcHJpbnQodGFrZShbMiwgMF0sIG1hdCkpOwogIHByaW50KHRha2UoWzJdLCByZXNoYXBlKFsz%0ALDAsNV0sIFtdKSkpOwoKICBwcmludChkcm9wKFswLCAtMV0sIG1hdCkpOwoKICBwcmludChtYXQg%0AKysgbWF0KTsKCiAgcHJpbnQocm90YXRlKFstMSwgNDJdLCBtYXQpKTsKICBwcmludChyb3RhdGUo%0AWyAxXSwgbWF0KSk7CgogIHByaW50KHNoaWZ0KFswLCAtMl0sIDAsIG1hdCkpOwogIHByaW50KHNo%0AaWZ0KFswLCAtMjJdLCAwLCBtYXQpKTsKICBwcmludChzaGlmdChbMV0sIDAsIG1hdCkpOwoKICBy%0AZXR1cm4gMDsKfQ==%0A">⬇</a></div> +<div class='ltx_listing_data'><a href='data:text/plain;base64,dXNlIFN0ZElPOiBhbGw7CnVzZSBBcnJheTogYWxsOwoKaW50IG1haW4oKQp7CiAgdmVjdCA9IFsx%0ALDIsMyw0LDUsNiw3LDgsOV07CgogIG1hdCA9IFt2ZWN0LCB2ZWN0KzEwLCB2ZWN0KzIwXTsKICBw%0AcmludChtYXQpOwoKICBwcmludCh0YWtlKFsyLC0yXSwgbWF0KSk7CiAgcHJpbnQodGFrZShbMl0s%0AIG1hdCkpOwogIHByaW50KHRha2UoW10sIG1hdCkpOwoKICBwcmludCh0YWtlKFswXSwgbWF0KSk7%0ACiAgcHJpbnQodGFrZShbMiwgMF0sIG1hdCkpOwogIHByaW50KHRha2UoWzJdLCByZXNoYXBlKFsz%0ALDAsNV0sIFtdKSkpOwoKICBwcmludChkcm9wKFswLCAtMV0sIG1hdCkpOwoKICBwcmludChtYXQg%0AKysgbWF0KTsKCiAgcHJpbnQocm90YXRlKFstMSwgNDJdLCBtYXQpKTsKICBwcmludChyb3RhdGUo%0AWyAxXSwgbWF0KSk7CgogIHByaW50KHNoaWZ0KFswLCAtMl0sIDAsIG1hdCkpOwogIHByaW50KHNo%0AaWZ0KFswLCAtMjJdLCAwLCBtYXQpKTsKICBwcmludChzaGlmdChbMV0sIDAsIG1hdCkpOwoKICBy%0AZXR1cm4gMDsKfQ==%0A'>⬇</a></div> 
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">1</span></span><span class="ltx_text ltx_lst_keyword ltx_font_bold">use</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">StdIO</span>:<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">all</span>;+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>1</span></span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>use</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>StdIO</span>:<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>all</span>;
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">2</span></span><span class="ltx_text ltx_lst_keyword ltx_font_bold">use</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">Array</span>:<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">all</span>;+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>2</span></span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>use</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>Array</span>:<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>all</span>;
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">3</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>3</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">4</span></span><span class="ltx_text ltx_lst_keyword ltx_font_bold">int</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">main</span>()+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>4</span></span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>int</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>main</span>()
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">5</span></span>{+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>5</span></span>{
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">6</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">vect</span><span class="ltx_text ltx_lst_space"> </span>=<span class="ltx_text ltx_lst_space"> </span>[1,2,3,4,5,6,7,8,9];+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>6</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>vect</span><span class='ltx_text ltx_lst_space'> </span>=<span class='ltx_text ltx_lst_space'> </span>[1,2,3,4,5,6,7,8,9];
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">7</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>7</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">8</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">mat</span><span class="ltx_text ltx_lst_space"> </span>=<span class="ltx_text ltx_lst_space"> </span>[<span class="ltx_text ltx_lst_identifier">vect</span>,<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">vect</span>+10,<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">vect</span>+20];+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>8</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>mat</span><span class='ltx_text ltx_lst_space'> </span>=<span class='ltx_text ltx_lst_space'> </span>[<span class='ltx_text ltx_lst_identifier'>vect</span>,<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>vect</span>+10,<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>vect</span>+20];
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">9</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">print</span>(<span class="ltx_text ltx_lst_identifier">mat</span>);+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>9</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>print</span>(<span class='ltx_text ltx_lst_identifier'>mat</span>);
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">10</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>10</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">11</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">print</span>(<span class="ltx_text ltx_lst_identifier">take</span>([2,-2],<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">mat</span>));+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>11</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>print</span>(<span class='ltx_text ltx_lst_identifier'>take</span>([2,-2],<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>mat</span>));
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">12</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">print</span>(<span class="ltx_text ltx_lst_identifier">take</span>([2],<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">mat</span>));+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>12</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>print</span>(<span class='ltx_text ltx_lst_identifier'>take</span>([2],<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>mat</span>));
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">13</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">print</span>(<span class="ltx_text ltx_lst_identifier">take</span>([],<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">mat</span>));+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>13</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>print</span>(<span class='ltx_text ltx_lst_identifier'>take</span>([],<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>mat</span>));
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">14</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>14</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">15</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">print</span>(<span class="ltx_text ltx_lst_identifier">take</span>([0],<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">mat</span>));+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>15</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>print</span>(<span class='ltx_text ltx_lst_identifier'>take</span>([0],<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>mat</span>));
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">16</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">print</span>(<span class="ltx_text ltx_lst_identifier">take</span>([2,<span class="ltx_text ltx_lst_space"> </span>0],<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">mat</span>));+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>16</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>print</span>(<span class='ltx_text ltx_lst_identifier'>take</span>([2,<span class='ltx_text ltx_lst_space'> </span>0],<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>mat</span>));
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">17</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">print</span>(<span class="ltx_text ltx_lst_identifier">take</span>([2],<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">reshape</span>([3,0,5],<span class="ltx_text ltx_lst_space"> </span>[])));+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>17</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>print</span>(<span class='ltx_text ltx_lst_identifier'>take</span>([2],<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>reshape</span>([3,0,5],<span class='ltx_text ltx_lst_space'> </span>[])));
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">18</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>18</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">19</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">print</span>(<span class="ltx_text ltx_lst_identifier">drop</span>([0,<span class="ltx_text ltx_lst_space"> </span>-1],<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">mat</span>));+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>19</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>print</span>(<span class='ltx_text ltx_lst_identifier'>drop</span>([0,<span class='ltx_text ltx_lst_space'> </span>-1],<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>mat</span>));
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">20</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>20</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">21</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">print</span>(<span class="ltx_text ltx_lst_identifier">mat</span><span class="ltx_text ltx_lst_space"> </span>++<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">mat</span>);+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>21</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>print</span>(<span class='ltx_text ltx_lst_identifier'>mat</span><span class='ltx_text ltx_lst_space'> </span>++<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>mat</span>);
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">22</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>22</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">23</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">print</span>(<span class="ltx_text ltx_lst_identifier">rotate</span>([-1,<span class="ltx_text ltx_lst_space"> </span>42],<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">mat</span>));+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>23</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>print</span>(<span class='ltx_text ltx_lst_identifier'>rotate</span>([-1,<span class='ltx_text ltx_lst_space'> </span>42],<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>mat</span>));
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">24</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">print</span>(<span class="ltx_text ltx_lst_identifier">rotate</span>([<span class="ltx_text ltx_lst_space"> </span>1],<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">mat</span>));+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>24</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>print</span>(<span class='ltx_text ltx_lst_identifier'>rotate</span>([<span class='ltx_text ltx_lst_space'> </span>1],<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>mat</span>));
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">25</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>25</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">26</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">print</span>(<span class="ltx_text ltx_lst_identifier">shift</span>([0,<span class="ltx_text ltx_lst_space"> </span>-2],<span class="ltx_text ltx_lst_space"> </span>0,<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">mat</span>));+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>26</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>print</span>(<span class='ltx_text ltx_lst_identifier'>shift</span>([0,<span class='ltx_text ltx_lst_space'> </span>-2],<span class='ltx_text ltx_lst_space'> </span>0,<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>mat</span>));
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">27</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">print</span>(<span class="ltx_text ltx_lst_identifier">shift</span>([0,<span class="ltx_text ltx_lst_space"> </span>-22],<span class="ltx_text ltx_lst_space"> </span>0,<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">mat</span>));+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>27</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>print</span>(<span class='ltx_text ltx_lst_identifier'>shift</span>([0,<span class='ltx_text ltx_lst_space'> </span>-22],<span class='ltx_text ltx_lst_space'> </span>0,<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>mat</span>));
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">28</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">print</span>(<span class="ltx_text ltx_lst_identifier">shift</span>([1],<span class="ltx_text ltx_lst_space"> </span>0,<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">mat</span>));+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>28</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>print</span>(<span class='ltx_text ltx_lst_identifier'>shift</span>([1],<span class='ltx_text ltx_lst_space'> </span>0,<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>mat</span>));
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">29</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>29</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">30</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_keyword ltx_font_bold">return</span><span class="ltx_text ltx_lst_space"> </span>0;+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>30</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>return</span><span class='ltx_text ltx_lst_space'> </span>0;
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">31</span></span>}+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>31</span></span>}
 </div> </div>
 </div> </div>
 </figure> </figure>
-<div id="Ch2.S2.SS1.SSSx3.p4class="ltx_para"+<div id='Ch2.S2.SS1.SSSx3.p4class='ltx_para'
-<p class="ltx_p">The applications of <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">take</span> in lines 11-13 demonstrate, how the +<p class='ltx_p'>The applications of <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>take</span> in lines 11-13 demonstrate, how the 
-dimensionality of <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">mat</span> remains unaffected by the length of the+dimensionality of <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>mat</span> remains unaffected by the length of the
 first argument. first argument.
 Only the shape of the result and the “side” from which the elements Only the shape of the result and the “side” from which the elements
 are taken is defined by it.</p> are taken is defined by it.</p>
 </div> </div>
-<div id="Ch2.S2.SS1.SSSx3.p5class="ltx_para"+<div id='Ch2.S2.SS1.SSSx3.p5class='ltx_para'
-<p class="ltx_p">The applications in lines 15-17 demonstrate how empty arrays are dealt+<p class='ltx_p'>The applications in lines 15-17 demonstrate how empty arrays are dealt
 with in the individual argument positions. with in the individual argument positions.
 In particular from the example in line 17 it can be seen how well the In particular from the example in line 17 it can be seen how well the
Line 1752: Line 2351:
 fits nicely into the overall framework.</p> fits nicely into the overall framework.</p>
 </div> </div>
-<div id="Ch2.S2.SS1.SSSx3.p6class="ltx_para"+<div id='Ch2.S2.SS1.SSSx3.p6class='ltx_para'
-<p class="ltx_p">The remaining examples are rather straightforward.+<p class='ltx_p'>The remaining examples are rather straightforward.
 The only aspect of interest here may be the “overflows” in the The only aspect of interest here may be the “overflows” in the
 rotation and shift parameters in lines 24 and 28, respectively.</p> rotation and shift parameters in lines 24 and 28, respectively.</p>
 </div> </div>
-<div id="Thmtheorem7class="ltx_theorem ltx_theorem_theorem"+<div id='Thmtheorem7class='ltx_theorem ltx_theorem_theorem'
-<h6 class="ltx_title ltx_runin ltx_font_bold ltx_title_theorem">Exercise 7. </h6> +<h6 class='ltx_title ltx_runin ltx_font_bold ltx_title_theorem'>Exercise 7. </h6> 
-<div id="Thmtheorem7.p1class="ltx_para"+<div id='Thmtheorem7.p1class='ltx_para'
-<p class="ltx_p">Which of the following expressions can be reformulated in terms +<p class='ltx_p'>Which of the following expressions can be reformulated in terms 
-of <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">take</span>, <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting">++</span>, and the basic operations defined+of <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>take</span>, <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>++</span>, and the basic operations defined
 in the previous parts?</p> in the previous parts?</p>
-<ul id="Ch2.I8class="ltx_itemize"+<ul id='Ch2.I8class='ltx_itemize'
-<li id="Ch2.I8.i1class="ltx_itemstyle="list-style-type:none;"+<li id='Ch2.I8.i1class='ltx_itemstyle='list-style-type:none;'
-<span class="ltx_tag ltx_tag_itemize">•</span>  +<span class='ltx_tag ltx_tag_itemize'>•</span>  
-<div id="Ch2.I8.i1.p1class="ltx_para"+<div id='Ch2.I8.i1.p1class='ltx_para'
-<p class="ltx_p"><span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting"><span class="ltx_text ltx_lst_identifier">drop</span><span class="ltx_text ltx_lst_space"> </span>(<span class="ltx_text ltx_lst_identifier">v</span>,<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">a</span>)</span>?</p>+<p class='ltx_p'><span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'><span class='ltx_text ltx_lst_identifier'>drop</span><span class='ltx_text ltx_lst_space'> </span>(<span class='ltx_text ltx_lst_identifier'>v</span>,<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>a</span>)</span>?</p>
 </div> </div>
 </li> </li>
-<li id="Ch2.I8.i2class="ltx_itemstyle="list-style-type:none;"+<li id='Ch2.I8.i2class='ltx_itemstyle='list-style-type:none;'
-<span class="ltx_tag ltx_tag_itemize">•</span>  +<span class='ltx_tag ltx_tag_itemize'>•</span>  
-<div id="Ch2.I8.i2.p1class="ltx_para"+<div id='Ch2.I8.i2.p1class='ltx_para'
-<p class="ltx_p"><span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting"><span class="ltx_text ltx_lst_identifier">tile</span><span class="ltx_text ltx_lst_space"> </span>(<span class="ltx_text ltx_lst_identifier">v</span>,<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">o</span>,<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">a</span>)</span>?</p>+<p class='ltx_p'><span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'><span class='ltx_text ltx_lst_identifier'>tile</span><span class='ltx_text ltx_lst_space'> </span>(<span class='ltx_text ltx_lst_identifier'>v</span>,<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>o</span>,<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>a</span>)</span>?</p>
 </div> </div>
 </li> </li>
-<li id="Ch2.I8.i3class="ltx_itemstyle="list-style-type:none;"+<li id='Ch2.I8.i3class='ltx_itemstyle='list-style-type:none;'
-<span class="ltx_tag ltx_tag_itemize">•</span>  +<span class='ltx_tag ltx_tag_itemize'>•</span>  
-<div id="Ch2.I8.i3.p1class="ltx_para"+<div id='Ch2.I8.i3.p1class='ltx_para'
-<p class="ltx_p"><span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting"><span class="ltx_text ltx_lst_identifier">shift</span><span class="ltx_text ltx_lst_space"> </span>([<span class="ltx_text ltx_lst_identifier">n</span>],<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">e</span>,<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">a</span>)</span>?</p>+<p class='ltx_p'><span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'><span class='ltx_text ltx_lst_identifier'>shift</span><span class='ltx_text ltx_lst_space'> </span>([<span class='ltx_text ltx_lst_identifier'>n</span>],<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>e</span>,<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>a</span>)</span>?</p>
 </div> </div>
 </li> </li>
-<li id="Ch2.I8.i4class="ltx_itemstyle="list-style-type:none;"+<li id='Ch2.I8.i4class='ltx_itemstyle='list-style-type:none;'
-<span class="ltx_tag ltx_tag_itemize">•</span>  +<span class='ltx_tag ltx_tag_itemize'>•</span>  
-<div id="Ch2.I8.i4.p1class="ltx_para"+<div id='Ch2.I8.i4.p1class='ltx_para'
-<p class="ltx_p"><span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting"><span class="ltx_text ltx_lst_identifier">shift</span><span class="ltx_text ltx_lst_space"> </span>([<span class="ltx_text ltx_lst_identifier">m</span>,<span class="ltx_text ltx_lst_identifier">n</span>],<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">e</span>,<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">a</span>)</span>?</p>+<p class='ltx_p'><span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'><span class='ltx_text ltx_lst_identifier'>shift</span><span class='ltx_text ltx_lst_space'> </span>([<span class='ltx_text ltx_lst_identifier'>m</span>,<span class='ltx_text ltx_lst_identifier'>n</span>],<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>e</span>,<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>a</span>)</span>?</p>
 </div> </div>
 </li> </li>
-<li id="Ch2.I8.i5class="ltx_itemstyle="list-style-type:none;"+<li id='Ch2.I8.i5class='ltx_itemstyle='list-style-type:none;'
-<span class="ltx_tag ltx_tag_itemize">•</span>  +<span class='ltx_tag ltx_tag_itemize'>•</span>  
-<div id="Ch2.I8.i5.p1class="ltx_para"+<div id='Ch2.I8.i5.p1class='ltx_para'
-<p class="ltx_p"><span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting"><span class="ltx_text ltx_lst_identifier">rotate</span><span class="ltx_text ltx_lst_space"> </span>([<span class="ltx_text ltx_lst_identifier">n</span>],<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">a</span>)</span>?</p>+<p class='ltx_p'><span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'><span class='ltx_text ltx_lst_identifier'>rotate</span><span class='ltx_text ltx_lst_space'> </span>([<span class='ltx_text ltx_lst_identifier'>n</span>],<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>a</span>)</span>?</p>
 </div> </div>
 </li> </li>
-<li id="Ch2.I8.i6class="ltx_itemstyle="list-style-type:none;"+<li id='Ch2.I8.i6class='ltx_itemstyle='list-style-type:none;'
-<span class="ltx_tag ltx_tag_itemize">•</span>  +<span class='ltx_tag ltx_tag_itemize'>•</span>  
-<div id="Ch2.I8.i6.p1class="ltx_para"+<div id='Ch2.I8.i6.p1class='ltx_para'
-<p class="ltx_p"><span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting"><span class="ltx_text ltx_lst_identifier">rotate</span><span class="ltx_text ltx_lst_space"> </span>([<span class="ltx_text ltx_lst_identifier">m</span>,<span class="ltx_text ltx_lst_identifier">n</span>],<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">a</span>)</span>?</p>+<p class='ltx_p'><span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'><span class='ltx_text ltx_lst_identifier'>rotate</span><span class='ltx_text ltx_lst_space'> </span>([<span class='ltx_text ltx_lst_identifier'>m</span>,<span class='ltx_text ltx_lst_identifier'>n</span>],<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>a</span>)</span>?</p>
 </div> </div>
 </li> </li>
 </ul> </ul>
-<p class="ltx_p">Can we define the general versions of <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">shift</span> and <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">rotate</span>+<p class='ltx_p'>Can we define the general versions of <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>shift</span> and <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>rotate</span>
 as well?</p> as well?</p>
 </div> </div>
 </div> </div>
 </section> </section>
-<section id="Ch2.S2.SS1.SSSx4class="ltx_subsubsection"+<section id='Ch2.S2.SS1.SSSx4class='ltx_subsubsection'
-<h6 class="ltx_title ltx_title_subsubsection">Reduction Operations</h6>+<h6 class='ltx_title ltx_title_subsubsection'>Reduction Operations</h6>
  
-<div id="Ch2.S2.SS1.SSSx4.p1class="ltx_para"+<div id='Ch2.S2.SS1.SSSx4.p1class='ltx_para'
-<p class="ltx_p">The library of standard array operations that comes with the current <span class="ltx_text ltx_font_smallcaps">SaC</span> release also contains a set of functions+<p class='ltx_p'>The library of standard array operations that comes with the current <span class='ltx_text ltx_font_smallcaps'>SaC</span> release also contains a set of functions
 that fold all (scalar) elements of an array into a single one. The most common that fold all (scalar) elements of an array into a single one. The most common
 ones of these are described here.</p> ones of these are described here.</p>
 </div> </div>
-<div id="Ch2.S2.SS1.SSSx4.p2class="ltx_para"+<div id='Ch2.S2.SS1.SSSx4.p2class='ltx_para'
-<dl id="Ch2.I9class="ltx_description"+<dl id='Ch2.I9class='ltx_description'
-<dt id="Ch2.I9.ix1class="ltx_item"><span class="ltx_tag ltx_tag_description">sum(a)</span></dt> +<dt id='Ch2.I9.ix1class='ltx_item'><span class='ltx_tag ltx_tag_description'>sum(a)</span></dt> 
-<dd class="ltx_item"+<dd class='ltx_item'
-<div id="Ch2.I9.ix1.p1class="ltx_para"+<div id='Ch2.I9.ix1.p1class='ltx_para'
-<p class="ltx_p">sums up all elements of the array <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">a</span>. If <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">a</span> is +<p class='ltx_p'>sums up all elements of the array <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>a</span>. If <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>a</span> is 
-an empty array, <span class="ltx_text ltx_lstlisting"></span> is returned. +an empty array, <span class='ltx_text ltx_lstlisting'></span> is returned. 
-<br class="ltx_break"><span class="ltx_text ltx_font_italic">Domain restrictions:</span> the element type has to be numerical.</p>+<br class='ltx_break'><span class='ltx_text ltx_font_italic'>Domain restrictions:</span> the element type has to be numerical.</p>
 </div> </div>
 </dd> </dd>
-<dt id="Ch2.I9.ix2class="ltx_item"><span class="ltx_tag ltx_tag_description">prod(a)</span></dt> +<dt id='Ch2.I9.ix2class='ltx_item'><span class='ltx_tag ltx_tag_description'>prod(a)</span></dt> 
-<dd class="ltx_item"+<dd class='ltx_item'
-<div id="Ch2.I9.ix2.p1class="ltx_para"+<div id='Ch2.I9.ix2.p1class='ltx_para'
-<p class="ltx_p">multiplies all elements of the array <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">a</span>. If <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">a</span> is +<p class='ltx_p'>multiplies all elements of the array <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>a</span>. If <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>a</span> is 
-an empty array, <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting">1</span> is returned. +an empty array, <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>1</span> is returned. 
-<br class="ltx_break"><span class="ltx_text ltx_font_italic">Domain restrictions:</span> the element type has to be numerical.</p>+<br class='ltx_break'><span class='ltx_text ltx_font_italic'>Domain restrictions:</span> the element type has to be numerical.</p>
 </div> </div>
 </dd> </dd>
-<dt id="Ch2.I9.ix3class="ltx_item"><span class="ltx_tag ltx_tag_description">all(a)</span></dt> +<dt id='Ch2.I9.ix3class='ltx_item'><span class='ltx_tag ltx_tag_description'>all(a)</span></dt> 
-<dd class="ltx_item"+<dd class='ltx_item'
-<div id="Ch2.I9.ix3.p1class="ltx_para"+<div id='Ch2.I9.ix3.p1class='ltx_para'
-<p class="ltx_p">yields <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">true</span>, iff all elements of <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">a</span> are <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">true</span>+<p class='ltx_p'>yields <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>true</span>, iff all elements of <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>a</span> are <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>true</span>
-If <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">a</span> is an empty array, <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">true</span> is returned. +If <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>a</span> is an empty array, <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>true</span> is returned. 
-<br class="ltx_break"><span class="ltx_text ltx_font_italic">Domain restrictions:</span> the element type has to be boolean.</p>+<br class='ltx_break'><span class='ltx_text ltx_font_italic'>Domain restrictions:</span> the element type has to be boolean.</p>
 </div> </div>
 </dd> </dd>
-<dt id="Ch2.I9.ix4class="ltx_item"><span class="ltx_tag ltx_tag_description">any(a)</span></dt> +<dt id='Ch2.I9.ix4class='ltx_item'><span class='ltx_tag ltx_tag_description'>any(a)</span></dt> 
-<dd class="ltx_item"+<dd class='ltx_item'
-<div id="Ch2.I9.ix4.p1class="ltx_para"+<div id='Ch2.I9.ix4.p1class='ltx_para'
-<p class="ltx_p">yields <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">true</span>, iff at least one element of <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">a</span> +<p class='ltx_p'>yields <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>true</span>, iff at least one element of <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>a</span> 
-is <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">true</span>. If <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">a</span> is an empty array, <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">false</span> is returned. +is <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>true</span>. If <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>a</span> is an empty array, <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>false</span> is returned. 
-<br class="ltx_break"><span class="ltx_text ltx_font_italic">Domain restrictions:</span> the element type has to be boolean.</p>+<br class='ltx_break'><span class='ltx_text ltx_font_italic'>Domain restrictions:</span> the element type has to be boolean.</p>
 </div> </div>
 </dd> </dd>
-<dt id="Ch2.I9.ix5class="ltx_item"><span class="ltx_tag ltx_tag_description">maxval(a)</span></dt> +<dt id='Ch2.I9.ix5class='ltx_item'><span class='ltx_tag ltx_tag_description'>maxval(a)</span></dt> 
-<dd class="ltx_item"+<dd class='ltx_item'
-<div id="Ch2.I9.ix5.p1class="ltx_para"+<div id='Ch2.I9.ix5.p1class='ltx_para'
-<p class="ltx_p">computes the maximum value of <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">a</span>. If <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">a</span> is+<p class='ltx_p'>computes the maximum value of <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>a</span>. If <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>a</span> is
 an empty array, the minimal number of the according element type is an empty array, the minimal number of the according element type is
 returned. returned.
-<br class="ltx_break"><span class="ltx_text ltx_font_italic">Domain restrictions:</span> the element type has to be numerical.</p>+<br class='ltx_break'><span class='ltx_text ltx_font_italic'>Domain restrictions:</span> the element type has to be numerical.</p>
 </div> </div>
 </dd> </dd>
-<dt id="Ch2.I9.ix6class="ltx_item"><span class="ltx_tag ltx_tag_description">minval(a)</span></dt> +<dt id='Ch2.I9.ix6class='ltx_item'><span class='ltx_tag ltx_tag_description'>minval(a)</span></dt> 
-<dd class="ltx_item"+<dd class='ltx_item'
-<div id="Ch2.I9.ix6.p1class="ltx_para"+<div id='Ch2.I9.ix6.p1class='ltx_para'
-<p class="ltx_p">computes the minimum value of <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">a</span>. If <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">a</span> is+<p class='ltx_p'>computes the minimum value of <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>a</span>. If <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>a</span> is
 an empty array, the maximal number of the according element type is an empty array, the maximal number of the according element type is
 returned. returned.
-<br class="ltx_break"><span class="ltx_text ltx_font_italic">Domain restrictions:</span> the element type has to be numerical.</p>+<br class='ltx_break'><span class='ltx_text ltx_font_italic'>Domain restrictions:</span> the element type has to be numerical.</p>
 </div> </div>
 </dd> </dd>
 </dl> </dl>
 </div> </div>
-<div id="Ch2.S2.SS1.SSSx4.p3class="ltx_para"+<div id='Ch2.S2.SS1.SSSx4.p3class='ltx_para'
-<p class="ltx_p">A few examples:</p>+<p class='ltx_p'>A few examples:</p>
 </div> </div>
-<figure id="LST12class="ltx_float ltx_lstlisting ltx_role_listing"+<figure id='LST12class='ltx_float ltx_lstlisting ltx_role_listing'
-<figcaption class="ltx_caption"><span class="ltx_tag ltx_tag_float">Listing 12: </span>Reduction Operations</figcaption> +<figcaption class='ltx_caption'><span class='ltx_tag ltx_tag_float'>Listing 12: </span>Reduction Operations</figcaption> 
-<div class="ltx_listing ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_listing"+<div class='ltx_listing ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_listing'
-<div class="ltx_listing_data"><a href="data:text/plain;base64,dXNlIFN0ZElPOiBhbGw7CnVzZSBBcnJheTogYWxsOwoKaW50IG1haW4oKQp7CiAgdmVjdCA9IFsx%0ALDIsMyw0LDUsNiw3LDgsOV07CgogIG1hdCA9IFt2ZWN0LCB2ZWN0KzEwLCB2ZWN0KzIwXTsKCiAg%0AcHJpbnQoc3VtKG1hdCkpOwogIHByaW50KHByb2QodmVjdCkpOwogIHByaW50KGFsbChtYXQgPj0g%0AMSkpOwogIHByaW50KGFueShtYXQgPiAxKSk7CiAgcHJpbnQobWF4dmFsKG1hdCkpOwogIHByaW50%0AKG1pbnZhbChtYXQpKTsKCiAgcmV0dXJuIDA7Cn0=%0A">⬇</a></div> +<div class='ltx_listing_data'><a href='data:text/plain;base64,dXNlIFN0ZElPOiBhbGw7CnVzZSBBcnJheTogYWxsOwoKaW50IG1haW4oKQp7CiAgdmVjdCA9IFsx%0ALDIsMyw0LDUsNiw3LDgsOV07CgogIG1hdCA9IFt2ZWN0LCB2ZWN0KzEwLCB2ZWN0KzIwXTsKCiAg%0AcHJpbnQoc3VtKG1hdCkpOwogIHByaW50KHByb2QodmVjdCkpOwogIHByaW50KGFsbChtYXQgPj0g%0AMSkpOwogIHByaW50KGFueShtYXQgPiAxKSk7CiAgcHJpbnQobWF4dmFsKG1hdCkpOwogIHByaW50%0AKG1pbnZhbChtYXQpKTsKCiAgcmV0dXJuIDA7Cn0=%0A'>⬇</a></div> 
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">1</span></span><span class="ltx_text ltx_lst_keyword ltx_font_bold">use</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">StdIO</span>:<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">all</span>;+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>1</span></span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>use</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>StdIO</span>:<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>all</span>;
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">2</span></span><span class="ltx_text ltx_lst_keyword ltx_font_bold">use</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">Array</span>:<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">all</span>;+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>2</span></span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>use</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>Array</span>:<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>all</span>;
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">3</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>3</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">4</span></span><span class="ltx_text ltx_lst_keyword ltx_font_bold">int</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">main</span>()+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>4</span></span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>int</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>main</span>()
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">5</span></span>{+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>5</span></span>{
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">6</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">vect</span><span class="ltx_text ltx_lst_space"> </span>=<span class="ltx_text ltx_lst_space"> </span>[1,2,3,4,5,6,7,8,9];+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>6</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>vect</span><span class='ltx_text ltx_lst_space'> </span>=<span class='ltx_text ltx_lst_space'> </span>[1,2,3,4,5,6,7,8,9];
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">7</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>7</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">8</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">mat</span><span class="ltx_text ltx_lst_space"> </span>=<span class="ltx_text ltx_lst_space"> </span>[<span class="ltx_text ltx_lst_identifier">vect</span>,<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">vect</span>+10,<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">vect</span>+20];+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>8</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>mat</span><span class='ltx_text ltx_lst_space'> </span>=<span class='ltx_text ltx_lst_space'> </span>[<span class='ltx_text ltx_lst_identifier'>vect</span>,<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>vect</span>+10,<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>vect</span>+20];
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">9</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>9</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">10</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">print</span>(<span class="ltx_text ltx_lst_identifier">sum</span>(<span class="ltx_text ltx_lst_identifier">mat</span>));+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>10</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>print</span>(<span class='ltx_text ltx_lst_identifier'>sum</span>(<span class='ltx_text ltx_lst_identifier'>mat</span>));
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">11</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">print</span>(<span class="ltx_text ltx_lst_identifier">prod</span>(<span class="ltx_text ltx_lst_identifier">vect</span>));+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>11</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>print</span>(<span class='ltx_text ltx_lst_identifier'>prod</span>(<span class='ltx_text ltx_lst_identifier'>vect</span>));
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">12</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">print</span>(<span class="ltx_text ltx_lst_identifier">all</span>(<span class="ltx_text ltx_lst_identifier">mat</span><span class="ltx_text ltx_lst_space"> </span>&gt;=<span class="ltx_text ltx_lst_space"> </span>1));+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>12</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>print</span>(<span class='ltx_text ltx_lst_identifier'>all</span>(<span class='ltx_text ltx_lst_identifier'>mat</span><span class='ltx_text ltx_lst_space'> </span>&gt;=<span class='ltx_text ltx_lst_space'> </span>1));
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">13</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">print</span>(<span class="ltx_text ltx_lst_identifier">any</span>(<span class="ltx_text ltx_lst_identifier">mat</span><span class="ltx_text ltx_lst_space"> </span>&gt;<span class="ltx_text ltx_lst_space"> </span>1));+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>13</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>print</span>(<span class='ltx_text ltx_lst_identifier'>any</span>(<span class='ltx_text ltx_lst_identifier'>mat</span><span class='ltx_text ltx_lst_space'> </span>&gt;<span class='ltx_text ltx_lst_space'> </span>1));
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">14</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">print</span>(<span class="ltx_text ltx_lst_identifier">maxval</span>(<span class="ltx_text ltx_lst_identifier">mat</span>));+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>14</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>print</span>(<span class='ltx_text ltx_lst_identifier'>maxval</span>(<span class='ltx_text ltx_lst_identifier'>mat</span>));
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">15</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">print</span>(<span class="ltx_text ltx_lst_identifier">minval</span>(<span class="ltx_text ltx_lst_identifier">mat</span>));+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>15</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>print</span>(<span class='ltx_text ltx_lst_identifier'>minval</span>(<span class='ltx_text ltx_lst_identifier'>mat</span>));
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">16</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>16</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">17</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_keyword ltx_font_bold">return</span><span class="ltx_text ltx_lst_space"> </span>0;+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>17</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>return</span><span class='ltx_text ltx_lst_space'> </span>0;
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">18</span></span>}+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>18</span></span>}
 </div> </div>
 </div> </div>
 </figure> </figure>
-<div id="Ch2.S2.SS1.SSSx4.p4class="ltx_para"+<div id='Ch2.S2.SS1.SSSx4.p4class='ltx_para'
-<p class="ltx_p">Most of these examples, again, are fairly self explanatory.+<p class='ltx_p'>Most of these examples, again, are fairly self explanatory.
 However, you may get an idea of the specificational advantages However, you may get an idea of the specificational advantages
 of shape-invariant programming when having a closer look of shape-invariant programming when having a closer look
Line 1938: Line 2537:
 style of program specifications that results from it.</p> style of program specifications that results from it.</p>
 </div> </div>
-<div id="Thmtheorem8class="ltx_theorem ltx_theorem_theorem"+<div id='Thmtheorem8class='ltx_theorem ltx_theorem_theorem'
-<h6 class="ltx_title ltx_runin ltx_font_bold ltx_title_theorem">Exercise 8. </h6> +<h6 class='ltx_title ltx_runin ltx_font_bold ltx_title_theorem'>Exercise 8. </h6> 
-<div id="Thmtheorem8.p1class="ltx_para"+<div id='Thmtheorem8.p1class='ltx_para'
-<p class="ltx_p">All operations introduced in this part apply to <span class="ltx_text ltx_font_bold">all</span> elements+<p class='ltx_p'>All operations introduced in this part apply to <span class='ltx_text ltx_font_bold'>all</span> elements
 of the array they are applied to. Given the array operations introduced of the array they are applied to. Given the array operations introduced
 so far, can you specify row-wise or column-wise summations for matrices? so far, can you specify row-wise or column-wise summations for matrices?
Line 1949: Line 2548:
 </section> </section>
 </section> </section>
-<section id="Ch2.S2.SS2class="ltx_subsection"+<section id='Ch2.S2.SS2class='ltx_subsection'
-<h5 class="ltx_title ltx_title_subsection"+<h5 class='ltx_title ltx_title_subsection'
-<span class="ltx_tag ltx_tag_subsection">2.2.2 </span>Axis Control Notation</h5>+<span class='ltx_tag ltx_tag_subsection'>2.2.2 </span>Axis Control Notation</h5>
  
-<div id="Ch2.S2.SS2.p1class="ltx_para"+<div id='Ch2.S2.SS2.p1class='ltx_para'
-<p class="ltx_p">As can be seen from Exercise <a href="#Thmtheorem8title="Exercise 8. ‣ Reduction Operations ‣ 2.2.1 Standard Array Operations ‣ 2.2 Lesson 2: Shape-Invariant Programming ‣ Chapter 2 Array Programming Basics ‣ Part I Trails Covering the Basics of SaCclass="ltx_ref"><span class="ltx_text ltx_ref_tag">8</span></a>, without further+<p class='ltx_p'>As can be seen from Exercise <a href='#Thmtheorem8title='Exercise 8. ‣ Reduction Operations ‣ 2.2.1 Standard Array Operations ‣ 2.2 Lesson 2: Shape-Invariant Programming ‣ Chapter 2 Array Programming Basics ‣ Part I Trails Covering the Basics of SaCclass='ltx_ref'><span class='ltx_text ltx_ref_tag'>8</span></a>, without further
 language support, it is rather difficult language support, it is rather difficult
 to apply an array operation to certain axes of an array only. to apply an array operation to certain axes of an array only.
-This section introduces two language constructs of <span class="ltx_text ltx_font_smallcaps">SaC</span> which,+This section introduces two language constructs of <span class='ltx_text ltx_font_smallcaps'>SaC</span> which,
 when taken together, can be used to that effect. when taken together, can be used to that effect.
-While <em class="ltx_emph">Generalized Selections</em> are convenient for separating individual+While <em class='ltx_emph'>Generalized Selections</em> are convenient for separating individual
 axes of an array, axes of an array,
-<em class="ltx_emph">Set Notations</em> allow to recombine such axes into a result array+<em class='ltx_emph'>Set Notations</em> allow to recombine such axes into a result array
 after applying arbitrary operations to them. after applying arbitrary operations to them.
 However, as the two constructs in principle are orthogonal, However, as the two constructs in principle are orthogonal,
 we introduce them separately before showing how they can be combined we introduce them separately before showing how they can be combined
-into an instrument for <em class="ltx_emph">Axis Control</em>.</p>+into an instrument for <em class='ltx_emph'>Axis Control</em>.</p>
 </div> </div>
-<section id="Ch2.S2.SS2.SSSx1class="ltx_subsubsection"+<section id='Ch2.S2.SS2.SSSx1class='ltx_subsubsection'
-<h6 class="ltx_title ltx_title_subsubsection">Generalized Selections</h6>+<h6 class='ltx_title ltx_title_subsubsection'>Generalized Selections</h6>
  
-<div id="Ch2.S2.SS2.SSSx1.p1class="ltx_para"+<div id='Ch2.S2.SS2.SSSx1.p1class='ltx_para'
-<p class="ltx_p">The selection operation introduced in Section <a href="#Ch2.S2.SS1.SSSx1title="Basic Operations ‣ 2.2.1 Standard Array Operations ‣ 2.2 Lesson 2: Shape-Invariant Programming ‣ Chapter 2 Array Programming Basics ‣ Part I Trails Covering the Basics of SaCclass="ltx_ref"><span class="ltx_text ltx_ref_tag">2.2.1</span></a> does not+<p class='ltx_p'>The selection operation introduced in Section <a href='#Ch2.S2.SS1.SSSx1title='Basic Operations ‣ 2.2.1 Standard Array Operations ‣ 2.2 Lesson 2: Shape-Invariant Programming ‣ Chapter 2 Array Programming Basics ‣ Part I Trails Covering the Basics of SaCclass='ltx_ref'><span class='ltx_text ltx_ref_tag'>2.2.1</span></a> does not
 only allow scalar elements but entire subarrays of an array to be selected. only allow scalar elements but entire subarrays of an array to be selected.
 However, the selection of (non-scalar) subarrays always assumes the given However, the selection of (non-scalar) subarrays always assumes the given
Line 1981: Line 2580:
 transposed first.</p> transposed first.</p>
 </div> </div>
-<div id="Ch2.S2.SS2.SSSx1.p2class="ltx_para"+<div id='Ch2.S2.SS2.SSSx1.p2class='ltx_para'
-<p class="ltx_p">To avoid clumsy notations, <span class="ltx_text ltx_font_smallcaps">SaC</span> provides special syntactical support for +<p class='ltx_p'>To avoid clumsy notations, <span class='ltx_text ltx_font_smallcaps'>SaC</span> provides special syntactical support for 
-selecting arbitrary subarrays called <em class="ltx_emph">Generalized Selections</em>.+selecting arbitrary subarrays called <em class='ltx_emph'>Generalized Selections</em>.
 The basic idea is to indicate the axes whose elements are to be selected The basic idea is to indicate the axes whose elements are to be selected
 entirely by using dot-symbols instead of numerical values within entirely by using dot-symbols instead of numerical values within
 the index vectors of a selection operation.</p> the index vectors of a selection operation.</p>
 </div> </div>
-<div id="Ch2.S2.SS2.SSSx1.p3class="ltx_para"+<div id='Ch2.S2.SS2.SSSx1.p3class='ltx_para'
-<p class="ltx_p">Note here, that vectors containing dot-symbols are not+<p class='ltx_p'>Note here, that vectors containing dot-symbols are not
 first class citizens of the language, i.e. they can exclusively be specified within first class citizens of the language, i.e. they can exclusively be specified within
 selection operations directly!</p> selection operations directly!</p>
 </div> </div>
-<div id="Ch2.S2.SS2.SSSx1.p4class="ltx_para"+<div id='Ch2.S2.SS2.SSSx1.p4class='ltx_para'
-<p class="ltx_p">There are two kinds of dot-symbols, single-dots which refer to a single axis+<p class='ltx_p'>There are two kinds of dot-symbols, single-dots which refer to a single axis
 and triple-dots which refer to as many axes as they are left unspecified within and triple-dots which refer to as many axes as they are left unspecified within
 a selection. a selection.
Line 2000: Line 2599:
 expression is allowed.</p> expression is allowed.</p>
 </div> </div>
-<div id="Ch2.S2.SS2.SSSx1.p5class="ltx_para"+<div id='Ch2.S2.SS2.SSSx1.p5class='ltx_para'
-<p class="ltx_p">A few examples:</p>+<p class='ltx_p'>A few examples:</p>
 </div> </div>
-<figure id="LST13class="ltx_float ltx_lstlisting ltx_role_listing"+<figure id='LST13class='ltx_float ltx_lstlisting ltx_role_listing'
-<figcaption class="ltx_caption"><span class="ltx_tag ltx_tag_float">Listing 13: </span>Generalized Selections</figcaption> +<figcaption class='ltx_caption'><span class='ltx_tag ltx_tag_float'>Listing 13: </span>Generalized Selections</figcaption> 
-<div class="ltx_listing ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_listing"+<div class='ltx_listing ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_listing'
-<div class="ltx_listing_data"><a href="data:text/plain;base64,dXNlIFN0ZElPOiBhbGw7CnVzZSBBcnJheTogYWxsOwoKaW50IG1haW4oKQp7CiAgdmVjdCA9IFsx%0ALDIsMyw0LDUsNiw3LDgsOV07CgogIG1hdCA9IFt2ZWN0LCB2ZWN0KzEwLCB2ZWN0KzIwXTsKICBw%0AcmludChtYXQpOwoKICBwcmludChtYXRbWzFdXSk7CiAgcHJpbnQobWF0W1sxLC5dXSk7CiAgcHJp%0AbnQobWF0W1sxLC4uLl1dKTsKCiAgcHJpbnQobWF0W1suLDFdXSk7CiAgcHJpbnQobWF0W1suLi4s%0AMV1dKTsKCiAgcHJpbnQobWF0W1sxLC4uLiwxXV0pOwoKICBhcnIzZCA9IFttYXQsIG1hdF07CiAg%0AcHJpbnQoYXJyM2QpOwoKICBwcmludChhcnIzZFtbLiwxXV0pOwogIHByaW50KGFycjNkW1suLi4s%0AMV1dKTsKCiAgcmV0dXJuIDA7Cn0=%0A">⬇</a></div> +<div class='ltx_listing_data'><a href='data:text/plain;base64,dXNlIFN0ZElPOiBhbGw7CnVzZSBBcnJheTogYWxsOwoKaW50IG1haW4oKQp7CiAgdmVjdCA9IFsx%0ALDIsMyw0LDUsNiw3LDgsOV07CgogIG1hdCA9IFt2ZWN0LCB2ZWN0KzEwLCB2ZWN0KzIwXTsKICBw%0AcmludChtYXQpOwoKICBwcmludChtYXRbWzFdXSk7CiAgcHJpbnQobWF0W1sxLC5dXSk7CiAgcHJp%0AbnQobWF0W1sxLC4uLl1dKTsKCiAgcHJpbnQobWF0W1suLDFdXSk7CiAgcHJpbnQobWF0W1suLi4s%0AMV1dKTsKCiAgcHJpbnQobWF0W1sxLC4uLiwxXV0pOwoKICBhcnIzZCA9IFttYXQsIG1hdF07CiAg%0AcHJpbnQoYXJyM2QpOwoKICBwcmludChhcnIzZFtbLiwxXV0pOwogIHByaW50KGFycjNkW1suLi4s%0AMV1dKTsKCiAgcmV0dXJuIDA7Cn0=%0A'>⬇</a></div> 
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">1</span></span><span class="ltx_text ltx_lst_keyword ltx_font_bold">use</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">StdIO</span>:<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">all</span>;+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>1</span></span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>use</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>StdIO</span>:<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>all</span>;
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">2</span></span><span class="ltx_text ltx_lst_keyword ltx_font_bold">use</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">Array</span>:<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">all</span>;+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>2</span></span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>use</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>Array</span>:<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>all</span>;
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">3</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>3</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">4</span></span><span class="ltx_text ltx_lst_keyword ltx_font_bold">int</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">main</span>()+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>4</span></span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>int</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>main</span>()
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">5</span></span>{+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>5</span></span>{
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">6</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">vect</span><span class="ltx_text ltx_lst_space"> </span>=<span class="ltx_text ltx_lst_space"> </span>[1,2,3,4,5,6,7,8,9];+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>6</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>vect</span><span class='ltx_text ltx_lst_space'> </span>=<span class='ltx_text ltx_lst_space'> </span>[1,2,3,4,5,6,7,8,9];
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">7</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>7</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">8</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">mat</span><span class="ltx_text ltx_lst_space"> </span>=<span class="ltx_text ltx_lst_space"> </span>[<span class="ltx_text ltx_lst_identifier">vect</span>,<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">vect</span>+10,<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">vect</span>+20];+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>8</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>mat</span><span class='ltx_text ltx_lst_space'> </span>=<span class='ltx_text ltx_lst_space'> </span>[<span class='ltx_text ltx_lst_identifier'>vect</span>,<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>vect</span>+10,<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>vect</span>+20];
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">9</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">print</span>(<span class="ltx_text ltx_lst_identifier">mat</span>);+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>9</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>print</span>(<span class='ltx_text ltx_lst_identifier'>mat</span>);
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">10</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>10</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">11</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">print</span>(<span class="ltx_text ltx_lst_identifier">mat</span>[[1]]);+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>11</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>print</span>(<span class='ltx_text ltx_lst_identifier'>mat</span>[[1]]);
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">12</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">print</span>(<span class="ltx_text ltx_lst_identifier">mat</span>[[1,.]]);+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>12</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>print</span>(<span class='ltx_text ltx_lst_identifier'>mat</span>[[1,.]]);
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">13</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">print</span>(<span class="ltx_text ltx_lst_identifier">mat</span>[[1,…]]);+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>13</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>print</span>(<span class='ltx_text ltx_lst_identifier'>mat</span>[[1,…]]);
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">14</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>14</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">15</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">print</span>(<span class="ltx_text ltx_lst_identifier">mat</span>[[.,1]]);+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>15</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>print</span>(<span class='ltx_text ltx_lst_identifier'>mat</span>[[.,1]]);
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">16</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">print</span>(<span class="ltx_text ltx_lst_identifier">mat</span>[[…,1]]);+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>16</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>print</span>(<span class='ltx_text ltx_lst_identifier'>mat</span>[[…,1]]);
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">17</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>17</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">18</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">print</span>(<span class="ltx_text ltx_lst_identifier">mat</span>[[1,…,1]]);+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>18</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>print</span>(<span class='ltx_text ltx_lst_identifier'>mat</span>[[1,…,1]]);
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">19</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>19</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">20</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">arr3d</span><span class="ltx_text ltx_lst_space"> </span>=<span class="ltx_text ltx_lst_space"> </span>[<span class="ltx_text ltx_lst_identifier">mat</span>,<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">mat</span>];+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>20</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>arr3d</span><span class='ltx_text ltx_lst_space'> </span>=<span class='ltx_text ltx_lst_space'> </span>[<span class='ltx_text ltx_lst_identifier'>mat</span>,<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>mat</span>];
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">21</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">print</span>(<span class="ltx_text ltx_lst_identifier">arr3d</span>);+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>21</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>print</span>(<span class='ltx_text ltx_lst_identifier'>arr3d</span>);
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">22</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>22</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">23</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">print</span>(<span class="ltx_text ltx_lst_identifier">arr3d</span>[[.,1]]);+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>23</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>print</span>(<span class='ltx_text ltx_lst_identifier'>arr3d</span>[[.,1]]);
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">24</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">print</span>(<span class="ltx_text ltx_lst_identifier">arr3d</span>[[…,1]]);+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>24</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>print</span>(<span class='ltx_text ltx_lst_identifier'>arr3d</span>[[…,1]]);
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">25</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>25</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">26</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_keyword ltx_font_bold">return</span><span class="ltx_text ltx_lst_space"> </span>0;+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>26</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>return</span><span class='ltx_text ltx_lst_space'> </span>0;
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">27</span></span>}+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>27</span></span>}
 </div> </div>
 </div> </div>
 </figure> </figure>
-<div id="Ch2.S2.SS2.SSSx1.p6class="ltx_para"+<div id='Ch2.S2.SS2.SSSx1.p6class='ltx_para'
-<p class="ltx_p">The examples in lines 11-13 demonstrate different versions for selecting +<p class='ltx_p'>The examples in lines 11-13 demonstrate different versions for selecting 
-the second row of the matrix <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">mat</span>.+the second row of the matrix <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>mat</span>.
 However, as the rightmost axis is to be selected, a dot-free version However, as the rightmost axis is to be selected, a dot-free version
 (cf. line 11) suffices for this task. (cf. line 11) suffices for this task.
-The selection of the second column of <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">mat</span> is shown in lines 15 and 16.</p>+The selection of the second column of <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>mat</span> is shown in lines 15 and 16.</p>
 </div> </div>
-<div id="Ch2.S2.SS2.SSSx1.p7class="ltx_para"+<div id='Ch2.S2.SS2.SSSx1.p7class='ltx_para'
-<p class="ltx_p">line 18 demonstrates that the triple-dot notation can+<p class='ltx_p'>line 18 demonstrates that the triple-dot notation can
 also be successfully applied if no axis can be matched at all.</p> also be successfully applied if no axis can be matched at all.</p>
 </div> </div>
-<div id="Ch2.S2.SS2.SSSx1.p8class="ltx_para"+<div id='Ch2.S2.SS2.SSSx1.p8class='ltx_para'
-<p class="ltx_p">The difference between the single-dot and the+<p class='ltx_p'>The difference between the single-dot and the
 triple-dot notation is shown in lines 23 and 24. triple-dot notation is shown in lines 23 and 24.
 While the selection in line 23 is identical to While the selection in line 23 is identical to
-<span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting"><span class="ltx_text ltx_lst_identifier">arr3d</span>[[.,1,.]]</span>, the one in line 24 is identical to <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting"><span class="ltx_text ltx_lst_identifier">arr3d</span>[[.,.,1]]</span>.</p>+<span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'><span class='ltx_text ltx_lst_identifier'>arr3d</span>[[.,1,.]]</span>, the one in line 24 is identical to <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'><span class='ltx_text ltx_lst_identifier'>arr3d</span>[[.,.,1]]</span>.</p>
 </div> </div>
-<div id="Ch2.S2.SS2.SSSx1.p9class="ltx_para"+<div id='Ch2.S2.SS2.SSSx1.p9class='ltx_para'
-<p class="ltx_p">Only in cases where the number of single-dots plus the number of numerical indices+<p class='ltx_p'>Only in cases where the number of single-dots plus the number of numerical indices
 exceeds the number of axes available, an error message will be generated.</p> exceeds the number of axes available, an error message will be generated.</p>
 </div> </div>
-<div id="Thmtheorem9class="ltx_theorem ltx_theorem_theorem"+<div id='Thmtheorem9class='ltx_theorem ltx_theorem_theorem'
-<h6 class="ltx_title ltx_runin ltx_font_bold ltx_title_theorem">Exercise 9. </h6> +<h6 class='ltx_title ltx_runin ltx_font_bold ltx_title_theorem'>Exercise 9. </h6> 
-<div id="Thmtheorem9.p1class="ltx_para"+<div id='Thmtheorem9.p1class='ltx_para'
-<p class="ltx_p">How can a selection of all elements of <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">mat</span> be specified using+<p class='ltx_p'>How can a selection of all elements of <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>mat</span> be specified using
 generalized selections? Try to find all 9 possible solutions! generalized selections? Try to find all 9 possible solutions!
 </p> </p>
 </div> </div>
 </div> </div>
-<div id="Thmtheorem10class="ltx_theorem ltx_theorem_theorem"+<div id='Thmtheorem10class='ltx_theorem ltx_theorem_theorem'
-<h6 class="ltx_title ltx_runin ltx_font_bold ltx_title_theorem">Exercise 10. </h6> +<h6 class='ltx_title ltx_runin ltx_font_bold ltx_title_theorem'>Exercise 10. </h6> 
-<div id="Thmtheorem10.p1class="ltx_para"+<div id='Thmtheorem10.p1class='ltx_para'
-<p class="ltx_p">Referring to Exercise <a href="#Thmtheorem5title="Exercise 5. ‣ Basic Operations ‣ 2.2.1 Standard Array Operations ‣ 2.2 Lesson 2: Shape-Invariant Programming ‣ Chapter 2 Array Programming Basics ‣ Part I Trails Covering the Basics of SaCclass="ltx_ref"><span class="ltx_text ltx_ref_tag">5</span></a>, can this new notation+<p class='ltx_p'>Referring to Exercise <a href='#Thmtheorem5title='Exercise 5. ‣ Basic Operations ‣ 2.2.1 Standard Array Operations ‣ 2.2 Lesson 2: Shape-Invariant Programming ‣ Chapter 2 Array Programming Basics ‣ Part I Trails Covering the Basics of SaCclass='ltx_ref'><span class='ltx_text ltx_ref_tag'>5</span></a>, can this new notation
 be used for selecting “over” empty axis? be used for selecting “over” empty axis?
-For example, can you specify a selection vector <math id="Thmtheorem10.p1.m1class="ltx_Mathalttext="{{\langle\textrm{\lstinline 1}}}\rangledisplay="inline"><mrow><mo stretchy="false">⟨</mo><mtext class="ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">vec</mtext><mo stretchy="false">⟩</mo></mrow></math>, so that +For example, can you specify a selection vector <math id='Thmtheorem10.p1.m1class='ltx_Mathalttext='{{\langle\textrm{\lstinline 1}}}\rangledisplay='inline'><mrow><mo stretchy='false'>⟨</mo><mtext class='ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>vec</mtext><mo stretchy='false'>⟩</mo></mrow></math>, so that 
-<span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting"><span class="ltx_text ltx_lst_identifier">reshape</span>([3,0,5],<span class="ltx_text ltx_lst_space"> </span>[])[<span class="ltx_text ltx_lst_identifier">vec</span>]<span class="ltx_text ltx_lst_space"> </span>==<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">reshape</span><span class="ltx_text ltx_lst_space"> </span>([3,0],<span class="ltx_text ltx_lst_space"> </span>[])</span>+<span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'><span class='ltx_text ltx_lst_identifier'>reshape</span>([3,0,5],<span class='ltx_text ltx_lst_space'> </span>[])[<span class='ltx_text ltx_lst_identifier'>vec</span>]<span class='ltx_text ltx_lst_space'> </span>==<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>reshape</span><span class='ltx_text ltx_lst_space'> </span>([3,0],<span class='ltx_text ltx_lst_space'> </span>[])</span>
 holds?</p> holds?</p>
 </div> </div>
 </div> </div>
 </section> </section>
-<section id="Ch2.S2.SS2.SSSx2class="ltx_subsubsection"+<section id='Ch2.S2.SS2.SSSx2class='ltx_subsubsection'
-<h6 class="ltx_title ltx_title_subsubsection">Set Notation</h6>+<h6 class='ltx_title ltx_title_subsubsection'>Set Notation</h6>
  
-<div id="Ch2.S2.SS2.SSSx2.p1class="ltx_para"+<div id='Ch2.S2.SS2.SSSx2.p1class='ltx_para'
-<p class="ltx_p">The means for composing arrays that have been described so far are rather restricted.+<p class='ltx_p'>The means for composing arrays that have been described so far are rather restricted.
 Apart from element-wise definitions all other operations treat all elements Apart from element-wise definitions all other operations treat all elements
 uniformly. uniformly.
 As a consequence, it is difficult to define arrays whose elements differ As a consequence, it is difficult to define arrays whose elements differ
 depending on their position within the array. depending on their position within the array.
-The so-called <em class="ltx_emph">set notation</em> facilitates such position dependent array+The so-called <em class='ltx_emph'>set notation</em> facilitates such position dependent array
 definitions. definitions.
 Essentially, it consists of a mapping from index vectors to elements, taking Essentially, it consists of a mapping from index vectors to elements, taking
 the general form</p> the general form</p>
-<table id="Ch2.Ex1class="ltx_equation ltx_eqn_table">+<table id='Ch2.Ex1class='ltx_equation ltx_eqn_table'>
  
-<tr class="ltx_equation ltx_eqn_row ltx_align_baseline"+<tr class='ltx_equation ltx_eqn_row ltx_align_baseline'
-<td class="ltx_eqn_cell ltx_eqn_center_padleft"></td> +<td class='ltx_eqn_cell ltx_eqn_center_padleft'></td> 
-<td class="ltx_eqn_cell ltx_align_center"><math id="Ch2.Ex1.m1class="ltx_Mathalttext="{{{{{{\langle\textrm{\lstinline 1}}}\rangle\ \mathop{\textrm{\lstinline 1}}}}\ % +<td class='ltx_eqn_cell ltx_align_center'><math id='Ch2.Ex1.m1class='ltx_Mathalttext='{{{{{{\langle\textrm{\lstinline 1}}}\rangle\ \mathop{\textrm{\lstinline 1}}}}\ % 
-\langle\textrm{\lstinline 1}}}\rangledisplay="block"><mrow><mrow><mo stretchy="false">⟨</mo><mtext class="ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">index_vector</mtext><mo rspace="7.5ptstretchy="false">⟩</mo></mrow><mo>⁢</mo><mrow><mpadded class="ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlistingwidth="+5pt"><mtext>-&gt;</mtext></mpadded><mrow><mo stretchy="false">⟨</mo><mtext class="ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">expression</mtext><mo stretchy="false">⟩</mo></mrow></mrow></mrow></math></td> +\langle\textrm{\lstinline 1}}}\rangledisplay='block'><mrow><mrow><mo stretchy='false'>⟨</mo><mtext class='ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>index_vector</mtext><mo rspace='7.5ptstretchy='false'>⟩</mo></mrow><mo>⁢</mo><mrow><mpadded class='ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlistingwidth='+5pt'><mtext>-&gt;</mtext></mpadded><mrow><mo stretchy='false'>⟨</mo><mtext class='ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>expression</mtext><mo stretchy='false'>⟩</mo></mrow></mrow></mrow></math></td> 
-<td class="ltx_eqn_cell ltx_eqn_center_padright"></td>+<td class='ltx_eqn_cell ltx_eqn_center_padright'></td>
 </tr> </tr>
 </table> </table>
-<p class="ltx_p">where <math id="Ch2.S2.SS2.SSSx2.p1.m1class="ltx_Mathalttext="{{\langle\textrm{\lstinline 1}}}\rangledisplay="inline"><mrow><mo stretchy="false">⟨</mo><mtext class="ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">index_vector</mtext><mo stretchy="false">⟩</mo></mrow></math> either is a variable or a vector of variables +<p class='ltx_p'>where <math id='Ch2.S2.SS2.SSSx2.p1.m1class='ltx_Mathalttext='{{\langle\textrm{\lstinline 1}}}\rangledisplay='inline'><mrow><mo stretchy='false'>⟨</mo><mtext class='ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>index_vector</mtext><mo stretchy='false'>⟩</mo></mrow></math> either is a variable or a vector of variables 
-and <math id="Ch2.S2.SS2.SSSx2.p1.m2class="ltx_Mathalttext="{{\langle\textrm{\lstinline 1}}}\rangledisplay="inline"><mrow><mo stretchy="false">⟨</mo><mtext class="ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">expression</mtext><mo stretchy="false">⟩</mo></mrow></math> is a <span class="ltx_text ltx_font_smallcaps">SaC</span> expression that refers to+and <math id='Ch2.S2.SS2.SSSx2.p1.m2class='ltx_Mathalttext='{{\langle\textrm{\lstinline 1}}}\rangledisplay='inline'><mrow><mo stretchy='false'>⟨</mo><mtext class='ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>expression</mtext><mo stretchy='false'>⟩</mo></mrow></math> is a <span class='ltx_text ltx_font_smallcaps'>SaC</span> expression that refers to
 the index vector or its components and defines the the index vector or its components and defines the
 individual array elements. individual array elements.
Line 2159: Line 2758:
 by the expression given and, thus, it is not specified explicitly.</p> by the expression given and, thus, it is not specified explicitly.</p>
 </div> </div>
-<div id="Ch2.S2.SS2.SSSx2.p2class="ltx_para"+<div id='Ch2.S2.SS2.SSSx2.p2class='ltx_para'
-<p class="ltx_p ltx_align_center">+<p class='ltx_p ltx_align_center'>
  
-<span class="ltx_inline-block ltx_minipage ltx_align_middle ltx_framed_rectanglestyle="width:390.3pt;"+<span class='ltx_inline-block ltx_minipage ltx_align_middle ltx_framed_rectanglestyle='width:390.3pt;'
-<span class="ltx_p"><span class="ltx_text ltx_font_bold">A note for language design freaks:</span></span> +<span class='ltx_p'><span class='ltx_text ltx_font_bold'>A note for language design freaks:</span></span> 
-<span class="ltx_p"><span class="ltx_text ltx_font_italic">You may wonder why we restrict the expressiveness of the set notation+<span class='ltx_p'><span class='ltx_text ltx_font_italic'>You may wonder why we restrict the expressiveness of the set notation
 by relying on compiler driven range detection rather than an explicit by relying on compiler driven range detection rather than an explicit
 range specification. range specification.
Line 2170: Line 2769:
 the capabilities of the set notation suffice whereas an explicit specification the capabilities of the set notation suffice whereas an explicit specification
 of ranges would obfuscate the code.</span></span> of ranges would obfuscate the code.</span></span>
-<span class="ltx_p"><span class="ltx_text ltx_font_italic">Furthermore, as you will see in Chapter <a href="#Ch4title="Chapter 4 With-Loops ‣ Part I Trails Covering the Basics of SaCclass="ltx_ref"><span class="ltx_text ltx_ref_tag">4</span></a>, <span class="ltx_text ltx_font_smallcaps">SaC</span> provides a+<span class='ltx_p'><span class='ltx_text ltx_font_italic'>Furthermore, as you will see in Chapter <a href='#Ch4title='Chapter 4 With-Loops ‣ Part I Trails Covering the Basics of SaCclass='ltx_ref'><span class='ltx_text ltx_ref_tag'>4</span></a>, <span class='ltx_text ltx_font_smallcaps'>SaC</span> provides a
 more versatile language construct for defining arrays. more versatile language construct for defining arrays.
 However, the expressiveness of that construct comes for quite some However, the expressiveness of that construct comes for quite some
Line 2178: Line 2777:
 </p> </p>
 </div> </div>
-<div id="Ch2.S2.SS2.SSSx2.p3class="ltx_para"+<div id='Ch2.S2.SS2.SSSx2.p3class='ltx_para'
-<p class="ltx_p">Let us have a look at some examples:</p>+<p class='ltx_p'>Let us have a look at some examples:</p>
 </div> </div>
-<figure id="LST14class="ltx_float ltx_lstlisting ltx_role_listing"+<figure id='LST14class='ltx_float ltx_lstlisting ltx_role_listing'
-<figcaption class="ltx_caption"><span class="ltx_tag ltx_tag_float">Listing 14: </span>Basic Set Notation</figcaption> +<figcaption class='ltx_caption'><span class='ltx_tag ltx_tag_float'>Listing 14: </span>Basic Set Notation</figcaption> 
-<div class="ltx_listing ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_listing"+<div class='ltx_listing ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_listing'
-<div class="ltx_listing_data"><a href="data:text/plain;base64,dXNlIFN0ZElPOiBhbGw7CnVzZSBBcnJheTogYWxsOwoKaW50IG1haW4oKQp7CiAgdmVjdCA9IFsw%0ALDEsMiwzLDQsNSw2LDcsOCw5XTsKCiAgbWF0ID0ge1tpXSAtPiB2ZWN0W1tpXV0qMTArdmVjdH07%0ACiAgcHJpbnQobWF0KTsKCiAgbWF0X2luYyA9IHtpdiAtPiBtYXRbaXZdICsgMX07CiAgcHJpbnQo%0AbWF0X2luYyk7CgogIG1hdF90cmFucyA9IHtbaSxqXSAtPiBtYXRbW2osaV1dfTsKICBwcmludCht%0AYXRfdHJhbnMpOwoKICBtYXRfZGlhZyA9IHtbaSxqXSAtPiB3aGVyZShpID09IGogLCBtYXRbW2ks%0Aal1dICwgMCl9OwogIHByaW50KG1hdF9kaWFnKTsKCiAgcmV0dXJuIDA7Cn0=%0A">⬇</a></div> +<div class='ltx_listing_data'><a href='data:text/plain;base64,dXNlIFN0ZElPOiBhbGw7CnVzZSBBcnJheTogYWxsOwoKaW50IG1haW4oKQp7CiAgdmVjdCA9IFsw%0ALDEsMiwzLDQsNSw2LDcsOCw5XTsKCiAgbWF0ID0ge1tpXSAtPiB2ZWN0W1tpXV0qMTArdmVjdH07%0ACiAgcHJpbnQobWF0KTsKCiAgbWF0X2luYyA9IHtpdiAtPiBtYXRbaXZdICsgMX07CiAgcHJpbnQo%0AbWF0X2luYyk7CgogIG1hdF90cmFucyA9IHtbaSxqXSAtPiBtYXRbW2osaV1dfTsKICBwcmludCht%0AYXRfdHJhbnMpOwoKICBtYXRfZGlhZyA9IHtbaSxqXSAtPiB3aGVyZShpID09IGogLCBtYXRbW2ks%0Aal1dICwgMCl9OwogIHByaW50KG1hdF9kaWFnKTsKCiAgcmV0dXJuIDA7Cn0=%0A'>⬇</a></div> 
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">1</span></span><span class="ltx_text ltx_lst_keyword ltx_font_bold">use</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">StdIO</span>:<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">all</span>;+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>1</span></span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>use</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>StdIO</span>:<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>all</span>;
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">2</span></span><span class="ltx_text ltx_lst_keyword ltx_font_bold">use</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">Array</span>:<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">all</span>;+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>2</span></span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>use</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>Array</span>:<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>all</span>;
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">3</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>3</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">4</span></span><span class="ltx_text ltx_lst_keyword ltx_font_bold">int</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">main</span>()+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>4</span></span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>int</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>main</span>()
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">5</span></span>{+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>5</span></span>{
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">6</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">vect</span><span class="ltx_text ltx_lst_space"> </span>=<span class="ltx_text ltx_lst_space"> </span>[0,1,2,3,4,5,6,7,8,9];+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>6</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>vect</span><span class='ltx_text ltx_lst_space'> </span>=<span class='ltx_text ltx_lst_space'> </span>[0,1,2,3,4,5,6,7,8,9];
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">7</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>7</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">8</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">mat</span><span class="ltx_text ltx_lst_space"> </span>=<span class="ltx_text ltx_lst_space"> </span>{[<span class="ltx_text ltx_lst_identifier">i</span>]<span class="ltx_text ltx_lst_space"> </span>-&gt;<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">vect</span>[[<span class="ltx_text ltx_lst_identifier">i</span>]]*10+<span class="ltx_text ltx_lst_identifier">vect</span>};+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>8</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>mat</span><span class='ltx_text ltx_lst_space'> </span>=<span class='ltx_text ltx_lst_space'> </span>{[<span class='ltx_text ltx_lst_identifier'>i</span>]<span class='ltx_text ltx_lst_space'> </span>-&gt;<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>vect</span>[[<span class='ltx_text ltx_lst_identifier'>i</span>]]*10+<span class='ltx_text ltx_lst_identifier'>vect</span>};
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">9</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">print</span>(<span class="ltx_text ltx_lst_identifier">mat</span>);+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>9</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>print</span>(<span class='ltx_text ltx_lst_identifier'>mat</span>);
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">10</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>10</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">11</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">mat_inc</span><span class="ltx_text ltx_lst_space"> </span>=<span class="ltx_text ltx_lst_space"> </span>{<span class="ltx_text ltx_lst_identifier">iv</span><span class="ltx_text ltx_lst_space"> </span>-&gt;<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">mat</span>[<span class="ltx_text ltx_lst_identifier">iv</span>]<span class="ltx_text ltx_lst_space"> </span>+<span class="ltx_text ltx_lst_space"> </span>1};+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>11</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>mat_inc</span><span class='ltx_text ltx_lst_space'> </span>=<span class='ltx_text ltx_lst_space'> </span>{<span class='ltx_text ltx_lst_identifier'>iv</span><span class='ltx_text ltx_lst_space'> </span>-&gt;<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>mat</span>[<span class='ltx_text ltx_lst_identifier'>iv</span>]<span class='ltx_text ltx_lst_space'> </span>+<span class='ltx_text ltx_lst_space'> </span>1};
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">12</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">print</span>(<span class="ltx_text ltx_lst_identifier">mat_inc</span>);+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>12</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>print</span>(<span class='ltx_text ltx_lst_identifier'>mat_inc</span>);
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">13</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>13</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">14</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">mat_trans</span><span class="ltx_text ltx_lst_space"> </span>=<span class="ltx_text ltx_lst_space"> </span>{[<span class="ltx_text ltx_lst_identifier">i</span>,j]<span class="ltx_text ltx_lst_space"> </span>-&gt;<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">mat</span>[[j,<span class="ltx_text ltx_lst_identifier">i</span>]]};+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>14</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>mat_trans</span><span class='ltx_text ltx_lst_space'> </span>=<span class='ltx_text ltx_lst_space'> </span>{[<span class='ltx_text ltx_lst_identifier'>i</span>,j]<span class='ltx_text ltx_lst_space'> </span>-&gt;<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>mat</span>[[j,<span class='ltx_text ltx_lst_identifier'>i</span>]]};
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">15</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">print</span>(<span class="ltx_text ltx_lst_identifier">mat_trans</span>);+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>15</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>print</span>(<span class='ltx_text ltx_lst_identifier'>mat_trans</span>);
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">16</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>16</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">17</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">mat_diag</span><span class="ltx_text ltx_lst_space"> </span>=<span class="ltx_text ltx_lst_space"> </span>{[<span class="ltx_text ltx_lst_identifier">i</span>,j]<span class="ltx_text ltx_lst_space"> </span>-&gt;<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">where</span>(<span class="ltx_text ltx_lst_identifier">i</span><span class="ltx_text ltx_lst_space"> </span>==<span class="ltx_text ltx_lst_space"> </span>j<span class="ltx_text ltx_lst_space"> </span>,<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">mat</span>[[<span class="ltx_text ltx_lst_identifier">i</span>,j]]<span class="ltx_text ltx_lst_space"> </span>,<span class="ltx_text ltx_lst_space"> </span>0)};+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>17</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>mat_diag</span><span class='ltx_text ltx_lst_space'> </span>=<span class='ltx_text ltx_lst_space'> </span>{[<span class='ltx_text ltx_lst_identifier'>i</span>,j]<span class='ltx_text ltx_lst_space'> </span>-&gt;<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>where</span>(<span class='ltx_text ltx_lst_identifier'>i</span><span class='ltx_text ltx_lst_space'> </span>==<span class='ltx_text ltx_lst_space'> </span>j<span class='ltx_text ltx_lst_space'> </span>,<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>mat</span>[[<span class='ltx_text ltx_lst_identifier'>i</span>,j]]<span class='ltx_text ltx_lst_space'> </span>,<span class='ltx_text ltx_lst_space'> </span>0)};
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">18</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">print</span>(<span class="ltx_text ltx_lst_identifier">mat_diag</span>);+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>18</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>print</span>(<span class='ltx_text ltx_lst_identifier'>mat_diag</span>);
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">19</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>19</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">20</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_keyword ltx_font_bold">return</span><span class="ltx_text ltx_lst_space"> </span>0;+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>20</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>return</span><span class='ltx_text ltx_lst_space'> </span>0;
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">21</span></span>}+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>21</span></span>}
 </div> </div>
 </div> </div>
 </figure> </figure>
-<div id="Ch2.S2.SS2.SSSx2.p4class="ltx_para"+<div id='Ch2.S2.SS2.SSSx2.p4class='ltx_para'
-<p class="ltx_p">The set notation in line 8 defines a vector whose components +<p class='ltx_p'>The set notation in line 8 defines a vector whose components 
-at position <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting">[<span class="ltx_text ltx_lst_identifier">i</span>]</span> are vectors that are computed from adding +at position <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>[<span class='ltx_text ltx_lst_identifier'>i</span>]</span> are vectors that are computed from adding 
-a multiple of <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting">1</span> to the vector <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">vect</span>+a multiple of <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>1</span> to the vector <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>vect</span>
-The legal range of <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">i</span> is derived from the selection +The legal range of <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>i</span> is derived from the selection 
-<span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting"><span class="ltx_text ltx_lst_identifier">vect</span>[[<span class="ltx_text ltx_lst_identifier">i</span>]]</span> yielding in fact a matrix with shape <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting">[10,10]</span>.+<span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'><span class='ltx_text ltx_lst_identifier'>vect</span>[[<span class='ltx_text ltx_lst_identifier'>i</span>]]</span> yielding in fact a matrix with shape <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>[10,10]</span>.
 An explicit element-wise increment operation is specified in line 11. An explicit element-wise increment operation is specified in line 11.
 Since the operation does not need to refer to individual axes a Since the operation does not need to refer to individual axes a
-variable <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">iv</span> is used for the entire index vector rather than+variable <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>iv</span> is used for the entire index vector rather than
 having variables for individual index components. having variables for individual index components.
 Line 14 shows how the matrix can be transposed, and line 17 Line 14 shows how the matrix can be transposed, and line 17
-changes all non-diagonal elements to <span class="ltx_text ltx_lstlisting"></span>.</p>+changes all non-diagonal elements to <span class='ltx_text ltx_lstlisting'></span>.</p>
 </div> </div>
-<div id="Thmtheorem11class="ltx_theorem ltx_theorem_theorem"+<div id='Thmtheorem11class='ltx_theorem ltx_theorem_theorem'
-<h6 class="ltx_title ltx_runin ltx_font_bold ltx_title_theorem">Exercise 11. </h6> +<h6 class='ltx_title ltx_runin ltx_font_bold ltx_title_theorem'>Exercise 11. </h6> 
-<div id="Thmtheorem11.p1class="ltx_para"+<div id='Thmtheorem11.p1class='ltx_para'
-<p class="ltx_p">Which of these operations can be expressed in terms of the array operations+<p class='ltx_p'>Which of these operations can be expressed in terms of the array operations
 defined so far?</p> defined so far?</p>
 </div> </div>
 </div> </div>
-<div id="Thmtheorem12class="ltx_theorem ltx_theorem_theorem"+<div id='Thmtheorem12class='ltx_theorem ltx_theorem_theorem'
-<h6 class="ltx_title ltx_runin ltx_font_bold ltx_title_theorem">Exercise 12. </h6> +<h6 class='ltx_title ltx_runin ltx_font_bold ltx_title_theorem'>Exercise 12. </h6> 
-<div id="Thmtheorem12.p1class="ltx_para"+<div id='Thmtheorem12.p1class='ltx_para'
-<p class="ltx_p">What results do you expect if <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">mat</span> is an empty matrix, e.g. <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting"><span class="ltx_text ltx_lst_identifier">reshape</span>([10,0],<span class="ltx_text ltx_lst_space"> </span>[])</span>?</p>+<p class='ltx_p'>What results do you expect if <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>mat</span> is an empty matrix, e.g. <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'><span class='ltx_text ltx_lst_identifier'>reshape</span>([10,0],<span class='ltx_text ltx_lst_space'> </span>[])</span>?</p>
 </div> </div>
 </div> </div>
-<div id="Ch2.S2.SS2.SSSx2.p5class="ltx_para"+<div id='Ch2.S2.SS2.SSSx2.p5class='ltx_para'
-<p class="ltx_p">As we can see from the set notation in line 8, non-scalar expressions+<p class='ltx_p'>As we can see from the set notation in line 8, non-scalar expressions
 within the set notation per default constitute the inner axes of the within the set notation per default constitute the inner axes of the
 result array. result array.
Line 2283: Line 2882:
 axes that should constitute the result axis.</p> axes that should constitute the result axis.</p>
 </div> </div>
-<div id="Ch2.S2.SS2.SSSx2.p6class="ltx_para"+<div id='Ch2.S2.SS2.SSSx2.p6class='ltx_para'
-<p class="ltx_p">A few examples:</p>+<p class='ltx_p'>A few examples:</p>
 </div> </div>
-<figure id="LST15class="ltx_float ltx_lstlisting ltx_role_listing"+<figure id='LST15class='ltx_float ltx_lstlisting ltx_role_listing'
-<figcaption class="ltx_caption"><span class="ltx_tag ltx_tag_float">Listing 15: </span>Advanced Set Notation</figcaption> +<figcaption class='ltx_caption'><span class='ltx_tag ltx_tag_float'>Listing 15: </span>Advanced Set Notation</figcaption> 
-<div class="ltx_listing ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_listing"+<div class='ltx_listing ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_listing'
-<div class="ltx_listing_data"><a href="data:text/plain;base64,dXNlIFN0ZElPOiBhbGw7CnVzZSBBcnJheTogYWxsOwoKaW50IG1haW4oKQp7CiAgdmVjdCA9IFsw%0ALDEsMiwzXTsKCiAgbWF0ID0ge1suLGldIC0+IHZlY3RbW2ldXSo0ICsgdmVjdH07CiAgcHJpbnQo%0AbWF0KTsKCiAgYXJyM2QgPSB7W2ldIC0+IHZlY3RbW2ldXSoxNiArIG1hdH07CiAgcHJpbnQoYXJy%0AM2QpOwoKICBhcnIzZCA9IHtbLiwuLGldIC0+IHZlY3RbW2ldXSoxNiArIG1hdH07CiAgcHJpbnQo%0AYXJyM2QpOwoKICBhcnIzZCA9IHtbLixpXSAtPiB2ZWN0W1tpXV0qMTYgKyBtYXR9OwogIHByaW50%0AKGFycjNkKTsKCiAgcmV0dXJuIDA7Cn0=%0A">⬇</a></div> +<div class='ltx_listing_data'><a href='data:text/plain;base64,dXNlIFN0ZElPOiBhbGw7CnVzZSBBcnJheTogYWxsOwoKaW50IG1haW4oKQp7CiAgdmVjdCA9IFsw%0ALDEsMiwzXTsKCiAgbWF0ID0ge1suLGldIC0+IHZlY3RbW2ldXSo0ICsgdmVjdH07CiAgcHJpbnQo%0AbWF0KTsKCiAgYXJyM2QgPSB7W2ldIC0+IHZlY3RbW2ldXSoxNiArIG1hdH07CiAgcHJpbnQoYXJy%0AM2QpOwoKICBhcnIzZCA9IHtbLiwuLGldIC0+IHZlY3RbW2ldXSoxNiArIG1hdH07CiAgcHJpbnQo%0AYXJyM2QpOwoKICBhcnIzZCA9IHtbLixpXSAtPiB2ZWN0W1tpXV0qMTYgKyBtYXR9OwogIHByaW50%0AKGFycjNkKTsKCiAgcmV0dXJuIDA7Cn0=%0A'>⬇</a></div> 
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">1</span></span><span class="ltx_text ltx_lst_keyword ltx_font_bold">use</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">StdIO</span>:<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">all</span>;+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>1</span></span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>use</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>StdIO</span>:<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>all</span>;
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">2</span></span><span class="ltx_text ltx_lst_keyword ltx_font_bold">use</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">Array</span>:<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">all</span>;+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>2</span></span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>use</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>Array</span>:<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>all</span>;
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">3</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>3</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">4</span></span><span class="ltx_text ltx_lst_keyword ltx_font_bold">int</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">main</span>()+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>4</span></span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>int</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>main</span>()
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">5</span></span>{+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>5</span></span>{
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">6</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">vect</span><span class="ltx_text ltx_lst_space"> </span>=<span class="ltx_text ltx_lst_space"> </span>[0,1,2,3];+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>6</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>vect</span><span class='ltx_text ltx_lst_space'> </span>=<span class='ltx_text ltx_lst_space'> </span>[0,1,2,3];
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">7</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>7</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">8</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">mat</span><span class="ltx_text ltx_lst_space"> </span>=<span class="ltx_text ltx_lst_space"> </span>{[.,<span class="ltx_text ltx_lst_identifier">i</span>]<span class="ltx_text ltx_lst_space"> </span>-&gt;<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">vect</span>[[<span class="ltx_text ltx_lst_identifier">i</span>]]*4<span class="ltx_text ltx_lst_space"> </span>+<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">vect</span>};+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>8</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>mat</span><span class='ltx_text ltx_lst_space'> </span>=<span class='ltx_text ltx_lst_space'> </span>{[.,<span class='ltx_text ltx_lst_identifier'>i</span>]<span class='ltx_text ltx_lst_space'> </span>-&gt;<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>vect</span>[[<span class='ltx_text ltx_lst_identifier'>i</span>]]*4<span class='ltx_text ltx_lst_space'> </span>+<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>vect</span>};
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">9</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">print</span>(<span class="ltx_text ltx_lst_identifier">mat</span>);+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>9</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>print</span>(<span class='ltx_text ltx_lst_identifier'>mat</span>);
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">10</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>10</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">11</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">arr3d</span><span class="ltx_text ltx_lst_space"> </span>=<span class="ltx_text ltx_lst_space"> </span>{[<span class="ltx_text ltx_lst_identifier">i</span>]<span class="ltx_text ltx_lst_space"> </span>-&gt;<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">vect</span>[[<span class="ltx_text ltx_lst_identifier">i</span>]]*16<span class="ltx_text ltx_lst_space"> </span>+<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">mat</span>};+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>11</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>arr3d</span><span class='ltx_text ltx_lst_space'> </span>=<span class='ltx_text ltx_lst_space'> </span>{[<span class='ltx_text ltx_lst_identifier'>i</span>]<span class='ltx_text ltx_lst_space'> </span>-&gt;<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>vect</span>[[<span class='ltx_text ltx_lst_identifier'>i</span>]]*16<span class='ltx_text ltx_lst_space'> </span>+<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>mat</span>};
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">12</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">print</span>(<span class="ltx_text ltx_lst_identifier">arr3d</span>);+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>12</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>print</span>(<span class='ltx_text ltx_lst_identifier'>arr3d</span>);
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">13</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>13</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">14</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">arr3d</span><span class="ltx_text ltx_lst_space"> </span>=<span class="ltx_text ltx_lst_space"> </span>{[.,.,<span class="ltx_text ltx_lst_identifier">i</span>]<span class="ltx_text ltx_lst_space"> </span>-&gt;<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">vect</span>[[<span class="ltx_text ltx_lst_identifier">i</span>]]*16<span class="ltx_text ltx_lst_space"> </span>+<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">mat</span>};+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>14</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>arr3d</span><span class='ltx_text ltx_lst_space'> </span>=<span class='ltx_text ltx_lst_space'> </span>{[.,.,<span class='ltx_text ltx_lst_identifier'>i</span>]<span class='ltx_text ltx_lst_space'> </span>-&gt;<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>vect</span>[[<span class='ltx_text ltx_lst_identifier'>i</span>]]*16<span class='ltx_text ltx_lst_space'> </span>+<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>mat</span>};
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">15</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">print</span>(<span class="ltx_text ltx_lst_identifier">arr3d</span>);+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>15</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>print</span>(<span class='ltx_text ltx_lst_identifier'>arr3d</span>);
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">16</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>16</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">17</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">arr3d</span><span class="ltx_text ltx_lst_space"> </span>=<span class="ltx_text ltx_lst_space"> </span>{[.,<span class="ltx_text ltx_lst_identifier">i</span>]<span class="ltx_text ltx_lst_space"> </span>-&gt;<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">vect</span>[[<span class="ltx_text ltx_lst_identifier">i</span>]]*16<span class="ltx_text ltx_lst_space"> </span>+<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">mat</span>};+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>17</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>arr3d</span><span class='ltx_text ltx_lst_space'> </span>=<span class='ltx_text ltx_lst_space'> </span>{[.,<span class='ltx_text ltx_lst_identifier'>i</span>]<span class='ltx_text ltx_lst_space'> </span>-&gt;<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>vect</span>[[<span class='ltx_text ltx_lst_identifier'>i</span>]]*16<span class='ltx_text ltx_lst_space'> </span>+<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>mat</span>};
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">18</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">print</span>(<span class="ltx_text ltx_lst_identifier">arr3d</span>);+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>18</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>print</span>(<span class='ltx_text ltx_lst_identifier'>arr3d</span>);
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">19</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>19</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">20</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_keyword ltx_font_bold">return</span><span class="ltx_text ltx_lst_space"> </span>0;+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>20</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>return</span><span class='ltx_text ltx_lst_space'> </span>0;
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">21</span></span>}+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>21</span></span>}
 </div> </div>
 </div> </div>
 </figure> </figure>
-<div id="Ch2.S2.SS2.SSSx2.p7class="ltx_para"+<div id='Ch2.S2.SS2.SSSx2.p7class='ltx_para'
-<p class="ltx_p">These examples show how the result of evaluating the expression on the right of the arrow can be directed into any axes of the overall result array.+<p class='ltx_p'>These examples show how the result of evaluating the expression on the right of the arrow can be directed into any axes of the overall result array.
 As can be seen in line 17, the axes of the expressions can even be put into As can be seen in line 17, the axes of the expressions can even be put into
 non-adjacent axes of the result.</p> non-adjacent axes of the result.</p>
 </div> </div>
-<div id="Thmtheorem13class="ltx_theorem ltx_theorem_theorem"+<div id='Thmtheorem13class='ltx_theorem ltx_theorem_theorem'
-<h6 class="ltx_title ltx_runin ltx_font_bold ltx_title_theorem">Exercise 13. </h6> +<h6 class='ltx_title ltx_runin ltx_font_bold ltx_title_theorem'>Exercise 13. </h6> 
-<div id="Thmtheorem13.p1class="ltx_para"+<div id='Thmtheorem13.p1class='ltx_para'
-<p class="ltx_p">The ‘.’ symbol in the set notation allows us to direct a computation+<p class='ltx_p'>The ‘.’ symbol in the set notation allows us to direct a computation
 to any axes of the result. This is identical to first putting the result to any axes of the result. This is identical to first putting the result
 into the innermost axes and then transposing the result. into the innermost axes and then transposing the result.
Line 2371: Line 2970:
 </div> </div>
 </section> </section>
-<section id="Ch2.S2.SS2.SSSx3class="ltx_subsubsection"+<section id='Ch2.S2.SS2.SSSx3class='ltx_subsubsection'
-<h6 class="ltx_title ltx_title_subsubsection">Axis Control</h6>+<h6 class='ltx_title ltx_title_subsubsection'>Axis Control</h6>
  
-<div id="Ch2.S2.SS2.SSSx3.p1class="ltx_para"+<div id='Ch2.S2.SS2.SSSx3.p1class='ltx_para'
-<p class="ltx_p">Although generalized selections and the set notation per se can be useful,+<p class='ltx_p'>Although generalized selections and the set notation per se can be useful,
 their real potential shows when they are used in combination. their real potential shows when they are used in combination.
 Together, they constitute means to control the axes a given operation Together, they constitute means to control the axes a given operation
Line 2383: Line 2982:
 the results to the overall array.</p> the results to the overall array.</p>
 </div> </div>
-<div id="Ch2.S2.SS2.SSSx3.p2class="ltx_para"+<div id='Ch2.S2.SS2.SSSx3.p2class='ltx_para'
-<p class="ltx_p">For example, we can now easily sum up the individual rows or columns+<p class='ltx_p'>For example, we can now easily sum up the individual rows or columns
 of a matrix:</p> of a matrix:</p>
 </div> </div>
-<figure id="LST16class="ltx_float ltx_lstlisting ltx_role_listing"+<figure id='LST16class='ltx_float ltx_lstlisting ltx_role_listing'
-<figcaption class="ltx_caption"><span class="ltx_tag ltx_tag_float">Listing 16: </span>Axis Control: sum</figcaption> +<figcaption class='ltx_caption'><span class='ltx_tag ltx_tag_float'>Listing 16: </span>Axis Control: sum</figcaption> 
-<div class="ltx_listing ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_listing"+<div class='ltx_listing ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_listing'
-<div class="ltx_listing_data"><a href="data:text/plain;base64,dXNlIFN0ZElPOiBhbGw7CnVzZSBBcnJheTogYWxsOwoKaW50IG1haW4oKQp7CiAgdmVjdCA9IFsw%0ALDEsMiwzLDQsNSw2LDcsOCw5XTsKCiAgbWF0ID0ge1suLGldIC0+IHZlY3RbW2ldXSoxMCt2ZWN0%0AfTsKICBwcmludChtYXQpOwoKICBzdW1fcm93cyA9IHtbaV0gLT4gc3VtKG1hdFtbaV1dKX07CiAg%0AcHJpbnQoc3VtX3Jvd3MpOwoKICBzdW1fY29scyA9IHtbaV0gLT4gc3VtKCBtYXRbWy4saV1dKX07%0ACiAgcHJpbnQoc3VtX2NvbHMpOwoKICByZXR1cm4gMDsKfQ==%0A">⬇</a></div> +<div class='ltx_listing_data'><a href='data:text/plain;base64,dXNlIFN0ZElPOiBhbGw7CnVzZSBBcnJheTogYWxsOwoKaW50IG1haW4oKQp7CiAgdmVjdCA9IFsw%0ALDEsMiwzLDQsNSw2LDcsOCw5XTsKCiAgbWF0ID0ge1suLGldIC0+IHZlY3RbW2ldXSoxMCt2ZWN0%0AfTsKICBwcmludChtYXQpOwoKICBzdW1fcm93cyA9IHtbaV0gLT4gc3VtKG1hdFtbaV1dKX07CiAg%0AcHJpbnQoc3VtX3Jvd3MpOwoKICBzdW1fY29scyA9IHtbaV0gLT4gc3VtKCBtYXRbWy4saV1dKX07%0ACiAgcHJpbnQoc3VtX2NvbHMpOwoKICByZXR1cm4gMDsKfQ==%0A'>⬇</a></div> 
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">1</span></span><span class="ltx_text ltx_lst_keyword ltx_font_bold">use</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">StdIO</span>:<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">all</span>;+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>1</span></span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>use</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>StdIO</span>:<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>all</span>;
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">2</span></span><span class="ltx_text ltx_lst_keyword ltx_font_bold">use</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">Array</span>:<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">all</span>;+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>2</span></span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>use</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>Array</span>:<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>all</span>;
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">3</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>3</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">4</span></span><span class="ltx_text ltx_lst_keyword ltx_font_bold">int</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">main</span>()+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>4</span></span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>int</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>main</span>()
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">5</span></span>{+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>5</span></span>{
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">6</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">vect</span><span class="ltx_text ltx_lst_space"> </span>=<span class="ltx_text ltx_lst_space"> </span>[0,1,2,3,4,5,6,7,8,9];+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>6</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>vect</span><span class='ltx_text ltx_lst_space'> </span>=<span class='ltx_text ltx_lst_space'> </span>[0,1,2,3,4,5,6,7,8,9];
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">7</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>7</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">8</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">mat</span><span class="ltx_text ltx_lst_space"> </span>=<span class="ltx_text ltx_lst_space"> </span>{[.,<span class="ltx_text ltx_lst_identifier">i</span>]<span class="ltx_text ltx_lst_space"> </span>-&gt;<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">vect</span>[[<span class="ltx_text ltx_lst_identifier">i</span>]]*10+<span class="ltx_text ltx_lst_identifier">vect</span>};+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>8</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>mat</span><span class='ltx_text ltx_lst_space'> </span>=<span class='ltx_text ltx_lst_space'> </span>{[.,<span class='ltx_text ltx_lst_identifier'>i</span>]<span class='ltx_text ltx_lst_space'> </span>-&gt;<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>vect</span>[[<span class='ltx_text ltx_lst_identifier'>i</span>]]*10+<span class='ltx_text ltx_lst_identifier'>vect</span>};
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">9</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">print</span>(<span class="ltx_text ltx_lst_identifier">mat</span>);+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>9</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>print</span>(<span class='ltx_text ltx_lst_identifier'>mat</span>);
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">10</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>10</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">11</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">sum_rows</span><span class="ltx_text ltx_lst_space"> </span>=<span class="ltx_text ltx_lst_space"> </span>{[<span class="ltx_text ltx_lst_identifier">i</span>]<span class="ltx_text ltx_lst_space"> </span>-&gt;<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">sum</span>(<span class="ltx_text ltx_lst_identifier">mat</span>[[<span class="ltx_text ltx_lst_identifier">i</span>]])};+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>11</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>sum_rows</span><span class='ltx_text ltx_lst_space'> </span>=<span class='ltx_text ltx_lst_space'> </span>{[<span class='ltx_text ltx_lst_identifier'>i</span>]<span class='ltx_text ltx_lst_space'> </span>-&gt;<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>sum</span>(<span class='ltx_text ltx_lst_identifier'>mat</span>[[<span class='ltx_text ltx_lst_identifier'>i</span>]])};
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">12</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">print</span>(<span class="ltx_text ltx_lst_identifier">sum_rows</span>);+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>12</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>print</span>(<span class='ltx_text ltx_lst_identifier'>sum_rows</span>);
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">13</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>13</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">14</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">sum_cols</span><span class="ltx_text ltx_lst_space"> </span>=<span class="ltx_text ltx_lst_space"> </span>{[<span class="ltx_text ltx_lst_identifier">i</span>]<span class="ltx_text ltx_lst_space"> </span>-&gt;<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">sum</span>(<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">mat</span>[[.,<span class="ltx_text ltx_lst_identifier">i</span>]])};+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>14</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>sum_cols</span><span class='ltx_text ltx_lst_space'> </span>=<span class='ltx_text ltx_lst_space'> </span>{[<span class='ltx_text ltx_lst_identifier'>i</span>]<span class='ltx_text ltx_lst_space'> </span>-&gt;<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>sum</span>(<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>mat</span>[[.,<span class='ltx_text ltx_lst_identifier'>i</span>]])};
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">15</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">print</span>(<span class="ltx_text ltx_lst_identifier">sum_cols</span>);+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>15</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>print</span>(<span class='ltx_text ltx_lst_identifier'>sum_cols</span>);
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">16</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>16</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">17</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_keyword ltx_font_bold">return</span><span class="ltx_text ltx_lst_space"> </span>0;+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>17</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>return</span><span class='ltx_text ltx_lst_space'> </span>0;
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">18</span></span>}+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>18</span></span>}
 </div> </div>
 </div> </div>
 </figure> </figure>
-<div id="Ch2.S2.SS2.SSSx3.p3class="ltx_para"+<div id='Ch2.S2.SS2.SSSx3.p3class='ltx_para'
-<p class="ltx_p">Reduction operations, in general, are prone to axis control, as they+<p class='ltx_p'>Reduction operations, in general, are prone to axis control, as they
 often need to be applied to certain often need to be applied to certain
 particular axes rather than entire arrays. particular axes rather than entire arrays.
-Other popular examples are the maximum (<span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">maxval</span>) and +Other popular examples are the maximum (<span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>maxval</span>) and 
-minimum (<span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">minval</span>) operations:</p>+minimum (<span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>minval</span>) operations:</p>
 </div> </div>
-<figure id="LST17class="ltx_float ltx_lstlisting ltx_role_listing"+<figure id='LST17class='ltx_float ltx_lstlisting ltx_role_listing'
-<figcaption class="ltx_caption"><span class="ltx_tag ltx_tag_float">Listing 17: </span>Axis Control: max</figcaption> +<figcaption class='ltx_caption'><span class='ltx_tag ltx_tag_float'>Listing 17: </span>Axis Control: max</figcaption> 
-<div class="ltx_listing ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_listing"+<div class='ltx_listing ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_listing'
-<div class="ltx_listing_data"><a href="data:text/plain;base64,dXNlIFN0ZElPOiBhbGw7CnVzZSBBcnJheTogYWxsOwoKaW50IG1haW4oKQp7CiAgdmVjdCA9IFsw%0ALDEsMiwzXTsKCiAgYXJyM2QgPSB7W2ksal0gLT4gdmVjdFtbaV1dKjQgKyB2ZWN0W1tqXV0qMTYg%0AKyB2ZWN0fTsKICBwcmludChhcnIzZCk7CgogIG1heF9pbm5lcl92ZWN0cyA9IHtbaSxqXSAtPiBt%0AYXh2YWwoYXJyM2RbW2ksal1dKX07CiAgcHJpbnQobWF4X2lubmVyX3ZlY3RzKTsKCiAgbWF4X2lu%0AbmVyX2FycmF5cyA9IHtbaV0gLT4gbWF4dmFsKGFycjNkW1tpXV0pfTsKICBwcmludChtYXhfaW5u%0AZXJfYXJyYXlzKTsKCiAgbWF4X291dGVyX2FycmF5cyA9IHtbaV0gLT4gbWF4dmFsKGFycjNkW1su%0ALC4saV1dKX07CiAgcHJpbnQobWF4X291dGVyX2FycmF5cyk7CgogIHJldHVybiAwOwp9%0A">⬇</a></div> +<div class='ltx_listing_data'><a href='data:text/plain;base64,dXNlIFN0ZElPOiBhbGw7CnVzZSBBcnJheTogYWxsOwoKaW50IG1haW4oKQp7CiAgdmVjdCA9IFsw%0ALDEsMiwzXTsKCiAgYXJyM2QgPSB7W2ksal0gLT4gdmVjdFtbaV1dKjQgKyB2ZWN0W1tqXV0qMTYg%0AKyB2ZWN0fTsKICBwcmludChhcnIzZCk7CgogIG1heF9pbm5lcl92ZWN0cyA9IHtbaSxqXSAtPiBt%0AYXh2YWwoYXJyM2RbW2ksal1dKX07CiAgcHJpbnQobWF4X2lubmVyX3ZlY3RzKTsKCiAgbWF4X2lu%0AbmVyX2FycmF5cyA9IHtbaV0gLT4gbWF4dmFsKGFycjNkW1tpXV0pfTsKICBwcmludChtYXhfaW5u%0AZXJfYXJyYXlzKTsKCiAgbWF4X291dGVyX2FycmF5cyA9IHtbaV0gLT4gbWF4dmFsKGFycjNkW1su%0ALC4saV1dKX07CiAgcHJpbnQobWF4X291dGVyX2FycmF5cyk7CgogIHJldHVybiAwOwp9%0A'>⬇</a></div> 
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">1</span></span><span class="ltx_text ltx_lst_keyword ltx_font_bold">use</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">StdIO</span>:<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">all</span>;+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>1</span></span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>use</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>StdIO</span>:<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>all</span>;
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">2</span></span><span class="ltx_text ltx_lst_keyword ltx_font_bold">use</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">Array</span>:<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">all</span>;+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>2</span></span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>use</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>Array</span>:<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>all</span>;
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">3</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>3</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">4</span></span><span class="ltx_text ltx_lst_keyword ltx_font_bold">int</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">main</span>()+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>4</span></span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>int</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>main</span>()
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">5</span></span>{+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>5</span></span>{
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">6</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">vect</span><span class="ltx_text ltx_lst_space"> </span>=<span class="ltx_text ltx_lst_space"> </span>[0,1,2,3];+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>6</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>vect</span><span class='ltx_text ltx_lst_space'> </span>=<span class='ltx_text ltx_lst_space'> </span>[0,1,2,3];
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">7</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>7</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">8</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">arr3d</span><span class="ltx_text ltx_lst_space"> </span>=<span class="ltx_text ltx_lst_space"> </span>{[<span class="ltx_text ltx_lst_identifier">i</span>,j]<span class="ltx_text ltx_lst_space"> </span>-&gt;<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">vect</span>[[<span class="ltx_text ltx_lst_identifier">i</span>]]*4<span class="ltx_text ltx_lst_space"> </span>+<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">vect</span>[[j]]*16<span class="ltx_text ltx_lst_space"> </span>+<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">vect</span>};+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>8</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>arr3d</span><span class='ltx_text ltx_lst_space'> </span>=<span class='ltx_text ltx_lst_space'> </span>{[<span class='ltx_text ltx_lst_identifier'>i</span>,j]<span class='ltx_text ltx_lst_space'> </span>-&gt;<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>vect</span>[[<span class='ltx_text ltx_lst_identifier'>i</span>]]*4<span class='ltx_text ltx_lst_space'> </span>+<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>vect</span>[[j]]*16<span class='ltx_text ltx_lst_space'> </span>+<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>vect</span>};
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">9</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">print</span>(<span class="ltx_text ltx_lst_identifier">arr3d</span>);+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>9</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>print</span>(<span class='ltx_text ltx_lst_identifier'>arr3d</span>);
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">10</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>10</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">11</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">max_inner_vects</span><span class="ltx_text ltx_lst_space"> </span>=<span class="ltx_text ltx_lst_space"> </span>{[<span class="ltx_text ltx_lst_identifier">i</span>,j]<span class="ltx_text ltx_lst_space"> </span>-&gt;<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">maxval</span>(<span class="ltx_text ltx_lst_identifier">arr3d</span>[[<span class="ltx_text ltx_lst_identifier">i</span>,j]])};+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>11</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>max_inner_vects</span><span class='ltx_text ltx_lst_space'> </span>=<span class='ltx_text ltx_lst_space'> </span>{[<span class='ltx_text ltx_lst_identifier'>i</span>,j]<span class='ltx_text ltx_lst_space'> </span>-&gt;<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>maxval</span>(<span class='ltx_text ltx_lst_identifier'>arr3d</span>[[<span class='ltx_text ltx_lst_identifier'>i</span>,j]])};
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">12</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">print</span>(<span class="ltx_text ltx_lst_identifier">max_inner_vects</span>);+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>12</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>print</span>(<span class='ltx_text ltx_lst_identifier'>max_inner_vects</span>);
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">13</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>13</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">14</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">max_inner_arrays</span><span class="ltx_text ltx_lst_space"> </span>=<span class="ltx_text ltx_lst_space"> </span>{[<span class="ltx_text ltx_lst_identifier">i</span>]<span class="ltx_text ltx_lst_space"> </span>-&gt;<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">maxval</span>(<span class="ltx_text ltx_lst_identifier">arr3d</span>[[<span class="ltx_text ltx_lst_identifier">i</span>]])};+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>14</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>max_inner_arrays</span><span class='ltx_text ltx_lst_space'> </span>=<span class='ltx_text ltx_lst_space'> </span>{[<span class='ltx_text ltx_lst_identifier'>i</span>]<span class='ltx_text ltx_lst_space'> </span>-&gt;<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>maxval</span>(<span class='ltx_text ltx_lst_identifier'>arr3d</span>[[<span class='ltx_text ltx_lst_identifier'>i</span>]])};
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">15</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">print</span>(<span class="ltx_text ltx_lst_identifier">max_inner_arrays</span>);+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>15</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>print</span>(<span class='ltx_text ltx_lst_identifier'>max_inner_arrays</span>);
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">16</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>16</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">17</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">max_outer_arrays</span><span class="ltx_text ltx_lst_space"> </span>=<span class="ltx_text ltx_lst_space"> </span>{[<span class="ltx_text ltx_lst_identifier">i</span>]<span class="ltx_text ltx_lst_space"> </span>-&gt;<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">maxval</span>(<span class="ltx_text ltx_lst_identifier">arr3d</span>[[.,.,<span class="ltx_text ltx_lst_identifier">i</span>]])};+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>17</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>max_outer_arrays</span><span class='ltx_text ltx_lst_space'> </span>=<span class='ltx_text ltx_lst_space'> </span>{[<span class='ltx_text ltx_lst_identifier'>i</span>]<span class='ltx_text ltx_lst_space'> </span>-&gt;<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>maxval</span>(<span class='ltx_text ltx_lst_identifier'>arr3d</span>[[.,.,<span class='ltx_text ltx_lst_identifier'>i</span>]])};
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">18</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">print</span>(<span class="ltx_text ltx_lst_identifier">max_outer_arrays</span>);+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>18</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>print</span>(<span class='ltx_text ltx_lst_identifier'>max_outer_arrays</span>);
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">19</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>19</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">20</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_keyword ltx_font_bold">return</span><span class="ltx_text ltx_lst_space"> </span>0;+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>20</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>return</span><span class='ltx_text ltx_lst_space'> </span>0;
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">21</span></span>}+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>21</span></span>}
 </div> </div>
 </div> </div>
 </figure> </figure>
-<div id="Ch2.S2.SS2.SSSx3.p4class="ltx_para"+<div id='Ch2.S2.SS2.SSSx3.p4class='ltx_para'
-<p class="ltx_p">In line 8, we directly generate a 3 dimensional array from the vector <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">vect</span>.+<p class='ltx_p'>In line 8, we directly generate a 3 dimensional array from the vector <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>vect</span>.
 Lines 11, 14, and 17 compute maxima within different slices of that array. Lines 11, 14, and 17 compute maxima within different slices of that array.
-<span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">max_inner_vects</span> is a matrix containing the maxima within the innermost vectors,+<span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>max_inner_vects</span> is a matrix containing the maxima within the innermost vectors,
 i.e. the 3-dimensional array is considered a matrix of vectors whose maximum i.e. the 3-dimensional array is considered a matrix of vectors whose maximum
 values are computed. values are computed.
-For <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">max_inner_arrays</span>, the array is considered a vector of matrices; it contains+For <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>max_inner_arrays</span>, the array is considered a vector of matrices; it contains
 the maximum values of these subarrays. the maximum values of these subarrays.
 The last example demonstrates, that outer dimensions can be considered for The last example demonstrates, that outer dimensions can be considered for
 reduction as well.</p> reduction as well.</p>
 </div> </div>
-<div id="Ch2.S2.SS2.SSSx3.p5class="ltx_para"+<div id='Ch2.S2.SS2.SSSx3.p5class='ltx_para'
-<p class="ltx_p">Further demand for axis control arises in the context of array operations+<p class='ltx_p'>Further demand for axis control arises in the context of array operations
 that are dedicated to one fixed axis (usually the outermost one) and that need that are dedicated to one fixed axis (usually the outermost one) and that need
 to be applied to another one. to be applied to another one.
-Examples for this situation are the concatenation operation (<span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting">++</span>+Examples for this situation are the concatenation operation (<span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>++</span>
-and <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">reverse</span>:</p>+and <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>reverse</span>:</p>
 </div> </div>
-<figure id="LST18class="ltx_float ltx_lstlisting ltx_role_listing"+<figure id='LST18class='ltx_float ltx_lstlisting ltx_role_listing'
-<figcaption class="ltx_caption"><span class="ltx_tag ltx_tag_float">Listing 18: </span>Axis Control: ++, reverse</figcaption> +<figcaption class='ltx_caption'><span class='ltx_tag ltx_tag_float'>Listing 18: </span>Axis Control: ++, reverse</figcaption> 
-<div class="ltx_listing ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_listing"+<div class='ltx_listing ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_listing'
-<div class="ltx_listing_data"><a href="data:text/plain;base64,dXNlIFN0ZElPOiBhbGw7CnVzZSBBcnJheTogYWxsOwoKaW50IG1haW4oKQp7CiAgdmVjdCA9IFsw%0ALDEsMiwzXTsKCiAgYXJyM2QgPSB7W2ksal0gLT4gdmVjdFtbaV1dKjQgKyB2ZWN0W1tqXV0qMTYg%0AKyB2ZWN0fTsKICBwcmludChhcnIzZCk7CgogIHByaW50KGFycjNkICsrIGFycjNkKTsKICBwcmlu%0AdCh7W2ldIC0+IGFycjNkW1tpXV0gKysgYXJyM2RbW2ldXX0pOwogIHByaW50KHtbaSxqXSAtPiBh%0AcnIzZFtbaSxqXV0gKysgYXJyM2RbW2ksal1dfSk7CgogIHByaW50KHJldmVyc2UoIGFycjNkKSk7%0ACiAgcHJpbnQoeyBbaV0gLT4gcmV2ZXJzZShhcnIzZFtbaV1dKX0pOwogIHByaW50KHsgW2ksal0g%0ALT4gcmV2ZXJzZShhcnIzZFtbaSxqXV0pfSk7CgogIHJldHVybiAwOwp9%0A">⬇</a></div> +<div class='ltx_listing_data'><a href='data:text/plain;base64,dXNlIFN0ZElPOiBhbGw7CnVzZSBBcnJheTogYWxsOwoKaW50IG1haW4oKQp7CiAgdmVjdCA9IFsw%0ALDEsMiwzXTsKCiAgYXJyM2QgPSB7W2ksal0gLT4gdmVjdFtbaV1dKjQgKyB2ZWN0W1tqXV0qMTYg%0AKyB2ZWN0fTsKICBwcmludChhcnIzZCk7CgogIHByaW50KGFycjNkICsrIGFycjNkKTsKICBwcmlu%0AdCh7W2ldIC0+IGFycjNkW1tpXV0gKysgYXJyM2RbW2ldXX0pOwogIHByaW50KHtbaSxqXSAtPiBh%0AcnIzZFtbaSxqXV0gKysgYXJyM2RbW2ksal1dfSk7CgogIHByaW50KHJldmVyc2UoIGFycjNkKSk7%0ACiAgcHJpbnQoeyBbaV0gLT4gcmV2ZXJzZShhcnIzZFtbaV1dKX0pOwogIHByaW50KHsgW2ksal0g%0ALT4gcmV2ZXJzZShhcnIzZFtbaSxqXV0pfSk7CgogIHJldHVybiAwOwp9%0A'>⬇</a></div> 
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">1</span></span><span class="ltx_text ltx_lst_keyword ltx_font_bold">use</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">StdIO</span>:<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">all</span>;+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>1</span></span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>use</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>StdIO</span>:<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>all</span>;
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">2</span></span><span class="ltx_text ltx_lst_keyword ltx_font_bold">use</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">Array</span>:<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">all</span>;+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>2</span></span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>use</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>Array</span>:<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>all</span>;
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">3</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>3</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">4</span></span><span class="ltx_text ltx_lst_keyword ltx_font_bold">int</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">main</span>()+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>4</span></span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>int</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>main</span>()
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">5</span></span>{+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>5</span></span>{
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">6</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">vect</span><span class="ltx_text ltx_lst_space"> </span>=<span class="ltx_text ltx_lst_space"> </span>[0,1,2,3];+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>6</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>vect</span><span class='ltx_text ltx_lst_space'> </span>=<span class='ltx_text ltx_lst_space'> </span>[0,1,2,3];
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">7</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>7</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">8</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">arr3d</span><span class="ltx_text ltx_lst_space"> </span>=<span class="ltx_text ltx_lst_space"> </span>{[<span class="ltx_text ltx_lst_identifier">i</span>,j]<span class="ltx_text ltx_lst_space"> </span>-&gt;<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">vect</span>[[<span class="ltx_text ltx_lst_identifier">i</span>]]*4<span class="ltx_text ltx_lst_space"> </span>+<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">vect</span>[[j]]*16<span class="ltx_text ltx_lst_space"> </span>+<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">vect</span>};+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>8</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>arr3d</span><span class='ltx_text ltx_lst_space'> </span>=<span class='ltx_text ltx_lst_space'> </span>{[<span class='ltx_text ltx_lst_identifier'>i</span>,j]<span class='ltx_text ltx_lst_space'> </span>-&gt;<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>vect</span>[[<span class='ltx_text ltx_lst_identifier'>i</span>]]*4<span class='ltx_text ltx_lst_space'> </span>+<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>vect</span>[[j]]*16<span class='ltx_text ltx_lst_space'> </span>+<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>vect</span>};
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">9</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">print</span>(<span class="ltx_text ltx_lst_identifier">arr3d</span>);+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>9</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>print</span>(<span class='ltx_text ltx_lst_identifier'>arr3d</span>);
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">10</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>10</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">11</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">print</span>(<span class="ltx_text ltx_lst_identifier">arr3d</span><span class="ltx_text ltx_lst_space"> </span>++<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">arr3d</span>);+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>11</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>print</span>(<span class='ltx_text ltx_lst_identifier'>arr3d</span><span class='ltx_text ltx_lst_space'> </span>++<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>arr3d</span>);
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">12</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">print</span>({[<span class="ltx_text ltx_lst_identifier">i</span>]<span class="ltx_text ltx_lst_space"> </span>-&gt;<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">arr3d</span>[[<span class="ltx_text ltx_lst_identifier">i</span>]]<span class="ltx_text ltx_lst_space"> </span>++<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">arr3d</span>[[<span class="ltx_text ltx_lst_identifier">i</span>]]});+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>12</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>print</span>({[<span class='ltx_text ltx_lst_identifier'>i</span>]<span class='ltx_text ltx_lst_space'> </span>-&gt;<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>arr3d</span>[[<span class='ltx_text ltx_lst_identifier'>i</span>]]<span class='ltx_text ltx_lst_space'> </span>++<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>arr3d</span>[[<span class='ltx_text ltx_lst_identifier'>i</span>]]});
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">13</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">print</span>({[<span class="ltx_text ltx_lst_identifier">i</span>,j]<span class="ltx_text ltx_lst_space"> </span>-&gt;<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">arr3d</span>[[<span class="ltx_text ltx_lst_identifier">i</span>,j]]<span class="ltx_text ltx_lst_space"> </span>++<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">arr3d</span>[[<span class="ltx_text ltx_lst_identifier">i</span>,j]]});+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>13</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>print</span>({[<span class='ltx_text ltx_lst_identifier'>i</span>,j]<span class='ltx_text ltx_lst_space'> </span>-&gt;<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>arr3d</span>[[<span class='ltx_text ltx_lst_identifier'>i</span>,j]]<span class='ltx_text ltx_lst_space'> </span>++<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>arr3d</span>[[<span class='ltx_text ltx_lst_identifier'>i</span>,j]]});
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">14</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>14</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">15</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">print</span>(<span class="ltx_text ltx_lst_identifier">reverse</span>(<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">arr3d</span>));+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>15</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>print</span>(<span class='ltx_text ltx_lst_identifier'>reverse</span>(<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>arr3d</span>));
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">16</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">print</span>({<span class="ltx_text ltx_lst_space"> </span>[<span class="ltx_text ltx_lst_identifier">i</span>]<span class="ltx_text ltx_lst_space"> </span>-&gt;<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">reverse</span>(<span class="ltx_text ltx_lst_identifier">arr3d</span>[[<span class="ltx_text ltx_lst_identifier">i</span>]])});+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>16</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>print</span>({<span class='ltx_text ltx_lst_space'> </span>[<span class='ltx_text ltx_lst_identifier'>i</span>]<span class='ltx_text ltx_lst_space'> </span>-&gt;<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>reverse</span>(<span class='ltx_text ltx_lst_identifier'>arr3d</span>[[<span class='ltx_text ltx_lst_identifier'>i</span>]])});
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">17</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">print</span>({<span class="ltx_text ltx_lst_space"> </span>[<span class="ltx_text ltx_lst_identifier">i</span>,j]<span class="ltx_text ltx_lst_space"> </span>-&gt;<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">reverse</span>(<span class="ltx_text ltx_lst_identifier">arr3d</span>[[<span class="ltx_text ltx_lst_identifier">i</span>,j]])});+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>17</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>print</span>({<span class='ltx_text ltx_lst_space'> </span>[<span class='ltx_text ltx_lst_identifier'>i</span>,j]<span class='ltx_text ltx_lst_space'> </span>-&gt;<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>reverse</span>(<span class='ltx_text ltx_lst_identifier'>arr3d</span>[[<span class='ltx_text ltx_lst_identifier'>i</span>,j]])});
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">18</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>18</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">19</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_keyword ltx_font_bold">return</span><span class="ltx_text ltx_lst_space"> </span>0;+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>19</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>return</span><span class='ltx_text ltx_lst_space'> </span>0;
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">20</span></span>}+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>20</span></span>}
 </div> </div>
 </div> </div>
 </figure> </figure>
-<div id="Ch2.S2.SS2.SSSx3.p6class="ltx_para"+<div id='Ch2.S2.SS2.SSSx3.p6class='ltx_para'
-<p class="ltx_p">Line 11 shows a standard application of the concatenation of two arrays.+<p class='ltx_p'>Line 11 shows a standard application of the concatenation of two arrays.
 It affects the outermost axis only, resulting in an array of shape It affects the outermost axis only, resulting in an array of shape
-<span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting">[8,<span class="ltx_text ltx_lst_space"> </span>0,<span class="ltx_text ltx_lst_space"> </span>0]</span>.+<span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>[8,<span class='ltx_text ltx_lst_space'> </span>0,<span class='ltx_text ltx_lst_space'> </span>0]</span>.
 The two subsequent lines show, how to apply concatenation to other axis. The two subsequent lines show, how to apply concatenation to other axis.
 Essentially, the selections on the right hand sides select the sub expressions to Essentially, the selections on the right hand sides select the sub expressions to
Line 2616: Line 3215:
 subarrays back together again.</p> subarrays back together again.</p>
 </div> </div>
-<div id="Ch2.S2.SS2.SSSx3.p7class="ltx_para"+<div id='Ch2.S2.SS2.SSSx3.p7class='ltx_para'
-<p class="ltx_p">The examples in lines 15-17 show the same exercise for the operation +<p class='ltx_p'>The examples in lines 15-17 show the same exercise for the operation 
-<span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">reverse</span> which reverses the order of the elements within an array+<span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>reverse</span> which reverses the order of the elements within an array
 with respect to the outermost axis.</p> with respect to the outermost axis.</p>
 </div> </div>
-<div id="Thmtheorem14class="ltx_theorem ltx_theorem_theorem"+<div id='Thmtheorem14class='ltx_theorem ltx_theorem_theorem'
-<h6 class="ltx_title ltx_runin ltx_font_bold ltx_title_theorem">Exercise 14. </h6> +<h6 class='ltx_title ltx_runin ltx_font_bold ltx_title_theorem'>Exercise 14. </h6> 
-<div id="Thmtheorem14.p1class="ltx_para"+<div id='Thmtheorem14.p1class='ltx_para'
-<p class="ltx_p">The operation <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">take</span> is defined in a way that ensures inner axes+<p class='ltx_p'>The operation <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>take</span> is defined in a way that ensures inner axes
 to be taken completely in case the take vector does not provide enough to be taken completely in case the take vector does not provide enough
 entities for all axes. entities for all axes.
-How can <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">take</span> be applied to an array so that the outermost axis+How can <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>take</span> be applied to an array so that the outermost axis
 remains untouched and the selections are applied to inner axes, starting at the remains untouched and the selections are applied to inner axes, starting at the
 second one? (You may assume, that the take vector has fewer elements second one? (You may assume, that the take vector has fewer elements
Line 2635: Line 3234:
 </div> </div>
 </div> </div>
-<div id="Thmtheorem15class="ltx_theorem ltx_theorem_theorem"+<div id='Thmtheorem15class='ltx_theorem ltx_theorem_theorem'
-<h6 class="ltx_title ltx_runin ltx_font_bold ltx_title_theorem">Exercise 15. </h6> +<h6 class='ltx_title ltx_runin ltx_font_bold ltx_title_theorem'>Exercise 15. </h6> 
-<div id="Thmtheorem15.p1class="ltx_para"+<div id='Thmtheorem15.p1class='ltx_para'
-<p class="ltx_p">Can you merge two vectors of identical length element-wise? +<p class='ltx_p'>Can you merge two vectors of identical length element-wise? 
-Extend your solution in a way that permits merging <math id="Thmtheorem15.p1.m1class="ltx_Mathalttext="ndisplay="inline"><mi>n</mi></math>-dimensional+Extend your solution in a way that permits merging <math id='Thmtheorem15.p1.m1class='ltx_Mathalttext='ndisplay='inline'><mi>n</mi></math>-dimensional
 arrays on the outermost axis.</p> arrays on the outermost axis.</p>
 </div> </div>
Line 2645: Line 3244:
 </section> </section>
 </section> </section>
-<section id="Ch2.S2.SS3class="ltx_subsection"+<section id='Ch2.S2.SS3class='ltx_subsection'
-<h5 class="ltx_title ltx_title_subsection"+<h5 class='ltx_title ltx_title_subsection'
-<span class="ltx_tag ltx_tag_subsection">2.2.3 </span>Putting it all Together</h5>+<span class='ltx_tag ltx_tag_subsection'>2.2.3 </span>Putting it all Together</h5>
  
-<div id="Ch2.S2.SS3.p1class="ltx_para"+<div id='Ch2.S2.SS3.p1class='ltx_para'
-<p class="ltx_p">The array operations presented so far constitute a substantial+<p class='ltx_p'>The array operations presented so far constitute a substantial
 subset of the functionality that is provided by array programming subset of the functionality that is provided by array programming
-languages such as <span class="ltx_text ltx_font_smallcaps">APL</span>.+languages such as <span class='ltx_text ltx_font_smallcaps'>APL</span>.
 When orchestrated properly, these suffice to express rather complex When orchestrated properly, these suffice to express rather complex
 array operations very concisely. array operations very concisely.
Line 2658: Line 3257:
 power: matrix product and relaxation.</p> power: matrix product and relaxation.</p>
 </div> </div>
-<section id="Ch2.S2.SS3.SSSx1class="ltx_subsubsection"+<section id='Ch2.S2.SS3.SSSx1class='ltx_subsubsection'
-<h6 class="ltx_title ltx_title_subsubsection">Matrix Product</h6>+<h6 class='ltx_title ltx_title_subsubsection'>Matrix Product</h6>
  
-<div id="Ch2.S2.SS3.SSSx1.p1class="ltx_para"+<div id='Ch2.S2.SS3.SSSx1.p1class='ltx_para'
-<p class="ltx_p">The matrix product of two matrices <math id="Ch2.S2.SS3.SSSx1.p1.m1class="ltx_Mathalttext="Adisplay="inline"><mi>A</mi></math> and <math id="Ch2.S2.SS3.SSSx1.p1.m2class="ltx_Mathalttext="Bdisplay="inline"><mi>B</mi></math> (denoted by <math id="Ch2.S2.SS3.SSSx1.p1.m3class="ltx_Mathalttext="A\odot Bdisplay="inline"><mrow><mi>A</mi><mo>⊙</mo><mi>B</mi></mrow></math>) is defined+<p class='ltx_p'>The matrix product of two matrices <math id='Ch2.S2.SS3.SSSx1.p1.m1class='ltx_Mathalttext='Adisplay='inline'><mi>A</mi></math> and <math id='Ch2.S2.SS3.SSSx1.p1.m2class='ltx_Mathalttext='Bdisplay='inline'><mi>B</mi></math> (denoted by <math id='Ch2.S2.SS3.SSSx1.p1.m3class='ltx_Mathalttext='A\odot Bdisplay='inline'><mrow><mi>A</mi><mo>⊙</mo><mi>B</mi></mrow></math>) is defined
 as follows:</p> as follows:</p>
 </div> </div>
-<div id="Ch2.S2.SS3.SSSx1.p2class="ltx_para"+<div id='Ch2.S2.SS3.SSSx1.p2class='ltx_para'
-<p class="ltx_p">Provided <math id="Ch2.S2.SS3.SSSx1.p2.m1class="ltx_Mathalttext="Adisplay="inline"><mi>A</mi></math> has as many columns as <math id="Ch2.S2.SS3.SSSx1.p2.m2class="ltx_Mathalttext="Bdisplay="inline"><mi>B</mi></math> has rows, the result of <math id="Ch2.S2.SS3.SSSx1.p2.m3class="ltx_Mathalttext="A\odot Bdisplay="inline"><mrow><mi>A</mi><mo>⊙</mo><mi>B</mi></mrow></math> +<p class='ltx_p'>Provided <math id='Ch2.S2.SS3.SSSx1.p2.m1class='ltx_Mathalttext='Adisplay='inline'><mi>A</mi></math> has as many columns as <math id='Ch2.S2.SS3.SSSx1.p2.m2class='ltx_Mathalttext='Bdisplay='inline'><mi>B</mi></math> has rows, the result of <math id='Ch2.S2.SS3.SSSx1.p2.m3class='ltx_Mathalttext='A\odot Bdisplay='inline'><mrow><mi>A</mi><mo>⊙</mo><mi>B</mi></mrow></math> 
-has as many rows as <math id="Ch2.S2.SS3.SSSx1.p2.m4class="ltx_Mathalttext="Adisplay="inline"><mi>A</mi></math> and as many columns as <math id="Ch2.S2.SS3.SSSx1.p2.m5class="ltx_Mathalttext="Bdisplay="inline"><mi>B</mi></math>. Each element +has as many rows as <math id='Ch2.S2.SS3.SSSx1.p2.m4class='ltx_Mathalttext='Adisplay='inline'><mi>A</mi></math> and as many columns as <math id='Ch2.S2.SS3.SSSx1.p2.m5class='ltx_Mathalttext='Bdisplay='inline'><mi>B</mi></math>. Each element 
-<math id="Ch2.S2.SS3.SSSx1.p2.m6class="ltx_Mathalttext="{(A\odot B)}_{i,j}display="inline"><msub><mrow><mo stretchy="false">(</mo><mrow><mi>A</mi><mo>⊙</mo><mi>B</mi></mrow><mo stretchy="false">)</mo></mrow><mrow><mi>i</mi><mo>,</mo><mi>j</mi></mrow></msub></math> is defined as the scalar product of the <math id="Ch2.S2.SS3.SSSx1.p2.m7class="ltx_Mathalttext="idisplay="inline"><mi>i</mi></math>-th row of <math id="Ch2.S2.SS3.SSSx1.p2.m8class="ltx_Mathalttext="Adisplay="inline"><mi>A</mi></math> +<math id='Ch2.S2.SS3.SSSx1.p2.m6class='ltx_Mathalttext='{(A\odot B)}_{i,j}display='inline'><msub><mrow><mo stretchy='false'>(</mo><mrow><mi>A</mi><mo>⊙</mo><mi>B</mi></mrow><mo stretchy='false'>)</mo></mrow><mrow><mi>i</mi><mo>,</mo><mi>j</mi></mrow></msub></math> is defined as the scalar product of the <math id='Ch2.S2.SS3.SSSx1.p2.m7class='ltx_Mathalttext='idisplay='inline'><mi>i</mi></math>-th row of <math id='Ch2.S2.SS3.SSSx1.p2.m8class='ltx_Mathalttext='Adisplay='inline'><mi>A</mi></math> 
-and the <math id="Ch2.S2.SS3.SSSx1.p2.m9class="ltx_Mathalttext="jdisplay="inline"><mi>j</mi></math>-th column of <math id="Ch2.S2.SS3.SSSx1.p2.m10class="ltx_Mathalttext="Bdisplay="inline"><mi>B</mi></math>, i.e. we have +and the <math id='Ch2.S2.SS3.SSSx1.p2.m9class='ltx_Mathalttext='jdisplay='inline'><mi>j</mi></math>-th column of <math id='Ch2.S2.SS3.SSSx1.p2.m10class='ltx_Mathalttext='Bdisplay='inline'><mi>B</mi></math>, i.e. we have 
-<math id="Ch2.S2.SS3.SSSx1.p2.m11class="ltx_Mathalttext="{(A\odot B)}_{i,j}=\sum_{k}A_{i,k}*B_{k,j}display="inline"><mrow><msub><mrow><mo stretchy="false">(</mo><mrow><mi>A</mi><mo>⊙</mo><mi>B</mi></mrow><mo stretchy="false">)</mo></mrow><mrow><mi>i</mi><mo>,</mo><mi>j</mi></mrow></msub><mo>=</mo><mrow><msub><mo largeop="truesymmetric="true">∑</mo><mi>k</mi></msub><mrow><msub><mi>A</mi><mrow><mi>i</mi><mo>,</mo><mi>k</mi></mrow></msub><mo>*</mo><msub><mi>B</mi><mrow><mi>k</mi><mo>,</mo><mi>j</mi></mrow></msub></mrow></mrow></mrow></math>.</p>+<math id='Ch2.S2.SS3.SSSx1.p2.m11class='ltx_Mathalttext='{(A\odot B)}_{i,j}=\sum_{k}A_{i,k}*B_{k,j}display='inline'><mrow><msub><mrow><mo stretchy='false'>(</mo><mrow><mi>A</mi><mo>⊙</mo><mi>B</mi></mrow><mo stretchy='false'>)</mo></mrow><mrow><mi>i</mi><mo>,</mo><mi>j</mi></mrow></msub><mo>=</mo><mrow><msub><mo largeop='truesymmetric='true'>∑</mo><mi>k</mi></msub><mrow><msub><mi>A</mi><mrow><mi>i</mi><mo>,</mo><mi>k</mi></mrow></msub><mo>*</mo><msub><mi>B</mi><mrow><mi>k</mi><mo>,</mo><mi>j</mi></mrow></msub></mrow></mrow></mrow></math>.</p>
 </div> </div>
-<div id="Ch2.S2.SS3.SSSx1.p3class="ltx_para"+<div id='Ch2.S2.SS3.SSSx1.p3class='ltx_para'
-<p class="ltx_p">This definition can directly be translated into the following <span class="ltx_text ltx_font_smallcaps">SaC</span> code:</p>+<p class='ltx_p'>This definition can directly be translated into the following <span class='ltx_text ltx_font_smallcaps'>SaC</span> code:</p>
 </div> </div>
-<figure id="LST19class="ltx_float ltx_lstlisting ltx_role_listing"+<figure id='LST19class='ltx_float ltx_lstlisting ltx_role_listing'
-<figcaption class="ltx_caption"><span class="ltx_tag ltx_tag_float">Listing 19: </span>Matrix Product</figcaption> +<figcaption class='ltx_caption'><span class='ltx_tag ltx_tag_float'>Listing 19: </span>Matrix Product</figcaption> 
-<div class="ltx_listing ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_listing"+<div class='ltx_listing ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_listing'
-<div class="ltx_listing_data"><a href="data:text/plain;base64,dXNlIFN0ZElPOiBhbGw7CnVzZSBBcnJheTogYWxsOwoKaW50IG1haW4oKQp7CiAgaWQgPSBbWzFk%0ALCAwZCwgMGRdLCBbMGQsIDFkLCAwZF0sIFswZCwgMGQsIDFkXV07CgogIHZlY3QgPSBbMWQsIDJk%0ALCAzZCwgNGRdOwogIG1hdCA9IFt2ZWN0LCB2ZWN0KzRkLCB2ZWN0KzhkXTsKICBwcmludChtYXQp%0AOwoKICByZXMgPSB7W2ksal0gLT4gc3VtKGlkW1tpLC5dXSAqIG1hdFtbLixqXV0pfTsKICBwcmlu%0AdChyZXMpOwoKICByZXR1cm4gMDsKfQ==%0A">⬇</a></div> +<div class='ltx_listing_data'><a href='data:text/plain;base64,dXNlIFN0ZElPOiBhbGw7CnVzZSBBcnJheTogYWxsOwoKaW50IG1haW4oKQp7CiAgaWQgPSBbWzFk%0ALCAwZCwgMGRdLCBbMGQsIDFkLCAwZF0sIFswZCwgMGQsIDFkXV07CgogIHZlY3QgPSBbMWQsIDJk%0ALCAzZCwgNGRdOwogIG1hdCA9IFt2ZWN0LCB2ZWN0KzRkLCB2ZWN0KzhkXTsKICBwcmludChtYXQp%0AOwoKICByZXMgPSB7W2ksal0gLT4gc3VtKGlkW1tpLC5dXSAqIG1hdFtbLixqXV0pfTsKICBwcmlu%0AdChyZXMpOwoKICByZXR1cm4gMDsKfQ==%0A'>⬇</a></div> 
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">1</span></span><span class="ltx_text ltx_lst_keyword ltx_font_bold">use</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">StdIO</span>:<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">all</span>;+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>1</span></span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>use</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>StdIO</span>:<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>all</span>;
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">2</span></span><span class="ltx_text ltx_lst_keyword ltx_font_bold">use</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">Array</span>:<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">all</span>;+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>2</span></span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>use</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>Array</span>:<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>all</span>;
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">3</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>3</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">4</span></span><span class="ltx_text ltx_lst_keyword ltx_font_bold">int</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">main</span>()+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>4</span></span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>int</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>main</span>()
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">5</span></span>{+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>5</span></span>{
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">6</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">id</span><span class="ltx_text ltx_lst_space"> </span>=<span class="ltx_text ltx_lst_space"> </span>[[1<span class="ltx_text ltx_lst_identifier">d</span>,<span class="ltx_text ltx_lst_space"> </span>0<span class="ltx_text ltx_lst_identifier">d</span>,<span class="ltx_text ltx_lst_space"> </span>0<span class="ltx_text ltx_lst_identifier">d</span>],<span class="ltx_text ltx_lst_space"> </span>[0<span class="ltx_text ltx_lst_identifier">d</span>,<span class="ltx_text ltx_lst_space"> </span>1<span class="ltx_text ltx_lst_identifier">d</span>,<span class="ltx_text ltx_lst_space"> </span>0<span class="ltx_text ltx_lst_identifier">d</span>],<span class="ltx_text ltx_lst_space"> </span>[0<span class="ltx_text ltx_lst_identifier">d</span>,<span class="ltx_text ltx_lst_space"> </span>0<span class="ltx_text ltx_lst_identifier">d</span>,<span class="ltx_text ltx_lst_space"> </span>1<span class="ltx_text ltx_lst_identifier">d</span>]];+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>6</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>id</span><span class='ltx_text ltx_lst_space'> </span>=<span class='ltx_text ltx_lst_space'> </span>[[1<span class='ltx_text ltx_lst_identifier'>d</span>,<span class='ltx_text ltx_lst_space'> </span>0<span class='ltx_text ltx_lst_identifier'>d</span>,<span class='ltx_text ltx_lst_space'> </span>0<span class='ltx_text ltx_lst_identifier'>d</span>],<span class='ltx_text ltx_lst_space'> </span>[0<span class='ltx_text ltx_lst_identifier'>d</span>,<span class='ltx_text ltx_lst_space'> </span>1<span class='ltx_text ltx_lst_identifier'>d</span>,<span class='ltx_text ltx_lst_space'> </span>0<span class='ltx_text ltx_lst_identifier'>d</span>],<span class='ltx_text ltx_lst_space'> </span>[0<span class='ltx_text ltx_lst_identifier'>d</span>,<span class='ltx_text ltx_lst_space'> </span>0<span class='ltx_text ltx_lst_identifier'>d</span>,<span class='ltx_text ltx_lst_space'> </span>1<span class='ltx_text ltx_lst_identifier'>d</span>]];
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">7</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>7</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">8</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">vect</span><span class="ltx_text ltx_lst_space"> </span>=<span class="ltx_text ltx_lst_space"> </span>[1<span class="ltx_text ltx_lst_identifier">d</span>,<span class="ltx_text ltx_lst_space"> </span>2<span class="ltx_text ltx_lst_identifier">d</span>,<span class="ltx_text ltx_lst_space"> </span>3<span class="ltx_text ltx_lst_identifier">d</span>,<span class="ltx_text ltx_lst_space"> </span>4<span class="ltx_text ltx_lst_identifier">d</span>];+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>8</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>vect</span><span class='ltx_text ltx_lst_space'> </span>=<span class='ltx_text ltx_lst_space'> </span>[1<span class='ltx_text ltx_lst_identifier'>d</span>,<span class='ltx_text ltx_lst_space'> </span>2<span class='ltx_text ltx_lst_identifier'>d</span>,<span class='ltx_text ltx_lst_space'> </span>3<span class='ltx_text ltx_lst_identifier'>d</span>,<span class='ltx_text ltx_lst_space'> </span>4<span class='ltx_text ltx_lst_identifier'>d</span>];
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">9</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">mat</span><span class="ltx_text ltx_lst_space"> </span>=<span class="ltx_text ltx_lst_space"> </span>[<span class="ltx_text ltx_lst_identifier">vect</span>,<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">vect</span>+4<span class="ltx_text ltx_lst_identifier">d</span>,<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">vect</span>+8<span class="ltx_text ltx_lst_identifier">d</span>];+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>9</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>mat</span><span class='ltx_text ltx_lst_space'> </span>=<span class='ltx_text ltx_lst_space'> </span>[<span class='ltx_text ltx_lst_identifier'>vect</span>,<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>vect</span>+4<span class='ltx_text ltx_lst_identifier'>d</span>,<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>vect</span>+8<span class='ltx_text ltx_lst_identifier'>d</span>];
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">10</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">print</span>(<span class="ltx_text ltx_lst_identifier">mat</span>);+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>10</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>print</span>(<span class='ltx_text ltx_lst_identifier'>mat</span>);
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">11</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>11</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">12</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">res</span><span class="ltx_text ltx_lst_space"> </span>=<span class="ltx_text ltx_lst_space"> </span>{[<span class="ltx_text ltx_lst_identifier">i</span>,j]<span class="ltx_text ltx_lst_space"> </span>-&gt;<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">sum</span>(<span class="ltx_text ltx_lst_identifier">id</span>[[<span class="ltx_text ltx_lst_identifier">i</span>,.]]<span class="ltx_text ltx_lst_space"> </span>*<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">mat</span>[[.,j]])};+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>12</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>res</span><span class='ltx_text ltx_lst_space'> </span>=<span class='ltx_text ltx_lst_space'> </span>{[<span class='ltx_text ltx_lst_identifier'>i</span>,j]<span class='ltx_text ltx_lst_space'> </span>-&gt;<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>sum</span>(<span class='ltx_text ltx_lst_identifier'>id</span>[[<span class='ltx_text ltx_lst_identifier'>i</span>,.]]<span class='ltx_text ltx_lst_space'> </span>*<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>mat</span>[[.,j]])};
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">13</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">print</span>(<span class="ltx_text ltx_lst_identifier">res</span>);+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>13</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>print</span>(<span class='ltx_text ltx_lst_identifier'>res</span>);
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">14</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>14</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">15</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_keyword ltx_font_bold">return</span><span class="ltx_text ltx_lst_space"> </span>0;+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>15</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>return</span><span class='ltx_text ltx_lst_space'> </span>0;
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">16</span></span>}+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>16</span></span>}
 </div> </div>
 </div> </div>
 </figure> </figure>
-<div id="Ch2.S2.SS3.SSSx1.p4class="ltx_para"+<div id='Ch2.S2.SS3.SSSx1.p4class='ltx_para'
-<p class="ltx_p">After defining two matrices <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">id</span> and <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">mat</span> in+<p class='ltx_p'>After defining two matrices <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>id</span> and <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>mat</span> in
 lines6 and 8, respectively, lines6 and 8, respectively,
-the matrix product <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting"><span class="ltx_text ltx_lst_identifier">id</span><span class="ltx_text ltx_lst_space"> </span><math id="Ch2.S2.SS3.SSSx1.p4.m1class="ltx_Mathalttext="\odotdisplay="inline"><mo>⊙</mo></math><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">mat</span></span> is specified in line 12. +the matrix product <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'><span class='ltx_text ltx_lst_identifier'>id</span><span class='ltx_text ltx_lst_space'> </span><math id='Ch2.S2.SS3.SSSx1.p4.m1class='ltx_Mathalttext='\odotdisplay='inline'><mo>⊙</mo></math><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>mat</span></span> is specified in line 12. 
-<span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting"><span class="ltx_text ltx_lst_identifier">id</span>[[<span class="ltx_text ltx_lst_identifier">i</span>,.]]</span> selects the <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">i</span>-th row of <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">id</span> and +<span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'><span class='ltx_text ltx_lst_identifier'>id</span>[[<span class='ltx_text ltx_lst_identifier'>i</span>,.]]</span> selects the <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>i</span>-th row of <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>id</span> and 
-<span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting"><span class="ltx_text ltx_lst_identifier">mat</span>[[.,j]]</span> refers to the <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting">j</span>-th column of <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">mat</span>+<span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'><span class='ltx_text ltx_lst_identifier'>mat</span>[[.,j]]</span> refers to the <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>j</span>-th column of <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>mat</span>
-The index ranges for <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">i</span> and <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting">j</span> are deduced from the accesses +The index ranges for <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>i</span> and <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>j</span> are deduced from the accesses 
-into <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">id</span> and <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">mat</span>, respectively. +into <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>id</span> and <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>mat</span>, respectively. 
-A variable <math id="Ch2.S2.SS3.SSSx1.p4.m2class="ltx_Mathalttext="kdisplay="inline"><mi>k</mi></math> as used in the mathematical specification is not required +A variable <math id='Ch2.S2.SS3.SSSx1.p4.m2class='ltx_Mathalttext='kdisplay='inline'><mi>k</mi></math> as used in the mathematical specification is not required 
-as we can make use of the array operations <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting">*</span> and <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">sum</span>.</p>+as we can make use of the array operations <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>*</span> and <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>sum</span>.</p>
 </div> </div>
 </section> </section>
-<section id="Ch2.S2.SS3.SSSx2class="ltx_subsubsection"+<section id='Ch2.S2.SS3.SSSx2class='ltx_subsubsection'
-<h6 class="ltx_title ltx_title_subsubsection">Relaxation</h6>+<h6 class='ltx_title ltx_title_subsubsection'>Relaxation</h6>
  
-<div id="Ch2.S2.SS3.SSSx2.p1class="ltx_para"+<div id='Ch2.S2.SS3.SSSx2.p1class='ltx_para'
-<p class="ltx_p">Numerical approximations to the solution of partial differential equations +<p class='ltx_p'>Numerical approximations to the solution of partial differential equations 
-are often made by applying so-called <span class="ltx_text ltx_font_italic">relaxation methods</span>.+are often made by applying so-called <span class='ltx_text ltx_font_italic'>relaxation methods</span>.
 These require large arrays to be iteratively modified by so-called These require large arrays to be iteratively modified by so-called
-<span class="ltx_text ltx_font_italic">stencil operations</span> until a certain convergence criterion is met. +<span class='ltx_text ltx_font_italic'>stencil operations</span> until a certain convergence criterion is met. 
-Fig. <a href="#Ch2.F1title="Figure 2.1 ‣ Relaxation ‣ 2.2.3 Putting it all Together ‣ 2.2 Lesson 2: Shape-Invariant Programming ‣ Chapter 2 Array Programming Basics ‣ Part I Trails Covering the Basics of SaCclass="ltx_ref"><span class="ltx_text ltx_ref_tag">2.1</span></a> illustrates such a stencil operation.</p>+Fig. <a href='#Ch2.F1title='Figure 2.1 ‣ Relaxation ‣ 2.2.3 Putting it all Together ‣ 2.2 Lesson 2: Shape-Invariant Programming ‣ Chapter 2 Array Programming Basics ‣ Part I Trails Covering the Basics of SaCclass='ltx_ref'><span class='ltx_text ltx_ref_tag'>2.1</span></a> illustrates such a stencil operation.</p>
 </div> </div>
-<figure id="Ch2.F1class="ltx_figure"><img src="x1.pngid="Ch2.F1.g1class="ltx_graphics ltx_centeringwidth="209height="130alt=""+<figure id='Ch2.F1class='ltx_figure'><img src='x1.pngid='Ch2.F1.g1class='ltx_graphics ltx_centeringwidth='209height='130alt=''
-<figcaption class="ltx_caption ltx_centering"><span class="ltx_tag ltx_tag_figure">Figure 2.1: </span>A 5-point-stencil relaxation with cyclic boundaries</figcaption>+<figcaption class='ltx_caption ltx_centering'><span class='ltx_tag ltx_tag_figure'>Figure 2.1: </span>A 5-point-stencil relaxation with cyclic boundaries</figcaption>
 </figure> </figure>
-<div id="Ch2.S2.SS3.SSSx2.p2class="ltx_para"+<div id='Ch2.S2.SS3.SSSx2.p2class='ltx_para'
-<p class="ltx_p">A stencil operation re-computes all elements of an array by computing a weighted+<p class='ltx_p'>A stencil operation re-computes all elements of an array by computing a weighted
 sum of all neighbor elements. sum of all neighbor elements.
 The weights that are used solely depend on the positions relative to the element The weights that are used solely depend on the positions relative to the element
 to be computed rather than the position in the result array. to be computed rather than the position in the result array.
 Therefore, we can conveniently specify these weights by a single matrix of weights Therefore, we can conveniently specify these weights by a single matrix of weights
-as shown on the left side of Fig. <a href="#Ch2.F1title="Figure 2.1 ‣ Relaxation ‣ 2.2.3 Putting it all Together ‣ 2.2 Lesson 2: Shape-Invariant Programming ‣ Chapter 2 Array Programming Basics ‣ Part I Trails Covering the Basics of SaCclass="ltx_ref"><span class="ltx_text ltx_ref_tag">2.1</span></a>.</p>+as shown on the left side of Fig. <a href='#Ch2.F1title='Figure 2.1 ‣ Relaxation ‣ 2.2.3 Putting it all Together ‣ 2.2 Lesson 2: Shape-Invariant Programming ‣ Chapter 2 Array Programming Basics ‣ Part I Trails Covering the Basics of SaCclass='ltx_ref'><span class='ltx_text ltx_ref_tag'>2.1</span></a>.</p>
 </div> </div>
-<div id="Ch2.S2.SS3.SSSx2.p3class="ltx_para"+<div id='Ch2.S2.SS3.SSSx2.p3class='ltx_para'
-<p class="ltx_p">In this example, only 4 direct neighbor elements and the old value itself+<p class='ltx_p'>In this example, only 4 direct neighbor elements and the old value itself
 are taken into account for computing a new value. are taken into account for computing a new value.
-(Hence its name: <span class="ltx_text ltx_font_italic">5-point-stencil operation</span>).+(Hence its name: <span class='ltx_text ltx_font_italic'>5-point-stencil operation</span>).
 As can be seen from the weights, a new value is computed from old ones by adding As can be seen from the weights, a new value is computed from old ones by adding
 an eight-th each of the values of the upper, lower, left, and right neighbors an eight-th each of the values of the upper, lower, left, and right neighbors
 to half of the old value.</p> to half of the old value.</p>
 </div> </div>
-<div id="Ch2.S2.SS3.SSSx2.p4class="ltx_para"+<div id='Ch2.S2.SS3.SSSx2.p4class='ltx_para'
-<p class="ltx_p">As demonstrated on the right side of Fig. <a href="#Ch2.F1title="Figure 2.1 ‣ Relaxation ‣ 2.2.3 Putting it all Together ‣ 2.2 Lesson 2: Shape-Invariant Programming ‣ Chapter 2 Array Programming Basics ‣ Part I Trails Covering the Basics of SaCclass="ltx_ref"><span class="ltx_text ltx_ref_tag">2.1</span></a> our example assumes +<p class='ltx_p'>As demonstrated on the right side of Fig. <a href='#Ch2.F1title='Figure 2.1 ‣ Relaxation ‣ 2.2.3 Putting it all Together ‣ 2.2 Lesson 2: Shape-Invariant Programming ‣ Chapter 2 Array Programming Basics ‣ Part I Trails Covering the Basics of SaCclass='ltx_ref'><span class='ltx_text ltx_ref_tag'>2.1</span></a> our example assumes 
-so-called <span class="ltx_text ltx_font_italic">cyclic boundary conditions</span>.+so-called <span class='ltx_text ltx_font_italic'>cyclic boundary conditions</span>.
 This means that the missing neighbor elements at the boundaries of the matrix This means that the missing neighbor elements at the boundaries of the matrix
 are taken from the opposite sides as indicated by the elliptic curves. are taken from the opposite sides as indicated by the elliptic curves.
 </p> </p>
 </div> </div>
-<div id="Ch2.S2.SS3.SSSx2.p5class="ltx_para"+<div id='Ch2.S2.SS3.SSSx2.p5class='ltx_para'
-<p class="ltx_p">In the sequel, we concentrate on the specification of a single relaxation+<p class='ltx_p'>In the sequel, we concentrate on the specification of a single relaxation
 step, i.e. on one re-computation of the entire array. step, i.e. on one re-computation of the entire array.
-This can be specified as a single line of <span class="ltx_text ltx_font_smallcaps">SaC</span> code:</p>+This can be specified as a single line of <span class='ltx_text ltx_font_smallcaps'>SaC</span> code:</p>
 </div> </div>
-<figure id="LST20class="ltx_float ltx_lstlisting ltx_role_listing"+<figure id='LST20class='ltx_float ltx_lstlisting ltx_role_listing'
-<figcaption class="ltx_caption"><span class="ltx_tag ltx_tag_float">Listing 20: </span>Relaxation with Cyclic Boundaries</figcaption> +<figcaption class='ltx_caption'><span class='ltx_tag ltx_tag_float'>Listing 20: </span>Relaxation with Cyclic Boundaries</figcaption> 
-<div class="ltx_listing ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_listing"+<div class='ltx_listing ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_listing'
-<div class="ltx_listing_data"><a href="data:text/plain;base64,dXNlIFN0ZElPOiBhbGw7CnVzZSBBcnJheTogYWxsOwoKaW50IG1haW4oKQp7CiAgd2VpZ2h0cyA9%0AIFtbMGQsIDFkLCAwZF0sIFsxZCwgNGQsIDFkXSwgWyAwZCwgMWQsIDBkXV0gLyA4ZDsKCiAgdmVj%0AdCA9IFsxZCwgMmQsIDNkLCA0ZF07CiAgbWF0ID0gW3ZlY3QsIHZlY3QrNGQsIHZlY3QrOGQsIHZl%0AY3QrMTJkXTsKICBwcmludChtYXQpOwoKICBtYXQgPSB7W2ksal0gLT4gc3VtKHsgaXYgLT4gd2Vp%0AZ2h0c1tpdl0gKiByb3RhdGUoaXYtMSwgbWF0KX1bWy4uLixpLGpdXSl9OwogIHByaW50KG1hdCk7%0ACgogIHJldHVybiAwOwp9%0A">⬇</a></div> +<div class='ltx_listing_data'><a href='data:text/plain;base64,dXNlIFN0ZElPOiBhbGw7CnVzZSBBcnJheTogYWxsOwoKaW50IG1haW4oKQp7CiAgd2VpZ2h0cyA9%0AIFtbMGQsIDFkLCAwZF0sIFsxZCwgNGQsIDFkXSwgWyAwZCwgMWQsIDBkXV0gLyA4ZDsKCiAgdmVj%0AdCA9IFsxZCwgMmQsIDNkLCA0ZF07CiAgbWF0ID0gW3ZlY3QsIHZlY3QrNGQsIHZlY3QrOGQsIHZl%0AY3QrMTJkXTsKICBwcmludChtYXQpOwoKICBtYXQgPSB7W2ksal0gLT4gc3VtKHsgaXYgLT4gd2Vp%0AZ2h0c1tpdl0gKiByb3RhdGUoaXYtMSwgbWF0KX1bWy4uLixpLGpdXSl9OwogIHByaW50KG1hdCk7%0ACgogIHJldHVybiAwOwp9%0A'>⬇</a></div> 
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">1</span></span><span class="ltx_text ltx_lst_keyword ltx_font_bold">use</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">StdIO</span>:<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">all</span>;+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>1</span></span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>use</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>StdIO</span>:<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>all</span>;
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">2</span></span><span class="ltx_text ltx_lst_keyword ltx_font_bold">use</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">Array</span>:<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">all</span>;+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>2</span></span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>use</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>Array</span>:<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>all</span>;
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">3</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>3</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">4</span></span><span class="ltx_text ltx_lst_keyword ltx_font_bold">int</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">main</span>()+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>4</span></span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>int</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>main</span>()
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">5</span></span>{+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>5</span></span>{
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">6</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">weights</span><span class="ltx_text ltx_lst_space"> </span>=<span class="ltx_text ltx_lst_space"> </span>[[0<span class="ltx_text ltx_lst_identifier">d</span>,<span class="ltx_text ltx_lst_space"> </span>1<span class="ltx_text ltx_lst_identifier">d</span>,<span class="ltx_text ltx_lst_space"> </span>0<span class="ltx_text ltx_lst_identifier">d</span>],<span class="ltx_text ltx_lst_space"> </span>[1<span class="ltx_text ltx_lst_identifier">d</span>,<span class="ltx_text ltx_lst_space"> </span>4<span class="ltx_text ltx_lst_identifier">d</span>,<span class="ltx_text ltx_lst_space"> </span>1<span class="ltx_text ltx_lst_identifier">d</span>],<span class="ltx_text ltx_lst_space"> </span>[<span class="ltx_text ltx_lst_space"> </span>0<span class="ltx_text ltx_lst_identifier">d</span>,<span class="ltx_text ltx_lst_space"> </span>1<span class="ltx_text ltx_lst_identifier">d</span>,<span class="ltx_text ltx_lst_space"> </span>0<span class="ltx_text ltx_lst_identifier">d</span>]]<span class="ltx_text ltx_lst_space"> </span>/<span class="ltx_text ltx_lst_space"> </span>8<span class="ltx_text ltx_lst_identifier">d</span>;+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>6</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>weights</span><span class='ltx_text ltx_lst_space'> </span>=<span class='ltx_text ltx_lst_space'> </span>[[0<span class='ltx_text ltx_lst_identifier'>d</span>,<span class='ltx_text ltx_lst_space'> </span>1<span class='ltx_text ltx_lst_identifier'>d</span>,<span class='ltx_text ltx_lst_space'> </span>0<span class='ltx_text ltx_lst_identifier'>d</span>],<span class='ltx_text ltx_lst_space'> </span>[1<span class='ltx_text ltx_lst_identifier'>d</span>,<span class='ltx_text ltx_lst_space'> </span>4<span class='ltx_text ltx_lst_identifier'>d</span>,<span class='ltx_text ltx_lst_space'> </span>1<span class='ltx_text ltx_lst_identifier'>d</span>],<span class='ltx_text ltx_lst_space'> </span>[<span class='ltx_text ltx_lst_space'> </span>0<span class='ltx_text ltx_lst_identifier'>d</span>,<span class='ltx_text ltx_lst_space'> </span>1<span class='ltx_text ltx_lst_identifier'>d</span>,<span class='ltx_text ltx_lst_space'> </span>0<span class='ltx_text ltx_lst_identifier'>d</span>]]<span class='ltx_text ltx_lst_space'> </span>/<span class='ltx_text ltx_lst_space'> </span>8<span class='ltx_text ltx_lst_identifier'>d</span>;
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">7</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>7</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">8</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">vect</span><span class="ltx_text ltx_lst_space"> </span>=<span class="ltx_text ltx_lst_space"> </span>[1<span class="ltx_text ltx_lst_identifier">d</span>,<span class="ltx_text ltx_lst_space"> </span>2<span class="ltx_text ltx_lst_identifier">d</span>,<span class="ltx_text ltx_lst_space"> </span>3<span class="ltx_text ltx_lst_identifier">d</span>,<span class="ltx_text ltx_lst_space"> </span>4<span class="ltx_text ltx_lst_identifier">d</span>];+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>8</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>vect</span><span class='ltx_text ltx_lst_space'> </span>=<span class='ltx_text ltx_lst_space'> </span>[1<span class='ltx_text ltx_lst_identifier'>d</span>,<span class='ltx_text ltx_lst_space'> </span>2<span class='ltx_text ltx_lst_identifier'>d</span>,<span class='ltx_text ltx_lst_space'> </span>3<span class='ltx_text ltx_lst_identifier'>d</span>,<span class='ltx_text ltx_lst_space'> </span>4<span class='ltx_text ltx_lst_identifier'>d</span>];
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">9</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">mat</span><span class="ltx_text ltx_lst_space"> </span>=<span class="ltx_text ltx_lst_space"> </span>[<span class="ltx_text ltx_lst_identifier">vect</span>,<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">vect</span>+4<span class="ltx_text ltx_lst_identifier">d</span>,<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">vect</span>+8<span class="ltx_text ltx_lst_identifier">d</span>,<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">vect</span>+12<span class="ltx_text ltx_lst_identifier">d</span>];+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>9</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>mat</span><span class='ltx_text ltx_lst_space'> </span>=<span class='ltx_text ltx_lst_space'> </span>[<span class='ltx_text ltx_lst_identifier'>vect</span>,<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>vect</span>+4<span class='ltx_text ltx_lst_identifier'>d</span>,<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>vect</span>+8<span class='ltx_text ltx_lst_identifier'>d</span>,<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>vect</span>+12<span class='ltx_text ltx_lst_identifier'>d</span>];
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">10</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">print</span>(<span class="ltx_text ltx_lst_identifier">mat</span>);+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>10</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>print</span>(<span class='ltx_text ltx_lst_identifier'>mat</span>);
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">11</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>11</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">12</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">mat</span><span class="ltx_text ltx_lst_space"> </span>=<span class="ltx_text ltx_lst_space"> </span>{[<span class="ltx_text ltx_lst_identifier">i</span>,j]<span class="ltx_text ltx_lst_space"> </span>-&gt;<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">sum</span>({<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">iv</span><span class="ltx_text ltx_lst_space"> </span>-&gt;<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">weights</span>[<span class="ltx_text ltx_lst_identifier">iv</span>]<span class="ltx_text ltx_lst_space"> </span>*<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">rotate</span>(<span class="ltx_text ltx_lst_identifier">iv</span>-1,<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">mat</span>)}[[…,<span class="ltx_text ltx_lst_identifier">i</span>,j]])};+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>12</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>mat</span><span class='ltx_text ltx_lst_space'> </span>=<span class='ltx_text ltx_lst_space'> </span>{[<span class='ltx_text ltx_lst_identifier'>i</span>,j]<span class='ltx_text ltx_lst_space'> </span>-&gt;<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>sum</span>({<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>iv</span><span class='ltx_text ltx_lst_space'> </span>-&gt;<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>weights</span>[<span class='ltx_text ltx_lst_identifier'>iv</span>]<span class='ltx_text ltx_lst_space'> </span>*<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>rotate</span>(<span class='ltx_text ltx_lst_identifier'>iv</span>-1,<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>mat</span>)}[[…,<span class='ltx_text ltx_lst_identifier'>i</span>,j]])};
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">13</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">print</span>(<span class="ltx_text ltx_lst_identifier">mat</span>);+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>13</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>print</span>(<span class='ltx_text ltx_lst_identifier'>mat</span>);
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">14</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>14</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">15</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_keyword ltx_font_bold">return</span><span class="ltx_text ltx_lst_space"> </span>0;+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>15</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>return</span><span class='ltx_text ltx_lst_space'> </span>0;
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">16</span></span>}+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>16</span></span>}
 </div> </div>
 </div> </div>
 </figure> </figure>
-<div id="Ch2.S2.SS3.SSSx2.p6class="ltx_para"+<div id='Ch2.S2.SS3.SSSx2.p6class='ltx_para'
-<p class="ltx_p">Line 6 defines the array of weights as given on the left side of Fig. <a href="#Ch2.F1title="Figure 2.1 ‣ Relaxation ‣ 2.2.3 Putting it all Together ‣ 2.2 Lesson 2: Shape-Invariant Programming ‣ Chapter 2 Array Programming Basics ‣ Part I Trails Covering the Basics of SaCclass="ltx_ref"><span class="ltx_text ltx_ref_tag">2.1</span></a>.+<p class='ltx_p'>Line 6 defines the array of weights as given on the left side of Fig. <a href='#Ch2.F1title='Figure 2.1 ‣ Relaxation ‣ 2.2.3 Putting it all Together ‣ 2.2 Lesson 2: Shape-Invariant Programming ‣ Chapter 2 Array Programming Basics ‣ Part I Trails Covering the Basics of SaCclass='ltx_ref'><span class='ltx_text ltx_ref_tag'>2.1</span></a>.
 Our example array is initialized in lines 8–9. Our example array is initialized in lines 8–9.
 The relaxation step is specified in line 12. The relaxation step is specified in line 12.
 At its core, all elements are re-computed by operations on the entire array At its core, all elements are re-computed by operations on the entire array
 rather than individual elements. rather than individual elements.
-This is achieved by applying <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">rotate</span> for each legal index position <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">iv</span> +This is achieved by applying <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>rotate</span> for each legal index position <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>iv</span> 
-into the array of weights <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">weights</span>+into the array of weights <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>weights</span>
-Since the expression <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting">{<span class="ltx_text ltx_lst_identifier">iv</span><span class="ltx_text ltx_lst_space"> </span>-&gt;<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">weights</span>[<span class="ltx_text ltx_lst_identifier">iv</span>]<span class="ltx_text ltx_lst_space"> </span>*<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">rotate</span>(<span class="ltx_text ltx_lst_identifier">iv</span>-1,<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">mat</span>)}</span> +Since the expression <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>{<span class='ltx_text ltx_lst_identifier'>iv</span><span class='ltx_text ltx_lst_space'> </span>-&gt;<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>weights</span>[<span class='ltx_text ltx_lst_identifier'>iv</span>]<span class='ltx_text ltx_lst_space'> </span>*<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>rotate</span>(<span class='ltx_text ltx_lst_identifier'>iv</span>-1,<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>mat</span>)}</span> 
-computes a 3 by 3 array of matrices; the reduction operation <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">sum</span>+computes a 3 by 3 array of matrices; the reduction operation <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>sum</span>
 needs to be directed towards the outer two axes of that expression only. needs to be directed towards the outer two axes of that expression only.
-This is achieved through axis control using a selection index <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting">[\<span class="ltx_text ltx_lst_identifier">dots</span>,<span class="ltx_text ltx_lst_identifier">i</span>,j]</span> +This is achieved through axis control using a selection index <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>[\<span class='ltx_text ltx_lst_identifier'>dots</span>,<span class='ltx_text ltx_lst_identifier'>i</span>,j]</span> 
-within a set notation over <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">i</span> and <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting">j</span>.</p>+within a set notation over <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>i</span> and <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>j</span>.</p>
 </div> </div>
-<div id="Thmtheorem16class="ltx_theorem ltx_theorem_theorem"+<div id='Thmtheorem16class='ltx_theorem ltx_theorem_theorem'
-<h6 class="ltx_title ltx_runin ltx_font_bold ltx_title_theorem">Exercise 16. </h6> +<h6 class='ltx_title ltx_runin ltx_font_bold ltx_title_theorem'>Exercise 16. </h6> 
-<div id="Thmtheorem16.p1class="ltx_para"+<div id='Thmtheorem16.p1class='ltx_para'
-<p class="ltx_p">Another variant of relaxation problems requires the boundary elements to have+<p class='ltx_p'>Another variant of relaxation problems requires the boundary elements to have
 a fixed value. a fixed value.
 Can you modify the above solution in a way that causes all boundary elements Can you modify the above solution in a way that causes all boundary elements
-to be 0? [<span class="ltx_text ltx_font_bold">Hint:</span> You may consider the boundary elements to actually be +to be 0? [<span class='ltx_text ltx_font_bold'>Hint:</span> You may consider the boundary elements to actually be 
-located <span class="ltx_text ltx_font_bold">outside</span> the matrix]</p>+located <span class='ltx_text ltx_font_bold'>outside</span> the matrix]</p>
 </div> </div>
 </div> </div>
Line 2864: Line 3463:
 </section> </section>
 </section> </section>
-<section id="Ch3class="ltx_chapter"+<section id='Ch3class='ltx_chapter'
-<h3 class="ltx_title ltx_title_chapter"+<h3 class='ltx_title ltx_title_chapter'
-<span class="ltx_tag ltx_tag_chapter">Chapter 3 </span>Basic Program Structure</h3>+<span class='ltx_tag ltx_tag_chapter'>Chapter 3 </span>Basic Program Structure</h3>
  
-<div id="Ch3.p1class="ltx_para"+<div id='Ch3.p1class='ltx_para'
-<p class="ltx_p">This trail gives a brief introduction into the main language +<p class='ltx_p'>This trail gives a brief introduction into the main language 
-constructs most of which have been adopted from standard <span class="ltx_text ltx_font_smallcaps">C</span>+constructs most of which have been adopted from standard <span class='ltx_text ltx_font_smallcaps'>C</span>
-We assume some familiarity with standard <span class="ltx_text ltx_font_smallcaps">C</span> and, therefore,+We assume some familiarity with standard <span class='ltx_text ltx_font_smallcaps'>C</span> and, therefore,
 only give a quick overview and highlight the differences only give a quick overview and highlight the differences
-between <span class="ltx_text ltx_font_smallcaps">SaC</span> and <span class="ltx_text ltx_font_smallcaps">C</span>.</p>+between <span class='ltx_text ltx_font_smallcaps'>SaC</span> and <span class='ltx_text ltx_font_smallcaps'>C</span>.</p>
 </div> </div>
-<section id="Ch3.S1class="ltx_section"+<section id='Ch3.S1class='ltx_section'
-<h4 class="ltx_title ltx_title_section"+<h4 class='ltx_title ltx_title_section'
-<span class="ltx_tag ltx_tag_section">3.1 </span>Lesson 3: Functions and their Types</h4>+<span class='ltx_tag ltx_tag_section'>3.1 </span>Lesson 3: Functions and their Types</h4>
  
-<section id="Ch3.S1.SS1class="ltx_subsection"+<section id='Ch3.S1.SS1class='ltx_subsection'
-<h5 class="ltx_title ltx_title_subsection"+<h5 class='ltx_title ltx_title_subsection'
-<span class="ltx_tag ltx_tag_subsection">3.1.1 </span>Function Definitions</h5>+<span class='ltx_tag ltx_tag_subsection'>3.1.1 </span>Function Definitions</h5>
  
-<div id="Ch3.S1.SS1.p1class="ltx_para"+<div id='Ch3.S1.SS1.p1class='ltx_para'
-<p class="ltx_p">Like in other modern programming languages functions +<p class='ltx_p'>Like in other modern programming languages functions 
-constitute the main form of structuring programs in <span class="ltx_text ltx_font_smallcaps">SaC</span>+constitute the main form of structuring programs in <span class='ltx_text ltx_font_smallcaps'>SaC</span>
-<span class="ltx_text ltx_font_smallcaps">SaC</span> functions very much resemble their <span class="ltx_text ltx_font_smallcaps">C</span> counterparts. +<span class='ltx_text ltx_font_smallcaps'>SaC</span> functions very much resemble their <span class='ltx_text ltx_font_smallcaps'>C</span> counterparts. 
-The most prominent difference is that <span class="ltx_text ltx_font_smallcaps">SaC</span> functions can have+The most prominent difference is that <span class='ltx_text ltx_font_smallcaps'>SaC</span> functions can have
 multiple return values, as illustrated in the following example.</p> multiple return values, as illustrated in the following example.</p>
 </div> </div>
-<figure id="LST21class="ltx_float ltx_lstlisting ltx_role_listing"+<figure id='LST21class='ltx_float ltx_lstlisting ltx_role_listing'
-<figcaption class="ltx_caption"><span class="ltx_tag ltx_tag_float">Listing 21: </span>Function definitions</figcaption> +<figcaption class='ltx_caption'><span class='ltx_tag ltx_tag_float'>Listing 21: </span>Function definitions</figcaption> 
-<div class="ltx_listing ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_listing"+<div class='ltx_listing ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_listing'
-<div class="ltx_listing_data"><a href="data:text/plain;base64,dXNlIFNjYWxhckFyaXRoOiBhbGw7CgppbnQsIGludCBkaXZtb2QoaW50IHgsIGludCB5KQp7CiAg%0AcmV0dXJuICh4IC8geSwgeCAlIHkpOwp9CgppbnQgbWFpbigpCnsKICBkLCBtID0gZGl2bW9kKDgs%0AIDMpOwogIHJldHVybiBkOwp9%0A">⬇</a></div> +<div class='ltx_listing_data'><a href='data:text/plain;base64,dXNlIFNjYWxhckFyaXRoOiBhbGw7CgppbnQsIGludCBkaXZtb2QoaW50IHgsIGludCB5KQp7CiAg%0AcmV0dXJuICh4IC8geSwgeCAlIHkpOwp9CgppbnQgbWFpbigpCnsKICBkLCBtID0gZGl2bW9kKDgs%0AIDMpOwogIHJldHVybiBkOwp9%0A'>⬇</a></div> 
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">1</span></span><span class="ltx_text ltx_lst_keyword ltx_font_bold">use</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">ScalarArith</span>:<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">all</span>;+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>1</span></span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>use</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>ScalarArith</span>:<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>all</span>;
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">2</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>2</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">3</span></span><span class="ltx_text ltx_lst_keyword ltx_font_bold">int</span>,<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_keyword ltx_font_bold">int</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">divmod</span>(<span class="ltx_text ltx_lst_keyword ltx_font_bold">int</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">x</span>,<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_keyword ltx_font_bold">int</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">y</span>)+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>3</span></span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>int</span>,<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>int</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>divmod</span>(<span class='ltx_text ltx_lst_keyword ltx_font_bold'>int</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>x</span>,<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>int</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>y</span>)
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">4</span></span>{+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>4</span></span>{
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">5</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_keyword ltx_font_bold">return</span><span class="ltx_text ltx_lst_space"> </span>(<span class="ltx_text ltx_lst_identifier">x</span><span class="ltx_text ltx_lst_space"> </span>/<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">y</span>,<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">x</span><span class="ltx_text ltx_lst_space"> </span>%<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">y</span>);+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>5</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>return</span><span class='ltx_text ltx_lst_space'> </span>(<span class='ltx_text ltx_lst_identifier'>x</span><span class='ltx_text ltx_lst_space'> </span>/<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>y</span>,<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>x</span><span class='ltx_text ltx_lst_space'> </span>%<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>y</span>);
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">6</span></span>}+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>6</span></span>}
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">7</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>7</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">8</span></span><span class="ltx_text ltx_lst_keyword ltx_font_bold">int</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">main</span>()+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>8</span></span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>int</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>main</span>()
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">9</span></span>{+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>9</span></span>{
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">10</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">d</span>,<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">m</span><span class="ltx_text ltx_lst_space"> </span>=<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">divmod</span>(8,<span class="ltx_text ltx_lst_space"> </span>3);+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>10</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>d</span>,<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>m</span><span class='ltx_text ltx_lst_space'> </span>=<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>divmod</span>(8,<span class='ltx_text ltx_lst_space'> </span>3);
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">11</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_keyword ltx_font_bold">return</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">d</span>;+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>11</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>return</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>d</span>;
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">12</span></span>}+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>12</span></span>}
 </div> </div>
 </div> </div>
 </figure> </figure>
-<div id="Ch3.S1.SS1.p2class="ltx_para"+<div id='Ch3.S1.SS1.p2class='ltx_para'
-<p class="ltx_p">A function with multiple return values, like <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">divmod</span>+<p class='ltx_p'>A function with multiple return values, like <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>divmod</span>
 in the above example, has a comma-separated list of return in the above example, has a comma-separated list of return
 types in front of the function name and the types in front of the function name and the
-<span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_keyword ltx_font_bold">return</span>-statement likewise contains a comma-separated list+<span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_keyword ltx_font_bold'>return</span>-statement likewise contains a comma-separated list
 of expressions. of expressions.
 Obviously both lists must coincide in length to make up a Obviously both lists must coincide in length to make up a
 well-formed program. well-formed program.
 Functions with multiple return values cannot appear in expression Functions with multiple return values cannot appear in expression
-positions in <span class="ltx_text ltx_font_smallcaps">SaC</span>, but their results need to be directly assigned to+positions in <span class='ltx_text ltx_font_smallcaps'>SaC</span>, but their results need to be directly assigned to
 identifiers as illustrated above.</p> identifiers as illustrated above.</p>
 </div> </div>
-<div id="Thmtheorem17class="ltx_theorem ltx_theorem_theorem"+<div id='Thmtheorem17class='ltx_theorem ltx_theorem_theorem'
-<h6 class="ltx_title ltx_runin ltx_font_bold ltx_title_theorem">Exercise 17. </h6> +<h6 class='ltx_title ltx_runin ltx_font_bold ltx_title_theorem'>Exercise 17. </h6> 
-<div id="Thmtheorem17.p1class="ltx_para"+<div id='Thmtheorem17.p1class='ltx_para'
-<p class="ltx_p">Extend the above example program to compute the greatest common+<p class='ltx_p'>Extend the above example program to compute the greatest common
 denominator of two numbers using Euclid’s algorithm. denominator of two numbers using Euclid’s algorithm.
-In particular, use the function <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">divmod</span>.</p>+In particular, use the function <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>divmod</span>.</p>
 </div> </div>
 </div> </div>
-<div id="Thmtheorem18class="ltx_theorem ltx_theorem_theorem"+<div id='Thmtheorem18class='ltx_theorem ltx_theorem_theorem'
-<h6 class="ltx_title ltx_runin ltx_font_bold ltx_title_theorem">Exercise 18. </h6> +<h6 class='ltx_title ltx_runin ltx_font_bold ltx_title_theorem'>Exercise 18. </h6> 
-<div id="Thmtheorem18.p1class="ltx_para"+<div id='Thmtheorem18.p1class='ltx_para'
-<p class="ltx_p">What happens, if you use the same variable name for both results +<p class='ltx_p'>What happens, if you use the same variable name for both results 
-of <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">divmod</span>?</p>+of <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>divmod</span>?</p>
 </div> </div>
 </div> </div>
 </section> </section>
-<section id="Ch3.S1.SS2class="ltx_subsection"+<section id='Ch3.S1.SS2class='ltx_subsection'
-<h5 class="ltx_title ltx_title_subsection"+<h5 class='ltx_title ltx_title_subsection'
-<span class="ltx_tag ltx_tag_subsection">3.1.2 </span>Built-in Types</h5>+<span class='ltx_tag ltx_tag_subsection'>3.1.2 </span>Built-in Types</h5>
  
-<div id="Ch3.S1.SS2.p1class="ltx_para"+<div id='Ch3.S1.SS2.p1class='ltx_para'
-<p class="ltx_p"><span class="ltx_text ltx_font_smallcaps">SaC</span> supports all basic types of standard <span class="ltx_text ltx_font_smallcaps">C</span> such as +<p class='ltx_p'><span class='ltx_text ltx_font_smallcaps'>SaC</span> supports all basic types of standard <span class='ltx_text ltx_font_smallcaps'>C</span> such as 
-<span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_keyword ltx_font_bold">int</span>, <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_keyword ltx_font_bold">float</span>, <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_keyword ltx_font_bold">double</span>, <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">char</span> etc.</p>+<span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_keyword ltx_font_bold'>int</span>, <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_keyword ltx_font_bold'>float</span>, <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_keyword ltx_font_bold'>double</span>, <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>char</span> etc.</p>
 </div> </div>
-<div id="Ch3.S1.SS2.p2class="ltx_para"+<div id='Ch3.S1.SS2.p2class='ltx_para'
-<p class="ltx_p ltx_align_center">+<p class='ltx_p ltx_align_center'>
  
-<span class="ltx_inline-block ltx_minipage ltx_align_middle ltx_framed_rectanglestyle="width:390.3pt;"+<span class='ltx_inline-block ltx_minipage ltx_align_middle ltx_framed_rectanglestyle='width:390.3pt;'
-<span class="ltx_p"><span class="ltx_text ltx_font_bold">A note for bit freaks:</span></span> +<span class='ltx_p'><span class='ltx_text ltx_font_bold'>A note for bit freaks:</span></span> 
-<span class="ltx_p"><span class="ltx_text ltx_font_italic">All basic types are mapped one-to-one to their <span class="ltx_text ltx_font_smallcaps">C</span> counterparts +<span class='ltx_p'><span class='ltx_text ltx_font_italic'>All basic types are mapped one-to-one to their <span class='ltx_text ltx_font_smallcaps'>C</span> counterparts 
-and, hence, the same rules apply to them in <span class="ltx_text ltx_font_smallcaps">SaC</span> as in <span class="ltx_text ltx_font_smallcaps">C</span>.+and, hence, the same rules apply to them in <span class='ltx_text ltx_font_smallcaps'>SaC</span> as in <span class='ltx_text ltx_font_smallcaps'>C</span>.
 As a consequence of this, the concrete bit widths used for representation As a consequence of this, the concrete bit widths used for representation
 and, hence, the range of values for integer types are and, hence, the range of values for integer types are
 platform-dependent. Although this may be considered undesirable platform-dependent. Although this may be considered undesirable
-we find it acceptable from a compatibility-with-<span class="ltx_text ltx_font_smallcaps">C</span> perspective.</span></span>+we find it acceptable from a compatibility-with-<span class='ltx_text ltx_font_smallcaps'>C</span> perspective.</span></span>
 </span> </span>
 </p> </p>
 </div> </div>
-<div id="Ch3.S1.SS2.p3class="ltx_para"+<div id='Ch3.S1.SS2.p3class='ltx_para'
-<p class="ltx_p">In addition to the <span class="ltx_text ltx_font_smallcaps">C</span>-inhereted types, <span class="ltx_text ltx_font_smallcaps">SaC</span> supports three more basic types: +<p class='ltx_p'>In addition to the <span class='ltx_text ltx_font_smallcaps'>C</span>-inhereted types, <span class='ltx_text ltx_font_smallcaps'>SaC</span> supports three more basic types: 
-the boolean type <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_keyword ltx_font_bold">bool</span> and the integer type <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">byte</span>, both+the boolean type <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_keyword ltx_font_bold'>bool</span> and the integer type <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>byte</span>, both
 signed and unsigned. signed and unsigned.
-Although these are internally mapped to the same <span class="ltx_text ltx_font_smallcaps">C</span> type, on the level +Although these are internally mapped to the same <span class='ltx_text ltx_font_smallcaps'>C</span> type, on the level 
-of <span class="ltx_text ltx_font_smallcaps">SaC</span>, there is a strict separation between them.+of <span class='ltx_text ltx_font_smallcaps'>SaC</span>, there is a strict separation between them.
 Neither can be used in places where the other is expected. Neither can be used in places where the other is expected.
-This separation also applies to the standard <span class="ltx_text ltx_font_smallcaps">C</span> types which rules out +This separation also applies to the standard <span class='ltx_text ltx_font_smallcaps'>C</span> types which rules out 
-tacit coercions as one would find them in <span class="ltx_text ltx_font_smallcaps">C</span> or <span class="ltx_text ltx_font_smallcaps">Java</span>.</p>+tacit coercions as one would find them in <span class='ltx_text ltx_font_smallcaps'>C</span> or <span class='ltx_text ltx_font_smallcaps'>Java</span>.</p>
 </div> </div>
-<div id="Ch3.S1.SS2.p4class="ltx_para"+<div id='Ch3.S1.SS2.p4class='ltx_para'
-<p class="ltx_p ltx_align_center">+<p class='ltx_p ltx_align_center'>
  
-<span class="ltx_inline-block ltx_minipage ltx_align_middle ltx_framed_rectanglestyle="width:390.3pt;"+<span class='ltx_inline-block ltx_minipage ltx_align_middle ltx_framed_rectanglestyle='width:390.3pt;'
-<span class="ltx_p"><span class="ltx_text ltx_font_bold">A note for language design freaks:</span></span> +<span class='ltx_p'><span class='ltx_text ltx_font_bold'>A note for language design freaks:</span></span> 
-<span class="ltx_p"><span class="ltx_text ltx_font_italic">The reader may wonder why we enforced this strict separation.+<span class='ltx_p'><span class='ltx_text ltx_font_italic'>The reader may wonder why we enforced this strict separation.
 The reason is two-fold: First, it prevents from accidental coercions The reason is two-fold: First, it prevents from accidental coercions
 and second, it makes type-inference more accessible for the user and second, it makes type-inference more accessible for the user
 in the absence of explicit type declarations. in the absence of explicit type declarations.
-Just imagine an overloading of a function <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">foo</span> for integer and+Just imagine an overloading of a function <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>foo</span> for integer and
 double arguments which would yield different results depending on the type double arguments which would yield different results depending on the type
 of argument. of argument.
 If we had implicit coercions in place it would be completely If we had implicit coercions in place it would be completely
-unclear how the result of <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting"><span class="ltx_text ltx_lst_identifier">foo</span>(0)</span> would be computed!</span></span>+unclear how the result of <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'><span class='ltx_text ltx_lst_identifier'>foo</span>(0)</span> would be computed!</span></span>
 </span> </span>
  
 </p> </p>
 </div> </div>
-<div id="Ch3.S1.SS2.p5class="ltx_para"+<div id='Ch3.S1.SS2.p5class='ltx_para'
-<p class="ltx_p">As a consequence of this strict separation,+<p class='ltx_p'>As a consequence of this strict separation,
 programmers need to apply some rigor when it comes to specifying programmers need to apply some rigor when it comes to specifying
 constant values. constant values.
 They have to be attributed with the appropriate suffixes to indicate They have to be attributed with the appropriate suffixes to indicate
 the desired runtime representation. the desired runtime representation.
-Note here, that we adopted the suffixes and default rules from <span class="ltx_text ltx_font_smallcaps">C</span>.+Note here, that we adopted the suffixes and default rules from <span class='ltx_text ltx_font_smallcaps'>C</span>.
 Here a few examples:</p> Here a few examples:</p>
 </div> </div>
-<figure id="LST22class="ltx_float ltx_lstlisting ltx_role_listing"+<figure id='LST22class='ltx_float ltx_lstlisting ltx_role_listing'
-<figcaption class="ltx_caption"><span class="ltx_tag ltx_tag_float">Listing 22: </span>Element-Type segregation</figcaption> +<figcaption class='ltx_caption'><span class='ltx_tag ltx_tag_float'>Listing 22: </span>Element-Type segregation</figcaption> 
-<div class="ltx_listing ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_listing"+<div class='ltx_listing ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_listing'
-<div class="ltx_listing_data"><a href="data:text/plain;base64,dXNlIFN0ZElPOiBhbGw7CnVzZSBBcnJheTogYWxsOwoKYm9vbCBmb28oZG91YmxlIHgpCnsKICBy%0AZXR1cm4gdHJ1ZTsKfQoKYm9vbCBiYXIoZmxvYXQgeCkKewogIHJldHVybiBmYWxzZTsKfQoKaW50%0AIG1haW4oKQp7CiAgLyogVHlwZSBlcnJvcjogZm9vIGlzIG5vdCBkZWZpbmVkIG9uIGludCEgICov%0ACiAgYSA9IGZvbygwKTsKCiAgLyogQ29ycmVjdCBjYWxsczogICovCiAgYSA9IGZvbygwLjApOwog%0AIGEgPSBmb28oMGQpOwoKICAvKiBUeXBlIGVycm9yOiBiYXIgaXMgbm90IGRlZmluZWQgb24gZG91%0AYmxlISAgKi8KICBhID0gYmFyKDAuMCk7CgogIC8qIENvcnJlY3QgY2FsbHM6ICAgKi8KICBhID0g%0AYmFyKDBmKTsKICBhID0gYmFyKDAuMGYpOwoKICByZXR1cm4gMDsKfQ==%0A">⬇</a></div> +<div class='ltx_listing_data'><a href='data:text/plain;base64,dXNlIFN0ZElPOiBhbGw7CnVzZSBBcnJheTogYWxsOwoKYm9vbCBmb28oZG91YmxlIHgpCnsKICBy%0AZXR1cm4gdHJ1ZTsKfQoKYm9vbCBiYXIoZmxvYXQgeCkKewogIHJldHVybiBmYWxzZTsKfQoKaW50%0AIG1haW4oKQp7CiAgLyogVHlwZSBlcnJvcjogZm9vIGlzIG5vdCBkZWZpbmVkIG9uIGludCEgICov%0ACiAgYSA9IGZvbygwKTsKCiAgLyogQ29ycmVjdCBjYWxsczogICovCiAgYSA9IGZvbygwLjApOwog%0AIGEgPSBmb28oMGQpOwoKICAvKiBUeXBlIGVycm9yOiBiYXIgaXMgbm90IGRlZmluZWQgb24gZG91%0AYmxlISAgKi8KICBhID0gYmFyKDAuMCk7CgogIC8qIENvcnJlY3QgY2FsbHM6ICAgKi8KICBhID0g%0AYmFyKDBmKTsKICBhID0gYmFyKDAuMGYpOwoKICByZXR1cm4gMDsKfQ==%0A'>⬇</a></div> 
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">1</span></span><span class="ltx_text ltx_lst_keyword ltx_font_bold">use</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">StdIO</span>:<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">all</span>;+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>1</span></span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>use</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>StdIO</span>:<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>all</span>;
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">2</span></span><span class="ltx_text ltx_lst_keyword ltx_font_bold">use</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">Array</span>:<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">all</span>;+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>2</span></span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>use</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>Array</span>:<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>all</span>;
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">3</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>3</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">4</span></span><span class="ltx_text ltx_lst_keyword ltx_font_bold">bool</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">foo</span>(<span class="ltx_text ltx_lst_keyword ltx_font_bold">double</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">x</span>)+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>4</span></span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>bool</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>foo</span>(<span class='ltx_text ltx_lst_keyword ltx_font_bold'>double</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>x</span>)
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">5</span></span>{+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>5</span></span>{
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">6</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_keyword ltx_font_bold">return</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">true</span>;+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>6</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>return</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>true</span>;
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">7</span></span>}+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>7</span></span>}
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">8</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>8</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">9</span></span><span class="ltx_text ltx_lst_keyword ltx_font_bold">bool</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">bar</span>(<span class="ltx_text ltx_lst_keyword ltx_font_bold">float</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">x</span>)+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>9</span></span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>bool</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>bar</span>(<span class='ltx_text ltx_lst_keyword ltx_font_bold'>float</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>x</span>)
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">10</span></span>{+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>10</span></span>{
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">11</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_keyword ltx_font_bold">return</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">false</span>;+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>11</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>return</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>false</span>;
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">12</span></span>}+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>12</span></span>}
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">13</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>13</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">14</span></span><span class="ltx_text ltx_lst_keyword ltx_font_bold">int</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">main</span>()+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>14</span></span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>int</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>main</span>()
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">15</span></span>{+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>15</span></span>{
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">16</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_comment ltx_font_italic">/*<span class="ltx_text ltx_lst_space"> </span>Type<span class="ltx_text ltx_lst_space"> </span>error:<span class="ltx_text ltx_lst_space"> </span>foo<span class="ltx_text ltx_lst_space"> </span>is<span class="ltx_text ltx_lst_space"> </span>not<span class="ltx_text ltx_lst_space"> </span>defined<span class="ltx_text ltx_lst_space"> </span>on<span class="ltx_text ltx_lst_space"> </span>int!<span class="ltx_text ltx_lst_space">  </span>*/</span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>16</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_comment ltx_font_italic'>/*<span class='ltx_text ltx_lst_space'> </span>Type<span class='ltx_text ltx_lst_space'> </span>error:<span class='ltx_text ltx_lst_space'> </span>foo<span class='ltx_text ltx_lst_space'> </span>is<span class='ltx_text ltx_lst_space'> </span>not<span class='ltx_text ltx_lst_space'> </span>defined<span class='ltx_text ltx_lst_space'> </span>on<span class='ltx_text ltx_lst_space'> </span>int!<span class='ltx_text ltx_lst_space'>  </span>*/</span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">17</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">a</span><span class="ltx_text ltx_lst_space"> </span>=<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">foo</span>(0);+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>17</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>a</span><span class='ltx_text ltx_lst_space'> </span>=<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>foo</span>(0);
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">18</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>18</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">19</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_comment ltx_font_italic">/*<span class="ltx_text ltx_lst_space"> </span>Correct<span class="ltx_text ltx_lst_space"> </span>calls:<span class="ltx_text ltx_lst_space">  </span>*/</span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>19</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_comment ltx_font_italic'>/*<span class='ltx_text ltx_lst_space'> </span>Correct<span class='ltx_text ltx_lst_space'> </span>calls:<span class='ltx_text ltx_lst_space'>  </span>*/</span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">20</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">a</span><span class="ltx_text ltx_lst_space"> </span>=<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">foo</span>(0.0);+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>20</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>a</span><span class='ltx_text ltx_lst_space'> </span>=<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>foo</span>(0.0);
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">21</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">a</span><span class="ltx_text ltx_lst_space"> </span>=<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">foo</span>(0<span class="ltx_text ltx_lst_identifier">d</span>);+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>21</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>a</span><span class='ltx_text ltx_lst_space'> </span>=<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>foo</span>(0<span class='ltx_text ltx_lst_identifier'>d</span>);
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">22</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>22</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">23</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_comment ltx_font_italic">/*<span class="ltx_text ltx_lst_space"> </span>Type<span class="ltx_text ltx_lst_space"> </span>error:<span class="ltx_text ltx_lst_space"> </span>bar<span class="ltx_text ltx_lst_space"> </span>is<span class="ltx_text ltx_lst_space"> </span>not<span class="ltx_text ltx_lst_space"> </span>defined<span class="ltx_text ltx_lst_space"> </span>on<span class="ltx_text ltx_lst_space"> </span>double!<span class="ltx_text ltx_lst_space">  </span>*/</span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>23</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_comment ltx_font_italic'>/*<span class='ltx_text ltx_lst_space'> </span>Type<span class='ltx_text ltx_lst_space'> </span>error:<span class='ltx_text ltx_lst_space'> </span>bar<span class='ltx_text ltx_lst_space'> </span>is<span class='ltx_text ltx_lst_space'> </span>not<span class='ltx_text ltx_lst_space'> </span>defined<span class='ltx_text ltx_lst_space'> </span>on<span class='ltx_text ltx_lst_space'> </span>double!<span class='ltx_text ltx_lst_space'>  </span>*/</span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">24</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">a</span><span class="ltx_text ltx_lst_space"> </span>=<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">bar</span>(0.0);+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>24</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>a</span><span class='ltx_text ltx_lst_space'> </span>=<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>bar</span>(0.0);
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">25</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>25</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">26</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_comment ltx_font_italic">/*<span class="ltx_text ltx_lst_space"> </span>Correct<span class="ltx_text ltx_lst_space"> </span>calls:<span class="ltx_text ltx_lst_space">   </span>*/</span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>26</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_comment ltx_font_italic'>/*<span class='ltx_text ltx_lst_space'> </span>Correct<span class='ltx_text ltx_lst_space'> </span>calls:<span class='ltx_text ltx_lst_space'>   </span>*/</span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">27</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">a</span><span class="ltx_text ltx_lst_space"> </span>=<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">bar</span>(0<span class="ltx_text ltx_lst_identifier">f</span>);+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>27</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>a</span><span class='ltx_text ltx_lst_space'> </span>=<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>bar</span>(0<span class='ltx_text ltx_lst_identifier'>f</span>);
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">28</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">a</span><span class="ltx_text ltx_lst_space"> </span>=<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">bar</span>(0.0<span class="ltx_text ltx_lst_identifier">f</span>);+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>28</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>a</span><span class='ltx_text ltx_lst_space'> </span>=<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>bar</span>(0.0<span class='ltx_text ltx_lst_identifier'>f</span>);
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">29</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>29</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">30</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_keyword ltx_font_bold">return</span><span class="ltx_text ltx_lst_space"> </span>0;+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>30</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>return</span><span class='ltx_text ltx_lst_space'> </span>0;
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">31</span></span>}+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>31</span></span>}
 </div> </div>
 </div> </div>
 </figure> </figure>
-<div id="Thmtheorem19class="ltx_theorem ltx_theorem_theorem"+<div id='Thmtheorem19class='ltx_theorem ltx_theorem_theorem'
-<h6 class="ltx_title ltx_runin ltx_font_bold ltx_title_theorem">Exercise 19. </h6> +<h6 class='ltx_title ltx_runin ltx_font_bold ltx_title_theorem'>Exercise 19. </h6> 
-<div id="Thmtheorem19.p1class="ltx_para"+<div id='Thmtheorem19.p1class='ltx_para'
-<p class="ltx_p">How can you modify the above program in a way that allows the programmer by +<p class='ltx_p'>How can you modify the above program in a way that allows the programmer by 
-a simple define to switch the argument type of <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">foo</span> between float +a simple define to switch the argument type of <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>foo</span> between float 
-and double and all the calls to <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">foo</span> accordingly?</p>+and double and all the calls to <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>foo</span> accordingly?</p>
 </div> </div>
-<div id="Thmtheorem19.p2class="ltx_para"+<div id='Thmtheorem19.p2class='ltx_para'
-<p class="ltx_p">[<span class="ltx_text ltx_font_bold">Hint:</span> Use the <span class="ltx_text ltx_font_smallcaps">C</span> preprocessor to make the necessary modifications]</p>+<p class='ltx_p'>[<span class='ltx_text ltx_font_bold'>Hint:</span> Use the <span class='ltx_text ltx_font_smallcaps'>C</span> preprocessor to make the necessary modifications]</p>
 </div> </div>
 </div> </div>
 </section> </section>
-<section id="Ch3.S1.SS3class="ltx_subsection"+<section id='Ch3.S1.SS3class='ltx_subsection'
-<h5 class="ltx_title ltx_title_subsection"+<h5 class='ltx_title ltx_title_subsection'
-<span class="ltx_tag ltx_tag_subsection">3.1.3 </span>Subtyping</h5>+<span class='ltx_tag ltx_tag_subsection'>3.1.3 </span>Subtyping</h5>
  
-<div id="Ch3.S1.SS3.p1class="ltx_para"+<div id='Ch3.S1.SS3.p1class='ltx_para'
-<p class="ltx_p">For each basic type there is an entire hierarchy of array types+<p class='ltx_p'>For each basic type there is an entire hierarchy of array types
 that specify the shape of an array (remember that any expression that specify the shape of an array (remember that any expression
-in <span class="ltx_text ltx_font_smallcaps">SaC</span> denotes an array) at different levels of accurateness. +in <span class='ltx_text ltx_font_smallcaps'>SaC</span> denotes an array) at different levels of accurateness. 
-Using type <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_keyword ltx_font_bold">int</span> as a running example, <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_keyword ltx_font_bold">int</span>+Using type <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_keyword ltx_font_bold'>int</span> as a running example, <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_keyword ltx_font_bold'>int</span>
 itself denotes an integer array with rank zero, the empty itself denotes an integer array with rank zero, the empty
-vector <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting">[]</span> as shape vector and a single element,+vector <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>[]</span> as shape vector and a single element,
 in other words the equivalent of a scalar value. in other words the equivalent of a scalar value.
 Then, there are (real) array types denoting arrays of rank Then, there are (real) array types denoting arrays of rank
-greater than zero, e.g. <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting"><span class="ltx_text ltx_lst_keyword ltx_font_bold">int</span>[4]</span> denotes a 4-element +greater than zero, e.g. <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'><span class='ltx_text ltx_lst_keyword ltx_font_bold'>int</span>[4]</span> denotes a 4-element 
-vector while <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting"><span class="ltx_text ltx_lst_keyword ltx_font_bold">int</span>[10,20]</span> denotes a 10 by 20 element+vector while <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'><span class='ltx_text ltx_lst_keyword ltx_font_bold'>int</span>[10,20]</span> denotes a 10 by 20 element
 matrix.</p> matrix.</p>
 </div> </div>
-<div id="Ch3.S1.SS3.p2class="ltx_para"+<div id='Ch3.S1.SS3.p2class='ltx_para'
-<p class="ltx_p">Whereas all these types specify exact shapes, <span class="ltx_text ltx_font_smallcaps">SaC</span> also features+<p class='ltx_p'>Whereas all these types specify exact shapes, <span class='ltx_text ltx_font_smallcaps'>SaC</span> also features
 types that solely denote the rank of some array, but leave the types that solely denote the rank of some array, but leave the
-concrete shape open, e.g. <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting"><span class="ltx_text ltx_lst_keyword ltx_font_bold">int</span>[.]</span> describes the type +concrete shape open, e.g. <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'><span class='ltx_text ltx_lst_keyword ltx_font_bold'>int</span>[.]</span> describes the type 
-of all integer vectors (of any length) and <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting"><span class="ltx_text ltx_lst_keyword ltx_font_bold">int</span>[.,.]</span>+of all integer vectors (of any length) and <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'><span class='ltx_text ltx_lst_keyword ltx_font_bold'>int</span>[.,.]</span>
 is the type of all integer matrices. is the type of all integer matrices.
 In order to support rank-invariant programming, In order to support rank-invariant programming,
-<span class="ltx_text ltx_font_smallcaps">SaC</span>, furthermore, has types that not only abstract from concrete+<span class='ltx_text ltx_font_smallcaps'>SaC</span>, furthermore, has types that not only abstract from concrete
 shapes but even from concrete ranks. shapes but even from concrete ranks.
-These are <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting"><span class="ltx_text ltx_lst_keyword ltx_font_bold">int</span>[*]</span> which is the type of all integer arrays+These are <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'><span class='ltx_text ltx_lst_keyword ltx_font_bold'>int</span>[*]</span> which is the type of all integer arrays
 of any rank and shape, including rank-zero arrays (usually referred of any rank and shape, including rank-zero arrays (usually referred
-to as scalars) and <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting"><span class="ltx_text ltx_lst_keyword ltx_font_bold">int</span>[+]</span>, the type of all “true” integer+to as scalars) and <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'><span class='ltx_text ltx_lst_keyword ltx_font_bold'>int</span>[+]</span>, the type of all “true” integer
 arrays, i.e. arrays of rank greater than zero.</p> arrays, i.e. arrays of rank greater than zero.</p>
 </div> </div>
-<div id="Ch3.S1.SS3.p3class="ltx_para"+<div id='Ch3.S1.SS3.p3class='ltx_para'
-<p class="ltx_p"><span class="ltx_text ltx_font_smallcaps">SaC</span> defines a subtype relationship between array types in the obvious+<p class='ltx_p'><span class='ltx_text ltx_font_smallcaps'>SaC</span> defines a subtype relationship between array types in the obvious
 way. way.
-Figure <a href="#Ch3.F1title="Figure 3.1 ‣ 3.1.3 Subtyping ‣ 3.1 Lesson 3: Functions and their Types ‣ Chapter 3 Basic Program Structure ‣ Part I Trails Covering the Basics of SaCclass="ltx_ref"><span class="ltx_text ltx_ref_tag">3.1</span></a> shows this relationship for arrays of+Figure <a href='#Ch3.F1title='Figure 3.1 ‣ 3.1.3 Subtyping ‣ 3.1 Lesson 3: Functions and their Types ‣ Chapter 3 Basic Program Structure ‣ Part I Trails Covering the Basics of SaCclass='ltx_ref'><span class='ltx_text ltx_ref_tag'>3.1</span></a> shows this relationship for arrays of
 integer elements in a graphical form.</p> integer elements in a graphical form.</p>
 </div> </div>
-<figure id="Ch3.F1class="ltx_figure"><svg id="Ch3.F1.pic1class="ltx_picture ltx_centeringheight="144.08overflow="visibleversion="1.1" viewBox="-35.4 -12.98 449.02 144.08width="449.02"><g transform="matrix(1 0 0 -1 0 118.12)"><g stroke="#000000"><g fill="#000000"><g color="#000000stroke-width="0.4pt"><g transform="matrix(1 0 0 1 -28.02 115)"><g class="ltx_svg_fogtransform="matrix(1 0 0 -1 0 11.21)"><switch><foreignObject color="#000000height="100%overflow="visiblewidth="56.04"+<figure id='Ch3.F1class='ltx_figure'><svg id='Ch3.F1.pic1class='ltx_picture ltx_centeringheight='144.08overflow='visibleversion='1.1' viewbox='-35.4 -12.98 449.02 144.08width='449.02'><g transform='matrix(1 0 0 -1 0 118.12)'><g stroke='#000000'><g fill='#000000'><g color='#000000stroke-width='0.4pt'><g transform='matrix(1 0 0 1 -28.02 115)'><g class='ltx_svg_fogtransform='matrix(1 0 0 -1 0 11.21)'><switch><foreignobject color='#000000height='100%overflow='visiblewidth='56.04'
-<p class="ltx_p"><span class="ltx_text ltx_font_typewriterstyle="font-size:90%;">int[*]</span></p></foreignObject></switch></g></g><g transform="matrix(1 0 0 1 31.04 75.63)"><g class="ltx_svg_fogtransform="matrix(1 0 0 -1 0 11.21)"><switch><foreignObject color="#000000height="100%overflow="visiblewidth="56.04"+<p class='ltx_p'><span class='ltx_text ltx_font_typewriterstyle='font-size:90%;'>int[*]</span></p></foreignobject></switch></g></g><g transform='matrix(1 0 0 1 31.04 75.63)'><g class='ltx_svg_fogtransform='matrix(1 0 0 -1 0 11.21)'><switch><foreignobject color='#000000height='100%overflow='visiblewidth='56.04'
-<p class="ltx_p"><span class="ltx_text ltx_font_typewriterstyle="font-size:90%;">int[+]</span></p></foreignObject></switch></g></g><g transform="matrix(1 0 0 1 31.04 36.26)"><g class="ltx_svg_fogtransform="matrix(1 0 0 -1 0 11.21)"><switch><foreignObject color="#000000height="100%overflow="visiblewidth="56.04"+<p class='ltx_p'><span class='ltx_text ltx_font_typewriterstyle='font-size:90%;'>int[+]</span></p></foreignobject></switch></g></g><g transform='matrix(1 0 0 1 31.04 36.26)'><g class='ltx_svg_fogtransform='matrix(1 0 0 -1 0 11.21)'><switch><foreignobject color='#000000height='100%overflow='visiblewidth='56.04'
-<p class="ltx_p"><span class="ltx_text ltx_font_typewriterstyle="font-size:90%;">int[.]</span></p></foreignObject></switch></g></g><g transform="matrix(1 0 0 1 159.49 36.26)"><g class="ltx_svg_fogtransform="matrix(1 0 0 -1 0 11.21)"><switch><foreignObject color="#000000height="100%overflow="visiblewidth="74.72"+<p class='ltx_p'><span class='ltx_text ltx_font_typewriterstyle='font-size:90%;'>int[.]</span></p></foreignobject></switch></g></g><g transform='matrix(1 0 0 1 159.49 36.26)'><g class='ltx_svg_fogtransform='matrix(1 0 0 -1 0 11.21)'><switch><foreignobject color='#000000height='100%overflow='visiblewidth='74.72'
-<p class="ltx_p"><span class="ltx_text ltx_font_typewriterstyle="font-size:90%;">int[.,.]</span></p></foreignObject></switch></g></g><g transform="matrix(1 0 0 1 307.63 36.26)"><g class="ltx_svg_fogtransform="matrix(1 0 0 -1 0 11.21)"><switch><foreignObject color="#000000height="100%overflow="visiblewidth="93.4"+<p class='ltx_p'><span class='ltx_text ltx_font_typewriterstyle='font-size:90%;'>int[.,.]</span></p></foreignobject></switch></g></g><g transform='matrix(1 0 0 1 307.63 36.26)'><g class='ltx_svg_fogtransform='matrix(1 0 0 -1 0 11.21)'><switch><foreignobject color='#000000height='100%overflow='visiblewidth='93.4'
-<p class="ltx_p"><span class="ltx_text ltx_font_typewriterstyle="font-size:90%;">int[.,.,.]</span></p></foreignObject></switch></g></g><g transform="matrix(1 0 0 1 392.97 36.26)"><g class="ltx_svg_fogtransform="matrix(1 0 0 -1 0 11.21)"><switch><foreignObject color="#000000height="100%overflow="visiblewidth="9.34"+<p class='ltx_p'><span class='ltx_text ltx_font_typewriterstyle='font-size:90%;'>int[.,.,.]</span></p></foreignobject></switch></g></g><g transform='matrix(1 0 0 1 392.97 36.26)'><g class='ltx_svg_fogtransform='matrix(1 0 0 -1 0 11.21)'><switch><foreignobject color='#000000height='100%overflow='visiblewidth='9.34'
-<p class="ltx_p"><math id="Ch3.F1.pic1.m1class="ltx_Mathalttext="\cdotsdisplay="inline"><mi mathsize="90%mathvariant="normal">⋯</mi></math></p></foreignObject></switch></g></g><g transform="matrix(1 0 0 1 31.04 -3.11)"><g class="ltx_svg_fogtransform="matrix(1 0 0 -1 0 11.21)"><switch><foreignObject color="#000000height="100%overflow="visiblewidth="56.04"+<p class='ltx_p'><math id='Ch3.F1.pic1.m1class='ltx_Mathalttext='\cdotsdisplay='inline'><mi mathsize='90%mathvariant='normal'>⋯</mi></math></p></foreignobject></switch></g></g><g transform='matrix(1 0 0 1 31.04 -3.11)'><g class='ltx_svg_fogtransform='matrix(1 0 0 -1 0 11.21)'><switch><foreignobject color='#000000height='100%overflow='visiblewidth='56.04'
-<p class="ltx_p"><span class="ltx_text ltx_font_typewriterstyle="font-size:90%;">int[1]</span></p></foreignObject></switch></g></g><g transform="matrix(1 0 0 1 78.28 -3.11)"><g class="ltx_svg_fogtransform="matrix(1 0 0 -1 0 11.21)"><switch><foreignObject color="#000000height="100%overflow="visiblewidth="56.04"+<p class='ltx_p'><span class='ltx_text ltx_font_typewriterstyle='font-size:90%;'>int[1]</span></p></foreignobject></switch></g></g><g transform='matrix(1 0 0 1 78.28 -3.11)'><g class='ltx_svg_fogtransform='matrix(1 0 0 -1 0 11.21)'><switch><foreignobject color='#000000height='100%overflow='visiblewidth='56.04'
-<p class="ltx_p"><span class="ltx_text ltx_font_typewriterstyle="font-size:90%;">int[4]</span></p></foreignObject></switch></g></g><g transform="matrix(1 0 0 1 133.13 -3.11)"><g class="ltx_svg_fogtransform="matrix(1 0 0 -1 0 11.21)"><switch><foreignObject color="#000000height="100%overflow="visiblewidth="9.34"+<p class='ltx_p'><span class='ltx_text ltx_font_typewriterstyle='font-size:90%;'>int[4]</span></p></foreignobject></switch></g></g><g transform='matrix(1 0 0 1 133.13 -3.11)'><g class='ltx_svg_fogtransform='matrix(1 0 0 -1 0 11.21)'><switch><foreignobject color='#000000height='100%overflow='visiblewidth='9.34'
-<p class="ltx_p"><math id="Ch3.F1.pic1.m2class="ltx_Mathalttext="\cdotsdisplay="inline"><mi mathsize="90%mathvariant="normal">⋯</mi></math></p></foreignObject></switch></g></g><g transform="matrix(1 0 0 1 159.49 -3.11)"><g class="ltx_svg_fogtransform="matrix(1 0 0 -1 0 11.21)"><switch><foreignObject color="#000000height="100%overflow="visiblewidth="74.72"+<p class='ltx_p'><math id='Ch3.F1.pic1.m2class='ltx_Mathalttext='\cdotsdisplay='inline'><mi mathsize='90%mathvariant='normal'>⋯</mi></math></p></foreignobject></switch></g></g><g transform='matrix(1 0 0 1 159.49 -3.11)'><g class='ltx_svg_fogtransform='matrix(1 0 0 -1 0 11.21)'><switch><foreignobject color='#000000height='100%overflow='visiblewidth='74.72'
-<p class="ltx_p"><span class="ltx_text ltx_font_typewriterstyle="font-size:90%;">int[7,2]</span></p></foreignObject></switch></g></g><g transform="matrix(1 0 0 1 218.55 -3.11)"><g class="ltx_svg_fogtransform="matrix(1 0 0 -1 0 11.21)"><switch><foreignObject color="#000000height="100%overflow="visiblewidth="74.72"+<p class='ltx_p'><span class='ltx_text ltx_font_typewriterstyle='font-size:90%;'>int[7,2]</span></p></foreignobject></switch></g></g><g transform='matrix(1 0 0 1 218.55 -3.11)'><g class='ltx_svg_fogtransform='matrix(1 0 0 -1 0 11.21)'><switch><foreignobject color='#000000height='100%overflow='visiblewidth='74.72'
-<p class="ltx_p"><span class="ltx_text ltx_font_typewriterstyle="font-size:90%;">int[2,9]</span></p></foreignObject></switch></g></g><g transform="matrix(1 0 0 1 286.67 -3.11)"><g class="ltx_svg_fogtransform="matrix(1 0 0 -1 0 11.21)"><switch><foreignObject color="#000000height="100%overflow="visiblewidth="9.34"+<p class='ltx_p'><span class='ltx_text ltx_font_typewriterstyle='font-size:90%;'>int[2,9]</span></p></foreignobject></switch></g></g><g transform='matrix(1 0 0 1 286.67 -3.11)'><g class='ltx_svg_fogtransform='matrix(1 0 0 -1 0 11.21)'><switch><foreignobject color='#000000height='100%overflow='visiblewidth='9.34'
-<p class="ltx_p"><math id="Ch3.F1.pic1.m3class="ltx_Mathalttext="\cdotsdisplay="inline"><mi mathsize="90%mathvariant="normal">⋯</mi></math></p></foreignObject></switch></g></g><g transform="matrix(1 0 0 1 302.96 -3.11)"><g class="ltx_svg_fogtransform="matrix(1 0 0 -1 0 11.21)"><switch><foreignObject color="#000000height="100%overflow="visiblewidth="102.74"+<p class='ltx_p'><math id='Ch3.F1.pic1.m3class='ltx_Mathalttext='\cdotsdisplay='inline'><mi mathsize='90%mathvariant='normal'>⋯</mi></math></p></foreignobject></switch></g></g><g transform='matrix(1 0 0 1 302.96 -3.11)'><g class='ltx_svg_fogtransform='matrix(1 0 0 -1 0 11.21)'><switch><foreignobject color='#000000height='100%overflow='visiblewidth='102.74'
-<p class="ltx_p"><span class="ltx_text ltx_font_typewriterstyle="font-size:90%;">int[9,8,11]</span></p></foreignObject></switch></g></g><g transform="matrix(1 0 0 1 396.9 -3.11)"><g class="ltx_svg_fogtransform="matrix(1 0 0 -1 0 11.21)"><switch><foreignObject color="#000000height="100%overflow="visiblewidth="9.34"+<p class='ltx_p'><span class='ltx_text ltx_font_typewriterstyle='font-size:90%;'>int[9,8,11]</span></p></foreignobject></switch></g></g><g transform='matrix(1 0 0 1 396.9 -3.11)'><g class='ltx_svg_fogtransform='matrix(1 0 0 -1 0 11.21)'><switch><foreignobject color='#000000height='100%overflow='visiblewidth='9.34'
-<p class="ltx_p"><math id="Ch3.F1.pic1.m4class="ltx_Mathalttext="\cdotsdisplay="inline"><mi mathsize="90%mathvariant="normal">⋯</mi></math></p></foreignObject></switch></g></g><g transform="matrix(1 0 0 1 -14.01 -3.11)"><g class="ltx_svg_fogtransform="matrix(1 0 0 -1 0 11.21)"><switch><foreignObject color="#000000height="100%overflow="visiblewidth="28.02"+<p class='ltx_p'><math id='Ch3.F1.pic1.m4class='ltx_Mathalttext='\cdotsdisplay='inline'><mi mathsize='90%mathvariant='normal'>⋯</mi></math></p></foreignobject></switch></g></g><g transform='matrix(1 0 0 1 -14.01 -3.11)'><g class='ltx_svg_fogtransform='matrix(1 0 0 -1 0 11.21)'><switch><foreignobject color='#000000height='100%overflow='visiblewidth='28.02'
-<p class="ltx_p"><span class="ltx_text ltx_font_typewriterstyle="font-size:90%;">int</span></p></foreignObject></switch></g></g><path d="M 0 107.62 L 0 10.49style="fill:none"></path><path d="M 15.74 107.62 L 43.32 89.23style="fill:none"></path><path d="M 59.06 68.25 L 59.06 49.86style="fill:none"></path><path d="M 91.96 69.34 L 160.13 49.86style="fill:none"></path><path d="M 91.96 74.35 L 302.74 46.25style="fill:none"></path><path d="M 59.06 28.88 L 59.06 10.49style="fill:none"></path><path d="M 71.65 28.88 L 93.71 10.49style="fill:none"></path><path d="M 196.85 28.88 L 196.85 10.49style="fill:none"></path><path d="M 212.59 28.88 L 240.17 10.49style="fill:none"></path><path d="M 354.33 28.88 L 354.33 10.49style="fill:none"></path></g></g></g></g></svg> +<p class='ltx_p'><span class='ltx_text ltx_font_typewriterstyle='font-size:90%;'>int</span></p></foreignobject></switch></g></g><path d='M 0 107.62 L 0 10.49style='fill:none'></path><path d='M 15.74 107.62 L 43.32 89.23style='fill:none'></path><path d='M 59.06 68.25 L 59.06 49.86style='fill:none'></path><path d='M 91.96 69.34 L 160.13 49.86style='fill:none'></path><path d='M 91.96 74.35 L 302.74 46.25style='fill:none'></path><path d='M 59.06 28.88 L 59.06 10.49style='fill:none'></path><path d='M 71.65 28.88 L 93.71 10.49style='fill:none'></path><path d='M 196.85 28.88 L 196.85 10.49style='fill:none'></path><path d='M 212.59 28.88 L 240.17 10.49style='fill:none'></path><path d='M 354.33 28.88 L 354.33 10.49style='fill:none'></path></g></g></g></g></svg> 
-<figcaption class="ltx_caption ltx_centering"><span class="ltx_tag ltx_tag_figure">Figure 3.1: </span>The hierarchy of array types of integer elements.</figcaption>+<figcaption class='ltx_caption ltx_centering'><span class='ltx_tag ltx_tag_figure'>Figure 3.1: </span>The hierarchy of array types of integer elements.</figcaption>
 </figure> </figure>
-<div id="Ch3.S1.SS3.p4class="ltx_para"+<div id='Ch3.S1.SS3.p4class='ltx_para'
-<p class="ltx_p">Whenever two types are in subtype relationship they are connected by a line. +<p class='ltx_p'>Whenever two types are in subtype relationship they are connected by a line. 
-For example, <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting"><span class="ltx_text ltx_lst_keyword ltx_font_bold">int</span>[+]</span> is a subtype of <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting"><span class="ltx_text ltx_lst_keyword ltx_font_bold">int</span>[*]</span>, +For example, <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'><span class='ltx_text ltx_lst_keyword ltx_font_bold'>int</span>[+]</span> is a subtype of <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'><span class='ltx_text ltx_lst_keyword ltx_font_bold'>int</span>[*]</span>, 
-<span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting"><span class="ltx_text ltx_lst_keyword ltx_font_bold">int</span>[.]</span> and <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting"><span class="ltx_text ltx_lst_keyword ltx_font_bold">int</span>[.,.]</span> are both subtypes of <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting"><span class="ltx_text ltx_lst_keyword ltx_font_bold">int</span>[+]</span> +<span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'><span class='ltx_text ltx_lst_keyword ltx_font_bold'>int</span>[.]</span> and <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'><span class='ltx_text ltx_lst_keyword ltx_font_bold'>int</span>[.,.]</span> are both subtypes of <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'><span class='ltx_text ltx_lst_keyword ltx_font_bold'>int</span>[+]</span> 
-and <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting"><span class="ltx_text ltx_lst_keyword ltx_font_bold">int</span>[12]</span> and <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting"><span class="ltx_text ltx_lst_keyword ltx_font_bold">int</span>[42]</span> are subtypes of <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting"><span class="ltx_text ltx_lst_keyword ltx_font_bold">int</span>[.]</span>+and <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'><span class='ltx_text ltx_lst_keyword ltx_font_bold'>int</span>[12]</span> and <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'><span class='ltx_text ltx_lst_keyword ltx_font_bold'>int</span>[42]</span> are subtypes of <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'><span class='ltx_text ltx_lst_keyword ltx_font_bold'>int</span>[.]</span>
-As we can see, the subtyping hierarchy of <span class="ltx_text ltx_font_smallcaps">SaC</span> has exactly four levels.</p>+As we can see, the subtyping hierarchy of <span class='ltx_text ltx_font_smallcaps'>SaC</span> has exactly four levels.</p>
 </div> </div>
 </section> </section>
-<section id="Ch3.S1.SS4class="ltx_subsection"+<section id='Ch3.S1.SS4class='ltx_subsection'
-<h5 class="ltx_title ltx_title_subsection"+<h5 class='ltx_title ltx_title_subsection'
-<span class="ltx_tag ltx_tag_subsection">3.1.4 </span>Function Overloading</h5>+<span class='ltx_tag ltx_tag_subsection'>3.1.4 </span>Function Overloading</h5>
  
-<div id="Ch3.S1.SS4.p1class="ltx_para"+<div id='Ch3.S1.SS4.p1class='ltx_para'
-<p class="ltx_p">The real power of subtyping unfolds when it is combined with function+<p class='ltx_p'>The real power of subtyping unfolds when it is combined with function
 overloading. overloading.
 It allows programmers to specify It allows programmers to specify
Line 3208: Line 3807:
 later add special definitions for a few special cases.</p> later add special definitions for a few special cases.</p>
 </div> </div>
-<div id="Ch3.S1.SS4.p2class="ltx_para"+<div id='Ch3.S1.SS4.p2class='ltx_para'
-<p class="ltx_p ltx_align_center">+<p class='ltx_p ltx_align_center'>
  
-<span class="ltx_inline-block ltx_minipage ltx_align_middle ltx_framed_rectanglestyle="width:390.3pt;"+<span class='ltx_inline-block ltx_minipage ltx_align_middle ltx_framed_rectanglestyle='width:390.3pt;'
-<span class="ltx_p"><span class="ltx_text ltx_font_bold">A note for OO-freaks:</span></span> +<span class='ltx_p'><span class='ltx_text ltx_font_bold'>A note for OO-freaks:</span></span> 
-<span class="ltx_p"><span class="ltx_text ltx_font_italic">This can be seen as a more general form of inheritance. If you restrict+<span class='ltx_p'><span class='ltx_text ltx_font_italic'>This can be seen as a more general form of inheritance. If you restrict
 overloading to one argument only, say the first one, it equates overloading to one argument only, say the first one, it equates
-to inheritance in OO languages. However, the overloading of <span class="ltx_text ltx_font_smallcaps">SaC</span> is much more powerful. +to inheritance in OO languages. However, the overloading of <span class='ltx_text ltx_font_smallcaps'>SaC</span> is much more powerful. 
-Not only does it support inheritance on </span><span class="ltx_text ltx_font_bold">all</span><span class="ltx_text ltx_font_italic"> arguments but it also+Not only does it support inheritance on </span><span class='ltx_text ltx_font_bold'>all</span><span class='ltx_text ltx_font_italic'> arguments but it also
 supports overloading across different types. supports overloading across different types.
 These features render several of the well-known OO programming pattern These features render several of the well-known OO programming pattern
-such as the visitor pattern superfluous in <span class="ltx_text ltx_font_smallcaps">SaC</span>.+such as the visitor pattern superfluous in <span class='ltx_text ltx_font_smallcaps'>SaC</span>.
 Instead, the desired overloading can be specified directly. Instead, the desired overloading can be specified directly.
 </span></span> </span></span>
Line 3225: Line 3824:
 </p> </p>
 </div> </div>
-<div id="Ch3.S1.SS4.p3class="ltx_para"+<div id='Ch3.S1.SS4.p3class='ltx_para'
-<p class="ltx_p">Here, an example for element-type overloading:</p>+<p class='ltx_p'>Here, an example for element-type overloading:</p>
 </div> </div>
-<figure id="LST23class="ltx_float ltx_lstlisting ltx_role_listing"+<figure id='LST23class='ltx_float ltx_lstlisting ltx_role_listing'
-<figcaption class="ltx_caption"><span class="ltx_tag ltx_tag_float">Listing 23: </span>Function overloading</figcaption> +<figcaption class='ltx_caption'><span class='ltx_tag ltx_tag_float'>Listing 23: </span>Function overloading</figcaption> 
-<div class="ltx_listing ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_listing"+<div class='ltx_listing ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_listing'
-<div class="ltx_listing_data"><a href="data:text/plain;base64,dXNlIFNjYWxhckFyaXRoOiBhbGw7CnVzZSBTdGRJTzogYWxsOwoKaW50IHR3aWNlKGludCB4KQp7%0ACiAgcmV0dXJuIDIgKiB4Owp9Cgpkb3VibGUgdHdpY2UoZG91YmxlIHgpCnsKICByZXR1cm4gMi4w%0AICogeDsKfQoKaW50IG1haW4oKQp7CiAgYSA9IHR3aWNlKDUpOwogIHByaW50KGEpOwoKICBiID0g%0AdHdpY2UoNS45KTsKICBwcmludChiKTsKCiAgcmV0dXJuIDA7Cn0=%0A">⬇</a></div> +<div class='ltx_listing_data'><a href='data:text/plain;base64,dXNlIFNjYWxhckFyaXRoOiBhbGw7CnVzZSBTdGRJTzogYWxsOwoKaW50IHR3aWNlKGludCB4KQp7%0ACiAgcmV0dXJuIDIgKiB4Owp9Cgpkb3VibGUgdHdpY2UoZG91YmxlIHgpCnsKICByZXR1cm4gMi4w%0AICogeDsKfQoKaW50IG1haW4oKQp7CiAgYSA9IHR3aWNlKDUpOwogIHByaW50KGEpOwoKICBiID0g%0AdHdpY2UoNS45KTsKICBwcmludChiKTsKCiAgcmV0dXJuIDA7Cn0=%0A'>⬇</a></div> 
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">1</span></span><span class="ltx_text ltx_lst_keyword ltx_font_bold">use</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">ScalarArith</span>:<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">all</span>;+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>1</span></span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>use</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>ScalarArith</span>:<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>all</span>;
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">2</span></span><span class="ltx_text ltx_lst_keyword ltx_font_bold">use</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">StdIO</span>:<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">all</span>;+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>2</span></span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>use</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>StdIO</span>:<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>all</span>;
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">3</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>3</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">4</span></span><span class="ltx_text ltx_lst_keyword ltx_font_bold">int</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">twice</span>(<span class="ltx_text ltx_lst_keyword ltx_font_bold">int</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">x</span>)+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>4</span></span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>int</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>twice</span>(<span class='ltx_text ltx_lst_keyword ltx_font_bold'>int</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>x</span>)
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">5</span></span>{+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>5</span></span>{
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">6</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_keyword ltx_font_bold">return</span><span class="ltx_text ltx_lst_space"> </span>2<span class="ltx_text ltx_lst_space"> </span>*<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">x</span>;+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>6</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>return</span><span class='ltx_text ltx_lst_space'> </span>2<span class='ltx_text ltx_lst_space'> </span>*<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>x</span>;
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">7</span></span>}+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>7</span></span>}
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">8</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>8</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">9</span></span><span class="ltx_text ltx_lst_keyword ltx_font_bold">double</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">twice</span>(<span class="ltx_text ltx_lst_keyword ltx_font_bold">double</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">x</span>)+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>9</span></span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>double</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>twice</span>(<span class='ltx_text ltx_lst_keyword ltx_font_bold'>double</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>x</span>)
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">10</span></span>{+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>10</span></span>{
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">11</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_keyword ltx_font_bold">return</span><span class="ltx_text ltx_lst_space"> </span>2.0<span class="ltx_text ltx_lst_space"> </span>*<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">x</span>;+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>11</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>return</span><span class='ltx_text ltx_lst_space'> </span>2.0<span class='ltx_text ltx_lst_space'> </span>*<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>x</span>;
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">12</span></span>}+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>12</span></span>}
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">13</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>13</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">14</span></span><span class="ltx_text ltx_lst_keyword ltx_font_bold">int</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">main</span>()+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>14</span></span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>int</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>main</span>()
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">15</span></span>{+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>15</span></span>{
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">16</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">a</span><span class="ltx_text ltx_lst_space"> </span>=<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">twice</span>(5);+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>16</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>a</span><span class='ltx_text ltx_lst_space'> </span>=<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>twice</span>(5);
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">17</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">print</span>(<span class="ltx_text ltx_lst_identifier">a</span>);+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>17</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>print</span>(<span class='ltx_text ltx_lst_identifier'>a</span>);
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">18</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>18</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">19</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">b</span><span class="ltx_text ltx_lst_space"> </span>=<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">twice</span>(5.9);+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>19</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>b</span><span class='ltx_text ltx_lst_space'> </span>=<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>twice</span>(5.9);
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">20</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">print</span>(<span class="ltx_text ltx_lst_identifier">b</span>);+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>20</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>print</span>(<span class='ltx_text ltx_lst_identifier'>b</span>);
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">21</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>21</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">22</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_keyword ltx_font_bold">return</span><span class="ltx_text ltx_lst_space"> </span>0;+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>22</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>return</span><span class='ltx_text ltx_lst_space'> </span>0;
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">23</span></span>}+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>23</span></span>}
 </div> </div>
 </div> </div>
 </figure> </figure>
-<div id="Ch3.S1.SS4.p4class="ltx_para"+<div id='Ch3.S1.SS4.p4class='ltx_para'
-<p class="ltx_p">When utilising the overloading on our hierarchy of array types+<p class='ltx_p'>When utilising the overloading on our hierarchy of array types
 we can even achieve a pattern matching like programming style as we can even achieve a pattern matching like programming style as
 demonstrated in the next example. demonstrated in the next example.
-Here, we have three instances of the function <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">quicksort</span>,+Here, we have three instances of the function <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>quicksort</span>,
 one for vectors of any length, one for vectors of length one one for vectors of any length, one for vectors of length one
 and one for empty vectors. and one for empty vectors.
 The latter two boil down to the identity function. The latter two boil down to the identity function.
 As a result we can safely access the first element of the argument As a result we can safely access the first element of the argument
-vector <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">v</span> in the general instance because any argument vector+vector <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>v</span> in the general instance because any argument vector
 is guaranteed to have at least two elements.</p> is guaranteed to have at least two elements.</p>
 </div> </div>
-<figure id="LST24class="ltx_float ltx_lstlisting ltx_role_listing"+<figure id='LST24class='ltx_float ltx_lstlisting ltx_role_listing'
-<figcaption class="ltx_caption"><span class="ltx_tag ltx_tag_float">Listing 24: </span>Overloading as pattern matching.</figcaption> +<figcaption class='ltx_caption'><span class='ltx_tag ltx_tag_float'>Listing 24: </span>Overloading as pattern matching.</figcaption> 
-<div class="ltx_listing ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_listing"+<div class='ltx_listing ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_listing'
-<div class="ltx_listing_data"><a href="data:text/plain;base64,aW50Wy5dIHF1aWNrc29ydChpbnRbLl0gdikKewogICBwaXZvdCA9IHZbWzFdXTsKICAgLyogLi4u%0AICAqLwp9CgppbnRbMV0gcXVpY2tzb3J0KGludFsxXSB2KQp7CiAgcmV0dXJuIHY7Cn0KCmludFsw%0AXSBxdWlja3NvcnQoaW50WzBdIHYpCnsKICByZXR1cm4gdjsKfQ==%0A">⬇</a></div> +<div class='ltx_listing_data'><a href='data:text/plain;base64,aW50Wy5dIHF1aWNrc29ydChpbnRbLl0gdikKewogICBwaXZvdCA9IHZbWzFdXTsKICAgLyogLi4u%0AICAqLwp9CgppbnRbMV0gcXVpY2tzb3J0KGludFsxXSB2KQp7CiAgcmV0dXJuIHY7Cn0KCmludFsw%0AXSBxdWlja3NvcnQoaW50WzBdIHYpCnsKICByZXR1cm4gdjsKfQ==%0A'>⬇</a></div> 
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">1</span></span><span class="ltx_text ltx_lst_keyword ltx_font_bold">int</span>[.]<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">quicksort</span>(<span class="ltx_text ltx_lst_keyword ltx_font_bold">int</span>[.]<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">v</span>)+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>1</span></span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>int</span>[.]<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>quicksort</span>(<span class='ltx_text ltx_lst_keyword ltx_font_bold'>int</span>[.]<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>v</span>)
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">2</span></span>{+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>2</span></span>{
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">3</span></span><span class="ltx_text ltx_lst_space">   </span><span class="ltx_text ltx_lst_identifier">pivot</span><span class="ltx_text ltx_lst_space"> </span>=<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">v</span>[[1]];+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>3</span></span><span class='ltx_text ltx_lst_space'>   </span><span class='ltx_text ltx_lst_identifier'>pivot</span><span class='ltx_text ltx_lst_space'> </span>=<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>v</span>[[1]];
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">4</span></span><span class="ltx_text ltx_lst_space">   </span><span class="ltx_text ltx_lst_comment ltx_font_italic">/*<span class="ltx_text ltx_lst_space"> </span>…<span class="ltx_text ltx_lst_space">  </span>*/</span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>4</span></span><span class='ltx_text ltx_lst_space'>   </span><span class='ltx_text ltx_lst_comment ltx_font_italic'>/*<span class='ltx_text ltx_lst_space'> </span>…<span class='ltx_text ltx_lst_space'>  </span>*/</span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">5</span></span>}+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>5</span></span>}
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">6</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>6</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">7</span></span><span class="ltx_text ltx_lst_keyword ltx_font_bold">int</span>[1]<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">quicksort</span>(<span class="ltx_text ltx_lst_keyword ltx_font_bold">int</span>[1]<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">v</span>)+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>7</span></span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>int</span>[1]<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>quicksort</span>(<span class='ltx_text ltx_lst_keyword ltx_font_bold'>int</span>[1]<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>v</span>)
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">8</span></span>{+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>8</span></span>{
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">9</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_keyword ltx_font_bold">return</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">v</span>;+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>9</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>return</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>v</span>;
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">10</span></span>}+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>10</span></span>}
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">11</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>11</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">12</span></span><span class="ltx_text ltx_lst_keyword ltx_font_bold">int</span>[0]<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">quicksort</span>(<span class="ltx_text ltx_lst_keyword ltx_font_bold">int</span>[0]<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">v</span>)+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>12</span></span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>int</span>[0]<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>quicksort</span>(<span class='ltx_text ltx_lst_keyword ltx_font_bold'>int</span>[0]<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>v</span>)
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">13</span></span>{+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>13</span></span>{
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">14</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_keyword ltx_font_bold">return</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">v</span>;+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>14</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>return</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>v</span>;
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">15</span></span>}+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>15</span></span>}
 </div> </div>
 </div> </div>
 </figure> </figure>
-<div id="Thmtheorem20class="ltx_theorem ltx_theorem_theorem"+<div id='Thmtheorem20class='ltx_theorem ltx_theorem_theorem'
-<h6 class="ltx_title ltx_runin ltx_font_bold ltx_title_theorem">Exercise 20. </h6> +<h6 class='ltx_title ltx_runin ltx_font_bold ltx_title_theorem'>Exercise 20. </h6> 
-<div id="Thmtheorem20.p1class="ltx_para"+<div id='Thmtheorem20.p1class='ltx_para'
-<p class="ltx_p">In a <span class="ltx_text ltx_font_smallcaps">C</span> program, functions like <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting">+</span> can be applied to arbitrary+<p class='ltx_p'>In a <span class='ltx_text ltx_font_smallcaps'>C</span> program, functions like <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>+</span> can be applied to arbitrary
 combinations of integer and double arguments. combinations of integer and double arguments.
-Try to mimic that behaviour in <span class="ltx_text ltx_font_smallcaps">SaC</span> by defining a function <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">cPlus</span>+Try to mimic that behaviour in <span class='ltx_text ltx_font_smallcaps'>SaC</span> by defining a function <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>cPlus</span>
 and by overloading it appropriately.</p> and by overloading it appropriately.</p>
 </div> </div>
 </div> </div>
-<div id="Thmtheorem21class="ltx_theorem ltx_theorem_theorem"+<div id='Thmtheorem21class='ltx_theorem ltx_theorem_theorem'
-<h6 class="ltx_title ltx_runin ltx_font_bold ltx_title_theorem">Exercise 21. </h6> +<h6 class='ltx_title ltx_runin ltx_font_bold ltx_title_theorem'>Exercise 21. </h6> 
-<div id="Thmtheorem21.p1class="ltx_para"+<div id='Thmtheorem21.p1class='ltx_para'
-<p class="ltx_p">In OO languages inheritance cannot always be statically resolved.+<p class='ltx_p'>In OO languages inheritance cannot always be statically resolved.
 This leads to what is referred to as dynamic dispatch, i.e. the disambiguation This leads to what is referred to as dynamic dispatch, i.e. the disambiguation
 of function calls at runtime. of function calls at runtime.
-Is that required in <span class="ltx_text ltx_font_smallcaps">SaC</span> too?+Is that required in <span class='ltx_text ltx_font_smallcaps'>SaC</span> too?
 If so, can you come up with an example program that demonstrates this?</p> If so, can you come up with an example program that demonstrates this?</p>
 </div> </div>
Line 3387: Line 3986:
 </section> </section>
 </section> </section>
-<section id="Ch3.S2class="ltx_section"+<section id='Ch3.S2class='ltx_section'
-<h4 class="ltx_title ltx_title_section"+<h4 class='ltx_title ltx_title_section'
-<span class="ltx_tag ltx_tag_section">3.2 </span>Lesson 4: Function Bodies</h4>+<span class='ltx_tag ltx_tag_section'>3.2 </span>Lesson 4: Function Bodies</h4>
  
-<section id="Ch3.S2.SS1class="ltx_subsection"+<section id='Ch3.S2.SS1class='ltx_subsection'
-<h5 class="ltx_title ltx_title_subsection"+<h5 class='ltx_title ltx_title_subsection'
-<span class="ltx_tag ltx_tag_subsection">3.2.1 </span>Variable Declarations</h5>+<span class='ltx_tag ltx_tag_subsection'>3.2.1 </span>Variable Declarations</h5>
  
-<div id="Ch3.S2.SS1.p1class="ltx_para"+<div id='Ch3.S2.SS1.p1class='ltx_para'
-<p class="ltx_p">Local variables within bodies of <span class="ltx_text ltx_font_smallcaps">SaC</span> functions are typically not +<p class='ltx_p'>Local variables within bodies of <span class='ltx_text ltx_font_smallcaps'>SaC</span> functions are typically not 
-declared (in contrast to <span class="ltx_text ltx_font_smallcaps">C</span>), but the <span class="ltx_text ltx_font_smallcaps">SaC</span> compiler infers proper+declared (in contrast to <span class='ltx_text ltx_font_smallcaps'>C</span>), but the <span class='ltx_text ltx_font_smallcaps'>SaC</span> compiler infers proper
 types for local variables or yields an appropriate error message. types for local variables or yields an appropriate error message.
 Nevertheless, it is syntactically legal to add explicit variable Nevertheless, it is syntactically legal to add explicit variable
-declarations in <span class="ltx_text ltx_font_smallcaps">SaC</span> in exactly the same way as in <span class="ltx_text ltx_font_smallcaps">C</span>.</p>+declarations in <span class='ltx_text ltx_font_smallcaps'>SaC</span> in exactly the same way as in <span class='ltx_text ltx_font_smallcaps'>C</span>.</p>
 </div> </div>
-<div id="Ch3.S2.SS1.p2class="ltx_para"+<div id='Ch3.S2.SS1.p2class='ltx_para'
-<p class="ltx_p">There is one difference to <span class="ltx_text ltx_font_smallcaps">C</span>, however: While <span class="ltx_text ltx_font_smallcaps">C</span> allows local+<p class='ltx_p'>There is one difference to <span class='ltx_text ltx_font_smallcaps'>C</span>, however: While <span class='ltx_text ltx_font_smallcaps'>C</span> allows local
 variable declarations at the beginning of each code block and variable declarations at the beginning of each code block and
 in the latest C99 standard instructions and declarations can in the latest C99 standard instructions and declarations can
-even be interleaved, <span class="ltx_text ltx_font_smallcaps">SaC</span> only supports variable declarations on+even be interleaved, <span class='ltx_text ltx_font_smallcaps'>SaC</span> only supports variable declarations on
 the level of function bodies, and they must precede any instruction.</p> the level of function bodies, and they must precede any instruction.</p>
 </div> </div>
-<div id="Thmtheorem22class="ltx_theorem ltx_theorem_theorem"+<div id='Thmtheorem22class='ltx_theorem ltx_theorem_theorem'
-<h6 class="ltx_title ltx_runin ltx_font_bold ltx_title_theorem">Exercise 22. </h6> +<h6 class='ltx_title ltx_runin ltx_font_bold ltx_title_theorem'>Exercise 22. </h6> 
-<div id="Thmtheorem22.p1class="ltx_para"+<div id='Thmtheorem22.p1class='ltx_para'
-<p class="ltx_p">Rewrite your solution to computing the greatest common denominator+<p class='ltx_p'>Rewrite your solution to computing the greatest common denominator
 of two numbers from the previous exercise such that each subexpression of two numbers from the previous exercise such that each subexpression
 is assigned to an identifier, i.e. flatten any nested expression. is assigned to an identifier, i.e. flatten any nested expression.
Line 3419: Line 4018:
 </div> </div>
 </div> </div>
-<div id="Thmtheorem23class="ltx_theorem ltx_theorem_theorem"+<div id='Thmtheorem23class='ltx_theorem ltx_theorem_theorem'
-<h6 class="ltx_title ltx_runin ltx_font_bold ltx_title_theorem">Exercise 23. </h6> +<h6 class='ltx_title ltx_runin ltx_font_bold ltx_title_theorem'>Exercise 23. </h6> 
-<div id="Thmtheorem23.p1class="ltx_para"+<div id='Thmtheorem23.p1class='ltx_para'
-<p class="ltx_p">The previous exercise only used scalar types, more precisely <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_keyword ltx_font_bold">int</span>+<p class='ltx_p'>The previous exercise only used scalar types, more precisely <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_keyword ltx_font_bold'>int</span>
-What happens if you replace <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_keyword ltx_font_bold">int</span> in all variable declarations +What happens if you replace <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_keyword ltx_font_bold'>int</span> in all variable declarations 
-by its supertype <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting"><span class="ltx_text ltx_lst_keyword ltx_font_bold">int</span>[*]</span>?</p>+by its supertype <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'><span class='ltx_text ltx_lst_keyword ltx_font_bold'>int</span>[*]</span>?</p>
 </div> </div>
 </div> </div>
 </section> </section>
-<section id="Ch3.S2.SS2class="ltx_subsection"+<section id='Ch3.S2.SS2class='ltx_subsection'
-<h5 class="ltx_title ltx_title_subsection"+<h5 class='ltx_title ltx_title_subsection'
-<span class="ltx_tag ltx_tag_subsection">3.2.2 </span>Assignments</h5>+<span class='ltx_tag ltx_tag_subsection'>3.2.2 </span>Assignments</h5>
  
-<div id="Ch3.S2.SS2.p1class="ltx_para"+<div id='Ch3.S2.SS2.p1class='ltx_para'
-<p class="ltx_p">As we have already seen in the previous trails, <span class="ltx_text ltx_font_smallcaps">SaC</span> allows for +<p class='ltx_p'>As we have already seen in the previous trails, <span class='ltx_text ltx_font_smallcaps'>SaC</span> allows for 
-<span class="ltx_text ltx_font_smallcaps">C</span>-style assignments to variables. +<span class='ltx_text ltx_font_smallcaps'>C</span>-style assignments to variables. 
-In contrast to <span class="ltx_text ltx_font_smallcaps">C</span>,+In contrast to <span class='ltx_text ltx_font_smallcaps'>C</span>,
 assignments cannot be placed within expression positions and assignments cannot be placed within expression positions and
-the comma-operator of <span class="ltx_text ltx_font_smallcaps">C</span> is not supported.+the comma-operator of <span class='ltx_text ltx_font_smallcaps'>C</span> is not supported.
 However, the combinations of operators and assignment are However, the combinations of operators and assignment are
-the same in <span class="ltx_text ltx_font_smallcaps">SaC</span> as in <span class="ltx_text ltx_font_smallcaps">C</span></p>+the same in <span class='ltx_text ltx_font_smallcaps'>SaC</span> as in <span class='ltx_text ltx_font_smallcaps'>C</span></p>
 </div> </div>
-<figure id="LST25class="ltx_float ltx_lstlisting ltx_role_listing"+<figure id='LST25class='ltx_float ltx_lstlisting ltx_role_listing'
-<figcaption class="ltx_caption"><span class="ltx_tag ltx_tag_float">Listing 25: </span>Operator assignments in SaC</figcaption> +<figcaption class='ltx_caption'><span class='ltx_tag ltx_tag_float'>Listing 25: </span>Operator assignments in SaC</figcaption> 
-<div class="ltx_listing ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_listing"+<div class='ltx_listing ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_listing'
-<div class="ltx_listing_data"><a href="data:text/plain;base64,dXNlIEFycmF5OiBhbGw7CnVzZSBTdGRJTzogYWxsOwoKaW50IG1haW4oKQp7CiAgYSA9IDQyOwog%0AIHByaW50KGEpOwogIGErKzsKICBwcmludChhKTsKICBhICs9IDU7CiAgcHJpbnQoYSk7CiAgYSAt%0APSBhOwogIHByaW50KGEpOwoKICB2ID0gWzEsMiwzLDQsNV07CiAgcHJpbnQodik7CiAgdiArPSAx%0AOwogIHByaW50KHYpOwogIHZbMF0gPSAwOwogIHByaW50KHYpOwoKICBtID0gW3Ysdix2XTsKICBw%0AcmludChtKTsKICBtKys7CiAgcHJpbnQobSk7CgogIHJldHVybiBhOwp9%0A">⬇</a></div> +<div class='ltx_listing_data'><a href='data:text/plain;base64,dXNlIEFycmF5OiBhbGw7CnVzZSBTdGRJTzogYWxsOwoKaW50IG1haW4oKQp7CiAgYSA9IDQyOwog%0AIHByaW50KGEpOwogIGErKzsKICBwcmludChhKTsKICBhICs9IDU7CiAgcHJpbnQoYSk7CiAgYSAt%0APSBhOwogIHByaW50KGEpOwoKICB2ID0gWzEsMiwzLDQsNV07CiAgcHJpbnQodik7CiAgdiArPSAx%0AOwogIHByaW50KHYpOwogIHZbMF0gPSAwOwogIHByaW50KHYpOwoKICBtID0gW3Ysdix2XTsKICBw%0AcmludChtKTsKICBtKys7CiAgcHJpbnQobSk7CgogIHJldHVybiBhOwp9%0A'>⬇</a></div> 
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">1</span></span><span class="ltx_text ltx_lst_keyword ltx_font_bold">use</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">Array</span>:<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">all</span>;+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>1</span></span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>use</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>Array</span>:<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>all</span>;
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">2</span></span><span class="ltx_text ltx_lst_keyword ltx_font_bold">use</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">StdIO</span>:<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">all</span>;+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>2</span></span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>use</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>StdIO</span>:<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>all</span>;
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">3</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>3</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">4</span></span><span class="ltx_text ltx_lst_keyword ltx_font_bold">int</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">main</span>()+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>4</span></span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>int</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>main</span>()
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">5</span></span>{+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>5</span></span>{
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">6</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">a</span><span class="ltx_text ltx_lst_space"> </span>=<span class="ltx_text ltx_lst_space"> </span>42;+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>6</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>a</span><span class='ltx_text ltx_lst_space'> </span>=<span class='ltx_text ltx_lst_space'> </span>42;
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">7</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">print</span>(<span class="ltx_text ltx_lst_identifier">a</span>);+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>7</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>print</span>(<span class='ltx_text ltx_lst_identifier'>a</span>);
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">8</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">a</span>++;+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>8</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>a</span>++;
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">9</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">print</span>(<span class="ltx_text ltx_lst_identifier">a</span>);+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>9</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>print</span>(<span class='ltx_text ltx_lst_identifier'>a</span>);
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">10</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">a</span><span class="ltx_text ltx_lst_space"> </span>+=<span class="ltx_text ltx_lst_space"> </span>5;+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>10</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>a</span><span class='ltx_text ltx_lst_space'> </span>+=<span class='ltx_text ltx_lst_space'> </span>5;
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">11</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">print</span>(<span class="ltx_text ltx_lst_identifier">a</span>);+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>11</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>print</span>(<span class='ltx_text ltx_lst_identifier'>a</span>);
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">12</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">a</span><span class="ltx_text ltx_lst_space"> </span>-=<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">a</span>;+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>12</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>a</span><span class='ltx_text ltx_lst_space'> </span>-=<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>a</span>;
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">13</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">print</span>(<span class="ltx_text ltx_lst_identifier">a</span>);+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>13</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>print</span>(<span class='ltx_text ltx_lst_identifier'>a</span>);
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">14</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>14</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">15</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">v</span><span class="ltx_text ltx_lst_space"> </span>=<span class="ltx_text ltx_lst_space"> </span>[1,2,3,4,5];+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>15</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>v</span><span class='ltx_text ltx_lst_space'> </span>=<span class='ltx_text ltx_lst_space'> </span>[1,2,3,4,5];
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">16</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">print</span>(<span class="ltx_text ltx_lst_identifier">v</span>);+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>16</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>print</span>(<span class='ltx_text ltx_lst_identifier'>v</span>);
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">17</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">v</span><span class="ltx_text ltx_lst_space"> </span>+=<span class="ltx_text ltx_lst_space"> </span>1;+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>17</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>v</span><span class='ltx_text ltx_lst_space'> </span>+=<span class='ltx_text ltx_lst_space'> </span>1;
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">18</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">print</span>(<span class="ltx_text ltx_lst_identifier">v</span>);+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>18</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>print</span>(<span class='ltx_text ltx_lst_identifier'>v</span>);
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">19</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">v</span>[0]<span class="ltx_text ltx_lst_space"> </span>=<span class="ltx_text ltx_lst_space"> </span>0;+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>19</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>v</span>[0]<span class='ltx_text ltx_lst_space'> </span>=<span class='ltx_text ltx_lst_space'> </span>0;
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">20</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">print</span>(<span class="ltx_text ltx_lst_identifier">v</span>);+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>20</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>print</span>(<span class='ltx_text ltx_lst_identifier'>v</span>);
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">21</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>21</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">22</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">m</span><span class="ltx_text ltx_lst_space"> </span>=<span class="ltx_text ltx_lst_space"> </span>[<span class="ltx_text ltx_lst_identifier">v</span>,<span class="ltx_text ltx_lst_identifier">v</span>,<span class="ltx_text ltx_lst_identifier">v</span>];+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>22</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>m</span><span class='ltx_text ltx_lst_space'> </span>=<span class='ltx_text ltx_lst_space'> </span>[<span class='ltx_text ltx_lst_identifier'>v</span>,<span class='ltx_text ltx_lst_identifier'>v</span>,<span class='ltx_text ltx_lst_identifier'>v</span>];
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">23</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">print</span>(<span class="ltx_text ltx_lst_identifier">m</span>);+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>23</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>print</span>(<span class='ltx_text ltx_lst_identifier'>m</span>);
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">24</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">m</span>++;+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>24</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>m</span>++;
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">25</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">print</span>(<span class="ltx_text ltx_lst_identifier">m</span>);+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>25</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>print</span>(<span class='ltx_text ltx_lst_identifier'>m</span>);
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">26</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>26</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">27</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_keyword ltx_font_bold">return</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">a</span>;+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>27</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>return</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>a</span>;
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">28</span></span>}+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>28</span></span>}
 </div> </div>
 </div> </div>
 </figure> </figure>
-<div id="Ch3.S2.SS2.p2class="ltx_para"+<div id='Ch3.S2.SS2.p2class='ltx_para'
-<p class="ltx_p">Note that despite the term “Single Assignment” in the name of <span class="ltx_text ltx_font_smallcaps">SaC</span>,+<p class='ltx_p'>Note that despite the term “Single Assignment” in the name of <span class='ltx_text ltx_font_smallcaps'>SaC</span>,
 the language actually supports repeated assignment of values to the the language actually supports repeated assignment of values to the
 same variable as in the above example. same variable as in the above example.
 This seeming contradiction can be explained as follows: Each assignment This seeming contradiction can be explained as follows: Each assignment
 opens up a new scope of an identifier bound to some value. opens up a new scope of an identifier bound to some value.
-Accordingly, the second assignmnent to <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">a</span> in the above example +Accordingly, the second assignmnent to <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>a</span> in the above example 
-opens up a new scope for a new identifier <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">a</span> that only+opens up a new scope for a new identifier <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>a</span> that only
 coincidentally carries the same name as the identifier introduced coincidentally carries the same name as the identifier introduced
 in the code line before. in the code line before.
 However, because these two variables do carry the same name, the However, because these two variables do carry the same name, the
 second assignment shadows the scope of the first assignment meaning second assignment shadows the scope of the first assignment meaning
-that no access to the first <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">a</span> is possible any more.</p>+that no access to the first <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>a</span> is possible any more.</p>
 </div> </div>
-<div id="Ch3.S2.SS2.p3class="ltx_para"+<div id='Ch3.S2.SS2.p3class='ltx_para'
-<p class="ltx_p">Another aspect to notice here is that these operator-assignment +<p class='ltx_p'>Another aspect to notice here is that these operator-assignment 
-combinations in <span class="ltx_text ltx_font_smallcaps">SaC</span> can be used on arbitrary types.+combinations in <span class='ltx_text ltx_font_smallcaps'>SaC</span> can be used on arbitrary types.
 Line 17 is an example for this flexibility. Line 17 is an example for this flexibility.
-The variable <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">v</span> is of type <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting"><span class="ltx_text ltx_lst_keyword ltx_font_bold">int</span>[5]</span> and thus +The variable <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>v</span> is of type <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'><span class='ltx_text ltx_lst_keyword ltx_font_bold'>int</span>[5]</span> and thus 
-<span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting">+=</span> works on vectors. The way this works is that+<span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>+=</span> works on vectors. The way this works is that
 all these operator assignment cases are considered syntactic sugar all these operator assignment cases are considered syntactic sugar
 for assignements with function applications on the righ hand side.</p> for assignements with function applications on the righ hand side.</p>
 </div> </div>
-<div id="Ch3.S2.SS2.p4class="ltx_para"+<div id='Ch3.S2.SS2.p4class='ltx_para'
-<p class="ltx_p">This syntactic-sugar trick also enables very <span class="ltx_text ltx_font_smallcaps">C</span>-like notations when +<p class='ltx_p'>This syntactic-sugar trick also enables very <span class='ltx_text ltx_font_smallcaps'>C</span>-like notations when 
-denoting applications of the function <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">modarray</span>.+denoting applications of the function <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>modarray</span>.
 Line 19 shows an example.</p> Line 19 shows an example.</p>
 </div> </div>
-<div id="Thmtheorem24class="ltx_theorem ltx_theorem_theorem"+<div id='Thmtheorem24class='ltx_theorem ltx_theorem_theorem'
-<h6 class="ltx_title ltx_runin ltx_font_bold ltx_title_theorem">Exercise 24. </h6> +<h6 class='ltx_title ltx_runin ltx_font_bold ltx_title_theorem'>Exercise 24. </h6> 
-<div id="Thmtheorem24.p1class="ltx_para"+<div id='Thmtheorem24.p1class='ltx_para'
-<p class="ltx_p">Starting from the code in Listing <a href="#LST25title="25 ‣ 3.2.2 Assignments ‣ 3.2 Lesson 4: Function Bodies ‣ Chapter 3 Basic Program Structure ‣ Part I Trails Covering the Basics of SaCclass="ltx_ref"><span class="ltx_text ltx_ref_tag">25</span></a>, what happens when you+<p class='ltx_p'>Starting from the code in Listing <a href='#LST25title='25 ‣ 3.2.2 Assignments ‣ 3.2 Lesson 4: Function Bodies ‣ Chapter 3 Basic Program Structure ‣ Part I Trails Covering the Basics of SaCclass='ltx_ref'><span class='ltx_text ltx_ref_tag'>25</span></a>, what happens when you
 combine the above shortcut notations? combine the above shortcut notations?
-Try operator assignments such as <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting"><span class="ltx_text ltx_lst_identifier">v</span>[0]++</span> or +Try operator assignments such as <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'><span class='ltx_text ltx_lst_identifier'>v</span>[0]++</span> or 
-<span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting"><span class="ltx_text ltx_lst_identifier">m</span>[0][0]<span class="ltx_text ltx_lst_space"> </span>=<span class="ltx_text ltx_lst_space"> </span>42;</span>.</p>+<span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'><span class='ltx_text ltx_lst_identifier'>m</span>[0][0]<span class='ltx_text ltx_lst_space'> </span>=<span class='ltx_text ltx_lst_space'> </span>42;</span>.</p>
 </div> </div>
-<div id="Thmtheorem24.p2class="ltx_para"+<div id='Thmtheorem24.p2class='ltx_para'
-<p class="ltx_p">Can you define a function <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">f</span> that makes the following +<p class='ltx_p'>Can you define a function <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>f</span> that makes the following 
-operator assignment legal <span class="ltx_text ltx_font_smallcaps">SaC</span> code: <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting"><span class="ltx_text ltx_lst_identifier">v</span>[1],<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">m</span>[1]<span class="ltx_text ltx_lst_space"> </span>+=<span class="ltx_text ltx_lst_identifier">f</span>();</span>?</p>+operator assignment legal <span class='ltx_text ltx_font_smallcaps'>SaC</span> code: <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'><span class='ltx_text ltx_lst_identifier'>v</span>[1],<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>m</span>[1]<span class='ltx_text ltx_lst_space'> </span>+=<span class='ltx_text ltx_lst_identifier'>f</span>();</span>?</p>
 </div> </div>
 </div> </div>
 </section> </section>
-<section id="Ch3.S2.SS3class="ltx_subsection"+<section id='Ch3.S2.SS3class='ltx_subsection'
-<h5 class="ltx_title ltx_title_subsection"+<h5 class='ltx_title ltx_title_subsection'
-<span class="ltx_tag ltx_tag_subsection">3.2.3 </span>Conditionals</h5>+<span class='ltx_tag ltx_tag_subsection'>3.2.3 </span>Conditionals</h5>
  
-<div id="Ch3.S2.SS3.p1class="ltx_para"+<div id='Ch3.S2.SS3.p1class='ltx_para'
-<p class="ltx_p">In <span class="ltx_text ltx_font_smallcaps">SaC</span>, we support three forms of conditionals:</p> +<p class='ltx_p'>In <span class='ltx_text ltx_font_smallcaps'>SaC</span>, we support three forms of conditionals:</p> 
-<ul id="Ch3.I1class="ltx_itemize"+<ul id='Ch3.I1class='ltx_itemize'
-<li id="Ch3.I1.i1class="ltx_itemstyle="list-style-type:none;"+<li id='Ch3.I1.i1class='ltx_itemstyle='list-style-type:none;'
-<span class="ltx_tag ltx_tag_itemize">•</span>  +<span class='ltx_tag ltx_tag_itemize'>•</span>  
-<div id="Ch3.I1.i1.p1class="ltx_para"+<div id='Ch3.I1.i1.p1class='ltx_para'
-<p class="ltx_p">branching with consequence only (if-then),</p>+<p class='ltx_p'>branching with consequence only (if-then),</p>
 </div> </div>
 </li> </li>
-<li id="Ch3.I1.i2class="ltx_itemstyle="list-style-type:none;"+<li id='Ch3.I1.i2class='ltx_itemstyle='list-style-type:none;'
-<span class="ltx_tag ltx_tag_itemize">•</span>  +<span class='ltx_tag ltx_tag_itemize'>•</span>  
-<div id="Ch3.I1.i2.p1class="ltx_para"+<div id='Ch3.I1.i2.p1class='ltx_para'
-<p class="ltx_p">branching with consequence and alternative (if-then-else) and</p>+<p class='ltx_p'>branching with consequence and alternative (if-then-else) and</p>
 </div> </div>
 </li> </li>
-<li id="Ch3.I1.i3class="ltx_itemstyle="list-style-type:none;"+<li id='Ch3.I1.i3class='ltx_itemstyle='list-style-type:none;'
-<span class="ltx_tag ltx_tag_itemize">•</span>  +<span class='ltx_tag ltx_tag_itemize'>•</span>  
-<div id="Ch3.I1.i3.p1class="ltx_para"+<div id='Ch3.I1.i3.p1class='ltx_para'
-<p class="ltx_p">conditional expressions.</p>+<p class='ltx_p'>conditional expressions.</p>
 </div> </div>
 </li> </li>
 </ul> </ul>
-<p class="ltx_p">All three forms use a syntax that is identical to that of <span class="ltx_text ltx_font_smallcaps">C</span>, as the+<p class='ltx_p'>All three forms use a syntax that is identical to that of <span class='ltx_text ltx_font_smallcaps'>C</span>, as the
 following listing illustrates. following listing illustrates.
-Similarity with <span class="ltx_text ltx_font_smallcaps">C</span> extends to the use of curly brackets to build+Similarity with <span class='ltx_text ltx_font_smallcaps'>C</span> extends to the use of curly brackets to build
 blocks of multiple statements and their potential absence if the blocks of multiple statements and their potential absence if the
 condition covers a single statement only condition covers a single statement only
 </p> </p>
 </div> </div>
-<figure id="LST26class="ltx_float ltx_lstlisting ltx_role_listing"+<figure id='LST26class='ltx_float ltx_lstlisting ltx_role_listing'
-<figcaption class="ltx_caption"><span class="ltx_tag ltx_tag_float">Listing 26: </span>Conditionals in SaC</figcaption> +<figcaption class='ltx_caption'><span class='ltx_tag ltx_tag_float'>Listing 26: </span>Conditionals in SaC</figcaption> 
-<div class="ltx_listing ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_listing"+<div class='ltx_listing ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_listing'
-<div class="ltx_listing_data"><a href="data:text/plain;base64,dXNlIFNjYWxhckFyaXRoOiBhbGw7CnVzZSBTdGRJTzogYWxsOwoKaW50IG1haW4oKQp7CiAgYSA9%0AIDU7CiAgYiA9IDc7CiAgcHJpbnRmKCJhPSVkLCBiPSVkXG4iLCBhLCBiKTsKCiAgaWYgKGEgPCBi%0AKSBhID0gYjsKICBwcmludGYoImE9JWQsIGI9JWRcbiIsIGEsIGIpOwoKICBpZiAoYSA+PSBiKSB7%0ACiAgICBhID0gYjsKICB9IGVsc2UgewogICAgYiA9IGE7CiAgfQogIHByaW50ZigiYT0lZCwgYj0l%0AZFxuIiwgYSwgYik7CgogIGIgPSBhIDwgYiA/IGEgOiBiOwogIHByaW50ZigiYT0lZCwgYj0lZFxu%0AIiwgYSwgYik7CgogIHJldHVybiBiOwp9%0A">⬇</a></div> +<div class='ltx_listing_data'><a href='data:text/plain;base64,dXNlIFNjYWxhckFyaXRoOiBhbGw7CnVzZSBTdGRJTzogYWxsOwoKaW50IG1haW4oKQp7CiAgYSA9%0AIDU7CiAgYiA9IDc7CiAgcHJpbnRmKCJhPSVkLCBiPSVkXG4iLCBhLCBiKTsKCiAgaWYgKGEgPCBi%0AKSBhID0gYjsKICBwcmludGYoImE9JWQsIGI9JWRcbiIsIGEsIGIpOwoKICBpZiAoYSA+PSBiKSB7%0ACiAgICBhID0gYjsKICB9IGVsc2UgewogICAgYiA9IGE7CiAgfQogIHByaW50ZigiYT0lZCwgYj0l%0AZFxuIiwgYSwgYik7CgogIGIgPSBhIDwgYiA/IGEgOiBiOwogIHByaW50ZigiYT0lZCwgYj0lZFxu%0AIiwgYSwgYik7CgogIHJldHVybiBiOwp9%0A'>⬇</a></div> 
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">1</span></span><span class="ltx_text ltx_lst_keyword ltx_font_bold">use</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">ScalarArith</span>:<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">all</span>;+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>1</span></span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>use</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>ScalarArith</span>:<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>all</span>;
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">2</span></span><span class="ltx_text ltx_lst_keyword ltx_font_bold">use</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">StdIO</span>:<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">all</span>;+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>2</span></span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>use</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>StdIO</span>:<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>all</span>;
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">3</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>3</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">4</span></span><span class="ltx_text ltx_lst_keyword ltx_font_bold">int</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">main</span>()+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>4</span></span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>int</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>main</span>()
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">5</span></span>{+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>5</span></span>{
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">6</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">a</span><span class="ltx_text ltx_lst_space"> </span>=<span class="ltx_text ltx_lst_space"> </span>5;+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>6</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>a</span><span class='ltx_text ltx_lst_space'> </span>=<span class='ltx_text ltx_lst_space'> </span>5;
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">7</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">b</span><span class="ltx_text ltx_lst_space"> </span>=<span class="ltx_text ltx_lst_space"> </span>7;+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>7</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>b</span><span class='ltx_text ltx_lst_space'> </span>=<span class='ltx_text ltx_lst_space'> </span>7;
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">8</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">printf</span>(<span class="ltx_text ltx_lst_string">”a=%d,<span class="ltx_text ltx_lst_space"> </span>b=%d\n”</span>,<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">a</span>,<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">b</span>);+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>8</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>printf</span>(<span class='ltx_text ltx_lst_string'>”a=%d,<span class='ltx_text ltx_lst_space'> </span>b=%d\n”</span>,<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>a</span>,<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>b</span>);
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">9</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>9</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">10</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_keyword ltx_font_bold">if</span><span class="ltx_text ltx_lst_space"> </span>(<span class="ltx_text ltx_lst_identifier">a</span><span class="ltx_text ltx_lst_space"> </span>&lt;<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">b</span>)<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">a</span><span class="ltx_text ltx_lst_space"> </span>=<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">b</span>;+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>10</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>if</span><span class='ltx_text ltx_lst_space'> </span>(<span class='ltx_text ltx_lst_identifier'>a</span><span class='ltx_text ltx_lst_space'> </span>&lt;<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>b</span>)<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>a</span><span class='ltx_text ltx_lst_space'> </span>=<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>b</span>;
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">11</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">printf</span>(<span class="ltx_text ltx_lst_string">”a=%d,<span class="ltx_text ltx_lst_space"> </span>b=%d\n”</span>,<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">a</span>,<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">b</span>);+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>11</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>printf</span>(<span class='ltx_text ltx_lst_string'>”a=%d,<span class='ltx_text ltx_lst_space'> </span>b=%d\n”</span>,<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>a</span>,<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>b</span>);
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">12</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>12</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">13</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_keyword ltx_font_bold">if</span><span class="ltx_text ltx_lst_space"> </span>(<span class="ltx_text ltx_lst_identifier">a</span><span class="ltx_text ltx_lst_space"> </span>&gt;=<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">b</span>)<span class="ltx_text ltx_lst_space"> </span>{+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>13</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>if</span><span class='ltx_text ltx_lst_space'> </span>(<span class='ltx_text ltx_lst_identifier'>a</span><span class='ltx_text ltx_lst_space'> </span>&gt;=<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>b</span>)<span class='ltx_text ltx_lst_space'> </span>{
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">14</span></span><span class="ltx_text ltx_lst_space">    </span><span class="ltx_text ltx_lst_identifier">a</span><span class="ltx_text ltx_lst_space"> </span>=<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">b</span>;+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>14</span></span><span class='ltx_text ltx_lst_space'>    </span><span class='ltx_text ltx_lst_identifier'>a</span><span class='ltx_text ltx_lst_space'> </span>=<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>b</span>;
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">15</span></span><span class="ltx_text ltx_lst_space">  </span>}<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_keyword ltx_font_bold">else</span><span class="ltx_text ltx_lst_space"> </span>{+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>15</span></span><span class='ltx_text ltx_lst_space'>  </span>}<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>else</span><span class='ltx_text ltx_lst_space'> </span>{
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">16</span></span><span class="ltx_text ltx_lst_space">    </span><span class="ltx_text ltx_lst_identifier">b</span><span class="ltx_text ltx_lst_space"> </span>=<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">a</span>;+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>16</span></span><span class='ltx_text ltx_lst_space'>    </span><span class='ltx_text ltx_lst_identifier'>b</span><span class='ltx_text ltx_lst_space'> </span>=<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>a</span>;
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">17</span></span><span class="ltx_text ltx_lst_space">  </span>}+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>17</span></span><span class='ltx_text ltx_lst_space'>  </span>}
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">18</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">printf</span>(<span class="ltx_text ltx_lst_string">”a=%d,<span class="ltx_text ltx_lst_space"> </span>b=%d\n”</span>,<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">a</span>,<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">b</span>);+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>18</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>printf</span>(<span class='ltx_text ltx_lst_string'>”a=%d,<span class='ltx_text ltx_lst_space'> </span>b=%d\n”</span>,<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>a</span>,<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>b</span>);
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">19</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>19</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">20</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">b</span><span class="ltx_text ltx_lst_space"> </span>=<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">a</span><span class="ltx_text ltx_lst_space"> </span>&lt;<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">b</span><span class="ltx_text ltx_lst_space"> </span>?<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">a</span><span class="ltx_text ltx_lst_space"> </span>:<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">b</span>;+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>20</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>b</span><span class='ltx_text ltx_lst_space'> </span>=<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>a</span><span class='ltx_text ltx_lst_space'> </span>&lt;<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>b</span><span class='ltx_text ltx_lst_space'> </span>?<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>a</span><span class='ltx_text ltx_lst_space'> </span>:<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>b</span>;
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">21</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">printf</span>(<span class="ltx_text ltx_lst_string">”a=%d,<span class="ltx_text ltx_lst_space"> </span>b=%d\n”</span>,<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">a</span>,<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">b</span>);+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>21</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>printf</span>(<span class='ltx_text ltx_lst_string'>”a=%d,<span class='ltx_text ltx_lst_space'> </span>b=%d\n”</span>,<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>a</span>,<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>b</span>);
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">22</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>22</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">23</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_keyword ltx_font_bold">return</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">b</span>;+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>23</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>return</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>b</span>;
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">24</span></span>}+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>24</span></span>}
 </div> </div>
 </div> </div>
 </figure> </figure>
-<div id="Ch3.S2.SS3.p2class="ltx_para"+<div id='Ch3.S2.SS3.p2class='ltx_para'
-<p class="ltx_p">As in <span class="ltx_text ltx_font_smallcaps">C</span> all forms of conditionals can be nested in any way, and the +<p class='ltx_p'>As in <span class='ltx_text ltx_font_smallcaps'>C</span> all forms of conditionals can be nested in any way, and the 
-dangling else ambiguity is resolved as in <span class="ltx_text ltx_font_smallcaps">C</span> proper.</p>+dangling else ambiguity is resolved as in <span class='ltx_text ltx_font_smallcaps'>C</span> proper.</p>
 </div> </div>
-<div id="Ch3.S2.SS3.p3class="ltx_para"+<div id='Ch3.S2.SS3.p3class='ltx_para'
-<p class="ltx_p">A small difference to standard <span class="ltx_text ltx_font_smallcaps">C</span> is that the predicate expression +<p class='ltx_p'>A small difference to standard <span class='ltx_text ltx_font_smallcaps'>C</span> is that the predicate expression 
-of any conditional must be of type <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_keyword ltx_font_bold">bool</span>.+of any conditional must be of type <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_keyword ltx_font_bold'>bool</span>.
 There is no implicit treatment of integer values as predicates. There is no implicit treatment of integer values as predicates.
-Another subtle difference to <span class="ltx_text ltx_font_smallcaps">C</span> stems from the functional nature of +Another subtle difference to <span class='ltx_text ltx_font_smallcaps'>C</span> stems from the functional nature of 
-<span class="ltx_text ltx_font_smallcaps">SaC</span>: a variable defined only in one branch of a conditional, will +<span class='ltx_text ltx_font_smallcaps'>SaC</span>: a variable defined only in one branch of a conditional, will 
-cause the <span class="ltx_text ltx_font_smallcaps">SaC</span> compiler to raise an error because the value may be+cause the <span class='ltx_text ltx_font_smallcaps'>SaC</span> compiler to raise an error because the value may be
 undefined.</p> undefined.</p>
 </div> </div>
-<div id="Ch3.S2.SS3.p4class="ltx_para"+<div id='Ch3.S2.SS3.p4class='ltx_para'
-<p class="ltx_p">The <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">switch</span>-statement of <span class="ltx_text ltx_font_smallcaps">C</span> is currently not supported by <span class="ltx_text ltx_font_smallcaps">SaC</span>.+<p class='ltx_p'>The <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>switch</span>-statement of <span class='ltx_text ltx_font_smallcaps'>C</span> is currently not supported by <span class='ltx_text ltx_font_smallcaps'>SaC</span>.
 This is not so much motivated by conceptual concerns, but rather by This is not so much motivated by conceptual concerns, but rather by
 pragmatic considerations like the ratio between expressiveness gained pragmatic considerations like the ratio between expressiveness gained
Line 3704: Line 4303:
 </div> </div>
 </section> </section>
-<section id="Ch3.S2.SS4class="ltx_subsection"+<section id='Ch3.S2.SS4class='ltx_subsection'
-<h5 class="ltx_title ltx_title_subsection"+<h5 class='ltx_title ltx_title_subsection'
-<span class="ltx_tag ltx_tag_subsection">3.2.4 </span>Loops</h5>+<span class='ltx_tag ltx_tag_subsection'>3.2.4 </span>Loops</h5>
  
-<div id="Ch3.S2.SS4.p1class="ltx_para"+<div id='Ch3.S2.SS4.p1class='ltx_para'
-<p class="ltx_p"><span class="ltx_text ltx_font_smallcaps">SaC</span> supports all three loop constructs of standard <span class="ltx_text ltx_font_smallcaps">C</span>: <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_keyword ltx_font_bold">while</span>, +<p class='ltx_p'><span class='ltx_text ltx_font_smallcaps'>SaC</span> supports all three loop constructs of standard <span class='ltx_text ltx_font_smallcaps'>C</span>: <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_keyword ltx_font_bold'>while</span>, 
-<span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_keyword ltx_font_bold">do</span> and <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_keyword ltx_font_bold">for</span> with the familiar syntax, as illustrated+<span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_keyword ltx_font_bold'>do</span> and <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_keyword ltx_font_bold'>for</span> with the familiar syntax, as illustrated
 by the following code fragment. by the following code fragment.
 </p> </p>
 </div> </div>
-<figure id="LST27class="ltx_float ltx_lstlisting ltx_role_listing"+<figure id='LST27class='ltx_float ltx_lstlisting ltx_role_listing'
-<figcaption class="ltx_caption"><span class="ltx_tag ltx_tag_float">Listing 27: </span>Loops in SaC</figcaption> +<figcaption class='ltx_caption'><span class='ltx_tag ltx_tag_float'>Listing 27: </span>Loops in SaC</figcaption> 
-<div class="ltx_listing ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_listing"+<div class='ltx_listing ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_listing'
-<div class="ltx_listing_data"><a href="data:text/plain;base64,dXNlIFNjYWxhckFyaXRoOiBhbGw7CnVzZSBTdGRJTzogYWxsOwoKaW50IG1haW4oKQp7CiAgYSA9%0AIDEwOwoKICB3aGlsZSAoYSA+IDApIHsKICAgIGEgPSBhIC0gMjsKICAgIHByaW50KGEpOwogIH0K%0ACiAgZG8gewogICAgcHJpbnQoYSk7CiAgICBhID0gYSArIDE7CiAgfSB3aGlsZSAoYSA8IDcpOwoK%0AICBmb3IgKGkgPSAxLCBqID0gMjsgaSArIGogPCA0MiA7IGkrKywgaisrKSB7CiAgICBhICo9IDI7%0ACiAgICBwcmludChhKTsKICB9CgogIHJldHVybiBhOwp9%0A">⬇</a></div> +<div class='ltx_listing_data'><a href='data:text/plain;base64,dXNlIFNjYWxhckFyaXRoOiBhbGw7CnVzZSBTdGRJTzogYWxsOwoKaW50IG1haW4oKQp7CiAgYSA9%0AIDEwOwoKICB3aGlsZSAoYSA+IDApIHsKICAgIGEgPSBhIC0gMjsKICAgIHByaW50KGEpOwogIH0K%0ACiAgZG8gewogICAgcHJpbnQoYSk7CiAgICBhID0gYSArIDE7CiAgfSB3aGlsZSAoYSA8IDcpOwoK%0AICBmb3IgKGkgPSAxLCBqID0gMjsgaSArIGogPCA0MiA7IGkrKywgaisrKSB7CiAgICBhICo9IDI7%0ACiAgICBwcmludChhKTsKICB9CgogIHJldHVybiBhOwp9%0A'>⬇</a></div> 
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">1</span></span><span class="ltx_text ltx_lst_keyword ltx_font_bold">use</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">ScalarArith</span>:<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">all</span>;+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>1</span></span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>use</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>ScalarArith</span>:<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>all</span>;
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">2</span></span><span class="ltx_text ltx_lst_keyword ltx_font_bold">use</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">StdIO</span>:<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">all</span>;+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>2</span></span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>use</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>StdIO</span>:<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>all</span>;
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">3</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>3</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">4</span></span><span class="ltx_text ltx_lst_keyword ltx_font_bold">int</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">main</span>()+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>4</span></span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>int</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>main</span>()
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">5</span></span>{+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>5</span></span>{
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">6</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">a</span><span class="ltx_text ltx_lst_space"> </span>=<span class="ltx_text ltx_lst_space"> </span>10;+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>6</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>a</span><span class='ltx_text ltx_lst_space'> </span>=<span class='ltx_text ltx_lst_space'> </span>10;
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">7</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>7</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">8</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_keyword ltx_font_bold">while</span><span class="ltx_text ltx_lst_space"> </span>(<span class="ltx_text ltx_lst_identifier">a</span><span class="ltx_text ltx_lst_space"> </span>&gt;<span class="ltx_text ltx_lst_space"> </span>0)<span class="ltx_text ltx_lst_space"> </span>{+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>8</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>while</span><span class='ltx_text ltx_lst_space'> </span>(<span class='ltx_text ltx_lst_identifier'>a</span><span class='ltx_text ltx_lst_space'> </span>&gt;<span class='ltx_text ltx_lst_space'> </span>0)<span class='ltx_text ltx_lst_space'> </span>{
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">9</span></span><span class="ltx_text ltx_lst_space">    </span><span class="ltx_text ltx_lst_identifier">a</span><span class="ltx_text ltx_lst_space"> </span>=<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">a</span><span class="ltx_text ltx_lst_space"> </span>-<span class="ltx_text ltx_lst_space"> </span>2;+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>9</span></span><span class='ltx_text ltx_lst_space'>    </span><span class='ltx_text ltx_lst_identifier'>a</span><span class='ltx_text ltx_lst_space'> </span>=<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>a</span><span class='ltx_text ltx_lst_space'> </span>-<span class='ltx_text ltx_lst_space'> </span>2;
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">10</span></span><span class="ltx_text ltx_lst_space">    </span><span class="ltx_text ltx_lst_identifier">print</span>(<span class="ltx_text ltx_lst_identifier">a</span>);+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>10</span></span><span class='ltx_text ltx_lst_space'>    </span><span class='ltx_text ltx_lst_identifier'>print</span>(<span class='ltx_text ltx_lst_identifier'>a</span>);
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">11</span></span><span class="ltx_text ltx_lst_space">  </span>}+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>11</span></span><span class='ltx_text ltx_lst_space'>  </span>}
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">12</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>12</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">13</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_keyword ltx_font_bold">do</span><span class="ltx_text ltx_lst_space"> </span>{+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>13</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>do</span><span class='ltx_text ltx_lst_space'> </span>{
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">14</span></span><span class="ltx_text ltx_lst_space">    </span><span class="ltx_text ltx_lst_identifier">print</span>(<span class="ltx_text ltx_lst_identifier">a</span>);+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>14</span></span><span class='ltx_text ltx_lst_space'>    </span><span class='ltx_text ltx_lst_identifier'>print</span>(<span class='ltx_text ltx_lst_identifier'>a</span>);
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">15</span></span><span class="ltx_text ltx_lst_space">    </span><span class="ltx_text ltx_lst_identifier">a</span><span class="ltx_text ltx_lst_space"> </span>=<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">a</span><span class="ltx_text ltx_lst_space"> </span>+<span class="ltx_text ltx_lst_space"> </span>1;+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>15</span></span><span class='ltx_text ltx_lst_space'>    </span><span class='ltx_text ltx_lst_identifier'>a</span><span class='ltx_text ltx_lst_space'> </span>=<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>a</span><span class='ltx_text ltx_lst_space'> </span>+<span class='ltx_text ltx_lst_space'> </span>1;
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">16</span></span><span class="ltx_text ltx_lst_space">  </span>}<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_keyword ltx_font_bold">while</span><span class="ltx_text ltx_lst_space"> </span>(<span class="ltx_text ltx_lst_identifier">a</span><span class="ltx_text ltx_lst_space"> </span>&lt;<span class="ltx_text ltx_lst_space"> </span>7);+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>16</span></span><span class='ltx_text ltx_lst_space'>  </span>}<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>while</span><span class='ltx_text ltx_lst_space'> </span>(<span class='ltx_text ltx_lst_identifier'>a</span><span class='ltx_text ltx_lst_space'> </span>&lt;<span class='ltx_text ltx_lst_space'> </span>7);
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">17</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>17</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">18</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_keyword ltx_font_bold">for</span><span class="ltx_text ltx_lst_space"> </span>(<span class="ltx_text ltx_lst_identifier">i</span><span class="ltx_text ltx_lst_space"> </span>=<span class="ltx_text ltx_lst_space"> </span>1,<span class="ltx_text ltx_lst_space"> </span>j<span class="ltx_text ltx_lst_space"> </span>=<span class="ltx_text ltx_lst_space"> </span>2;<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">i</span><span class="ltx_text ltx_lst_space"> </span>+<span class="ltx_text ltx_lst_space"> </span>j<span class="ltx_text ltx_lst_space"> </span>&lt;<span class="ltx_text ltx_lst_space"> </span>42<span class="ltx_text ltx_lst_space"> </span>;<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">i</span>++,<span class="ltx_text ltx_lst_space"> </span>j++)<span class="ltx_text ltx_lst_space"> </span>{+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>18</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>for</span><span class='ltx_text ltx_lst_space'> </span>(<span class='ltx_text ltx_lst_identifier'>i</span><span class='ltx_text ltx_lst_space'> </span>=<span class='ltx_text ltx_lst_space'> </span>1,<span class='ltx_text ltx_lst_space'> </span>j<span class='ltx_text ltx_lst_space'> </span>=<span class='ltx_text ltx_lst_space'> </span>2;<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>i</span><span class='ltx_text ltx_lst_space'> </span>+<span class='ltx_text ltx_lst_space'> </span>j<span class='ltx_text ltx_lst_space'> </span>&lt;<span class='ltx_text ltx_lst_space'> </span>42<span class='ltx_text ltx_lst_space'> </span>;<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>i</span>++,<span class='ltx_text ltx_lst_space'> </span>j++)<span class='ltx_text ltx_lst_space'> </span>{
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">19</span></span><span class="ltx_text ltx_lst_space">    </span><span class="ltx_text ltx_lst_identifier">a</span><span class="ltx_text ltx_lst_space"> </span>*=<span class="ltx_text ltx_lst_space"> </span>2;+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>19</span></span><span class='ltx_text ltx_lst_space'>    </span><span class='ltx_text ltx_lst_identifier'>a</span><span class='ltx_text ltx_lst_space'> </span>*=<span class='ltx_text ltx_lst_space'> </span>2;
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">20</span></span><span class="ltx_text ltx_lst_space">    </span><span class="ltx_text ltx_lst_identifier">print</span>(<span class="ltx_text ltx_lst_identifier">a</span>);+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>20</span></span><span class='ltx_text ltx_lst_space'>    </span><span class='ltx_text ltx_lst_identifier'>print</span>(<span class='ltx_text ltx_lst_identifier'>a</span>);
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">21</span></span><span class="ltx_text ltx_lst_space">  </span>}+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>21</span></span><span class='ltx_text ltx_lst_space'>  </span>}
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">22</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>22</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">23</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_keyword ltx_font_bold">return</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">a</span>;+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>23</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>return</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>a</span>;
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">24</span></span>}+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>24</span></span>}
 </div> </div>
 </div> </div>
 </figure> </figure>
-<div id="Ch3.S2.SS4.p2class="ltx_para"+<div id='Ch3.S2.SS4.p2class='ltx_para'
-<p class="ltx_p">In analogy to conditionals, the loop predicate expression must be +<p class='ltx_p'>In analogy to conditionals, the loop predicate expression must be 
-of type <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_keyword ltx_font_bold">bool</span>+of type <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_keyword ltx_font_bold'>bool</span>
-Note that <span class="ltx_text ltx_font_smallcaps">SaC</span> does even support the comma operator in <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_keyword ltx_font_bold">for</span>-loops+Note that <span class='ltx_text ltx_font_smallcaps'>SaC</span> does even support the comma operator in <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_keyword ltx_font_bold'>for</span>-loops
 (though not in general terms as pointed out before).</p> (though not in general terms as pointed out before).</p>
 </div> </div>
-<div id="Ch3.S2.SS4.p3class="ltx_para"+<div id='Ch3.S2.SS4.p3class='ltx_para'
-<p class="ltx_p">These <span class="ltx_text ltx_font_smallcaps">C</span>-style loop constructs can make code look very imperative. +<p class='ltx_p'>These <span class='ltx_text ltx_font_smallcaps'>C</span>-style loop constructs can make code look very imperative. 
-Despite these syntactic similarities, always bear in mind that <span class="ltx_text ltx_font_smallcaps">SaC</span> loops+Despite these syntactic similarities, always bear in mind that <span class='ltx_text ltx_font_smallcaps'>SaC</span> loops
 are (only) syntactic sugar for equivalent tail-end recursive functions. are (only) syntactic sugar for equivalent tail-end recursive functions.
 While the functional semantics almost completely coincides with the While the functional semantics almost completely coincides with the
-pragmatic expectations of a <span class="ltx_text ltx_font_smallcaps">C</span> programmer, some subtle issues may+pragmatic expectations of a <span class='ltx_text ltx_font_smallcaps'>C</span> programmer, some subtle issues may
 arise concerning the definedness of variables. arise concerning the definedness of variables.
-For example, the <span class="ltx_text ltx_font_smallcaps">SaC</span> compiler would complain about the above example +For example, the <span class='ltx_text ltx_font_smallcaps'>SaC</span> compiler would complain about the above example 
-saying that the variable <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">b</span> in the <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_keyword ltx_font_bold">while</span>-loop may be+saying that the variable <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>b</span> in the <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_keyword ltx_font_bold'>while</span>-loop may be
 used uninitialised if it is not defined before. used uninitialised if it is not defined before.
-This is because the compiler assumes that the body of a <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_keyword ltx_font_bold">while</span>-loop+This is because the compiler assumes that the body of a <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_keyword ltx_font_bold'>while</span>-loop
 may not be executed at all. may not be executed at all.
-Of course, you may know better, but the <span class="ltx_text ltx_font_smallcaps">SaC</span> compiler at the moment makes+Of course, you may know better, but the <span class='ltx_text ltx_font_smallcaps'>SaC</span> compiler at the moment makes
 no particular effort to prove this fact when it analyses the definedness no particular effort to prove this fact when it analyses the definedness
 of variables.</p> of variables.</p>
 </div> </div>
 </section> </section>
-<section id="Ch3.S2.SS5class="ltx_subsection"+<section id='Ch3.S2.SS5class='ltx_subsection'
-<h5 class="ltx_title ltx_title_subsection"+<h5 class='ltx_title ltx_title_subsection'
-<span class="ltx_tag ltx_tag_subsection">3.2.5 </span>Explicit Control Flow Manipulation</h5>+<span class='ltx_tag ltx_tag_subsection'>3.2.5 </span>Explicit Control Flow Manipulation</h5>
  
-<div id="Ch3.S2.SS5.p1class="ltx_para"+<div id='Ch3.S2.SS5.p1class='ltx_para'
-<p class="ltx_p">The control flow manipulation statements of <span class="ltx_text ltx_font_smallcaps">C</span>, i.e. <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">goto</span>, +<p class='ltx_p'>The control flow manipulation statements of <span class='ltx_text ltx_font_smallcaps'>C</span>, i.e. <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>goto</span>, 
-<span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">break</span> and <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">continue</span>, as well as labels are not +<span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>break</span> and <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>continue</span>, as well as labels are not 
-supported by <span class="ltx_text ltx_font_smallcaps">SaC</span>+supported by <span class='ltx_text ltx_font_smallcaps'>SaC</span>
-This is due to the fact that <span class="ltx_text ltx_font_smallcaps">SaC</span> is indeed a functional language+This is due to the fact that <span class='ltx_text ltx_font_smallcaps'>SaC</span> is indeed a functional language
 and as such there is actually no control flow, even though the and as such there is actually no control flow, even though the
-<span class="ltx_text ltx_font_smallcaps">C</span>-like syntax suggests one.</p>+<span class='ltx_text ltx_font_smallcaps'>C</span>-like syntax suggests one.</p>
 </div> </div>
 </section> </section>
 </section> </section>
-<section id="Ch3.S3class="ltx_section"+<section id='Ch3.S3class='ltx_section'
-<h4 class="ltx_title ltx_title_section"+<h4 class='ltx_title ltx_title_section'
-<span class="ltx_tag ltx_tag_section">3.3 </span>Lesson 5: Advanced Topics</h4>+<span class='ltx_tag ltx_tag_section'>3.3 </span>Lesson 5: Advanced Topics</h4>
  
-<section id="Ch3.S3.SS1class="ltx_subsection"+<section id='Ch3.S3.SS1class='ltx_subsection'
-<h5 class="ltx_title ltx_title_subsection"+<h5 class='ltx_title ltx_title_subsection'
-<span class="ltx_tag ltx_tag_subsection">3.3.1 </span>User-defined Types</h5>+<span class='ltx_tag ltx_tag_subsection'>3.3.1 </span>User-defined Types</h5>
  
-<div id="Ch3.S3.SS1.p1class="ltx_para"+<div id='Ch3.S3.SS1.p1class='ltx_para'
-<p class="ltx_p"><span class="ltx_text ltx_font_smallcaps">SaC</span> allows programmers to define their own types using a syntax +<p class='ltx_p'><span class='ltx_text ltx_font_smallcaps'>SaC</span> allows programmers to define their own types using a syntax 
-that is identical to <span class="ltx_text ltx_font_smallcaps">C</span>.</p>+that is identical to <span class='ltx_text ltx_font_smallcaps'>C</span>.</p>
 </div> </div>
-<figure id="LST28class="ltx_float ltx_lstlisting ltx_role_listing"+<figure id='LST28class='ltx_float ltx_lstlisting ltx_role_listing'
-<figcaption class="ltx_caption"><span class="ltx_tag ltx_tag_float">Listing 28: </span>User-defined types</figcaption> +<figcaption class='ltx_caption'><span class='ltx_tag ltx_tag_float'>Listing 28: </span>User-defined types</figcaption> 
-<div class="ltx_listing ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_listing"+<div class='ltx_listing ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_listing'
-<div class="ltx_listing_data"><a href="data:text/plain;base64,dXNlIFN0ZElPOiBhbGw7Cgp0eXBlZGVmIGludCBteWludDsKdHlwZWRlZiBmbG9hdFsxMDAsMTAw%0AXSByZWFsX21hdHJpeDsKdHlwZWRlZiBkb3VibGVbMl0gY29tcGxleDsKCmludCBtYWluKCkKewog%0AIGNvbXBsZXggICBjOwogIGRvdWJsZVsyXSBkOwoKICBjID0gKGNvbXBsZXgpIFsxLjIsMi4zXTsK%0AICBkID0gKGRvdWJsZVsyXSkgYzsKICBwcmludChkKTsKCiAgcmV0dXJuIDA7Cn0=%0A">⬇</a></div> +<div class='ltx_listing_data'><a href='data:text/plain;base64,dXNlIFN0ZElPOiBhbGw7Cgp0eXBlZGVmIGludCBteWludDsKdHlwZWRlZiBmbG9hdFsxMDAsMTAw%0AXSByZWFsX21hdHJpeDsKdHlwZWRlZiBkb3VibGVbMl0gY29tcGxleDsKCmludCBtYWluKCkKewog%0AIGNvbXBsZXggICBjOwogIGRvdWJsZVsyXSBkOwoKICBjID0gKGNvbXBsZXgpIFsxLjIsMi4zXTsK%0AICBkID0gKGRvdWJsZVsyXSkgYzsKICBwcmludChkKTsKCiAgcmV0dXJuIDA7Cn0=%0A'>⬇</a></div> 
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">1</span></span><span class="ltx_text ltx_lst_keyword ltx_font_bold">use</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">StdIO</span>:<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">all</span>;+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>1</span></span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>use</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>StdIO</span>:<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>all</span>;
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">2</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>2</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">3</span></span><span class="ltx_text ltx_lst_identifier">typedef</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_keyword ltx_font_bold">int</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">myint</span>;+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>3</span></span><span class='ltx_text ltx_lst_identifier'>typedef</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>int</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>myint</span>;
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">4</span></span><span class="ltx_text ltx_lst_identifier">typedef</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_keyword ltx_font_bold">float</span>[100,100]<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">real_matrix</span>;+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>4</span></span><span class='ltx_text ltx_lst_identifier'>typedef</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>float</span>[100,100]<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>real_matrix</span>;
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">5</span></span><span class="ltx_text ltx_lst_identifier">typedef</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_keyword ltx_font_bold">double</span>[2]<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">complex</span>;+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>5</span></span><span class='ltx_text ltx_lst_identifier'>typedef</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>double</span>[2]<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>complex</span>;
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">6</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>6</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">7</span></span><span class="ltx_text ltx_lst_keyword ltx_font_bold">int</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">main</span>()+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>7</span></span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>int</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>main</span>()
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">8</span></span>{+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>8</span></span>{
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">9</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">complex</span><span class="ltx_text ltx_lst_space">   </span><span class="ltx_text ltx_lst_identifier">c</span>;+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>9</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>complex</span><span class='ltx_text ltx_lst_space'>   </span><span class='ltx_text ltx_lst_identifier'>c</span>;
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">10</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_keyword ltx_font_bold">double</span>[2]<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">d</span>;+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>10</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>double</span>[2]<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>d</span>;
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">11</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>11</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">12</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">c</span><span class="ltx_text ltx_lst_space"> </span>=<span class="ltx_text ltx_lst_space"> </span>(<span class="ltx_text ltx_lst_identifier">complex</span>)<span class="ltx_text ltx_lst_space"> </span>[1.2,2.3];+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>12</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>c</span><span class='ltx_text ltx_lst_space'> </span>=<span class='ltx_text ltx_lst_space'> </span>(<span class='ltx_text ltx_lst_identifier'>complex</span>)<span class='ltx_text ltx_lst_space'> </span>[1.2,2.3];
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">13</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">d</span><span class="ltx_text ltx_lst_space"> </span>=<span class="ltx_text ltx_lst_space"> </span>(<span class="ltx_text ltx_lst_keyword ltx_font_bold">double</span>[2])<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">c</span>;+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>13</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>d</span><span class='ltx_text ltx_lst_space'> </span>=<span class='ltx_text ltx_lst_space'> </span>(<span class='ltx_text ltx_lst_keyword ltx_font_bold'>double</span>[2])<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>c</span>;
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">14</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">print</span>(<span class="ltx_text ltx_lst_identifier">d</span>);+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>14</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>print</span>(<span class='ltx_text ltx_lst_identifier'>d</span>);
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">15</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>15</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">16</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_keyword ltx_font_bold">return</span><span class="ltx_text ltx_lst_space"> </span>0;+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>16</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>return</span><span class='ltx_text ltx_lst_space'> </span>0;
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">17</span></span>}+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>17</span></span>}
 </div> </div>
 </div> </div>
 </figure> </figure>
-<div id="Ch3.S3.SS1.p2class="ltx_para"+<div id='Ch3.S3.SS1.p2class='ltx_para'
-<p class="ltx_p">Following the keyword <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">typedef</span> we have the defining type+<p class='ltx_p'>Following the keyword <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>typedef</span> we have the defining type
 followed by the defined type name. followed by the defined type name.
-Note that in contrast to <span class="ltx_text ltx_font_smallcaps">C</span>, defining type and defined type are+Note that in contrast to <span class='ltx_text ltx_font_smallcaps'>C</span>, defining type and defined type are
 not considered synonyms. not considered synonyms.
-Types like <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting"><span class="ltx_text ltx_lst_keyword ltx_font_bold">double</span>[2]</span> and <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">complex</span> are distinguished +Types like <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'><span class='ltx_text ltx_lst_keyword ltx_font_bold'>double</span>[2]</span> and <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>complex</span> are distinguished 
-properly and a function that expects a value of type <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting"><span class="ltx_text ltx_lst_keyword ltx_font_bold">double</span>[2]</span> +properly and a function that expects a value of type <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'><span class='ltx_text ltx_lst_keyword ltx_font_bold'>double</span>[2]</span> 
-as an argument will not accept a value of type <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">complex</span> instead.</p>+as an argument will not accept a value of type <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>complex</span> instead.</p>
 </div> </div>
-<div id="Ch3.S3.SS1.p3class="ltx_para"+<div id='Ch3.S3.SS1.p3class='ltx_para'
-<p class="ltx_p"><span class="ltx_text ltx_font_smallcaps">SaC</span> requires explicit type casts to change the type of a value from the+<p class='ltx_p'><span class='ltx_text ltx_font_smallcaps'>SaC</span> requires explicit type casts to change the type of a value from the
 defining type to the defined type or vice versa as in the following defining type to the defined type or vice versa as in the following
 example.</p> example.</p>
 </div> </div>
-<div id="Ch3.S3.SS1.p4class="ltx_para"+<div id='Ch3.S3.SS1.p4class='ltx_para'
-<p class="ltx_p">Note that for the time being any defining type in a type definition+<p class='ltx_p'>Note that for the time being any defining type in a type definition
 must exactly specify some shape; the various less specific types are must exactly specify some shape; the various less specific types are
 not supported. not supported.
Line 3920: Line 4519:
 shape, e.g. a matrix whose rows have different length. shape, e.g. a matrix whose rows have different length.
 There is no doubt that this would be an extremely powerful extension There is no doubt that this would be an extremely powerful extension
-to the homogeneously shaped arrays that <span class="ltx_text ltx_font_smallcaps">SaC</span> supports today, but it+to the homogeneously shaped arrays that <span class='ltx_text ltx_font_smallcaps'>SaC</span> supports today, but it
 would likewise require a non-trivial extension of the code generator would likewise require a non-trivial extension of the code generator
 and runtime system that we leave for future research.</p> and runtime system that we leave for future research.</p>
 </div> </div>
 </section> </section>
-<section id="Ch3.S3.SS2class="ltx_subsection"+<section id='Ch3.S3.SS2class='ltx_subsection'
-<h5 class="ltx_title ltx_title_subsection"+<h5 class='ltx_title ltx_title_subsection'
-<span class="ltx_tag ltx_tag_subsection">3.3.2 </span>Type Conversions</h5>+<span class='ltx_tag ltx_tag_subsection'>3.3.2 </span>Type Conversions</h5>
  
-<div id="Ch3.S3.SS2.p1class="ltx_para"+<div id='Ch3.S3.SS2.p1class='ltx_para'
-<p class="ltx_p"><span class="ltx_text ltx_font_smallcaps">SaC</span> uses <span class="ltx_text ltx_font_smallcaps">C</span>-like cast expressions to change the type of an+<p class='ltx_p'><span class='ltx_text ltx_font_smallcaps'>SaC</span> uses <span class='ltx_text ltx_font_smallcaps'>C</span>-like cast expressions to change the type of an
 expression whenever the data representation remains unaffected, expression whenever the data representation remains unaffected,
 i.e. between user-defined types and their defining types or i.e. between user-defined types and their defining types or
 vice versa. vice versa.
-In contrast to <span class="ltx_text ltx_font_smallcaps">C</span>, <span class="ltx_text ltx_font_smallcaps">SaC</span> does not use cast expressions to actually+In contrast to <span class='ltx_text ltx_font_smallcaps'>C</span>, <span class='ltx_text ltx_font_smallcaps'>SaC</span> does not use cast expressions to actually
 change data representations, e.g. when converting from an integer change data representations, e.g. when converting from an integer
 type to a floating point type, between floating point types of type to a floating point type, between floating point types of
 different precision or between integer types of different bit different precision or between integer types of different bit
 width. width.
-For all these purposes <span class="ltx_text ltx_font_smallcaps">SaC</span> uses dedicated conversion functions+For all these purposes <span class='ltx_text ltx_font_smallcaps'>SaC</span> uses dedicated conversion functions
 to express the fact that such conversions actually require an to express the fact that such conversions actually require an
 operation performed at runtime rather than just changing the operation performed at runtime rather than just changing the
 type interpretation of a value.</p> type interpretation of a value.</p>
 </div> </div>
-<div id="Ch3.S3.SS2.p2class="ltx_para"+<div id='Ch3.S3.SS2.p2class='ltx_para'
-<p class="ltx_p">These conversion functions are named <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">tobool</span> and <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">tochar</span>+<p class='ltx_p'>These conversion functions are named <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>tobool</span> and <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>tochar</span>
 for converting into non-numerical values. for converting into non-numerical values.
 For all numerical types these functions are named “to” plus an For all numerical types these functions are named “to” plus an
 optional “u” for unsigned integer types followed by the optional “u” for unsigned integer types followed by the
-first letter of the type name (“ll” in the case of <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting"><span class="ltx_text ltx_lst_identifier">long</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">long</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_keyword ltx_font_bold">int</span></span>). +first letter of the type name (“ll” in the case of <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'><span class='ltx_text ltx_lst_identifier'>long</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>long</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>int</span></span>). 
-The following example illustrates type conversions in <span class="ltx_text ltx_font_smallcaps">SaC</span>.</p>+The following example illustrates type conversions in <span class='ltx_text ltx_font_smallcaps'>SaC</span>.</p>
 </div> </div>
-<figure id="LST29class="ltx_float ltx_lstlisting ltx_role_listing"+<figure id='LST29class='ltx_float ltx_lstlisting ltx_role_listing'
-<figcaption class="ltx_caption"><span class="ltx_tag ltx_tag_float">Listing 29: </span>Type conversions</figcaption> +<figcaption class='ltx_caption'><span class='ltx_tag ltx_tag_float'>Listing 29: </span>Type conversions</figcaption> 
-<div class="ltx_listing ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_listing"+<div class='ltx_listing ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_listing'
-<div class="ltx_listing_data"><a href="data:text/plain;base64,dXNlIFNjYWxhckFyaXRoOiBhbGw7CnVzZSBTdGRJTzogYWxsOwoKaW50IG1haW4oKQp7CiAgZG91%0AYmxlIHg7CiAgZmxvYXQgeTsKICBpbnQgejsKCiAgeCA9IDIuMzsKICBwcmludCh4KTsKCiAgeSA9%0AIHRvZih4KTsKICBwcmludCh5KTsKCiAgeiA9IHRvaSh5KTsKICBwcmludCh6KTsKCiAgcmV0dXJu%0AIHo7Cn0=%0A">⬇</a></div> +<div class='ltx_listing_data'><a href='data:text/plain;base64,dXNlIFNjYWxhckFyaXRoOiBhbGw7CnVzZSBTdGRJTzogYWxsOwoKaW50IG1haW4oKQp7CiAgZG91%0AYmxlIHg7CiAgZmxvYXQgeTsKICBpbnQgejsKCiAgeCA9IDIuMzsKICBwcmludCh4KTsKCiAgeSA9%0AIHRvZih4KTsKICBwcmludCh5KTsKCiAgeiA9IHRvaSh5KTsKICBwcmludCh6KTsKCiAgcmV0dXJu%0AIHo7Cn0=%0A'>⬇</a></div> 
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">1</span></span><span class="ltx_text ltx_lst_keyword ltx_font_bold">use</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">ScalarArith</span>:<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">all</span>;+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>1</span></span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>use</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>ScalarArith</span>:<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>all</span>;
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">2</span></span><span class="ltx_text ltx_lst_keyword ltx_font_bold">use</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">StdIO</span>:<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">all</span>;+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>2</span></span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>use</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>StdIO</span>:<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>all</span>;
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">3</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>3</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">4</span></span><span class="ltx_text ltx_lst_keyword ltx_font_bold">int</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">main</span>()+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>4</span></span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>int</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>main</span>()
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">5</span></span>{+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>5</span></span>{
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">6</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_keyword ltx_font_bold">double</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">x</span>;+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>6</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>double</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>x</span>;
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">7</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_keyword ltx_font_bold">float</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">y</span>;+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>7</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>float</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>y</span>;
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">8</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_keyword ltx_font_bold">int</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">z</span>;+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>8</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>int</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>z</span>;
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">9</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>9</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">10</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">x</span><span class="ltx_text ltx_lst_space"> </span>=<span class="ltx_text ltx_lst_space"> </span>2.3;+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>10</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>x</span><span class='ltx_text ltx_lst_space'> </span>=<span class='ltx_text ltx_lst_space'> </span>2.3;
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">11</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">print</span>(<span class="ltx_text ltx_lst_identifier">x</span>);+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>11</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>print</span>(<span class='ltx_text ltx_lst_identifier'>x</span>);
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">12</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>12</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">13</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">y</span><span class="ltx_text ltx_lst_space"> </span>=<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">tof</span>(<span class="ltx_text ltx_lst_identifier">x</span>);+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>13</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>y</span><span class='ltx_text ltx_lst_space'> </span>=<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>tof</span>(<span class='ltx_text ltx_lst_identifier'>x</span>);
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">14</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">print</span>(<span class="ltx_text ltx_lst_identifier">y</span>);+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>14</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>print</span>(<span class='ltx_text ltx_lst_identifier'>y</span>);
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">15</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>15</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">16</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">z</span><span class="ltx_text ltx_lst_space"> </span>=<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">toi</span>(<span class="ltx_text ltx_lst_identifier">y</span>);+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>16</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>z</span><span class='ltx_text ltx_lst_space'> </span>=<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>toi</span>(<span class='ltx_text ltx_lst_identifier'>y</span>);
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">17</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">print</span>(<span class="ltx_text ltx_lst_identifier">z</span>);+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>17</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>print</span>(<span class='ltx_text ltx_lst_identifier'>z</span>);
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">18</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>18</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">19</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_keyword ltx_font_bold">return</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">z</span>;+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>19</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>return</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>z</span>;
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">20</span></span>}+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>20</span></span>}
 </div> </div>
 </div> </div>
Line 4021: Line 4620:
 </section> </section>
 </section> </section>
-<section id="Ch4class="ltx_chapter"+<section id='Ch4class='ltx_chapter'
-<h3 class="ltx_title ltx_title_chapter"+<h3 class='ltx_title ltx_title_chapter'
-<span class="ltx_tag ltx_tag_chapter">Chapter 4 </span>With-Loops</h3>+<span class='ltx_tag ltx_tag_chapter'>Chapter 4 </span>With-Loops</h3>
  
-<div id="Ch4.p1class="ltx_para"+<div id='Ch4.p1class='ltx_para'
-<p class="ltx_p">This trail aims at providing a hands-on introduction to the +<p class='ltx_p'>This trail aims at providing a hands-on introduction to the 
-key language construct of <span class="ltx_text ltx_font_smallcaps">SaC</span>: the with-loop.+key language construct of <span class='ltx_text ltx_font_smallcaps'>SaC</span>: the with-loop.
 It constitutes the generalisation of the It constitutes the generalisation of the
-set-expression as introduced in the lesson <a href="#Ch2.S2title="2.2 Lesson 2: Shape-Invariant Programming ‣ Chapter 2 Array Programming Basics ‣ Part I Trails Covering the Basics of SaCclass="ltx_ref"><span class="ltx_text ltx_ref_tag">2.2</span></a> on +set-expression as introduced in the lesson <a href='#Ch2.S2title='2.2 Lesson 2: Shape-Invariant Programming ‣ Chapter 2 Array Programming Basics ‣ Part I Trails Covering the Basics of SaCclass='ltx_ref'><span class='ltx_text ltx_ref_tag'>2.2</span></a> on 
-<span class="ltx_text ltx_font_bold">Shape-Invariant Programming</span>+<span class='ltx_text ltx_font_bold'>Shape-Invariant Programming</span>
 and can be seen as a shape-invariant form of the map-reduce template or and can be seen as a shape-invariant form of the map-reduce template or
 the array comprehensions found in other functional languages. the array comprehensions found in other functional languages.
Line 4037: Line 4636:
 into high-performance, concurrently executable code.</p> into high-performance, concurrently executable code.</p>
 </div> </div>
-<div id="Ch4.p2class="ltx_para"+<div id='Ch4.p2class='ltx_para'
-<p class="ltx_p ltx_align_center">+<p class='ltx_p ltx_align_center'>
  
-<span class="ltx_inline-block ltx_minipage ltx_align_middle ltx_framed_rectanglestyle="width:390.3pt;"+<span class='ltx_inline-block ltx_minipage ltx_align_middle ltx_framed_rectanglestyle='width:390.3pt;'
-<span class="ltx_p"><span class="ltx_text ltx_font_bold">A note for language design freaks:</span></span> +<span class='ltx_p'><span class='ltx_text ltx_font_bold'>A note for language design freaks:</span></span> 
-<span class="ltx_p"><span class="ltx_text ltx_font_italic">In fact, almost all array operations introduced in earlier+<span class='ltx_p'><span class='ltx_text ltx_font_italic'>In fact, almost all array operations introduced in earlier
 trails are defined by with-loops within the standard library. trails are defined by with-loops within the standard library.
 This design combines two major advantages:</span></span> This design combines two major advantages:</span></span>
-<span id="Ch4.I1class="ltx_itemize"+<span id='Ch4.I1class='ltx_itemize'
-<span id="Ch4.I1.i1class="ltx_itemstyle="list-style-type:none;"><span class="ltx_tag ltx_tag_itemize"><span class="ltx_text ltx_font_italic">•</span></span>  +<span id='Ch4.I1.i1class='ltx_itemstyle='list-style-type:none;'><span class='ltx_tag ltx_tag_itemize'><span class='ltx_text ltx_font_italic'>•</span></span>  
-<span id="Ch4.I1.i1.p1class="ltx_para"+<span id='Ch4.I1.i1.p1class='ltx_para'
-<span class="ltx_p"><em class="ltx_emph ltx_font_italic">better performance</em><span class="ltx_text ltx_font_italic">, as the conformity enables optimisations to be more generally applicable, and</span></span>+<span class='ltx_p'><em class='ltx_emph ltx_font_italic'>better performance</em><span class='ltx_text ltx_font_italic'>, as the conformity enables optimisations to be more generally applicable, and</span></span>
 </span></span> </span></span>
-<span id="Ch4.I1.i2class="ltx_itemstyle="list-style-type:none;"><span class="ltx_tag ltx_tag_itemize"><span class="ltx_text ltx_font_italic">•</span></span>  +<span id='Ch4.I1.i2class='ltx_itemstyle='list-style-type:none;'><span class='ltx_tag ltx_tag_itemize'><span class='ltx_text ltx_font_italic'>•</span></span>  
-<span id="Ch4.I1.i2.p1class="ltx_para"+<span id='Ch4.I1.i2.p1class='ltx_para'
-<span class="ltx_p"><em class="ltx_emph ltx_font_italic">increased flexibility</em><span class="ltx_text ltx_font_italic">, as the user can modify the definition+<span class='ltx_p'><em class='ltx_emph ltx_font_italic'>increased flexibility</em><span class='ltx_text ltx_font_italic'>, as the user can modify the definition
 of all standard operations.</span></span> of all standard operations.</span></span>
 </span></span> </span></span>
Line 4059: Line 4658:
 </p> </p>
 </div> </div>
-<div id="Ch4.p3class="ltx_para"+<div id='Ch4.p3class='ltx_para'
-<p class="ltx_p">The introduction of with-loops comes in a single lesson which step-wise +<p class='ltx_p'>The introduction of with-loops comes in a single lesson which step-wise 
-introduces all features and variants of with-loops in <span class="ltx_text ltx_font_smallcaps">SaC</span>.</p>+introduces all features and variants of with-loops in <span class='ltx_text ltx_font_smallcaps'>SaC</span>.</p>
 </div> </div>
-<section id="Ch4.S1class="ltx_section"+<section id='Ch4.S1class='ltx_section'
-<h4 class="ltx_title ltx_title_section"+<h4 class='ltx_title ltx_title_section'
-<span class="ltx_tag ltx_tag_section">4.1 </span>Lesson 6: with-loop Basics</h4>+<span class='ltx_tag ltx_tag_section'>4.1 </span>Lesson 6: with-loop Basics</h4>
  
-<section id="Ch4.S1.SS1class="ltx_subsection"+<section id='Ch4.S1.SS1class='ltx_subsection'
-<h5 class="ltx_title ltx_title_subsection"+<h5 class='ltx_title ltx_title_subsection'
-<span class="ltx_tag ltx_tag_subsection">4.1.1 </span>Basic Components</h5>+<span class='ltx_tag ltx_tag_subsection'>4.1.1 </span>Basic Components</h5>
  
-<div id="Ch4.S1.SS1.p1class="ltx_para"+<div id='Ch4.S1.SS1.p1class='ltx_para'
-<p class="ltx_p">Generally, with-loops are composed of three different components:</p>+<p class='ltx_p'>Generally, with-loops are composed of three different components:</p>
 </div> </div>
-<div id="Ch4.S1.SS1.p2class="ltx_para"+<div id='Ch4.S1.SS1.p2class='ltx_para'
-<ul id="Ch4.I2class="ltx_itemize"+<ul id='Ch4.I2class='ltx_itemize'
-<li id="Ch4.I2.i1class="ltx_itemstyle="list-style-type:none;"+<li id='Ch4.I2.i1class='ltx_itemstyle='list-style-type:none;'
-<span class="ltx_tag ltx_tag_itemize">•</span>  +<span class='ltx_tag ltx_tag_itemize'>•</span>  
-<div id="Ch4.I2.i1.p1class="ltx_para"+<div id='Ch4.I2.i1.p1class='ltx_para'
-<p class="ltx_p">sets of index vectors (referred to as <em class="ltx_emph">generator-ranges</em>),</p>+<p class='ltx_p'>sets of index vectors (referred to as <em class='ltx_emph'>generator-ranges</em>),</p>
 </div> </div>
 </li> </li>
-<li id="Ch4.I2.i2class="ltx_itemstyle="list-style-type:none;"+<li id='Ch4.I2.i2class='ltx_itemstyle='list-style-type:none;'
-<span class="ltx_tag ltx_tag_itemize">•</span>  +<span class='ltx_tag ltx_tag_itemize'>•</span>  
-<div id="Ch4.I2.i2.p1class="ltx_para"+<div id='Ch4.I2.i2.p1class='ltx_para'
-<p class="ltx_p">functions that map index vectors to arbitrary values +<p class='ltx_p'>functions that map index vectors to arbitrary values 
-(<em class="ltx_emph">generator-expressions</em>), and</p>+(<em class='ltx_emph'>generator-expressions</em>), and</p>
 </div> </div>
 </li> </li>
-<li id="Ch4.I2.i3class="ltx_itemstyle="list-style-type:none;"+<li id='Ch4.I2.i3class='ltx_itemstyle='list-style-type:none;'
-<span class="ltx_tag ltx_tag_itemize">•</span>  +<span class='ltx_tag ltx_tag_itemize'>•</span>  
-<div id="Ch4.I2.i3.p1class="ltx_para"+<div id='Ch4.I2.i3.p1class='ltx_para'
-<p class="ltx_p">combining operations (<em class="ltx_emph">with-loop operators</em>) that take such+<p class='ltx_p'>combining operations (<em class='ltx_emph'>with-loop operators</em>) that take such
 values and construct arrays from them.</p> values and construct arrays from them.</p>
 </div> </div>
Line 4098: Line 4697:
 </ul> </ul>
 </div> </div>
-<div id="Ch4.S1.SS1.p3class="ltx_para"+<div id='Ch4.S1.SS1.p3class='ltx_para'
-<p class="ltx_p">In its simplest form, a with-loop contains one component of each kind.+<p class='ltx_p'>In its simplest form, a with-loop contains one component of each kind.
 It then maps the function defined by the generator-expression to all It then maps the function defined by the generator-expression to all
 index vectors from the generator-range in a data-parallel index vectors from the generator-range in a data-parallel
Line 4106: Line 4705:
 Let’s have a look at a simple example:</p> Let’s have a look at a simple example:</p>
 </div> </div>
-<figure id="LST30class="ltx_float ltx_lstlisting ltx_role_listing"+<figure id='LST30class='ltx_float ltx_lstlisting ltx_role_listing'
-<figcaption class="ltx_caption"><span class="ltx_tag ltx_tag_float">Listing 30: </span>Simple with-loop</figcaption> +<figcaption class='ltx_caption'><span class='ltx_tag ltx_tag_float'>Listing 30: </span>Simple with-loop</figcaption> 
-<div class="ltx_listing ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_listing"+<div class='ltx_listing ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_listing'
-<div class="ltx_listing_data"><a href="data:text/plain;base64,dXNlIFN0ZElPOiBhbGw7CnVzZSBBcnJheTogYWxsOwoKaW50IG1haW4oKQp7CiAgYSA9IHdpdGgg%0AewogICAgICAgIChbMF0gPD0gaXYgPCBbNV0pOiA0MjsKICAgICAgfTogZ2VuYXJyYXkoWzddLCAw%0AKTsKCiAgcHJpbnQoYSk7CiAgcmV0dXJuIDA7Cn0=%0A">⬇</a></div> +<div class='ltx_listing_data'><a href='data:text/plain;base64,dXNlIFN0ZElPOiBhbGw7CnVzZSBBcnJheTogYWxsOwoKaW50IG1haW4oKQp7CiAgYSA9IHdpdGgg%0AewogICAgICAgIChbMF0gPD0gaXYgPCBbNV0pOiA0MjsKICAgICAgfTogZ2VuYXJyYXkoWzddLCAw%0AKTsKCiAgcHJpbnQoYSk7CiAgcmV0dXJuIDA7Cn0=%0A'>⬇</a></div> 
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">1</span></span><span class="ltx_text ltx_lst_keyword ltx_font_bold">use</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">StdIO</span>:<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">all</span>;+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>1</span></span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>use</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>StdIO</span>:<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>all</span>;
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">2</span></span><span class="ltx_text ltx_lst_keyword ltx_font_bold">use</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">Array</span>:<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">all</span>;+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>2</span></span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>use</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>Array</span>:<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>all</span>;
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">3</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>3</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">4</span></span><span class="ltx_text ltx_lst_keyword ltx_font_bold">int</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">main</span>()+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>4</span></span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>int</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>main</span>()
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">5</span></span>{+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>5</span></span>{
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">6</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">a</span><span class="ltx_text ltx_lst_space"> </span>=<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_keyword ltx_font_bold">with</span><span class="ltx_text ltx_lst_space"> </span>{+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>6</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>a</span><span class='ltx_text ltx_lst_space'> </span>=<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>with</span><span class='ltx_text ltx_lst_space'> </span>{
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">7</span></span><span class="ltx_text ltx_lst_space">        </span>([0]<span class="ltx_text ltx_lst_space"> </span>&lt;=<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">iv</span><span class="ltx_text ltx_lst_space"> </span>&lt;<span class="ltx_text ltx_lst_space"> </span>[5]):<span class="ltx_text ltx_lst_space"> </span>42;+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>7</span></span><span class='ltx_text ltx_lst_space'>        </span>([0]<span class='ltx_text ltx_lst_space'> </span>&lt;=<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>iv</span><span class='ltx_text ltx_lst_space'> </span>&lt;<span class='ltx_text ltx_lst_space'> </span>[5]):<span class='ltx_text ltx_lst_space'> </span>42;
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">8</span></span><span class="ltx_text ltx_lst_space">      </span>}:<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">genarray</span>([7],<span class="ltx_text ltx_lst_space"> </span>0);+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>8</span></span><span class='ltx_text ltx_lst_space'>      </span>}:<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>genarray</span>([7],<span class='ltx_text ltx_lst_space'> </span>0);
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">9</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>9</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">10</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">print</span>(<span class="ltx_text ltx_lst_identifier">a</span>);+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>10</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>print</span>(<span class='ltx_text ltx_lst_identifier'>a</span>);
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">11</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_keyword ltx_font_bold">return</span><span class="ltx_text ltx_lst_space"> </span>0;+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>11</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>return</span><span class='ltx_text ltx_lst_space'> </span>0;
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">12</span></span>}+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>12</span></span>}
 </div> </div>
 </div> </div>
 </figure> </figure>
-<div id="Ch4.S1.SS1.p4class="ltx_para"+<div id='Ch4.S1.SS1.p4class='ltx_para'
-<p class="ltx_p">Here, the with-loop in lines 6–8 computes +<p class='ltx_p'>Here, the with-loop in lines 6–8 computes 
-the vector <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting">[42,<span class="ltx_text ltx_lst_space"> </span>42,<span class="ltx_text ltx_lst_space"> </span>42,<span class="ltx_text ltx_lst_space"> </span>42,<span class="ltx_text ltx_lst_space"> </span>42,<span class="ltx_text ltx_lst_space"> </span>0,<span class="ltx_text ltx_lst_space"> </span>0]</span>.+the vector <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>[42,<span class='ltx_text ltx_lst_space'> </span>42,<span class='ltx_text ltx_lst_space'> </span>42,<span class='ltx_text ltx_lst_space'> </span>42,<span class='ltx_text ltx_lst_space'> </span>42,<span class='ltx_text ltx_lst_space'> </span>0,<span class='ltx_text ltx_lst_space'> </span>0]</span>.
 The generator-range is specified by the code snippet in round The generator-range is specified by the code snippet in round
-brackets in line 7: <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting">([0]<span class="ltx_text ltx_lst_space"> </span>&lt;=<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">iv</span><span class="ltx_text ltx_lst_space"> </span>&lt;<span class="ltx_text ltx_lst_space"> </span>[5])</span>.+brackets in line 7: <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>([0]<span class='ltx_text ltx_lst_space'> </span>&lt;=<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>iv</span><span class='ltx_text ltx_lst_space'> </span>&lt;<span class='ltx_text ltx_lst_space'> </span>[5])</span>.
 It denotes the set of vectors It denotes the set of vectors
-<math id="Ch4.S1.SS1.p4.m1class="ltx_Mathalttext="{{\{\textrm{\lstinline 1}}}\}display="inline"><mrow><mo stretchy="false">{</mo><mrow class="ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting"><mtext>[0],</mtext><mtext> </mtext><mtext>[1],</mtext><mtext> </mtext><mtext>…,</mtext><mtext> </mtext><mtext>[4]</mtext></mrow><mo stretchy="false">}</mo></mrow></math>+<math id='Ch4.S1.SS1.p4.m1class='ltx_Mathalttext='{{\{\textrm{\lstinline 1}}}\}display='inline'><mrow><mo stretchy='false'>{</mo><mrow class='ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'><mtext>[0],</mtext><mtext> </mtext><mtext>[1],</mtext><mtext> </mtext><mtext>…,</mtext><mtext> </mtext><mtext>[4]</mtext></mrow><mo stretchy='false'>}</mo></mrow></math>
-The generator-expression here is the constant <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting">42</span>+The generator-expression here is the constant <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>42</span>
-Hence, the mapping function <math id="Ch4.S1.SS1.p4.m2class="ltx_Mathalttext="f_{\text{map}}display="inline"><msub><mi>f</mi><mtext>map</mtext></msub></math> maps any index vector <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">iv</span> +Hence, the mapping function <math id='Ch4.S1.SS1.p4.m2class='ltx_Mathalttext='f_{\text{map}}display='inline'><msub><mi>f</mi><mtext>map</mtext></msub></math> maps any index vector <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>iv</span> 
-into <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting">42</span>, i.e. we have <math id="Ch4.S1.SS1.p4.m3class="ltx_Mathalttext="{{f_{\text{map}}\textrm{\lstinline 1}}}display="inline"><mrow><msub><mi>f</mi><mtext>map</mtext></msub><mo>⁢</mo><mrow class="ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting"><mtext>(</mtext><mtext>iv</mtext><mtext>)</mtext><mtext> </mtext><mtext>=</mtext><mtext> </mtext><mtext>42</mtext></mrow></mrow></math>.+into <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>42</span>, i.e. we have <math id='Ch4.S1.SS1.p4.m3class='ltx_Mathalttext='{{f_{\text{map}}\textrm{\lstinline 1}}}display='inline'><mrow><msub><mi>f</mi><mtext>map</mtext></msub><mo>⁢</mo><mrow class='ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'><mtext>(</mtext><mtext>iv</mtext><mtext>)</mtext><mtext> </mtext><mtext>=</mtext><mtext> </mtext><mtext>42</mtext></mrow></mrow></math>.
 Finally, the with-loop operation is specified as Finally, the with-loop operation is specified as
-<span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting"><span class="ltx_text ltx_lst_identifier">genarray</span>([7],<span class="ltx_text ltx_lst_space"> </span>0)</span>+<span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'><span class='ltx_text ltx_lst_identifier'>genarray</span>([7],<span class='ltx_text ltx_lst_space'> </span>0)</span>
-This operation computes an array of shape <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting">[7]</span> where:+This operation computes an array of shape <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>[7]</span> where:
 </p> </p>
 </div> </div>
-<div id="Ch4.S1.SS1.p5class="ltx_para"+<div id='Ch4.S1.SS1.p5class='ltx_para'
-<table id="Ch4.Ex1class="ltx_equation ltx_eqn_table">+<table id='Ch4.Ex1class='ltx_equation ltx_eqn_table'>
  
-<tr class="ltx_equation ltx_eqn_row ltx_align_baseline"+<tr class='ltx_equation ltx_eqn_row ltx_align_baseline'
-<td class="ltx_eqn_cell ltx_eqn_center_padleft"></td> +<td class='ltx_eqn_cell ltx_eqn_center_padleft'></td> 
-<td class="ltx_eqn_cell ltx_align_center"><math id="Ch4.Ex1.m1class="ltx_Mathalttext="{{{{{{{{\textrm{\lstinline 1}}}=\begin{cases}f_{\text{map}}\textrm{\lstinline 1}}}&amp;%+<td class='ltx_eqn_cell ltx_align_center'><math id='Ch4.Ex1.m1class='ltx_Mathalttext='{{{{{{{{\textrm{\lstinline 1}}}=\begin{cases}f_{\text{map}}\textrm{\lstinline 1}}}&%
 \textrm{\lstinline 1}}}\in\{\textrm{\lstinline 1}}}\}\\ \textrm{\lstinline 1}}}\in\{\textrm{\lstinline 1}}}\}\\
-0&amp;\text{otherwise.}\end{cases}display="block"><mrow><mrow class="ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting"><mtext>a</mtext><mtext>[</mtext><mtext>iv</mtext><mtext>]</mtext></mrow><mo>=</mo><mrow><mo>{</mo><mtable columnspacing="5ptdisplaystyle="truerowspacing="0pt"><mtr><mtd columnalign="left"><mrow><msub><mi>f</mi><mtext>map</mtext></msub><mo>⁢</mo><mrow class="ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting"><mtext>(</mtext><mtext>iv</mtext><mtext>)</mtext></mrow></mrow></mtd><mtd columnalign="left"><mrow><mtext class="ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">iv</mtext><mo>∈</mo><mrow><mo stretchy="false">{</mo><mrow class="ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting"><mtext>[0],</mtext><mtext> </mtext><mtext>[1],</mtext><mtext> </mtext><mtext>…,</mtext><mtext> </mtext><mtext>[4]</mtext></mrow><mo stretchy="false">}</mo></mrow></mrow></mtd></mtr><mtr><mtd columnalign="left"><mn>0</mn></mtd><mtd columnalign="left"><mtext>otherwise.</mtext></mtd></mtr></mtable></mrow></mrow></math></td> +0&\text{otherwise.}\end{cases}display='block'><mrow><mrow class='ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'><mtext>a</mtext><mtext>[</mtext><mtext>iv</mtext><mtext>]</mtext></mrow><mo>=</mo><mrow><mo>{</mo><mtable columnspacing='5ptdisplaystyle='truerowspacing='0pt'><mtr><mtd columnalign='left'><mrow><msub><mi>f</mi><mtext>map</mtext></msub><mo>⁢</mo><mrow class='ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'><mtext>(</mtext><mtext>iv</mtext><mtext>)</mtext></mrow></mrow></mtd><mtd columnalign='left'><mrow><mtext class='ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>iv</mtext><mo>∈</mo><mrow><mo stretchy='false'>{</mo><mrow class='ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'><mtext>[0],</mtext><mtext> </mtext><mtext>[1],</mtext><mtext> </mtext><mtext>…,</mtext><mtext> </mtext><mtext>[4]</mtext></mrow><mo stretchy='false'>}</mo></mrow></mrow></mtd></mtr><mtr><mtd columnalign='left'><mn>0</mn></mtd><mtd columnalign='left'><mtext>otherwise.</mtext></mtd></mtr></mtable></mrow></mrow></math></td> 
-<td class="ltx_eqn_cell ltx_eqn_center_padright"></td>+<td class='ltx_eqn_cell ltx_eqn_center_padright'></td>
 </tr> </tr>
 </table> </table>
 </div> </div>
-<div id="Ch4.S1.SS1.p6class="ltx_para"+<div id='Ch4.S1.SS1.p6class='ltx_para'
-<p class="ltx_p"><span class="ltx_text ltx_font_bold">Generator-ranges</span> and <span class="ltx_text ltx_font_bold">generator-expressions</span> always occur+<p class='ltx_p'><span class='ltx_text ltx_font_bold'>Generator-ranges</span> and <span class='ltx_text ltx_font_bold'>generator-expressions</span> always occur
 in pairs. Jointly they in pairs. Jointly they
-form a syntactical unit, which we refer-to as <span class="ltx_text ltx_font_bold">generator</span>.+form a syntactical unit, which we refer-to as <span class='ltx_text ltx_font_bold'>generator</span>.
 As we will see later, with-loops can contain arbitrary numbers of As we will see later, with-loops can contain arbitrary numbers of
 generators. They are enclosed in curly brackets.</p> generators. They are enclosed in curly brackets.</p>
 </div> </div>
-<div id="Thmtheorem25class="ltx_theorem ltx_theorem_theorem"+<div id='Thmtheorem25class='ltx_theorem ltx_theorem_theorem'
-<h6 class="ltx_title ltx_runin ltx_font_bold ltx_title_theorem">Exercise 25. </h6> +<h6 class='ltx_title ltx_runin ltx_font_bold ltx_title_theorem'>Exercise 25. </h6> 
-<div id="Thmtheorem25.p1class="ltx_para"+<div id='Thmtheorem25.p1class='ltx_para'
-<p class="ltx_p">What result do you expect if we eliminate the generator from the above example?</p>+<p class='ltx_p'>What result do you expect if we eliminate the generator from the above example?</p>
 </div> </div>
-<div id="Thmtheorem25.p2class="ltx_para"+<div id='Thmtheorem25.p2class='ltx_para'
-<p class="ltx_p">What results do you expect if we modify the generator-range+<p class='ltx_p'>What results do you expect if we modify the generator-range
 in the above example into:</p> in the above example into:</p>
-<ul id="Ch4.I3class="ltx_itemize"+<ul id='Ch4.I3class='ltx_itemize'
-<li id="Ch4.I3.i1class="ltx_itemstyle="list-style-type:none;"+<li id='Ch4.I3.i1class='ltx_itemstyle='list-style-type:none;'
-<span class="ltx_tag ltx_tag_itemize">•</span>  +<span class='ltx_tag ltx_tag_itemize'>•</span>  
-<div id="Ch4.I3.i1.p1class="ltx_para"+<div id='Ch4.I3.i1.p1class='ltx_para'
-<p class="ltx_p"><span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting">([-2]<span class="ltx_text ltx_lst_space"> </span>&lt;=<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">iv</span><span class="ltx_text ltx_lst_space"> </span>&lt;<span class="ltx_text ltx_lst_space"> </span>[3])</span>?</p>+<p class='ltx_p'><span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>([-2]<span class='ltx_text ltx_lst_space'> </span>&lt;=<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>iv</span><span class='ltx_text ltx_lst_space'> </span>&lt;<span class='ltx_text ltx_lst_space'> </span>[3])</span>?</p>
 </div> </div>
 </li> </li>
-<li id="Ch4.I3.i2class="ltx_itemstyle="list-style-type:none;"+<li id='Ch4.I3.i2class='ltx_itemstyle='list-style-type:none;'
-<span class="ltx_tag ltx_tag_itemize">•</span>  +<span class='ltx_tag ltx_tag_itemize'>•</span>  
-<div id="Ch4.I3.i2.p1class="ltx_para"+<div id='Ch4.I3.i2.p1class='ltx_para'
-<p class="ltx_p"><span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting">([0]<span class="ltx_text ltx_lst_space"> </span>&lt;=<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">iv</span><span class="ltx_text ltx_lst_space"> </span>&lt;<span class="ltx_text ltx_lst_space"> </span>[8])</span>?+<p class='ltx_p'><span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>([0]<span class='ltx_text ltx_lst_space'> </span>&lt;=<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>iv</span><span class='ltx_text ltx_lst_space'> </span>&lt;<span class='ltx_text ltx_lst_space'> </span>[8])</span>?
 </p> </p>
 </div> </div>
 </li> </li>
-<li id="Ch4.I3.i3class="ltx_itemstyle="list-style-type:none;"+<li id='Ch4.I3.i3class='ltx_itemstyle='list-style-type:none;'
-<span class="ltx_tag ltx_tag_itemize">•</span>  +<span class='ltx_tag ltx_tag_itemize'>•</span>  
-<div id="Ch4.I3.i3.p1class="ltx_para"+<div id='Ch4.I3.i3.p1class='ltx_para'
-<p class="ltx_p"><span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting">([6]<span class="ltx_text ltx_lst_space"> </span>&lt;=<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">iv</span><span class="ltx_text ltx_lst_space"> </span>&lt;<span class="ltx_text ltx_lst_space"> </span>[5])</span>?</p>+<p class='ltx_p'><span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>([6]<span class='ltx_text ltx_lst_space'> </span>&lt;=<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>iv</span><span class='ltx_text ltx_lst_space'> </span>&lt;<span class='ltx_text ltx_lst_space'> </span>[5])</span>?</p>
 </div> </div>
 </li> </li>
-<li id="Ch4.I3.i4class="ltx_itemstyle="list-style-type:none;"+<li id='Ch4.I3.i4class='ltx_itemstyle='list-style-type:none;'
-<span class="ltx_tag ltx_tag_itemize">•</span>  +<span class='ltx_tag ltx_tag_itemize'>•</span>  
-<div id="Ch4.I3.i4.p1class="ltx_para"+<div id='Ch4.I3.i4.p1class='ltx_para'
-<p class="ltx_p"><span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting">([8]<span class="ltx_text ltx_lst_space"> </span>&lt;=<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">iv</span><span class="ltx_text ltx_lst_space"> </span>&lt;<span class="ltx_text ltx_lst_space"> </span>[5])</span>?</p>+<p class='ltx_p'><span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>([8]<span class='ltx_text ltx_lst_space'> </span>&lt;=<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>iv</span><span class='ltx_text ltx_lst_space'> </span>&lt;<span class='ltx_text ltx_lst_space'> </span>[5])</span>?</p>
 </div> </div>
 </li> </li>
-<li id="Ch4.I3.i5class="ltx_itemstyle="list-style-type:none;"+<li id='Ch4.I3.i5class='ltx_itemstyle='list-style-type:none;'
-<span class="ltx_tag ltx_tag_itemize">•</span>  +<span class='ltx_tag ltx_tag_itemize'>•</span>  
-<div id="Ch4.I3.i5.p1class="ltx_para"+<div id='Ch4.I3.i5.p1class='ltx_para'
-<p class="ltx_p"><span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting">([6]<span class="ltx_text ltx_lst_space"> </span>&lt;=<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">iv</span><span class="ltx_text ltx_lst_space"> </span>&lt;<span class="ltx_text ltx_lst_space"> </span>[0])</span>?</p>+<p class='ltx_p'><span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>([6]<span class='ltx_text ltx_lst_space'> </span>&lt;=<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>iv</span><span class='ltx_text ltx_lst_space'> </span>&lt;<span class='ltx_text ltx_lst_space'> </span>[0])</span>?</p>
 </div> </div>
 </li> </li>
 </ul> </ul>
-<p class="ltx_p">[<span class="ltx_text ltx_font_bold">Hint:</span> You should compile these examples with the option <span class="ltx_text ltx_font_typewriter">-check c</span>+<p class='ltx_p'>[<span class='ltx_text ltx_font_bold'>Hint:</span> You should compile these examples with the option <span class='ltx_text ltx_font_typewriter'>-check c</span>
 being enabled]</p> being enabled]</p>
 </div> </div>
 </div> </div>
 </section> </section>
-<section id="Ch4.S1.SS2class="ltx_subsection"+<section id='Ch4.S1.SS2class='ltx_subsection'
-<h5 class="ltx_title ltx_title_subsection"+<h5 class='ltx_title ltx_title_subsection'
-<span class="ltx_tag ltx_tag_subsection">4.1.2 </span>Generator Ranges</h5>+<span class='ltx_tag ltx_tag_subsection'>4.1.2 </span>Generator Ranges</h5>
  
-<div id="Ch4.S1.SS2.p1class="ltx_para"+<div id='Ch4.S1.SS2.p1class='ltx_para'
-<p class="ltx_p"><span class="ltx_text ltx_font_smallcaps">SaC</span> offers quite some flexibility when it comes to specifying+<p class='ltx_p'><span class='ltx_text ltx_font_smallcaps'>SaC</span> offers quite some flexibility when it comes to specifying
 generator ranges. generator ranges.
 First of all, the use of index vectors in the bounds enables First of all, the use of index vectors in the bounds enables
-the convenient specification of <math id="Ch4.S1.SS2.p1.m1class="ltx_Mathalttext="ndisplay="inline"><mi>n</mi></math>-dimensional index ranges.+the convenient specification of <math id='Ch4.S1.SS2.p1.m1class='ltx_Mathalttext='ndisplay='inline'><mi>n</mi></math>-dimensional index ranges.
 Let us look at a few examples for the 2-dimensional case:</p> Let us look at a few examples for the 2-dimensional case:</p>
 </div> </div>
-<figure id="LST31class="ltx_float ltx_lstlisting ltx_role_listing"+<figure id='LST31class='ltx_float ltx_lstlisting ltx_role_listing'
-<figcaption class="ltx_caption"><span class="ltx_tag ltx_tag_float">Listing 31: </span>Generator Range Specifications</figcaption> +<figcaption class='ltx_caption'><span class='ltx_tag ltx_tag_float'>Listing 31: </span>Generator Range Specifications</figcaption> 
-<div class="ltx_listing ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_listing"+<div class='ltx_listing ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_listing'
-<div class="ltx_listing_data"><a href="data:text/plain;base64,dXNlIFN0ZElPOiBhbGw7CnVzZSBBcnJheTogYWxsOwoKaW50IG1haW4oKQp7CiAgYSA9IHdpdGgg%0AewogICAgICAgIChbMCwyXSA8PSBbaSxqXSA8IFs1LDZdKTogNDI7CiAgICAgIH06IGdlbmFycmF5%0AKFs1LDZdLCAwKTsKICBwcmludChhKTsKCiAgc2hwID0gWzUsNl07CiAgYSA9IHdpdGggewogICAg%0AICAgICgwKnNocCA8PSBpdiA8IHNocCk6IDQyOwogICAgICB9OiBnZW5hcnJheShzaHAsIDApOwog%0AIHByaW50KGEpOwoKICBhID0gd2l0aCB7CiAgICAgICAgKC4gPCBpdiA8IC4pOiA0MjsKICAgICAg%0AfTogZ2VuYXJyYXkoWzUsNl0sIDApOwogIHByaW50KGEpOwoKICBhID0gd2l0aCB7CiAgICAgICAg%0AKC4gPD0ganY9W3gseV0gPD0gWzQsNV0pOiA0MjsKICAgICAgfTogZ2VuYXJyYXkoIFs1LDZdLCAw%0AKTsKICBwcmludChhKTsKCiAgYSA9IHdpdGggewogICAgICAgICguIDw9IFtpLGpdIDw9IC4gc3Rl%0AcCBbMSw0XSk6IDQyOwogICAgICB9OiBnZW5hcnJheShbNSw2XSwgMCk7CiAgcHJpbnQoYSk7Cgog%0AIGEgPSB3aXRoIHsKICAgICAgICAoLiA8PSBbaSxqXSA8PSAuIHN0ZXAgWzIsNF0gd2lkdGggWzEs%0AMl0pOiA0MjsKICAgICAgfTogZ2VuYXJyYXkoWzUsNl0sIDApOwogIHByaW50KGEpOwoKICByZXR1%0Acm4gMDsKfQ==%0A">⬇</a></div> +<div class='ltx_listing_data'><a href='data:text/plain;base64,dXNlIFN0ZElPOiBhbGw7CnVzZSBBcnJheTogYWxsOwoKaW50IG1haW4oKQp7CiAgYSA9IHdpdGgg%0AewogICAgICAgIChbMCwyXSA8PSBbaSxqXSA8IFs1LDZdKTogNDI7CiAgICAgIH06IGdlbmFycmF5%0AKFs1LDZdLCAwKTsKICBwcmludChhKTsKCiAgc2hwID0gWzUsNl07CiAgYSA9IHdpdGggewogICAg%0AICAgICgwKnNocCA8PSBpdiA8IHNocCk6IDQyOwogICAgICB9OiBnZW5hcnJheShzaHAsIDApOwog%0AIHByaW50KGEpOwoKICBhID0gd2l0aCB7CiAgICAgICAgKC4gPCBpdiA8IC4pOiA0MjsKICAgICAg%0AfTogZ2VuYXJyYXkoWzUsNl0sIDApOwogIHByaW50KGEpOwoKICBhID0gd2l0aCB7CiAgICAgICAg%0AKC4gPD0ganY9W3gseV0gPD0gWzQsNV0pOiA0MjsKICAgICAgfTogZ2VuYXJyYXkoIFs1LDZdLCAw%0AKTsKICBwcmludChhKTsKCiAgYSA9IHdpdGggewogICAgICAgICguIDw9IFtpLGpdIDw9IC4gc3Rl%0AcCBbMSw0XSk6IDQyOwogICAgICB9OiBnZW5hcnJheShbNSw2XSwgMCk7CiAgcHJpbnQoYSk7Cgog%0AIGEgPSB3aXRoIHsKICAgICAgICAoLiA8PSBbaSxqXSA8PSAuIHN0ZXAgWzIsNF0gd2lkdGggWzEs%0AMl0pOiA0MjsKICAgICAgfTogZ2VuYXJyYXkoWzUsNl0sIDApOwogIHByaW50KGEpOwoKICByZXR1%0Acm4gMDsKfQ==%0A'>⬇</a></div> 
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">1</span></span><span class="ltx_text ltx_lst_keyword ltx_font_bold">use</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">StdIO</span>:<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">all</span>;+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>1</span></span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>use</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>StdIO</span>:<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>all</span>;
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">2</span></span><span class="ltx_text ltx_lst_keyword ltx_font_bold">use</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">Array</span>:<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">all</span>;+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>2</span></span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>use</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>Array</span>:<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>all</span>;
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">3</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>3</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">4</span></span><span class="ltx_text ltx_lst_keyword ltx_font_bold">int</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">main</span>()+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>4</span></span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>int</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>main</span>()
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">5</span></span>{+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>5</span></span>{
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">6</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">a</span><span class="ltx_text ltx_lst_space"> </span>=<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_keyword ltx_font_bold">with</span><span class="ltx_text ltx_lst_space"> </span>{+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>6</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>a</span><span class='ltx_text ltx_lst_space'> </span>=<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>with</span><span class='ltx_text ltx_lst_space'> </span>{
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">7</span></span><span class="ltx_text ltx_lst_space">        </span>([0,2]<span class="ltx_text ltx_lst_space"> </span>&lt;=<span class="ltx_text ltx_lst_space"> </span>[<span class="ltx_text ltx_lst_identifier">i</span>,j]<span class="ltx_text ltx_lst_space"> </span>&lt;<span class="ltx_text ltx_lst_space"> </span>[5,6]):<span class="ltx_text ltx_lst_space"> </span>42;+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>7</span></span><span class='ltx_text ltx_lst_space'>        </span>([0,2]<span class='ltx_text ltx_lst_space'> </span>&lt;=<span class='ltx_text ltx_lst_space'> </span>[<span class='ltx_text ltx_lst_identifier'>i</span>,j]<span class='ltx_text ltx_lst_space'> </span>&lt;<span class='ltx_text ltx_lst_space'> </span>[5,6]):<span class='ltx_text ltx_lst_space'> </span>42;
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">8</span></span><span class="ltx_text ltx_lst_space">      </span>}:<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">genarray</span>([5,6],<span class="ltx_text ltx_lst_space"> </span>0);+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>8</span></span><span class='ltx_text ltx_lst_space'>      </span>}:<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>genarray</span>([5,6],<span class='ltx_text ltx_lst_space'> </span>0);
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">9</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">print</span>(<span class="ltx_text ltx_lst_identifier">a</span>);+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>9</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>print</span>(<span class='ltx_text ltx_lst_identifier'>a</span>);
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">10</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>10</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">11</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">shp</span><span class="ltx_text ltx_lst_space"> </span>=<span class="ltx_text ltx_lst_space"> </span>[5,6];+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>11</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>shp</span><span class='ltx_text ltx_lst_space'> </span>=<span class='ltx_text ltx_lst_space'> </span>[5,6];
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">12</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">a</span><span class="ltx_text ltx_lst_space"> </span>=<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_keyword ltx_font_bold">with</span><span class="ltx_text ltx_lst_space"> </span>{+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>12</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>a</span><span class='ltx_text ltx_lst_space'> </span>=<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>with</span><span class='ltx_text ltx_lst_space'> </span>{
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">13</span></span><span class="ltx_text ltx_lst_space">        </span>(0*<span class="ltx_text ltx_lst_identifier">shp</span><span class="ltx_text ltx_lst_space"> </span>&lt;=<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">iv</span><span class="ltx_text ltx_lst_space"> </span>&lt;<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">shp</span>):<span class="ltx_text ltx_lst_space"> </span>42;+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>13</span></span><span class='ltx_text ltx_lst_space'>        </span>(0*<span class='ltx_text ltx_lst_identifier'>shp</span><span class='ltx_text ltx_lst_space'> </span>&lt;=<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>iv</span><span class='ltx_text ltx_lst_space'> </span>&lt;<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>shp</span>):<span class='ltx_text ltx_lst_space'> </span>42;
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">14</span></span><span class="ltx_text ltx_lst_space">      </span>}:<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">genarray</span>(<span class="ltx_text ltx_lst_identifier">shp</span>,<span class="ltx_text ltx_lst_space"> </span>0);+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>14</span></span><span class='ltx_text ltx_lst_space'>      </span>}:<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>genarray</span>(<span class='ltx_text ltx_lst_identifier'>shp</span>,<span class='ltx_text ltx_lst_space'> </span>0);
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">15</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">print</span>(<span class="ltx_text ltx_lst_identifier">a</span>);+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>15</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>print</span>(<span class='ltx_text ltx_lst_identifier'>a</span>);
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">16</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>16</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">17</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">a</span><span class="ltx_text ltx_lst_space"> </span>=<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_keyword ltx_font_bold">with</span><span class="ltx_text ltx_lst_space"> </span>{+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>17</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>a</span><span class='ltx_text ltx_lst_space'> </span>=<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>with</span><span class='ltx_text ltx_lst_space'> </span>{
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">18</span></span><span class="ltx_text ltx_lst_space">        </span>(.<span class="ltx_text ltx_lst_space"> </span>&lt;<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">iv</span><span class="ltx_text ltx_lst_space"> </span>&lt;<span class="ltx_text ltx_lst_space"> </span>.):<span class="ltx_text ltx_lst_space"> </span>42;+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>18</span></span><span class='ltx_text ltx_lst_space'>        </span>(.<span class='ltx_text ltx_lst_space'> </span>&lt;<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>iv</span><span class='ltx_text ltx_lst_space'> </span>&lt;<span class='ltx_text ltx_lst_space'> </span>.):<span class='ltx_text ltx_lst_space'> </span>42;
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">19</span></span><span class="ltx_text ltx_lst_space">      </span>}:<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">genarray</span>([5,6],<span class="ltx_text ltx_lst_space"> </span>0);+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>19</span></span><span class='ltx_text ltx_lst_space'>      </span>}:<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>genarray</span>([5,6],<span class='ltx_text ltx_lst_space'> </span>0);
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">20</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">print</span>(<span class="ltx_text ltx_lst_identifier">a</span>);+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>20</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>print</span>(<span class='ltx_text ltx_lst_identifier'>a</span>);
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">21</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>21</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">22</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">a</span><span class="ltx_text ltx_lst_space"> </span>=<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_keyword ltx_font_bold">with</span><span class="ltx_text ltx_lst_space"> </span>{+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>22</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>a</span><span class='ltx_text ltx_lst_space'> </span>=<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>with</span><span class='ltx_text ltx_lst_space'> </span>{
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">23</span></span><span class="ltx_text ltx_lst_space">        </span>(.<span class="ltx_text ltx_lst_space"> </span>&lt;=<span class="ltx_text ltx_lst_space"> </span>j<span class="ltx_text ltx_lst_identifier">v</span>=[<span class="ltx_text ltx_lst_identifier">x</span>,<span class="ltx_text ltx_lst_identifier">y</span>]<span class="ltx_text ltx_lst_space"> </span>&lt;=<span class="ltx_text ltx_lst_space"> </span>[4,5]):<span class="ltx_text ltx_lst_space"> </span>42;+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>23</span></span><span class='ltx_text ltx_lst_space'>        </span>(.<span class='ltx_text ltx_lst_space'> </span>&lt;=<span class='ltx_text ltx_lst_space'> </span>j<span class='ltx_text ltx_lst_identifier'>v</span>=[<span class='ltx_text ltx_lst_identifier'>x</span>,<span class='ltx_text ltx_lst_identifier'>y</span>]<span class='ltx_text ltx_lst_space'> </span>&lt;=<span class='ltx_text ltx_lst_space'> </span>[4,5]):<span class='ltx_text ltx_lst_space'> </span>42;
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">24</span></span><span class="ltx_text ltx_lst_space">      </span>}:<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">genarray</span>(<span class="ltx_text ltx_lst_space"> </span>[5,6],<span class="ltx_text ltx_lst_space"> </span>0);+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>24</span></span><span class='ltx_text ltx_lst_space'>      </span>}:<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>genarray</span>(<span class='ltx_text ltx_lst_space'> </span>[5,6],<span class='ltx_text ltx_lst_space'> </span>0);
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">25</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">print</span>(<span class="ltx_text ltx_lst_identifier">a</span>);+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>25</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>print</span>(<span class='ltx_text ltx_lst_identifier'>a</span>);
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">26</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>26</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">27</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">a</span><span class="ltx_text ltx_lst_space"> </span>=<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_keyword ltx_font_bold">with</span><span class="ltx_text ltx_lst_space"> </span>{+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>27</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>a</span><span class='ltx_text ltx_lst_space'> </span>=<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>with</span><span class='ltx_text ltx_lst_space'> </span>{
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">28</span></span><span class="ltx_text ltx_lst_space">        </span>(.<span class="ltx_text ltx_lst_space"> </span>&lt;=<span class="ltx_text ltx_lst_space"> </span>[<span class="ltx_text ltx_lst_identifier">i</span>,j]<span class="ltx_text ltx_lst_space"> </span>&lt;=<span class="ltx_text ltx_lst_space"> </span>.<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">step</span><span class="ltx_text ltx_lst_space"> </span>[1,4]):<span class="ltx_text ltx_lst_space"> </span>42;+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>28</span></span><span class='ltx_text ltx_lst_space'>        </span>(.<span class='ltx_text ltx_lst_space'> </span>&lt;=<span class='ltx_text ltx_lst_space'> </span>[<span class='ltx_text ltx_lst_identifier'>i</span>,j]<span class='ltx_text ltx_lst_space'> </span>&lt;=<span class='ltx_text ltx_lst_space'> </span>.<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>step</span><span class='ltx_text ltx_lst_space'> </span>[1,4]):<span class='ltx_text ltx_lst_space'> </span>42;
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">29</span></span><span class="ltx_text ltx_lst_space">      </span>}:<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">genarray</span>([5,6],<span class="ltx_text ltx_lst_space"> </span>0);+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>29</span></span><span class='ltx_text ltx_lst_space'>      </span>}:<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>genarray</span>([5,6],<span class='ltx_text ltx_lst_space'> </span>0);
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">30</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">print</span>(<span class="ltx_text ltx_lst_identifier">a</span>);+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>30</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>print</span>(<span class='ltx_text ltx_lst_identifier'>a</span>);
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">31</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>31</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">32</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">a</span><span class="ltx_text ltx_lst_space"> </span>=<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_keyword ltx_font_bold">with</span><span class="ltx_text ltx_lst_space"> </span>{+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>32</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>a</span><span class='ltx_text ltx_lst_space'> </span>=<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>with</span><span class='ltx_text ltx_lst_space'> </span>{
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">33</span></span><span class="ltx_text ltx_lst_space">        </span>(.<span class="ltx_text ltx_lst_space"> </span>&lt;=<span class="ltx_text ltx_lst_space"> </span>[<span class="ltx_text ltx_lst_identifier">i</span>,j]<span class="ltx_text ltx_lst_space"> </span>&lt;=<span class="ltx_text ltx_lst_space"> </span>.<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">step</span><span class="ltx_text ltx_lst_space"> </span>[2,4]<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">width</span><span class="ltx_text ltx_lst_space"> </span>[1,2]):<span class="ltx_text ltx_lst_space"> </span>42;+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>33</span></span><span class='ltx_text ltx_lst_space'>        </span>(.<span class='ltx_text ltx_lst_space'> </span>&lt;=<span class='ltx_text ltx_lst_space'> </span>[<span class='ltx_text ltx_lst_identifier'>i</span>,j]<span class='ltx_text ltx_lst_space'> </span>&lt;=<span class='ltx_text ltx_lst_space'> </span>.<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>step</span><span class='ltx_text ltx_lst_space'> </span>[2,4]<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>width</span><span class='ltx_text ltx_lst_space'> </span>[1,2]):<span class='ltx_text ltx_lst_space'> </span>42;
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">34</span></span><span class="ltx_text ltx_lst_space">      </span>}:<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">genarray</span>([5,6],<span class="ltx_text ltx_lst_space"> </span>0);+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>34</span></span><span class='ltx_text ltx_lst_space'>      </span>}:<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>genarray</span>([5,6],<span class='ltx_text ltx_lst_space'> </span>0);
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">35</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">print</span>(<span class="ltx_text ltx_lst_identifier">a</span>);+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>35</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>print</span>(<span class='ltx_text ltx_lst_identifier'>a</span>);
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">36</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>36</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">37</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_keyword ltx_font_bold">return</span><span class="ltx_text ltx_lst_space"> </span>0;+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>37</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>return</span><span class='ltx_text ltx_lst_space'> </span>0;
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">38</span></span>}+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>38</span></span>}
 </div> </div>
 </div> </div>
 </figure> </figure>
-<div id="Ch4.S1.SS2.p2class="ltx_para"+<div id='Ch4.S1.SS2.p2class='ltx_para'
-<p class="ltx_p">As we can see from the first with-loop in+<p class='ltx_p'>As we can see from the first with-loop in
 lines 6–8, a vector lines 6–8, a vector
 of scalar indices can be used where we previously used the of scalar indices can be used where we previously used the
-variable <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">iv</span> to denote the entire index vector.+variable <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>iv</span> to denote the entire index vector.
 In cases where the dimensionality of the with-loop is statically In cases where the dimensionality of the with-loop is statically
 fixed, this sometimes comes in handy. fixed, this sometimes comes in handy.
Line 4370: Line 4969:
 as well as for the bounds.</p> as well as for the bounds.</p>
 </div> </div>
-<div id="Ch4.S1.SS2.p3class="ltx_para"+<div id='Ch4.S1.SS2.p3class='ltx_para'
-<p class="ltx_p ltx_align_center">+<p class='ltx_p ltx_align_center'>
  
-<span class="ltx_inline-block ltx_minipage ltx_align_middle ltx_framed_rectanglestyle="width:390.3pt;"+<span class='ltx_inline-block ltx_minipage ltx_align_middle ltx_framed_rectanglestyle='width:390.3pt;'
-<span class="ltx_p"><span class="ltx_text ltx_font_italic">Note here, that the ability to use vectors rather than+<span class='ltx_p'><span class='ltx_text ltx_font_italic'>Note here, that the ability to use vectors rather than
 componentised indices and bounds is absolutely crucial here! componentised indices and bounds is absolutely crucial here!
-It constitutes </span><span class="ltx_text ltx_font_bold">the</span><span class="ltx_text ltx_font_italic"> enabling+It constitutes </span><span class='ltx_text ltx_font_bold'>the</span><span class='ltx_text ltx_font_italic'> enabling
 factor for specifying with-loops in a shape-invariant style as factor for specifying with-loops in a shape-invariant style as
 the length of those vectors may remain unknown until runtime. the length of those vectors may remain unknown until runtime.
Line 4385: Line 4984:
 </p> </p>
 </div> </div>
-<div id="Ch4.S1.SS2.p4class="ltx_para"+<div id='Ch4.S1.SS2.p4class='ltx_para'
-<p class="ltx_p">The with-loop in lines 12–14+<p class='ltx_p'>The with-loop in lines 12–14
 demonstrates a typical case where demonstrates a typical case where
 the dimensionality of the resulting array is solely determined the dimensionality of the resulting array is solely determined
-by a vector (here <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">shp</span>).+by a vector (here <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>shp</span>).
 A slightly more elegant way for the most frequent case is the use A slightly more elegant way for the most frequent case is the use
-of a syntactical shortcut supported by <span class="ltx_text ltx_font_smallcaps">SaC</span>. The symbol “<span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting">.</span>” can+of a syntactical shortcut supported by <span class='ltx_text ltx_font_smallcaps'>SaC</span>. The symbol “<span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>.</span>” can
 be used in the position for the lower and upper bound, denoting the be used in the position for the lower and upper bound, denoting the
 lowest legal index and the highest legal index into the array to be lowest legal index and the highest legal index into the array to be
Line 4397: Line 4996:
 This is examplified in the with-loop in This is examplified in the with-loop in
 lines 17–19. Note here, lines 17–19. Note here,
-that this generator-range does <em class="ltx_emph">not</em> cover the entire legal+that this generator-range does <em class='ltx_emph'>not</em> cover the entire legal
 index space of the resulting array! index space of the resulting array!
-As the “<span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting">.</span>” always represents legal indices, we have to make sure +As the “<span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>.</span>” always represents legal indices, we have to make sure 
-that we use <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting">&lt;=</span> on both sides if we want to cover the entire+that we use <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>&lt;=</span> on both sides if we want to cover the entire
 range. The example presented here, excludes the extreme cases and, thus, range. The example presented here, excludes the extreme cases and, thus,
 covers all inner elements of the resulting array only.</p> covers all inner elements of the resulting array only.</p>
 </div> </div>
-<div id="Thmtheorem26class="ltx_theorem ltx_theorem_theorem"+<div id='Thmtheorem26class='ltx_theorem ltx_theorem_theorem'
-<h6 class="ltx_title ltx_runin ltx_font_bold ltx_title_theorem">Exercise 26. </h6> +<h6 class='ltx_title ltx_runin ltx_font_bold ltx_title_theorem'>Exercise 26. </h6> 
-<div id="Thmtheorem26.p1class="ltx_para"+<div id='Thmtheorem26.p1class='ltx_para'
-<p class="ltx_p">What happens if the length of the vectors within the generator-range +<p class='ltx_p'>What happens if the length of the vectors within the generator-range 
-or the shape expression in the <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">genarray</span>-operation do not match? +or the shape expression in the <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>genarray</span>-operation do not match? 
-[<span class="ltx_text ltx_font_bold">Hint:</span> You should compile these example with the option <span class="ltx_text ltx_font_typewriter">-check c</span>+[<span class='ltx_text ltx_font_bold'>Hint:</span> You should compile these example with the option <span class='ltx_text ltx_font_typewriter'>-check c</span>
 being enabled]</p> being enabled]</p>
 </div> </div>
 </div> </div>
-<div id="Ch4.S1.SS2.p5class="ltx_para"+<div id='Ch4.S1.SS2.p5class='ltx_para'
-<p class="ltx_p">The with-loop in lines 22–24+<p class='ltx_p'>The with-loop in lines 22–24
 demonstrates how both, a vector version demonstrates how both, a vector version
 of the index vector and scalarised versions can be made available of the index vector and scalarised versions can be made available
 for the generator-expression. It also examplifies that a mix of for the generator-expression. It also examplifies that a mix of
-the <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting">.</span>-symbol and explicit expressions can be used for the bounds.</p>+the <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>.</span>-symbol and explicit expressions can be used for the bounds.</p>
 </div> </div>
-<div id="Ch4.S1.SS2.p6class="ltx_para"+<div id='Ch4.S1.SS2.p6class='ltx_para'
-<p class="ltx_p">The remaining two with-loops demonstrate the ability to specify+<p class='ltx_p'>The remaining two with-loops demonstrate the ability to specify
 rectangular grids of indices. rectangular grids of indices.
-The vector that follows the keyword <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">step</span> specifies the stride+The vector that follows the keyword <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>step</span> specifies the stride
 of the reoccurence pattern per axis. of the reoccurence pattern per axis.
 As a consequence, the with-loop in lines 27–29 As a consequence, the with-loop in lines 27–29
 computes an array computes an array
-whose every fourth column is <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting">42</span> starting with the very first one.</p>+whose every fourth column is <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>42</span> starting with the very first one.</p>
 </div> </div>
-<div id="Ch4.S1.SS2.p7class="ltx_para"+<div id='Ch4.S1.SS2.p7class='ltx_para'
-<p class="ltx_p">The use of the vector after the keyword <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">width</span> enables the programmer+<p class='ltx_p'>The use of the vector after the keyword <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>width</span> enables the programmer
 to denote more than one index per stepping period. to denote more than one index per stepping period.
 The with-loop in lines 27–29 The with-loop in lines 27–29
-computes a matrix where <math id="Ch4.S1.SS2.p7.m1class="ltx_Mathalttext="1\times 2display="inline"><mrow><mn>1</mn><mo>×</mo><mn>2</mn></mrow></math> blocks of the value +computes a matrix where <math id='Ch4.S1.SS2.p7.m1class='ltx_Mathalttext='1\times 2display='inline'><mrow><mn>1</mn><mo>×</mo><mn>2</mn></mrow></math> blocks of the value 
-<span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting">42</span> are placed in the upper left corner of each <math id="Ch4.S1.SS2.p7.m2class="ltx_Mathalttext="2\times 4display="inline"><mrow><mn>2</mn><mo>×</mo><mn>4</mn></mrow></math> grid of the+<span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>42</span> are placed in the upper left corner of each <math id='Ch4.S1.SS2.p7.m2class='ltx_Mathalttext='2\times 4display='inline'><mrow><mn>2</mn><mo>×</mo><mn>4</mn></mrow></math> grid of the
 resulting array.</p> resulting array.</p>
 </div> </div>
-<div id="Thmtheorem27class="ltx_theorem ltx_theorem_theorem"+<div id='Thmtheorem27class='ltx_theorem ltx_theorem_theorem'
-<h6 class="ltx_title ltx_runin ltx_font_bold ltx_title_theorem">Exercise 27. </h6> +<h6 class='ltx_title ltx_runin ltx_font_bold ltx_title_theorem'>Exercise 27. </h6> 
-<div id="Thmtheorem27.p1class="ltx_para"+<div id='Thmtheorem27.p1class='ltx_para'
-<p class="ltx_p">Can you achieve the same result array as the last with-loop of the above +<p class='ltx_p'>Can you achieve the same result array as the last with-loop of the above 
-examples <span class="ltx_text ltx_font_bold">without</span> using the step/width facility? +examples <span class='ltx_text ltx_font_bold'>without</span> using the step/width facility? 
-[<span class="ltx_text ltx_font_bold">Hint:</span> The solution may be surprisingly short!]</p>+[<span class='ltx_text ltx_font_bold'>Hint:</span> The solution may be surprisingly short!]</p>
 </div> </div>
 </div> </div>
 </section> </section>
-<section id="Ch4.S1.SS3class="ltx_subsection"+<section id='Ch4.S1.SS3class='ltx_subsection'
-<h5 class="ltx_title ltx_title_subsection"+<h5 class='ltx_title ltx_title_subsection'
-<span class="ltx_tag ltx_tag_subsection">4.1.3 </span>Generator Expressions</h5>+<span class='ltx_tag ltx_tag_subsection'>4.1.3 </span>Generator Expressions</h5>
  
-<div id="Ch4.S1.SS3.p1class="ltx_para"+<div id='Ch4.S1.SS3.p1class='ltx_para'
-<p class="ltx_p">As we have seen in the previous sections, each generator expression+<p class='ltx_p'>As we have seen in the previous sections, each generator expression
 implicitly defines a mapping function from indices to expressions. implicitly defines a mapping function from indices to expressions.
 The parameters of these functions are derived from the index variables The parameters of these functions are derived from the index variables
Line 4459: Line 5058:
 associated generator expression. Here a few examples:</p> associated generator expression. Here a few examples:</p>
 </div> </div>
-<figure id="LST32class="ltx_float ltx_lstlisting ltx_role_listing"+<figure id='LST32class='ltx_float ltx_lstlisting ltx_role_listing'
-<figcaption class="ltx_caption"><span class="ltx_tag ltx_tag_float">Listing 32: </span>Non-trivial generator expressions</figcaption> +<figcaption class='ltx_caption'><span class='ltx_tag ltx_tag_float'>Listing 32: </span>Non-trivial generator expressions</figcaption> 
-<div class="ltx_listing ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_listing"+<div class='ltx_listing ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_listing'
-<div class="ltx_listing_data"><a href="data:text/plain;base64,dXNlIFN0ZElPOiBhbGw7CnVzZSBBcnJheTogYWxsOwoKaW50IG1haW4oKQp7CiAgYSA9IHdpdGgg%0AewogICAgICAgIChbMCwxXSA8PSBbaSxqXSA8IFs2LDZdKSB7CiAgICAgICAgICBkaXYsIG1vZCA9%0AIGRpdm1vZCggaSwgaik7CiAgICAgICAgfTogbW9kOwogICAgICB9OiBnZW5hcnJheShbNiw2XSwg%0AMCk7CiAgcHJpbnQoYSk7CgogIGEgPSB3aXRoIHsKICAgICAgICAoLiA8PSBbaSxqXSA8PSAuKTog%0AKGk9PWogPyAxOiAwKSA7CiAgICAgIH06IGdlbmFycmF5KFs2LDZdLCAwKTsKICBwcmludChhKTsK%0ACiAgYSA9IHdpdGggewogICAgICAgICguIDw9IFtpXSA8PSAuKSB7CiAgICAgICAgICBtdmFsID0g%0AaTsKICAgICAgICAgIHZhbCA9IHN1bSh3aXRoIHsKICAgICAgICAgICAgICAgICAgICAgICAoLiA8%0APSBbaV0gPD0gLik6IGk7CiAgICAgICAgICAgICAgICAgICAgfTogZ2VuYXJyYXkoW212YWxdLCAw%0AKSk7CiAgICAgICAgfTogdmFsOwogICAgICB9OiBnZW5hcnJheShbNl0sIDApOwogIHByaW50KGEp%0AOwoKICByZXR1cm4gMDsKfQ==%0A">⬇</a></div> +<div class='ltx_listing_data'><a href='data:text/plain;base64,dXNlIFN0ZElPOiBhbGw7CnVzZSBBcnJheTogYWxsOwoKaW50IG1haW4oKQp7CiAgYSA9IHdpdGgg%0AewogICAgICAgIChbMCwxXSA8PSBbaSxqXSA8IFs2LDZdKSB7CiAgICAgICAgICBkaXYsIG1vZCA9%0AIGRpdm1vZCggaSwgaik7CiAgICAgICAgfTogbW9kOwogICAgICB9OiBnZW5hcnJheShbNiw2XSwg%0AMCk7CiAgcHJpbnQoYSk7CgogIGEgPSB3aXRoIHsKICAgICAgICAoLiA8PSBbaSxqXSA8PSAuKTog%0AKGk9PWogPyAxOiAwKSA7CiAgICAgIH06IGdlbmFycmF5KFs2LDZdLCAwKTsKICBwcmludChhKTsK%0ACiAgYSA9IHdpdGggewogICAgICAgICguIDw9IFtpXSA8PSAuKSB7CiAgICAgICAgICBtdmFsID0g%0AaTsKICAgICAgICAgIHZhbCA9IHN1bSh3aXRoIHsKICAgICAgICAgICAgICAgICAgICAgICAoLiA8%0APSBbaV0gPD0gLik6IGk7CiAgICAgICAgICAgICAgICAgICAgfTogZ2VuYXJyYXkoW212YWxdLCAw%0AKSk7CiAgICAgICAgfTogdmFsOwogICAgICB9OiBnZW5hcnJheShbNl0sIDApOwogIHByaW50KGEp%0AOwoKICByZXR1cm4gMDsKfQ==%0A'>⬇</a></div> 
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">1</span></span><span class="ltx_text ltx_lst_keyword ltx_font_bold">use</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">StdIO</span>:<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">all</span>;+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>1</span></span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>use</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>StdIO</span>:<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>all</span>;
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">2</span></span><span class="ltx_text ltx_lst_keyword ltx_font_bold">use</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">Array</span>:<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">all</span>;+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>2</span></span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>use</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>Array</span>:<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>all</span>;
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">3</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>3</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">4</span></span><span class="ltx_text ltx_lst_keyword ltx_font_bold">int</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">main</span>()+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>4</span></span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>int</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>main</span>()
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">5</span></span>{+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>5</span></span>{
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">6</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">a</span><span class="ltx_text ltx_lst_space"> </span>=<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_keyword ltx_font_bold">with</span><span class="ltx_text ltx_lst_space"> </span>{+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>6</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>a</span><span class='ltx_text ltx_lst_space'> </span>=<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>with</span><span class='ltx_text ltx_lst_space'> </span>{
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">7</span></span><span class="ltx_text ltx_lst_space">        </span>([0,1]<span class="ltx_text ltx_lst_space"> </span>&lt;=<span class="ltx_text ltx_lst_space"> </span>[<span class="ltx_text ltx_lst_identifier">i</span>,j]<span class="ltx_text ltx_lst_space"> </span>&lt;<span class="ltx_text ltx_lst_space"> </span>[6,6])<span class="ltx_text ltx_lst_space"> </span>{+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>7</span></span><span class='ltx_text ltx_lst_space'>        </span>([0,1]<span class='ltx_text ltx_lst_space'> </span>&lt;=<span class='ltx_text ltx_lst_space'> </span>[<span class='ltx_text ltx_lst_identifier'>i</span>,j]<span class='ltx_text ltx_lst_space'> </span>&lt;<span class='ltx_text ltx_lst_space'> </span>[6,6])<span class='ltx_text ltx_lst_space'> </span>{
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">8</span></span><span class="ltx_text ltx_lst_space">          </span><span class="ltx_text ltx_lst_identifier">div</span>,<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">mod</span><span class="ltx_text ltx_lst_space"> </span>=<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">divmod</span>(<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">i</span>,<span class="ltx_text ltx_lst_space"> </span>j);+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>8</span></span><span class='ltx_text ltx_lst_space'>          </span><span class='ltx_text ltx_lst_identifier'>div</span>,<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>mod</span><span class='ltx_text ltx_lst_space'> </span>=<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>divmod</span>(<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>i</span>,<span class='ltx_text ltx_lst_space'> </span>j);
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">9</span></span><span class="ltx_text ltx_lst_space">        </span>}:<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">mod</span>;+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>9</span></span><span class='ltx_text ltx_lst_space'>        </span>}:<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>mod</span>;
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">10</span></span><span class="ltx_text ltx_lst_space">      </span>}:<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">genarray</span>([6,6],<span class="ltx_text ltx_lst_space"> </span>0);+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>10</span></span><span class='ltx_text ltx_lst_space'>      </span>}:<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>genarray</span>([6,6],<span class='ltx_text ltx_lst_space'> </span>0);
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">11</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">print</span>(<span class="ltx_text ltx_lst_identifier">a</span>);+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>11</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>print</span>(<span class='ltx_text ltx_lst_identifier'>a</span>);
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">12</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>12</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">13</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">a</span><span class="ltx_text ltx_lst_space"> </span>=<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_keyword ltx_font_bold">with</span><span class="ltx_text ltx_lst_space"> </span>{+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>13</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>a</span><span class='ltx_text ltx_lst_space'> </span>=<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>with</span><span class='ltx_text ltx_lst_space'> </span>{
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">14</span></span><span class="ltx_text ltx_lst_space">        </span>(.<span class="ltx_text ltx_lst_space"> </span>&lt;=<span class="ltx_text ltx_lst_space"> </span>[<span class="ltx_text ltx_lst_identifier">i</span>,j]<span class="ltx_text ltx_lst_space"> </span>&lt;=<span class="ltx_text ltx_lst_space"> </span>.):<span class="ltx_text ltx_lst_space"> </span>(<span class="ltx_text ltx_lst_identifier">i</span>==j<span class="ltx_text ltx_lst_space"> </span>?<span class="ltx_text ltx_lst_space"> </span>1:<span class="ltx_text ltx_lst_space"> </span>0)<span class="ltx_text ltx_lst_space"> </span>;+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>14</span></span><span class='ltx_text ltx_lst_space'>        </span>(.<span class='ltx_text ltx_lst_space'> </span>&lt;=<span class='ltx_text ltx_lst_space'> </span>[<span class='ltx_text ltx_lst_identifier'>i</span>,j]<span class='ltx_text ltx_lst_space'> </span>&lt;=<span class='ltx_text ltx_lst_space'> </span>.):<span class='ltx_text ltx_lst_space'> </span>(<span class='ltx_text ltx_lst_identifier'>i</span>==j<span class='ltx_text ltx_lst_space'> </span>?<span class='ltx_text ltx_lst_space'> </span>1:<span class='ltx_text ltx_lst_space'> </span>0)<span class='ltx_text ltx_lst_space'> </span>;
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">15</span></span><span class="ltx_text ltx_lst_space">      </span>}:<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">genarray</span>([6,6],<span class="ltx_text ltx_lst_space"> </span>0);+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>15</span></span><span class='ltx_text ltx_lst_space'>      </span>}:<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>genarray</span>([6,6],<span class='ltx_text ltx_lst_space'> </span>0);
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">16</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">print</span>(<span class="ltx_text ltx_lst_identifier">a</span>);+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>16</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>print</span>(<span class='ltx_text ltx_lst_identifier'>a</span>);
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">17</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>17</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">18</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">a</span><span class="ltx_text ltx_lst_space"> </span>=<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_keyword ltx_font_bold">with</span><span class="ltx_text ltx_lst_space"> </span>{+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>18</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>a</span><span class='ltx_text ltx_lst_space'> </span>=<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>with</span><span class='ltx_text ltx_lst_space'> </span>{
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">19</span></span><span class="ltx_text ltx_lst_space">        </span>(.<span class="ltx_text ltx_lst_space"> </span>&lt;=<span class="ltx_text ltx_lst_space"> </span>[<span class="ltx_text ltx_lst_identifier">i</span>]<span class="ltx_text ltx_lst_space"> </span>&lt;=<span class="ltx_text ltx_lst_space"> </span>.)<span class="ltx_text ltx_lst_space"> </span>{+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>19</span></span><span class='ltx_text ltx_lst_space'>        </span>(.<span class='ltx_text ltx_lst_space'> </span>&lt;=<span class='ltx_text ltx_lst_space'> </span>[<span class='ltx_text ltx_lst_identifier'>i</span>]<span class='ltx_text ltx_lst_space'> </span>&lt;=<span class='ltx_text ltx_lst_space'> </span>.)<span class='ltx_text ltx_lst_space'> </span>{
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">20</span></span><span class="ltx_text ltx_lst_space">          </span><span class="ltx_text ltx_lst_identifier">mval</span><span class="ltx_text ltx_lst_space"> </span>=<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">i</span>;+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>20</span></span><span class='ltx_text ltx_lst_space'>          </span><span class='ltx_text ltx_lst_identifier'>mval</span><span class='ltx_text ltx_lst_space'> </span>=<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>i</span>;
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">21</span></span><span class="ltx_text ltx_lst_space">          </span><span class="ltx_text ltx_lst_identifier">val</span><span class="ltx_text ltx_lst_space"> </span>=<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">sum</span>(<span class="ltx_text ltx_lst_keyword ltx_font_bold">with</span><span class="ltx_text ltx_lst_space"> </span>{+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>21</span></span><span class='ltx_text ltx_lst_space'>          </span><span class='ltx_text ltx_lst_identifier'>val</span><span class='ltx_text ltx_lst_space'> </span>=<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>sum</span>(<span class='ltx_text ltx_lst_keyword ltx_font_bold'>with</span><span class='ltx_text ltx_lst_space'> </span>{
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">22</span></span><span class="ltx_text ltx_lst_space">                       </span>(.<span class="ltx_text ltx_lst_space"> </span>&lt;=<span class="ltx_text ltx_lst_space"> </span>[<span class="ltx_text ltx_lst_identifier">i</span>]<span class="ltx_text ltx_lst_space"> </span>&lt;=<span class="ltx_text ltx_lst_space"> </span>.):<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">i</span>;+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>22</span></span><span class='ltx_text ltx_lst_space'>                       </span>(.<span class='ltx_text ltx_lst_space'> </span>&lt;=<span class='ltx_text ltx_lst_space'> </span>[<span class='ltx_text ltx_lst_identifier'>i</span>]<span class='ltx_text ltx_lst_space'> </span>&lt;=<span class='ltx_text ltx_lst_space'> </span>.):<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>i</span>;
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">23</span></span><span class="ltx_text ltx_lst_space">                    </span>}:<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">genarray</span>([<span class="ltx_text ltx_lst_identifier">mval</span>],<span class="ltx_text ltx_lst_space"> </span>0));+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>23</span></span><span class='ltx_text ltx_lst_space'>                    </span>}:<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>genarray</span>([<span class='ltx_text ltx_lst_identifier'>mval</span>],<span class='ltx_text ltx_lst_space'> </span>0));
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">24</span></span><span class="ltx_text ltx_lst_space">        </span>}:<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">val</span>;+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>24</span></span><span class='ltx_text ltx_lst_space'>        </span>}:<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>val</span>;
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">25</span></span><span class="ltx_text ltx_lst_space">      </span>}:<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">genarray</span>([6],<span class="ltx_text ltx_lst_space"> </span>0);+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>25</span></span><span class='ltx_text ltx_lst_space'>      </span>}:<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>genarray</span>([6],<span class='ltx_text ltx_lst_space'> </span>0);
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">26</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">print</span>(<span class="ltx_text ltx_lst_identifier">a</span>);+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>26</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>print</span>(<span class='ltx_text ltx_lst_identifier'>a</span>);
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">27</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>27</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">28</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_keyword ltx_font_bold">return</span><span class="ltx_text ltx_lst_space"> </span>0;+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>28</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>return</span><span class='ltx_text ltx_lst_space'> </span>0;
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">29</span></span>}+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>29</span></span>}
 </div> </div>
 </div> </div>
 </figure> </figure>
-<div id="Ch4.S1.SS3.p2class="ltx_para"+<div id='Ch4.S1.SS3.p2class='ltx_para'
-<p class="ltx_p">The first with-loop in lines 6–10+<p class='ltx_p'>The first with-loop in lines 6–10
 shows a typical scenario. shows a typical scenario.
-The function <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">divmod</span> returns two values rather than just one.+The function <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>divmod</span> returns two values rather than just one.
 Rather than defining an explicit mapping function that passes Rather than defining an explicit mapping function that passes
 on the desired return value, we can specify this selection on the desired return value, we can specify this selection
 directly.</p> directly.</p>
 </div> </div>
-<div id="Ch4.S1.SS3.p3class="ltx_para"+<div id='Ch4.S1.SS3.p3class='ltx_para'
-<p class="ltx_p">The with-loop in lines 13–15+<p class='ltx_p'>The with-loop in lines 13–15
 demonstrates how non-trivial expressions demonstrates how non-trivial expressions
 can be used even without necessitating the introduction of an can be used even without necessitating the introduction of an
 assignment block.</p> assignment block.</p>
 </div> </div>
-<div id="Ch4.S1.SS3.p4class="ltx_para"+<div id='Ch4.S1.SS3.p4class='ltx_para'
-<p class="ltx_p">The scope of variables that are defined in such an assignment block is+<p class='ltx_p'>The scope of variables that are defined in such an assignment block is
 strictly local strictly local
 to that block. Such a variable can neither be referenced within other generators to that block. Such a variable can neither be referenced within other generators
Line 4576: Line 5175:
 of the examples above.</p> of the examples above.</p>
 </div> </div>
-<div id="Thmtheorem28class="ltx_theorem ltx_theorem_theorem"+<div id='Thmtheorem28class='ltx_theorem ltx_theorem_theorem'
-<h6 class="ltx_title ltx_runin ltx_font_bold ltx_title_theorem">Exercise 28. </h6> +<h6 class='ltx_title ltx_runin ltx_font_bold ltx_title_theorem'>Exercise 28. </h6> 
-<div id="Thmtheorem28.p1class="ltx_para"+<div id='Thmtheorem28.p1class='ltx_para'
-<p class="ltx_p">What do you expect to happen, if a variable that is defined+<p class='ltx_p'>What do you expect to happen, if a variable that is defined
 in such an assignment block has the same name as the index variable? in such an assignment block has the same name as the index variable?
 Where is the “modified” version observable?</p> Where is the “modified” version observable?</p>
 </div> </div>
-<div id="Thmtheorem28.p2class="ltx_para"+<div id='Thmtheorem28.p2class='ltx_para'
-<p class="ltx_p">Why can the variable <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">mval</span> in the example above be safely replaced by +<p class='ltx_p'>Why can the variable <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>mval</span> in the example above be safely replaced by 
-<span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">i</span>?</p>+<span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>i</span>?</p>
 </div> </div>
 </div> </div>
 </section> </section>
-<section id="Ch4.S1.SS4class="ltx_subsection"+<section id='Ch4.S1.SS4class='ltx_subsection'
-<h5 class="ltx_title ltx_title_subsection"+<h5 class='ltx_title ltx_title_subsection'
-<span class="ltx_tag ltx_tag_subsection">4.1.4 </span>Reductions and further with-loop Operations</h5>+<span class='ltx_tag ltx_tag_subsection'>4.1.4 </span>Reductions and further with-loop Operations</h5>
  
-<div id="Ch4.S1.SS4.p1class="ltx_para"+<div id='Ch4.S1.SS4.p1class='ltx_para'
-<p class="ltx_p">Besides the genarray with-loop operator described so far, <span class="ltx_text ltx_font_smallcaps">SaC</span> supports+<p class='ltx_p'>Besides the genarray with-loop operator described so far, <span class='ltx_text ltx_font_smallcaps'>SaC</span> supports
 a few more. These are: a few more. These are:
 </p> </p>
 </div> </div>
-<div id="Ch4.S1.SS4.p2class="ltx_para"+<div id='Ch4.S1.SS4.p2class='ltx_para'
-<ul id="Ch4.I4class="ltx_itemize"+<ul id='Ch4.I4class='ltx_itemize'
-<li id="Ch4.I4.i1class="ltx_itemstyle="list-style-type:none;"+<li id='Ch4.I4.i1class='ltx_itemstyle='list-style-type:none;'
-<span class="ltx_tag ltx_tag_itemize">•</span>  +<span class='ltx_tag ltx_tag_itemize'>•</span>  
-<div id="Ch4.I4.i1.p1class="ltx_para"+<div id='Ch4.I4.i1.p1class='ltx_para'
-<p class="ltx_p">a <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">modarray</span> operator which “modifies” an existing array, and</p>+<p class='ltx_p'>a <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>modarray</span> operator which “modifies” an existing array, and</p>
 </div> </div>
 </li> </li>
-<li id="Ch4.I4.i2class="ltx_itemstyle="list-style-type:none;"+<li id='Ch4.I4.i2class='ltx_itemstyle='list-style-type:none;'
-<span class="ltx_tag ltx_tag_itemize">•</span>  +<span class='ltx_tag ltx_tag_itemize'>•</span>  
-<div id="Ch4.I4.i2.p1class="ltx_para"+<div id='Ch4.I4.i2.p1class='ltx_para'
-<p class="ltx_p">two <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">fold</span> operators that enable the specification of reduction+<p class='ltx_p'>two <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>fold</span> operators that enable the specification of reduction
 operations</p> operations</p>
 </div> </div>
Line 4615: Line 5214:
 </ul> </ul>
 </div> </div>
-<div id="Ch4.S1.SS4.p3class="ltx_para"+<div id='Ch4.S1.SS4.p3class='ltx_para'
-<p class="ltx_p">The modarray variant is very similar to the genarray variant.+<p class='ltx_p'>The modarray variant is very similar to the genarray variant.
 The only difference is that neither the shape of the result The only difference is that neither the shape of the result
 nor a default element for unspecified index positions nor a default element for unspecified index positions
Line 4623: Line 5222:
 lines 11–13 lines 11–13
 of the example below demonstrates this. of the example below demonstrates this.
-Here, a new array <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">b</span> is computed from the array <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">a</span> +Here, a new array <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>b</span> is computed from the array <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>a</span> 
-by negating each second element of <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">a</span>+by negating each second element of <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>a</span>
-As in lesson <a href="#Ch2.S1title="2.1 Lesson 1: Arrays as Data ‣ Chapter 2 Array Programming Basics ‣ Part I Trails Covering the Basics of SaCclass="ltx_ref"><span class="ltx_text ltx_ref_tag">2.1</span></a> on arrays as data, printing +As in lesson <a href='#Ch2.S1title='2.1 Lesson 1: Arrays as Data ‣ Chapter 2 Array Programming Basics ‣ Part I Trails Covering the Basics of SaCclass='ltx_ref'><span class='ltx_text ltx_ref_tag'>2.1</span></a> on arrays as data, printing 
-<span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">a</span> in line 15 shows that in fact two different arrays have+<span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>a</span> in line 15 shows that in fact two different arrays have
 been created.</p> been created.</p>
 </div> </div>
-<figure id="LST33class="ltx_float ltx_lstlisting ltx_role_listing"+<figure id='LST33class='ltx_float ltx_lstlisting ltx_role_listing'
-<figcaption class="ltx_caption"><span class="ltx_tag ltx_tag_float">Listing 33: </span>Further with-loop operators</figcaption> +<figcaption class='ltx_caption'><span class='ltx_tag ltx_tag_float'>Listing 33: </span>Further with-loop operators</figcaption> 
-<div class="ltx_listing ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_listing"+<div class='ltx_listing ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_listing'
-<div class="ltx_listing_data"><a href="data:text/plain;base64,dXNlIFN0ZElPOiBhbGw7CnVzZSBBcnJheTogYWxsOwoKaW50IG1haW4oKQp7CiAgYSA9IHdpdGgg%0AewogICAgICAgICguIDw9IFtpXSA8PSAuKTogaTsKICAgICAgfTogZ2VuYXJyYXkoIFs2XSwgMCk7%0ACiAgcHJpbnQoYSk7CgogIGIgPSB3aXRoIHsKICAgICAgICAoLiA8PSBpdiA8PSAuIHN0ZXAgWzJd%0AKTogLWFbaXZdOwogICAgICB9OiBtb2RhcnJheShhKTsKICBwcmludChiKTsKICBwcmludChhKTsK%0ACiAgYyA9IHdpdGggewogICAgICAgKFswXSA8PSBpdiA8PSBbNV0pOiBhW2l2XTsKICAgICAgfTog%0AZm9sZCgqLCAxKTsKICBwcmludChjKTsKCiAgZCA9IHdpdGggewogICAgICAgKFswXSA8PSBpdiA8%0APSBbNV0pOiBhW2l2XTsKICAgICAgfTogZm9sZGZpeCgqLCAxLCAwKTsKICBwcmludChkKTsKCiAg%0AcmV0dXJuIDA7Cn0=%0A">⬇</a></div> +<div class='ltx_listing_data'><a href='data:text/plain;base64,dXNlIFN0ZElPOiBhbGw7CnVzZSBBcnJheTogYWxsOwoKaW50IG1haW4oKQp7CiAgYSA9IHdpdGgg%0AewogICAgICAgICguIDw9IFtpXSA8PSAuKTogaTsKICAgICAgfTogZ2VuYXJyYXkoIFs2XSwgMCk7%0ACiAgcHJpbnQoYSk7CgogIGIgPSB3aXRoIHsKICAgICAgICAoLiA8PSBpdiA8PSAuIHN0ZXAgWzJd%0AKTogLWFbaXZdOwogICAgICB9OiBtb2RhcnJheShhKTsKICBwcmludChiKTsKICBwcmludChhKTsK%0ACiAgYyA9IHdpdGggewogICAgICAgKFswXSA8PSBpdiA8PSBbNV0pOiBhW2l2XTsKICAgICAgfTog%0AZm9sZCgqLCAxKTsKICBwcmludChjKTsKCiAgZCA9IHdpdGggewogICAgICAgKFswXSA8PSBpdiA8%0APSBbNV0pOiBhW2l2XTsKICAgICAgfTogZm9sZGZpeCgqLCAxLCAwKTsKICBwcmludChkKTsKCiAg%0AcmV0dXJuIDA7Cn0=%0A'>⬇</a></div> 
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">1</span></span><span class="ltx_text ltx_lst_keyword ltx_font_bold">use</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">StdIO</span>:<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">all</span>;+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>1</span></span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>use</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>StdIO</span>:<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>all</span>;
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">2</span></span><span class="ltx_text ltx_lst_keyword ltx_font_bold">use</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">Array</span>:<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">all</span>;+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>2</span></span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>use</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>Array</span>:<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>all</span>;
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">3</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>3</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">4</span></span><span class="ltx_text ltx_lst_keyword ltx_font_bold">int</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">main</span>()+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>4</span></span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>int</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>main</span>()
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">5</span></span>{+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>5</span></span>{
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">6</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">a</span><span class="ltx_text ltx_lst_space"> </span>=<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_keyword ltx_font_bold">with</span><span class="ltx_text ltx_lst_space"> </span>{+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>6</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>a</span><span class='ltx_text ltx_lst_space'> </span>=<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>with</span><span class='ltx_text ltx_lst_space'> </span>{
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">7</span></span><span class="ltx_text ltx_lst_space">        </span>(.<span class="ltx_text ltx_lst_space"> </span>&lt;=<span class="ltx_text ltx_lst_space"> </span>[<span class="ltx_text ltx_lst_identifier">i</span>]<span class="ltx_text ltx_lst_space"> </span>&lt;=<span class="ltx_text ltx_lst_space"> </span>.):<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">i</span>;+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>7</span></span><span class='ltx_text ltx_lst_space'>        </span>(.<span class='ltx_text ltx_lst_space'> </span>&lt;=<span class='ltx_text ltx_lst_space'> </span>[<span class='ltx_text ltx_lst_identifier'>i</span>]<span class='ltx_text ltx_lst_space'> </span>&lt;=<span class='ltx_text ltx_lst_space'> </span>.):<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>i</span>;
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">8</span></span><span class="ltx_text ltx_lst_space">      </span>}:<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">genarray</span>(<span class="ltx_text ltx_lst_space"> </span>[6],<span class="ltx_text ltx_lst_space"> </span>0);+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>8</span></span><span class='ltx_text ltx_lst_space'>      </span>}:<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>genarray</span>(<span class='ltx_text ltx_lst_space'> </span>[6],<span class='ltx_text ltx_lst_space'> </span>0);
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">9</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">print</span>(<span class="ltx_text ltx_lst_identifier">a</span>);+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>9</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>print</span>(<span class='ltx_text ltx_lst_identifier'>a</span>);
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">10</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>10</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">11</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">b</span><span class="ltx_text ltx_lst_space"> </span>=<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_keyword ltx_font_bold">with</span><span class="ltx_text ltx_lst_space"> </span>{+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>11</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>b</span><span class='ltx_text ltx_lst_space'> </span>=<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>with</span><span class='ltx_text ltx_lst_space'> </span>{
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">12</span></span><span class="ltx_text ltx_lst_space">        </span>(.<span class="ltx_text ltx_lst_space"> </span>&lt;=<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">iv</span><span class="ltx_text ltx_lst_space"> </span>&lt;=<span class="ltx_text ltx_lst_space"> </span>.<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">step</span><span class="ltx_text ltx_lst_space"> </span>[2]):<span class="ltx_text ltx_lst_space"> </span>-<span class="ltx_text ltx_lst_identifier">a</span>[<span class="ltx_text ltx_lst_identifier">iv</span>];+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>12</span></span><span class='ltx_text ltx_lst_space'>        </span>(.<span class='ltx_text ltx_lst_space'> </span>&lt;=<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>iv</span><span class='ltx_text ltx_lst_space'> </span>&lt;=<span class='ltx_text ltx_lst_space'> </span>.<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>step</span><span class='ltx_text ltx_lst_space'> </span>[2]):<span class='ltx_text ltx_lst_space'> </span>-<span class='ltx_text ltx_lst_identifier'>a</span>[<span class='ltx_text ltx_lst_identifier'>iv</span>];
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">13</span></span><span class="ltx_text ltx_lst_space">      </span>}:<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">modarray</span>(<span class="ltx_text ltx_lst_identifier">a</span>);+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>13</span></span><span class='ltx_text ltx_lst_space'>      </span>}:<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>modarray</span>(<span class='ltx_text ltx_lst_identifier'>a</span>);
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">14</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">print</span>(<span class="ltx_text ltx_lst_identifier">b</span>);+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>14</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>print</span>(<span class='ltx_text ltx_lst_identifier'>b</span>);
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">15</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">print</span>(<span class="ltx_text ltx_lst_identifier">a</span>);+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>15</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>print</span>(<span class='ltx_text ltx_lst_identifier'>a</span>);
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">16</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>16</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">17</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">c</span><span class="ltx_text ltx_lst_space"> </span>=<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_keyword ltx_font_bold">with</span><span class="ltx_text ltx_lst_space"> </span>{+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>17</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>c</span><span class='ltx_text ltx_lst_space'> </span>=<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>with</span><span class='ltx_text ltx_lst_space'> </span>{
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">18</span></span><span class="ltx_text ltx_lst_space">       </span>([0]<span class="ltx_text ltx_lst_space"> </span>&lt;=<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">iv</span><span class="ltx_text ltx_lst_space"> </span>&lt;=<span class="ltx_text ltx_lst_space"> </span>[5]):<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">a</span>[<span class="ltx_text ltx_lst_identifier">iv</span>];+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>18</span></span><span class='ltx_text ltx_lst_space'>       </span>([0]<span class='ltx_text ltx_lst_space'> </span>&lt;=<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>iv</span><span class='ltx_text ltx_lst_space'> </span>&lt;=<span class='ltx_text ltx_lst_space'> </span>[5]):<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>a</span>[<span class='ltx_text ltx_lst_identifier'>iv</span>];
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">19</span></span><span class="ltx_text ltx_lst_space">      </span>}:<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">fold</span>(*,<span class="ltx_text ltx_lst_space"> </span>1);+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>19</span></span><span class='ltx_text ltx_lst_space'>      </span>}:<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>fold</span>(*,<span class='ltx_text ltx_lst_space'> </span>1);
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">20</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">print</span>(<span class="ltx_text ltx_lst_identifier">c</span>);+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>20</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>print</span>(<span class='ltx_text ltx_lst_identifier'>c</span>);
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">21</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>21</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">22</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">d</span><span class="ltx_text ltx_lst_space"> </span>=<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_keyword ltx_font_bold">with</span><span class="ltx_text ltx_lst_space"> </span>{+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>22</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>d</span><span class='ltx_text ltx_lst_space'> </span>=<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>with</span><span class='ltx_text ltx_lst_space'> </span>{
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">23</span></span><span class="ltx_text ltx_lst_space">       </span>([0]<span class="ltx_text ltx_lst_space"> </span>&lt;=<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">iv</span><span class="ltx_text ltx_lst_space"> </span>&lt;=<span class="ltx_text ltx_lst_space"> </span>[5]):<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">a</span>[<span class="ltx_text ltx_lst_identifier">iv</span>];+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>23</span></span><span class='ltx_text ltx_lst_space'>       </span>([0]<span class='ltx_text ltx_lst_space'> </span>&lt;=<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>iv</span><span class='ltx_text ltx_lst_space'> </span>&lt;=<span class='ltx_text ltx_lst_space'> </span>[5]):<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>a</span>[<span class='ltx_text ltx_lst_identifier'>iv</span>];
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">24</span></span><span class="ltx_text ltx_lst_space">      </span>}:<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">foldfix</span>(*,<span class="ltx_text ltx_lst_space"> </span>1,<span class="ltx_text ltx_lst_space"> </span>0);+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>24</span></span><span class='ltx_text ltx_lst_space'>      </span>}:<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>foldfix</span>(*,<span class='ltx_text ltx_lst_space'> </span>1,<span class='ltx_text ltx_lst_space'> </span>0);
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">25</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">print</span>(<span class="ltx_text ltx_lst_identifier">d</span>);+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>25</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>print</span>(<span class='ltx_text ltx_lst_identifier'>d</span>);
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">26</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>26</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">27</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_keyword ltx_font_bold">return</span><span class="ltx_text ltx_lst_space"> </span>0;+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>27</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>return</span><span class='ltx_text ltx_lst_space'> </span>0;
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">28</span></span>}+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>28</span></span>}
 </div> </div>
 </div> </div>
 </figure> </figure>
-<div id="Ch4.S1.SS4.p4class="ltx_para"+<div id='Ch4.S1.SS4.p4class='ltx_para'
-<p class="ltx_p">The two final examples demonstrate how reduction operations can be specified +<p class='ltx_p'>The two final examples demonstrate how reduction operations can be specified 
-in <span class="ltx_text ltx_font_smallcaps">SaC</span>.+in <span class='ltx_text ltx_font_smallcaps'>SaC</span>.
 The first variant (lines 17–19) The first variant (lines 17–19)
 is the standard variant for reductions. is the standard variant for reductions.
-It requires the specification of a folding function (<span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting">*</span> in this case) +It requires the specification of a folding function (<span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>*</span> in this case) 
-and of a neutral element (<span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting">1</span> here).+and of a neutral element (<span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>1</span> here).
 As with the earlier variants, all index vectors from the generator range are mapped As with the earlier variants, all index vectors from the generator range are mapped
 according to the generator expression. Subsequently all computed according to the generator expression. Subsequently all computed
Line 4734: Line 5333:
 associative and commutative.</p> associative and commutative.</p>
 </div> </div>
-<div id="Ch4.S1.SS4.p5class="ltx_para"+<div id='Ch4.S1.SS4.p5class='ltx_para'
-<p class="ltx_p">The final with-loop in lines 22–24+<p class='ltx_p'>The final with-loop in lines 22–24
 is a slight variant of the fold version. is a slight variant of the fold version.
 It stems from the observation that some reductions can be shortcut It stems from the observation that some reductions can be shortcut
 when a certain fixpoint value has been met. In the given example of when a certain fixpoint value has been met. In the given example of
-multiplication this is the value <span class="ltx_text ltx_lstlisting"></span>.+multiplication this is the value <span class='ltx_text ltx_lstlisting'></span>.
 Whether the underlying implementation makes use of this extra information Whether the underlying implementation makes use of this extra information
 or not is not specified. The computational result of both, the fold or not is not specified. The computational result of both, the fold
Line 4748: Line 5347:
 </section> </section>
 </section> </section>
-<section id="Ch5class="ltx_chapter"+<section id='Ch5class='ltx_chapter'
-<h3 class="ltx_title ltx_title_chapter"+<h3 class='ltx_title ltx_title_chapter'
-<span class="ltx_tag ltx_tag_chapter">Chapter 5 </span>Working with Modules</h3>+<span class='ltx_tag ltx_tag_chapter'>Chapter 5 </span>Working with Modules</h3>
  
-<div id="Ch5.p1class="ltx_para"+<div id='Ch5.p1class='ltx_para'
-<p class="ltx_p">This chapter explains the basic principles of using modules in <span class="ltx_text ltx_font_smallcaps">SaC</span>. Prior to +<p class='ltx_p'>This chapter explains the basic principles of using modules in <span class='ltx_text ltx_font_smallcaps'>SaC</span>. Prior to 
-modules, a short introduction into <span class="ltx_text ltx_font_smallcaps">SaC</span> name spaces is given.</p>+modules, a short introduction into <span class='ltx_text ltx_font_smallcaps'>SaC</span> name spaces is given.</p>
 </div> </div>
-<section id="Ch5.S1class="ltx_section"+<section id='Ch5.S1class='ltx_section'
-<h4 class="ltx_title ltx_title_section"+<h4 class='ltx_title ltx_title_section'
-<span class="ltx_tag ltx_tag_section">5.1 </span>Name Spaces</h4>+<span class='ltx_tag ltx_tag_section'>5.1 </span>Name Spaces</h4>
  
-<div id="Ch5.S1.p1class="ltx_para"+<div id='Ch5.S1.p1class='ltx_para'
-<p class="ltx_p">In general, name spaces are used to extend the set of possible identifiers and +<p class='ltx_p'>In general, name spaces are used to extend the set of possible identifiers and 
-thus inhibit potential name clashes. <span class="ltx_text ltx_font_smallcaps">SaC</span> supports multiple name spaces, although+thus inhibit potential name clashes. <span class='ltx_text ltx_font_smallcaps'>SaC</span> supports multiple name spaces, although
 these are not explicitly defined by the programmer. Instead, every module and these are not explicitly defined by the programmer. Instead, every module and
 program has its own name space. The name space of a module is denoted by its program has its own name space. The name space of a module is denoted by its
-name, a program uses <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">main</span> as its name space identifier. As an example of +name, a program uses <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>main</span> as its name space identifier. As an example of 
-using name spaces consider Listing <a href="#LST34title="34 ‣ 5.1 Name Spaces ‣ Chapter 5 Working with Modules ‣ Part I Trails Covering the Basics of SaCclass="ltx_ref"><span class="ltx_text ltx_ref_tag">34</span></a>.</p>+using name spaces consider Listing <a href='#LST34title='34 ‣ 5.1 Name Spaces ‣ Chapter 5 Working with Modules ‣ Part I Trails Covering the Basics of SaCclass='ltx_ref'><span class='ltx_text ltx_ref_tag'>34</span></a>.</p>
 </div> </div>
-<figure id="LST34class="ltx_float ltx_lstlisting ltx_role_listing"+<figure id='LST34class='ltx_float ltx_lstlisting ltx_role_listing'
-<figcaption class="ltx_caption"><span class="ltx_tag ltx_tag_float">Listing 34: </span>Hello world program with name spaces</figcaption> +<figcaption class='ltx_caption'><span class='ltx_tag ltx_tag_float'>Listing 34: </span>Hello world program with name spaces</figcaption> 
-<div class="ltx_listing ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_listing"+<div class='ltx_listing ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_listing'
-<div class="ltx_listing_data"><a href="data:text/plain;base64,aW50IG1haW4oKQp7CiAgU3RkSU86OnByaW50ZigiSGVsbG8gV29ybGQhXG4iKTsKICByZXR1cm4g%0AMDsKfQ==%0A">⬇</a></div> +<div class='ltx_listing_data'><a href='data:text/plain;base64,aW50IG1haW4oKQp7CiAgU3RkSU86OnByaW50ZigiSGVsbG8gV29ybGQhXG4iKTsKICByZXR1cm4g%0AMDsKfQ==%0A'>⬇</a></div> 
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">1</span></span><span class="ltx_text ltx_lst_keyword ltx_font_bold">int</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">main</span>()+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>1</span></span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>int</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>main</span>()
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">2</span></span>{+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>2</span></span>{
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">3</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">StdIO</span>::<span class="ltx_text ltx_lst_identifier">printf</span>(<span class="ltx_text ltx_lst_string">”Hello<span class="ltx_text ltx_lst_space"> </span>World!\n”</span>);+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>3</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>StdIO</span>::<span class='ltx_text ltx_lst_identifier'>printf</span>(<span class='ltx_text ltx_lst_string'>”Hello<span class='ltx_text ltx_lst_space'> </span>World!\n”</span>);
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">4</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_keyword ltx_font_bold">return</span><span class="ltx_text ltx_lst_space"> </span>0;+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>4</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>return</span><span class='ltx_text ltx_lst_space'> </span>0;
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">5</span></span>}+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>5</span></span>}
 </div> </div>
 </div> </div>
 </figure> </figure>
-<div id="Ch5.S1.p2class="ltx_para"+<div id='Ch5.S1.p2class='ltx_para'
-<p class="ltx_p">Instead of an import statement, a qualified function name is used. A qualified+<p class='ltx_p'>Instead of an import statement, a qualified function name is used. A qualified
 identifier always consists of a name space identifier, followed by a double identifier always consists of a name space identifier, followed by a double
 colon and the unqualified identifier, in this case a function identifier. colon and the unqualified identifier, in this case a function identifier.
Line 4796: Line 5395:
 global objects.</p> global objects.</p>
 </div> </div>
-<div id="Ch5.S1.p3class="ltx_para"+<div id='Ch5.S1.p3class='ltx_para'
-<p class="ltx_p">As it would be bothering to precede each identifier with the name space it +<p class='ltx_p'>As it would be bothering to precede each identifier with the name space it 
-belongs to, <span class="ltx_text ltx_font_smallcaps">SaC</span> supports multiple ways to automatically decide the right name+belongs to, <span class='ltx_text ltx_font_smallcaps'>SaC</span> supports multiple ways to automatically decide the right name
 space and generate a fully qualified identifier implicitly (or internally).</p> space and generate a fully qualified identifier implicitly (or internally).</p>
 </div> </div>
 </section> </section>
-<section id="Ch5.S2class="ltx_section"+<section id='Ch5.S2class='ltx_section'
-<h4 class="ltx_title ltx_title_section"+<h4 class='ltx_title ltx_title_section'
-<span class="ltx_tag ltx_tag_section">5.2 </span>Use Statements</h4>+<span class='ltx_tag ltx_tag_section'>5.2 </span>Use Statements</h4>
  
-<div id="Ch5.S2.p1class="ltx_para"+<div id='Ch5.S2.p1class='ltx_para'
-<p class="ltx_p">To simplify the use of identifiers from other modules, <span class="ltx_text ltx_font_smallcaps">SaC</span> allows us to specify+<p class='ltx_p'>To simplify the use of identifiers from other modules, <span class='ltx_text ltx_font_smallcaps'>SaC</span> allows us to specify
 a search space whose identifiers can be used in an unqualified fashion. By a search space whose identifiers can be used in an unqualified fashion. By
 default, this search space contains all identifiers from the current name space. default, this search space contains all identifiers from the current name space.
 To add a complete name space to the current search space, you may use the To add a complete name space to the current search space, you may use the
-statement <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting"><span class="ltx_text ltx_lst_keyword ltx_font_bold">use</span><span class="ltx_text ltx_lst_space"> </span><math id="Ch5.S2.p1.m1class="ltx_Mathalttext="\alphadisplay="inline"><mi>α</mi></math>:<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">all</span>;</span> where <math id="Ch5.S2.p1.m2class="ltx_Mathalttext="\alphadisplay="inline"><mi>α</mi></math> gives+statement <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'><span class='ltx_text ltx_lst_keyword ltx_font_bold'>use</span><span class='ltx_text ltx_lst_space'> </span><math id='Ch5.S2.p1.m1class='ltx_Mathalttext='\alphadisplay='inline'><mi>α</mi></math>:<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>all</span>;</span> where <math id='Ch5.S2.p1.m2class='ltx_Mathalttext='\alphadisplay='inline'><mi>α</mi></math> gives
 the name of a name space. Using this technique, the hello world example can as the name of a name space. Using this technique, the hello world example can as
 well be expressed as follows:</p> well be expressed as follows:</p>
 </div> </div>
-<figure id="LST35class="ltx_float ltx_lstlisting ltx_role_listing"+<figure id='LST35class='ltx_float ltx_lstlisting ltx_role_listing'
-<figcaption class="ltx_caption"><span class="ltx_tag ltx_tag_float">Listing 35: </span>hello world with use statement</figcaption> +<figcaption class='ltx_caption'><span class='ltx_tag ltx_tag_float'>Listing 35: </span>hello world with use statement</figcaption> 
-<div class="ltx_listing ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_listing"+<div class='ltx_listing ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_listing'
-<div class="ltx_listing_data"><a href="data:text/plain;base64,dXNlIFN0ZElPOiBhbGw7CgppbnQgbWFpbigpCnsKICBwcmludGYoIkhlbGxvIFdvcmxkIVxuIik7%0ACiAgcmV0dXJuIDA7Cn0=%0A">⬇</a></div> +<div class='ltx_listing_data'><a href='data:text/plain;base64,dXNlIFN0ZElPOiBhbGw7CgppbnQgbWFpbigpCnsKICBwcmludGYoIkhlbGxvIFdvcmxkIVxuIik7%0ACiAgcmV0dXJuIDA7Cn0=%0A'>⬇</a></div> 
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">1</span></span><span class="ltx_text ltx_lst_keyword ltx_font_bold">use</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">StdIO</span>:<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">all</span>;+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>1</span></span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>use</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>StdIO</span>:<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>all</span>;
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">2</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>2</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">3</span></span><span class="ltx_text ltx_lst_keyword ltx_font_bold">int</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">main</span>()+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>3</span></span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>int</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>main</span>()
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">4</span></span>{+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>4</span></span>{
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">5</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">printf</span>(<span class="ltx_text ltx_lst_string">”Hello<span class="ltx_text ltx_lst_space"> </span>World!\n”</span>);+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>5</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>printf</span>(<span class='ltx_text ltx_lst_string'>”Hello<span class='ltx_text ltx_lst_space'> </span>World!\n”</span>);
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">6</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_keyword ltx_font_bold">return</span><span class="ltx_text ltx_lst_space"> </span>0;+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>6</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>return</span><span class='ltx_text ltx_lst_space'> </span>0;
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">7</span></span>}+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>7</span></span>}
 </div> </div>
 </div> </div>
 </figure> </figure>
-<div id="Ch5.S2.p2class="ltx_para"+<div id='Ch5.S2.p2class='ltx_para'
-<p class="ltx_p">However, an identifier is not allowed to have multiple occurrences within the+<p class='ltx_p'>However, an identifier is not allowed to have multiple occurrences within the
 search space as far as types and global objects are concerned. For function search space as far as types and global objects are concerned. For function
 symbols the same holds modulo overloading based on parameter types.</p> symbols the same holds modulo overloading based on parameter types.</p>
 </div> </div>
-<div id="Ch5.S2.p3class="ltx_para"+<div id='Ch5.S2.p3class='ltx_para'
-<p class="ltx_p">To further avoid name clashes, <span class="ltx_text ltx_font_smallcaps">SaC</span> supports a more specific way to define search +<p class='ltx_p'>To further avoid name clashes, <span class='ltx_text ltx_font_smallcaps'>SaC</span> supports a more specific way to define search 
-spaces. Instead of the keyword <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">all</span>, a comma separated list of+spaces. Instead of the keyword <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>all</span>, a comma separated list of
 identifiers can be given. The following version of hello world uses a more identifiers can be given. The following version of hello world uses a more
 specific use statement:</p> specific use statement:</p>
 </div> </div>
-<figure id="LST36class="ltx_float ltx_lstlisting ltx_role_listing"+<figure id='LST36class='ltx_float ltx_lstlisting ltx_role_listing'
-<figcaption class="ltx_caption"><span class="ltx_tag ltx_tag_float">Listing 36: </span>hello world with specific use statement</figcaption> +<figcaption class='ltx_caption'><span class='ltx_tag ltx_tag_float'>Listing 36: </span>hello world with specific use statement</figcaption> 
-<div class="ltx_listing ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_listing"+<div class='ltx_listing ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_listing'
-<div class="ltx_listing_data"><a href="data:text/plain;base64,dXNlIFN0ZElPOiB7cHJpbnRmfTsKCmludCBtYWluKCkKewogIHByaW50ZigiSGVsbG8gV29ybGQh%0AXG4iKTsKICByZXR1cm4gMDsKfQ==%0A">⬇</a></div> +<div class='ltx_listing_data'><a href='data:text/plain;base64,dXNlIFN0ZElPOiB7cHJpbnRmfTsKCmludCBtYWluKCkKewogIHByaW50ZigiSGVsbG8gV29ybGQh%0AXG4iKTsKICByZXR1cm4gMDsKfQ==%0A'>⬇</a></div> 
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">1</span></span><span class="ltx_text ltx_lst_keyword ltx_font_bold">use</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">StdIO</span>:<span class="ltx_text ltx_lst_space"> </span>{<span class="ltx_text ltx_lst_identifier">printf</span>};+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>1</span></span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>use</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>StdIO</span>:<span class='ltx_text ltx_lst_space'> </span>{<span class='ltx_text ltx_lst_identifier'>printf</span>};
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">2</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>2</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">3</span></span><span class="ltx_text ltx_lst_keyword ltx_font_bold">int</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">main</span>()+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>3</span></span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>int</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>main</span>()
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">4</span></span>{+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>4</span></span>{
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">5</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">printf</span>(<span class="ltx_text ltx_lst_string">”Hello<span class="ltx_text ltx_lst_space"> </span>World!\n”</span>);+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>5</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>printf</span>(<span class='ltx_text ltx_lst_string'>”Hello<span class='ltx_text ltx_lst_space'> </span>World!\n”</span>);
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">6</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_keyword ltx_font_bold">return</span><span class="ltx_text ltx_lst_space"> </span>0;+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>6</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>return</span><span class='ltx_text ltx_lst_space'> </span>0;
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">7</span></span>}+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>7</span></span>}
 </div> </div>
 </div> </div>
 </figure> </figure>
-<div id="Ch5.S2.p4class="ltx_para"+<div id='Ch5.S2.p4class='ltx_para'
-<p class="ltx_p">In this example, only <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">printf</span> is made available to the search space+<p class='ltx_p'>In this example, only <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>printf</span> is made available to the search space
 and can thus be used without explicitly specifying its name space. In some and can thus be used without explicitly specifying its name space. In some
 occasions it can be useful to add all identifiers except a given set to the occasions it can be useful to add all identifiers except a given set to the
-search space. Consider a module <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">FastIO</span> reimplementing all functions +search space. Consider a module <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>FastIO</span> reimplementing all functions 
-of <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">StdIO</span>. To use <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">FastIO</span> except the <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">printf</span> +of <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>StdIO</span>. To use <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>FastIO</span> except the <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>printf</span> 
-function, but <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting"><span class="ltx_text ltx_lst_identifier">StdIO</span>::<span class="ltx_text ltx_lst_identifier">printf</span></span> one might write:</p>+function, but <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'><span class='ltx_text ltx_lst_identifier'>StdIO</span>::<span class='ltx_text ltx_lst_identifier'>printf</span></span> one might write:</p>
 </div> </div>
-<figure id="LST37class="ltx_float ltx_lstlisting ltx_role_listing"+<figure id='LST37class='ltx_float ltx_lstlisting ltx_role_listing'
-<figcaption class="ltx_caption"><span class="ltx_tag ltx_tag_float">Listing 37: </span>hello world with use all but statement</figcaption> +<figcaption class='ltx_caption'><span class='ltx_tag ltx_tag_float'>Listing 37: </span>hello world with use all but statement</figcaption> 
-<div class="ltx_listing ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_listing"+<div class='ltx_listing ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_listing'
-<div class="ltx_listing_data"><a href="data:text/plain;base64,dXNlIEZhc3RJTzogYWxsIGV4Y2VwdCB7cHJpbnRmfTsKdXNlIFN0ZElPOiB7cHJpbnRmfTsKCmlu%0AdCBtYWluKCkKewogIHByaW50ZigiSGVsbG8gV29ybGQhXG4iKTsKICByZXR1cm4gMDsKfQ==%0A">⬇</a></div> +<div class='ltx_listing_data'><a href='data:text/plain;base64,dXNlIEZhc3RJTzogYWxsIGV4Y2VwdCB7cHJpbnRmfTsKdXNlIFN0ZElPOiB7cHJpbnRmfTsKCmlu%0AdCBtYWluKCkKewogIHByaW50ZigiSGVsbG8gV29ybGQhXG4iKTsKICByZXR1cm4gMDsKfQ==%0A'>⬇</a></div> 
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">1</span></span><span class="ltx_text ltx_lst_keyword ltx_font_bold">use</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">FastIO</span>:<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">all</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_keyword ltx_font_bold">except</span><span class="ltx_text ltx_lst_space"> </span>{<span class="ltx_text ltx_lst_identifier">printf</span>};+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>1</span></span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>use</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>FastIO</span>:<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>all</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>except</span><span class='ltx_text ltx_lst_space'> </span>{<span class='ltx_text ltx_lst_identifier'>printf</span>};
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">2</span></span><span class="ltx_text ltx_lst_keyword ltx_font_bold">use</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">StdIO</span>:<span class="ltx_text ltx_lst_space"> </span>{<span class="ltx_text ltx_lst_identifier">printf</span>};+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>2</span></span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>use</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>StdIO</span>:<span class='ltx_text ltx_lst_space'> </span>{<span class='ltx_text ltx_lst_identifier'>printf</span>};
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">3</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>3</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">4</span></span><span class="ltx_text ltx_lst_keyword ltx_font_bold">int</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">main</span>()+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>4</span></span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>int</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>main</span>()
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">5</span></span>{+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>5</span></span>{
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">6</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">printf</span>(<span class="ltx_text ltx_lst_string">”Hello<span class="ltx_text ltx_lst_space"> </span>World!\n”</span>);+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>6</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>printf</span>(<span class='ltx_text ltx_lst_string'>”Hello<span class='ltx_text ltx_lst_space'> </span>World!\n”</span>);
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">7</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_keyword ltx_font_bold">return</span><span class="ltx_text ltx_lst_space"> </span>0;+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>7</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>return</span><span class='ltx_text ltx_lst_space'> </span>0;
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">8</span></span>}+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>8</span></span>}
 </div> </div>
 </div> </div>
 </figure> </figure>
-<div id="Ch5.S2.p5class="ltx_para"+<div id='Ch5.S2.p5class='ltx_para'
-<p class="ltx_p">This adds all identifiers from <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">FastIO</span> to the current search space +<p class='ltx_p'>This adds all identifiers from <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>FastIO</span> to the current search space 
-except <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting"><span class="ltx_text ltx_lst_identifier">FastIO</span>::<span class="ltx_text ltx_lst_identifier">printf</span></span>. This allows the function <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">printf</span> +except <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'><span class='ltx_text ltx_lst_identifier'>FastIO</span>::<span class='ltx_text ltx_lst_identifier'>printf</span></span>. This allows the function <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>printf</span> 
-to be imported from module <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">StdIO</span>.</p>+to be imported from module <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>StdIO</span>.</p>
 </div> </div>
 </section> </section>
-<section id="Ch5.S3class="ltx_section"+<section id='Ch5.S3class='ltx_section'
-<h4 class="ltx_title ltx_title_section"+<h4 class='ltx_title ltx_title_section'
-<span class="ltx_tag ltx_tag_section">5.3 </span>Import statement</h4>+<span class='ltx_tag ltx_tag_section'>5.3 </span>Import statement</h4>
  
-<div id="Ch5.S3.p1class="ltx_para"+<div id='Ch5.S3.p1class='ltx_para'
-<p class="ltx_p">So far, we added identifiers to the search space of the <span class="ltx_text ltx_font_smallcaps">SaC</span> compiler to avoid+<p class='ltx_p'>So far, we added identifiers to the search space of the <span class='ltx_text ltx_font_smallcaps'>SaC</span> compiler to avoid
 explicitly specifying their name spaces each time they are referenced. As explicitly specifying their name spaces each time they are referenced. As
 function signatures have to differ in number of arguments or their types, the function signatures have to differ in number of arguments or their types, the
-<span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_keyword ltx_font_bold">use</span> statement prevents overloading of functions by shape across +<span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_keyword ltx_font_bold'>use</span> statement prevents overloading of functions by shape across 
-module boundaries. In fact, <span class="ltx_text ltx_font_smallcaps">SaC</span> only supports overloading by shape within a+module boundaries. In fact, <span class='ltx_text ltx_font_smallcaps'>SaC</span> only supports overloading by shape within a
 single name space. Otherwise, the meaning of a fully qualified identifier could single name space. Otherwise, the meaning of a fully qualified identifier could
 differ when being used in different scopes. To nonetheless allow for successive differ when being used in different scopes. To nonetheless allow for successive
-overloading in separate modules, <span class="ltx_text ltx_font_smallcaps">SaC</span> provides a mechanism for cloning functions +overloading in separate modules, <span class='ltx_text ltx_font_smallcaps'>SaC</span> provides a mechanism for cloning functions 
-using the <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_keyword ltx_font_bold">import</span> statement.</p>+using the <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_keyword ltx_font_bold'>import</span> statement.</p>
 </div> </div>
-<figure id="LST38class="ltx_float ltx_lstlisting ltx_role_listing"+<figure id='LST38class='ltx_float ltx_lstlisting ltx_role_listing'
-<figcaption class="ltx_caption"><span class="ltx_tag ltx_tag_float">Listing 38: </span>hello world with import statement</figcaption> +<figcaption class='ltx_caption'><span class='ltx_tag ltx_tag_float'>Listing 38: </span>hello world with import statement</figcaption> 
-<div class="ltx_listing ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_listing"+<div class='ltx_listing ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_listing'
-<div class="ltx_listing_data"><a href="data:text/plain;base64,aW1wb3J0IFN0ZElPOiB7cHJpbnRmfTsKCmludCBtYWluKCkKewogIG1haW46OnByaW50ZigiSGVs%0AbG8gV29ybGQhXG4iKTsKICByZXR1cm4gMDsKfQ==%0A">⬇</a></div> +<div class='ltx_listing_data'><a href='data:text/plain;base64,aW1wb3J0IFN0ZElPOiB7cHJpbnRmfTsKCmludCBtYWluKCkKewogIG1haW46OnByaW50ZigiSGVs%0AbG8gV29ybGQhXG4iKTsKICByZXR1cm4gMDsKfQ==%0A'>⬇</a></div> 
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">1</span></span><span class="ltx_text ltx_lst_keyword ltx_font_bold">import</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">StdIO</span>:<span class="ltx_text ltx_lst_space"> </span>{<span class="ltx_text ltx_lst_identifier">printf</span>};+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>1</span></span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>import</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>StdIO</span>:<span class='ltx_text ltx_lst_space'> </span>{<span class='ltx_text ltx_lst_identifier'>printf</span>};
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">2</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>2</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">3</span></span><span class="ltx_text ltx_lst_keyword ltx_font_bold">int</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">main</span>()+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>3</span></span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>int</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>main</span>()
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">4</span></span>{+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>4</span></span>{
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">5</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">main</span>::<span class="ltx_text ltx_lst_identifier">printf</span>(<span class="ltx_text ltx_lst_string">”Hello<span class="ltx_text ltx_lst_space"> </span>World!\n”</span>);+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>5</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>main</span>::<span class='ltx_text ltx_lst_identifier'>printf</span>(<span class='ltx_text ltx_lst_string'>”Hello<span class='ltx_text ltx_lst_space'> </span>World!\n”</span>);
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">6</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_keyword ltx_font_bold">return</span><span class="ltx_text ltx_lst_space"> </span>0;+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>6</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>return</span><span class='ltx_text ltx_lst_space'> </span>0;
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">7</span></span>}+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>7</span></span>}
 </div> </div>
 </div> </div>
 </figure> </figure>
-<div id="Ch5.S3.p2class="ltx_para"+<div id='Ch5.S3.p2class='ltx_para'
-<p class="ltx_p">In this example, the statement <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting"><span class="ltx_text ltx_lst_keyword ltx_font_bold">import</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">StdIO</span>:<span class="ltx_text ltx_lst_space"> </span>{<span class="ltx_text ltx_lst_identifier">printf</span>}</span> creates a +<p class='ltx_p'>In this example, the statement <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'><span class='ltx_text ltx_lst_keyword ltx_font_bold'>import</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>StdIO</span>:<span class='ltx_text ltx_lst_space'> </span>{<span class='ltx_text ltx_lst_identifier'>printf</span>}</span> creates a 
-(conceptual) copy of the function <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">printf</span> in the current name space +(conceptual) copy of the function <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>printf</span> in the current name space 
-<span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">main</span>. Consider a module <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">foo</span> containing a function +<span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>main</span>. Consider a module <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>foo</span> containing a function 
-<span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting"><span class="ltx_text ltx_lst_keyword ltx_font_bold">int</span>[*]<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">bar</span>(<span class="ltx_text ltx_lst_keyword ltx_font_bold">int</span>[*])</span>. This function can now be overloaded as follows:</p>+<span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'><span class='ltx_text ltx_lst_keyword ltx_font_bold'>int</span>[*]<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>bar</span>(<span class='ltx_text ltx_lst_keyword ltx_font_bold'>int</span>[*])</span>. This function can now be overloaded as follows:</p>
 </div> </div>
-<figure id="LST39class="ltx_float ltx_lstlisting ltx_role_listing"+<figure id='LST39class='ltx_float ltx_lstlisting ltx_role_listing'
-<figcaption class="ltx_caption"><span class="ltx_tag ltx_tag_float">Listing 39: </span>bar overloading</figcaption> +<figcaption class='ltx_caption'><span class='ltx_tag ltx_tag_float'>Listing 39: </span>bar overloading</figcaption> 
-<div class="ltx_listing ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_listing"+<div class='ltx_listing ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_listing'
-<div class="ltx_listing_data"><a href="data:text/plain;base64,aW1wb3J0IGZvbzoge2Jhcn07CgppbnRbK10gYmFyKGludFsrXSB4KQp7CiAgLyogLi4uICAqLwp9%0ACgppbnQgbWFpbigpCnsKICAvKiAuLi4gICovCgogIHkgPSBiYXIoeCk7CgogIC8qIC4uLiAgKi8K%0AfQ==%0A">⬇</a></div> +<div class='ltx_listing_data'><a href='data:text/plain;base64,aW1wb3J0IGZvbzoge2Jhcn07CgppbnRbK10gYmFyKGludFsrXSB4KQp7CiAgLyogLi4uICAqLwp9%0ACgppbnQgbWFpbigpCnsKICAvKiAuLi4gICovCgogIHkgPSBiYXIoeCk7CgogIC8qIC4uLiAgKi8K%0AfQ==%0A'>⬇</a></div> 
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">1</span></span><span class="ltx_text ltx_lst_keyword ltx_font_bold">import</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">foo</span>:<span class="ltx_text ltx_lst_space"> </span>{<span class="ltx_text ltx_lst_identifier">bar</span>};+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>1</span></span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>import</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>foo</span>:<span class='ltx_text ltx_lst_space'> </span>{<span class='ltx_text ltx_lst_identifier'>bar</span>};
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">2</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>2</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">3</span></span><span class="ltx_text ltx_lst_keyword ltx_font_bold">int</span>[+]<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">bar</span>(<span class="ltx_text ltx_lst_keyword ltx_font_bold">int</span>[+]<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">x</span>)+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>3</span></span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>int</span>[+]<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>bar</span>(<span class='ltx_text ltx_lst_keyword ltx_font_bold'>int</span>[+]<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>x</span>)
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">4</span></span>{+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>4</span></span>{
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">5</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_comment ltx_font_italic">/*<span class="ltx_text ltx_lst_space"> </span>…<span class="ltx_text ltx_lst_space">  </span>*/</span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>5</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_comment ltx_font_italic'>/*<span class='ltx_text ltx_lst_space'> </span>…<span class='ltx_text ltx_lst_space'>  </span>*/</span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">6</span></span>}+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>6</span></span>}
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">7</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>7</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">8</span></span><span class="ltx_text ltx_lst_keyword ltx_font_bold">int</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">main</span>()+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>8</span></span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>int</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>main</span>()
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">9</span></span>{+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>9</span></span>{
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">10</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_comment ltx_font_italic">/*<span class="ltx_text ltx_lst_space"> </span>…<span class="ltx_text ltx_lst_space">  </span>*/</span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>10</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_comment ltx_font_italic'>/*<span class='ltx_text ltx_lst_space'> </span>…<span class='ltx_text ltx_lst_space'>  </span>*/</span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">11</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>11</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">12</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">y</span><span class="ltx_text ltx_lst_space"> </span>=<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">bar</span>(<span class="ltx_text ltx_lst_identifier">x</span>);+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>12</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>y</span><span class='ltx_text ltx_lst_space'> </span>=<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>bar</span>(<span class='ltx_text ltx_lst_identifier'>x</span>);
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">13</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>13</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">14</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_comment ltx_font_italic">/*<span class="ltx_text ltx_lst_space"> </span>…<span class="ltx_text ltx_lst_space">  </span>*/</span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>14</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_comment ltx_font_italic'>/*<span class='ltx_text ltx_lst_space'> </span>…<span class='ltx_text ltx_lst_space'>  </span>*/</span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">15</span></span>}+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>15</span></span>}
 </div> </div>
 </div> </div>
 </figure> </figure>
-<div id="Ch5.S3.p3class="ltx_para"+<div id='Ch5.S3.p3class='ltx_para'
-<p class="ltx_p">Within the name space <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">main</span> there are two instances of <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">bar</span>, the +<p class='ltx_p'>Within the name space <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>main</span> there are two instances of <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>bar</span>, the 
-one imported from <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">foo</span> and the one defined within <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">main</span> +one imported from <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>foo</span> and the one defined within <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>main</span> 
-itself. Keep in mind, that there is a conceptual copy in <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">main</span>, so +itself. Keep in mind, that there is a conceptual copy in <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>main</span>, so 
-both are defined in <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">main</span> and so overloading can take place.</p>+both are defined in <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>main</span> and so overloading can take place.</p>
 </div> </div>
-<div id="Ch5.S3.p4class="ltx_para"+<div id='Ch5.S3.p4class='ltx_para'
-<p class="ltx_p">Be careful when importing types, as an imported type is regarded as different to+<p class='ltx_p'>Be careful when importing types, as an imported type is regarded as different to
 its origin type by the type system as they were defined in different name its origin type by the type system as they were defined in different name
 spaces. However, you might still exchanges values between both types by means of spaces. However, you might still exchanges values between both types by means of
Line 5036: Line 5635:
 </div> </div>
 </section> </section>
-<section id="Ch5.S4class="ltx_section"+<section id='Ch5.S4class='ltx_section'
-<h4 class="ltx_title ltx_title_section"+<h4 class='ltx_title ltx_title_section'
-<span class="ltx_tag ltx_tag_section">5.4 </span>Putting It Together</h4>+<span class='ltx_tag ltx_tag_section'>5.4 </span>Putting It Together</h4>
  
-<div id="Ch5.S4.p1class="ltx_para"+<div id='Ch5.S4.p1class='ltx_para'
-<p class="ltx_p">Both types of module statements can be mixed in any possible way, as long as no +<p class='ltx_p'>Both types of module statements can be mixed in any possible way, as long as no 
-name clash is introduced by them. Always keep in mind that an <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_keyword ltx_font_bold">import</span>+name clash is introduced by them. Always keep in mind that an <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_keyword ltx_font_bold'>import</span>
 statement adds all identifiers to the current name space and thus to the current statement adds all identifiers to the current name space and thus to the current
 search space, as well. The following example creates a name clash by using and search space, as well. The following example creates a name clash by using and
 importing the same identifier:</p> importing the same identifier:</p>
 </div> </div>
-<figure id="LST40class="ltx_float ltx_lstlisting ltx_role_listing"+<figure id='LST40class='ltx_float ltx_lstlisting ltx_role_listing'
-<figcaption class="ltx_caption"><span class="ltx_tag ltx_tag_float">Listing 40: </span>name clash example</figcaption> +<figcaption class='ltx_caption'><span class='ltx_tag ltx_tag_float'>Listing 40: </span>name clash example</figcaption> 
-<div class="ltx_listing ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_listing"+<div class='ltx_listing ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_listing'
-<div class="ltx_listing_data"><a href="data:text/plain;base64,dXNlIFN0ZElPOiBhbGw7CmltcG9ydCBTdGRJTzoge3ByaW50Zn07CgppbnQgbWFpbigpCnsKICBw%0AcmludGYoIk5ldmVyIHNlZSB0aGlzIVxuIik7CgogIHJldHVybiAwOwp9%0A">⬇</a></div> +<div class='ltx_listing_data'><a href='data:text/plain;base64,dXNlIFN0ZElPOiBhbGw7CmltcG9ydCBTdGRJTzoge3ByaW50Zn07CgppbnQgbWFpbigpCnsKICBw%0AcmludGYoIk5ldmVyIHNlZSB0aGlzIVxuIik7CgogIHJldHVybiAwOwp9%0A'>⬇</a></div> 
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">1</span></span><span class="ltx_text ltx_lst_keyword ltx_font_bold">use</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">StdIO</span>:<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">all</span>;+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>1</span></span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>use</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>StdIO</span>:<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>all</span>;
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">2</span></span><span class="ltx_text ltx_lst_keyword ltx_font_bold">import</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">StdIO</span>:<span class="ltx_text ltx_lst_space"> </span>{<span class="ltx_text ltx_lst_identifier">printf</span>};+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>2</span></span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>import</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>StdIO</span>:<span class='ltx_text ltx_lst_space'> </span>{<span class='ltx_text ltx_lst_identifier'>printf</span>};
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">3</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>3</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">4</span></span><span class="ltx_text ltx_lst_keyword ltx_font_bold">int</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">main</span>()+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>4</span></span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>int</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>main</span>()
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">5</span></span>{+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>5</span></span>{
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">6</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">printf</span>(<span class="ltx_text ltx_lst_string">”Never<span class="ltx_text ltx_lst_space"> </span>see<span class="ltx_text ltx_lst_space"> </span>this!\n”</span>);+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>6</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>printf</span>(<span class='ltx_text ltx_lst_string'>”Never<span class='ltx_text ltx_lst_space'> </span>see<span class='ltx_text ltx_lst_space'> </span>this!\n”</span>);
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">7</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>7</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">8</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_keyword ltx_font_bold">return</span><span class="ltx_text ltx_lst_space"> </span>0;+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>8</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>return</span><span class='ltx_text ltx_lst_space'> </span>0;
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">9</span></span>}+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>9</span></span>}
 </div> </div>
 </div> </div>
 </figure> </figure>
-<div id="Ch5.S4.p2class="ltx_para"+<div id='Ch5.S4.p2class='ltx_para'
-<p class="ltx_p">Here, <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">printf</span> is imported to the current name space, so there is an +<p class='ltx_p'>Here, <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>printf</span> is imported to the current name space, so there is an 
-identifier <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting"><span class="ltx_text ltx_lst_identifier">main</span>::<span class="ltx_text ltx_lst_identifier">printf</span></span>, which is part of the compiler search space. +identifier <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'><span class='ltx_text ltx_lst_identifier'>main</span>::<span class='ltx_text ltx_lst_identifier'>printf</span></span>, which is part of the compiler search space. 
-Furthermore, the <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_keyword ltx_font_bold">use</span> statement adds the complete name space of +Furthermore, the <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_keyword ltx_font_bold'>use</span> statement adds the complete name space of 
-module <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">StdIO</span> to the current name space, especially the identifier +module <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>StdIO</span> to the current name space, especially the identifier 
-<span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting"><span class="ltx_text ltx_lst_identifier">StdIO</span>::<span class="ltx_text ltx_lst_identifier">printf</span></span>. Thus there are two identifiers with the same+<span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'><span class='ltx_text ltx_lst_identifier'>StdIO</span>::<span class='ltx_text ltx_lst_identifier'>printf</span></span>. Thus there are two identifiers with the same
 unqualified name within the search space. To solve this, a restriction to the unqualified name within the search space. To solve this, a restriction to the
-<span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_keyword ltx_font_bold">use</span> statement can be used.</p>+<span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_keyword ltx_font_bold'>use</span> statement can be used.</p>
 </div> </div>
-<figure id="LST41class="ltx_float ltx_lstlisting ltx_role_listing"+<figure id='LST41class='ltx_float ltx_lstlisting ltx_role_listing'
-<figcaption class="ltx_caption"><span class="ltx_tag ltx_tag_float">Listing 41: </span>name clash example</figcaption> +<figcaption class='ltx_caption'><span class='ltx_tag ltx_tag_float'>Listing 41: </span>name clash example</figcaption> 
-<div class="ltx_listing ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_listing"+<div class='ltx_listing ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_listing'
-<div class="ltx_listing_data"><a href="data:text/plain;base64,dXNlIFN0ZElPOiBhbGwgZXhjZXB0IHtwcmludGZ9OwppbXBvcnQgU3RkSU86IHtwcmludGZ9OwoK%0AaW50IG1haW4oKQp7CiAgcHJpbnRmKCJIZXksIGl0IHdvcmtzIVxuIik7CgogIHJldHVybiAwOwp9%0A">⬇</a></div> +<div class='ltx_listing_data'><a href='data:text/plain;base64,dXNlIFN0ZElPOiBhbGwgZXhjZXB0IHtwcmludGZ9OwppbXBvcnQgU3RkSU86IHtwcmludGZ9OwoK%0AaW50IG1haW4oKQp7CiAgcHJpbnRmKCJIZXksIGl0IHdvcmtzIVxuIik7CgogIHJldHVybiAwOwp9%0A'>⬇</a></div> 
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">1</span></span><span class="ltx_text ltx_lst_keyword ltx_font_bold">use</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">StdIO</span>:<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">all</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_keyword ltx_font_bold">except</span><span class="ltx_text ltx_lst_space"> </span>{<span class="ltx_text ltx_lst_identifier">printf</span>};+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>1</span></span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>use</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>StdIO</span>:<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>all</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>except</span><span class='ltx_text ltx_lst_space'> </span>{<span class='ltx_text ltx_lst_identifier'>printf</span>};
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">2</span></span><span class="ltx_text ltx_lst_keyword ltx_font_bold">import</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">StdIO</span>:<span class="ltx_text ltx_lst_space"> </span>{<span class="ltx_text ltx_lst_identifier">printf</span>};+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>2</span></span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>import</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>StdIO</span>:<span class='ltx_text ltx_lst_space'> </span>{<span class='ltx_text ltx_lst_identifier'>printf</span>};
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">3</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>3</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">4</span></span><span class="ltx_text ltx_lst_keyword ltx_font_bold">int</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">main</span>()+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>4</span></span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>int</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>main</span>()
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">5</span></span>{+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>5</span></span>{
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">6</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">printf</span>(<span class="ltx_text ltx_lst_string">”Hey,<span class="ltx_text ltx_lst_space"> </span>it<span class="ltx_text ltx_lst_space"> </span>works!\n”</span>);+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>6</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>printf</span>(<span class='ltx_text ltx_lst_string'>”Hey,<span class='ltx_text ltx_lst_space'> </span>it<span class='ltx_text ltx_lst_space'> </span>works!\n”</span>);
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">7</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>7</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">8</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_keyword ltx_font_bold">return</span><span class="ltx_text ltx_lst_space"> </span>0;+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>8</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>return</span><span class='ltx_text ltx_lst_space'> </span>0;
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">9</span></span>}+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>9</span></span>}
 </div> </div>
 </div> </div>
 </figure> </figure>
-<div id="Ch5.S4.p3class="ltx_para"+<div id='Ch5.S4.p3class='ltx_para'
-<p class="ltx_p">In this example, the identifier <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting"><span class="ltx_text ltx_lst_identifier">StdIO</span>::<span class="ltx_text ltx_lst_identifier">printf</span></span> is no longer added to+<p class='ltx_p'>In this example, the identifier <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'><span class='ltx_text ltx_lst_identifier'>StdIO</span>::<span class='ltx_text ltx_lst_identifier'>printf</span></span> is no longer added to
 the compiler search space and thus no name clash originates.</p> the compiler search space and thus no name clash originates.</p>
 </div> </div>
 </section> </section>
-<section id="Ch5.S5class="ltx_section"+<section id='Ch5.S5class='ltx_section'
-<h4 class="ltx_title ltx_title_section"+<h4 class='ltx_title ltx_title_section'
-<span class="ltx_tag ltx_tag_section">5.5 </span>Implementing Modules</h4>+<span class='ltx_tag ltx_tag_section'>5.5 </span>Implementing Modules</h4>
  
-<div id="Ch5.S5.p1class="ltx_para"+<div id='Ch5.S5.p1class='ltx_para'
-<p class="ltx_p">A <span class="ltx_text ltx_font_smallcaps">SaC</span> module implementation essentially looks just like a program, being a+<p class='ltx_p'>A <span class='ltx_text ltx_font_smallcaps'>SaC</span> module implementation essentially looks just like a program, being a
 collection of type, global object and function definitions. Unlike a program, a collection of type, global object and function definitions. Unlike a program, a
-module starts with the key word <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">module</span> followed by the module name,+module starts with the key word <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>module</span> followed by the module name,
 i.e. the name space, and a semicolon. i.e. the name space, and a semicolon.
 </p> </p>
 </div> </div>
-<figure id="LST42class="ltx_float ltx_lstlisting ltx_role_listing"+<figure id='LST42class='ltx_float ltx_lstlisting ltx_role_listing'
-<figcaption class="ltx_caption"><span class="ltx_tag ltx_tag_float">Listing 42: </span>module implementation example</figcaption> +<figcaption class='ltx_caption'><span class='ltx_tag ltx_tag_float'>Listing 42: </span>module implementation example</figcaption> 
-<div class="ltx_listing ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_listing"+<div class='ltx_listing ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_listing'
-<div class="ltx_listing_data"><a href="data:text/plain;base64,bW9kdWxlIG15bW9kOwoKcHJvdmlkZSBhbGwgZXhjZXB0IHtmb299OwpleHBvcnQge2Zvb307Cgpp%0AbnQgZm9vKGludCB4KQp7CiAgcmV0dXJuIC8qIC4uLiAgKi87Cn0KCmludCBiYXIoeCBpbnQgeCkK%0AewogIHJldHVybiAvKiAuLi4gICovOwp9%0A">⬇</a></div> +<div class='ltx_listing_data'><a href='data:text/plain;base64,bW9kdWxlIG15bW9kOwoKcHJvdmlkZSBhbGwgZXhjZXB0IHtmb299OwpleHBvcnQge2Zvb307Cgpp%0AbnQgZm9vKGludCB4KQp7CiAgcmV0dXJuIC8qIC4uLiAgKi87Cn0KCmludCBiYXIoeCBpbnQgeCkK%0AewogIHJldHVybiAvKiAuLi4gICovOwp9%0A'>⬇</a></div> 
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">1</span></span><span class="ltx_text ltx_lst_identifier">module</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">mymod</span>;+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>1</span></span><span class='ltx_text ltx_lst_identifier'>module</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>mymod</span>;
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">2</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>2</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">3</span></span><span class="ltx_text ltx_lst_keyword ltx_font_bold">provide</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">all</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_keyword ltx_font_bold">except</span><span class="ltx_text ltx_lst_space"> </span>{<span class="ltx_text ltx_lst_identifier">foo</span>};+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>3</span></span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>provide</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>all</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>except</span><span class='ltx_text ltx_lst_space'> </span>{<span class='ltx_text ltx_lst_identifier'>foo</span>};
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">4</span></span><span class="ltx_text ltx_lst_identifier">export</span><span class="ltx_text ltx_lst_space"> </span>{<span class="ltx_text ltx_lst_identifier">foo</span>};+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>4</span></span><span class='ltx_text ltx_lst_identifier'>export</span><span class='ltx_text ltx_lst_space'> </span>{<span class='ltx_text ltx_lst_identifier'>foo</span>};
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">5</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>5</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">6</span></span><span class="ltx_text ltx_lst_keyword ltx_font_bold">int</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">foo</span>(<span class="ltx_text ltx_lst_keyword ltx_font_bold">int</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">x</span>)+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>6</span></span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>int</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>foo</span>(<span class='ltx_text ltx_lst_keyword ltx_font_bold'>int</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>x</span>)
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">7</span></span>{+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>7</span></span>{
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">8</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_keyword ltx_font_bold">return</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_comment ltx_font_italic">/*<span class="ltx_text ltx_lst_space"> </span>…<span class="ltx_text ltx_lst_space">  </span>*/</span>;+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>8</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>return</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_comment ltx_font_italic'>/*<span class='ltx_text ltx_lst_space'> </span>…<span class='ltx_text ltx_lst_space'>  </span>*/</span>;
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">9</span></span>}+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>9</span></span>}
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">10</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>10</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">11</span></span><span class="ltx_text ltx_lst_keyword ltx_font_bold">int</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">bar</span>(<span class="ltx_text ltx_lst_identifier">x</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_keyword ltx_font_bold">int</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">x</span>)+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>11</span></span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>int</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>bar</span>(<span class='ltx_text ltx_lst_identifier'>x</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>int</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>x</span>)
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">12</span></span>{+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>12</span></span>{
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">13</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_keyword ltx_font_bold">return</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_comment ltx_font_italic">/*<span class="ltx_text ltx_lst_space"> </span>…<span class="ltx_text ltx_lst_space">  </span>*/</span>;+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>13</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>return</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_comment ltx_font_italic'>/*<span class='ltx_text ltx_lst_space'> </span>…<span class='ltx_text ltx_lst_space'>  </span>*/</span>;
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">14</span></span>}+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>14</span></span>}
 </div> </div>
 </div> </div>
 </figure> </figure>
-<div id="Ch5.S5.p2class="ltx_para"+<div id='Ch5.S5.p2class='ltx_para'
-<p class="ltx_p">The more interesting aspect of a module (name space) is the question which+<p class='ltx_p'>The more interesting aspect of a module (name space) is the question which
 symbols (types, global objects and functions) are made available outside the symbols (types, global objects and functions) are made available outside the
 module and which are merely accessible internally within the module itself. Two module and which are merely accessible internally within the module itself. Two
-kinds of statements using the key words <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_keyword ltx_font_bold">provide</span> and +kinds of statements using the key words <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_keyword ltx_font_bold'>provide</span> and 
-<span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">export</span> provide fine-grained control over the availability of symbols+<span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>export</span> provide fine-grained control over the availability of symbols
 outside the current module. By default any symbol defined in a module is only outside the current module. By default any symbol defined in a module is only
-accessible in the module itself. Using the <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_keyword ltx_font_bold">provide</span> statement all or+accessible in the module itself. Using the <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_keyword ltx_font_bold'>provide</span> statement all or
 selected symbols can be made available to be “used” by other modules or selected symbols can be made available to be “used” by other modules or
-programs. With the <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">export</span> statement symbols are made available for +programs. With the <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>export</span> statement symbols are made available for 
-either <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_keyword ltx_font_bold">use</span> or <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_keyword ltx_font_bold">import</span> by other modules or programs. The +either <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_keyword ltx_font_bold'>use</span> or <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_keyword ltx_font_bold'>import</span> by other modules or programs. The 
-syntax of <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_keyword ltx_font_bold">provide</span> and <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">export</span> statements is very similar +syntax of <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_keyword ltx_font_bold'>provide</span> and <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>export</span> statements is very similar 
-to that of the corresponding <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_keyword ltx_font_bold">use</span> and <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_keyword ltx_font_bold">import</span> statements.+to that of the corresponding <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_keyword ltx_font_bold'>use</span> and <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_keyword ltx_font_bold'>import</span> statements.
 Either all symbols are provided/exported uniformly, or a specific list of Either all symbols are provided/exported uniformly, or a specific list of
 symbols is concerned, or all but a given list of symbols.</p> symbols is concerned, or all but a given list of symbols.</p>
Line 5204: Line 5803:
 </section> </section>
 </section> </section>
-<section id="Ch6class="ltx_chapter"+<section id='Ch6class='ltx_chapter'
-<h3 class="ltx_title ltx_title_chapter"+<h3 class='ltx_title ltx_title_chapter'
-<span class="ltx_tag ltx_tag_chapter">Chapter 6 </span>Case Studies</h3>+<span class='ltx_tag ltx_tag_chapter'>Chapter 6 </span>Case Studies</h3>
  
-<div id="Ch6.p1class="ltx_para"+<div id='Ch6.p1class='ltx_para'
-<p class="ltx_p">This trail will illustrate how to use <span class="ltx_text ltx_font_smallcaps">SaC</span> for real-world applications. The+<p class='ltx_p'>This trail will illustrate how to use <span class='ltx_text ltx_font_smallcaps'>SaC</span> for real-world applications. The
 following exercises make use of the techniques introduced in this tutorial so following exercises make use of the techniques introduced in this tutorial so
 far. Working through this trail shall give you some more hands-on experience far. Working through this trail shall give you some more hands-on experience
-with the language itself and at the same time show you how to employ <span class="ltx_text ltx_font_smallcaps">SaC</span> to+with the language itself and at the same time show you how to employ <span class='ltx_text ltx_font_smallcaps'>SaC</span> to
 solve your every-day problems in an efficient way.</p> solve your every-day problems in an efficient way.</p>
 </div> </div>
-<section id="Ch6.S1class="ltx_section"+<section id='Ch6.S1class='ltx_section'
-<h4 class="ltx_title ltx_title_section"+<h4 class='ltx_title ltx_title_section'
-<span class="ltx_tag ltx_tag_section">6.1 </span>Lesson 7: Image Processing</h4>+<span class='ltx_tag ltx_tag_section'>6.1 </span>Lesson 7: Image Processing</h4>
  
-<div id="Ch6.S1.p1class="ltx_para"+<div id='Ch6.S1.p1class='ltx_para'
-<p class="ltx_p">Digital image processing spans across a vast area of applications. Ranging from+<p class='ltx_p'>Digital image processing spans across a vast area of applications. Ranging from
 digital photography over astronomy to surgery-assisting medical imaging, most digital photography over astronomy to surgery-assisting medical imaging, most
 applications still share as their underlying theory some sort of basic signal applications still share as their underlying theory some sort of basic signal
Line 5227: Line 5826:
 originally analogue, continuous version of the signal.</p> originally analogue, continuous version of the signal.</p>
 </div> </div>
-<div id="Ch6.S1.p2class="ltx_para"+<div id='Ch6.S1.p2class='ltx_para'
-<p class="ltx_p">In this exercise we will focus on two basic image filters on static, +<p class='ltx_p'>In this exercise we will focus on two basic image filters on static, 
-two-dimensional, 8-bit gray-scale images with a resolution of <math id="Ch6.S1.p2.m1class="ltx_Mathalttext="x_{\text{max}}\times y_{\text{max}}display="inline"><mrow><msub><mi>x</mi><mtext>max</mtext></msub><mo>×</mo><msub><mi>y</mi><mtext>max</mtext></msub></mrow></math>, such that an image is a 2D function</p> +two-dimensional, 8-bit gray-scale images with a resolution of <math id='Ch6.S1.p2.m1class='ltx_Mathalttext='x_{\text{max}}\times y_{\text{max}}display='inline'><mrow><msub><mi>x</mi><mtext>max</mtext></msub><mo>×</mo><msub><mi>y</mi><mtext>max</mtext></msub></mrow></math>, such that an image is a 2D function</p> 
-<table id="Ch10.S4.EGx1class="ltx_equationgroup ltx_eqn_eqnarray ltx_eqn_table">+<table id='Ch10.S4.EGx1class='ltx_equationgroup ltx_eqn_eqnarray ltx_eqn_table'>
  
-<tr id="Ch6.Ex1class="ltx_equation ltx_eqn_row ltx_align_baseline"+<tr id='Ch6.Ex1class='ltx_equation ltx_eqn_row ltx_align_baseline'
-<td class="ltx_eqn_cell ltx_eqn_center_padleft"></td> +<td class='ltx_eqn_cell ltx_eqn_center_padleft'></td> 
-<td class="ltx_td ltx_align_right ltx_eqn_cell"><math id="Ch6.Ex1.m1class="ltx_Mathalttext="\displaystyle S:\mathbb{N}\times\mathbb{N}display="inline"><mrow><mi>S</mi><mo>:</mo><mrow><mi>ℕ</mi><mo>×</mo><mi>ℕ</mi></mrow></mrow></math></td> +<td class='ltx_td ltx_align_right ltx_eqn_cell'><math id='Ch6.Ex1.m1class='ltx_Mathalttext='\displaystyle S:\mathbb{N}\times\mathbb{N}display='inline'><mrow><mi>S</mi><mo>:</mo><mrow><mi>ℕ</mi><mo>×</mo><mi>ℕ</mi></mrow></mrow></math></td> 
-<td class="ltx_td ltx_align_center ltx_eqn_cell"><math id="Ch6.Ex1.m2class="ltx_Mathalttext="\displaystyle\rightarrowdisplay="inline"><mo>→</mo></math></td> +<td class='ltx_td ltx_align_center ltx_eqn_cell'><math id='Ch6.Ex1.m2class='ltx_Mathalttext='\displaystyle\rightarrowdisplay='inline'><mo>→</mo></math></td> 
-<td class="ltx_td ltx_align_left ltx_eqn_cell"><math id="Ch6.Ex1.m3class="ltx_Mathalttext="\displaystyle\mathbb{N}display="inline"><mi>ℕ</mi></math></td> +<td class='ltx_td ltx_align_left ltx_eqn_cell'><math id='Ch6.Ex1.m3class='ltx_Mathalttext='\displaystyle\mathbb{N}display='inline'><mi>ℕ</mi></math></td> 
-<td class="ltx_eqn_cell ltx_eqn_center_padright"></td>+<td class='ltx_eqn_cell ltx_eqn_center_padright'></td>
 </tr> </tr>
-<tr id="Ch6.Ex2class="ltx_equation ltx_eqn_row ltx_align_baseline"+<tr id='Ch6.Ex2class='ltx_equation ltx_eqn_row ltx_align_baseline'
-<td class="ltx_eqn_cell ltx_eqn_center_padleft"></td> +<td class='ltx_eqn_cell ltx_eqn_center_padleft'></td> 
-<td class="ltx_td ltx_align_right ltx_eqn_cell"><math id="Ch6.Ex2.m1class="ltx_Mathalttext="\displaystyle S(x,y)display="inline"><mrow><mi>S</mi><mo>⁢</mo><mrow><mo stretchy="false">(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo stretchy="false">)</mo></mrow></mrow></math></td> +<td class='ltx_td ltx_align_right ltx_eqn_cell'><math id='Ch6.Ex2.m1class='ltx_Mathalttext='\displaystyle S(x,y)display='inline'><mrow><mi>S</mi><mo>⁢</mo><mrow><mo stretchy='false'>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo stretchy='false'>)</mo></mrow></mrow></math></td> 
-<td class="ltx_td ltx_align_center ltx_eqn_cell"><math id="Ch6.Ex2.m2class="ltx_Mathalttext="\displaystyle=display="inline"><mo>=</mo></math></td> +<td class='ltx_td ltx_align_center ltx_eqn_cell'><math id='Ch6.Ex2.m2class='ltx_Mathalttext='\displaystyle=display='inline'><mo>=</mo></math></td> 
-<td class="ltx_td ltx_align_left ltx_eqn_cell"><math id="Ch6.Ex2.m3class="ltx_Mathalttext="\displaystyle\begin{cases}v_{xy},&amp;\mbox{if }x&lt;x_{\text{max}}\wedge y&lt;y_{\text{%+<td class='ltx_td ltx_align_left ltx_eqn_cell'><math id='Ch6.Ex2.m3class='ltx_Mathalttext='\displaystyle\begin{cases}v_{xy},&\mbox{if }x<x_{\text{max}}\wedge y<y_{\text{%
 max}}\\ max}}\\
-0,&amp;\mbox{otherwise}\end{cases}display="inline"><mrow><mo>{</mo><mtable columnspacing="5ptrowspacing="0pt"><mtr><mtd columnalign="left"><mrow><msub><mi>v</mi><mrow><mi>x</mi><mo>⁢</mo><mi>y</mi></mrow></msub><mo>,</mo></mrow></mtd><mtd columnalign="left"><mrow><mrow><mtext>if </mtext><mo>⁢</mo><mi>x</mi></mrow><mo>&lt;</mo><mrow><msub><mi>x</mi><mtext>max</mtext></msub><mo>∧</mo><mi>y</mi></mrow><mo>&lt;</mo><msub><mi>y</mi><mtext>max</mtext></msub></mrow></mtd></mtr><mtr><mtd columnalign="left"><mrow><mn>0</mn><mo>,</mo></mrow></mtd><mtd columnalign="left"><mtext>otherwise</mtext></mtd></mtr></mtable></mrow></math></td> +0,&\mbox{otherwise}\end{cases}display='inline'><mrow><mo>{</mo><mtable columnspacing='5ptrowspacing='0pt'><mtr><mtd columnalign='left'><mrow><msub><mi>v</mi><mrow><mi>x</mi><mo>⁢</mo><mi>y</mi></mrow></msub><mo>,</mo></mrow></mtd><mtd columnalign='left'><mrow><mrow><mtext>if </mtext><mo>⁢</mo><mi>x</mi></mrow><mo>&lt;</mo><mrow><msub><mi>x</mi><mtext>max</mtext></msub><mo>∧</mo><mi>y</mi></mrow><mo>&lt;</mo><msub><mi>y</mi><mtext>max</mtext></msub></mrow></mtd></mtr><mtr><mtd columnalign='left'><mrow><mn>0</mn><mo>,</mo></mrow></mtd><mtd columnalign='left'><mtext>otherwise</mtext></mtd></mtr></mtable></mrow></math></td> 
-<td class="ltx_eqn_cell ltx_eqn_center_padright"></td>+<td class='ltx_eqn_cell ltx_eqn_center_padright'></td>
 </tr> </tr>
 </table> </table>
-<p class="ltx_p">where <math id="Ch6.S1.p2.m2class="ltx_Mathalttext="\forall x,y:0\leq v_{xy}\leq 255display="inline"><mrow><mrow><mrow><mo>∀</mo><mi>x</mi></mrow><mo>,</mo><mi>y</mi></mrow><mo>:</mo><mrow><mn>0</mn><mo>≤</mo><msub><mi>v</mi><mrow><mi>x</mi><mo>⁢</mo><mi>y</mi></mrow></msub><mo>≤</mo><mn>255</mn></mrow></mrow></math>. Informally speaking, the parameters +<p class='ltx_p'>where <math id='Ch6.S1.p2.m2class='ltx_Mathalttext='\forall x,y:0\leq v_{xy}\leq 255display='inline'><mrow><mrow><mrow><mo>∀</mo><mi>x</mi></mrow><mo>,</mo><mi>y</mi></mrow><mo>:</mo><mrow><mn>0</mn><mo>≤</mo><msub><mi>v</mi><mrow><mi>x</mi><mo>⁢</mo><mi>y</mi></mrow></msub><mo>≤</mo><mn>255</mn></mrow></mrow></math>. Informally speaking, the parameters 
-<math id="Ch6.S1.p2.m3class="ltx_Mathalttext="xdisplay="inline"><mi>x</mi></math> and <math id="Ch6.S1.p2.m4class="ltx_Mathalttext="ydisplay="inline"><mi>y</mi></math> determine the position within the image and <math id="Ch6.S1.p2.m5class="ltx_Mathalttext="v_{xy}display="inline"><msub><mi>v</mi><mrow><mi>x</mi><mo>⁢</mo><mi>y</mi></mrow></msub></math> determines the +<math id='Ch6.S1.p2.m3class='ltx_Mathalttext='xdisplay='inline'><mi>x</mi></math> and <math id='Ch6.S1.p2.m4class='ltx_Mathalttext='ydisplay='inline'><mi>y</mi></math> determine the position within the image and <math id='Ch6.S1.p2.m5class='ltx_Mathalttext='v_{xy}display='inline'><msub><mi>v</mi><mrow><mi>x</mi><mo>⁢</mo><mi>y</mi></mrow></msub></math> determines the 
-gray-scale value of the <span class="ltx_text ltx_font_italic">pixel</span> at this position.+gray-scale value of the <span class='ltx_text ltx_font_italic'>pixel</span> at this position.
 </p> </p>
 </div> </div>
-<div id="Ch6.S1.p3class="ltx_para"+<div id='Ch6.S1.p3class='ltx_para'
-<p class="ltx_p">A common technique to modify an image is to apply a <span class="ltx_text ltx_font_italic">filter</span> of desired +<p class='ltx_p'>A common technique to modify an image is to apply a <span class='ltx_text ltx_font_italic'>filter</span> of desired 
-properties to it. In many cases, an image filter <math id="Ch6.S1.p3.m1class="ltx_Mathalttext="Fdisplay="inline"><mi>F</mi></math> again is a two dimensional+properties to it. In many cases, an image filter <math id='Ch6.S1.p3.m1class='ltx_Mathalttext='Fdisplay='inline'><mi>F</mi></math> again is a two dimensional
 signal as the one described above. The application of a filter to an image is signal as the one described above. The application of a filter to an image is
-expressed by the 2D (discrete) <span class="ltx_text ltx_font_italic">convolution</span> <math id="Ch6.S1.p3.m2class="ltx_Mathalttext="F\otimes Sdisplay="inline"><mrow><mi>F</mi><mo>⊗</mo><mi>S</mi></mrow></math> of these two+expressed by the 2D (discrete) <span class='ltx_text ltx_font_italic'>convolution</span> <math id='Ch6.S1.p3.m2class='ltx_Mathalttext='F\otimes Sdisplay='inline'><mrow><mi>F</mi><mo>⊗</mo><mi>S</mi></mrow></math> of these two
 signals:</p> signals:</p>
-<table id="Ch10.S4.EGx2class="ltx_equationgroup ltx_eqn_eqnarray ltx_eqn_table">+<table id='Ch10.S4.EGx2class='ltx_equationgroup ltx_eqn_eqnarray ltx_eqn_table'>
  
-<tr id="Ch6.Ex3class="ltx_equation ltx_eqn_row ltx_align_baseline"+<tr id='Ch6.Ex3class='ltx_equation ltx_eqn_row ltx_align_baseline'
-<td class="ltx_eqn_cell ltx_eqn_center_padleft"></td> +<td class='ltx_eqn_cell ltx_eqn_center_padleft'></td> 
-<td class="ltx_td ltx_align_right ltx_eqn_cell"><math id="Ch6.Ex3.m1class="ltx_Mathalttext="\displaystyle F(x,y)\otimes S(x,y)display="inline"><mrow><mrow><mrow><mi>F</mi><mo>⁢</mo><mrow><mo stretchy="false">(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo stretchy="false">)</mo></mrow></mrow><mo>⊗</mo><mi>S</mi></mrow><mo>⁢</mo><mrow><mo stretchy="false">(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo stretchy="false">)</mo></mrow></mrow></math></td> +<td class='ltx_td ltx_align_right ltx_eqn_cell'><math id='Ch6.Ex3.m1class='ltx_Mathalttext='\displaystyle F(x,y)\otimes S(x,y)display='inline'><mrow><mrow><mrow><mi>F</mi><mo>⁢</mo><mrow><mo stretchy='false'>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo stretchy='false'>)</mo></mrow></mrow><mo>⊗</mo><mi>S</mi></mrow><mo>⁢</mo><mrow><mo stretchy='false'>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo stretchy='false'>)</mo></mrow></mrow></math></td> 
-<td class="ltx_td ltx_align_center ltx_eqn_cell"><math id="Ch6.Ex3.m2class="ltx_Mathalttext="\displaystyle=display="inline"><mo>=</mo></math></td> +<td class='ltx_td ltx_align_center ltx_eqn_cell'><math id='Ch6.Ex3.m2class='ltx_Mathalttext='\displaystyle=display='inline'><mo>=</mo></math></td> 
-<td class="ltx_td ltx_align_left ltx_eqn_cell"><math id="Ch6.Ex3.m3class="ltx_Mathalttext="\displaystyle\sum_{j=-\infty}^{\infty}\sum_{k=-\infty}^{\infty}F(j,k)S(x-j,y-k)display="inline"><mrow><mstyle displaystyle="true"><munderover><mo largeop="truemovablelimits="falsesymmetric="true">∑</mo><mrow><mi>j</mi><mo>=</mo><mrow><mo>-</mo><mi mathvariant="normal">∞</mi></mrow></mrow><mi mathvariant="normal">∞</mi></munderover></mstyle><mrow><mstyle displaystyle="true"><munderover><mo largeop="truemovablelimits="falsesymmetric="true">∑</mo><mrow><mi>k</mi><mo>=</mo><mrow><mo>-</mo><mi mathvariant="normal">∞</mi></mrow></mrow><mi mathvariant="normal">∞</mi></munderover></mstyle><mrow><mi>F</mi><mo>⁢</mo><mrow><mo stretchy="false">(</mo><mi>j</mi><mo>,</mo><mi>k</mi><mo stretchy="false">)</mo></mrow><mo>⁢</mo><mi>S</mi><mo>⁢</mo><mrow><mo stretchy="false">(</mo><mrow><mi>x</mi><mo>-</mo><mi>j</mi></mrow><mo>,</mo><mrow><mi>y</mi><mo>-</mo><mi>k</mi></mrow><mo stretchy="false">)</mo></mrow></mrow></mrow></mrow></math></td> +<td class='ltx_td ltx_align_left ltx_eqn_cell'><math id='Ch6.Ex3.m3class='ltx_Mathalttext='\displaystyle\sum_{j=-\infty}^{\infty}\sum_{k=-\infty}^{\infty}F(j,k)S(x-j,y-k)display='inline'><mrow><mstyle displaystyle='true'><munderover><mo largeop='truemovablelimits='falsesymmetric='true'>∑</mo><mrow><mi>j</mi><mo>=</mo><mrow><mo>-</mo><mi mathvariant='normal'>∞</mi></mrow></mrow><mi mathvariant='normal'>∞</mi></munderover></mstyle><mrow><mstyle displaystyle='true'><munderover><mo largeop='truemovablelimits='falsesymmetric='true'>∑</mo><mrow><mi>k</mi><mo>=</mo><mrow><mo>-</mo><mi mathvariant='normal'>∞</mi></mrow></mrow><mi mathvariant='normal'>∞</mi></munderover></mstyle><mrow><mi>F</mi><mo>⁢</mo><mrow><mo stretchy='false'>(</mo><mi>j</mi><mo>,</mo><mi>k</mi><mo stretchy='false'>)</mo></mrow><mo>⁢</mo><mi>S</mi><mo>⁢</mo><mrow><mo stretchy='false'>(</mo><mrow><mi>x</mi><mo>-</mo><mi>j</mi></mrow><mo>,</mo><mrow><mi>y</mi><mo>-</mo><mi>k</mi></mrow><mo stretchy='false'>)</mo></mrow></mrow></mrow></mrow></math></td> 
-<td class="ltx_eqn_cell ltx_eqn_center_padright"></td>+<td class='ltx_eqn_cell ltx_eqn_center_padright'></td>
 </tr> </tr>
 </table> </table>
-<p class="ltx_p">With this simple form of filtering, a wealth of image modifications are+<p class='ltx_p'>With this simple form of filtering, a wealth of image modifications are
 expressible. Depending on the choice of the filter mask we can achieve effects expressible. Depending on the choice of the filter mask we can achieve effects
 such as smoothing, sharpening, edge detection, embossing and many more.</p> such as smoothing, sharpening, edge detection, embossing and many more.</p>
 </div> </div>
-<div id="Ch6.S1.p4class="ltx_para"+<div id='Ch6.S1.p4class='ltx_para'
-<p class="ltx_p">In <span class="ltx_text ltx_font_smallcaps">SaC</span> we can represent these signals as 2D arrays where <math id="Ch6.S1.p4.m1class="ltx_Mathalttext="xdisplay="inline"><mi>x</mi></math> and <math id="Ch6.S1.p4.m2class="ltx_Mathalttext="ydisplay="inline"><mi>y</mi></math> are the+<p class='ltx_p'>In <span class='ltx_text ltx_font_smallcaps'>SaC</span> we can represent these signals as 2D arrays where <math id='Ch6.S1.p4.m1class='ltx_Mathalttext='xdisplay='inline'><mi>x</mi></math> and <math id='Ch6.S1.p4.m2class='ltx_Mathalttext='ydisplay='inline'><mi>y</mi></math> are the
 column and row indices and each element corresponds to one pixel. The column and row indices and each element corresponds to one pixel. The
 application of a filter to an image may then be expressed using a stencil application of a filter to an image may then be expressed using a stencil
 operation as it was introduced in an earlier part of this tutorial operation as it was introduced in an earlier part of this tutorial
-(Section <a href="#Ch2.S2title="2.2 Lesson 2: Shape-Invariant Programming ‣ Chapter 2 Array Programming Basics ‣ Part I Trails Covering the Basics of SaCclass="ltx_ref"><span class="ltx_text ltx_ref_tag">2.2</span></a>): The filter mask is positioned with its center point over+(Section <a href='#Ch2.S2title='2.2 Lesson 2: Shape-Invariant Programming ‣ Chapter 2 Array Programming Basics ‣ Part I Trails Covering the Basics of SaCclass='ltx_ref'><span class='ltx_text ltx_ref_tag'>2.2</span></a>): The filter mask is positioned with its center point over
 each pixel of the original image. At each position, the pixel value of the each pixel of the original image. At each position, the pixel value of the
 image and its corresponding value of the filter mask are multiplied. The pixel image and its corresponding value of the filter mask are multiplied. The pixel
Line 5286: Line 5885:
 </p> </p>
 </div> </div>
-<div id="Thmtheorem29class="ltx_theorem ltx_theorem_theorem"+<div id='Thmtheorem29class='ltx_theorem ltx_theorem_theorem'
-<h6 class="ltx_title ltx_runin ltx_font_bold ltx_title_theorem">Exercise 29. </h6> +<h6 class='ltx_title ltx_runin ltx_font_bold ltx_title_theorem'>Exercise 29. </h6> 
-<div id="Thmtheorem29.p1class="ltx_para"+<div id='Thmtheorem29.p1class='ltx_para'
-<p class="ltx_p">The <span class="ltx_text ltx_font_italic">Sobel operator</span> is an edge-detection filter that computes the+<p class='ltx_p'>The <span class='ltx_text ltx_font_italic'>Sobel operator</span> is an edge-detection filter that computes the
 gradient image from an input signal. The filtering process consists of three gradient image from an input signal. The filtering process consists of three
 steps: In the first step, horizontal edges are detected, in the second step steps: In the first step, horizontal edges are detected, in the second step
Line 5295: Line 5894:
 combined to the resulting gradient image. The first two steps are in fact two combined to the resulting gradient image. The first two steps are in fact two
 independent operations, each of which requires its own individual filter mask:</p> independent operations, each of which requires its own individual filter mask:</p>
-<table id="Ch10.S4.EGx3class="ltx_equationgroup ltx_eqn_eqnarray ltx_eqn_table">+<table id='Ch10.S4.EGx3class='ltx_equationgroup ltx_eqn_eqnarray ltx_eqn_table'>
  
-<tr id="Ch6.Ex4class="ltx_equation ltx_eqn_row ltx_align_baseline"+<tr id='Ch6.Ex4class='ltx_equation ltx_eqn_row ltx_align_baseline'
-<td class="ltx_eqn_cell ltx_eqn_center_padleft"></td> +<td class='ltx_eqn_cell ltx_eqn_center_padleft'></td> 
-<td class="ltx_td ltx_align_right ltx_eqn_cell"><math id="Ch6.Ex4.m1class="ltx_Mathalttext="\displaystyle F_{x}=\begin{pmatrix}1&amp;0&amp;-1\\ +<td class='ltx_td ltx_align_right ltx_eqn_cell'><math id='Ch6.Ex4.m1class='ltx_Mathalttext='\displaystyle F_{x}=\begin{pmatrix}1&0&-1\\ 
-2&amp;0&amp;-2\\ +2&0&-2\\ 
-1&amp;0&amp;-1\end{pmatrix}display="inline"><mrow><msub><mi>F</mi><mi>x</mi></msub><mo>=</mo><mrow><mo>(</mo><mtable columnspacing="5ptrowspacing="0pt"><mtr><mtd columnalign="center"><mn>1</mn></mtd><mtd columnalign="center"><mn>0</mn></mtd><mtd columnalign="center"><mrow><mo>-</mo><mn>1</mn></mrow></mtd></mtr><mtr><mtd columnalign="center"><mn>2</mn></mtd><mtd columnalign="center"><mn>0</mn></mtd><mtd columnalign="center"><mrow><mo>-</mo><mn>2</mn></mrow></mtd></mtr><mtr><mtd columnalign="center"><mn>1</mn></mtd><mtd columnalign="center"><mn>0</mn></mtd><mtd columnalign="center"><mrow><mo>-</mo><mn>1</mn></mrow></mtd></mtr></mtable><mo>)</mo></mrow></mrow></math></td> +1&0&-1\end{pmatrix}display='inline'><mrow><msub><mi>F</mi><mi>x</mi></msub><mo>=</mo><mrow><mo>(</mo><mtable columnspacing='5ptrowspacing='0pt'><mtr><mtd columnalign='center'><mn>1</mn></mtd><mtd columnalign='center'><mn>0</mn></mtd><mtd columnalign='center'><mrow><mo>-</mo><mn>1</mn></mrow></mtd></mtr><mtr><mtd columnalign='center'><mn>2</mn></mtd><mtd columnalign='center'><mn>0</mn></mtd><mtd columnalign='center'><mrow><mo>-</mo><mn>2</mn></mrow></mtd></mtr><mtr><mtd columnalign='center'><mn>1</mn></mtd><mtd columnalign='center'><mn>0</mn></mtd><mtd columnalign='center'><mrow><mo>-</mo><mn>1</mn></mrow></mtd></mtr></mtable><mo>)</mo></mrow></mrow></math></td> 
-<td class="ltx_td ltx_align_center ltx_eqn_cell"></td> +<td class='ltx_td ltx_align_center ltx_eqn_cell'></td> 
-<td class="ltx_td ltx_align_left ltx_eqn_cell"><math id="Ch6.Ex4.m3class="ltx_Mathalttext="\displaystyle F_{y}=\begin{pmatrix}1&amp;2&amp;1\\ +<td class='ltx_td ltx_align_left ltx_eqn_cell'><math id='Ch6.Ex4.m3class='ltx_Mathalttext='\displaystyle F_{y}=\begin{pmatrix}1&2&1\\ 
-0&amp;0&amp;0\\ +0&0&0\\ 
--1&amp;-2&amp;-1\end{pmatrix}display="inline"><mrow><msub><mi>F</mi><mi>y</mi></msub><mo>=</mo><mrow><mo>(</mo><mtable columnspacing="5ptrowspacing="0pt"><mtr><mtd columnalign="center"><mn>1</mn></mtd><mtd columnalign="center"><mn>2</mn></mtd><mtd columnalign="center"><mn>1</mn></mtd></mtr><mtr><mtd columnalign="center"><mn>0</mn></mtd><mtd columnalign="center"><mn>0</mn></mtd><mtd columnalign="center"><mn>0</mn></mtd></mtr><mtr><mtd columnalign="center"><mrow><mo>-</mo><mn>1</mn></mrow></mtd><mtd columnalign="center"><mrow><mo>-</mo><mn>2</mn></mrow></mtd><mtd columnalign="center"><mrow><mo>-</mo><mn>1</mn></mrow></mtd></mtr></mtable><mo>)</mo></mrow></mrow></math></td> +-1&-2&-1\end{pmatrix}display='inline'><mrow><msub><mi>F</mi><mi>y</mi></msub><mo>=</mo><mrow><mo>(</mo><mtable columnspacing='5ptrowspacing='0pt'><mtr><mtd columnalign='center'><mn>1</mn></mtd><mtd columnalign='center'><mn>2</mn></mtd><mtd columnalign='center'><mn>1</mn></mtd></mtr><mtr><mtd columnalign='center'><mn>0</mn></mtd><mtd columnalign='center'><mn>0</mn></mtd><mtd columnalign='center'><mn>0</mn></mtd></mtr><mtr><mtd columnalign='center'><mrow><mo>-</mo><mn>1</mn></mrow></mtd><mtd columnalign='center'><mrow><mo>-</mo><mn>2</mn></mrow></mtd><mtd columnalign='center'><mrow><mo>-</mo><mn>1</mn></mrow></mtd></mtr></mtable><mo>)</mo></mrow></mrow></math></td> 
-<td class="ltx_eqn_cell ltx_eqn_center_padright"></td>+<td class='ltx_eqn_cell ltx_eqn_center_padright'></td>
 </tr> </tr>
 </table> </table>
-<p class="ltx_p">Applying these two masks to an input image <math id="Thmtheorem29.p1.m1class="ltx_Mathalttext="Sdisplay="inline"><mi>S</mi></math> yields two sub-results, one +<p class='ltx_p'>Applying these two masks to an input image <math id='Thmtheorem29.p1.m1class='ltx_Mathalttext='Sdisplay='inline'><mi>S</mi></math> yields two sub-results, one 
-highlighting horizontal edges (<math id="Thmtheorem29.p1.m2class="ltx_Mathalttext="S_{x}=F_{x}\otimes Sdisplay="inline"><mrow><msub><mi>S</mi><mi>x</mi></msub><mo>=</mo><mrow><msub><mi>F</mi><mi>x</mi></msub><mo>⊗</mo><mi>S</mi></mrow></mrow></math>), the other highlighting +highlighting horizontal edges (<math id='Thmtheorem29.p1.m2class='ltx_Mathalttext='S_{x}=F_{x}\otimes Sdisplay='inline'><mrow><msub><mi>S</mi><mi>x</mi></msub><mo>=</mo><mrow><msub><mi>F</mi><mi>x</mi></msub><mo>⊗</mo><mi>S</mi></mrow></mrow></math>), the other highlighting 
-vertical edges (<math id="Thmtheorem29.p1.m3class="ltx_Mathalttext="S_{y}=F_{y}\otimes Sdisplay="inline"><mrow><msub><mi>S</mi><mi>y</mi></msub><mo>=</mo><mrow><msub><mi>F</mi><mi>y</mi></msub><mo>⊗</mo><mi>S</mi></mrow></mrow></math>). We compute the final gradient image by +vertical edges (<math id='Thmtheorem29.p1.m3class='ltx_Mathalttext='S_{y}=F_{y}\otimes Sdisplay='inline'><mrow><msub><mi>S</mi><mi>y</mi></msub><mo>=</mo><mrow><msub><mi>F</mi><mi>y</mi></msub><mo>⊗</mo><mi>S</mi></mrow></mrow></math>). We compute the final gradient image by 
-adding the two sub-results <math id="Thmtheorem29.p1.m4class="ltx_Mathalttext="S_{xy}=S_{x}+S_{y}display="inline"><mrow><msub><mi>S</mi><mrow><mi>x</mi><mo>⁢</mo><mi>y</mi></mrow></msub><mo>=</mo><mrow><msub><mi>S</mi><mi>x</mi></msub><mo>+</mo><msub><mi>S</mi><mi>y</mi></msub></mrow></mrow></math>. As <math id="Thmtheorem29.p1.m5class="ltx_Mathalttext="S_{xy}display="inline"><msub><mi>S</mi><mrow><mi>x</mi><mo>⁢</mo><mi>y</mi></mrow></msub></math> may contain +adding the two sub-results <math id='Thmtheorem29.p1.m4class='ltx_Mathalttext='S_{xy}=S_{x}+S_{y}display='inline'><mrow><msub><mi>S</mi><mrow><mi>x</mi><mo>⁢</mo><mi>y</mi></mrow></msub><mo>=</mo><mrow><msub><mi>S</mi><mi>x</mi></msub><mo>+</mo><msub><mi>S</mi><mi>y</mi></msub></mrow></mrow></math>. As <math id='Thmtheorem29.p1.m5class='ltx_Mathalttext='S_{xy}display='inline'><msub><mi>S</mi><mrow><mi>x</mi><mo>⁢</mo><mi>y</mi></mrow></msub></math> may contain 
-elements with a value greater than <math id="Thmtheorem29.p1.m6class="ltx_Mathalttext="255display="inline"><mn>255</mn></math>, we need to cap each pixel value at +elements with a value greater than <math id='Thmtheorem29.p1.m6class='ltx_Mathalttext='255display='inline'><mn>255</mn></math>, we need to cap each pixel value at 
-the maximum allowed value of <math id="Thmtheorem29.p1.m7class="ltx_Mathalttext="255display="inline"><mn>255</mn></math>. See Fig. <a href="#Ch6.F1title="Figure 6.1 ‣ 6.1 Lesson 7: Image Processing ‣ Chapter 6 Case Studies ‣ Part I Trails Covering the Basics of SaCclass="ltx_ref"><span class="ltx_text ltx_ref_tag">6.1</span></a> for an example of+the maximum allowed value of <math id='Thmtheorem29.p1.m7class='ltx_Mathalttext='255display='inline'><mn>255</mn></math>. See Fig. <a href='#Ch6.F1title='Figure 6.1 ‣ 6.1 Lesson 7: Image Processing ‣ Chapter 6 Case Studies ‣ Part I Trails Covering the Basics of SaCclass='ltx_ref'><span class='ltx_text ltx_ref_tag'>6.1</span></a> for an example of
 how an image and its gradient image may look like.</p> how an image and its gradient image may look like.</p>
 </div> </div>
-<div id="Thmtheorem29.p2class="ltx_para"+<div id='Thmtheorem29.p2class='ltx_para'
-<p class="ltx_p">Quite the opposite to edge detection, a smoothing or blurring filter is used to+<p class='ltx_p'>Quite the opposite to edge detection, a smoothing or blurring filter is used to
 make edges appear less prominent. Commonly applied filters of such kind make edges appear less prominent. Commonly applied filters of such kind
-are the <math id="Thmtheorem29.p2.m1class="ltx_Mathalttext="3\times 3display="inline"><mrow><mn>3</mn><mo>×</mo><mn>3</mn></mrow></math> and <math id="Thmtheorem29.p2.m2class="ltx_Mathalttext="25\times 25display="inline"><mrow><mn>25</mn><mo>×</mo><mn>25</mn></mrow></math> <span class="ltx_text ltx_font_italic">Gaussian blurring</span> stencils:</p> +are the <math id='Thmtheorem29.p2.m1class='ltx_Mathalttext='3\times 3display='inline'><mrow><mn>3</mn><mo>×</mo><mn>3</mn></mrow></math> and <math id='Thmtheorem29.p2.m2class='ltx_Mathalttext='25\times 25display='inline'><mrow><mn>25</mn><mo>×</mo><mn>25</mn></mrow></math> <span class='ltx_text ltx_font_italic'>Gaussian blurring</span> stencils:</p> 
-<table id="Ch10.S4.EGx4class="ltx_equationgroup ltx_eqn_eqnarray ltx_eqn_table">+<table id='Ch10.S4.EGx4class='ltx_equationgroup ltx_eqn_eqnarray ltx_eqn_table'>
  
-<tr id="Ch6.Ex5class="ltx_equation ltx_eqn_row ltx_align_baseline"+<tr id='Ch6.Ex5class='ltx_equation ltx_eqn_row ltx_align_baseline'
-<td class="ltx_eqn_cell ltx_eqn_center_padleft"></td> +<td class='ltx_eqn_cell ltx_eqn_center_padleft'></td> 
-<td class="ltx_td ltx_align_right ltx_eqn_cell"><math id="Ch6.Ex5.m1class="ltx_Mathalttext="\displaystyle G_{9}=\frac{1}{15}\cdot\begin{pmatrix}1&amp;2&amp;1\\ +<td class='ltx_td ltx_align_right ltx_eqn_cell'><math id='Ch6.Ex5.m1class='ltx_Mathalttext='\displaystyle G_{9}=\frac{1}{15}\cdot\begin{pmatrix}1&2&1\\ 
-2&amp;3&amp;2\\ +2&3&2\\ 
-1&amp;2&amp;1\par +1&2&1\par 
-\end{pmatrix}display="inline"><mrow><msub><mi>G</mi><mn>9</mn></msub><mo>=</mo><mrow><mstyle displaystyle="true"><mfrac><mn>1</mn><mn>15</mn></mfrac></mstyle><mo>⋅</mo><mrow><mo>(</mo><mtable columnspacing="5ptrowspacing="0pt"><mtr><mtd columnalign="center"><mn>1</mn></mtd><mtd columnalign="center"><mn>2</mn></mtd><mtd columnalign="center"><mn>1</mn></mtd></mtr><mtr><mtd columnalign="center"><mn>2</mn></mtd><mtd columnalign="center"><mn>3</mn></mtd><mtd columnalign="center"><mn>2</mn></mtd></mtr><mtr><mtd columnalign="center"><mn>1</mn></mtd><mtd columnalign="center"><mn>2</mn></mtd><mtd columnalign="center"><mn>1</mn></mtd></mtr></mtable><mo>)</mo></mrow></mrow></mrow></math></td> +\end{pmatrix}display='inline'><mrow><msub><mi>G</mi><mn>9</mn></msub><mo>=</mo><mrow><mstyle displaystyle='true'><mfrac><mn>1</mn><mn>15</mn></mfrac></mstyle><mo>⋅</mo><mrow><mo>(</mo><mtable columnspacing='5ptrowspacing='0pt'><mtr><mtd columnalign='center'><mn>1</mn></mtd><mtd columnalign='center'><mn>2</mn></mtd><mtd columnalign='center'><mn>1</mn></mtd></mtr><mtr><mtd columnalign='center'><mn>2</mn></mtd><mtd columnalign='center'><mn>3</mn></mtd><mtd columnalign='center'><mn>2</mn></mtd></mtr><mtr><mtd columnalign='center'><mn>1</mn></mtd><mtd columnalign='center'><mn>2</mn></mtd><mtd columnalign='center'><mn>1</mn></mtd></mtr></mtable><mo>)</mo></mrow></mrow></mrow></math></td> 
-<td class="ltx_td ltx_align_center ltx_eqn_cell"></td> +<td class='ltx_td ltx_align_center ltx_eqn_cell'></td> 
-<td class="ltx_td ltx_align_left ltx_eqn_cell"><math id="Ch6.Ex5.m3class="ltx_Mathalttext="\displaystyle G_{25}=\frac{1}{331}\begin{pmatrix}1&amp;4&amp;7&amp;4&amp;1\\ +<td class='ltx_td ltx_align_left ltx_eqn_cell'><math id='Ch6.Ex5.m3class='ltx_Mathalttext='\displaystyle G_{25}=\frac{1}{331}\begin{pmatrix}1&4&7&4&1\\ 
-4&amp;20&amp;33&amp;20&amp;4\\ +4&20&33&20&4\\ 
-7&amp;33&amp;55&amp;33&amp;7\\ +7&33&55&33&7\\ 
-4&amp;20&amp;33&amp;20&amp;4\\ +4&20&33&20&4\\ 
-1&amp;4&amp;7&amp;4&amp;1\end{pmatrix}display="inline"><mrow><msub><mi>G</mi><mn>25</mn></msub><mo>=</mo><mrow><mstyle displaystyle="true"><mfrac><mn>1</mn><mn>331</mn></mfrac></mstyle><mo>⁢</mo><mrow><mo>(</mo><mtable columnspacing="5ptrowspacing="0pt"><mtr><mtd columnalign="center"><mn>1</mn></mtd><mtd columnalign="center"><mn>4</mn></mtd><mtd columnalign="center"><mn>7</mn></mtd><mtd columnalign="center"><mn>4</mn></mtd><mtd columnalign="center"><mn>1</mn></mtd></mtr><mtr><mtd columnalign="center"><mn>4</mn></mtd><mtd columnalign="center"><mn>20</mn></mtd><mtd columnalign="center"><mn>33</mn></mtd><mtd columnalign="center"><mn>20</mn></mtd><mtd columnalign="center"><mn>4</mn></mtd></mtr><mtr><mtd columnalign="center"><mn>7</mn></mtd><mtd columnalign="center"><mn>33</mn></mtd><mtd columnalign="center"><mn>55</mn></mtd><mtd columnalign="center"><mn>33</mn></mtd><mtd columnalign="center"><mn>7</mn></mtd></mtr><mtr><mtd columnalign="center"><mn>4</mn></mtd><mtd columnalign="center"><mn>20</mn></mtd><mtd columnalign="center"><mn>33</mn></mtd><mtd columnalign="center"><mn>20</mn></mtd><mtd columnalign="center"><mn>4</mn></mtd></mtr><mtr><mtd columnalign="center"><mn>1</mn></mtd><mtd columnalign="center"><mn>4</mn></mtd><mtd columnalign="center"><mn>7</mn></mtd><mtd columnalign="center"><mn>4</mn></mtd><mtd columnalign="center"><mn>1</mn></mtd></mtr></mtable><mo>)</mo></mrow></mrow></mrow></math></td> +1&4&7&4&1\end{pmatrix}display='inline'><mrow><msub><mi>G</mi><mn>25</mn></msub><mo>=</mo><mrow><mstyle displaystyle='true'><mfrac><mn>1</mn><mn>331</mn></mfrac></mstyle><mo>⁢</mo><mrow><mo>(</mo><mtable columnspacing='5ptrowspacing='0pt'><mtr><mtd columnalign='center'><mn>1</mn></mtd><mtd columnalign='center'><mn>4</mn></mtd><mtd columnalign='center'><mn>7</mn></mtd><mtd columnalign='center'><mn>4</mn></mtd><mtd columnalign='center'><mn>1</mn></mtd></mtr><mtr><mtd columnalign='center'><mn>4</mn></mtd><mtd columnalign='center'><mn>20</mn></mtd><mtd columnalign='center'><mn>33</mn></mtd><mtd columnalign='center'><mn>20</mn></mtd><mtd columnalign='center'><mn>4</mn></mtd></mtr><mtr><mtd columnalign='center'><mn>7</mn></mtd><mtd columnalign='center'><mn>33</mn></mtd><mtd columnalign='center'><mn>55</mn></mtd><mtd columnalign='center'><mn>33</mn></mtd><mtd columnalign='center'><mn>7</mn></mtd></mtr><mtr><mtd columnalign='center'><mn>4</mn></mtd><mtd columnalign='center'><mn>20</mn></mtd><mtd columnalign='center'><mn>33</mn></mtd><mtd columnalign='center'><mn>20</mn></mtd><mtd columnalign='center'><mn>4</mn></mtd></mtr><mtr><mtd columnalign='center'><mn>1</mn></mtd><mtd columnalign='center'><mn>4</mn></mtd><mtd columnalign='center'><mn>7</mn></mtd><mtd columnalign='center'><mn>4</mn></mtd><mtd columnalign='center'><mn>1</mn></mtd></mtr></mtable><mo>)</mo></mrow></mrow></mrow></math></td> 
-<td class="ltx_eqn_cell ltx_eqn_center_padright"></td>+<td class='ltx_eqn_cell ltx_eqn_center_padright'></td>
 </tr> </tr>
 </table> </table>
 </div> </div>
-<div id="Thmtheorem29.p3class="ltx_para"+<div id='Thmtheorem29.p3class='ltx_para'
-<p class="ltx_p">Write a program that applies these operators to a given image and outputs+<p class='ltx_p'>Write a program that applies these operators to a given image and outputs
 the result for later use:</p> the result for later use:</p>
-<ul id="Ch6.I1class="ltx_itemize"+<ul id='Ch6.I1class='ltx_itemize'
-<li id="Ch6.I1.i1class="ltx_itemstyle="list-style-type:none;"+<li id='Ch6.I1.i1class='ltx_itemstyle='list-style-type:none;'
-<span class="ltx_tag ltx_tag_itemize">•</span>  +<span class='ltx_tag ltx_tag_itemize'>•</span>  
-<div id="Ch6.I1.i1.p1class="ltx_para"+<div id='Ch6.I1.i1.p1class='ltx_para'
-<p class="ltx_p">Write a function <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">apply</span> that takes an image and a filter mask+<p class='ltx_p'>Write a function <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>apply</span> that takes an image and a filter mask
 as input and returns the convolution of the two. Use either with-loops as input and returns the convolution of the two. Use either with-loops
 or axis-control notation to achieve this. Take care of boundary or axis-control notation to achieve this. Take care of boundary
Line 5352: Line 5951:
 </div> </div>
 </li> </li>
-<li id="Ch6.I1.i2class="ltx_itemstyle="list-style-type:none;"+<li id='Ch6.I1.i2class='ltx_itemstyle='list-style-type:none;'
-<span class="ltx_tag ltx_tag_itemize">•</span>  +<span class='ltx_tag ltx_tag_itemize'>•</span>  
-<div id="Ch6.I1.i2.p1class="ltx_para"+<div id='Ch6.I1.i2.p1class='ltx_para'
-<p class="ltx_p">Write a function <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">sobel</span> that takes an image as input and +<p class='ltx_p'>Write a function <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>sobel</span> that takes an image as input and 
-applies <math id="Ch6.I1.i2.p1.m1class="ltx_Mathalttext="F_{x}display="inline"><msub><mi>F</mi><mi>x</mi></msub></math> and <math id="Ch6.I1.i2.p1.m2class="ltx_Mathalttext="F_{y}display="inline"><msub><mi>F</mi><mi>y</mi></msub></math> to the image. Furthermore, add <math id="Ch6.I1.i2.p1.m3class="ltx_Mathalttext="S_{x}display="inline"><msub><mi>S</mi><mi>x</mi></msub></math> and <math id="Ch6.I1.i2.p1.m4class="ltx_Mathalttext="S_{y}display="inline"><msub><mi>S</mi><mi>y</mi></msub></math>+applies <math id='Ch6.I1.i2.p1.m1class='ltx_Mathalttext='F_{x}display='inline'><msub><mi>F</mi><mi>x</mi></msub></math> and <math id='Ch6.I1.i2.p1.m2class='ltx_Mathalttext='F_{y}display='inline'><msub><mi>F</mi><mi>y</mi></msub></math> to the image. Furthermore, add <math id='Ch6.I1.i2.p1.m3class='ltx_Mathalttext='S_{x}display='inline'><msub><mi>S</mi><mi>x</mi></msub></math> and <math id='Ch6.I1.i2.p1.m4class='ltx_Mathalttext='S_{y}display='inline'><msub><mi>S</mi><mi>y</mi></msub></math>
 with capping so that this function returns the final result of the Sobel with capping so that this function returns the final result of the Sobel
 operation.</p> operation.</p>
 </div> </div>
 </li> </li>
-<li id="Ch6.I1.i3class="ltx_itemstyle="list-style-type:none;"+<li id='Ch6.I1.i3class='ltx_itemstyle='list-style-type:none;'
-<span class="ltx_tag ltx_tag_itemize">•</span>  +<span class='ltx_tag ltx_tag_itemize'>•</span>  
-<div id="Ch6.I1.i3.p1class="ltx_para"+<div id='Ch6.I1.i3.p1class='ltx_para'
-<p class="ltx_p">Write functions <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">gauss9</span> and <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">gauss25</span> that take an +<p class='ltx_p'>Write functions <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>gauss9</span> and <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>gauss25</span> that take an 
-image as input and apply <math id="Ch6.I1.i3.p1.m1class="ltx_Mathalttext="G_{9}display="inline"><msub><mi>G</mi><mn>9</mn></msub></math> and <math id="Ch6.I1.i3.p1.m2class="ltx_Mathalttext="G_{25}display="inline"><msub><mi>G</mi><mn>25</mn></msub></math> to the image.</p>+image as input and apply <math id='Ch6.I1.i3.p1.m1class='ltx_Mathalttext='G_{9}display='inline'><msub><mi>G</mi><mn>9</mn></msub></math> and <math id='Ch6.I1.i3.p1.m2class='ltx_Mathalttext='G_{25}display='inline'><msub><mi>G</mi><mn>25</mn></msub></math> to the image.</p>
 </div> </div>
 </li> </li>
-<li id="Ch6.I1.i4class="ltx_itemstyle="list-style-type:none;"+<li id='Ch6.I1.i4class='ltx_itemstyle='list-style-type:none;'
-<span class="ltx_tag ltx_tag_itemize">•</span>  +<span class='ltx_tag ltx_tag_itemize'>•</span>  
-<div id="Ch6.I1.i4.p1class="ltx_para"+<div id='Ch6.I1.i4.p1class='ltx_para'
-<p class="ltx_p">Write a <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">main</span> function that reads in an image from +<p class='ltx_p'>Write a <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>main</span> function that reads in an image from 
-<span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">stdin</span>, calls <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">sobel</span>, <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">gaussBlur9</span> and +<span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>stdin</span>, calls <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>sobel</span>, <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>gaussBlur9</span> and 
-<span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">gaussBlur25</span> on this image and then write the results back to +<span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>gaussBlur25</span> on this image and then write the results back to 
-<span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">stdout</span>.</p>+<span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>stdout</span>.</p>
 </div> </div>
 </li> </li>
 </ul> </ul>
-<p class="ltx_p">You may want to use the following skeleton for your program:</p>+<p class='ltx_p'>You may want to use the following skeleton for your program:</p>
 </div> </div>
-<figure id="LST43class="ltx_float ltx_lstlisting ltx_role_listing"+<figure id='LST43class='ltx_float ltx_lstlisting ltx_role_listing'
-<figcaption class="ltx_caption"><span class="ltx_tag ltx_tag_float">Listing 43: </span>Skeleton of sobel.sac</figcaption> +<figcaption class='ltx_caption'><span class='ltx_tag ltx_tag_float'>Listing 43: </span>Skeleton of sobel.sac</figcaption> 
-<div class="ltx_listing ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_listing"+<div class='ltx_listing ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_listing'
-<div class="ltx_listing_data"><a href="data:text/plain;base64,dXNlIFN0cnVjdHVyZXM6IGFsbDsKdXNlIFN0ZElPOiBhbGw7CnVzZSBDbG9jazoge3RpbWUsIGdl%0AdHRpbWUsIGRpZmZ0aW1lfTsKCi8qIEhlbHBlciB0byB3cml0ZSBtYXRyaXggdG8gc3Rkb3V0IGlu%0AIHBsYWluIG1hdHJpeCBmb3JtYXQuCiAgIFRoZSBwcm9kdWNlZCBvdXRwdXQgKGxldCdzIHNheSBt%0ALmRhdCkgY2FuIGJlIHVzZWQgd2l0aCBnbnVwbG90CiAgIGxpa2Ugc286CiAgICAgICAgZ251cGxv%0AdD4gcGxvdCAibS5kYXQiIG1hdHJpeCB3aXRoIGltYWdlICAqLwp2b2lkIHdyaXRlTWF0cml4KCBp%0AbnRbLiwuXSBtKQp7CiAgZm9yICh5PTA7IHk8c2hhcGUobSlbMV07IHkrKykgewogICAgZm9yICh4%0APTA7IHg8c2hhcGUobSlbMF07IHgrKykgewogICAgICBwcmludGYoIiVkICIsIG1bW3gseV1dKTsK%0AICAgIH0KICAgIHByaW50ZigiXG4iKTsKICB9Cn0KCi8qIENvbnZvbHV0aW9uIHdpdGggZ2l2ZW4g%0AbWFzay4gICovCmlubGluZSBpbnRbLiwuXSBhcHBseShpbnRbLiwuXSBtYXNrLCBpbnRbLiwuXSBp%0AbWcpCnsKICAvKiBJbXBsZW1lbnQgY29udm9sdXRpb24gaGVyZS4gICovCn0KCmludFsuLC5dIHNv%0AYmVsKGludFsuLC5dIGltZykKewogIFNZID0gWwogICAgICAgICBbMSwgMiwgMV0sIFswLCAwLCAw%0AXSwgWy0xLCAtMiwgLTFdCiAgICAgICBdOwogIC8qIENvbXBsZXRlIHRoaXMgZnVuY3Rpb24gaGVy%0AZS4gICovCn0KCmludFsuLC5dIGdhdXNzQmx1cjkoaW50Wy4sLl0gaW1nKQp7CiAgLyogQ29tcGxl%0AdGUgdGhpcyBmdW5jdGlvbiBoZXJlLiAgKi8KfQoKaW50Wy4sLl0gZ2F1c3NCbHVyMjUoaW50Wy4s%0ALl0gaW1nKQp7CiAgLyogQ29tcGxldGUgdGhpcyBmdW5jdGlvbiBoZXJlLiAgKi8KfQoKaW50Wypd%0ALCB0aW1lIHRpbWVzdGFtcChpbnRbKl0gaW1nKQp7CiAgcmV0dXJuIChpbWcsIGdldHRpbWUoKSk7%0ACn0KCmludCBtYWluKCkKewogIGZwcmludGYoc3RkZXJyLCAiXG5SZWFkaW5nIGltYWdlIGluIEZp%0AYnJlIGZvcm1hdC4uLlxuIik7CiAgaW1nID0gRmlicmVTY2FuSW50QXJyYXkoc3RkaW4pOwoKICBm%0AcHJpbnRmKHN0ZGVyciwgIlxuQXBwbHlpbmcgZmlsdGVyIC4uLlxuIik7CiAgaW1nLCBzdGFydCA9%0AIHRpbWVzdGFtcChpbWcpOwogIGltZyA9IHNvYmVsKGltZyk7CiAgaW1nLCBlbmQgPSB0aW1lc3Rh%0AbXAoaW1nKTsKCiAgLyogQ2FsbCB0aGUgb3RoZXIgZmlsdGVycyBoZXJlLiAgKi8KCiAgZnByaW50%0AZihzdGRlcnIsICJcbkZpbmlzaGVkIGZpbHRlcmluZyBhZnRlciAlZnNcbiIsIGRpZmZ0aW1lKGVu%0AZCwgc3RhcnQpKTsKICBmcHJpbnRmKHN0ZGVyciwgIlxuV3JpdGluZyByZXN1bHQgaW1hZ2UgLi4u%0AXG4iKTsKICB3cml0ZU1hdHJpeChpbWcpOwoKICByZXR1cm4gMDsKfQ==%0A">⬇</a></div> +<div class='ltx_listing_data'><a href='data:text/plain;base64,dXNlIFN0cnVjdHVyZXM6IGFsbDsKdXNlIFN0ZElPOiBhbGw7CnVzZSBDbG9jazoge3RpbWUsIGdl%0AdHRpbWUsIGRpZmZ0aW1lfTsKCi8qIEhlbHBlciB0byB3cml0ZSBtYXRyaXggdG8gc3Rkb3V0IGlu%0AIHBsYWluIG1hdHJpeCBmb3JtYXQuCiAgIFRoZSBwcm9kdWNlZCBvdXRwdXQgKGxldCdzIHNheSBt%0ALmRhdCkgY2FuIGJlIHVzZWQgd2l0aCBnbnVwbG90CiAgIGxpa2Ugc286CiAgICAgICAgZ251cGxv%0AdD4gcGxvdCAibS5kYXQiIG1hdHJpeCB3aXRoIGltYWdlICAqLwp2b2lkIHdyaXRlTWF0cml4KCBp%0AbnRbLiwuXSBtKQp7CiAgZm9yICh5PTA7IHk8c2hhcGUobSlbMV07IHkrKykgewogICAgZm9yICh4%0APTA7IHg8c2hhcGUobSlbMF07IHgrKykgewogICAgICBwcmludGYoIiVkICIsIG1bW3gseV1dKTsK%0AICAgIH0KICAgIHByaW50ZigiXG4iKTsKICB9Cn0KCi8qIENvbnZvbHV0aW9uIHdpdGggZ2l2ZW4g%0AbWFzay4gICovCmlubGluZSBpbnRbLiwuXSBhcHBseShpbnRbLiwuXSBtYXNrLCBpbnRbLiwuXSBp%0AbWcpCnsKICAvKiBJbXBsZW1lbnQgY29udm9sdXRpb24gaGVyZS4gICovCn0KCmludFsuLC5dIHNv%0AYmVsKGludFsuLC5dIGltZykKewogIFNZID0gWwogICAgICAgICBbMSwgMiwgMV0sIFswLCAwLCAw%0AXSwgWy0xLCAtMiwgLTFdCiAgICAgICBdOwogIC8qIENvbXBsZXRlIHRoaXMgZnVuY3Rpb24gaGVy%0AZS4gICovCn0KCmludFsuLC5dIGdhdXNzQmx1cjkoaW50Wy4sLl0gaW1nKQp7CiAgLyogQ29tcGxl%0AdGUgdGhpcyBmdW5jdGlvbiBoZXJlLiAgKi8KfQoKaW50Wy4sLl0gZ2F1c3NCbHVyMjUoaW50Wy4s%0ALl0gaW1nKQp7CiAgLyogQ29tcGxldGUgdGhpcyBmdW5jdGlvbiBoZXJlLiAgKi8KfQoKaW50Wypd%0ALCB0aW1lIHRpbWVzdGFtcChpbnRbKl0gaW1nKQp7CiAgcmV0dXJuIChpbWcsIGdldHRpbWUoKSk7%0ACn0KCmludCBtYWluKCkKewogIGZwcmludGYoc3RkZXJyLCAiXG5SZWFkaW5nIGltYWdlIGluIEZp%0AYnJlIGZvcm1hdC4uLlxuIik7CiAgaW1nID0gRmlicmVTY2FuSW50QXJyYXkoc3RkaW4pOwoKICBm%0AcHJpbnRmKHN0ZGVyciwgIlxuQXBwbHlpbmcgZmlsdGVyIC4uLlxuIik7CiAgaW1nLCBzdGFydCA9%0AIHRpbWVzdGFtcChpbWcpOwogIGltZyA9IHNvYmVsKGltZyk7CiAgaW1nLCBlbmQgPSB0aW1lc3Rh%0AbXAoaW1nKTsKCiAgLyogQ2FsbCB0aGUgb3RoZXIgZmlsdGVycyBoZXJlLiAgKi8KCiAgZnByaW50%0AZihzdGRlcnIsICJcbkZpbmlzaGVkIGZpbHRlcmluZyBhZnRlciAlZnNcbiIsIGRpZmZ0aW1lKGVu%0AZCwgc3RhcnQpKTsKICBmcHJpbnRmKHN0ZGVyciwgIlxuV3JpdGluZyByZXN1bHQgaW1hZ2UgLi4u%0AXG4iKTsKICB3cml0ZU1hdHJpeChpbWcpOwoKICByZXR1cm4gMDsKfQ==%0A'>⬇</a></div> 
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">1</span></span><span class="ltx_text ltx_lst_keyword ltx_font_bold">use</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">Structures</span>:<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">all</span>;+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>1</span></span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>use</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>Structures</span>:<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>all</span>;
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">2</span></span><span class="ltx_text ltx_lst_keyword ltx_font_bold">use</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">StdIO</span>:<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">all</span>;+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>2</span></span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>use</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>StdIO</span>:<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>all</span>;
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">3</span></span><span class="ltx_text ltx_lst_keyword ltx_font_bold">use</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">Clock</span>:<span class="ltx_text ltx_lst_space"> </span>{<span class="ltx_text ltx_lst_identifier">time</span>,<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">gettime</span>,<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">difftime</span>};+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>3</span></span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>use</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>Clock</span>:<span class='ltx_text ltx_lst_space'> </span>{<span class='ltx_text ltx_lst_identifier'>time</span>,<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>gettime</span>,<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>difftime</span>};
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">4</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>4</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">5</span></span><span class="ltx_text ltx_lst_comment ltx_font_italic">/*<span class="ltx_text ltx_lst_space"> </span>Helper<span class="ltx_text ltx_lst_space"> </span>to<span class="ltx_text ltx_lst_space"> </span>write<span class="ltx_text ltx_lst_space"> </span>matrix<span class="ltx_text ltx_lst_space"> </span>to<span class="ltx_text ltx_lst_space"> </span>stdout<span class="ltx_text ltx_lst_space"> </span>in<span class="ltx_text ltx_lst_space"> </span>plain<span class="ltx_text ltx_lst_space"> </span>matrix<span class="ltx_text ltx_lst_space"> </span>format.</span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>5</span></span><span class='ltx_text ltx_lst_comment ltx_font_italic'>/*<span class='ltx_text ltx_lst_space'> </span>Helper<span class='ltx_text ltx_lst_space'> </span>to<span class='ltx_text ltx_lst_space'> </span>write<span class='ltx_text ltx_lst_space'> </span>matrix<span class='ltx_text ltx_lst_space'> </span>to<span class='ltx_text ltx_lst_space'> </span>stdout<span class='ltx_text ltx_lst_space'> </span>in<span class='ltx_text ltx_lst_space'> </span>plain<span class='ltx_text ltx_lst_space'> </span>matrix<span class='ltx_text ltx_lst_space'> </span>format.</span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_text ltx_font_italicstyle="color:#BFBFBF;">6</span></span><span class="ltx_text ltx_lst_space ltx_font_italic">   </span><span class="ltx_text ltx_font_italic">The</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">produced</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">output</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">(let’s</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">say</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">m.dat)</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">can</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">be</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">used</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">with</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">gnuplot</span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_text ltx_font_italicstyle='color:#BFBFBF;'>6</span></span><span class='ltx_text ltx_lst_space ltx_font_italic'>   </span><span class='ltx_text ltx_font_italic'>The</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>produced</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>output</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>(let’s</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>say</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>m.dat)</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>can</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>be</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>used</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>with</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>gnuplot</span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_text ltx_font_italicstyle="color:#BFBFBF;">7</span></span><span class="ltx_text ltx_lst_space ltx_font_italic">   </span><span class="ltx_text ltx_font_italic">like</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">so:</span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_text ltx_font_italicstyle='color:#BFBFBF;'>7</span></span><span class='ltx_text ltx_lst_space ltx_font_italic'>   </span><span class='ltx_text ltx_font_italic'>like</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>so:</span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_text ltx_font_italicstyle="color:#BFBFBF;">8</span></span><span class="ltx_text ltx_lst_space ltx_font_italic">        </span><span class="ltx_text ltx_font_italic">gnuplot&gt;</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">plot</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">”m.dat”</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">matrix</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">with</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">image</span><span class="ltx_text ltx_lst_space ltx_font_italic">  </span><span class="ltx_text ltx_font_italic">*/</span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_text ltx_font_italicstyle='color:#BFBFBF;'>8</span></span><span class='ltx_text ltx_lst_space ltx_font_italic'>        </span><span class='ltx_text ltx_font_italic'>gnuplot&gt;</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>plot</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>”m.dat”</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>matrix</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>with</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>image</span><span class='ltx_text ltx_lst_space ltx_font_italic'>  </span><span class='ltx_text ltx_font_italic'>*/</span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">9</span></span><span class="ltx_text ltx_lst_identifier">void</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">writeMatrix</span>(<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_keyword ltx_font_bold">int</span>[.,.]<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">m</span>)+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>9</span></span><span class='ltx_text ltx_lst_identifier'>void</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>writeMatrix</span>(<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>int</span>[.,.]<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>m</span>)
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">10</span></span>{+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>10</span></span>{
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">11</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_keyword ltx_font_bold">for</span><span class="ltx_text ltx_lst_space"> </span>(<span class="ltx_text ltx_lst_identifier">y</span>=0;<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">y</span>&lt;<span class="ltx_text ltx_lst_identifier">shape</span>(<span class="ltx_text ltx_lst_identifier">m</span>)[1];<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">y</span>++)<span class="ltx_text ltx_lst_space"> </span>{+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>11</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>for</span><span class='ltx_text ltx_lst_space'> </span>(<span class='ltx_text ltx_lst_identifier'>y</span>=0;<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>y</span>&lt;<span class='ltx_text ltx_lst_identifier'>shape</span>(<span class='ltx_text ltx_lst_identifier'>m</span>)[1];<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>y</span>++)<span class='ltx_text ltx_lst_space'> </span>{
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">12</span></span><span class="ltx_text ltx_lst_space">    </span><span class="ltx_text ltx_lst_keyword ltx_font_bold">for</span><span class="ltx_text ltx_lst_space"> </span>(<span class="ltx_text ltx_lst_identifier">x</span>=0;<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">x</span>&lt;<span class="ltx_text ltx_lst_identifier">shape</span>(<span class="ltx_text ltx_lst_identifier">m</span>)[0];<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">x</span>++)<span class="ltx_text ltx_lst_space"> </span>{+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>12</span></span><span class='ltx_text ltx_lst_space'>    </span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>for</span><span class='ltx_text ltx_lst_space'> </span>(<span class='ltx_text ltx_lst_identifier'>x</span>=0;<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>x</span>&lt;<span class='ltx_text ltx_lst_identifier'>shape</span>(<span class='ltx_text ltx_lst_identifier'>m</span>)[0];<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>x</span>++)<span class='ltx_text ltx_lst_space'> </span>{
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">13</span></span><span class="ltx_text ltx_lst_space">      </span><span class="ltx_text ltx_lst_identifier">printf</span>(<span class="ltx_text ltx_lst_string">”%d<span class="ltx_text ltx_lst_space"> </span>”</span>,<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">m</span>[[<span class="ltx_text ltx_lst_identifier">x</span>,<span class="ltx_text ltx_lst_identifier">y</span>]]);+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>13</span></span><span class='ltx_text ltx_lst_space'>      </span><span class='ltx_text ltx_lst_identifier'>printf</span>(<span class='ltx_text ltx_lst_string'>”%d<span class='ltx_text ltx_lst_space'> </span>”</span>,<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>m</span>[[<span class='ltx_text ltx_lst_identifier'>x</span>,<span class='ltx_text ltx_lst_identifier'>y</span>]]);
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">14</span></span><span class="ltx_text ltx_lst_space">    </span>}+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>14</span></span><span class='ltx_text ltx_lst_space'>    </span>}
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">15</span></span><span class="ltx_text ltx_lst_space">    </span><span class="ltx_text ltx_lst_identifier">printf</span>(<span class="ltx_text ltx_lst_string">”\n”</span>);+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>15</span></span><span class='ltx_text ltx_lst_space'>    </span><span class='ltx_text ltx_lst_identifier'>printf</span>(<span class='ltx_text ltx_lst_string'>”\n”</span>);
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">16</span></span><span class="ltx_text ltx_lst_space">  </span>}+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>16</span></span><span class='ltx_text ltx_lst_space'>  </span>}
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">17</span></span>}+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>17</span></span>}
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">18</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>18</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">19</span></span><span class="ltx_text ltx_lst_comment ltx_font_italic">/*<span class="ltx_text ltx_lst_space"> </span>Convolution<span class="ltx_text ltx_lst_space"> </span>with<span class="ltx_text ltx_lst_space"> </span>given<span class="ltx_text ltx_lst_space"> </span>mask.<span class="ltx_text ltx_lst_space">  </span>*/</span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>19</span></span><span class='ltx_text ltx_lst_comment ltx_font_italic'>/*<span class='ltx_text ltx_lst_space'> </span>Convolution<span class='ltx_text ltx_lst_space'> </span>with<span class='ltx_text ltx_lst_space'> </span>given<span class='ltx_text ltx_lst_space'> </span>mask.<span class='ltx_text ltx_lst_space'>  </span>*/</span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">20</span></span><span class="ltx_text ltx_lst_identifier">inline</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_keyword ltx_font_bold">int</span>[.,.]<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">apply</span>(<span class="ltx_text ltx_lst_keyword ltx_font_bold">int</span>[.,.]<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">mask</span>,<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_keyword ltx_font_bold">int</span>[.,.]<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">img</span>)+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>20</span></span><span class='ltx_text ltx_lst_identifier'>inline</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>int</span>[.,.]<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>apply</span>(<span class='ltx_text ltx_lst_keyword ltx_font_bold'>int</span>[.,.]<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>mask</span>,<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>int</span>[.,.]<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>img</span>)
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">21</span></span>{+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>21</span></span>{
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">22</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_comment ltx_font_italic">/*<span class="ltx_text ltx_lst_space"> </span>Implement<span class="ltx_text ltx_lst_space"> </span>convolution<span class="ltx_text ltx_lst_space"> </span>here.<span class="ltx_text ltx_lst_space">  </span>*/</span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>22</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_comment ltx_font_italic'>/*<span class='ltx_text ltx_lst_space'> </span>Implement<span class='ltx_text ltx_lst_space'> </span>convolution<span class='ltx_text ltx_lst_space'> </span>here.<span class='ltx_text ltx_lst_space'>  </span>*/</span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">23</span></span>}+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>23</span></span>}
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">24</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>24</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">25</span></span><span class="ltx_text ltx_lst_keyword ltx_font_bold">int</span>[.,.]<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">sobel</span>(<span class="ltx_text ltx_lst_keyword ltx_font_bold">int</span>[.,.]<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">img</span>)+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>25</span></span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>int</span>[.,.]<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>sobel</span>(<span class='ltx_text ltx_lst_keyword ltx_font_bold'>int</span>[.,.]<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>img</span>)
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">26</span></span>{+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>26</span></span>{
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">27</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">SY</span><span class="ltx_text ltx_lst_space"> </span>=<span class="ltx_text ltx_lst_space"> </span>[+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>27</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>SY</span><span class='ltx_text ltx_lst_space'> </span>=<span class='ltx_text ltx_lst_space'> </span>[
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">28</span></span><span class="ltx_text ltx_lst_space">         </span>[1,<span class="ltx_text ltx_lst_space"> </span>2,<span class="ltx_text ltx_lst_space"> </span>1],<span class="ltx_text ltx_lst_space"> </span>[0,<span class="ltx_text ltx_lst_space"> </span>0,<span class="ltx_text ltx_lst_space"> </span>0],<span class="ltx_text ltx_lst_space"> </span>[-1,<span class="ltx_text ltx_lst_space"> </span>-2,<span class="ltx_text ltx_lst_space"> </span>-1]+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>28</span></span><span class='ltx_text ltx_lst_space'>         </span>[1,<span class='ltx_text ltx_lst_space'> </span>2,<span class='ltx_text ltx_lst_space'> </span>1],<span class='ltx_text ltx_lst_space'> </span>[0,<span class='ltx_text ltx_lst_space'> </span>0,<span class='ltx_text ltx_lst_space'> </span>0],<span class='ltx_text ltx_lst_space'> </span>[-1,<span class='ltx_text ltx_lst_space'> </span>-2,<span class='ltx_text ltx_lst_space'> </span>-1]
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">29</span></span><span class="ltx_text ltx_lst_space">       </span>];+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>29</span></span><span class='ltx_text ltx_lst_space'>       </span>];
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">30</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_comment ltx_font_italic">/*<span class="ltx_text ltx_lst_space"> </span>Complete<span class="ltx_text ltx_lst_space"> </span>this<span class="ltx_text ltx_lst_space"> </span>function<span class="ltx_text ltx_lst_space"> </span>here.<span class="ltx_text ltx_lst_space">  </span>*/</span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>30</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_comment ltx_font_italic'>/*<span class='ltx_text ltx_lst_space'> </span>Complete<span class='ltx_text ltx_lst_space'> </span>this<span class='ltx_text ltx_lst_space'> </span>function<span class='ltx_text ltx_lst_space'> </span>here.<span class='ltx_text ltx_lst_space'>  </span>*/</span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">31</span></span>}+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>31</span></span>}
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">32</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>32</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">33</span></span><span class="ltx_text ltx_lst_keyword ltx_font_bold">int</span>[.,.]<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">gaussBlur9</span>(<span class="ltx_text ltx_lst_keyword ltx_font_bold">int</span>[.,.]<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">img</span>)+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>33</span></span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>int</span>[.,.]<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>gaussBlur9</span>(<span class='ltx_text ltx_lst_keyword ltx_font_bold'>int</span>[.,.]<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>img</span>)
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">34</span></span>{+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>34</span></span>{
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">35</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_comment ltx_font_italic">/*<span class="ltx_text ltx_lst_space"> </span>Complete<span class="ltx_text ltx_lst_space"> </span>this<span class="ltx_text ltx_lst_space"> </span>function<span class="ltx_text ltx_lst_space"> </span>here.<span class="ltx_text ltx_lst_space">  </span>*/</span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>35</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_comment ltx_font_italic'>/*<span class='ltx_text ltx_lst_space'> </span>Complete<span class='ltx_text ltx_lst_space'> </span>this<span class='ltx_text ltx_lst_space'> </span>function<span class='ltx_text ltx_lst_space'> </span>here.<span class='ltx_text ltx_lst_space'>  </span>*/</span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">36</span></span>}+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>36</span></span>}
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">37</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>37</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">38</span></span><span class="ltx_text ltx_lst_keyword ltx_font_bold">int</span>[.,.]<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">gaussBlur25</span>(<span class="ltx_text ltx_lst_keyword ltx_font_bold">int</span>[.,.]<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">img</span>)+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>38</span></span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>int</span>[.,.]<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>gaussBlur25</span>(<span class='ltx_text ltx_lst_keyword ltx_font_bold'>int</span>[.,.]<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>img</span>)
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">39</span></span>{+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>39</span></span>{
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">40</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_comment ltx_font_italic">/*<span class="ltx_text ltx_lst_space"> </span>Complete<span class="ltx_text ltx_lst_space"> </span>this<span class="ltx_text ltx_lst_space"> </span>function<span class="ltx_text ltx_lst_space"> </span>here.<span class="ltx_text ltx_lst_space">  </span>*/</span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>40</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_comment ltx_font_italic'>/*<span class='ltx_text ltx_lst_space'> </span>Complete<span class='ltx_text ltx_lst_space'> </span>this<span class='ltx_text ltx_lst_space'> </span>function<span class='ltx_text ltx_lst_space'> </span>here.<span class='ltx_text ltx_lst_space'>  </span>*/</span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">41</span></span>}+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>41</span></span>}
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">42</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>42</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">43</span></span><span class="ltx_text ltx_lst_keyword ltx_font_bold">int</span>[*],<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">time</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">timestamp</span>(<span class="ltx_text ltx_lst_keyword ltx_font_bold">int</span>[*]<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">img</span>)+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>43</span></span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>int</span>[*],<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>time</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>timestamp</span>(<span class='ltx_text ltx_lst_keyword ltx_font_bold'>int</span>[*]<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>img</span>)
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">44</span></span>{+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>44</span></span>{
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">45</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_keyword ltx_font_bold">return</span><span class="ltx_text ltx_lst_space"> </span>(<span class="ltx_text ltx_lst_identifier">img</span>,<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">gettime</span>());+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>45</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>return</span><span class='ltx_text ltx_lst_space'> </span>(<span class='ltx_text ltx_lst_identifier'>img</span>,<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>gettime</span>());
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">46</span></span>}+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>46</span></span>}
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">47</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>47</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">48</span></span><span class="ltx_text ltx_lst_keyword ltx_font_bold">int</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">main</span>()+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>48</span></span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>int</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>main</span>()
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">49</span></span>{+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>49</span></span>{
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">50</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">fprintf</span>(<span class="ltx_text ltx_lst_identifier">stderr</span>,<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_string">”\nReading<span class="ltx_text ltx_lst_space"> </span>image<span class="ltx_text ltx_lst_space"> </span>in<span class="ltx_text ltx_lst_space"> </span>Fibre<span class="ltx_text ltx_lst_space"> </span>format…\n”</span>);+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>50</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>fprintf</span>(<span class='ltx_text ltx_lst_identifier'>stderr</span>,<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_string'>”\nReading<span class='ltx_text ltx_lst_space'> </span>image<span class='ltx_text ltx_lst_space'> </span>in<span class='ltx_text ltx_lst_space'> </span>Fibre<span class='ltx_text ltx_lst_space'> </span>format…\n”</span>);
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">51</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">img</span><span class="ltx_text ltx_lst_space"> </span>=<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">FibreScanIntArray</span>(<span class="ltx_text ltx_lst_identifier">stdin</span>);+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>51</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>img</span><span class='ltx_text ltx_lst_space'> </span>=<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>FibreScanIntArray</span>(<span class='ltx_text ltx_lst_identifier'>stdin</span>);
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">52</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>52</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">53</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">fprintf</span>(<span class="ltx_text ltx_lst_identifier">stderr</span>,<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_string">”\nApplying<span class="ltx_text ltx_lst_space"> </span>filter<span class="ltx_text ltx_lst_space"> </span>…\n”</span>);+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>53</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>fprintf</span>(<span class='ltx_text ltx_lst_identifier'>stderr</span>,<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_string'>”\nApplying<span class='ltx_text ltx_lst_space'> </span>filter<span class='ltx_text ltx_lst_space'> </span>…\n”</span>);
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">54</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">img</span>,<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">start</span><span class="ltx_text ltx_lst_space"> </span>=<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">timestamp</span>(<span class="ltx_text ltx_lst_identifier">img</span>);+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>54</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>img</span>,<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>start</span><span class='ltx_text ltx_lst_space'> </span>=<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>timestamp</span>(<span class='ltx_text ltx_lst_identifier'>img</span>);
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">55</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">img</span><span class="ltx_text ltx_lst_space"> </span>=<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">sobel</span>(<span class="ltx_text ltx_lst_identifier">img</span>);+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>55</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>img</span><span class='ltx_text ltx_lst_space'> </span>=<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>sobel</span>(<span class='ltx_text ltx_lst_identifier'>img</span>);
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">56</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">img</span>,<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">end</span><span class="ltx_text ltx_lst_space"> </span>=<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">timestamp</span>(<span class="ltx_text ltx_lst_identifier">img</span>);+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>56</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>img</span>,<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>end</span><span class='ltx_text ltx_lst_space'> </span>=<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>timestamp</span>(<span class='ltx_text ltx_lst_identifier'>img</span>);
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">57</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>57</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">58</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_comment ltx_font_italic">/*<span class="ltx_text ltx_lst_space"> </span>Call<span class="ltx_text ltx_lst_space"> </span>the<span class="ltx_text ltx_lst_space"> </span>other<span class="ltx_text ltx_lst_space"> </span>filters<span class="ltx_text ltx_lst_space"> </span>here.<span class="ltx_text ltx_lst_space">  </span>*/</span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>58</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_comment ltx_font_italic'>/*<span class='ltx_text ltx_lst_space'> </span>Call<span class='ltx_text ltx_lst_space'> </span>the<span class='ltx_text ltx_lst_space'> </span>other<span class='ltx_text ltx_lst_space'> </span>filters<span class='ltx_text ltx_lst_space'> </span>here.<span class='ltx_text ltx_lst_space'>  </span>*/</span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">59</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>59</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">60</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">fprintf</span>(<span class="ltx_text ltx_lst_identifier">stderr</span>,<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_string">”\nFinished<span class="ltx_text ltx_lst_space"> </span>filtering<span class="ltx_text ltx_lst_space"> </span>after<span class="ltx_text ltx_lst_space"> </span>%fs\n”</span>,<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">difftime</span>(<span class="ltx_text ltx_lst_identifier">end</span>,<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">start</span>));+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>60</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>fprintf</span>(<span class='ltx_text ltx_lst_identifier'>stderr</span>,<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_string'>”\nFinished<span class='ltx_text ltx_lst_space'> </span>filtering<span class='ltx_text ltx_lst_space'> </span>after<span class='ltx_text ltx_lst_space'> </span>%fs\n”</span>,<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>difftime</span>(<span class='ltx_text ltx_lst_identifier'>end</span>,<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>start</span>));
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">61</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">fprintf</span>(<span class="ltx_text ltx_lst_identifier">stderr</span>,<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_string">”\nWriting<span class="ltx_text ltx_lst_space"> </span>result<span class="ltx_text ltx_lst_space"> </span>image<span class="ltx_text ltx_lst_space"> </span>…\n”</span>);+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>61</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>fprintf</span>(<span class='ltx_text ltx_lst_identifier'>stderr</span>,<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_string'>”\nWriting<span class='ltx_text ltx_lst_space'> </span>result<span class='ltx_text ltx_lst_space'> </span>image<span class='ltx_text ltx_lst_space'> </span>…\n”</span>);
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">62</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">writeMatrix</span>(<span class="ltx_text ltx_lst_identifier">img</span>);+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>62</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>writeMatrix</span>(<span class='ltx_text ltx_lst_identifier'>img</span>);
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">63</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>63</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">64</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_keyword ltx_font_bold">return</span><span class="ltx_text ltx_lst_space"> </span>0;+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>64</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>return</span><span class='ltx_text ltx_lst_space'> </span>0;
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">65</span></span>}+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>65</span></span>}
 </div> </div>
 </div> </div>
 </figure> </figure>
-<div id="Thmtheorem29.p4class="ltx_para"+<div id='Thmtheorem29.p4class='ltx_para'
-<p class="ltx_p">Compile your source code with and without the <span class="ltx_text ltx_font_typewriter">-mt</span> option for+<p class='ltx_p'>Compile your source code with and without the option <span class='ltx_text ltx_font_typewriter'>-t mt_pth</span> option for
 multi-threaded execution and experiment with various thread counts. On faster multi-threaded execution and experiment with various thread counts. On faster
 machines it might be necessary to apply the filter multiple times (copy and machines it might be necessary to apply the filter multiple times (copy and
 paste line 55 a couple of times) to see measurable speed-ups.</p> paste line 55 a couple of times) to see measurable speed-ups.</p>
 </div> </div>
-<div id="Thmtheorem29.p5class="ltx_para"+<div id='Thmtheorem29.p5class='ltx_para'
-<p class="ltx_p">NB: The Fibre format encodes, in addition to the raw data, shape information. +<p class='ltx_p'>NB: The Fibre format encodes, in addition to the raw data, shape information. 
-By using <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">FibreScanIntArray</span> this program is able process 2D images of any+By using <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>FibreScanIntArray</span> this program is able process 2D images of any
 size and it is not fixed to statically known input sizes.</p> size and it is not fixed to statically known input sizes.</p>
 </div> </div>
 </div> </div>
-<figure id="Ch6.F1class="ltx_figure"+<figure id='Ch6.F1class='ltx_figure'
-<table style="width:100%;">+<table style='width:100%;'>
 <tr> <tr>
-<td class="ltx_subgraphics"><img src="x2.pngid="Ch6.F1.g1class="ltx_graphics ltx_centeringwidth="298height="421alt=""></td> +<td class='ltx_subgraphics'><img src='x2.pngid='Ch6.F1.g1class='ltx_graphics ltx_centeringwidth='298height='421alt=''></td> 
-<td class="ltx_subgraphics"><img src="x3.pngid="Ch6.F1.g2class="ltx_graphics ltx_centeringwidth="298height="421alt=""></td>+<td class='ltx_subgraphics'><img src='x3.pngid='Ch6.F1.g2class='ltx_graphics ltx_centeringwidth='298height='421alt=''></td>
 </tr> </tr>
 </table> </table>
-<figcaption class="ltx_caption"><span class="ltx_tag ltx_tag_figure">Figure 6.1: </span>The <span class="ltx_text ltx_font_smallcaps">SaC</span> logo before (left) and after (right) edge detection</figcaption>+<figcaption class='ltx_caption'><span class='ltx_tag ltx_tag_figure'>Figure 6.1: </span>The <span class='ltx_text ltx_font_smallcaps'>SaC</span> logo before (left) and after (right) edge detection</figcaption>
 </figure> </figure>
 </section> </section>
-<section id="Ch6.S2class="ltx_section"+<section id='Ch6.S2class='ltx_section'
-<h4 class="ltx_title ltx_title_section"+<h4 class='ltx_title ltx_title_section'
-<span class="ltx_tag ltx_tag_section">6.2 </span>Lesson 8: Computing Mandelbrot Images</h4>+<span class='ltx_tag ltx_tag_section'>6.2 </span>Lesson 8: Computing Mandelbrot Images</h4>
  
-<div id="Thmtheorem30class="ltx_theorem ltx_theorem_theorem"+<div id='Thmtheorem30class='ltx_theorem ltx_theorem_theorem'
-<h6 class="ltx_title ltx_runin ltx_font_bold ltx_title_theorem">Exercise 30. </h6> +<h6 class='ltx_title ltx_runin ltx_font_bold ltx_title_theorem'>Exercise 30. </h6> 
-<div id="Thmtheorem30.p1class="ltx_para"+<div id='Thmtheorem30.p1class='ltx_para'
-<p class="ltx_p">This exercise is about creating a basic implementation for computing mandelbrot+<p class='ltx_p'>This exercise is about creating a basic implementation for computing mandelbrot
 images.</p> images.</p>
 </div> </div>
-<div id="Thmtheorem30.p2class="ltx_para"+<div id='Thmtheorem30.p2class='ltx_para'
-<ol id="Ch6.I2class="ltx_enumerate"+<ol id='Ch6.I2class='ltx_enumerate'
-<li id="Ch6.I2.i1class="ltx_itemstyle="list-style-type:none;"+<li id='Ch6.I2.i1class='ltx_itemstyle='list-style-type:none;'
-<span class="ltx_tag ltx_tag_enumerate">1.</span>  +<span class='ltx_tag ltx_tag_enumerate'>1.</span>  
-<div id="Ch6.I2.i1.p1class="ltx_para"+<div id='Ch6.I2.i1.p1class='ltx_para'
-<p class="ltx_p">To get started, you may want to use the files +<p class='ltx_p'>To get started, you may want to use the files 
-<span class="ltx_text ltx_font_typewriter">mandelbrot_start.sac</span> and <span class="ltx_text ltx_font_typewriter">Fractal_tier1.sac</span> which, in+<span class='ltx_text ltx_font_typewriter'>mandelbrot_start.sac</span> and <span class='ltx_text ltx_font_typewriter'>Fractal_tier1.sac</span> which, in
 essence, contain the IO-code for visualising the mandelbrot pictures. A essence, contain the IO-code for visualising the mandelbrot pictures. A
 first running version can be obtained by implementing the missing first running version can be obtained by implementing the missing
-function bodies in <span class="ltx_text ltx_font_typewriter">Fractal_tier1_empty.sac</span>:</p> +function bodies in <span class='ltx_text ltx_font_typewriter'>Fractal_tier1_empty.sac</span>:</p> 
-<ul id="Ch6.I2.I1class="ltx_itemize"+<ul id='Ch6.I2.I1class='ltx_itemize'
-<li id="Ch6.I2.I1.i1class="ltx_itemstyle="list-style-type:none;"+<li id='Ch6.I2.I1.i1class='ltx_itemstyle='list-style-type:none;'
-<span class="ltx_tag ltx_tag_itemize"><span class="ltx_text ltx_font_bold">–</span></span>  +<span class='ltx_tag ltx_tag_itemize'><span class='ltx_text ltx_font_bold'>–</span></span>  
-<div id="Ch6.I2.I1.i1.p1class="ltx_para"+<div id='Ch6.I2.I1.i1.p1class='ltx_para'
-<p class="ltx_p"><span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">escapeTime</span> which implements the iteration on+<p class='ltx_p'><span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>escapeTime</span> which implements the iteration on
 arrays of complex numbers, and</p> arrays of complex numbers, and</p>
 </div> </div>
 </li> </li>
-<li id="Ch6.I2.I1.i2class="ltx_itemstyle="list-style-type:none;"+<li id='Ch6.I2.I1.i2class='ltx_itemstyle='list-style-type:none;'
-<span class="ltx_tag ltx_tag_itemize"><span class="ltx_text ltx_font_bold">–</span></span>  +<span class='ltx_tag ltx_tag_itemize'><span class='ltx_text ltx_font_bold'>–</span></span>  
-<div id="Ch6.I2.I1.i2.p1class="ltx_para"+<div id='Ch6.I2.I1.i2.p1class='ltx_para'
-<p class="ltx_p"><span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">genComplexArray</span> which computes a two-dimensional+<p class='ltx_p'><span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>genComplexArray</span> which computes a two-dimensional
 array of complex numbers that represent a descritisation of array of complex numbers that represent a descritisation of
-<math id="Ch6.I2.I1.i2.p1.m1class="ltx_Mathalttext="\mathbb{C}^{2}display="inline"><msup><mi>ℂ</mi><mn>2</mn></msup></math>.</p>+<math id='Ch6.I2.I1.i2.p1.m1class='ltx_Mathalttext='\mathbb{C}^{2}display='inline'><msup><mi>ℂ</mi><mn>2</mn></msup></math>.</p>
 </div> </div>
 </li> </li>
Line 5642: Line 6241:
 </div> </div>
 </li> </li>
-<li id="Ch6.I2.i2class="ltx_itemstyle="list-style-type:none;"+<li id='Ch6.I2.i2class='ltx_itemstyle='list-style-type:none;'
-<span class="ltx_tag ltx_tag_enumerate">2.</span>  +<span class='ltx_tag ltx_tag_enumerate'>2.</span>  
-<div id="Ch6.I2.i2.p1class="ltx_para"+<div id='Ch6.I2.i2.p1class='ltx_para'
-<p class="ltx_p">Waiting for the final picture can be rather unpleasant if it is not +<p class='ltx_p'>Waiting for the final picture can be rather unpleasant if it is not 
-clear whether the chosen fraction of <math id="Ch6.I2.i2.p1.m1class="ltx_Mathalttext="\mathbb{C}^{2}display="inline"><msup><mi>ℂ</mi><mn>2</mn></msup></math> yields an+clear whether the chosen fraction of <math id='Ch6.I2.i2.p1.m1class='ltx_Mathalttext='\mathbb{C}^{2}display='inline'><msup><mi>ℂ</mi><mn>2</mn></msup></math> yields an
 interesting picture and the iteration limit is high. therefore, as a interesting picture and the iteration limit is high. therefore, as a
-first extension, try to modify the <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">main</span> function in +first extension, try to modify the <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>main</span> function in 
-<span class="ltx_text ltx_font_typewriter">mandelbrot_start.sac</span> so that it computes the mandelbrot picture+<span class='ltx_text ltx_font_typewriter'>mandelbrot_start.sac</span> so that it computes the mandelbrot picture
 with increasing resolution without changing the overall size of the with increasing resolution without changing the overall size of the
 picture.</p> picture.</p>
 </div> </div>
-<div id="Ch6.I2.i2.p2class="ltx_para"+<div id='Ch6.I2.i2.p2class='ltx_para'
-<p class="ltx_p">Compute resolutions <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting">[5,5]</span>, <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting">[10,10]</span>,…, +<p class='ltx_p'>Compute resolutions <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>[5,5]</span>, <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>[10,10]</span>,…, 
-<span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting">[320,320]</span> and display them consecutively in a +<span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>[320,320]</span> and display them consecutively in a 
-<span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting">[320,320]</span> display by replicating the found values+<span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>[320,320]</span> display by replicating the found values
 accordingly.</p> accordingly.</p>
 </div> </div>
-<div id="Ch6.I2.i2.p3class="ltx_para"+<div id='Ch6.I2.i2.p3class='ltx_para'
-<p class="ltx_p">Hint: define a function <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">stretchRgb</span> which takes an array of +<p class='ltx_p'>Hint: define a function <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>stretchRgb</span> which takes an array of 
-type <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting"><span class="ltx_text ltx_lst_identifier">color</span>[.,.]</span> and an integer stretching factor +type <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'><span class='ltx_text ltx_lst_identifier'>color</span>[.,.]</span> and an integer stretching factor 
-<span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">stretch</span> and replicates each element of the array into a +<span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>stretch</span> and replicates each element of the array into a 
-square of shape <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting">[<span class="ltx_text ltx_lst_identifier">stretch</span>,<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">stretch</span>]</span>.</p>+square of shape <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>[<span class='ltx_text ltx_lst_identifier'>stretch</span>,<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>stretch</span>]</span>.</p>
 </div> </div>
 </li> </li>
-<li id="Ch6.I2.i3class="ltx_itemstyle="list-style-type:none;"+<li id='Ch6.I2.i3class='ltx_itemstyle='list-style-type:none;'
-<span class="ltx_tag ltx_tag_enumerate">3.</span>  +<span class='ltx_tag ltx_tag_enumerate'>3.</span>  
-<div id="Ch6.I2.i3.p1class="ltx_para"+<div id='Ch6.I2.i3.p1class='ltx_para'
-<p class="ltx_p">The function <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">intArrayToMonochrome</span> maps all escape values+<p class='ltx_p'>The function <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>intArrayToMonochrome</span> maps all escape values
 into a color by means of a clut. Can you express this operation without into a color by means of a clut. Can you express this operation without
 a with-loop?</p> a with-loop?</p>
 </div> </div>
-<div id="Ch6.I2.i3.p2class="ltx_para"+<div id='Ch6.I2.i3.p2class='ltx_para'
-<p class="ltx_p">Hint: You may find inspiration in one of the earlier tasks!</p>+<p class='ltx_p'>Hint: You may find inspiration in one of the earlier tasks!</p>
 </div> </div>
 </li> </li>
-<li id="Ch6.I2.i4class="ltx_itemstyle="list-style-type:none;"+<li id='Ch6.I2.i4class='ltx_itemstyle='list-style-type:none;'
-<span class="ltx_tag ltx_tag_enumerate">4.</span>  +<span class='ltx_tag ltx_tag_enumerate'>4.</span>  
-<div id="Ch6.I2.i4.p1class="ltx_para"+<div id='Ch6.I2.i4.p1class='ltx_para'
-<p class="ltx_p">Try using the compiler option <span class="ltx_text ltx_font_typewriter">-mt</span> to experiment with multi-core+<p class='ltx_p'>Try using the compiler option <span class='ltx_text ltx_font_typewriter'>-t mt_pth</span> to experiment with multi-core
 machines!</p> machines!</p>
 </div> </div>
 </li> </li>
-<li id="Ch6.I2.i5class="ltx_itemstyle="list-style-type:none;"+<li id='Ch6.I2.i5class='ltx_itemstyle='list-style-type:none;'
-<span class="ltx_tag ltx_tag_enumerate">5.</span>  +<span class='ltx_tag ltx_tag_enumerate'>5.</span>  
-<div id="Ch6.I2.i5.p1class="ltx_para"+<div id='Ch6.I2.i5.p1class='ltx_para'
-<p class="ltx_p">Try using the compiler option <span class="ltx_text ltx_font_typewriter">-cuda</span> to experiment with graphics+<p class='ltx_p'>Try using the compiler option <span class='ltx_text ltx_font_typewriter'>-cuda</span> to experiment with graphics
 cards!</p> cards!</p>
 </div> </div>
 </li> </li>
-<li id="Ch6.I2.i6class="ltx_itemstyle="list-style-type:none;"+<li id='Ch6.I2.i6class='ltx_itemstyle='list-style-type:none;'
-<span class="ltx_tag ltx_tag_enumerate">6.</span>  +<span class='ltx_tag ltx_tag_enumerate'>6.</span>  
-<div id="Ch6.I2.i6.p1class="ltx_para"+<div id='Ch6.I2.i6.p1class='ltx_para'
-<p class="ltx_p">Try using the compiler option <span class="ltx_text ltx_font_typewriter">-b11:cyc</span> to inspect the+<p class='ltx_p'>Try using the compiler option <span class='ltx_text ltx_font_typewriter'>-b11:cyc</span> to inspect the
 high-level, optimised intermediate code.</p> high-level, optimised intermediate code.</p>
 </div> </div>
Line 5701: Line 6300:
 </div> </div>
 </div> </div>
-<div id="Thmtheorem31class="ltx_theorem ltx_theorem_theorem"+<div id='Thmtheorem31class='ltx_theorem ltx_theorem_theorem'
-<h6 class="ltx_title ltx_runin ltx_font_bold ltx_title_theorem">Exercise 31. </h6> +<h6 class='ltx_title ltx_runin ltx_font_bold ltx_title_theorem'>Exercise 31. </h6> 
-<div id="Thmtheorem31.p1class="ltx_para"+<div id='Thmtheorem31.p1class='ltx_para'
-<p class="ltx_p">In this exercise, we improve the way the colours are chosen in order to obtain+<p class='ltx_p'>In this exercise, we improve the way the colours are chosen in order to obtain
 smoother transitions. We will use a common approach referred to as smoother transitions. We will use a common approach referred to as
-<em class="ltx_emph">normalized iteration counts</em>. A normalized iteration count for a point in +<em class='ltx_emph'>normalized iteration counts</em>. A normalized iteration count for a point in 
-the complex plane <math id="Thmtheorem31.p1.m1class="ltx_Mathalttext="zdisplay="inline"><mi>z</mi></math> is computed by using the iteration count <math id="Thmtheorem31.p1.m2class="ltx_Mathalttext="tdisplay="inline"><mi>t</mi></math> and the value +the complex plane <math id='Thmtheorem31.p1.m1class='ltx_Mathalttext='zdisplay='inline'><mi>z</mi></math> is computed by using the iteration count <math id='Thmtheorem31.p1.m2class='ltx_Mathalttext='tdisplay='inline'><mi>t</mi></math> and the value 
-at that position <math id="Thmtheorem31.p1.m3class="ltx_Mathalttext="z_{t}display="inline"><msub><mi>z</mi><mi>t</mi></msub></math> during the final iteration. Using these two values, the +at that position <math id='Thmtheorem31.p1.m3class='ltx_Mathalttext='z_{t}display='inline'><msub><mi>z</mi><mi>t</mi></msub></math> during the final iteration. Using these two values, the 
-normalized iteration count is defined as <math id="Thmtheorem31.p1.m4class="ltx_Mathalttext="t_{n}:=(t+1)-\log_{2}(\log_{2}(|z_{t}|))display="inline"><mrow><msub><mi>t</mi><mi>n</mi></msub><mo>:=</mo><mrow><mrow><mo stretchy="false">(</mo><mrow><mi>t</mi><mo>+</mo><mn>1</mn></mrow><mo stretchy="false">)</mo></mrow><mo>-</mo><mrow><msub><mi>log</mi><mn>2</mn></msub><mo>⁡</mo><mrow><mo stretchy="false">(</mo><mrow><msub><mi>log</mi><mn>2</mn></msub><mo>⁡</mo><mrow><mo stretchy="false">(</mo><mrow><mo stretchy="false">|</mo><msub><mi>z</mi><mi>t</mi></msub><mo stretchy="false">|</mo></mrow><mo stretchy="false">)</mo></mrow></mrow><mo stretchy="false">)</mo></mrow></mrow></mrow></mrow></math> +normalized iteration count is defined as <math id='Thmtheorem31.p1.m4class='ltx_Mathalttext='t_{n}:=(t+1)-\log_{2}(\log_{2}(|z_{t}|))display='inline'><mrow><msub><mi>t</mi><mi>n</mi></msub><mo>:=</mo><mrow><mrow><mo stretchy='false'>(</mo><mrow><mi>t</mi><mo>+</mo><mn>1</mn></mrow><mo stretchy='false'>)</mo></mrow><mo>-</mo><mrow><msub><mi>log</mi><mn>2</mn></msub><mo>⁡</mo><mrow><mo stretchy='false'>(</mo><mrow><msub><mi>log</mi><mn>2</mn></msub><mo>⁡</mo><mrow><mo stretchy='false'>(</mo><mrow><mo stretchy='false'>|</mo><msub><mi>z</mi><mi>t</mi></msub><mo stretchy='false'>|</mo></mrow><mo stretchy='false'>)</mo></mrow></mrow><mo stretchy='false'>)</mo></mrow></mrow></mrow></mrow></math> 
-for those values that escape and as <math id="Thmtheorem31.p1.m5class="ltx_Mathalttext="0display="inline"><mn>0</mn></math> otherwise.</p>+for those values that escape and as <math id='Thmtheorem31.p1.m5class='ltx_Mathalttext='0display='inline'><mn>0</mn></math> otherwise.</p>
 </div> </div>
-<div id="Thmtheorem31.p2class="ltx_para"+<div id='Thmtheorem31.p2class='ltx_para'
-<ol id="Ch6.I3class="ltx_enumerate"+<ol id='Ch6.I3class='ltx_enumerate'
-<li id="Ch6.I3.i1class="ltx_itemstyle="list-style-type:none;"+<li id='Ch6.I3.i1class='ltx_itemstyle='list-style-type:none;'
-<span class="ltx_tag ltx_tag_enumerate">1.</span>  +<span class='ltx_tag ltx_tag_enumerate'>1.</span>  
-<div id="Ch6.I3.i1.p1class="ltx_para"+<div id='Ch6.I3.i1.p1class='ltx_para'
-<p class="ltx_p">The module <span class="ltx_text ltx_font_typewriter">Fractal_tier2.sac</span> contains stubs for the missing+<p class='ltx_p'>The module <span class='ltx_text ltx_font_typewriter'>Fractal_tier2.sac</span> contains stubs for the missing
 functionality required in this exercise:</p> functionality required in this exercise:</p>
-<ul id="Ch6.I3.I1class="ltx_itemize"+<ul id='Ch6.I3.I1class='ltx_itemize'
-<li id="Ch6.I3.I1.i1class="ltx_itemstyle="list-style-type:none;"+<li id='Ch6.I3.I1.i1class='ltx_itemstyle='list-style-type:none;'
-<span class="ltx_tag ltx_tag_itemize"><span class="ltx_text ltx_font_bold">–</span></span>  +<span class='ltx_tag ltx_tag_itemize'><span class='ltx_text ltx_font_bold'>–</span></span>  
-<div id="Ch6.I3.I1.i1.p1class="ltx_para"+<div id='Ch6.I3.I1.i1.p1class='ltx_para'
-<p class="ltx_p"><span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">normalizedIterationCount</span> which implements the+<p class='ltx_p'><span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>normalizedIterationCount</span> which implements the
 normalisation of iteration counts by taking the final computed normalisation of iteration counts by taking the final computed
 value into account.</p> value into account.</p>
 </div> </div>
-<div id="Ch6.I3.I1.i1.p2class="ltx_para"+<div id='Ch6.I3.I1.i1.p2class='ltx_para'
-<p class="ltx_p">Hint: The function <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">escapeTime</span> only computes the+<p class='ltx_p'>Hint: The function <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>escapeTime</span> only computes the
 number of iterations before the value at a given position number of iterations before the value at a given position
 escapes. To normalize these, the final value at that position is escapes. To normalize these, the final value at that position is
 required, as well. For this, we have provided a function required, as well. For this, we have provided a function
-<span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">escapeValue</span>.</p>+<span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>escapeValue</span>.</p>
 </div> </div>
 </li> </li>
-<li id="Ch6.I3.I1.i2class="ltx_itemstyle="list-style-type:none;"+<li id='Ch6.I3.I1.i2class='ltx_itemstyle='list-style-type:none;'
-<span class="ltx_tag ltx_tag_itemize"><span class="ltx_text ltx_font_bold">–</span></span>  +<span class='ltx_tag ltx_tag_itemize'><span class='ltx_text ltx_font_bold'>–</span></span>  
-<div id="Ch6.I3.I1.i2.p1class="ltx_para"+<div id='Ch6.I3.I1.i2.p1class='ltx_para'
-<p class="ltx_p"><span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">doubleArrayToRGB</span> maps the normalized iteration+<p class='ltx_p'><span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>doubleArrayToRGB</span> maps the normalized iteration
 counts, which are double values, to an RGB colour-triple. To counts, which are double values, to an RGB colour-triple. To
 derive an RGB value, first scale all values such that they are derive an RGB value, first scale all values such that they are
-in the interval <math id="Ch6.I3.I1.i2.p1.m1class="ltx_Mathalttext="0\leq x&lt;360display="inline"><mrow><mn>0</mn><mo>≤</mo><mi>x</mi><mo>&lt;</mo><mn>360</mn></mrow></math>. This value can then be used as the+in the interval <math id='Ch6.I3.I1.i2.p1.m1class='ltx_Mathalttext='0\leq x<360display='inline'><mrow><mn>0</mn><mo>≤</mo><mi>x</mi><mo>&lt;</mo><mn>360</mn></mrow></math>. This value can then be used as the
 hue in the HSB model.</p> hue in the HSB model.</p>
 </div> </div>
-<div id="Ch6.I3.I1.i2.p2class="ltx_para"+<div id='Ch6.I3.I1.i2.p2class='ltx_para'
-<p class="ltx_p">Hint: The module <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">Color8</span> defines a function +<p class='ltx_p'>Hint: The module <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>Color8</span> defines a function 
-<span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">Hsb2Rgb</span> that converts a HSB color description into+<span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>Hsb2Rgb</span> that converts a HSB color description into
 its corresponding RGB representation.</p> its corresponding RGB representation.</p>
 </div> </div>
Line 5756: Line 6355:
 </div> </div>
 </div> </div>
-<div id="Thmtheorem32class="ltx_theorem ltx_theorem_theorem"+<div id='Thmtheorem32class='ltx_theorem ltx_theorem_theorem'
-<h6 class="ltx_title ltx_runin ltx_font_bold ltx_title_theorem">Exercise 32. </h6> +<h6 class='ltx_title ltx_runin ltx_font_bold ltx_title_theorem'>Exercise 32. </h6> 
-<div id="Thmtheorem32.p1class="ltx_para"+<div id='Thmtheorem32.p1class='ltx_para'
-<p class="ltx_p">In this exercise, we apply the filters from the previous case study to the+<p class='ltx_p'>In this exercise, we apply the filters from the previous case study to the
 mandelbrot pictures. As before, we have provided stubs for the missing mandelbrot pictures. As before, we have provided stubs for the missing
 functionality. For this exercise these can be found in the file functionality. For this exercise these can be found in the file
-<span class="ltx_text ltx_font_typewriter">Stencil_tier3.sac</span>.</p>+<span class='ltx_text ltx_font_typewriter'>Stencil_tier3.sac</span>.</p>
 </div> </div>
-<div id="Thmtheorem32.p2class="ltx_para"+<div id='Thmtheorem32.p2class='ltx_para'
-<ol id="Ch6.I4class="ltx_enumerate"+<ol id='Ch6.I4class='ltx_enumerate'
-<li id="Ch6.I4.i1class="ltx_itemstyle="list-style-type:none;"+<li id='Ch6.I4.i1class='ltx_itemstyle='list-style-type:none;'
-<span class="ltx_tag ltx_tag_enumerate">1.</span>  +<span class='ltx_tag ltx_tag_enumerate'>1.</span>  
-<div id="Ch6.I4.i1.p1class="ltx_para"+<div id='Ch6.I4.i1.p1class='ltx_para'
-<p class="ltx_p">Implement the functions <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">apply</span>, <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">sobelEdges</span>, +<p class='ltx_p'>Implement the functions <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>apply</span>, <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>sobelEdges</span>, 
-<span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">gaussBlur</span> and <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">gaussBlur25</span> as described in the+<span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>gaussBlur</span> and <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>gaussBlur25</span> as described in the
 previous case study.</p> previous case study.</p>
 </div> </div>
 </li> </li>
-<li id="Ch6.I4.i2class="ltx_itemstyle="list-style-type:none;"+<li id='Ch6.I4.i2class='ltx_itemstyle='list-style-type:none;'
-<span class="ltx_tag ltx_tag_enumerate">2.</span>  +<span class='ltx_tag ltx_tag_enumerate'>2.</span>  
-<div id="Ch6.I4.i2.p1class="ltx_para"+<div id='Ch6.I4.i2.p1class='ltx_para'
-<p class="ltx_p">The three filters described above only operate on a single channel,+<p class='ltx_p'>The three filters described above only operate on a single channel,
 e.g. a gray-scale image. To lift these to colour images, implement a e.g. a gray-scale image. To lift these to colour images, implement a
 corresponding function for each filter that applies the filter to each corresponding function for each filter that applies the filter to each
Line 5789: Line 6388:
 </section> </section>
 </section> </section>
-<section id="Pt2class="ltx_part"+<section id='Pt2class='ltx_part'
-<h2 class="ltx_title ltx_title_part"+<h2 class='ltx_title ltx_title_part'
-<span class="ltx_tag ltx_tag_part">Part II </span>Trails Covering More Advanced Features of <span class="ltx_text ltx_font_smallcaps">SaC</span>+<span class='ltx_tag ltx_tag_part'>Part II </span>Trails Covering More Advanced Features of <span class='ltx_text ltx_font_smallcaps'>SaC</span>
 </h2> </h2>
  
-<section id="Ch7class="ltx_chapter"+<section id='Ch7class='ltx_chapter'
-<h3 class="ltx_title ltx_title_chapter"+<h3 class='ltx_title ltx_title_chapter'
-<span class="ltx_tag ltx_tag_chapter">Chapter 7 </span>Treasures in the Standard Library</h3>+<span class='ltx_tag ltx_tag_chapter'>Chapter 7 </span>Treasures in the Standard Library</h3>
  
-<div id="Ch7.p1class="ltx_para"+<div id='Ch7.p1class='ltx_para'
-<p class="ltx_p">This trail gives the reader a tour through the main components of the standard+<p class='ltx_p'>This trail gives the reader a tour through the main components of the standard
 library. For the time being, it is merely a collection of points of interest. library. For the time being, it is merely a collection of points of interest.
 We hope that this will evolve over time.</p> We hope that this will evolve over time.</p>
 </div> </div>
-<div id="Ch7.p2class="ltx_para"+<div id='Ch7.p2class='ltx_para'
-<p class="ltx_p">So far, we only have one lesson on <em class="ltx_emph">benchmarking</em> in <span class="ltx_text ltx_font_smallcaps">SaC</span>.</p>+<p class='ltx_p'>So far, we only have one lesson on <em class='ltx_emph'>benchmarking</em> in <span class='ltx_text ltx_font_smallcaps'>SaC</span>.</p>
 </div> </div>
-<section id="Ch7.S1class="ltx_section"+<section id='Ch7.S1class='ltx_section'
-<h4 class="ltx_title ltx_title_section"+<h4 class='ltx_title ltx_title_section'
-<span class="ltx_tag ltx_tag_section">7.1 </span>Lesson: Benchmarking <span class="ltx_text ltx_font_smallcaps">SaC</span> Programs</h4>+<span class='ltx_tag ltx_tag_section'>7.1 </span>Lesson: Benchmarking <span class='ltx_text ltx_font_smallcaps'>SaC</span> Programs</h4>
  
-<div id="Ch7.S1.p1class="ltx_para"+<div id='Ch7.S1.p1class='ltx_para'
-<p class="ltx_p">Following the case studies in the previous section, the question +<p class='ltx_p'>Following the case studies in the previous section, the question 
-arises what the best technique for benchmarking <span class="ltx_text ltx_font_smallcaps">SaC</span> programs+arises what the best technique for benchmarking <span class='ltx_text ltx_font_smallcaps'>SaC</span> programs
 might be. might be.
-The easiest way, of course, is by utilising the <span class="ltx_text ltx_font_smallcaps">Unix</span> <span class="ltx_text ltx_font_typewriter">time</span> +The easiest way, of course, is by utilising the <span class='ltx_text ltx_font_smallcaps'>Unix</span> <span class='ltx_text ltx_font_typewriter'>time</span> 
-(or <span class="ltx_text ltx_font_typewriter">timex</span>) command when starting the to be benchmarked+(or <span class='ltx_text ltx_font_typewriter'>timex</span>) command when starting the to be benchmarked
 program on the command line of the system shell. program on the command line of the system shell.
 The disadvantage of this technique is that the whole program is benchmarked, The disadvantage of this technique is that the whole program is benchmarked,
Line 5821: Line 6420:
 from time spent in the more relevant parts of a program.</p> from time spent in the more relevant parts of a program.</p>
 </div> </div>
-<div id="Ch7.S1.p2class="ltx_para"+<div id='Ch7.S1.p2class='ltx_para'
-<p class="ltx_p">For many program codes exposing in one way or another an iterative nature,+<p class='ltx_p'>For many program codes exposing in one way or another an iterative nature,
 this is often still the technique of choice. this is often still the technique of choice.
-One simply measures whole program runtime for <span class="ltx_text ltx_font_typewriter">x</span> iterations and for +One simply measures whole program runtime for <span class='ltx_text ltx_font_typewriter'>x</span> iterations and for 
-<span class="ltx_text ltx_font_typewriter">y</span> iterations and then derives the average time per iteration by+<span class='ltx_text ltx_font_typewriter'>y</span> iterations and then derives the average time per iteration by
 dividing the difference in runtimes by the difference in iterations computed. dividing the difference in runtimes by the difference in iterations computed.
 Under the (likely) assumption that setup and shutdown overhead is constant Under the (likely) assumption that setup and shutdown overhead is constant
Line 5831: Line 6430:
 benchmarking without augmenting the source code for benchmarking.</p> benchmarking without augmenting the source code for benchmarking.</p>
 </div> </div>
-<div id="Ch7.S1.p3class="ltx_para"+<div id='Ch7.S1.p3class='ltx_para'
-<p class="ltx_p">If the above technique for one or another reason is insufficient, the <span class="ltx_text ltx_font_smallcaps">SaC</span>+<p class='ltx_p'>If the above technique for one or another reason is insufficient, the <span class='ltx_text ltx_font_smallcaps'>SaC</span>
 standard library provides access to the system real time clock via the classes standard library provides access to the system real time clock via the classes
-<span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">RTClock</span> and <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">RTimer</span>.+<span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>RTClock</span> and <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>RTimer</span>.
 The code example below illustrates how this works.</p> The code example below illustrates how this works.</p>
 </div> </div>
-<figure id="LST44class="ltx_float ltx_lstlisting ltx_role_listing"+<figure id='LST44class='ltx_float ltx_lstlisting ltx_role_listing'
-<figcaption class="ltx_caption"><span class="ltx_tag ltx_tag_float">Listing 44: </span>Benchmarking with the real time clock</figcaption> +<figcaption class='ltx_caption'><span class='ltx_tag ltx_tag_float'>Listing 44: </span>Benchmarking with the real time clock</figcaption> 
-<div class="ltx_listing ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_listing"+<div class='ltx_listing ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_listing'
-<div class="ltx_listing_data"><a href="data:text/plain;base64,dXNlIFJUQ2xvY2s6IGFsbDsKdXNlIFJUaW1lcjogYWxsOwoKaW50IG1haW4oKQp7CiAgaW50IHNl%0AY3M7CiAgaW50IG5zZWNzOwogIGRvdWJsZSB0aW1lOwoKICB0aW1lciA9IGNyZWF0ZVJUaW1lcigp%0AOwoKICBzdGFydFJUaW1lcih0aW1lcik7CgogIGRvUmVsZXZhbnRDb21wdXRhdGlvbigvKiAuLi4g%0AICovKTsKCiAgc3RvcFJUaW1lcih0aW1lcik7CgogIHNlY3MsIG5zZWNzID0gZ2V0UlRpbWVySW50%0Acyh0aW1lcik7CiAgdGltZSA9IGdldFJUaW1lckRibCh0aW1lcik7CgogIGRlc3Ryb3lSVGltZXIo%0AdGltZXIpOwp9%0A">⬇</a></div> +<div class='ltx_listing_data'><a href='data:text/plain;base64,dXNlIFJUQ2xvY2s6IGFsbDsKdXNlIFJUaW1lcjogYWxsOwoKaW50IG1haW4oKQp7CiAgaW50IHNl%0AY3M7CiAgaW50IG5zZWNzOwogIGRvdWJsZSB0aW1lOwoKICB0aW1lciA9IGNyZWF0ZVJUaW1lcigp%0AOwoKICBzdGFydFJUaW1lcih0aW1lcik7CgogIGRvUmVsZXZhbnRDb21wdXRhdGlvbigvKiAuLi4g%0AICovKTsKCiAgc3RvcFJUaW1lcih0aW1lcik7CgogIHNlY3MsIG5zZWNzID0gZ2V0UlRpbWVySW50%0Acyh0aW1lcik7CiAgdGltZSA9IGdldFJUaW1lckRibCh0aW1lcik7CgogIGRlc3Ryb3lSVGltZXIo%0AdGltZXIpOwp9%0A'>⬇</a></div> 
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">1</span></span><span class="ltx_text ltx_lst_keyword ltx_font_bold">use</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">RTClock</span>:<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">all</span>;+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>1</span></span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>use</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>RTClock</span>:<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>all</span>;
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">2</span></span><span class="ltx_text ltx_lst_keyword ltx_font_bold">use</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">RTimer</span>:<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">all</span>;+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>2</span></span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>use</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>RTimer</span>:<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>all</span>;
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">3</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>3</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">4</span></span><span class="ltx_text ltx_lst_keyword ltx_font_bold">int</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">main</span>()+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>4</span></span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>int</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>main</span>()
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">5</span></span>{+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>5</span></span>{
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">6</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_keyword ltx_font_bold">int</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">secs</span>;+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>6</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>int</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>secs</span>;
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">7</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_keyword ltx_font_bold">int</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">nsecs</span>;+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>7</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>int</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>nsecs</span>;
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">8</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_keyword ltx_font_bold">double</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">time</span>;+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>8</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>double</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>time</span>;
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">9</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>9</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">10</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">timer</span><span class="ltx_text ltx_lst_space"> </span>=<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">createRTimer</span>();+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>10</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>timer</span><span class='ltx_text ltx_lst_space'> </span>=<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>createRTimer</span>();
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">11</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>11</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">12</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">startRTimer</span>(<span class="ltx_text ltx_lst_identifier">timer</span>);+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>12</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>startRTimer</span>(<span class='ltx_text ltx_lst_identifier'>timer</span>);
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">13</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>13</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">14</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">doRelevantComputation</span>(<span class="ltx_text ltx_lst_comment ltx_font_italic">/*<span class="ltx_text ltx_lst_space"> </span>…<span class="ltx_text ltx_lst_space">  </span>*/</span>);+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>14</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>doRelevantComputation</span>(<span class='ltx_text ltx_lst_comment ltx_font_italic'>/*<span class='ltx_text ltx_lst_space'> </span>…<span class='ltx_text ltx_lst_space'>  </span>*/</span>);
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">15</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>15</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">16</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">stopRTimer</span>(<span class="ltx_text ltx_lst_identifier">timer</span>);+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>16</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>stopRTimer</span>(<span class='ltx_text ltx_lst_identifier'>timer</span>);
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">17</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>17</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">18</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">secs</span>,<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">nsecs</span><span class="ltx_text ltx_lst_space"> </span>=<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">getRTimerInts</span>(<span class="ltx_text ltx_lst_identifier">timer</span>);+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>18</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>secs</span>,<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>nsecs</span><span class='ltx_text ltx_lst_space'> </span>=<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>getRTimerInts</span>(<span class='ltx_text ltx_lst_identifier'>timer</span>);
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">19</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">time</span><span class="ltx_text ltx_lst_space"> </span>=<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">getRTimerDbl</span>(<span class="ltx_text ltx_lst_identifier">timer</span>);+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>19</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>time</span><span class='ltx_text ltx_lst_space'> </span>=<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>getRTimerDbl</span>(<span class='ltx_text ltx_lst_identifier'>timer</span>);
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">20</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>20</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">21</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">destroyRTimer</span>(<span class="ltx_text ltx_lst_identifier">timer</span>);+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>21</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>destroyRTimer</span>(<span class='ltx_text ltx_lst_identifier'>timer</span>);
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">22</span></span>}+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>22</span></span>}
 </div> </div>
 </div> </div>
 </figure> </figure>
-<div id="Ch7.S1.p4class="ltx_para"+<div id='Ch7.S1.p4class='ltx_para'
-<p class="ltx_p">First, we make all symbols from the name spaces <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">RTClock</span> and <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">RTimer</span> +<p class='ltx_p'>First, we make all symbols from the name spaces <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>RTClock</span> and <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>RTimer</span> 
-available to our program via the <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_keyword ltx_font_bold">use</span> statements in+available to our program via the <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_keyword ltx_font_bold'>use</span> statements in
 lines 1 and 2. lines 1 and 2.
 Access to the real time clock is indirect through the creation of one or more Access to the real time clock is indirect through the creation of one or more
-<span class="ltx_text ltx_font_italic">real clock timers</span>+<span class='ltx_text ltx_font_italic'>real clock timers</span>
-Such a timer comes into existance through execution of the <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">createRTimer</span>+Such a timer comes into existance through execution of the <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>createRTimer</span>
 function. function.
-Timers can (repeatedly) be started and stopped using the functions <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">startRTimer</span> +Timers can (repeatedly) be started and stopped using the functions <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>startRTimer</span> 
-and <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">stopRTimer</span>, respectively.+and <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>stopRTimer</span>, respectively.
 If a timer is started and stopped multiple times, elapsed times are accumulated. If a timer is started and stopped multiple times, elapsed times are accumulated.
 Where this is not desirable, a real clock timer can be reset using the Where this is not desirable, a real clock timer can be reset using the
-<span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">resetRTimer</span> function.+<span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>resetRTimer</span> function.
 While the real timers keep their information in an opaque format, two functions While the real timers keep their information in an opaque format, two functions
-support the conversion of timer information into standard <span class="ltx_text ltx_font_smallcaps">SaC</span> values. +support the conversion of timer information into standard <span class='ltx_text ltx_font_smallcaps'>SaC</span> values. 
-The function <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">getRTimerInts</span> yields two integer values, specifying elapsed+The function <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>getRTimerInts</span> yields two integer values, specifying elapsed
 seconds and nanoseconds, respectively; seconds and nanoseconds, respectively;
-the function <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">getRTimerDbl</span> yields elapsed time in seconds as a double+the function <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>getRTimerDbl</span> yields elapsed time in seconds as a double
 precision floating point value.</p> precision floating point value.</p>
 </div> </div>
-<div id="Ch7.S1.p5class="ltx_para"+<div id='Ch7.S1.p5class='ltx_para'
-<p class="ltx_p">Note that starting an already running timer has no effect.+<p class='ltx_p'>Note that starting an already running timer has no effect.
 Likewise stopping a non-running timer has no effect either. Likewise stopping a non-running timer has no effect either.
 Enquiring the state of a running timer yields the timer’s value Enquiring the state of a running timer yields the timer’s value
 when it was started. when it was started.
 Last not least, a timer should be removed when it is no longer used or needed Last not least, a timer should be removed when it is no longer used or needed
-by calling the <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">destroyRTimer</span> function.</p>+by calling the <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>destroyRTimer</span> function.</p>
 </div> </div>
-<div id="Ch7.S1.p6class="ltx_para"+<div id='Ch7.S1.p6class='ltx_para'
-<p class="ltx_p">Benchmarking <em class="ltx_emph">functional</em> programs through starting, stopping and+<p class='ltx_p'>Benchmarking <em class='ltx_emph'>functional</em> programs through starting, stopping and
 enquiring timers is not without a conceptual problem: enquiring timers is not without a conceptual problem:
 In the absence of any data dependency between the starting and the stopping of In the absence of any data dependency between the starting and the stopping of
Line 5944: Line 6543:
 other side, the compiler is free to change the order of these three parts of other side, the compiler is free to change the order of these three parts of
 the computation. the computation.
-And, an aggressively optimising compiler like <span class="ltx_text ltx_font_typewriter">sac2c</span> may actually do this,+And, an aggressively optimising compiler like <span class='ltx_text ltx_font_typewriter'>sac2c</span> may actually do this,
 which, of course, would render the timing completely useless. which, of course, would render the timing completely useless.
 To safely prevent the compiler from changing the order of computations, we need To safely prevent the compiler from changing the order of computations, we need
 to apply a little trick:</p> to apply a little trick:</p>
 </div> </div>
-<figure id="LST45class="ltx_float ltx_lstlisting ltx_role_listing"+<figure id='LST45class='ltx_float ltx_lstlisting ltx_role_listing'
-<figcaption class="ltx_caption"><span class="ltx_tag ltx_tag_float">Listing 45: </span>Binding function to timer</figcaption> +<figcaption class='ltx_caption'><span class='ltx_tag ltx_tag_float'>Listing 45: </span>Binding function to timer</figcaption> 
-<div class="ltx_listing ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_listing"+<div class='ltx_listing ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_listing'
-<div class="ltx_listing_data"><a href="data:text/plain;base64,LyogcmV0dXJuLXR5cGUgICovIGRvUmVsZXZhbnRDb21wdXRhdGlvbigvKiAuLi4gICovKQp7CiAg%0ALyogLi4uICAqLwogIHRvdWNoKFJUY2xvY2spOwogIC8qIC4uLiAgKi8KfQ==%0A">⬇</a></div> +<div class='ltx_listing_data'><a href='data:text/plain;base64,LyogcmV0dXJuLXR5cGUgICovIGRvUmVsZXZhbnRDb21wdXRhdGlvbigvKiAuLi4gICovKQp7CiAg%0ALyogLi4uICAqLwogIHRvdWNoKFJUY2xvY2spOwogIC8qIC4uLiAgKi8KfQ==%0A'>⬇</a></div> 
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">1</span></span><span class="ltx_text ltx_lst_comment ltx_font_italic">/*<span class="ltx_text ltx_lst_space"> </span>return-type<span class="ltx_text ltx_lst_space">  </span>*/</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">doRelevantComputation</span>(<span class="ltx_text ltx_lst_comment ltx_font_italic">/*<span class="ltx_text ltx_lst_space"> </span>…<span class="ltx_text ltx_lst_space">  </span>*/</span>)+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>1</span></span><span class='ltx_text ltx_lst_comment ltx_font_italic'>/*<span class='ltx_text ltx_lst_space'> </span>return-type<span class='ltx_text ltx_lst_space'>  </span>*/</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>doRelevantComputation</span>(<span class='ltx_text ltx_lst_comment ltx_font_italic'>/*<span class='ltx_text ltx_lst_space'> </span>…<span class='ltx_text ltx_lst_space'>  </span>*/</span>)
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">2</span></span>{+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>2</span></span>{
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">3</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_comment ltx_font_italic">/*<span class="ltx_text ltx_lst_space"> </span>…<span class="ltx_text ltx_lst_space">  </span>*/</span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>3</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_comment ltx_font_italic'>/*<span class='ltx_text ltx_lst_space'> </span>…<span class='ltx_text ltx_lst_space'>  </span>*/</span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">4</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">touch</span>(<span class="ltx_text ltx_lst_identifier">RTclock</span>);+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>4</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>touch</span>(<span class='ltx_text ltx_lst_identifier'>RTclock</span>);
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">5</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_comment ltx_font_italic">/*<span class="ltx_text ltx_lst_space"> </span>…<span class="ltx_text ltx_lst_space">  </span>*/</span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>5</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_comment ltx_font_italic'>/*<span class='ltx_text ltx_lst_space'> </span>…<span class='ltx_text ltx_lst_space'>  </span>*/</span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">6</span></span>}+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>6</span></span>}
 </div> </div>
 </div> </div>
 </figure> </figure>
-<div id="Ch7.S1.p7class="ltx_para"+<div id='Ch7.S1.p7class='ltx_para'
-<p class="ltx_p">Somewhere in the definition of the <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">doRelevantComputation</span> you need +<p class='ltx_p'>Somewhere in the definition of the <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>doRelevantComputation</span> you need 
-to <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">touch</span> the real time clock as shown above.+to <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>touch</span> the real time clock as shown above.
 And, you must not declare the work function as an inline function.</p> And, you must not declare the work function as an inline function.</p>
 </div> </div>
-<div id="Ch7.S1.p8class="ltx_para"+<div id='Ch7.S1.p8class='ltx_para'
-<p class="ltx_p">Why this helps warrants further explanation; it is deeply connected to +<p class='ltx_p'>Why this helps warrants further explanation; it is deeply connected to 
-the <span class="ltx_text ltx_font_smallcaps">SaC</span> I/O concept, which is based on a variant of uniqueness typing.</p>+the <span class='ltx_text ltx_font_smallcaps'>SaC</span> I/O concept, which is based on a variant of uniqueness typing.</p>
 </div> </div>
 </section> </section>
 </section> </section>
-<section id="Ch8class="ltx_chapter"+<section id='Ch8class='ltx_chapter'
-<h3 class="ltx_title ltx_title_chapter"+<h3 class='ltx_title ltx_title_chapter'
-<span class="ltx_tag ltx_tag_chapter">Chapter 8 </span>User Defined Types</h3>+<span class='ltx_tag ltx_tag_chapter'>Chapter 8 </span>User Defined Types</h3>
  
-<div id="Ch8.p1class="ltx_para"+<div id='Ch8.p1class='ltx_para'
-<p class="ltx_p">In this trail covers the definition and use of user-defined types in <span class="ltx_text ltx_font_smallcaps">SaC</span>.</p>+<p class='ltx_p'>In this trail covers the definition and use of user-defined types in <span class='ltx_text ltx_font_smallcaps'>SaC</span>.</p>
 </div> </div>
 </section> </section>
-<section id="Ch9class="ltx_chapter"+<section id='Ch9class='ltx_chapter'
-<h3 class="ltx_title ltx_title_chapter"+<h3 class='ltx_title ltx_title_chapter'
-<span class="ltx_tag ltx_tag_chapter">Chapter 9 </span>Dealing with I/O and State in General</h3>+<span class='ltx_tag ltx_tag_chapter'>Chapter 9 </span>Dealing with I/O and State in General</h3>
  
-<div id="Ch9.p1class="ltx_para"+<div id='Ch9.p1class='ltx_para'
-<p class="ltx_p"><span class="ltx_text ltx_font_smallcaps">SaC</span> supports states through objects that are passed implicitly around. This+<p class='ltx_p'><span class='ltx_text ltx_font_smallcaps'>SaC</span> supports states through objects that are passed implicitly around. This
 allows the programmer to specify stateful expressions as sequences while allows the programmer to specify stateful expressions as sequences while
-maintaining the sideeffect free functional semantics of the <span class="ltx_text ltx_font_smallcaps">SaC</span> language. The +maintaining the sideeffect free functional semantics of the <span class='ltx_text ltx_font_smallcaps'>SaC</span> language. The 
-underlying idea is called <em class="ltx_emph">global objects</em> and will be discussed through out+underlying idea is called <em class='ltx_emph'>global objects</em> and will be discussed through out
 this chapter.</p> this chapter.</p>
 </div> </div>
-<section id="Ch9.S1class="ltx_section"+<section id='Ch9.S1class='ltx_section'
-<h4 class="ltx_title ltx_title_section"+<h4 class='ltx_title ltx_title_section'
-<span class="ltx_tag ltx_tag_section">9.1 </span>Lesson: States and Objects — the basics</h4>+<span class='ltx_tag ltx_tag_section'>9.1 </span>Lesson: States and Objects — the basics</h4>
  
-<div id="Ch9.S1.p1class="ltx_para"+<div id='Ch9.S1.p1class='ltx_para'
-<p class="ltx_p">In most languages, classes are based on special record types containing instance +<p class='ltx_p'>In most languages, classes are based on special record types containing instance 
-variables and methods. In <span class="ltx_text ltx_font_smallcaps">SaC</span>, classes are based on modules, as they serve+variables and methods. In <span class='ltx_text ltx_font_smallcaps'>SaC</span>, classes are based on modules, as they serve
 the same need: A module pairs functions and types to a group. Instead of the same need: A module pairs functions and types to a group. Instead of
-instance variables, classes in <span class="ltx_text ltx_font_smallcaps">SaC</span> have a special class type that builds up+instance variables, classes in <span class='ltx_text ltx_font_smallcaps'>SaC</span> have a special class type that builds up
 an instance of a class. As this type always is implicit, direct access to it is an instance of a class. As this type always is implicit, direct access to it is
 only possible from within the same namespace. The following example shows the only possible from within the same namespace. The following example shows the
-class <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">Counter</span>:</p>+class <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>Counter</span>:</p>
 </div> </div>
-<figure id="LST46class="ltx_float ltx_lstlisting ltx_role_listing"+<figure id='LST46class='ltx_float ltx_lstlisting ltx_role_listing'
-<figcaption class="ltx_caption"><span class="ltx_tag ltx_tag_float">Listing 46: </span>class Counter</figcaption> +<figcaption class='ltx_caption'><span class='ltx_tag ltx_tag_float'>Listing 46: </span>class Counter</figcaption> 
-<div class="ltx_listing ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_listing"+<div class='ltx_listing ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_listing'
-<div class="ltx_listing_data"><a href="data:text/plain;base64,Y2xhc3MgQ291bnRlcjsKCmNsYXNzdHlwZSBpbnRbXTsKCnB1YmxpYyBDb3VudGVyIGNyZWF0ZV9D%0Ab3VudGVyKCkKewogIHJldHVybiAoQ291bnRlcikwOwp9CgpwdWJsaWMgdm9pZCBpbmNyZW1lbnQo%0AQ291bnRlciAmYykKewogIGMgPSAoQ291bnRlcikoKGludCljICsgMSk7Cn0KCnB1YmxpYyBpbnQg%0AZ2V0VmFsdWUoQ291bnRlciBjKQp7CiAgcmV0dXJuIChpbnQpYzsKfQoKcHVibGljIHZvaWQgZGVz%0AdHJveV9Db3VudGVyKENvdW50ZXIgJmMpCnsKfQ==%0A">⬇</a></div> +<div class='ltx_listing_data'><a href='data:text/plain;base64,Y2xhc3MgQ291bnRlcjsKCmNsYXNzdHlwZSBpbnRbXTsKCnB1YmxpYyBDb3VudGVyIGNyZWF0ZV9D%0Ab3VudGVyKCkKewogIHJldHVybiAoQ291bnRlcikwOwp9CgpwdWJsaWMgdm9pZCBpbmNyZW1lbnQo%0AQ291bnRlciAmYykKewogIGMgPSAoQ291bnRlcikoKGludCljICsgMSk7Cn0KCnB1YmxpYyBpbnQg%0AZ2V0VmFsdWUoQ291bnRlciBjKQp7CiAgcmV0dXJuIChpbnQpYzsKfQoKcHVibGljIHZvaWQgZGVz%0AdHJveV9Db3VudGVyKENvdW50ZXIgJmMpCnsKfQ==%0A'>⬇</a></div> 
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">1</span></span><span class="ltx_text ltx_lst_keyword ltx_font_bold">class</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">Counter</span>;+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>1</span></span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>class</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>Counter</span>;
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">2</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>2</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">3</span></span><span class="ltx_text ltx_lst_keyword ltx_font_bold">classtype</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_keyword ltx_font_bold">int</span>[];+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>3</span></span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>classtype</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>int</span>[];
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">4</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>4</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">5</span></span><span class="ltx_text ltx_lst_identifier">public</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">Counter</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">create_Counter</span>()+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>5</span></span><span class='ltx_text ltx_lst_identifier'>public</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>Counter</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>create_Counter</span>()
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">6</span></span>{+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>6</span></span>{
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">7</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_keyword ltx_font_bold">return</span><span class="ltx_text ltx_lst_space"> </span>(<span class="ltx_text ltx_lst_identifier">Counter</span>)0;+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>7</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>return</span><span class='ltx_text ltx_lst_space'> </span>(<span class='ltx_text ltx_lst_identifier'>Counter</span>)0;
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">8</span></span>}+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>8</span></span>}
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">9</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>9</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">10</span></span><span class="ltx_text ltx_lst_identifier">public</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">void</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">increment</span>(<span class="ltx_text ltx_lst_identifier">Counter</span><span class="ltx_text ltx_lst_space"> </span>&amp;<span class="ltx_text ltx_lst_identifier">c</span>)+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>10</span></span><span class='ltx_text ltx_lst_identifier'>public</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>void</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>increment</span>(<span class='ltx_text ltx_lst_identifier'>Counter</span><span class='ltx_text ltx_lst_space'> </span>&amp;<span class='ltx_text ltx_lst_identifier'>c</span>)
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">11</span></span>{+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>11</span></span>{
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">12</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">c</span><span class="ltx_text ltx_lst_space"> </span>=<span class="ltx_text ltx_lst_space"> </span>(<span class="ltx_text ltx_lst_identifier">Counter</span>)((<span class="ltx_text ltx_lst_keyword ltx_font_bold">int</span>)<span class="ltx_text ltx_lst_identifier">c</span><span class="ltx_text ltx_lst_space"> </span>+<span class="ltx_text ltx_lst_space"> </span>1);+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>12</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>c</span><span class='ltx_text ltx_lst_space'> </span>=<span class='ltx_text ltx_lst_space'> </span>(<span class='ltx_text ltx_lst_identifier'>Counter</span>)((<span class='ltx_text ltx_lst_keyword ltx_font_bold'>int</span>)<span class='ltx_text ltx_lst_identifier'>c</span><span class='ltx_text ltx_lst_space'> </span>+<span class='ltx_text ltx_lst_space'> </span>1);
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">13</span></span>}+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>13</span></span>}
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">14</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>14</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">15</span></span><span class="ltx_text ltx_lst_identifier">public</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_keyword ltx_font_bold">int</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">getValue</span>(<span class="ltx_text ltx_lst_identifier">Counter</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">c</span>)+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>15</span></span><span class='ltx_text ltx_lst_identifier'>public</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>int</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>getValue</span>(<span class='ltx_text ltx_lst_identifier'>Counter</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>c</span>)
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">16</span></span>{+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>16</span></span>{
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">17</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_keyword ltx_font_bold">return</span><span class="ltx_text ltx_lst_space"> </span>(<span class="ltx_text ltx_lst_keyword ltx_font_bold">int</span>)<span class="ltx_text ltx_lst_identifier">c</span>;+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>17</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>return</span><span class='ltx_text ltx_lst_space'> </span>(<span class='ltx_text ltx_lst_keyword ltx_font_bold'>int</span>)<span class='ltx_text ltx_lst_identifier'>c</span>;
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">18</span></span>}+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>18</span></span>}
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">19</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>19</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">20</span></span><span class="ltx_text ltx_lst_identifier">public</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">void</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">destroy_Counter</span>(<span class="ltx_text ltx_lst_identifier">Counter</span><span class="ltx_text ltx_lst_space"> </span>&amp;<span class="ltx_text ltx_lst_identifier">c</span>)+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>20</span></span><span class='ltx_text ltx_lst_identifier'>public</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>void</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>destroy_Counter</span>(<span class='ltx_text ltx_lst_identifier'>Counter</span><span class='ltx_text ltx_lst_space'> </span>&amp;<span class='ltx_text ltx_lst_identifier'>c</span>)
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">21</span></span>{+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>21</span></span>{
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">22</span></span>}+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>22</span></span>}
 </div> </div>
 </div> </div>
 </figure> </figure>
-<div id="Ch9.S1.p2class="ltx_para"+<div id='Ch9.S1.p2class='ltx_para'
-<p class="ltx_p">A class file starts with the <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_keyword ltx_font_bold">class</span> keyword, followed by the name of the +<p class='ltx_p'>A class file starts with the <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_keyword ltx_font_bold'>class</span> keyword, followed by the name of the 
-class. Another keyword unique to classes is <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_keyword ltx_font_bold">classtype</span>. The statement in +class. Another keyword unique to classes is <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_keyword ltx_font_bold'>classtype</span>. The statement in 
-line 3 defines <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting"><span class="ltx_text ltx_lst_keyword ltx_font_bold">int</span>[]</span> as the classtype of class <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">Counter</span>. All +line 3 defines <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'><span class='ltx_text ltx_lst_keyword ltx_font_bold'>int</span>[]</span> as the classtype of class <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>Counter</span>. All 
-functions within the class expect an instance of <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">Counter</span>, e.g. a +functions within the class expect an instance of <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>Counter</span>, e.g. a 
-<span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting"><span class="ltx_text ltx_lst_keyword ltx_font_bold">int</span>[]</span> value, as their argument. By using the <span class="ltx_text ltx_font_smallcaps">SaC</span> <span class="ltx_text ltx_font_italic">call by reference</span>+<span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'><span class='ltx_text ltx_lst_keyword ltx_font_bold'>int</span>[]</span> value, as their argument. By using the <span class='ltx_text ltx_font_smallcaps'>SaC</span> <span class='ltx_text ltx_font_italic'>call by reference</span>
 technique, these functions are able to destructively modify an instance and thus technique, these functions are able to destructively modify an instance and thus
 its state.</p> its state.</p>
 </div> </div>
-<div id="Ch9.S1.p3class="ltx_para"+<div id='Ch9.S1.p3class='ltx_para'
-<p class="ltx_p">The function <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">increment</span> increments the value of Counter instance +<p class='ltx_p'>The function <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>increment</span> increments the value of Counter instance 
-<span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">c</span> and returns the new, modified version. A special function is +<span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>c</span> and returns the new, modified version. A special function is 
-<span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">create_Counter</span> as it can be used as a constructor function for class +<span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>create_Counter</span> as it can be used as a constructor function for class 
-<span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">Counter</span>. The counterpart is the destructor function +<span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>Counter</span>. The counterpart is the destructor function 
-<span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">destroy_Counter</span>. All class implementations <span class="ltx_text ltx_font_bold">must</span> at least have+<span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>destroy_Counter</span>. All class implementations <span class='ltx_text ltx_font_bold'>must</span> at least have
 one constructor function and a destructor function. However, the destructor one constructor function and a destructor function. However, the destructor
 function can be empty like in the example above.</p> function can be empty like in the example above.</p>
 </div> </div>
-<section id="Ch9.S1.SS1class="ltx_subsection"+<section id='Ch9.S1.SS1class='ltx_subsection'
-<h5 class="ltx_title ltx_title_subsection"+<h5 class='ltx_title ltx_title_subsection'
-<span class="ltx_tag ltx_tag_subsection">9.1.1 </span>Extending Classes</h5>+<span class='ltx_tag ltx_tag_subsection'>9.1.1 </span>Extending Classes</h5>
  
-<div id="Ch9.S1.SS1.p1class="ltx_para"+<div id='Ch9.S1.SS1.p1class='ltx_para'
-<p class="ltx_p">Like modules, it is possible to extend classes by new functions. However, a+<p class='ltx_p'>Like modules, it is possible to extend classes by new functions. However, a
 class can only be the derivative of one single other class. There is no support class can only be the derivative of one single other class. There is no support
 for multiple derivation. Furthermore, there is no possibility to extend the for multiple derivation. Furthermore, there is no possibility to extend the
 class type — extension is limited to functions. The following listing shows how class type — extension is limited to functions. The following listing shows how
-to extend our <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">Counter</span> example to a new class capable of decrementing+to extend our <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>Counter</span> example to a new class capable of decrementing
 its value:</p> its value:</p>
 </div> </div>
-<figure id="LST47class="ltx_float ltx_lstlisting ltx_role_listing"+<figure id='LST47class='ltx_float ltx_lstlisting ltx_role_listing'
-<figcaption class="ltx_caption"><span class="ltx_tag ltx_tag_float">Listing 47: </span>DecCounter class</figcaption> +<figcaption class='ltx_caption'><span class='ltx_tag ltx_tag_float'>Listing 47: </span>DecCounter class</figcaption> 
-<div class="ltx_listing ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_listing"+<div class='ltx_listing ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_listing'
-<div class="ltx_listing_data"><a href="data:text/plain;base64,Y2xhc3MgRGVjQ291bnRlciBleHRlbmRzIENvdW50ZXI7CgpwdWJsaWMgdm9pZCBkZWNyZW1lbnQo%0AQ291bnRlciAmYykKewogIGMgPSAoQ291bnRlcikoKGludCljIC0gMSk7Cn0=%0A">⬇</a></div> +<div class='ltx_listing_data'><a href='data:text/plain;base64,Y2xhc3MgRGVjQ291bnRlciBleHRlbmRzIENvdW50ZXI7CgpwdWJsaWMgdm9pZCBkZWNyZW1lbnQo%0AQ291bnRlciAmYykKewogIGMgPSAoQ291bnRlcikoKGludCljIC0gMSk7Cn0=%0A'>⬇</a></div> 
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">1</span></span><span class="ltx_text ltx_lst_keyword ltx_font_bold">class</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">DecCounter</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">extends</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">Counter</span>;+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>1</span></span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>class</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>DecCounter</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>extends</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>Counter</span>;
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">2</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>2</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">3</span></span><span class="ltx_text ltx_lst_identifier">public</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">void</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">decrement</span>(<span class="ltx_text ltx_lst_identifier">Counter</span><span class="ltx_text ltx_lst_space"> </span>&amp;<span class="ltx_text ltx_lst_identifier">c</span>)+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>3</span></span><span class='ltx_text ltx_lst_identifier'>public</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>void</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>decrement</span>(<span class='ltx_text ltx_lst_identifier'>Counter</span><span class='ltx_text ltx_lst_space'> </span>&amp;<span class='ltx_text ltx_lst_identifier'>c</span>)
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">4</span></span>{+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>4</span></span>{
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">5</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">c</span><span class="ltx_text ltx_lst_space"> </span>=<span class="ltx_text ltx_lst_space"> </span>(<span class="ltx_text ltx_lst_identifier">Counter</span>)((<span class="ltx_text ltx_lst_keyword ltx_font_bold">int</span>)<span class="ltx_text ltx_lst_identifier">c</span><span class="ltx_text ltx_lst_space"> </span>-<span class="ltx_text ltx_lst_space"> </span>1);+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>5</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>c</span><span class='ltx_text ltx_lst_space'> </span>=<span class='ltx_text ltx_lst_space'> </span>(<span class='ltx_text ltx_lst_identifier'>Counter</span>)((<span class='ltx_text ltx_lst_keyword ltx_font_bold'>int</span>)<span class='ltx_text ltx_lst_identifier'>c</span><span class='ltx_text ltx_lst_space'> </span>-<span class='ltx_text ltx_lst_space'> </span>1);
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">6</span></span>}+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>6</span></span>}
 </div> </div>
 </div> </div>
 </figure> </figure>
-<div id="Ch9.S1.SS1.p2class="ltx_para"+<div id='Ch9.S1.SS1.p2class='ltx_para'
-<p class="ltx_p">The keyword <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">extends</span> in line 1 signals that the class +<p class='ltx_p'>The keyword <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>extends</span> in line 1 signals that the class 
-<span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">DecCounter</span> is derived from <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">Counter</span>. Furthermore, there+<span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>DecCounter</span> is derived from <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>Counter</span>. Furthermore, there
 is no class type definition as the class type is as well derived from class is no class type definition as the class type is as well derived from class
-<span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">Counter</span>. However, the class type can be accessed as if it had been+<span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>Counter</span>. However, the class type can be accessed as if it had been
 defined within the current class. defined within the current class.
 </p> </p>
 </div> </div>
 </section> </section>
-<section id="Ch9.S1.SS2class="ltx_subsection"+<section id='Ch9.S1.SS2class='ltx_subsection'
-<h5 class="ltx_title ltx_title_subsection"+<h5 class='ltx_title ltx_title_subsection'
-<span class="ltx_tag ltx_tag_subsection">9.1.2 </span>States using Classes</h5>+<span class='ltx_tag ltx_tag_subsection'>9.1.2 </span>States using Classes</h5>
  
 </section> </section>
-<section id="Ch9.S1.SS3class="ltx_subsection"+<section id='Ch9.S1.SS3class='ltx_subsection'
-<h5 class="ltx_title ltx_title_subsection"+<h5 class='ltx_title ltx_title_subsection'
-<span class="ltx_tag ltx_tag_subsection">9.1.3 </span>Global Objects</h5>+<span class='ltx_tag ltx_tag_subsection'>9.1.3 </span>Global Objects</h5>
  
 </section> </section>
 </section> </section>
-<section id="Ch9.S2class="ltx_section"+<section id='Ch9.S2class='ltx_section'
-<h4 class="ltx_title ltx_title_section"+<h4 class='ltx_title ltx_title_section'
-<span class="ltx_tag ltx_tag_section">9.2 </span>Lesson: Nondeterminism through Shared State in Wihth-Loops</h4>+<span class='ltx_tag ltx_tag_section'>9.2 </span>Lesson: Nondeterminism through Shared State in Wihth-Loops</h4>
  
 </section> </section>
 </section> </section>
-<section id="Ch10class="ltx_chapter"+<section id='Ch10class='ltx_chapter'
-<h3 class="ltx_title ltx_title_chapter"+<h3 class='ltx_title ltx_title_chapter'
-<span class="ltx_tag ltx_tag_chapter">Chapter 10 </span>Interfacing with Other Languages</h3>+<span class='ltx_tag ltx_tag_chapter'>Chapter 10 </span>Interfacing with Other Languages</h3>
  
-<div id="Ch10.p1class="ltx_para"+<div id='Ch10.p1class='ltx_para'
-<p class="ltx_p">This trail explains on how to use <span class="ltx_text ltx_font_smallcaps">SaC</span> libraries from other languages +<p class='ltx_p'>This trail explains on how to use <span class='ltx_text ltx_font_smallcaps'>SaC</span> libraries from other languages 
-and how to integrate foreign libraries into <span class="ltx_text ltx_font_smallcaps">SaC</span> programs.</p>+and how to integrate foreign libraries into <span class='ltx_text ltx_font_smallcaps'>SaC</span> programs.</p>
 </div> </div>
-<div id="Ch10.p2class="ltx_para"+<div id='Ch10.p2class='ltx_para'
-<p class="ltx_p">So far, we have four lessons. One that explains how to utilise +<p class='ltx_p'>So far, we have four lessons. One that explains how to utilise 
-<em class="ltx_emph"><span class="ltx_text ltx_font_smallcaps">C</span> functions and libraries in <span class="ltx_text ltx_font_smallcaps">SaC</span></em> and three more lessons that explain how +<em class='ltx_emph'><span class='ltx_text ltx_font_smallcaps'>C</span> functions and libraries in <span class='ltx_text ltx_font_smallcaps'>SaC</span></em> and three more lessons that explain how 
-to call <span class="ltx_text ltx_font_smallcaps">SaC</span> from the languages <span class="ltx_text ltx_font_smallcaps">C</span>, <span class="ltx_text ltx_font_smallcaps">C++</span>, and <span class="ltx_text ltx_font_smallcaps">Fortran</span>, respectively.</p>+to call <span class='ltx_text ltx_font_smallcaps'>SaC</span> from the languages <span class='ltx_text ltx_font_smallcaps'>C</span>, <span class='ltx_text ltx_font_smallcaps'>C++</span>, and <span class='ltx_text ltx_font_smallcaps'>Fortran</span>, respectively.</p>
 </div> </div>
-<section id="Ch10.S1class="ltx_section"+<section id='Ch10.S1class='ltx_section'
-<h4 class="ltx_title ltx_title_section"+<h4 class='ltx_title ltx_title_section'
-<span class="ltx_tag ltx_tag_section">10.1 </span>Lesson: Calling <span class="ltx_text ltx_font_smallcaps">C</span> from <span class="ltx_text ltx_font_smallcaps">SaC</span>+<span class='ltx_tag ltx_tag_section'>10.1 </span>Lesson: Calling <span class='ltx_text ltx_font_smallcaps'>C</span> from <span class='ltx_text ltx_font_smallcaps'>SaC</span>
 </h4> </h4>
  
-<section id="Ch10.S1.SS1class="ltx_subsection"+<section id='Ch10.S1.SS1class='ltx_subsection'
-<h5 class="ltx_title ltx_title_subsection"+<h5 class='ltx_title ltx_title_subsection'
-<span class="ltx_tag ltx_tag_subsection">10.1.1 </span>Using <span class="ltx_text ltx_font_smallcaps">C</span> in the Small</h5>+<span class='ltx_tag ltx_tag_subsection'>10.1.1 </span>Using <span class='ltx_text ltx_font_smallcaps'>C</span> in the Small</h5>
  
-<div id="Ch10.S1.SS1.p1class="ltx_para"+<div id='Ch10.S1.SS1.p1class='ltx_para'
-<p class="ltx_p">To make use of an external <span class="ltx_text ltx_font_smallcaps">C</span> function from within <span class="ltx_text ltx_font_smallcaps">SaC</span>, a prototype of the +<p class='ltx_p'>To make use of an external <span class='ltx_text ltx_font_smallcaps'>C</span> function from within <span class='ltx_text ltx_font_smallcaps'>SaC</span>, a prototype of the 
-function must be defined in <span class="ltx_text ltx_font_smallcaps">SaC</span>. This is done by prefixing the function +function must be defined in <span class='ltx_text ltx_font_smallcaps'>SaC</span>. This is done by prefixing the function 
-definition by the keyword <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">extern</span> and leaving out the function body. Assume +definition by the keyword <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>extern</span> and leaving out the function body. Assume 
-having a function adding two integers specified in <span class="ltx_text ltx_font_smallcaps">C</span> as follows:</p>+having a function adding two integers specified in <span class='ltx_text ltx_font_smallcaps'>C</span> as follows:</p>
 </div> </div>
-<figure id="LST48class="ltx_float ltx_lstlisting ltx_role_listing"+<figure id='LST48class='ltx_float ltx_lstlisting ltx_role_listing'
-<figcaption class="ltx_caption"><span class="ltx_tag ltx_tag_float">Listing 48: </span>add function in C</figcaption> +<figcaption class='ltx_caption'><span class='ltx_tag ltx_tag_float'>Listing 48: </span>add function in C</figcaption> 
-<div class="ltx_listing ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_listing"+<div class='ltx_listing ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_listing'
-<div class="ltx_listing_data"><a href="data:text/plain;base64,aW50IGFkZChpbnQgeCwgaW50IHkpCnsKICByZXR1cm4geCArIHk7Cn0=%0A">⬇</a></div> +<div class='ltx_listing_data'><a href='data:text/plain;base64,aW50IGFkZChpbnQgeCwgaW50IHkpCnsKICByZXR1cm4geCArIHk7Cn0=%0A'>⬇</a></div> 
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">1</span></span><span class="ltx_text ltx_lst_keyword ltx_font_bold">int</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">add</span>(<span class="ltx_text ltx_lst_keyword ltx_font_bold">int</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">x</span>,<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_keyword ltx_font_bold">int</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">y</span>)+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>1</span></span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>int</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>add</span>(<span class='ltx_text ltx_lst_keyword ltx_font_bold'>int</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>x</span>,<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>int</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>y</span>)
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">2</span></span>{+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>2</span></span>{
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">3</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_keyword ltx_font_bold">return</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">x</span><span class="ltx_text ltx_lst_space"> </span>+<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">y</span>;+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>3</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>return</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>x</span><span class='ltx_text ltx_lst_space'> </span>+<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>y</span>;
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">4</span></span>}+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>4</span></span>}
 </div> </div>
 </div> </div>
 </figure> </figure>
-<div id="Ch10.S1.SS1.p2class="ltx_para"+<div id='Ch10.S1.SS1.p2class='ltx_para'
-<p class="ltx_p">Save the listing to file <span class="ltx_text ltx_font_typewriter">addfun.c</span> and compile it by <span class="ltx_text ltx_font_typewriter">gcc -c addfun.c</span>+<p class='ltx_p'>Save the listing to file <span class='ltx_text ltx_font_typewriter'>addfun.c</span> and compile it by <span class='ltx_text ltx_font_typewriter'>gcc -c addfun.c</span>
 supposed you are using the GNU compiler collection. This will generate a single supposed you are using the GNU compiler collection. This will generate a single
-<span class="ltx_text ltx_font_typewriter">addfun.o</span> file. This can now be used from within <span class="ltx_text ltx_font_smallcaps">SaC</span>:</p>+<span class='ltx_text ltx_font_typewriter'>addfun.o</span> file. This can now be used from within <span class='ltx_text ltx_font_smallcaps'>SaC</span>:</p>
 </div> </div>
-<figure id="LST49class="ltx_float ltx_lstlisting ltx_role_listing"+<figure id='LST49class='ltx_float ltx_lstlisting ltx_role_listing'
-<figcaption class="ltx_caption"><span class="ltx_tag ltx_tag_float">Listing 49: </span>add function used by SaC</figcaption> +<figcaption class='ltx_caption'><span class='ltx_tag ltx_tag_float'>Listing 49: </span>add function used by SaC</figcaption> 
-<div class="ltx_listing ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_listing"+<div class='ltx_listing ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_listing'
-<div class="ltx_listing_data"><a href="data:text/plain;base64,ZXh0ZXJuIGludCBhZGQoaW50IHgsIGludCB5KTsKICAjcHJhZ21hIGV4dGVybmFsICJhZGRmdW4u%0AbyIKCmludCBtYWluKCkKewogIFN0ZElPOnByaW50ZigiMSBwbHVzIDEgaXMgJWQiLCBhZGQoIDEs%0AIDEpKTsKCiAgcmV0dXJuIDA7Cn0=%0A">⬇</a></div> +<div class='ltx_listing_data'><a href='data:text/plain;base64,ZXh0ZXJuIGludCBhZGQoaW50IHgsIGludCB5KTsKICAjcHJhZ21hIGV4dGVybmFsICJhZGRmdW4u%0AbyIKCmludCBtYWluKCkKewogIFN0ZElPOnByaW50ZigiMSBwbHVzIDEgaXMgJWQiLCBhZGQoIDEs%0AIDEpKTsKCiAgcmV0dXJuIDA7Cn0=%0A'>⬇</a></div> 
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">1</span></span><span class="ltx_text ltx_lst_identifier">extern</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_keyword ltx_font_bold">int</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">add</span>(<span class="ltx_text ltx_lst_keyword ltx_font_bold">int</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">x</span>,<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_keyword ltx_font_bold">int</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">y</span>);+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>1</span></span><span class='ltx_text ltx_lst_identifier'>extern</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>int</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>add</span>(<span class='ltx_text ltx_lst_keyword ltx_font_bold'>int</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>x</span>,<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>int</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>y</span>);
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">2</span></span><span class="ltx_text ltx_lst_space">  </span>#<span class="ltx_text ltx_lst_keyword ltx_font_bold">pragma</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_keyword ltx_font_bold">external</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_string">”addfun.o”</span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>2</span></span><span class='ltx_text ltx_lst_space'>  </span>#<span class='ltx_text ltx_lst_keyword ltx_font_bold'>pragma</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>external</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_string'>”addfun.o”</span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">3</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>3</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">4</span></span><span class="ltx_text ltx_lst_keyword ltx_font_bold">int</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">main</span>()+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>4</span></span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>int</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>main</span>()
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">5</span></span>{+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>5</span></span>{
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">6</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">StdIO</span>:<span class="ltx_text ltx_lst_identifier">printf</span>(<span class="ltx_text ltx_lst_string">”1<span class="ltx_text ltx_lst_space"> </span>plus<span class="ltx_text ltx_lst_space"> </span>1<span class="ltx_text ltx_lst_space"> </span>is<span class="ltx_text ltx_lst_space"> </span>%d”</span>,<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">add</span>(<span class="ltx_text ltx_lst_space"> </span>1,<span class="ltx_text ltx_lst_space"> </span>1));+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>6</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>StdIO</span>:<span class='ltx_text ltx_lst_identifier'>printf</span>(<span class='ltx_text ltx_lst_string'>”1<span class='ltx_text ltx_lst_space'> </span>plus<span class='ltx_text ltx_lst_space'> </span>1<span class='ltx_text ltx_lst_space'> </span>is<span class='ltx_text ltx_lst_space'> </span>%d”</span>,<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>add</span>(<span class='ltx_text ltx_lst_space'> </span>1,<span class='ltx_text ltx_lst_space'> </span>1));
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">7</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>7</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">8</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_keyword ltx_font_bold">return</span><span class="ltx_text ltx_lst_space"> </span>0;+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>8</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>return</span><span class='ltx_text ltx_lst_space'> </span>0;
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">9</span></span>}+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>9</span></span>}
 </div> </div>
 </div> </div>
 </figure> </figure>
-<div id="Ch10.S1.SS1.p3class="ltx_para ltx_noindent"+<div id='Ch10.S1.SS1.p3class='ltx_para ltx_noindent'
-<p class="ltx_p">The keyword <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_keyword ltx_font_bold">external</span> directs the <span class="ltx_text ltx_font_smallcaps">SaC</span> compiler to assume an +<p class='ltx_p'>The keyword <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_keyword ltx_font_bold'>external</span> directs the <span class='ltx_text ltx_font_smallcaps'>SaC</span> compiler to assume an 
-external definition of function <span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier">add</span>. The special directive +external definition of function <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>add</span>. The special directive 
-<span class="ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting">#<span class="ltx_text ltx_lst_keyword ltx_font_bold">pragma</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_keyword ltx_font_bold">external</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_string">”addfun.o”</span></span> makes the <span class="ltx_text ltx_font_smallcaps">SaC</span> linking process add +<span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>#<span class='ltx_text ltx_lst_keyword ltx_font_bold'>pragma</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>external</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_string'>”addfun.o”</span></span> makes the <span class='ltx_text ltx_font_smallcaps'>SaC</span> linking process add 
-<span class="ltx_text ltx_font_typewriter">addfun.o</span> to the executable or module created.</p>+<span class='ltx_text ltx_font_typewriter'>addfun.o</span> to the executable or module created.</p>
 </div> </div>
-<div id="Ch10.S1.SS1.p4class="ltx_para"+<div id='Ch10.S1.SS1.p4class='ltx_para'
-<p class="ltx_p">Save the listing above to a file <span class="ltx_text ltx_font_typewriter">addfun.sac</span> and compile it by using +<p class='ltx_p'>Save the listing above to a file <span class='ltx_text ltx_font_typewriter'>addfun.sac</span> and compile it by using 
-<span class="ltx_text ltx_font_typewriter">sac2c -o addfun addfun.sac</span>. The resulting executable will contain both, the +<span class='ltx_text ltx_font_typewriter'>sac2c -o addfun addfun.sac</span>. The resulting executable will contain both, the 
-<span class="ltx_text ltx_font_smallcaps">SaC</span> and <span class="ltx_text ltx_font_smallcaps">C</span> part of the program above.</p>+<span class='ltx_text ltx_font_smallcaps'>SaC</span> and <span class='ltx_text ltx_font_smallcaps'>C</span> part of the program above.</p>
 </div> </div>
 </section> </section>
-<section id="Ch10.S1.SS2class="ltx_subsection"+<section id='Ch10.S1.SS2class='ltx_subsection'
-<h5 class="ltx_title ltx_title_subsection"+<h5 class='ltx_title ltx_title_subsection'
-<span class="ltx_tag ltx_tag_subsection">10.1.2 </span>Stateful <span class="ltx_text ltx_font_smallcaps">C</span> functions</h5>+<span class='ltx_tag ltx_tag_subsection'>10.1.2 </span>Stateful <span class='ltx_text ltx_font_smallcaps'>C</span> functions</h5>
  
-<div id="Ch10.S1.SS2.p1class="ltx_para"+<div id='Ch10.S1.SS2.p1class='ltx_para'
-<p class="ltx_p">dudu</p>+<p class='ltx_p'>dudu</p>
 </div> </div>
 </section> </section>
-<section id="Ch10.S1.SS3class="ltx_subsection"+<section id='Ch10.S1.SS3class='ltx_subsection'
-<h5 class="ltx_title ltx_title_subsection"+<h5 class='ltx_title ltx_title_subsection'
-<span class="ltx_tag ltx_tag_subsection">10.1.3 </span>Using pragma directives</h5>+<span class='ltx_tag ltx_tag_subsection'>10.1.3 </span>Using pragma directives</h5>
  
-<div id="Ch10.S1.SS3.p1class="ltx_para"+<div id='Ch10.S1.SS3.p1class='ltx_para'
-<p class="ltx_p">dada+<p class='ltx_p'>dada
 </p> </p>
 </div> </div>
 </section> </section>
-<section id="Ch10.S1.SS4class="ltx_subsection"+<section id='Ch10.S1.SS4class='ltx_subsection'
-<h5 class="ltx_title ltx_title_subsection"+<h5 class='ltx_title ltx_title_subsection'
-<span class="ltx_tag ltx_tag_subsection">10.1.4 </span>Example TermFile</h5>+<span class='ltx_tag ltx_tag_subsection'>10.1.4 </span>Example TermFile</h5>
  
-<figure id="LST50class="ltx_float ltx_lstlisting ltx_role_listing"+<figure id='LST50class='ltx_float ltx_lstlisting ltx_role_listing'
-<figcaption class="ltx_caption"><span class="ltx_tag ltx_tag_float">Listing 50: </span>class TermFile</figcaption> +<figcaption class='ltx_caption'><span class='ltx_tag ltx_tag_float'>Listing 50: </span>class TermFile</figcaption> 
-<div class="ltx_listing ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_listing"+<div class='ltx_listing ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_listing'
-<div class="ltx_listing_data"><a href="data:text/plain;base64,Y2xhc3MgVGVybUZpbGU7CgpleHRlcm4gY2xhc3N0eXBlOwoKZnJvbSBUZXJtaW5hbCB1c2UgVGhl%0AVGVybWluYWw7CmZyb20gU3RyaW5nIHVzZSBzdHJpbmc7CgpleHRlcm4gb2JqZGVmIFRlcm1GaWxl%0AIHN0ZGluOwogICNwcmFnbWEgZXh0ZXJuYWwgIlNBQ3N0ZGluLm8iCiAgI3ByYWdtYSBsaW5rbmFt%0AZSAiU0FDc3RkaW4iCiAgI3ByYWdtYSBlZmZlY3QgVGhlVGVybWluYWwKCmV4dGVybiBvYmpkZWYg%0AVGVybUZpbGUgc3Rkb3V0OwogICNwcmFnbWEgZXh0ZXJuYWwgIlNBQ3N0ZG91dC5vIgogICNwcmFn%0AbWEgbGlua25hbWUgIlNBQ3N0ZG91dCIKICAjcHJhZ21hIGVmZmVjdCBUaGVUZXJtaW5hbAoKZXh0%0AZXJuIG9iamRlZiBUZXJtRmlsZSBzdGRlcnI7CiAgI3ByYWdtYSBleHRlcm5hbCAiU0FDc3RkZXJy%0ALm8iCiAgI3ByYWdtYSBsaW5rbmFtZSAiU0FDc3RkZXJyIgogICNwcmFnbWEgZWZmZWN0IFRoZVRl%0Acm1pbmFsCgogIC8qCiAgICogIEVhY2ggZnVuY3Rpb24gb2YgY2xhc3MgVGVybUZpbGUgZXhpc3Rz%0AIGluIHR3byB2ZXJzaW9ucy4gT25lIGV4cGVjdHMKICAgKiAgYW4gSS9PIHN0cmVhbSBhcyBhbiBl%0AeHBsaWNpdCBhcmd1bWVudCwgdGhlIG90aGVyIHdyaXRlcyBpbXBsaWNpdGx5CiAgICogIHRvIHN0%0AZG91dCBvciByZWFkcyBpbXBsaWNpdGx5IGZyb20gc3RkaW4sIHJlc3BlY3RpdmVseS4KICAgKi8K%0ACiAgLyoKICAgKiAgRnVuY3Rpb25zIGZvciBsb3ctbGV2ZWwgaW5wdXQgLyBvdXRwdXQgb3BlcmF0%0AaW9ucwogICAqLwoKICAvKgogICAqIFB1dCB0aGUgY2hhcmFjdGVyIEMgdG8gdGhlIG91dHB1dCBz%0AdHJlYW0gU1RSRUFNIHdoaWNoIG11c3QgYmUKICAgKiBlaXRoZXIgc3Rkb3V0IG9yIHN0ZGVyci4K%0AICAgKi8KCiAgZXh0ZXJuIHZvaWQgZnB1dGMoY2hhciBDLCBUZXJtRmlsZSAmU1RSRUFNKTsKICAg%0AICNwcmFnbWEgZXh0ZXJuYWwKICAgICNwcmFnbWEgZWZmZWN0IFRoZVRlcm1pbmFsCgogIGV4dGVy%0AbiB2b2lkIHB1dGMoY2hhciBDKTsKICAgICNwcmFnbWEgZXh0ZXJuYWwgIlNBQ3B1dGMubyIKICAg%0AICNwcmFnbWEgZWZmZWN0IFRoZVRlcm1pbmFsLCBzdGRvdXQKICAgICNwcmFnbWEgbGlua25hbWUg%0AIlNBQ3B1dGMiCgogIC8qCiAgICogUHV0IHRoZSBjaGFyYWN0ZXIgQyBiYWNrIHRvIHRoZSBpbnB1%0AdCBzdHJlYW0gU1RSRUFNCiAgICogd2hpY2ggbXVzdCBiZSBzdGRpbiBmb3IgZnVydGhlciByZWFk%0AIG9wZXJhdGlvbnMuCiAgICogT25seSBvbmUgY2hhcmFjdGVyIG1heSBiZSBwdXQgYmFjayBiZXR3%0AZWVuIHR3bwogICAqIGNvbnNlY3V0aXZlIHJlYWQgb3BlcmF0aW9ucywgb3RoZXJ3aXNlIHRoZSBj%0AaGFyYWN0ZXIgcHV0IGJhY2sgZmlyc3QKICAgKiBpcyBvdmVyd3JpdHRlbi4KICAgKi8KCiAgZXh0%0AZXJuIHZvaWQgdW5nZXRjKGNoYXIgQywgVGVybUZpbGUgJlNUUkVBTSk7CiAgICAjcHJhZ21hIGV4%0AdGVybmFsCiAgICAjcHJhZ21hIGVmZmVjdCBUaGVUZXJtaW5hbAogIGV4dGVybiB2b2lkIHVuZ2V0%0AYyhjaGFyIEMpOwogICAgI3ByYWdtYSBleHRlcm5hbCAiU0FDdW5nZXRjLm8iCiAgICAjcHJhZ21h%0AIGVmZmVjdCBUaGVUZXJtaW5hbCwgc3RkaW4KICAgICNwcmFnbWEgbGlua25hbWUgIlNBQ3VuZ2V0%0AYyIKCiAgLyoKICAgKiAgRnVuY3Rpb25zIGZvciBmb3JtYXR0ZWQgaW5wdXQgLyBvdXRwdXQgb3Bl%0AcmF0aW9ucwogICAqLwoKICAvKgogICAqIFByaW50IGZvcm1hdHRlZCBvdXRwdXQgdG8gU1RSRUFN%0AIHdoaWNoIG11c3QgYmUgb3BlbiBmb3Igd3JpdGluZy4KICAgKiBUaGUgc3ludGF4IG9mIGZvcm1h%0AdCBzdHJpbmdzIGlzIGlkZW50aWNhbCB0byB0aGF0IGtub3duIGZyb20gQy4KICAgKiBUaGlzIGZ1%0AbmN0aW9uIG1heSBiZSB1c2VkIHRvIHByaW50IHZhbHVlcyBvZiB0eXBlcwogICAqIGNoYXIsIHN0%0AcmluZywgaW50LCBmbG9hdCwgYW5kIGRvdWJsZS4KICAgKi8KCiAgZXh0ZXJuIHZvaWQgZnByaW50%0AZihUZXJtRmlsZSAmU1RSRUFNLCBzdHJpbmcgRk9STUFULCAuLi4pOwogICAgI3ByYWdtYSBleHRl%0Acm5hbCAiU0FDZnByaW50Zl9URi5vIgogICAgI3ByYWdtYSBlZmZlY3QgVGhlVGVybWluYWwKICAg%0AICNwcmFnbWEgbGlua25hbWUgIlNBQ2ZwcmludGZfVEYiCiAgZXh0ZXJuIHZvaWQgIHByaW50Zihz%0AdHJpbmcgRk9STUFULCAuLi4pOwogICAgI3ByYWdtYSBleHRlcm5hbCAiU0FDcHJpbnRmLm8iCiAg%0AICAjcHJhZ21hIGVmZmVjdCBUaGVUZXJtaW5hbCwgc3Rkb3V0CiAgICAjcHJhZ21hIGxpbmtuYW1l%0AICJTQUNwcmludGYiCgogIC8qCiAgICogU2NhbiB0aGUgZ2l2ZW4gc3RyZWFtIFNUUkVBTSBjb25j%0AZXJuaW5nIHRoZSBmb3JtYXQgc3RyaW5nIEZPUk1BVC4KICAgKiBUaGUgc3ludGF4IG9mIGZvcm1h%0AdCBzdHJpbmdzIGlzIGlkZW50aWNhbCB0byBDIGV4Y2VwdCB0aGF0IHRoZQogICAqIHN0cmluZyBj%0Ab252ZXJzaW9uIHNwZWNpZmllciAlcyBpcyBub3Qgc3VwcG9ydGVkLgogICAqIFRoaXMgZnVuY3Rp%0Ab24gbWF5IGJlIHVzZWQgdG8gc2NhbiB2YWx1ZXMgb2YgdHlwZXMKICAgKiBjaGFyLCBpbnQsIGZs%0Ab2F0LCBhbmQgZG91YmxlLiBUbyBzY2FuIHN0cmluZ3MgdXNlIGVpdGhlciBmc2NhbnMKICAgKiBv%0AciBmc2NhbmwsIHJlc3BlY3RpdmVseS4KICAgKiBUaGUgaW50IHJlc3VsdCBnaXZlcyB0aGUgbnVt%0AYmVyIG9mIHN1Y2Nlc3NmdWxseSBwZXJmb3JtZWQKICAgKiBjb252ZXJzaW9ucy4KICAgKi8KCiAg%0AZXh0ZXJuIGludCwgLi4uIGZzY2FuZihUZXJtRmlsZSAmU1RSRUFNLCBzdHJpbmcgRk9STUFUKTsK%0AICAgICNwcmFnbWEgZXh0ZXJuYWwKICAgICNwcmFnbWEgZWZmZWN0IFRoZVRlcm1pbmFsCiAgZXh0%0AZXJuIGludCwgLi4uICBzY2FuZihzdHJpbmcgRk9STUFUKTsKICAgICNwcmFnbWEgZXh0ZXJuYWwK%0AICAgICNwcmFnbWEgZWZmZWN0IFRoZVRlcm1pbmFsLCBzdGRpbgoKICAgLyoKICAgICogUmVhZCB0%0AaGUgbmV4dCBjaGFyYWN0ZXIgc3RyaW5nIGZyb20gdGhlIGlucHV0IHN0cmVhbSBTVFJFQU0uIFN0%0AcmluZ3MKICAgICogYXJlIGRlbGltaXRlZCBieSBhbnkgd2hpdGVzcGFjZSBjaGFyYWN0ZXIgaW5j%0AbHVkaW5nIHRoZQogICAgKiBlbmQtb2YtZmlsZSBzeW1ib2wuIEFsd2F5cyByZWFkIGF0IG1vc3Qg%0ATUFYIGNoYXJhY3RlcnMuCiAgICAqIFVwb24gZmFpbHVyZSBhbiBlbXB0eSBzdHJpbmcgaXMgcmV0%0AdXJuZWQuCiAgICAqLwoKICBleHRlcm4gc3RyaW5nIGZzY2FucyhUZXJtRmlsZSAmU1RSRUFNLCBp%0AbnQgTUFYKTsKICAgICNwcmFnbWEgZXh0ZXJuYWwgInRlcm1fZnNjYW5zLm8iCiAgICAjcHJhZ21h%0AIGVmZmVjdCBUaGVUZXJtaW5hbAogICAgI3ByYWdtYSBsaW5rbmFtZSAidGVybV9mc2NhbnMiCiAg%0AZXh0ZXJuIHN0cmluZyAgc2NhbnMoaW50IE1BWCk7CiAgICAjcHJhZ21hIGV4dGVybmFsICJ0ZXJt%0AX3NjYW5zLm8iCiAgICAjcHJhZ21hIGVmZmVjdCBUaGVUZXJtaW5hbCwgc3RkaW4KICAgICNwcmFn%0AbWEgbGlua25hbWUgInRlcm1fc2NhbnMi%0A">⬇</a></div> +<div class='ltx_listing_data'><a href='data:text/plain;base64,Y2xhc3MgVGVybUZpbGU7CgpleHRlcm4gY2xhc3N0eXBlOwoKZnJvbSBUZXJtaW5hbCB1c2UgVGhl%0AVGVybWluYWw7CmZyb20gU3RyaW5nIHVzZSBzdHJpbmc7CgpleHRlcm4gb2JqZGVmIFRlcm1GaWxl%0AIHN0ZGluOwogICNwcmFnbWEgZXh0ZXJuYWwgIlNBQ3N0ZGluLm8iCiAgI3ByYWdtYSBsaW5rbmFt%0AZSAiU0FDc3RkaW4iCiAgI3ByYWdtYSBlZmZlY3QgVGhlVGVybWluYWwKCmV4dGVybiBvYmpkZWYg%0AVGVybUZpbGUgc3Rkb3V0OwogICNwcmFnbWEgZXh0ZXJuYWwgIlNBQ3N0ZG91dC5vIgogICNwcmFn%0AbWEgbGlua25hbWUgIlNBQ3N0ZG91dCIKICAjcHJhZ21hIGVmZmVjdCBUaGVUZXJtaW5hbAoKZXh0%0AZXJuIG9iamRlZiBUZXJtRmlsZSBzdGRlcnI7CiAgI3ByYWdtYSBleHRlcm5hbCAiU0FDc3RkZXJy%0ALm8iCiAgI3ByYWdtYSBsaW5rbmFtZSAiU0FDc3RkZXJyIgogICNwcmFnbWEgZWZmZWN0IFRoZVRl%0Acm1pbmFsCgogIC8qCiAgICogIEVhY2ggZnVuY3Rpb24gb2YgY2xhc3MgVGVybUZpbGUgZXhpc3Rz%0AIGluIHR3byB2ZXJzaW9ucy4gT25lIGV4cGVjdHMKICAgKiAgYW4gSS9PIHN0cmVhbSBhcyBhbiBl%0AeHBsaWNpdCBhcmd1bWVudCwgdGhlIG90aGVyIHdyaXRlcyBpbXBsaWNpdGx5CiAgICogIHRvIHN0%0AZG91dCBvciByZWFkcyBpbXBsaWNpdGx5IGZyb20gc3RkaW4sIHJlc3BlY3RpdmVseS4KICAgKi8K%0ACiAgLyoKICAgKiAgRnVuY3Rpb25zIGZvciBsb3ctbGV2ZWwgaW5wdXQgLyBvdXRwdXQgb3BlcmF0%0AaW9ucwogICAqLwoKICAvKgogICAqIFB1dCB0aGUgY2hhcmFjdGVyIEMgdG8gdGhlIG91dHB1dCBz%0AdHJlYW0gU1RSRUFNIHdoaWNoIG11c3QgYmUKICAgKiBlaXRoZXIgc3Rkb3V0IG9yIHN0ZGVyci4K%0AICAgKi8KCiAgZXh0ZXJuIHZvaWQgZnB1dGMoY2hhciBDLCBUZXJtRmlsZSAmU1RSRUFNKTsKICAg%0AICNwcmFnbWEgZXh0ZXJuYWwKICAgICNwcmFnbWEgZWZmZWN0IFRoZVRlcm1pbmFsCgogIGV4dGVy%0AbiB2b2lkIHB1dGMoY2hhciBDKTsKICAgICNwcmFnbWEgZXh0ZXJuYWwgIlNBQ3B1dGMubyIKICAg%0AICNwcmFnbWEgZWZmZWN0IFRoZVRlcm1pbmFsLCBzdGRvdXQKICAgICNwcmFnbWEgbGlua25hbWUg%0AIlNBQ3B1dGMiCgogIC8qCiAgICogUHV0IHRoZSBjaGFyYWN0ZXIgQyBiYWNrIHRvIHRoZSBpbnB1%0AdCBzdHJlYW0gU1RSRUFNCiAgICogd2hpY2ggbXVzdCBiZSBzdGRpbiBmb3IgZnVydGhlciByZWFk%0AIG9wZXJhdGlvbnMuCiAgICogT25seSBvbmUgY2hhcmFjdGVyIG1heSBiZSBwdXQgYmFjayBiZXR3%0AZWVuIHR3bwogICAqIGNvbnNlY3V0aXZlIHJlYWQgb3BlcmF0aW9ucywgb3RoZXJ3aXNlIHRoZSBj%0AaGFyYWN0ZXIgcHV0IGJhY2sgZmlyc3QKICAgKiBpcyBvdmVyd3JpdHRlbi4KICAgKi8KCiAgZXh0%0AZXJuIHZvaWQgdW5nZXRjKGNoYXIgQywgVGVybUZpbGUgJlNUUkVBTSk7CiAgICAjcHJhZ21hIGV4%0AdGVybmFsCiAgICAjcHJhZ21hIGVmZmVjdCBUaGVUZXJtaW5hbAogIGV4dGVybiB2b2lkIHVuZ2V0%0AYyhjaGFyIEMpOwogICAgI3ByYWdtYSBleHRlcm5hbCAiU0FDdW5nZXRjLm8iCiAgICAjcHJhZ21h%0AIGVmZmVjdCBUaGVUZXJtaW5hbCwgc3RkaW4KICAgICNwcmFnbWEgbGlua25hbWUgIlNBQ3VuZ2V0%0AYyIKCiAgLyoKICAgKiAgRnVuY3Rpb25zIGZvciBmb3JtYXR0ZWQgaW5wdXQgLyBvdXRwdXQgb3Bl%0AcmF0aW9ucwogICAqLwoKICAvKgogICAqIFByaW50IGZvcm1hdHRlZCBvdXRwdXQgdG8gU1RSRUFN%0AIHdoaWNoIG11c3QgYmUgb3BlbiBmb3Igd3JpdGluZy4KICAgKiBUaGUgc3ludGF4IG9mIGZvcm1h%0AdCBzdHJpbmdzIGlzIGlkZW50aWNhbCB0byB0aGF0IGtub3duIGZyb20gQy4KICAgKiBUaGlzIGZ1%0AbmN0aW9uIG1heSBiZSB1c2VkIHRvIHByaW50IHZhbHVlcyBvZiB0eXBlcwogICAqIGNoYXIsIHN0%0AcmluZywgaW50LCBmbG9hdCwgYW5kIGRvdWJsZS4KICAgKi8KCiAgZXh0ZXJuIHZvaWQgZnByaW50%0AZihUZXJtRmlsZSAmU1RSRUFNLCBzdHJpbmcgRk9STUFULCAuLi4pOwogICAgI3ByYWdtYSBleHRl%0Acm5hbCAiU0FDZnByaW50Zl9URi5vIgogICAgI3ByYWdtYSBlZmZlY3QgVGhlVGVybWluYWwKICAg%0AICNwcmFnbWEgbGlua25hbWUgIlNBQ2ZwcmludGZfVEYiCiAgZXh0ZXJuIHZvaWQgIHByaW50Zihz%0AdHJpbmcgRk9STUFULCAuLi4pOwogICAgI3ByYWdtYSBleHRlcm5hbCAiU0FDcHJpbnRmLm8iCiAg%0AICAjcHJhZ21hIGVmZmVjdCBUaGVUZXJtaW5hbCwgc3Rkb3V0CiAgICAjcHJhZ21hIGxpbmtuYW1l%0AICJTQUNwcmludGYiCgogIC8qCiAgICogU2NhbiB0aGUgZ2l2ZW4gc3RyZWFtIFNUUkVBTSBjb25j%0AZXJuaW5nIHRoZSBmb3JtYXQgc3RyaW5nIEZPUk1BVC4KICAgKiBUaGUgc3ludGF4IG9mIGZvcm1h%0AdCBzdHJpbmdzIGlzIGlkZW50aWNhbCB0byBDIGV4Y2VwdCB0aGF0IHRoZQogICAqIHN0cmluZyBj%0Ab252ZXJzaW9uIHNwZWNpZmllciAlcyBpcyBub3Qgc3VwcG9ydGVkLgogICAqIFRoaXMgZnVuY3Rp%0Ab24gbWF5IGJlIHVzZWQgdG8gc2NhbiB2YWx1ZXMgb2YgdHlwZXMKICAgKiBjaGFyLCBpbnQsIGZs%0Ab2F0LCBhbmQgZG91YmxlLiBUbyBzY2FuIHN0cmluZ3MgdXNlIGVpdGhlciBmc2NhbnMKICAgKiBv%0AciBmc2NhbmwsIHJlc3BlY3RpdmVseS4KICAgKiBUaGUgaW50IHJlc3VsdCBnaXZlcyB0aGUgbnVt%0AYmVyIG9mIHN1Y2Nlc3NmdWxseSBwZXJmb3JtZWQKICAgKiBjb252ZXJzaW9ucy4KICAgKi8KCiAg%0AZXh0ZXJuIGludCwgLi4uIGZzY2FuZihUZXJtRmlsZSAmU1RSRUFNLCBzdHJpbmcgRk9STUFUKTsK%0AICAgICNwcmFnbWEgZXh0ZXJuYWwKICAgICNwcmFnbWEgZWZmZWN0IFRoZVRlcm1pbmFsCiAgZXh0%0AZXJuIGludCwgLi4uICBzY2FuZihzdHJpbmcgRk9STUFUKTsKICAgICNwcmFnbWEgZXh0ZXJuYWwK%0AICAgICNwcmFnbWEgZWZmZWN0IFRoZVRlcm1pbmFsLCBzdGRpbgoKICAgLyoKICAgICogUmVhZCB0%0AaGUgbmV4dCBjaGFyYWN0ZXIgc3RyaW5nIGZyb20gdGhlIGlucHV0IHN0cmVhbSBTVFJFQU0uIFN0%0AcmluZ3MKICAgICogYXJlIGRlbGltaXRlZCBieSBhbnkgd2hpdGVzcGFjZSBjaGFyYWN0ZXIgaW5j%0AbHVkaW5nIHRoZQogICAgKiBlbmQtb2YtZmlsZSBzeW1ib2wuIEFsd2F5cyByZWFkIGF0IG1vc3Qg%0ATUFYIGNoYXJhY3RlcnMuCiAgICAqIFVwb24gZmFpbHVyZSBhbiBlbXB0eSBzdHJpbmcgaXMgcmV0%0AdXJuZWQuCiAgICAqLwoKICBleHRlcm4gc3RyaW5nIGZzY2FucyhUZXJtRmlsZSAmU1RSRUFNLCBp%0AbnQgTUFYKTsKICAgICNwcmFnbWEgZXh0ZXJuYWwgInRlcm1fZnNjYW5zLm8iCiAgICAjcHJhZ21h%0AIGVmZmVjdCBUaGVUZXJtaW5hbAogICAgI3ByYWdtYSBsaW5rbmFtZSAidGVybV9mc2NhbnMiCiAg%0AZXh0ZXJuIHN0cmluZyAgc2NhbnMoaW50IE1BWCk7CiAgICAjcHJhZ21hIGV4dGVybmFsICJ0ZXJt%0AX3NjYW5zLm8iCiAgICAjcHJhZ21hIGVmZmVjdCBUaGVUZXJtaW5hbCwgc3RkaW4KICAgICNwcmFn%0AbWEgbGlua25hbWUgInRlcm1fc2NhbnMi%0A'>⬇</a></div> 
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">1</span></span><span class="ltx_text ltx_lst_keyword ltx_font_bold">class</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">TermFile</span>;+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>1</span></span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>class</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>TermFile</span>;
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">2</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>2</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">3</span></span><span class="ltx_text ltx_lst_identifier">extern</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_keyword ltx_font_bold">classtype</span>;+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>3</span></span><span class='ltx_text ltx_lst_identifier'>extern</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>classtype</span>;
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">4</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>4</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">5</span></span><span class="ltx_text ltx_lst_identifier">from</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">Terminal</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_keyword ltx_font_bold">use</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">TheTerminal</span>;+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>5</span></span><span class='ltx_text ltx_lst_identifier'>from</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>Terminal</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>use</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>TheTerminal</span>;
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">6</span></span><span class="ltx_text ltx_lst_identifier">from</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">String</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_keyword ltx_font_bold">use</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">string</span>;+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>6</span></span><span class='ltx_text ltx_lst_identifier'>from</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>String</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>use</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>string</span>;
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">7</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>7</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">8</span></span><span class="ltx_text ltx_lst_identifier">extern</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">ob</span>j<span class="ltx_text ltx_lst_identifier">def</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">TermFile</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">stdin</span>;+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>8</span></span><span class='ltx_text ltx_lst_identifier'>extern</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>ob</span>j<span class='ltx_text ltx_lst_identifier'>def</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>TermFile</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>stdin</span>;
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">9</span></span><span class="ltx_text ltx_lst_space">  </span>#<span class="ltx_text ltx_lst_keyword ltx_font_bold">pragma</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_keyword ltx_font_bold">external</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_string">”SACstdin.o”</span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>9</span></span><span class='ltx_text ltx_lst_space'>  </span>#<span class='ltx_text ltx_lst_keyword ltx_font_bold'>pragma</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>external</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_string'>”SACstdin.o”</span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">10</span></span><span class="ltx_text ltx_lst_space">  </span>#<span class="ltx_text ltx_lst_keyword ltx_font_bold">pragma</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">linkname</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_string">”SACstdin”</span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>10</span></span><span class='ltx_text ltx_lst_space'>  </span>#<span class='ltx_text ltx_lst_keyword ltx_font_bold'>pragma</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>linkname</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_string'>”SACstdin”</span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">11</span></span><span class="ltx_text ltx_lst_space">  </span>#<span class="ltx_text ltx_lst_keyword ltx_font_bold">pragma</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">effect</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">TheTerminal</span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>11</span></span><span class='ltx_text ltx_lst_space'>  </span>#<span class='ltx_text ltx_lst_keyword ltx_font_bold'>pragma</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>effect</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>TheTerminal</span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">12</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>12</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">13</span></span><span class="ltx_text ltx_lst_identifier">extern</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">ob</span>j<span class="ltx_text ltx_lst_identifier">def</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">TermFile</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">stdout</span>;+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>13</span></span><span class='ltx_text ltx_lst_identifier'>extern</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>ob</span>j<span class='ltx_text ltx_lst_identifier'>def</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>TermFile</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>stdout</span>;
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">14</span></span><span class="ltx_text ltx_lst_space">  </span>#<span class="ltx_text ltx_lst_keyword ltx_font_bold">pragma</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_keyword ltx_font_bold">external</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_string">”SACstdout.o”</span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>14</span></span><span class='ltx_text ltx_lst_space'>  </span>#<span class='ltx_text ltx_lst_keyword ltx_font_bold'>pragma</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>external</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_string'>”SACstdout.o”</span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">15</span></span><span class="ltx_text ltx_lst_space">  </span>#<span class="ltx_text ltx_lst_keyword ltx_font_bold">pragma</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">linkname</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_string">”SACstdout”</span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>15</span></span><span class='ltx_text ltx_lst_space'>  </span>#<span class='ltx_text ltx_lst_keyword ltx_font_bold'>pragma</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>linkname</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_string'>”SACstdout”</span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">16</span></span><span class="ltx_text ltx_lst_space">  </span>#<span class="ltx_text ltx_lst_keyword ltx_font_bold">pragma</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">effect</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">TheTerminal</span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>16</span></span><span class='ltx_text ltx_lst_space'>  </span>#<span class='ltx_text ltx_lst_keyword ltx_font_bold'>pragma</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>effect</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>TheTerminal</span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">17</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>17</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">18</span></span><span class="ltx_text ltx_lst_identifier">extern</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">ob</span>j<span class="ltx_text ltx_lst_identifier">def</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">TermFile</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">stderr</span>;+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>18</span></span><span class='ltx_text ltx_lst_identifier'>extern</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>ob</span>j<span class='ltx_text ltx_lst_identifier'>def</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>TermFile</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>stderr</span>;
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">19</span></span><span class="ltx_text ltx_lst_space">  </span>#<span class="ltx_text ltx_lst_keyword ltx_font_bold">pragma</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_keyword ltx_font_bold">external</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_string">”SACstderr.o”</span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>19</span></span><span class='ltx_text ltx_lst_space'>  </span>#<span class='ltx_text ltx_lst_keyword ltx_font_bold'>pragma</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>external</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_string'>”SACstderr.o”</span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">20</span></span><span class="ltx_text ltx_lst_space">  </span>#<span class="ltx_text ltx_lst_keyword ltx_font_bold">pragma</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">linkname</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_string">”SACstderr”</span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>20</span></span><span class='ltx_text ltx_lst_space'>  </span>#<span class='ltx_text ltx_lst_keyword ltx_font_bold'>pragma</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>linkname</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_string'>”SACstderr”</span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">21</span></span><span class="ltx_text ltx_lst_space">  </span>#<span class="ltx_text ltx_lst_keyword ltx_font_bold">pragma</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">effect</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">TheTerminal</span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>21</span></span><span class='ltx_text ltx_lst_space'>  </span>#<span class='ltx_text ltx_lst_keyword ltx_font_bold'>pragma</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>effect</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>TheTerminal</span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">22</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>22</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">23</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_comment ltx_font_italic">/*</span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>23</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_comment ltx_font_italic'>/*</span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_text ltx_font_italicstyle="color:#BFBFBF;">24</span></span><span class="ltx_text ltx_lst_space ltx_font_italic">   </span><span class="ltx_text ltx_font_italic">*</span><span class="ltx_text ltx_lst_space ltx_font_italic">  </span><span class="ltx_text ltx_font_italic">Each</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">function</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">of</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">class</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">TermFile</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">exists</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">in</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">two</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">versions.</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">One</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">expects</span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_text ltx_font_italicstyle='color:#BFBFBF;'>24</span></span><span class='ltx_text ltx_lst_space ltx_font_italic'>   </span><span class='ltx_text ltx_font_italic'>*</span><span class='ltx_text ltx_lst_space ltx_font_italic'>  </span><span class='ltx_text ltx_font_italic'>Each</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>function</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>of</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>class</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>TermFile</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>exists</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>in</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>two</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>versions.</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>One</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>expects</span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_text ltx_font_italicstyle="color:#BFBFBF;">25</span></span><span class="ltx_text ltx_lst_space ltx_font_italic">   </span><span class="ltx_text ltx_font_italic">*</span><span class="ltx_text ltx_lst_space ltx_font_italic">  </span><span class="ltx_text ltx_font_italic">an</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">I/O</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">stream</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">as</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">an</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">explicit</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">argument,</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">the</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">other</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">writes</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">implicitly</span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_text ltx_font_italicstyle='color:#BFBFBF;'>25</span></span><span class='ltx_text ltx_lst_space ltx_font_italic'>   </span><span class='ltx_text ltx_font_italic'>*</span><span class='ltx_text ltx_lst_space ltx_font_italic'>  </span><span class='ltx_text ltx_font_italic'>an</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>I/O</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>stream</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>as</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>an</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>explicit</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>argument,</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>the</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>other</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>writes</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>implicitly</span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_text ltx_font_italicstyle="color:#BFBFBF;">26</span></span><span class="ltx_text ltx_lst_space ltx_font_italic">   </span><span class="ltx_text ltx_font_italic">*</span><span class="ltx_text ltx_lst_space ltx_font_italic">  </span><span class="ltx_text ltx_font_italic">to</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">stdout</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">or</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">reads</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">implicitly</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">from</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">stdin,</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">respectively.</span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_text ltx_font_italicstyle='color:#BFBFBF;'>26</span></span><span class='ltx_text ltx_lst_space ltx_font_italic'>   </span><span class='ltx_text ltx_font_italic'>*</span><span class='ltx_text ltx_lst_space ltx_font_italic'>  </span><span class='ltx_text ltx_font_italic'>to</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>stdout</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>or</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>reads</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>implicitly</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>from</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>stdin,</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>respectively.</span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_text ltx_font_italicstyle="color:#BFBFBF;">27</span></span><span class="ltx_text ltx_lst_space ltx_font_italic">   </span><span class="ltx_text ltx_font_italic">*/</span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_text ltx_font_italicstyle='color:#BFBFBF;'>27</span></span><span class='ltx_text ltx_lst_space ltx_font_italic'>   </span><span class='ltx_text ltx_font_italic'>*/</span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">28</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>28</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">29</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_comment ltx_font_italic">/*</span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>29</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_comment ltx_font_italic'>/*</span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_text ltx_font_italicstyle="color:#BFBFBF;">30</span></span><span class="ltx_text ltx_lst_space ltx_font_italic">   </span><span class="ltx_text ltx_font_italic">*</span><span class="ltx_text ltx_lst_space ltx_font_italic">  </span><span class="ltx_text ltx_font_italic">Functions</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">for</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">low-level</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">input</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">/</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">output</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">operations</span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_text ltx_font_italicstyle='color:#BFBFBF;'>30</span></span><span class='ltx_text ltx_lst_space ltx_font_italic'>   </span><span class='ltx_text ltx_font_italic'>*</span><span class='ltx_text ltx_lst_space ltx_font_italic'>  </span><span class='ltx_text ltx_font_italic'>Functions</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>for</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>low-level</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>input</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>/</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>output</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>operations</span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_text ltx_font_italicstyle="color:#BFBFBF;">31</span></span><span class="ltx_text ltx_lst_space ltx_font_italic">   </span><span class="ltx_text ltx_font_italic">*/</span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_text ltx_font_italicstyle='color:#BFBFBF;'>31</span></span><span class='ltx_text ltx_lst_space ltx_font_italic'>   </span><span class='ltx_text ltx_font_italic'>*/</span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">32</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>32</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">33</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_comment ltx_font_italic">/*</span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>33</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_comment ltx_font_italic'>/*</span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_text ltx_font_italicstyle="color:#BFBFBF;">34</span></span><span class="ltx_text ltx_lst_space ltx_font_italic">   </span><span class="ltx_text ltx_font_italic">*</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">Put</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">the</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">character</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">C</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">to</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">the</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">output</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">stream</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">STREAM</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">which</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">must</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">be</span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_text ltx_font_italicstyle='color:#BFBFBF;'>34</span></span><span class='ltx_text ltx_lst_space ltx_font_italic'>   </span><span class='ltx_text ltx_font_italic'>*</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>Put</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>the</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>character</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>C</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>to</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>the</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>output</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>stream</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>STREAM</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>which</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>must</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>be</span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_text ltx_font_italicstyle="color:#BFBFBF;">35</span></span><span class="ltx_text ltx_lst_space ltx_font_italic">   </span><span class="ltx_text ltx_font_italic">*</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">either</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">stdout</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">or</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">stderr.</span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_text ltx_font_italicstyle='color:#BFBFBF;'>35</span></span><span class='ltx_text ltx_lst_space ltx_font_italic'>   </span><span class='ltx_text ltx_font_italic'>*</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>either</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>stdout</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>or</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>stderr.</span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_text ltx_font_italicstyle="color:#BFBFBF;">36</span></span><span class="ltx_text ltx_lst_space ltx_font_italic">   </span><span class="ltx_text ltx_font_italic">*/</span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_text ltx_font_italicstyle='color:#BFBFBF;'>36</span></span><span class='ltx_text ltx_lst_space ltx_font_italic'>   </span><span class='ltx_text ltx_font_italic'>*/</span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">37</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>37</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">38</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">extern</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">void</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">fputc</span>(<span class="ltx_text ltx_lst_identifier">char</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">C</span>,<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">TermFile</span><span class="ltx_text ltx_lst_space"> </span>&amp;<span class="ltx_text ltx_lst_identifier">STREAM</span>);+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>38</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>extern</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>void</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>fputc</span>(<span class='ltx_text ltx_lst_identifier'>char</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>C</span>,<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>TermFile</span><span class='ltx_text ltx_lst_space'> </span>&amp;<span class='ltx_text ltx_lst_identifier'>STREAM</span>);
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">39</span></span><span class="ltx_text ltx_lst_space">    </span>#<span class="ltx_text ltx_lst_keyword ltx_font_bold">pragma</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_keyword ltx_font_bold">external</span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>39</span></span><span class='ltx_text ltx_lst_space'>    </span>#<span class='ltx_text ltx_lst_keyword ltx_font_bold'>pragma</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>external</span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">40</span></span><span class="ltx_text ltx_lst_space">    </span>#<span class="ltx_text ltx_lst_keyword ltx_font_bold">pragma</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">effect</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">TheTerminal</span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>40</span></span><span class='ltx_text ltx_lst_space'>    </span>#<span class='ltx_text ltx_lst_keyword ltx_font_bold'>pragma</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>effect</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>TheTerminal</span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">41</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>41</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">42</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">extern</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">void</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">putc</span>(<span class="ltx_text ltx_lst_identifier">char</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">C</span>);+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>42</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>extern</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>void</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>putc</span>(<span class='ltx_text ltx_lst_identifier'>char</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>C</span>);
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">43</span></span><span class="ltx_text ltx_lst_space">    </span>#<span class="ltx_text ltx_lst_keyword ltx_font_bold">pragma</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_keyword ltx_font_bold">external</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_string">”SACputc.o”</span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>43</span></span><span class='ltx_text ltx_lst_space'>    </span>#<span class='ltx_text ltx_lst_keyword ltx_font_bold'>pragma</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>external</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_string'>”SACputc.o”</span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">44</span></span><span class="ltx_text ltx_lst_space">    </span>#<span class="ltx_text ltx_lst_keyword ltx_font_bold">pragma</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">effect</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">TheTerminal</span>,<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">stdout</span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>44</span></span><span class='ltx_text ltx_lst_space'>    </span>#<span class='ltx_text ltx_lst_keyword ltx_font_bold'>pragma</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>effect</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>TheTerminal</span>,<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>stdout</span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">45</span></span><span class="ltx_text ltx_lst_space">    </span>#<span class="ltx_text ltx_lst_keyword ltx_font_bold">pragma</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">linkname</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_string">”SACputc”</span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>45</span></span><span class='ltx_text ltx_lst_space'>    </span>#<span class='ltx_text ltx_lst_keyword ltx_font_bold'>pragma</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>linkname</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_string'>”SACputc”</span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">46</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>46</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">47</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_comment ltx_font_italic">/*</span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>47</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_comment ltx_font_italic'>/*</span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_text ltx_font_italicstyle="color:#BFBFBF;">48</span></span><span class="ltx_text ltx_lst_space ltx_font_italic">   </span><span class="ltx_text ltx_font_italic">*</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">Put</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">the</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">character</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">C</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">back</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">to</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">the</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">input</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">stream</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">STREAM</span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_text ltx_font_italicstyle='color:#BFBFBF;'>48</span></span><span class='ltx_text ltx_lst_space ltx_font_italic'>   </span><span class='ltx_text ltx_font_italic'>*</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>Put</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>the</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>character</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>C</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>back</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>to</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>the</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>input</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>stream</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>STREAM</span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_text ltx_font_italicstyle="color:#BFBFBF;">49</span></span><span class="ltx_text ltx_lst_space ltx_font_italic">   </span><span class="ltx_text ltx_font_italic">*</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">which</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">must</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">be</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">stdin</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">for</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">further</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">read</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">operations.</span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_text ltx_font_italicstyle='color:#BFBFBF;'>49</span></span><span class='ltx_text ltx_lst_space ltx_font_italic'>   </span><span class='ltx_text ltx_font_italic'>*</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>which</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>must</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>be</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>stdin</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>for</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>further</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>read</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>operations.</span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_text ltx_font_italicstyle="color:#BFBFBF;">50</span></span><span class="ltx_text ltx_lst_space ltx_font_italic">   </span><span class="ltx_text ltx_font_italic">*</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">Only</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">one</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">character</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">may</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">be</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">put</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">back</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">between</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">two</span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_text ltx_font_italicstyle='color:#BFBFBF;'>50</span></span><span class='ltx_text ltx_lst_space ltx_font_italic'>   </span><span class='ltx_text ltx_font_italic'>*</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>Only</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>one</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>character</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>may</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>be</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>put</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>back</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>between</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>two</span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_text ltx_font_italicstyle="color:#BFBFBF;">51</span></span><span class="ltx_text ltx_lst_space ltx_font_italic">   </span><span class="ltx_text ltx_font_italic">*</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">consecutive</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">read</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">operations,</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">otherwise</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">the</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">character</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">put</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">back</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">first</span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_text ltx_font_italicstyle='color:#BFBFBF;'>51</span></span><span class='ltx_text ltx_lst_space ltx_font_italic'>   </span><span class='ltx_text ltx_font_italic'>*</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>consecutive</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>read</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>operations,</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>otherwise</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>the</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>character</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>put</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>back</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>first</span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_text ltx_font_italicstyle="color:#BFBFBF;">52</span></span><span class="ltx_text ltx_lst_space ltx_font_italic">   </span><span class="ltx_text ltx_font_italic">*</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">is</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">overwritten.</span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_text ltx_font_italicstyle='color:#BFBFBF;'>52</span></span><span class='ltx_text ltx_lst_space ltx_font_italic'>   </span><span class='ltx_text ltx_font_italic'>*</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>is</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>overwritten.</span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_text ltx_font_italicstyle="color:#BFBFBF;">53</span></span><span class="ltx_text ltx_lst_space ltx_font_italic">   </span><span class="ltx_text ltx_font_italic">*/</span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_text ltx_font_italicstyle='color:#BFBFBF;'>53</span></span><span class='ltx_text ltx_lst_space ltx_font_italic'>   </span><span class='ltx_text ltx_font_italic'>*/</span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">54</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>54</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">55</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">extern</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">void</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">ungetc</span>(<span class="ltx_text ltx_lst_identifier">char</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">C</span>,<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">TermFile</span><span class="ltx_text ltx_lst_space"> </span>&amp;<span class="ltx_text ltx_lst_identifier">STREAM</span>);+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>55</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>extern</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>void</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>ungetc</span>(<span class='ltx_text ltx_lst_identifier'>char</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>C</span>,<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>TermFile</span><span class='ltx_text ltx_lst_space'> </span>&amp;<span class='ltx_text ltx_lst_identifier'>STREAM</span>);
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">56</span></span><span class="ltx_text ltx_lst_space">    </span>#<span class="ltx_text ltx_lst_keyword ltx_font_bold">pragma</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_keyword ltx_font_bold">external</span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>56</span></span><span class='ltx_text ltx_lst_space'>    </span>#<span class='ltx_text ltx_lst_keyword ltx_font_bold'>pragma</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>external</span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">57</span></span><span class="ltx_text ltx_lst_space">    </span>#<span class="ltx_text ltx_lst_keyword ltx_font_bold">pragma</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">effect</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">TheTerminal</span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>57</span></span><span class='ltx_text ltx_lst_space'>    </span>#<span class='ltx_text ltx_lst_keyword ltx_font_bold'>pragma</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>effect</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>TheTerminal</span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">58</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">extern</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">void</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">ungetc</span>(<span class="ltx_text ltx_lst_identifier">char</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">C</span>);+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>58</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>extern</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>void</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>ungetc</span>(<span class='ltx_text ltx_lst_identifier'>char</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>C</span>);
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">59</span></span><span class="ltx_text ltx_lst_space">    </span>#<span class="ltx_text ltx_lst_keyword ltx_font_bold">pragma</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_keyword ltx_font_bold">external</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_string">”SACungetc.o”</span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>59</span></span><span class='ltx_text ltx_lst_space'>    </span>#<span class='ltx_text ltx_lst_keyword ltx_font_bold'>pragma</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>external</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_string'>”SACungetc.o”</span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">60</span></span><span class="ltx_text ltx_lst_space">    </span>#<span class="ltx_text ltx_lst_keyword ltx_font_bold">pragma</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">effect</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">TheTerminal</span>,<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">stdin</span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>60</span></span><span class='ltx_text ltx_lst_space'>    </span>#<span class='ltx_text ltx_lst_keyword ltx_font_bold'>pragma</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>effect</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>TheTerminal</span>,<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>stdin</span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">61</span></span><span class="ltx_text ltx_lst_space">    </span>#<span class="ltx_text ltx_lst_keyword ltx_font_bold">pragma</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">linkname</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_string">”SACungetc”</span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>61</span></span><span class='ltx_text ltx_lst_space'>    </span>#<span class='ltx_text ltx_lst_keyword ltx_font_bold'>pragma</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>linkname</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_string'>”SACungetc”</span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">62</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>62</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">63</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_comment ltx_font_italic">/*</span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>63</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_comment ltx_font_italic'>/*</span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_text ltx_font_italicstyle="color:#BFBFBF;">64</span></span><span class="ltx_text ltx_lst_space ltx_font_italic">   </span><span class="ltx_text ltx_font_italic">*</span><span class="ltx_text ltx_lst_space ltx_font_italic">  </span><span class="ltx_text ltx_font_italic">Functions</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">for</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">formatted</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">input</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">/</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">output</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">operations</span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_text ltx_font_italicstyle='color:#BFBFBF;'>64</span></span><span class='ltx_text ltx_lst_space ltx_font_italic'>   </span><span class='ltx_text ltx_font_italic'>*</span><span class='ltx_text ltx_lst_space ltx_font_italic'>  </span><span class='ltx_text ltx_font_italic'>Functions</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>for</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>formatted</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>input</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>/</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>output</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>operations</span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_text ltx_font_italicstyle="color:#BFBFBF;">65</span></span><span class="ltx_text ltx_lst_space ltx_font_italic">   </span><span class="ltx_text ltx_font_italic">*/</span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_text ltx_font_italicstyle='color:#BFBFBF;'>65</span></span><span class='ltx_text ltx_lst_space ltx_font_italic'>   </span><span class='ltx_text ltx_font_italic'>*/</span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">66</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>66</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">67</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_comment ltx_font_italic">/*</span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>67</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_comment ltx_font_italic'>/*</span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_text ltx_font_italicstyle="color:#BFBFBF;">68</span></span><span class="ltx_text ltx_lst_space ltx_font_italic">   </span><span class="ltx_text ltx_font_italic">*</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">Print</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">formatted</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">output</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">to</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">STREAM</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">which</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">must</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">be</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">open</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">for</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">writing.</span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_text ltx_font_italicstyle='color:#BFBFBF;'>68</span></span><span class='ltx_text ltx_lst_space ltx_font_italic'>   </span><span class='ltx_text ltx_font_italic'>*</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>Print</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>formatted</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>output</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>to</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>STREAM</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>which</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>must</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>be</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>open</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>for</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>writing.</span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_text ltx_font_italicstyle="color:#BFBFBF;">69</span></span><span class="ltx_text ltx_lst_space ltx_font_italic">   </span><span class="ltx_text ltx_font_italic">*</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">The</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">syntax</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">of</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">format</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">strings</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">is</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">identical</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">to</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">that</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">known</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">from</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">C.</span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_text ltx_font_italicstyle='color:#BFBFBF;'>69</span></span><span class='ltx_text ltx_lst_space ltx_font_italic'>   </span><span class='ltx_text ltx_font_italic'>*</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>The</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>syntax</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>of</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>format</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>strings</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>is</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>identical</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>to</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>that</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>known</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>from</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>C.</span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_text ltx_font_italicstyle="color:#BFBFBF;">70</span></span><span class="ltx_text ltx_lst_space ltx_font_italic">   </span><span class="ltx_text ltx_font_italic">*</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">This</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">function</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">may</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">be</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">used</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">to</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">print</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">values</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">of</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">types</span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_text ltx_font_italicstyle='color:#BFBFBF;'>70</span></span><span class='ltx_text ltx_lst_space ltx_font_italic'>   </span><span class='ltx_text ltx_font_italic'>*</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>This</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>function</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>may</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>be</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>used</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>to</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>print</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>values</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>of</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>types</span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_text ltx_font_italicstyle="color:#BFBFBF;">71</span></span><span class="ltx_text ltx_lst_space ltx_font_italic">   </span><span class="ltx_text ltx_font_italic">*</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">char,</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">string,</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">int,</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">float,</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">and</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">double.</span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_text ltx_font_italicstyle='color:#BFBFBF;'>71</span></span><span class='ltx_text ltx_lst_space ltx_font_italic'>   </span><span class='ltx_text ltx_font_italic'>*</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>char,</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>string,</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>int,</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>float,</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>and</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>double.</span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_text ltx_font_italicstyle="color:#BFBFBF;">72</span></span><span class="ltx_text ltx_lst_space ltx_font_italic">   </span><span class="ltx_text ltx_font_italic">*/</span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_text ltx_font_italicstyle='color:#BFBFBF;'>72</span></span><span class='ltx_text ltx_lst_space ltx_font_italic'>   </span><span class='ltx_text ltx_font_italic'>*/</span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">73</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>73</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">74</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">extern</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">void</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">fprintf</span>(<span class="ltx_text ltx_lst_identifier">TermFile</span><span class="ltx_text ltx_lst_space"> </span>&amp;<span class="ltx_text ltx_lst_identifier">STREAM</span>,<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">string</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">FORMAT</span>,<span class="ltx_text ltx_lst_space"> </span>…);+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>74</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>extern</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>void</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>fprintf</span>(<span class='ltx_text ltx_lst_identifier'>TermFile</span><span class='ltx_text ltx_lst_space'> </span>&amp;<span class='ltx_text ltx_lst_identifier'>STREAM</span>,<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>string</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>FORMAT</span>,<span class='ltx_text ltx_lst_space'> </span>…);
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">75</span></span><span class="ltx_text ltx_lst_space">    </span>#<span class="ltx_text ltx_lst_keyword ltx_font_bold">pragma</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_keyword ltx_font_bold">external</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_string">”SACfprintf_TF.o”</span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>75</span></span><span class='ltx_text ltx_lst_space'>    </span>#<span class='ltx_text ltx_lst_keyword ltx_font_bold'>pragma</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>external</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_string'>”SACfprintf_TF.o”</span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">76</span></span><span class="ltx_text ltx_lst_space">    </span>#<span class="ltx_text ltx_lst_keyword ltx_font_bold">pragma</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">effect</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">TheTerminal</span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>76</span></span><span class='ltx_text ltx_lst_space'>    </span>#<span class='ltx_text ltx_lst_keyword ltx_font_bold'>pragma</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>effect</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>TheTerminal</span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">77</span></span><span class="ltx_text ltx_lst_space">    </span>#<span class="ltx_text ltx_lst_keyword ltx_font_bold">pragma</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">linkname</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_string">”SACfprintf_TF”</span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>77</span></span><span class='ltx_text ltx_lst_space'>    </span>#<span class='ltx_text ltx_lst_keyword ltx_font_bold'>pragma</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>linkname</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_string'>”SACfprintf_TF”</span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">78</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">extern</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">void</span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">printf</span>(<span class="ltx_text ltx_lst_identifier">string</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">FORMAT</span>,<span class="ltx_text ltx_lst_space"> </span>…);+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>78</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>extern</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>void</span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>printf</span>(<span class='ltx_text ltx_lst_identifier'>string</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>FORMAT</span>,<span class='ltx_text ltx_lst_space'> </span>…);
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">79</span></span><span class="ltx_text ltx_lst_space">    </span>#<span class="ltx_text ltx_lst_keyword ltx_font_bold">pragma</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_keyword ltx_font_bold">external</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_string">”SACprintf.o”</span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>79</span></span><span class='ltx_text ltx_lst_space'>    </span>#<span class='ltx_text ltx_lst_keyword ltx_font_bold'>pragma</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>external</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_string'>”SACprintf.o”</span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">80</span></span><span class="ltx_text ltx_lst_space">    </span>#<span class="ltx_text ltx_lst_keyword ltx_font_bold">pragma</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">effect</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">TheTerminal</span>,<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">stdout</span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>80</span></span><span class='ltx_text ltx_lst_space'>    </span>#<span class='ltx_text ltx_lst_keyword ltx_font_bold'>pragma</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>effect</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>TheTerminal</span>,<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>stdout</span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">81</span></span><span class="ltx_text ltx_lst_space">    </span>#<span class="ltx_text ltx_lst_keyword ltx_font_bold">pragma</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">linkname</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_string">”SACprintf”</span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>81</span></span><span class='ltx_text ltx_lst_space'>    </span>#<span class='ltx_text ltx_lst_keyword ltx_font_bold'>pragma</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>linkname</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_string'>”SACprintf”</span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">82</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>82</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">83</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_comment ltx_font_italic">/*</span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>83</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_comment ltx_font_italic'>/*</span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_text ltx_font_italicstyle="color:#BFBFBF;">84</span></span><span class="ltx_text ltx_lst_space ltx_font_italic">   </span><span class="ltx_text ltx_font_italic">*</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">Scan</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">the</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">given</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">stream</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">STREAM</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">concerning</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">the</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">format</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">string</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">FORMAT.</span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_text ltx_font_italicstyle='color:#BFBFBF;'>84</span></span><span class='ltx_text ltx_lst_space ltx_font_italic'>   </span><span class='ltx_text ltx_font_italic'>*</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>Scan</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>the</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>given</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>stream</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>STREAM</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>concerning</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>the</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>format</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>string</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>FORMAT.</span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_text ltx_font_italicstyle="color:#BFBFBF;">85</span></span><span class="ltx_text ltx_lst_space ltx_font_italic">   </span><span class="ltx_text ltx_font_italic">*</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">The</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">syntax</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">of</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">format</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">strings</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">is</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">identical</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">to</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">C</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">except</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">that</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">the</span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_text ltx_font_italicstyle='color:#BFBFBF;'>85</span></span><span class='ltx_text ltx_lst_space ltx_font_italic'>   </span><span class='ltx_text ltx_font_italic'>*</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>The</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>syntax</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>of</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>format</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>strings</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>is</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>identical</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>to</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>C</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>except</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>that</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>the</span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_text ltx_font_italicstyle="color:#BFBFBF;">86</span></span><span class="ltx_text ltx_lst_space ltx_font_italic">   </span><span class="ltx_text ltx_font_italic">*</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">string</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">conversion</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">specifier</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">%s</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">is</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">not</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">supported.</span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_text ltx_font_italicstyle='color:#BFBFBF;'>86</span></span><span class='ltx_text ltx_lst_space ltx_font_italic'>   </span><span class='ltx_text ltx_font_italic'>*</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>string</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>conversion</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>specifier</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>%s</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>is</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>not</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>supported.</span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_text ltx_font_italicstyle="color:#BFBFBF;">87</span></span><span class="ltx_text ltx_lst_space ltx_font_italic">   </span><span class="ltx_text ltx_font_italic">*</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">This</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">function</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">may</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">be</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">used</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">to</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">scan</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">values</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">of</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">types</span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_text ltx_font_italicstyle='color:#BFBFBF;'>87</span></span><span class='ltx_text ltx_lst_space ltx_font_italic'>   </span><span class='ltx_text ltx_font_italic'>*</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>This</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>function</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>may</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>be</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>used</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>to</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>scan</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>values</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>of</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>types</span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_text ltx_font_italicstyle="color:#BFBFBF;">88</span></span><span class="ltx_text ltx_lst_space ltx_font_italic">   </span><span class="ltx_text ltx_font_italic">*</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">char,</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">int,</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">float,</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">and</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">double.</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">To</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">scan</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">strings</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">use</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">either</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">fscans</span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_text ltx_font_italicstyle='color:#BFBFBF;'>88</span></span><span class='ltx_text ltx_lst_space ltx_font_italic'>   </span><span class='ltx_text ltx_font_italic'>*</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>char,</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>int,</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>float,</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>and</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>double.</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>To</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>scan</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>strings</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>use</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>either</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>fscans</span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_text ltx_font_italicstyle="color:#BFBFBF;">89</span></span><span class="ltx_text ltx_lst_space ltx_font_italic">   </span><span class="ltx_text ltx_font_italic">*</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">or</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">fscanl,</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">respectively.</span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_text ltx_font_italicstyle='color:#BFBFBF;'>89</span></span><span class='ltx_text ltx_lst_space ltx_font_italic'>   </span><span class='ltx_text ltx_font_italic'>*</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>or</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>fscanl,</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>respectively.</span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_text ltx_font_italicstyle="color:#BFBFBF;">90</span></span><span class="ltx_text ltx_lst_space ltx_font_italic">   </span><span class="ltx_text ltx_font_italic">*</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">The</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">int</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">result</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">gives</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">the</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">number</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">of</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">successfully</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">performed</span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_text ltx_font_italicstyle='color:#BFBFBF;'>90</span></span><span class='ltx_text ltx_lst_space ltx_font_italic'>   </span><span class='ltx_text ltx_font_italic'>*</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>The</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>int</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>result</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>gives</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>the</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>number</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>of</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>successfully</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>performed</span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_text ltx_font_italicstyle="color:#BFBFBF;">91</span></span><span class="ltx_text ltx_lst_space ltx_font_italic">   </span><span class="ltx_text ltx_font_italic">*</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">conversions.</span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_text ltx_font_italicstyle='color:#BFBFBF;'>91</span></span><span class='ltx_text ltx_lst_space ltx_font_italic'>   </span><span class='ltx_text ltx_font_italic'>*</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>conversions.</span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_text ltx_font_italicstyle="color:#BFBFBF;">92</span></span><span class="ltx_text ltx_lst_space ltx_font_italic">   </span><span class="ltx_text ltx_font_italic">*/</span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_text ltx_font_italicstyle='color:#BFBFBF;'>92</span></span><span class='ltx_text ltx_lst_space ltx_font_italic'>   </span><span class='ltx_text ltx_font_italic'>*/</span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">93</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>93</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">94</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">extern</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_keyword ltx_font_bold">int</span>,<span class="ltx_text ltx_lst_space"> </span>…<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">fscanf</span>(<span class="ltx_text ltx_lst_identifier">TermFile</span><span class="ltx_text ltx_lst_space"> </span>&amp;<span class="ltx_text ltx_lst_identifier">STREAM</span>,<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">string</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">FORMAT</span>);+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>94</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>extern</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>int</span>,<span class='ltx_text ltx_lst_space'> </span>…<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>fscanf</span>(<span class='ltx_text ltx_lst_identifier'>TermFile</span><span class='ltx_text ltx_lst_space'> </span>&amp;<span class='ltx_text ltx_lst_identifier'>STREAM</span>,<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>string</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>FORMAT</span>);
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">95</span></span><span class="ltx_text ltx_lst_space">    </span>#<span class="ltx_text ltx_lst_keyword ltx_font_bold">pragma</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_keyword ltx_font_bold">external</span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>95</span></span><span class='ltx_text ltx_lst_space'>    </span>#<span class='ltx_text ltx_lst_keyword ltx_font_bold'>pragma</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>external</span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">96</span></span><span class="ltx_text ltx_lst_space">    </span>#<span class="ltx_text ltx_lst_keyword ltx_font_bold">pragma</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">effect</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">TheTerminal</span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>96</span></span><span class='ltx_text ltx_lst_space'>    </span>#<span class='ltx_text ltx_lst_keyword ltx_font_bold'>pragma</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>effect</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>TheTerminal</span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">97</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">extern</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_keyword ltx_font_bold">int</span>,<span class="ltx_text ltx_lst_space"> </span>…<span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">scanf</span>(<span class="ltx_text ltx_lst_identifier">string</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">FORMAT</span>);+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>97</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>extern</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>int</span>,<span class='ltx_text ltx_lst_space'> </span>…<span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>scanf</span>(<span class='ltx_text ltx_lst_identifier'>string</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>FORMAT</span>);
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">98</span></span><span class="ltx_text ltx_lst_space">    </span>#<span class="ltx_text ltx_lst_keyword ltx_font_bold">pragma</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_keyword ltx_font_bold">external</span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>98</span></span><span class='ltx_text ltx_lst_space'>    </span>#<span class='ltx_text ltx_lst_keyword ltx_font_bold'>pragma</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>external</span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">99</span></span><span class="ltx_text ltx_lst_space">    </span>#<span class="ltx_text ltx_lst_keyword ltx_font_bold">pragma</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">effect</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">TheTerminal</span>,<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">stdin</span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>99</span></span><span class='ltx_text ltx_lst_space'>    </span>#<span class='ltx_text ltx_lst_keyword ltx_font_bold'>pragma</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>effect</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>TheTerminal</span>,<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>stdin</span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">100</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>100</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">101</span></span><span class="ltx_text ltx_lst_space">   </span><span class="ltx_text ltx_lst_comment ltx_font_italic">/*</span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>101</span></span><span class='ltx_text ltx_lst_space'>   </span><span class='ltx_text ltx_lst_comment ltx_font_italic'>/*</span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_text ltx_font_italicstyle="color:#BFBFBF;">102</span></span><span class="ltx_text ltx_lst_space ltx_font_italic">    </span><span class="ltx_text ltx_font_italic">*</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">Read</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">the</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">next</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">character</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">string</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">from</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">the</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">input</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">stream</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">STREAM.</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">Strings</span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_text ltx_font_italicstyle='color:#BFBFBF;'>102</span></span><span class='ltx_text ltx_lst_space ltx_font_italic'>    </span><span class='ltx_text ltx_font_italic'>*</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>Read</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>the</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>next</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>character</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>string</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>from</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>the</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>input</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>stream</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>STREAM.</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>Strings</span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_text ltx_font_italicstyle="color:#BFBFBF;">103</span></span><span class="ltx_text ltx_lst_space ltx_font_italic">    </span><span class="ltx_text ltx_font_italic">*</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">are</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">delimited</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">by</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">any</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">whitespace</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">character</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">including</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">the</span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_text ltx_font_italicstyle='color:#BFBFBF;'>103</span></span><span class='ltx_text ltx_lst_space ltx_font_italic'>    </span><span class='ltx_text ltx_font_italic'>*</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>are</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>delimited</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>by</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>any</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>whitespace</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>character</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>including</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>the</span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_text ltx_font_italicstyle="color:#BFBFBF;">104</span></span><span class="ltx_text ltx_lst_space ltx_font_italic">    </span><span class="ltx_text ltx_font_italic">*</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">end-of-file</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">symbol.</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">Always</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">read</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">at</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">most</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">MAX</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">characters.</span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_text ltx_font_italicstyle='color:#BFBFBF;'>104</span></span><span class='ltx_text ltx_lst_space ltx_font_italic'>    </span><span class='ltx_text ltx_font_italic'>*</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>end-of-file</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>symbol.</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>Always</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>read</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>at</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>most</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>MAX</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>characters.</span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_text ltx_font_italicstyle="color:#BFBFBF;">105</span></span><span class="ltx_text ltx_lst_space ltx_font_italic">    </span><span class="ltx_text ltx_font_italic">*</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">Upon</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">failure</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">an</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">empty</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">string</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">is</span><span class="ltx_text ltx_lst_space ltx_font_italic"> </span><span class="ltx_text ltx_font_italic">returned.</span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_text ltx_font_italicstyle='color:#BFBFBF;'>105</span></span><span class='ltx_text ltx_lst_space ltx_font_italic'>    </span><span class='ltx_text ltx_font_italic'>*</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>Upon</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>failure</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>an</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>empty</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>string</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>is</span><span class='ltx_text ltx_lst_space ltx_font_italic'> </span><span class='ltx_text ltx_font_italic'>returned.</span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_text ltx_font_italicstyle="color:#BFBFBF;">106</span></span><span class="ltx_text ltx_lst_space ltx_font_italic">    </span><span class="ltx_text ltx_font_italic">*/</span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_text ltx_font_italicstyle='color:#BFBFBF;'>106</span></span><span class='ltx_text ltx_lst_space ltx_font_italic'>    </span><span class='ltx_text ltx_font_italic'>*/</span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">107</span></span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>107</span></span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">108</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">extern</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">string</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">fscans</span>(<span class="ltx_text ltx_lst_identifier">TermFile</span><span class="ltx_text ltx_lst_space"> </span>&amp;<span class="ltx_text ltx_lst_identifier">STREAM</span>,<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_keyword ltx_font_bold">int</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">MAX</span>);+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>108</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>extern</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>string</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>fscans</span>(<span class='ltx_text ltx_lst_identifier'>TermFile</span><span class='ltx_text ltx_lst_space'> </span>&amp;<span class='ltx_text ltx_lst_identifier'>STREAM</span>,<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>int</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>MAX</span>);
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">109</span></span><span class="ltx_text ltx_lst_space">    </span>#<span class="ltx_text ltx_lst_keyword ltx_font_bold">pragma</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_keyword ltx_font_bold">external</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_string">”term_fscans.o”</span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>109</span></span><span class='ltx_text ltx_lst_space'>    </span>#<span class='ltx_text ltx_lst_keyword ltx_font_bold'>pragma</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>external</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_string'>”term_fscans.o”</span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">110</span></span><span class="ltx_text ltx_lst_space">    </span>#<span class="ltx_text ltx_lst_keyword ltx_font_bold">pragma</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">effect</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">TheTerminal</span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>110</span></span><span class='ltx_text ltx_lst_space'>    </span>#<span class='ltx_text ltx_lst_keyword ltx_font_bold'>pragma</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>effect</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>TheTerminal</span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">111</span></span><span class="ltx_text ltx_lst_space">    </span>#<span class="ltx_text ltx_lst_keyword ltx_font_bold">pragma</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">linkname</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_string">”term_fscans”</span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>111</span></span><span class='ltx_text ltx_lst_space'>    </span>#<span class='ltx_text ltx_lst_keyword ltx_font_bold'>pragma</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>linkname</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_string'>”term_fscans”</span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">112</span></span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">extern</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">string</span><span class="ltx_text ltx_lst_space">  </span><span class="ltx_text ltx_lst_identifier">scans</span>(<span class="ltx_text ltx_lst_keyword ltx_font_bold">int</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">MAX</span>);+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>112</span></span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>extern</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>string</span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_identifier'>scans</span>(<span class='ltx_text ltx_lst_keyword ltx_font_bold'>int</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>MAX</span>);
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">113</span></span><span class="ltx_text ltx_lst_space">    </span>#<span class="ltx_text ltx_lst_keyword ltx_font_bold">pragma</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_keyword ltx_font_bold">external</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_string">”term_scans.o”</span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>113</span></span><span class='ltx_text ltx_lst_space'>    </span>#<span class='ltx_text ltx_lst_keyword ltx_font_bold'>pragma</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_keyword ltx_font_bold'>external</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_string'>”term_scans.o”</span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">114</span></span><span class="ltx_text ltx_lst_space">    </span>#<span class="ltx_text ltx_lst_keyword ltx_font_bold">pragma</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">effect</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">TheTerminal</span>,<span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">stdin</span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>114</span></span><span class='ltx_text ltx_lst_space'>    </span>#<span class='ltx_text ltx_lst_keyword ltx_font_bold'>pragma</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>effect</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>TheTerminal</span>,<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>stdin</span>
 </div> </div>
-<div class="ltx_listingline"+<div class='ltx_listingline'
-<span class="ltx_tag ltx_tag_listing"><span class="ltx_textstyle="color:#BFBFBF;">115</span></span><span class="ltx_text ltx_lst_space">    </span>#<span class="ltx_text ltx_lst_keyword ltx_font_bold">pragma</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_identifier">linkname</span><span class="ltx_text ltx_lst_space"> </span><span class="ltx_text ltx_lst_string">”term_scans”</span>+<span class='ltx_tag ltx_tag_listing'><span class='ltx_textstyle='color:#BFBFBF;'>115</span></span><span class='ltx_text ltx_lst_space'>    </span>#<span class='ltx_text ltx_lst_keyword ltx_font_bold'>pragma</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>linkname</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_string'>”term_scans”</span>
 </div> </div>
 </div> </div>
Line 6638: Line 7237:
 </section> </section>
 </section> </section>
-<section id="Ch10.S2class="ltx_section"+<section id='Ch10.S2class='ltx_section'
-<h4 class="ltx_title ltx_title_section"+<h4 class='ltx_title ltx_title_section'
-<span class="ltx_tag ltx_tag_section">10.2 </span>Lesson: Using <span class="ltx_text ltx_font_smallcaps">SaC</span> libraries from <span class="ltx_text ltx_font_smallcaps">C</span>+<span class='ltx_tag ltx_tag_section'>10.2 </span>Lesson: Using <span class='ltx_text ltx_font_smallcaps'>SaC</span> libraries from <span class='ltx_text ltx_font_smallcaps'>C</span>
 </h4> </h4>
  
 </section> </section>
-<section id="Ch10.S3class="ltx_section"+<section id='Ch10.S3class='ltx_section'
-<h4 class="ltx_title ltx_title_section"+<h4 class='ltx_title ltx_title_section'
-<span class="ltx_tag ltx_tag_section">10.3 </span>Lesson: Using <span class="ltx_text ltx_font_smallcaps">SaC</span> libraries from <span class="ltx_text ltx_font_smallcaps">C++</span>+<span class='ltx_tag ltx_tag_section'>10.3 </span>Lesson: Using <span class='ltx_text ltx_font_smallcaps'>SaC</span> libraries from <span class='ltx_text ltx_font_smallcaps'>C++</span>
 </h4> </h4>
  
 </section> </section>
-<section id="Ch10.S4class="ltx_section"+<section id='Ch10.S4class='ltx_section'
-<h4 class="ltx_title ltx_title_section"+<h4 class='ltx_title ltx_title_section'
-<span class="ltx_tag ltx_tag_section">10.4 </span>Lesson: Using <span class="ltx_text ltx_font_smallcaps">SaC</span> libraries from <span class="ltx_text ltx_font_smallcaps">Fortran</span>+<span class='ltx_tag ltx_tag_section'>10.4 </span>Lesson: Using <span class='ltx_text ltx_font_smallcaps'>SaC</span> libraries from <span class='ltx_text ltx_font_smallcaps'>Fortran</span>
 </h4> </h4>
  
Line 6660: Line 7259:
 </article> </article>
 </div> </div>
-<footer class="ltx_page_footer"+<footer class='ltx_page_footer'
-<div class="ltx_page_logo">Generated  on Wed Nov 30 11:29:29 2016 by <a href="http://dlmf.nist.gov/LaTeXML/">LaTeXML <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAsAAAAOCAYAAAD5YeaVAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9wKExQZLWTEaOUAAAAddEVYdENvbW1lbnQAQ3JlYXRlZCB3aXRoIFRoZSBHSU1Q72QlbgAAAdpJREFUKM9tkL+L2nAARz9fPZNCKFapUn8kyI0e4iRHSR1Kb8ng0lJw6FYHFwv2LwhOpcWxTjeUunYqOmqd6hEoRDhtDWdA8ApRYsSUCDHNt5ul13vz4w0vWCgUnnEc975arX6ORqN3VqtVZbfbTQC4uEHANM3jSqXymFI6yWazP2KxWAXAL9zCUa1Wy2tXVxheKA9YNoR8Pt+aTqe4FVVVvz05O6MBhqUIBGk8Hn8HAOVy+T+XLJfLS4ZhTiRJgqIoVBRFIoric47jPnmeB1mW/9rr9ZpSSn3Lsmir1fJZlqWlUonKsvwWwD8ymc/nXwVBeLjf7xEKhdBut9Hr9WgmkyGEkJwsy5eHG5vN5g0AKIoCAEgkEkin0wQAfN9/cXPdheu6P33fBwB4ngcAcByHJpPJl+fn54mD3Gg0NrquXxeLRQAAwzAYj8cwTZPwPH9/sVg8PXweDAauqqr2cDjEer1GJBLBZDJBs9mE4zjwfZ85lAGg2+06hmGgXq+j3+/DsixYlgVN03a9Xu8jgCNCyIegIAgx13Vfd7vdu+FweG8YRkjXdWy329+dTgeSJD3ieZ7RNO0VAXAPwDEAO5VKndi2fWrb9jWl9Esul6PZbDY9Go1OZ7PZ9z/lyuD3OozU2wAAAABJRU5ErkJggg==alt="[LOGO]"></a>+<div class='ltx_page_logo'>Generated  on Fri Mar 24 14:08:18 2017 by <a href='http://dlmf.nist.gov/LaTeXML/'>LaTeXML <img src='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAsAAAAOCAYAAAD5YeaVAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9wKExQZLWTEaOUAAAAddEVYdENvbW1lbnQAQ3JlYXRlZCB3aXRoIFRoZSBHSU1Q72QlbgAAAdpJREFUKM9tkL+L2nAARz9fPZNCKFapUn8kyI0e4iRHSR1Kb8ng0lJw6FYHFwv2LwhOpcWxTjeUunYqOmqd6hEoRDhtDWdA8ApRYsSUCDHNt5ul13vz4w0vWCgUnnEc975arX6ORqN3VqtVZbfbTQC4uEHANM3jSqXymFI6yWazP2KxWAXAL9zCUa1Wy2tXVxheKA9YNoR8Pt+aTqe4FVVVvz05O6MBhqUIBGk8Hn8HAOVy+T+XLJfLS4ZhTiRJgqIoVBRFIoric47jPnmeB1mW/9rr9ZpSSn3Lsmir1fJZlqWlUonKsvwWwD8ymc/nXwVBeLjf7xEKhdBut9Hr9WgmkyGEkJwsy5eHG5vN5g0AKIoCAEgkEkin0wQAfN9/cXPdheu6P33fBwB4ngcAcByHJpPJl+fn54mD3Gg0NrquXxeLRQAAwzAYj8cwTZPwPH9/sVg8PXweDAauqqr2cDjEer1GJBLBZDJBs9mE4zjwfZ85lAGg2+06hmGgXq+j3+/DsixYlgVN03a9Xu8jgCNCyIegIAgx13Vfd7vdu+FweG8YRkjXdWy329+dTgeSJD3ieZ7RNO0VAXAPwDEAO5VKndi2fWrb9jWl9Esul6PZbDY9Go1OZ7PZ9z/lyuD3OozU2wAAAABJRU5ErkJggg==alt='[LOGO]'></a>
 </div></footer> </div></footer>
 </div> </div>