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
docs:tutorial [2017/03/24 20:39] temadocs:tutorial [2022/05/06 09:39] (current) – minor fix hnv
Line 1: Line 1:
 <html> <html>
 <head> <head>
-<title>Untitled Document</title> +<title>Contents</title> 
-<!-- Generated on Fri Mar 24 19:34:06 2017 by LaTeXML (version 0.8.2) http://dlmf.nist.gov/LaTeXML/. -->+<!-- Generated on Mon Mar 14 17:52:01 2022 by LaTeXML (version 0.8.5) http://dlmf.nist.gov/LaTeXML/. -->
  
 <meta http-equiv='Content-Type' content='text/html; charset=UTF-8'> <meta http-equiv='Content-Type' content='text/html; charset=UTF-8'>
-<!-- autoinlined `/tmp/docs/tutorial/html/LaTeXML.css' -->+<!-- autoinlined `/Volumes/Users/sbs/tex/sacdoc/tutorial/html/LaTeXML.css' -->
 <style type='text/css'> <style type='text/css'>
 /*====================================================================== /*======================================================================
Line 96: Line 96:
   Para level */   Para level */
 .ltx_float { .ltx_float {
-    margin: 1ex 3em 1ex 3em; }    +    margin: 1ex 3em 1ex 3em; }
 td.ltx_subfigure, td.ltx_subfigure,
 td.ltx_subtable, td.ltx_subtable,
Line 127: Line 127:
 .ltx_td.ltx_align_left.ltx_wrap,   .ltx_th.ltx_align_left.ltx_wrap, .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_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_td.ltx_align_center.ltx_wrap, .ltx_th.ltx_align_center.ltx_wrap
 +.ltx_td.ltx_align_justify,  .ltx_th.ltx_align_justify { white-space:normal; }
  
 +.ltx_tabular .ltx_tabular { width:100%; }
 .ltx_inline-block { display:inline-block; } .ltx_inline-block { display:inline-block; }
 +
 +/* avoid padding when aligning adjacent columns, e.g. for split decimals */
 +.ltx_norightpad { padding-right:0!important; }
 +.ltx_noleftpad { padding-left:0!important; }
  
 /* equations in non-aligned mode (not normally used) */ /* equations in non-aligned mode (not normally used) */
Line 139: Line 145:
 .ltx_eqn_cell  { display:table-cell; width:auto; } .ltx_eqn_cell  { display:table-cell; width:auto; }
  
-.ltx_tag_equationgroup.ltx_align_left, +/* Padding between column pairs in ams align */ 
-.ltx_tag_equation.ltx_align_left{ position:absolute; left:3em; } +table.ltx_eqn_align tr.ltx_equation td.ltx_align_left + td.ltx_align_right
-.ltx_tag_equationgroup.ltx_align_right+table.ltx_eqn_align tr.ltx_equation td.ltx_align_left + td.ltx_align_center
-.ltx_tag_equation.ltx_align_right{ position:absolute; right:3em; } +table.ltx_eqn_align tr.ltx_equation td.ltx_align_center + td.ltx_align_right, 
- +table.ltx_eqn_align tr.ltx_equation td.ltx_align_center + td.ltx_align_center  { padding-left: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; } 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 { max-width:0em; overflow:visible; white-space: nowrap; }
 .ltx_eqn_eqno.ltx_align_right .ltx_tag { float:right; } .ltx_eqn_eqno.ltx_align_right .ltx_tag { float:right; }
  
Line 189: Line 193:
 /*.ltx_biblist { list-style-type:none; }*/ /*.ltx_biblist { list-style-type:none; }*/
 .ltx_bibitem { list-style-type:none; } .ltx_bibitem { list-style-type:none; }
-.ltx_bibtag { font-weight:bold; margin-left:-2em; width:3em; }+.ltx_bibitem .ltx_tag { font-weight:bold; margin-left:-2em; width:3em; }
 /*.bibitem-tag + div { display:inline; }*/ /*.bibitem-tag + div { display:inline; }*/
 .ltx_bib_title { font-style:italic; } .ltx_bib_title { font-style:italic; }
Line 203: Line 207:
 .ltx_listing { .ltx_listing {
     display:block;     display:block;
-    margin: 1ex 3em 1ex 3em+    margin: 1ex 3em 1ex 0em
-    overflow-x:auto; }+    overflow-x:auto
 +    text-align: left; }
 .ltx_float .ltx_listing { .ltx_float .ltx_listing {
     margin: 0; }     margin: 0; }
Line 211: Line 216:
     background-color:transparent;     background-color:transparent;
     margin-left:-3em; width:2.5em;     margin-left:-3em; width:2.5em;
-    position:absolute; +    position:absolute;
     text-align:right; }     text-align:right; }
 .ltx_lst_numbers_right .ltx_listingline .ltx_tag { .ltx_lst_numbers_right .ltx_listingline .ltx_tag {
Line 309: Line 314:
      max-width: 70%; font-size:90%; left:15%;      max-width: 70%; font-size:90%; left:15%;
      text-align:left;      text-align:left;
-     background-color: white; +     background-color: white;
      padding: 0.5em 1em 0.5em 1.5em;      padding: 0.5em 1em 0.5em 1.5em;
      border: 1px solid black; border-radius: 0 5px 5px 5px; box-shadow: 5px 5px 10px gray; }      border: 1px solid black; border-radius: 0 5px 5px 5px; box-shadow: 5px 5px 10px gray; }
Line 322: Line 327:
 .ltx_ERROR        { color:red; } .ltx_ERROR        { color:red; }
 .ltx_rdf          { display:none; } .ltx_rdf          { display:none; }
-.ltx_missing      { color:red;+.ltx_missing      { color:red;}
 .ltx_nounicode    { color:red; } .ltx_nounicode    { color:red; }
 /*====================================================================== /*======================================================================
Line 350: Line 355:
 .ltx_font_smallcaps  { font-variant: small-caps; font-style: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!*/ .ltx_font_oldstyle   { font-variant: oldstyle-nums;  /* experimental css3 ? Doesn't seem to work!*/
-                       font-style:normal; +                       font-style:normal;
                        -moz-font-feature-settings: "onum";                        -moz-font-feature-settings: "onum";
                        -ms-font-feature-settings: "onum";                        -ms-font-feature-settings: "onum";
Line 387: Line 392:
  
 /* .ltx_phantom handled in xslt */ /* .ltx_phantom handled in xslt */
- 
  
 </style> </style>
  
-<!-- autoinlined `/tmp/docs/tutorial/html/ltx-report.css' -->+<!-- autoinlined `/Volumes/Users/sbs/tex/sacdoc/tutorial/html/ltx-report.css' -->
 <style type='text/css'> <style type='text/css'>
  
 .ltx_title_document      { font-size:170%; text-align:center; margin:1em 0 1em 0; } .ltx_title_document      { font-size:170%; text-align:center; margin:1em 0 1em 0; }
 +.ltx_dates,
 .ltx_authors, .ltx_authors,
 .ltx_role_author         { text-align:center; margin:1em 0 1em 0; } .ltx_role_author         { text-align:center; margin:1em 0 1em 0; }
Line 415: Line 420:
 .ltx_title_part          { font-size:200%; font-weight:bold; margin-bottom:1em; } .ltx_title_part          { font-size:200%; font-weight:bold; margin-bottom:1em; }
 .ltx_title_appendix, .ltx_title_appendix,
 +.ltx_title_bibliography,
 .ltx_title_chapter       { font-size:200%; font-weight:bold; margin-bottom:1em; } .ltx_title_chapter       { font-size:200%; font-weight:bold; margin-bottom:1em; }
 +.ltx_title_appendix .ltx_tag,
 .ltx_title_chapter .ltx_tag { display:block; font-size:90%; margin-bottom:0.5em; } .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_section       { font-size:140%; font-weight:bold; margin-bottom:1em; }
Line 449: Line 456:
 section > .ltx_title +.ltx_date +.ltx_para > .ltx_p {text-indent:0em; } section > .ltx_title +.ltx_date +.ltx_para > .ltx_p {text-indent:0em; }
  
-.ltx_itemize { margin-left:1em; }+.ltx_itemize
 +.ltx_enumerate { margin-left:1em; }
  
 .ltx_theorem { margin-top:0.5em; margin-bottom:0.5em; } .ltx_theorem { margin-top:0.5em; margin-bottom:0.5em; }
Line 459: Line 467:
 </style> </style>
  
-<!-- autoinlined `/tmp/docs/tutorial/html/ltx-listings.css' -->+<!-- autoinlined `/Volumes/Users/sbs/tex/sacdoc/tutorial/html/ltx-listings.css' -->
 <style type='text/css'> <style type='text/css'>
  
Line 469: Line 477:
  
 <link rel='stylesheet' href='http://www.sac-home.org/lib/tpl/bootstrap3/assets/bootstrap/journal/bootstrap.min.css' type='text/css'> <link rel='stylesheet' href='http://www.sac-home.org/lib/tpl/bootstrap3/assets/bootstrap/journal/bootstrap.min.css' type='text/css'>
-<!-- autoinlined `/tmp/docs/tutorial/html/tutorial.css' -->+<!-- autoinlined `/Volumes/Users/sbs/tex/sacdoc/tutorial/html/html/tutorial.css' -->
 <style type='text/css'> <style type='text/css'>
 /*body { /*body {
Line 619: Line 627:
 <span class='ltx_text' style='font-size:298%;'>TUTORIAL <span class='ltx_text' style='font-size:298%;'>TUTORIAL
 <br class='ltx_break'></span> <br class='ltx_break'></span>
-<span class='ltx_text' style='font-size:144%;'>VERSION 1.2</span></p>+<span class='ltx_text' style='font-size:144%;'>VERSION 1.2.3</span></p>
 <p class='ltx_p'><span class='ltx_text ltx_font_smallcaps' style='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_smallcaps' style='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<span class='ltx_text ltx_font_upright'> </span>Hans-Nikolai Vießmann
 <br class='ltx_break'></span></p> <br class='ltx_break'></span></p>
-<p class='ltx_p'><span class='ltx_text ltx_font_smallcaps' style='font-size:120%;'>March 242017</span></p>+<p class='ltx_p'><span class='ltx_text ltx_font_smallcaps' style='font-size:120%;'>March 142022</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'>
Line 740: Line 748:
 <a href='#Ch9.S1' title='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 SaC' class='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.S1' title='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 SaC' class='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.SS1' title='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 SaC' class='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.SS1' title='9.1.1 Reference Parameters ‣ 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 SaC' class='ltx_ref'><span class='ltx_text ltx_ref_title'><span class='ltx_tag ltx_tag_ref'>9.1.1 </span>Reference Parameters</span></a></li> 
-<li class='ltx_tocentry ltx_tocentry_subsection'><a href='#Ch9.S1.SS2' title='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 SaC' class='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.SS2' title='9.1.2 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 SaC' class='ltx_ref'><span class='ltx_text ltx_ref_title'><span class='ltx_tag ltx_tag_ref'>9.1.</span>Global Objects</span></a></li>
-<li class='ltx_tocentry ltx_tocentry_subsection'><a href='#Ch9.S1.SS3' title='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 SaC' class='ltx_ref'><span class='ltx_text ltx_ref_title'><span class='ltx_tag ltx_tag_ref'>9.1.</span>Global Objects</span></a></li>+
 </ul> </ul>
 </li> </li>
-<li class='ltx_tocentry ltx_tocentry_section'><a href='#Ch9.S2' title='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 SaC' class='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>
Line 754: Line 760:
 <a href='#Ch10.S1' title='10.1 Lesson: Calling C from SaC ‣ Chapter 10 Interfacing with Other Languages ‣ Part II Trails Covering More Advanced Features of SaC' class='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.S1' title='10.1 Lesson: Calling C from SaC ‣ Chapter 10 Interfacing with Other Languages ‣ Part II Trails Covering More Advanced Features of SaC' class='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.SS1' title='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 SaC' class='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.SS1' title='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 SaC' class='ltx_ref'><span class='ltx_text ltx_ref_title'><span class='ltx_tag ltx_tag_ref'>10.1.1 </span>Using <span class='ltx_text ltx_font_smallcaps'>C</span> in the small</span></a></li> 
-<li class='ltx_tocentry ltx_tocentry_subsection'><a href='#Ch10.S1.SS2' title='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 SaC' class='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.SS2' title='10.1.2 Dealing with non-scalar arrays ‣ 10.1 Lesson: Calling C from SaC ‣ Chapter 10 Interfacing with Other Languages ‣ Part II Trails Covering More Advanced Features of SaC' class='ltx_ref'><span class='ltx_text ltx_ref_title'><span class='ltx_tag ltx_tag_ref'>10.1.2 </span>Dealing with non-scalar arrays</span></a></li> 
-<li class='ltx_tocentry ltx_tocentry_subsection'><a href='#Ch10.S1.SS3' title='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 SaC' class='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.SS3' title='10.1.3 Stateful C functions ‣ 10.1 Lesson: Calling C from SaC ‣ Chapter 10 Interfacing with Other Languages ‣ Part II Trails Covering More Advanced Features of SaC' class='ltx_ref'><span class='ltx_text ltx_ref_title'><span class='ltx_tag ltx_tag_ref'>10.1.3 </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.SS4' title='10.1.4 Example TermFile ‣ 10.1 Lesson: Calling from SaC ‣ Chapter 10 Interfacing with Other Languages ‣ Part II Trails Covering More Advanced Features of SaC' class='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>
Line 771: Line 776:
 <section id='Pt1' class='ltx_part'> <section id='Pt1' class='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='Ch1' class='ltx_chapter'> <section id='Ch1' class='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.p1' class='ltx_para'> <div id='Ch1.p1' class='ltx_para'>
Line 787: Line 792:
 <div id='Ch1.S1.p1' class='ltx_para'> <div id='Ch1.S1.p1' class='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.I1' class='ltx_itemize'> +<ul id='Ch1.S1.I1' class='ltx_itemize'> 
-<li id='Ch1.I1.i1' class='ltx_item' style='list-style-type:none;'> +<li id='Ch1.S1.I1.i1' class='ltx_item' style='list-style-type:none;'> 
-<span class='ltx_tag ltx_tag_itemize'>•</span>  +<span class='ltx_tag ltx_tag_item'>•</span>  
-<div id='Ch1.I1.i1.p1' class='ltx_para'>+<div id='Ch1.S1.I1.i1.p1' class='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.i2' class='ltx_item' style='list-style-type:none;'> +<li id='Ch1.S1.I1.i2' class='ltx_item' style='list-style-type:none;'> 
-<span class='ltx_tag ltx_tag_itemize'>•</span>  +<span class='ltx_tag ltx_tag_item'>•</span>  
-<div id='Ch1.I1.i2.p1' class='ltx_para'>+<div id='Ch1.S1.I1.i2.p1' class='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.org' title='' class='ltx_ref ltx_url ltx_font_typewriter'>http://www.sac-home.org</a>; see instructions in the Download+<a href='https://www.sac-home.org' title='' class='ltx_ref ltx_url ltx_font_typewriter'>https://www.sac-home.org</a>; see instructions in the Download
 section.</p> section.</p>
 </div> </div>
 </li> </li>
-<li id='Ch1.I1.i3' class='ltx_item' style='list-style-type:none;'> +<li id='Ch1.S1.I1.i3' class='ltx_item' style='list-style-type:none;'> 
-<span class='ltx_tag ltx_tag_itemize'>•</span>  +<span class='ltx_tag ltx_tag_item'>•</span>  
-<div id='Ch1.I1.i3.p1' class='ltx_para'>+<div id='Ch1.S1.I1.i3.p1' class='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-core' title='' class='ltx_ref ltx_url ltx_font_typewriter'>http://www.github.com/SacBase/stdlib-core</a>. The process+<a href='https://www.github.com/SacBase/Stdlib' title='' class='ltx_ref ltx_url ltx_font_typewriter'>https://www.github.com/SacBase/Stdlib</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.i4' class='ltx_item' style='list-style-type:none;'> +<li id='Ch1.S1.I1.i4' class='ltx_item' style='list-style-type:none;'> 
-<span class='ltx_tag ltx_tag_itemize'>•</span>  +<span class='ltx_tag ltx_tag_item'>•</span>  
-<div id='Ch1.I1.i4.p1' class='ltx_para'>+<div id='Ch1.S1.I1.i4.p1' class='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>
Line 828: Line 833:
 <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='LST1' class='ltx_float ltx_lstlisting ltx_role_listing'>+<figure id='LST1' class='ltx_float ltx_lstlisting'>
 <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,IHVzZSBTdGRJTzogYWxsOwogdXNlIEFycmF5OiBhbGw7CgogaW50IG1haW4oKQogewogICBwcmludGYoIkhlbGxvIFdvcmxkIVxuIik7CiAgIHJldHVybiAwOwogfQ=='>⬇</a></div> 
-<div class='ltx_listingline'> +<div id='lstnumberx1' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>1</span></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'>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 id='lstnumberx2' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>2</span></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'>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 id='lstnumberx3' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>3</span></span>+                <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>3</span></span> 
 +              
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx4' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>4</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'>main</span>()
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx5' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>5</span></span>{+                <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>5</span></span> 
 +              <span class='ltx_text ltx_lst_space'> </span>{
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx6' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx7' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx8' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>8</span></span>}+                <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>8</span></span> 
 +              <span class='ltx_text ltx_lst_space'> </span>}
 </div> </div>
 </div> </div>
Line 877: Line 890:
 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='LST2' class='ltx_float ltx_lstlisting ltx_role_listing'>+<figure id='LST2' class='ltx_float ltx_lstlisting'>
 <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,ICQgY2QgL2hvbWUvc2JzL3NhYy8KICQgbHMKIHdvcmxkLnNhYwogJCBzYWMyYyAgd29ybGQuc2FjCiAkIGxzCiBhLm91dCAgICAgIGEub3V0LmMgICAgd29ybGQuc2FjCiAkIGEub3V0CiBIZWxsbyBXb3JsZCE='>⬇</a></div> 
-<div class='ltx_listingline'> +<div id='lstnumberx9' 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_space'> </span>$<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>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 id='lstnumberx10' 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_space'> </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 id='lstnumberx11' 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_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 id='lstnumberx12' 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_space'> </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 id='lstnumberx13' 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_space'> </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 id='lstnumberx14' 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_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_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 id='lstnumberx15' 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_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'>out</span>
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx16' 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_space'> </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>
Line 931: Line 944:
 <section id='Ch2' class='ltx_chapter'> <section id='Ch2' class='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.p1' class='ltx_para'> <div id='Ch2.p1' class='ltx_para'>
Line 951: Line 964:
 <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 ltx_font_italic'>shape vector</em> 
-and a <em class='ltx_emph'>data vector</em>+and a <em class='ltx_emph ltx_font_italic'>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 ltx_font_italic'>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 ltx_font_italic'>dimensionality</em> (or <em class='ltx_emph ltx_font_italic'>rank</em>), which is given implicitly by the shape vector’s
 length.</p> length.</p>
 </div> </div>
 <div id='Ch2.S1.p2' class='ltx_para'> <div id='Ch2.S1.p2' class='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 ltx_font_italic'>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 ltx_font_italic'>scalars</em>, <em class='ltx_emph ltx_font_italic'>vectors</em>, and 
-<em class='ltx_emph'>matrices</em> is defined.</p>+<em class='ltx_emph ltx_font_italic'>matrices</em> is defined.</p>
 </div> </div>
 <div id='Ch2.S1.p3' class='ltx_para'> <div id='Ch2.S1.p3' class='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 ltx_font_italic'>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>
Line 975: Line 988:
 </div> </div>
 <div id='Ch2.S1.SS1.p2' class='ltx_para'> <div id='Ch2.S1.SS1.p2' class='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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>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>
Line 982: Line 995:
 <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='LST3' class='ltx_float ltx_lstlisting ltx_role_listing'>+<figure id='LST3' class='ltx_float ltx_lstlisting'>
 <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,IHVzZSBTdGRJTzogYWxsOwogdXNlIEFycmF5OiBhbGw7CgogaW50IG1haW4oKQogewogICBwcmludChyZXNoYXBlKFs1XSwgWzEsMiwzLDQsNV0pKTsKICAgcHJpbnQocmVzaGFwZShbMywyXSwgWzEsMiwzLDQsNSw2XSkpOwogICBwcmludChyZXNoYXBlKFszLDIsMV0sIFsxLDIsMyw0LDUsNl0pKTsKICAgcmV0dXJuIDA7CiB9'>⬇</a></div> 
-<div class='ltx_listingline'> +<div id='lstnumberx17' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>1</span></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'>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 id='lstnumberx18' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>2</span></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'>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 id='lstnumberx19' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>3</span></span>+                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>3</span></span> 
 +                
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx20' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>4</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'>main</span>()
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx21' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>5</span></span>{+                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>5</span></span> 
 +                <span class='ltx_text ltx_lst_space'> </span>{
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx22' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx23' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx24' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx25' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx26' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>10</span></span>}+                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>10</span></span> 
 +                <span class='ltx_text ltx_lst_space'> </span>}
 </div> </div>
 </div> </div>
Line 1020: Line 1043:
 <div id='Ch2.S1.SS1.p4' class='ltx_para'> <div id='Ch2.S1.SS1.p4' class='ltx_para'>
 <p class='ltx_p'>It prints three arrays:</p> <p class='ltx_p'>It prints three arrays:</p>
-<ul id='Ch2.I1' class='ltx_itemize'> +<ul id='Ch2.S1.I1' class='ltx_itemize'> 
-<li id='Ch2.I1.i1' class='ltx_item' style='list-style-type:none;'> +<li id='Ch2.S1.I1.i1' class='ltx_item' style='list-style-type:none;'> 
-<span class='ltx_tag ltx_tag_itemize'>•</span>  +<span class='ltx_tag ltx_tag_item'>•</span>  
-<div id='Ch2.I1.i1.p1' class='ltx_para'>+<div id='Ch2.S1.I1.i1.p1' class='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.i2' class='ltx_item' style='list-style-type:none;'> +<li id='Ch2.S1.I1.i2' class='ltx_item' style='list-style-type:none;'> 
-<span class='ltx_tag ltx_tag_itemize'>•</span>  +<span class='ltx_tag ltx_tag_item'>•</span>  
-<div id='Ch2.I1.i2.p1' class='ltx_para'>+<div id='Ch2.S1.I1.i2.p1' class='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.i3' class='ltx_item' style='list-style-type:none;'> +<li id='Ch2.S1.I1.i3' class='ltx_item' style='list-style-type:none;'> 
-<span class='ltx_tag ltx_tag_itemize'>•</span>  +<span class='ltx_tag ltx_tag_item'>•</span>  
-<div id='Ch2.I1.i3.p1' class='ltx_para'>+<div id='Ch2.S1.I1.i3.p1' class='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>
Line 1043: Line 1066:
 </div> </div>
 <div id='Ch2.S1.SS1.p5' class='ltx_para'> <div id='Ch2.S1.SS1.p5' class='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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>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 1060: Line 1083:
 <div id='Ch2.S1.SS1.p6' class='ltx_para ltx_noindent'> <div id='Ch2.S1.SS1.p6' class='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.I2' class='ltx_description'> +<dl id='Ch2.S1.I2' class='ltx_description'> 
-<dt id='Ch2.I2.ix1' class='ltx_item'><span class='ltx_tag ltx_tag_description'>scalar</span></dt>+<dt id='Ch2.S1.I2.ix1' class='ltx_item'><span class='ltx_tag ltx_tag_item'><span class='ltx_text ltx_font_bold'>scalar</span></span></dt>
 <dd class='ltx_item'> <dd class='ltx_item'>
-<div id='Ch2.I2.ix1.p1' class='ltx_para'>+<div id='Ch2.S1.I2.ix1.p1' class='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.ix2' class='ltx_item'><span class='ltx_tag ltx_tag_description'>vector</span></dt>+<dt id='Ch2.S1.I2.ix2' class='ltx_item'><span class='ltx_tag ltx_tag_item'><span class='ltx_text ltx_font_bold'>vector</span></span></dt>
 <dd class='ltx_item'> <dd class='ltx_item'>
-<div id='Ch2.I2.ix2.p1' class='ltx_para'>+<div id='Ch2.S1.I2.ix2.p1' class='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.ix3' class='ltx_item'><span class='ltx_tag ltx_tag_description'>matrix</span></dt>+<dt id='Ch2.S1.I2.ix3' class='ltx_item'><span class='ltx_tag ltx_tag_item'><span class='ltx_text ltx_font_bold'>matrix</span></span></dt>
 <dd class='ltx_item'> <dd class='ltx_item'>
-<div id='Ch2.I2.ix3.p1' class='ltx_para'>+<div id='Ch2.S1.I2.ix3.p1' class='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>
Line 1082: Line 1105:
 </div> </div>
 <div id='Ch2.S1.SS1.p7' class='ltx_para'> <div id='Ch2.S1.SS1.p7' class='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 ltx_font_italic'>all</em> arrays can be defined in terms of <span class='ltx_text ltx_lst_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>reshape</span>, the following
 program as well is perfectly legal: program as well is perfectly legal:
 </p> </p>
 </div> </div>
-<figure id='LST4' class='ltx_float ltx_lstlisting ltx_role_listing'>+<figure id='LST4' class='ltx_float ltx_lstlisting'>
 <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,IHVzZSBTdGRJTzogYWxsOwogdXNlIEFycmF5OiBhbGw7CgogaW50IG1haW4oKQogewogICBwcmludChyZXNoYXBlKFsxXSwgWzFdKSk7CiAgIHByaW50KHJlc2hhcGUoW10sIFsxXSkpOwogICByZXR1cm4gMDsKIH0='>⬇</a></div> 
-<div class='ltx_listingline'> +<div id='lstnumberx27' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>1</span></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'>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 id='lstnumberx28' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>2</span></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'>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 id='lstnumberx29' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>3</span></span>+                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>3</span></span> 
 +                
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx30' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>4</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'>main</span>()
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx31' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>5</span></span>{+                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>5</span></span> 
 +                <span class='ltx_text ltx_lst_space'> </span>{
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx32' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx33' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx34' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx35' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>9</span></span>}+                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>9</span></span> 
 +                <span class='ltx_text ltx_lst_space'> </span>}
 </div> </div>
 </div> </div>
Line 1128: Line 1160:
 <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.p1' class='ltx_para'> <div id='Thmtheorem2.p1' class='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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>e</span> expressions themselves?</p>
 </div> </div>
 </div> </div>
 <div id='Ch2.S1.SS1.p9' class='ltx_para'> <div id='Ch2.S1.SS1.p9' class='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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>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
Line 1141: Line 1173:
 <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='LST5' class='ltx_float ltx_lstlisting ltx_role_listing'>+<figure id='LST5' class='ltx_float ltx_lstlisting'>
 <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,IHVzZSBTdGRJTzogYWxsOwogdXNlIEFycmF5OiBhbGw7CgogaW50IG1haW4oKQogewogICBwcmludCgxKTsKICAgcHJpbnQoWzEsMiwzLDQsNV0pOwogICBwcmludChbWzEsMl0sIFszLDRdLCBbNSw2XV0pOwogICBwcmludChnZW5hcnJheShbNCwzLDJdLCAxKSk7CiAgIHByaW50KGdlbmFycmF5KFs0LDNdLCBbMSwyXSkpOwogICByZXR1cm4gMDsKIH0='>⬇</a></div> 
-<div class='ltx_listingline'> +<div id='lstnumberx36' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>1</span></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'>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 id='lstnumberx37' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>2</span></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'>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 id='lstnumberx38' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>3</span></span>+                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>3</span></span> 
 +                
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx39' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>4</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'>main</span>()
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx40' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>5</span></span>{+                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>5</span></span> 
 +                <span class='ltx_text ltx_lst_space'> </span>{
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx41' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx42' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx43' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx44' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx45' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx46' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx47' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>12</span></span>}+                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>12</span></span> 
 +                <span class='ltx_text ltx_lst_space'> </span>}
 </div> </div>
 </div> </div>
Line 1186: Line 1230:
 <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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>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.
Line 1195: Line 1239:
 </div> </div>
 <div id='Ch2.S1.SS1.p13' class='ltx_para ltx_noindent'> <div id='Ch2.S1.SS1.p13' class='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 ltx_font_italic'>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.p14' class='ltx_para'> <div id='Ch2.S1.SS1.p14' class='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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>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 1210: Line 1254:
 <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: + Dimension: 
-Shape    : &lt;  5,  2,  2&gt; + Shape    :  5,  2,  2> 
-&lt; 0  0 &gt; &lt; 0  0 &gt; + 0  0 > < 0  0 > 
-&lt; 1  0 &gt; &lt; 0  0 &gt; + 1  0 > < 0  0 > 
-&lt; 0  1 &gt; &lt; 0  0 &gt; + 0  1 > < 0  0 > 
-&lt; 0  0 &gt; &lt; 1  0 &gt; + 0  0 > < 1  0 > 
-&lt; 0  0 &gt; &lt; 0  1 &gt;+ 0  0 > < 0  1 
 + 
 </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>
Line 1244: Line 1289:
 <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='LST6' class='ltx_float ltx_lstlisting ltx_role_listing'>+<figure id='LST6' class='ltx_float ltx_lstlisting'>
 <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,IHVzZSBTdGRJTzogYWxsOwogdXNlIEFycmF5OiBhbGw7CgogaW50IG1haW4oKQogewogICBhID0gWzEsMiwzLDRdOwogICBwcmludChhKTsKCiAgIGIgPSBtb2RhcnJheShhLCBbMF0sIDkpOwogICBwcmludChiKTsKCiAgIHJldHVybiAwOwogfQ=='>⬇</a></div> 
-<div class='ltx_listingline'> +<div id='lstnumberx48' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>1</span></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'>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 id='lstnumberx49' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>2</span></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'>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 id='lstnumberx50' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>3</span></span>+                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>3</span></span> 
 +                
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx51' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>4</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'>main</span>()
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx52' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>5</span></span>{+                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>5</span></span> 
 +                <span class='ltx_text ltx_lst_space'> </span>{
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx53' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx54' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx55' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>8</span></span>+                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>8</span></span> 
 +                
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx56' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx57' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx58' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>11</span></span>+                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>11</span></span> 
 +                
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx59' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx60' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>13</span></span>}+                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>13</span></span> 
 +                <span class='ltx_text ltx_lst_space'> </span>}
 </div> </div>
 </div> </div>
 </figure> </figure>
 <div id='Ch2.S1.SS2.p4' class='ltx_para'> <div id='Ch2.S1.SS2.p4' class='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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>b</span> is almost identical to <span class='ltx_text ltx_lst_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>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>
Line 1301: Line 1359:
 <div id='Ch2.S1.SS2.p6' class='ltx_para'> <div id='Ch2.S1.SS2.p6' class='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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>modarray</span>? If this would be the case, <span class='ltx_text ltx_lst_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>a</span> and <span class='ltx_text ltx_lst_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>a</span> as an argument.</p>
 </div> </div>
 <div id='Ch2.S1.SS2.p7' class='ltx_para'> <div id='Ch2.S1.SS2.p7' class='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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>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.p8' class='ltx_para'> +<div id='Ch2.S1.SS2.p8' class='ltx_para ltx_align_center'> 
-<p class='ltx_p ltx_align_center'> +<p class='ltx_p'> 
- +<span class='ltx_inline-para ltx_minipage ltx_align_middle ltx_framed_rectangle' style='width:390.3pt;'> 
-<span class='ltx_inline-block ltx_minipage ltx_align_middle ltx_framed_rectangle' style='width:390.3pt;'>+<span id='Ch2.S1.SS2.p8.p1' class='ltx_para'>
 <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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>a</span> if the place-holder property would be violated otherwise.</span></span> 
-</span>+</span></span>
 </p> </p>
 </div> </div>
Line 1327: Line 1385:
 <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 ltx_font_italic'>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 1334: Line 1392:
 </div> </div>
 <div id='Ch2.S1.SS2.p10' class='ltx_para'> <div id='Ch2.S1.SS2.p10' class='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 ltx_font_italic'>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 1345: Line 1403:
 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='LST7' class='ltx_float ltx_lstlisting ltx_role_listing'>+<figure id='LST7' class='ltx_float ltx_lstlisting'>
 <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,IHVzZSBTdGRJTzogYWxsOwogdXNlIEFycmF5OiBhbGw7CgogaW50IG1haW4oKQogewogICBhID0gWzEsMiwzLDRdOwoKICAgYiA9IG1vZGFycmF5KGEsIFswXSwgOSk7CiAgIHByaW50KGEpOwogICBhID0gYjsKICAgcHJpbnQoYSk7CgogICBhID0gbW9kYXJyYXkoYSwgWzFdLCA4KTsKICAgcHJpbnQoYSk7CgogICByZXR1cm4gMDsKIH0='>⬇</a></div> 
-<div class='ltx_listingline'> +<div id='lstnumberx61' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>1</span></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'>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 id='lstnumberx62' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>2</span></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'>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 id='lstnumberx63' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>3</span></span>+                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>3</span></span> 
 +                
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx64' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>4</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'>main</span>()
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx65' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>5</span></span>{+                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>5</span></span> 
 +                <span class='ltx_text ltx_lst_space'> </span>{
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx66' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx67' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>7</span></span>+                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>7</span></span> 
 +                
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx68' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx69' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx70' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx71' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx72' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>12</span></span>+                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>12</span></span> 
 +                
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx73' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx74' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx75' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>15</span></span>+                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>15</span></span> 
 +                
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx76' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx77' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>17</span></span>}+                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>17</span></span> 
 +                <span class='ltx_text ltx_lst_space'> </span>}
 </div> </div>
 </div> </div>
 </figure> </figure>
 <div id='Ch2.S1.SS2.p11' class='ltx_para'> <div id='Ch2.S1.SS2.p11' class='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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>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>
Line 1411: Line 1486:
 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 ltx_font_italic'>always</em> holds!</p>
 </div> </div>
 <div id='Thmtheorem4' class='ltx_theorem ltx_theorem_theorem'> <div id='Thmtheorem4' class='ltx_theorem ltx_theorem_theorem'>
Line 1419: Line 1494:
 </div> </div>
 </div> </div>
-<figure id='LST8' class='ltx_float ltx_lstlisting ltx_role_listing'>+<figure id='LST8' class='ltx_float ltx_lstlisting'>
 <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,IHVzZSBTdGRJTzogYWxsOwogdXNlIEFycmF5OiBhbGw7CgogaW50IG1haW4oKQogewogICBhID0gWzEsMiwzLDRdOwogICBiID0gW2EsYV07CgogICBhID0gbW9kYXJyYXkobW9kYXJyYXkoYSwgWzBdLCAwKSwgWzFdLCAwKTsKICAgYiA9IG1vZGFycmF5KGIsIFswXSwgYSk7CiAgIHByaW50KGIpOwoKICAgcmV0dXJuIDA7CiB9'>⬇</a></div> 
-<div class='ltx_listingline'> +<div id='lstnumberx78' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>1</span></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'>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 id='lstnumberx79' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>2</span></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'>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 id='lstnumberx80' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>3</span></span>+                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>3</span></span> 
 +                
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx81' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>4</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'>main</span>()
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx82' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>5</span></span>{+                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>5</span></span> 
 +                <span class='ltx_text ltx_lst_space'> </span>{
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx83' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx84' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx85' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>8</span></span>+                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>8</span></span> 
 +                
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx86' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx87' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx88' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx89' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>12</span></span>+                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>12</span></span> 
 +                
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx90' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx91' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>14</span></span>}+                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>14</span></span> 
 +                <span class='ltx_text ltx_lst_space'> </span>}
 </div> </div>
 </div> </div>
Line 1474: Line 1563:
  
 <div id='Ch2.S2.p1' class='ltx_para'> <div id='Ch2.S2.p1' class='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 ltx_font_italic'>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.
Line 1495: Line 1584:
 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 id='Ch2.footnote1' 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> 
-is version 1.2.</span></span></span>.+                <span class='ltx_tag ltx_tag_note'>1</span> 
 +                 
 +                 
 +              As of this writing, the latest <span class='ltx_text ltx_font_smallcaps'>SaC</span> compiler release 
 +is version 1.2.3.</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.
Line 1514: Line 1607:
 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.p2' class='ltx_para'> +<div id='Ch2.S2.SS1.p2' class='ltx_para ltx_align_center'> 
-<p class='ltx_p ltx_align_center'> +<p class='ltx_p'><span class='ltx_text ltx_framed_rectangle' style='border-color: black;'> 
- +<span class='ltx_inline-para ltx_minipage ltx_align_middle' style='width:390.3pt;'> 
-<span class='ltx_inline-block ltx_minipage ltx_align_middle ltx_framed_rectangle' style='width:390.3pt;'>+<span id='Ch2.S2.SS1.p2.p1' class='ltx_para'>
 <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
Line 1523: Line 1616:
 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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>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> </span></span>
-</span> +</span></p>
-</p>+
 </div> </div>
 <div id='Ch2.S2.SS1.p3' class='ltx_para'> <div id='Ch2.S2.SS1.p3' class='ltx_para'>
Line 1552: Line 1644:
 </div> </div>
 <div id='Ch2.S2.SS1.SSSx1.p2' class='ltx_para'> <div id='Ch2.S2.SS1.SSSx1.p2' class='ltx_para'>
-<dl id='Ch2.I3' class='ltx_description'> +<dl id='Ch2.S2.I1' class='ltx_description'> 
-<dt id='Ch2.I3.ix1' class='ltx_item'><span class='ltx_tag ltx_tag_description'>dim(a)</span></dt>+<dt id='Ch2.S2.I1.ix1' class='ltx_item'><span class='ltx_tag ltx_tag_item'><span class='ltx_text ltx_font_bold'>dim(a)</span></span></dt>
 <dd class='ltx_item'> <dd class='ltx_item'>
-<div id='Ch2.I3.ix1.p1' class='ltx_para'>+<div id='Ch2.S2.I1.ix1.p1' class='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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>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.ix2' class='ltx_item'><span class='ltx_tag ltx_tag_description'>shape(a)</span></dt>+<dt id='Ch2.S2.I1.ix2' class='ltx_item'><span class='ltx_tag ltx_tag_item'><span class='ltx_text ltx_font_bold'>shape(a)</span></span></dt>
 <dd class='ltx_item'> <dd class='ltx_item'>
-<div id='Ch2.I3.ix2.p1' class='ltx_para'> +<div id='Ch2.S2.I1.ix2.p1' class='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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>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.ix3' class='ltx_item'><span class='ltx_tag ltx_tag_description'>a[iv]</span></dt>+<dt id='Ch2.S2.I1.ix3' class='ltx_item'><span class='ltx_tag ltx_tag_item'><span class='ltx_text ltx_font_bold'>a[iv]</span></span></dt>
 <dd class='ltx_item'> <dd class='ltx_item'>
-<div id='Ch2.I3.ix3.p1' class='ltx_para'>+<div id='Ch2.S2.I1.ix3.p1' class='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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>a</span> at index position <span class='ltx_text ltx_lst_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>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 ltx_font_italic'>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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>a</span> minus the length of <span class='ltx_text ltx_lst_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>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.I1' class='ltx_itemize'> +<ul id='Ch2.S2.I1.ix3.I1' class='ltx_itemize'> 
-<li id='Ch2.I3.I1.i1' class='ltx_item' style='list-style-type:none;'> +<li id='Ch2.S2.I1.ix3.I1.i1' class='ltx_item' style='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_item'><span class='ltx_text ltx_font_bold'></span></span>  
-<div id='Ch2.I3.I1.i1.p1' class='ltx_para'>+<div id='Ch2.S2.I1.ix3.I1.i1.p1' class='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.i2' class='ltx_item' style='list-style-type:none;'> +<li id='Ch2.S2.I1.ix3.I1.i2' class='ltx_item' style='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_item'><span class='ltx_text ltx_font_bold'></span></span>  
-<div id='Ch2.I3.I1.i2.p1' class='ltx_para'> +<div id='Ch2.S2.I1.ix3.I1.i2.p1' class='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><=<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.i3' class='ltx_item' style='list-style-type:none;'> +<li id='Ch2.S2.I1.ix3.I1.i3' class='ltx_item' style='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_item'><span class='ltx_text ltx_font_bold'></span></span>  
-<div id='Ch2.I3.I1.i3.p1' class='ltx_para'> +<div id='Ch2.S2.I1.ix3.I1.i3.p1' class='ltx_para'> 
-<p class='ltx_p'><math id='Ch2.I3.I1.i3.p1.m1' class='ltx_Math' alttext='{{{{{{\forall\textrm{\lstinline 1}}}\in\{0,\dots,\textrm{\lstinline 1}}}\}:\textrm{% +<p class='ltx_p'><math id='Ch2.S2.I1.ix3.I1.i3.p1.m1' class='ltx_Math' alttext='{{{\forall\textrm{\lstinline{{\lst@@@set@language\lst@@@set@numbers% 
-\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>+\lst@@@set@frame\lst@@@set@rulecolor\lst@@@set@language\lst@@@set@numbers{% 
 +\@listingGroup{ltx_lst_identifier}{i}}}}}}\in\{0,\dots,\textrm{\lstinline{{% 
 +\lst@@@set@language\lst@@@set@numbers\lst@@@set@frame\lst@@@set@rulecolor% 
 +\lst@@@set@language\lst@@@set@numbers{\@listingGroup{ltx_lst_identifier}{shape% 
 +}}({\@listingGroup{ltx_lst_identifier}{iv}})[[0]]}}}}\}:\textrm{\lstinline{{% 
 +\lst@@@set@language\lst@@@set@numbers\lst@@@set@frame\lst@@@set@rulecolor% 
 +\lst@@@set@language\lst@@@set@numbers{\@listingGroup{ltx_lst_identifier}{iv}}[% 
 +[{\@listingGroup{ltx_lst_identifier}{i}}]]{\@listingGroup{ltx_lst_space}{~{}}}% 
 +\textless{\@listingGroup{ltx_lst_space}{~{}}}{\@listingGroup{% 
 +ltx_lst_identifier}{shape}}({\@listingGroup{ltx_lst_identifier}{a}})[[{% 
 +\@listingGroup{ltx_lst_identifier}{i}}]]}}}}' display='inline'><mrow><mrow><mrow><mo>∀</mo><mtext class='ltx_lst_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>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><</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 1602: Line 1704:
 </div> </div>
 </dd> </dd>
-<dt id='Ch2.I3.ix4' class='ltx_item'><span class='ltx_tag ltx_tag_description'>a[iv]=expr</span></dt>+<dt id='Ch2.S2.I1.ix4' class='ltx_item'><span class='ltx_tag ltx_tag_item'><span class='ltx_text ltx_font_bold'>a[iv]=expr</span></span></dt>
 <dd class='ltx_item'> <dd class='ltx_item'>
-<div id='Ch2.I3.ix4.p1' class='ltx_para'>+<div id='Ch2.S2.I1.ix4.p1' class='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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>a</span>. Only the element (subarray) at index position <span class='ltx_text ltx_lst_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>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.I2' class='ltx_itemize'> +<ul id='Ch2.S2.I1.ix4.I2' class='ltx_itemize'> 
-<li id='Ch2.I3.I2.i1' class='ltx_item' style='list-style-type:none;'> +<li id='Ch2.S2.I1.ix4.I2.i1' class='ltx_item' style='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_item'><span class='ltx_text ltx_font_bold'></span></span>  
-<div id='Ch2.I3.I2.i1.p1' class='ltx_para'>+<div id='Ch2.S2.I1.ix4.I2.i1.p1' class='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.i2' class='ltx_item' style='list-style-type:none;'> +<li id='Ch2.S2.I1.ix4.I2.i2' class='ltx_item' style='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_item'><span class='ltx_text ltx_font_bold'></span></span>  
-<div id='Ch2.I3.I2.i2.p1' class='ltx_para'> +<div id='Ch2.S2.I1.ix4.I2.i2.p1' class='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><=<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.i3' class='ltx_item' style='list-style-type:none;'> +<li id='Ch2.S2.I1.ix4.I2.i3' class='ltx_item' style='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_item'><span class='ltx_text ltx_font_bold'></span></span>  
-<div id='Ch2.I3.I2.i3.p1' class='ltx_para'> +<div id='Ch2.S2.I1.ix4.I2.i3.p1' class='ltx_para'> 
-<p class='ltx_p'><math id='Ch2.I3.I2.i3.p1.m1' class='ltx_Math' alttext='{{{{{{\forall\textrm{\lstinline 1}}}\in\{0,\dots,\textrm{\lstinline 1}}}\}:\textrm{% +<p class='ltx_p'><math id='Ch2.S2.I1.ix4.I2.i3.p1.m1' class='ltx_Math' alttext='{{{\forall\textrm{\lstinline{{\lst@@@set@language\lst@@@set@numbers% 
-\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>+\lst@@@set@frame\lst@@@set@rulecolor\lst@@@set@language\lst@@@set@numbers{% 
 +\@listingGroup{ltx_lst_identifier}{i}}}}}}\in\{0,\dots,\textrm{\lstinline{{% 
 +\lst@@@set@language\lst@@@set@numbers\lst@@@set@frame\lst@@@set@rulecolor% 
 +\lst@@@set@language\lst@@@set@numbers{\@listingGroup{ltx_lst_identifier}{shape% 
 +}}({\@listingGroup{ltx_lst_identifier}{iv}})[[0]]}}}}\}:\textrm{\lstinline{{% 
 +\lst@@@set@language\lst@@@set@numbers\lst@@@set@frame\lst@@@set@rulecolor% 
 +\lst@@@set@language\lst@@@set@numbers{\@listingGroup{ltx_lst_identifier}{iv}}[% 
 +[{\@listingGroup{ltx_lst_identifier}{i}}]]{\@listingGroup{ltx_lst_space}{~{}}}% 
 +\textless{\@listingGroup{ltx_lst_space}{~{}}}{\@listingGroup{% 
 +ltx_lst_identifier}{shape}}({\@listingGroup{ltx_lst_identifier}{a}})[[{% 
 +\@listingGroup{ltx_lst_identifier}{i}}]]}}}}' display='inline'><mrow><mrow><mrow><mo>∀</mo><mtext class='ltx_lst_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>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><</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.i4' class='ltx_item' style='list-style-type:none;'> +<li id='Ch2.S2.I1.ix4.I2.i4' class='ltx_item' style='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_item'><span class='ltx_text ltx_font_bold'></span></span>  
-<div id='Ch2.I3.I2.i4.p1' class='ltx_para'>+<div id='Ch2.S2.I1.ix4.I2.i4.p1' class='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>
Line 1640: Line 1752:
 </div> </div>
 </dd> </dd>
-<dt id='Ch2.I3.ix5' class='ltx_item'><span class='ltx_tag ltx_tag_description'>reshape(shp, expr)</span></dt>+<dt id='Ch2.S2.I1.ix5' class='ltx_item'><span class='ltx_tag ltx_tag_item'><span class='ltx_text ltx_font_bold'>reshape(shp, expr)</span></span></dt>
 <dd class='ltx_item'> <dd class='ltx_item'>
-<div id='Ch2.I3.ix5.p1' class='ltx_para'> +<div id='Ch2.S2.I1.ix5.p1' class='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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>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.I3' class='ltx_itemize'> +<ul id='Ch2.S2.I1.ix5.I3' class='ltx_itemize'> 
-<li id='Ch2.I3.I3.i1' class='ltx_item' style='list-style-type:none;'> +<li id='Ch2.S2.I1.ix5.I3.i1' class='ltx_item' style='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_item'><span class='ltx_text ltx_font_bold'></span></span>  
-<div id='Ch2.I3.I3.i1.p1' class='ltx_para'>+<div id='Ch2.S2.I1.ix5.I3.i1.p1' class='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.i2' class='ltx_item' style='list-style-type:none;'> +<li id='Ch2.S2.I1.ix5.I3.i2' class='ltx_item' style='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_item'><span class='ltx_text ltx_font_bold'></span></span>  
-<div id='Ch2.I3.I3.i2.p1' class='ltx_para'> +<div id='Ch2.S2.I1.ix5.I3.i2.p1' class='ltx_para'> 
-<p class='ltx_p'><math id='Ch2.I3.I3.i2.p1.m1' class='ltx_Math' alttext='{{{{{{{{\prod\limits_{i=0}^{{\textrm{\lstinline 1}}}}}\textrm{\lstinline 1}}}=\prod+<p class='ltx_p'><math id='Ch2.S2.I1.ix5.I3.i2.p1.m1' class='ltx_Math' alttext='{{{{\prod\limits_{i=0}^{{\textrm{\lstinline{{\lst@@@set@language\lst@@@set@numbers% 
-\limits_{i=0}^{{\textrm{\lstinline 1}}}}}\textrm{\lstinline 1}}}' display='inline'><mrow><mrow><munderover><mo largeop='true' movablelimits='false' symmetric='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='true' movablelimits='false' symmetric='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>+\lst@@@set@frame\lst@@@set@rulecolor\lst@@@set@language\lst@@@set@numbers{% 
 +\@listingGroup{ltx_lst_identifier}{shape}}({\@listingGroup{ltx_lst_identifier}% 
 +{shp}})[[0]]-1}}}}}}\textrm{\lstinline{{\lst@@@set@language\lst@@@set@numbers% 
 +\lst@@@set@frame\lst@@@set@rulecolor\lst@@@set@language\lst@@@set@numbers{% 
 +\@listingGroup{ltx_lst_identifier}{shp}}[[{\@listingGroup{ltx_lst_identifier}{
 +i}}]]}}}}=\prod\limits_{i=0}^{{\textrm{\lstinline{{\lst@@@set@language% 
 +\lst@@@set@numbers\lst@@@set@frame\lst@@@set@rulecolor\lst@@@set@language% 
 +\lst@@@set@numbers{\@listingGroup{ltx_lst_identifier}{dim}}({\@listingGroup{% 
 +ltx_lst_identifier}{expr}})-1}}}}}}\textrm{\lstinline{{\lst@@@set@language% 
 +\lst@@@set@numbers\lst@@@set@frame\lst@@@set@rulecolor\lst@@@set@language% 
 +\lst@@@set@numbers{\@listingGroup{ltx_lst_identifier}{shape}}({\@listingGroup{% 
 +ltx_lst_identifier}{expr}})[[{\@listingGroup{ltx_lst_identifier}{i}}]]}}}}' display='inline'><mrow><mrow><munderover><mo largeop='true' movablelimits='false' symmetric='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='true' movablelimits='false' symmetric='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 1663: Line 1786:
 </div> </div>
 </dd> </dd>
-<dt id='Ch2.I3.ix6' class='ltx_item'><span class='ltx_tag ltx_tag_description'>genarray(shp, expr)</span></dt>+<dt id='Ch2.S2.I1.ix6' class='ltx_item'><span class='ltx_tag ltx_tag_item'><span class='ltx_text ltx_font_bold'>genarray(shp, expr)</span></span></dt>
 <dd class='ltx_item'> <dd class='ltx_item'>
-<div id='Ch2.I3.ix6.p1' class='ltx_para'> +<div id='Ch2.S2.I1.ix6.p1' class='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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>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>
Line 1678: Line 1801:
 at a few example applications:</p> at a few example applications:</p>
 </div> </div>
-<figure id='LST9' class='ltx_float ltx_lstlisting ltx_role_listing'>+<figure id='LST9' class='ltx_float ltx_lstlisting'>
 <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,IHVzZSBTdGRJTzogYWxsOwogdXNlIEFycmF5OiBhbGw7CgogaW50IG1haW4oKQogewogICB2ZWN0ID0gWzEsMiwzLDQsNSw2LDcsOCw5LDEwLDExLDEyXTsKCiAgIG1hdCA9IHJlc2hhcGUoWzMsNF0sIHZlY3QpOwogICBwcmludChtYXQpOwoKICAgcHJpbnQobWF0W1sxLDFdXSk7CiAgIHByaW50KG1hdFtbMl1dKTsKICAgcHJpbnQobWF0W1tdXSk7CgogICBtYXRbWzEsMV1dID0gMDsKICAgcHJpbnQobWF0KTsKICAgbWF0W1syXV0gPSBbMCwwLDAsMF07CiAgIHByaW50KG1hdCk7CiAgIG1hdFtbXV0gPSBnZW5hcnJheShbMyw0XSwgMCk7CiAgIHByaW50KG1hdCk7CgogICBlbXB0eV92ZWN0ID0gW107CiAgIHByaW50KGVtcHR5X3ZlY3QpOwogICBlbXB0eV9tYXQgPSByZXNoYXBlKFsyMiwwXSwgZW1wdHlfdmVjdCk7CiAgIHByaW50KGVtcHR5X21hdCk7CiAgIHByaW50KGRpbShlbXB0eV9tYXQpKTsKICAgcHJpbnQoc2hhcGUoZW1wdHlfbWF0KSk7CgogICByZXR1cm4gMDsKIH0='>⬇</a></div> 
-<div class='ltx_listingline'> +<div id='lstnumberx92' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>1</span></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'>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 id='lstnumberx93' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>2</span></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'>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 id='lstnumberx94' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>3</span></span>+                    <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>3</span></span> 
 +                  
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx95' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>4</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'>main</span>()
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx96' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>5</span></span>{+                    <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>5</span></span> 
 +                  <span class='ltx_text ltx_lst_space'> </span>{
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx97' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx98' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>7</span></span>+                    <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>7</span></span> 
 +                  
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx99' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx100' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx101' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>10</span></span>+                    <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>10</span></span> 
 +                  
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx102' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx103' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx104' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx105' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>14</span></span>+                    <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>14</span></span> 
 +                  
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx106' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx107' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx108' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx109' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx110' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx111' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx112' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>21</span></span>+                    <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>21</span></span> 
 +                  
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx113' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx114' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx115' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx116' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx117' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx118' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx119' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>28</span></span>+                    <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>28</span></span> 
 +                  
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx120' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx121' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>30</span></span>}+                    <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>30</span></span> 
 +                  <span class='ltx_text ltx_lst_space'> </span>}
 </div> </div>
 </div> </div>
Line 1790: Line 1943:
 <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.p1' class='ltx_para'> <div id='Thmtheorem5.p1' class='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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>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.I4' class='ltx_itemize'> +<ul id='Ch2.S2.I2' class='ltx_itemize'> 
-<li id='Ch2.I4.i1' class='ltx_item' style='list-style-type:none;'> +<li id='Ch2.S2.I2.i1' class='ltx_item' style='list-style-type:none;'> 
-<span class='ltx_tag ltx_tag_itemize'>•</span>  +<span class='ltx_tag ltx_tag_item'>•</span>  
-<div id='Ch2.I4.i1.p1' class='ltx_para'> +<div id='Ch2.S2.I2.i1.p1' class='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'><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.I4.i2' class='ltx_item' style='list-style-type:none;'> +<li id='Ch2.S2.I2.i2' class='ltx_item' style='list-style-type:none;'> 
-<span class='ltx_tag ltx_tag_itemize'>•</span>  +<span class='ltx_tag ltx_tag_item'>•</span>  
-<div id='Ch2.I4.i2.p1' class='ltx_para'> +<div id='Ch2.S2.I2.i2.p1' class='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'><span class='ltx_text ltx_lst_identifier'>reshape</span>([3,0,5],<span class='ltx_text ltx_lst_space'> </span>[])[[1]]</span>?</p>
 </div> </div>
 </li> </li>
-<li id='Ch2.I4.i3' class='ltx_item' style='list-style-type:none;'> +<li id='Ch2.S2.I2.i3' class='ltx_item' style='list-style-type:none;'> 
-<span class='ltx_tag ltx_tag_itemize'>•</span>  +<span class='ltx_tag ltx_tag_item'>•</span>  
-<div id='Ch2.I4.i3.p1' class='ltx_para'> +<div id='Ch2.S2.I2.i3.p1' class='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'><span class='ltx_text ltx_lst_identifier'>reshape</span>([3,0,5],<span class='ltx_text ltx_lst_space'> </span>[])[[1,0]]</span>?</p>
 </div> </div>
 </li> </li>
-<li id='Ch2.I4.i4' class='ltx_item' style='list-style-type:none;'> +<li id='Ch2.S2.I2.i4' class='ltx_item' style='list-style-type:none;'> 
-<span class='ltx_tag ltx_tag_itemize'>•</span>  +<span class='ltx_tag ltx_tag_item'>•</span>  
-<div id='Ch2.I4.i4.p1' class='ltx_para'>+<div id='Ch2.S2.I2.i4.p1' class='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>
Line 1843: Line 1996:
 </div> </div>
 <div id='Ch2.S2.SS1.SSSx2.p3' class='ltx_para'> <div id='Ch2.S2.SS1.SSSx2.p3' class='ltx_para'>
-<dl id='Ch2.I5' class='ltx_description'> +<dl id='Ch2.S2.I3' class='ltx_description'> 
-<dt id='Ch2.I5.ix1' class='ltx_item'><span class='ltx_tag ltx_tag_description'>arithmetic operations</span></dt>+<dt id='Ch2.S2.I3.ix1' class='ltx_item'><span class='ltx_tag ltx_tag_item'><span class='ltx_text ltx_font_bold'>arithmetic operations</span></span></dt>
 <dd class='ltx_item'> <dd class='ltx_item'>
-<div id='Ch2.I5.ix1.p1' class='ltx_para'> +<div id='Ch2.S2.I3.ix1.p1' class='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.m1' class='ltx_Math' alttext='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.m2' class='ltx_Math' alttext='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.S2.I3.ix1.p1.m1' class='ltx_Math' alttext='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.S2.I3.ix1.p1.m2' class='ltx_Math' alttext='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.m3' class='ltx_Math' alttext='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.m4' class='ltx_Math' alttext='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.m5' class='ltx_Math' alttext='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.S2.I3.ix1.p1.m3' class='ltx_Math' alttext='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.S2.I3.ix1.p1.m4' class='ltx_Math' alttext='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.S2.I3.ix1.p1.m5' class='ltx_Math' alttext='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.m6' class='ltx_Math' alttext='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.m7' class='ltx_Math' alttext='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.m8' class='ltx_Math' alttext='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.m9' class='ltx_Math' alttext='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.S2.I3.ix1.p1.m6' class='ltx_Math' alttext='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.S2.I3.ix1.p1.m7' class='ltx_Math' alttext='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.S2.I3.ix1.p1.m8' class='ltx_Math' alttext='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.S2.I3.ix1.p1.m9' class='ltx_Math' alttext='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.m10' class='ltx_Math' alttext='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.m11' class='ltx_Math' alttext='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.S2.I3.ix1.p1.m10' class='ltx_Math' alttext='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.S2.I3.ix1.p1.m11' class='ltx_Math' alttext='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.m12' class='ltx_Math' alttext='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.S2.I3.ix1.p1.m12' class='ltx_Math' alttext='e_{1}' display='inline'><msub><mi>e</mi><mn>1</mn></msub></math> and 
-<math id='Ch2.I5.ix1.p1.m13' class='ltx_Math' alttext='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.S2.I3.ix1.p1.m13' class='ltx_Math' alttext='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.ix2' class='ltx_item'><span class='ltx_tag ltx_tag_description'>logical operations</span></dt>+<dt id='Ch2.S2.I3.ix2' class='ltx_item'><span class='ltx_tag ltx_tag_item'><span class='ltx_text ltx_font_bold'>logical operations</span></span></dt>
 <dd class='ltx_item'> <dd class='ltx_item'>
-<div id='Ch2.I5.ix2.p1' class='ltx_para'> +<div id='Ch2.S2.I3.ix2.p1' class='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.m1' class='ltx_Math' alttext='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.m2' class='ltx_Math' alttext='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.S2.I3.ix2.p1.m1' class='ltx_Math' alttext='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.S2.I3.ix2.p1.m2' class='ltx_Math' alttext='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.m3' class='ltx_Math' alttext='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.m4' class='ltx_Math' alttext='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.m5' class='ltx_Math' alttext='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.S2.I3.ix2.p1.m3' class='ltx_Math' alttext='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.S2.I3.ix2.p1.m4' class='ltx_Math' alttext='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.S2.I3.ix2.p1.m5' class='ltx_Math' alttext='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.ix3' class='ltx_item'><span class='ltx_tag ltx_tag_description'>relational operations</span></dt>+<dt id='Ch2.S2.I3.ix3' class='ltx_item'><span class='ltx_tag ltx_tag_item'><span class='ltx_text ltx_font_bold'>relational operations</span></span></dt>
 <dd class='ltx_item'> <dd class='ltx_item'>
-<div id='Ch2.I5.ix3.p1' class='ltx_para'> +<div id='Ch2.S2.I3.ix3.p1' class='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.m1' class='ltx_Math' alttext='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.m2' class='ltx_Math' alttext='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.S2.I3.ix3.p1.m1' class='ltx_Math' alttext='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.S2.I3.ix3.p1.m2' class='ltx_Math' alttext='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.m3' class='ltx_Math' alttext='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.m4' class='ltx_Math' alttext='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.m5' class='ltx_Math' alttext='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.m6' class='ltx_Math' alttext='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.S2.I3.ix3.p1.m3' class='ltx_Math' alttext='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.S2.I3.ix3.p1.m4' class='ltx_Math' alttext='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.S2.I3.ix3.p1.m5' class='ltx_Math' alttext='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.S2.I3.ix3.p1.m6' class='ltx_Math' alttext='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.m7' class='ltx_Math' alttext='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.m8' class='ltx_Math' alttext='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.S2.I3.ix3.p1.m7' class='ltx_Math' alttext='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.S2.I3.ix3.p1.m8' class='ltx_Math' alttext='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.m9' class='ltx_Math' alttext='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.m10' class='ltx_Math' alttext='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.S2.I3.ix3.p1.m9' class='ltx_Math' alttext='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.S2.I3.ix3.p1.m10' class='ltx_Math' alttext='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.m11' class='ltx_Math' alttext='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.m12' class='ltx_Math' alttext='e2' display='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.S2.I3.ix3.p1.m11' class='ltx_Math' alttext='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.S2.I3.ix3.p1.m12' class='ltx_Math' alttext='e2' display='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.m13' class='ltx_Math' alttext='e_{1}' display='inline'><msub><mi>e</mi><mn>1</mn></msub></math> and <math id='Ch2.I5.ix3.p1.m14' class='ltx_Math' alttext='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.S2.I3.ix3.p1.m13' class='ltx_Math' alttext='e_{1}' display='inline'><msub><mi>e</mi><mn>1</mn></msub></math> and <math id='Ch2.S2.I3.ix3.p1.m14' class='ltx_Math' alttext='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.ix4' class='ltx_item'><span class='ltx_tag ltx_tag_description'>max (<math id='Ch2.I5.ix4.m1' class='ltx_Math' alttext='e_{1}' display='inline'><msub><mi>e</mi><mn>1</mn></msub></math>, <math id='Ch2.I5.ix4.m2' class='ltx_Math' alttext='e_{2}' display='inline'><msub><mi>e</mi><mn>2</mn></msub></math>), min (<math id='Ch2.I5.ix4.m3' class='ltx_Math' alttext='e_{1}' display='inline'><msub><mi>e</mi><mn>1</mn></msub></math>, <math id='Ch2.I5.ix4.m4' class='ltx_Math' alttext='e_{2}' display='inline'><msub><mi>e</mi><mn>2</mn></msub></math>)</span></dt>+<dt id='Ch2.S2.I3.ix4' class='ltx_item'><span class='ltx_tag ltx_tag_item'><span class='ltx_text ltx_font_bold'>max (<math id='Ch2.S2.I3.ix4.m1' class='ltx_Math' alttext='e_{1}' display='inline'><msub><mi>e</mi><mn mathvariant='normal'>1</mn></msub></math>, <math id='Ch2.S2.I3.ix4.m2' class='ltx_Math' alttext='e_{2}' display='inline'><msub><mi>e</mi><mn mathvariant='normal'>2</mn></msub></math>), min (<math id='Ch2.S2.I3.ix4.m3' class='ltx_Math' alttext='e_{1}' display='inline'><msub><mi>e</mi><mn mathvariant='normal'>1</mn></msub></math>, <math id='Ch2.S2.I3.ix4.m4' class='ltx_Math' alttext='e_{2}' display='inline'><msub><mi>e</mi><mn mathvariant='normal'>2</mn></msub></math>)</span></span></dt>
 <dd class='ltx_item'> <dd class='ltx_item'>
-<div id='Ch2.I5.ix4.p1' class='ltx_para'>+<div id='Ch2.S2.I3.ix4.p1' class='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.m1' class='ltx_Math' alttext='e_{1}' display='inline'><msub><mi>e</mi><mn>1</mn></msub></math> and <math id='Ch2.I5.ix4.p1.m2' class='ltx_Math' alttext='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.S2.I3.ix4.p1.m1' class='ltx_Math' alttext='e_{1}' display='inline'><msub><mi>e</mi><mn>1</mn></msub></math> and <math id='Ch2.S2.I3.ix4.p1.m2' class='ltx_Math' alttext='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.ix5' class='ltx_item'><span class='ltx_tag ltx_tag_description'>where (p, <math id='Ch2.I5.ix5.m1' class='ltx_Math' alttext='e_{1}' display='inline'><msub><mi>e</mi><mn>1</mn></msub></math>, <math id='Ch2.I5.ix5.m2' class='ltx_Math' alttext='e_{2}' display='inline'><msub><mi>e</mi><mn>2</mn></msub></math>)</span></dt>+<dt id='Ch2.S2.I3.ix5' class='ltx_item'><span class='ltx_tag ltx_tag_item'><span class='ltx_text ltx_font_bold'>where (p, <math id='Ch2.S2.I3.ix5.m1' class='ltx_Math' alttext='e_{1}' display='inline'><msub><mi>e</mi><mn mathvariant='normal'>1</mn></msub></math>, <math id='Ch2.S2.I3.ix5.m2' class='ltx_Math' alttext='e_{2}' display='inline'><msub><mi>e</mi><mn mathvariant='normal'>2</mn></msub></math>)</span></span></dt>
 <dd class='ltx_item'> <dd class='ltx_item'>
-<div id='Ch2.I5.ix5.p1' class='ltx_para'>+<div id='Ch2.S2.I3.ix5.p1' class='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.m1' class='ltx_Math' alttext='p' display='inline'><mi>p</mi></math>, <math id='Ch2.I5.ix5.p1.m2' class='ltx_Math' alttext='e_{1}' display='inline'><msub><mi>e</mi><mn>1</mn></msub></math>, and <math id='Ch2.I5.ix5.p1.m3' class='ltx_Math' alttext='e_{2}' display='inline'><msub><mi>e</mi><mn>2</mn></msub></math> either to have identical shapes+It expects <math id='Ch2.S2.I3.ix5.p1.m1' class='ltx_Math' alttext='p' display='inline'><mi>p</mi></math>, <math id='Ch2.S2.I3.ix5.p1.m2' class='ltx_Math' alttext='e_{1}' display='inline'><msub><mi>e</mi><mn>1</mn></msub></math>, and <math id='Ch2.S2.I3.ix5.p1.m3' class='ltx_Math' alttext='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.m4' class='ltx_Math' alttext='e_{1}' display='inline'><msub><mi>e</mi><mn>1</mn></msub></math> or <math id='Ch2.I5.ix5.p1.m5' class='ltx_Math' alttext='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.m6' class='ltx_Math' alttext='p' display='inline'><mi>p</mi></math>.+<math id='Ch2.S2.I3.ix5.p1.m4' class='ltx_Math' alttext='e_{1}' display='inline'><msub><mi>e</mi><mn>1</mn></msub></math> or <math id='Ch2.S2.I3.ix5.p1.m5' class='ltx_Math' alttext='e_{2}' display='inline'><msub><mi>e</mi><mn>2</mn></msub></math> depending on the value (s) of <math id='Ch2.S2.I3.ix5.p1.m6' class='ltx_Math' alttext='p' display='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.I1' class='ltx_itemize'> +<ul id='Ch2.S2.I3.ix5.I1' class='ltx_itemize'> 
-<li id='Ch2.I5.I1.i1' class='ltx_item' style='list-style-type:none;'> +<li id='Ch2.S2.I3.ix5.I1.i1' class='ltx_item' style='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_item'><span class='ltx_text ltx_font_bold'></span></span>  
-<div id='Ch2.I5.I1.i1.p1' class='ltx_para'> +<div id='Ch2.S2.I3.ix5.I1.i1.p1' class='ltx_para'> 
-<p class='ltx_p'>the element type of <math id='Ch2.I5.I1.i1.p1.m1' class='ltx_Math' alttext='p' display='inline'><mi>p</mi></math> has to be boolean+<p class='ltx_p'>the element type of <math id='Ch2.S2.I3.ix5.I1.i1.p1.m1' class='ltx_Math' alttext='p' display='inline'><mi>p</mi></math> has to be boolean
 </p> </p>
 </div> </div>
 </li> </li>
-<li id='Ch2.I5.I1.i2' class='ltx_item' style='list-style-type:none;'> +<li id='Ch2.S2.I3.ix5.I1.i2' class='ltx_item' style='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_item'><span class='ltx_text ltx_font_bold'></span></span>  
-<div id='Ch2.I5.I1.i2.p1' class='ltx_para'> +<div id='Ch2.S2.I3.ix5.I1.i2.p1' class='ltx_para'> 
-<p class='ltx_p'>the element types of <math id='Ch2.I5.I1.i2.p1.m1' class='ltx_Math' alttext='e_{1}' display='inline'><msub><mi>e</mi><mn>1</mn></msub></math> and <math id='Ch2.I5.I1.i2.p1.m2' class='ltx_Math' alttext='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.S2.I3.ix5.I1.i2.p1.m1' class='ltx_Math' alttext='e_{1}' display='inline'><msub><mi>e</mi><mn>1</mn></msub></math> and <math id='Ch2.S2.I3.ix5.I1.i2.p1.m2' class='ltx_Math' alttext='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.i3' class='ltx_item' style='list-style-type:none;'> +<li id='Ch2.S2.I3.ix5.I1.i3' class='ltx_item' style='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_item'><span class='ltx_text ltx_font_bold'></span></span>  
-<div id='Ch2.I5.I1.i3.p1' class='ltx_para'> +<div id='Ch2.S2.I3.ix5.I1.i3.p1' class='ltx_para'> 
-<p class='ltx_p'><math id='Ch2.I5.I1.i3.p1.m1' class='ltx_Math' alttext='{{{{{{{{{{{{{{\exists\textrm{\lstinline 1}}}:((\textrm{\lstinline 1}}}\vee\textrm{\lstinline +<p class='ltx_p'><math id='Ch2.S2.I3.ix5.I1.i3.p1.m1' class='ltx_Math' alttext='{{{{{{{\exists\textrm{\lstinline{{\lst@@@set@language\lst@@@set@numbers% 
-1+\lst@@@set@frame\lst@@@set@rulecolor\lst@@@set@language\lst@@@set@numbers{% 
-}}})\wedge(\textrm{\lstinline 1}}}\vee\textrm{\lstinline 1}}})\wedge(\textrm{% +\@listingGroup{ltx_lst_identifier}{shp}}}}}}:((\textrm{\lstinline{{% 
-\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>+\lst@@@set@language\lst@@@set@numbers\lst@@@set@frame\lst@@@set@rulecolor% 
 +\lst@@@set@language\lst@@@set@numbers{\@listingGroup{ltx_lst_identifier}{shape% 
 +}}({\@listingGroup{ltx_lst_identifier}{p}}){\@listingGroup{ltx_lst_space}{~{}}% 
 +}=={\@listingGroup{ltx_lst_space}{~{}}}{\@listingGroup{ltx_lst_identifier}{shp% 
 +}}}}}}\vee\textrm{\lstinline{{\lst@@@set@language\lst@@@set@numbers% 
 +\lst@@@set@frame\lst@@@set@rulecolor\lst@@@set@language\lst@@@set@numbers{
 +\@listingGroup{ltx_lst_identifier}{shape}}({\@listingGroup{ltx_lst_identifier}% 
 +{p}}){\@listingGroup{ltx_lst_space}{~{}}}=={\@listingGroup{ltx_lst_space}{~{}}% 
 +}[]}}}})\wedge(\textrm{\lstinline{{\lst@@@set@language\lst@@@set@numbers% 
 +\lst@@@set@frame\lst@@@set@rulecolor\lst@@@set@language\lst@@@set@numbers{% 
 +\@listingGroup{ltx_lst_identifier}{shape}}({\@listingGroup{ltx_lst_identifier}% 
 +{e\textunderscore 1}}){\@listingGroup{ltx_lst_space}{~{}}}=={\@listingGroup{% 
 +ltx_lst_space}{~{}}}{\@listingGroup{ltx_lst_identifier}{shp}}}}}}\vee\textrm{
 +\lstinline{{\lst@@@set@language\lst@@@set@numbers\lst@@@set@frame% 
 +\lst@@@set@rulecolor\lst@@@set@language\lst@@@set@numbers{\@listingGroup{% 
 +ltx_lst_identifier}{shape}}({\@listingGroup{ltx_lst_identifier}{e% 
 +\textunderscore 1}}){\@listingGroup{ltx_lst_space}{~{}}}=={\@listingGroup{% 
 +ltx_lst_space}{~{}}}[]}}}})\wedge(\textrm{\lstinline{{\lst@@@set@language
 +\lst@@@set@numbers\lst@@@set@frame\lst@@@set@rulecolor\lst@@@set@language% 
 +\lst@@@set@numbers{\@listingGroup{ltx_lst_identifier}{shape}}({\@listingGroup{% 
 +ltx_lst_identifier}{e\textunderscore 2}}){\@listingGroup{ltx_lst_space}{~{}}}=% 
 +={\@listingGroup{ltx_lst_space}{~{}}}{\@listingGroup{ltx_lst_identifier}{shp}}% 
 +}}}}\vee\textrm{\lstinline{{\lst@@@set@language\lst@@@set@numbers% 
 +\lst@@@set@frame\lst@@@set@rulecolor\lst@@@set@language\lst@@@set@numbers{% 
 +\@listingGroup{ltx_lst_identifier}{shape}}({\@listingGroup{ltx_lst_identifier}% 
 +{e\textunderscore 2}}){\@listingGroup{ltx_lst_space}{~{}}}=={\@listingGroup{% 
 +ltx_lst_space}{~{}}}[]}}}}))' display='inline'><mrow><mrow><mo>∃</mo><mtext class='ltx_lst_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>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 1924: Line 2103:
 Nevertheless, we present a few examples:</p> Nevertheless, we present a few examples:</p>
 </div> </div>
-<figure id='LST10' class='ltx_float ltx_lstlisting ltx_role_listing'>+<figure id='LST10' class='ltx_float ltx_lstlisting'>
 <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,IHVzZSBTdGRJTzogYWxsOwogdXNlIEFycmF5OiBhbGw7CgogaW50IG1haW4oKQogewogICB2ZWN0ID0gWzEsMiwzLDQsNSw2LDcsOCw5XTsKCiAgIG1hdCA9IFt2ZWN0LCB2ZWN0KzEwLCB2ZWN0KzIwXTsKICAgcHJpbnQobWF0KTsKCiAgIG1hdDIgPSB3aGVyZShtYXQgJSAyID09IDAsIG1hdCwgLW1hdCk7CiAgIHByaW50KG1hdDIpOwoKICAgcHJpbnQobWF4KG1hdDIsIDApKTsKCiAgIHJldHVybiAwOwogfQ=='>⬇</a></div> 
-<div class='ltx_listingline'> +<div id='lstnumberx122' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>1</span></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'>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 id='lstnumberx123' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>2</span></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'>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 id='lstnumberx124' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>3</span></span>+                    <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>3</span></span> 
 +                  
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx125' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>4</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'>main</span>()
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx126' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>5</span></span>{+                    <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>5</span></span> 
 +                  <span class='ltx_text ltx_lst_space'> </span>{
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx127' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx128' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>7</span></span>+                    <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>7</span></span> 
 +                  
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx129' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx130' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx131' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>10</span></span>+                    <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>10</span></span> 
 +                  
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx132' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx133' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx134' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>13</span></span>+                    <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>13</span></span> 
 +                  
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx135' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx136' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>15</span></span>+                    <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>15</span></span> 
 +                  
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx137' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx138' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>17</span></span>}+                    <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>17</span></span> 
 +                  <span class='ltx_text ltx_lst_space'> </span>}
 </div> </div>
 </div> </div>
Line 1983: Line 2179:
 <div id='Ch2.S2.SS1.SSSx2.p5' class='ltx_para'> <div id='Ch2.S2.SS1.SSSx2.p5' class='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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>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>0</span> denotes a matrix of boolean values.</p>
 </div> </div>
 <div id='Thmtheorem6' class='ltx_theorem ltx_theorem_theorem'> <div id='Thmtheorem6' class='ltx_theorem ltx_theorem_theorem'>
Line 1994: Line 2190:
 <div id='Thmtheorem6.p1' class='ltx_para'> <div id='Thmtheorem6.p1' class='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.I6' class='ltx_itemize'> +<ul id='Ch2.S2.I4' class='ltx_itemize'> 
-<li id='Ch2.I6.i1' class='ltx_item' style='list-style-type:none;'> +<li id='Ch2.S2.I4.i1' class='ltx_item' style='list-style-type:none;'> 
-<span class='ltx_tag ltx_tag_itemize'>•</span>  +<span class='ltx_tag ltx_tag_item'>•</span>  
-<div id='Ch2.I6.i1.p1' class='ltx_para'>+<div id='Ch2.S2.I4.i1.p1' class='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.i2' class='ltx_item' style='list-style-type:none;'> +<li id='Ch2.S2.I4.i2' class='ltx_item' style='list-style-type:none;'> 
-<span class='ltx_tag ltx_tag_itemize'>•</span>  +<span class='ltx_tag ltx_tag_item'>•</span>  
-<div id='Ch2.I6.i2.p1' class='ltx_para'>+<div id='Ch2.S2.I4.i2.p1' class='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.i3' class='ltx_item' style='list-style-type:none;'> +<li id='Ch2.S2.I4.i3' class='ltx_item' style='list-style-type:none;'> 
-<span class='ltx_tag ltx_tag_itemize'>•</span>  +<span class='ltx_tag ltx_tag_item'>•</span>  
-<div id='Ch2.I6.i3.p1' class='ltx_para'>+<div id='Ch2.S2.I4.i3.p1' class='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>
Line 2027: Line 2223:
 </div> </div>
 <div id='Ch2.S2.SS1.SSSx3.p2' class='ltx_para'> <div id='Ch2.S2.SS1.SSSx3.p2' class='ltx_para'>
-<dl id='Ch2.I7' class='ltx_description'> +<dl id='Ch2.S2.I5' class='ltx_description'> 
-<dt id='Ch2.I7.ix1' class='ltx_item'><span class='ltx_tag ltx_tag_description'>take(sv, a)</span></dt>+<dt id='Ch2.S2.I5.ix1' class='ltx_item'><span class='ltx_tag ltx_tag_item'><span class='ltx_text ltx_font_bold'>take(sv, a)</span></span></dt>
 <dd class='ltx_item'> <dd class='ltx_item'>
-<div id='Ch2.I7.ix1.p1' class='ltx_para'> +<div id='Ch2.S2.I5.ix1.p1' class='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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>sv</span>. Each element of <span class='ltx_text ltx_lst_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>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.I1' class='ltx_itemize'> +<ul id='Ch2.S2.I5.ix1.I1' class='ltx_itemize'> 
-<li id='Ch2.I7.I1.i1' class='ltx_item' style='list-style-type:none;'> +<li id='Ch2.S2.I5.ix1.I1.i1' class='ltx_item' style='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_item'><span class='ltx_text ltx_font_bold'></span></span>  
-<div id='Ch2.I7.I1.i1.p1' class='ltx_para'>+<div id='Ch2.S2.I5.ix1.I1.i1.p1' class='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.i2' class='ltx_item' style='list-style-type:none;'> +<li id='Ch2.S2.I5.ix1.I1.i2' class='ltx_item' style='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_item'><span class='ltx_text ltx_font_bold'></span></span>  
-<div id='Ch2.I7.I1.i2.p1' class='ltx_para'> +<div id='Ch2.S2.I5.ix1.I1.i2.p1' class='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><=<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.i3' class='ltx_item' style='list-style-type:none;'> +<li id='Ch2.S2.I5.ix1.I1.i3' class='ltx_item' style='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_item'><span class='ltx_text ltx_font_bold'></span></span>  
-<div id='Ch2.I7.I1.i3.p1' class='ltx_para'> +<div id='Ch2.S2.I5.ix1.I1.i3.p1' class='ltx_para'> 
-<p class='ltx_p'><math id='Ch2.I7.I1.i3.p1.m1' class='ltx_Math' alttext='{{{{{{\forall\textrm{\lstinline 1}}}\in\{0,\dots,\textrm{\lstinline 1}}}\}:\textrm{% +<p class='ltx_p'><math id='Ch2.S2.I5.ix1.I1.i3.p1.m1' class='ltx_Math' alttext='{{{\forall\textrm{\lstinline{{\lst@@@set@language\lst@@@set@numbers% 
-\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>+\lst@@@set@frame\lst@@@set@rulecolor\lst@@@set@language\lst@@@set@numbers{% 
 +\@listingGroup{ltx_lst_identifier}{i}}}}}}\in\{0,\dots,\textrm{\lstinline{{% 
 +\lst@@@set@language\lst@@@set@numbers\lst@@@set@frame\lst@@@set@rulecolor% 
 +\lst@@@set@language\lst@@@set@numbers{\@listingGroup{ltx_lst_identifier}{shape% 
 +}}({\@listingGroup{ltx_lst_identifier}{sv}})[[0]]}}}}\}:\textrm{\lstinline{{% 
 +\lst@@@set@language\lst@@@set@numbers\lst@@@set@frame\lst@@@set@rulecolor% 
 +\lst@@@set@language\lst@@@set@numbers{\@listingGroup{ltx_lst_identifier}{sv}}[% 
 +[{\@listingGroup{ltx_lst_identifier}{i}}]]{\@listingGroup{ltx_lst_space}{~{}}}% 
 +\textless={\@listingGroup{ltx_lst_space}{~{}}}{\@listingGroup{% 
 +ltx_lst_identifier}{shape}}({\@listingGroup{ltx_lst_identifier}{a}})[[{% 
 +\@listingGroup{ltx_lst_identifier}{i}}]]}}}}' display='inline'><mrow><mrow><mrow><mo>∀</mo><mtext class='ltx_lst_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>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><=</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 2064: Line 2270:
 </div> </div>
 </dd> </dd>
-<dt id='Ch2.I7.ix2' class='ltx_item'><span class='ltx_tag ltx_tag_description'>drop(sv, a)</span></dt>+<dt id='Ch2.S2.I5.ix2' class='ltx_item'><span class='ltx_tag ltx_tag_item'><span class='ltx_text ltx_font_bold'>drop(sv, a)</span></span></dt>
 <dd class='ltx_item'> <dd class='ltx_item'>
-<div id='Ch2.I7.ix2.p1' class='ltx_para'> +<div id='Ch2.S2.I5.ix2.p1' class='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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>sv</span>. Each element of <span class='ltx_text ltx_lst_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>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.I2' class='ltx_itemize'> +<ul id='Ch2.S2.I5.ix2.I2' class='ltx_itemize'> 
-<li id='Ch2.I7.I2.i1' class='ltx_item' style='list-style-type:none;'> +<li id='Ch2.S2.I5.ix2.I2.i1' class='ltx_item' style='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_item'><span class='ltx_text ltx_font_bold'></span></span>  
-<div id='Ch2.I7.I2.i1.p1' class='ltx_para'>+<div id='Ch2.S2.I5.ix2.I2.i1.p1' class='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.i2' class='ltx_item' style='list-style-type:none;'> +<li id='Ch2.S2.I5.ix2.I2.i2' class='ltx_item' style='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_item'><span class='ltx_text ltx_font_bold'></span></span>  
-<div id='Ch2.I7.I2.i2.p1' class='ltx_para'> +<div id='Ch2.S2.I5.ix2.I2.i2.p1' class='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><=<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.i3' class='ltx_item' style='list-style-type:none;'> +<li id='Ch2.S2.I5.ix2.I2.i3' class='ltx_item' style='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_item'><span class='ltx_text ltx_font_bold'></span></span>  
-<div id='Ch2.I7.I2.i3.p1' class='ltx_para'> +<div id='Ch2.S2.I5.ix2.I2.i3.p1' class='ltx_para'> 
-<p class='ltx_p'><math id='Ch2.I7.I2.i3.p1.m1' class='ltx_Math' alttext='{{{{{{\forall\textrm{\lstinline 1}}}\in\{0,\dots,\textrm{\lstinline 1}}}\}:\textrm{% +<p class='ltx_p'><math id='Ch2.S2.I5.ix2.I2.i3.p1.m1' class='ltx_Math' alttext='{{{\forall\textrm{\lstinline{{\lst@@@set@language\lst@@@set@numbers% 
-\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>+\lst@@@set@frame\lst@@@set@rulecolor\lst@@@set@language\lst@@@set@numbers{% 
 +\@listingGroup{ltx_lst_identifier}{i}}}}}}\in\{0,\dots,\textrm{\lstinline{{% 
 +\lst@@@set@language\lst@@@set@numbers\lst@@@set@frame\lst@@@set@rulecolor% 
 +\lst@@@set@language\lst@@@set@numbers{\@listingGroup{ltx_lst_identifier}{shape% 
 +}}({\@listingGroup{ltx_lst_identifier}{sv}})[[0]]}}}}\}:\textrm{\lstinline{{% 
 +\lst@@@set@language\lst@@@set@numbers\lst@@@set@frame\lst@@@set@rulecolor% 
 +\lst@@@set@language\lst@@@set@numbers{\@listingGroup{ltx_lst_identifier}{sv}}[% 
 +[{\@listingGroup{ltx_lst_identifier}{i}}]]{\@listingGroup{ltx_lst_space}{~{}}}% 
 +\textless={\@listingGroup{ltx_lst_space}{~{}}}{\@listingGroup{% 
 +ltx_lst_identifier}{shape}}({\@listingGroup{ltx_lst_identifier}{a}})[[{% 
 +\@listingGroup{ltx_lst_identifier}{i}}]]}}}}' display='inline'><mrow><mrow><mrow><mo>∀</mo><mtext class='ltx_lst_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>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><=</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 2100: Line 2316:
 </div> </div>
 </dd> </dd>
-<dt id='Ch2.I7.ix3' class='ltx_item'><span class='ltx_tag ltx_tag_description'>tile(sv, ov, a)</span></dt>+<dt id='Ch2.S2.I5.ix3' class='ltx_item'><span class='ltx_tag ltx_tag_item'><span class='ltx_text ltx_font_bold'>tile(sv, ov, a)</span></span></dt>
 <dd class='ltx_item'> <dd class='ltx_item'>
-<div id='Ch2.I7.ix3.p1' class='ltx_para'> +<div id='Ch2.S2.I5.ix3.p1' class='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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>sv</span> from <span class='ltx_text ltx_lst_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>sv</span> or <span class='ltx_text ltx_lst_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>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.I3' class='ltx_itemize'> +<ul id='Ch2.S2.I5.ix3.I3' class='ltx_itemize'> 
-<li id='Ch2.I7.I3.i1' class='ltx_item' style='list-style-type:none;'> +<li id='Ch2.S2.I5.ix3.I3.i1' class='ltx_item' style='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_item'><span class='ltx_text ltx_font_bold'></span></span>  
-<div id='Ch2.I7.I3.i1.p1' class='ltx_para'>+<div id='Ch2.S2.I5.ix3.I3.i1.p1' class='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.i2' class='ltx_item' style='list-style-type:none;'> +<li id='Ch2.S2.I5.ix3.I3.i2' class='ltx_item' style='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_item'><span class='ltx_text ltx_font_bold'></span></span>  
-<div id='Ch2.I7.I3.i2.p1' class='ltx_para'> +<div id='Ch2.S2.I5.ix3.I3.i2.p1' class='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><=<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.i3' class='ltx_item' style='list-style-type:none;'> +<li id='Ch2.S2.I5.ix3.I3.i3' class='ltx_item' style='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_item'><span class='ltx_text ltx_font_bold'></span></span>  
-<div id='Ch2.I7.I3.i3.p1' class='ltx_para'> +<div id='Ch2.S2.I5.ix3.I3.i3.p1' class='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><=<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.i4' class='ltx_item' style='list-style-type:none;'> +<li id='Ch2.S2.I5.ix3.I3.i4' class='ltx_item' style='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_item'><span class='ltx_text ltx_font_bold'></span></span>  
-<div id='Ch2.I7.I3.i4.p1' class='ltx_para'> +<div id='Ch2.S2.I5.ix3.I3.i4.p1' class='ltx_para'> 
-<p class='ltx_p'><math id='Ch2.I7.I3.i4.p1.m1' class='ltx_Math' alttext='{{{{{{\forall\textrm{\lstinline 1}}}\in\{0,\dots,\textrm{\lstinline 1}}}\}:\textrm{% +<p class='ltx_p'><math id='Ch2.S2.I5.ix3.I3.i4.p1.m1' class='ltx_Math' alttext='{{{\forall\textrm{\lstinline{{\lst@@@set@language\lst@@@set@numbers% 
-\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>+\lst@@@set@frame\lst@@@set@rulecolor\lst@@@set@language\lst@@@set@numbers{% 
 +\@listingGroup{ltx_lst_identifier}{i}}}}}}\in\{0,\dots,\textrm{\lstinline{{% 
 +\lst@@@set@language\lst@@@set@numbers\lst@@@set@frame\lst@@@set@rulecolor% 
 +\lst@@@set@language\lst@@@set@numbers{\@listingGroup{ltx_lst_identifier}{shape% 
 +}}({\@listingGroup{ltx_lst_identifier}{ov}})[[0]]}}}}\}:\textrm{\lstinline{{% 
 +\lst@@@set@language\lst@@@set@numbers\lst@@@set@frame\lst@@@set@rulecolor% 
 +\lst@@@set@language\lst@@@set@numbers{\@listingGroup{ltx_lst_identifier}{ov}}[% 
 +[{\@listingGroup{ltx_lst_identifier}{i}}]]{\@listingGroup{ltx_lst_space}{~{}}}% 
 +\textless={\@listingGroup{ltx_lst_space}{~{}}}{\@listingGroup{% 
 +ltx_lst_identifier}{shape}}({\@listingGroup{ltx_lst_identifier}{a}})[[{% 
 +\@listingGroup{ltx_lst_identifier}{i}}]]}}}}' display='inline'><mrow><mrow><mrow><mo>∀</mo><mtext class='ltx_lst_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>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><=</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.i5' class='ltx_item' style='list-style-type:none;'> +<li id='Ch2.S2.I5.ix3.I3.i5' class='ltx_item' style='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_item'><span class='ltx_text ltx_font_bold'></span></span>  
-<div id='Ch2.I7.I3.i5.p1' class='ltx_para'> +<div id='Ch2.S2.I5.ix3.I3.i5.p1' class='ltx_para'> 
-<p class='ltx_p'><math id='Ch2.I7.I3.i5.p1.m1' class='ltx_Math' alttext='{{{{{{\forall\textrm{\lstinline 1}}}\in\{0,\dots,\textrm{\lstinline 1}}}\}:\textrm{% +<p class='ltx_p'><math id='Ch2.S2.I5.ix3.I3.i5.p1.m1' class='ltx_Math' alttext='{{{\forall\textrm{\lstinline{{\lst@@@set@language\lst@@@set@numbers% 
-\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>+\lst@@@set@frame\lst@@@set@rulecolor\lst@@@set@language\lst@@@set@numbers{% 
 +\@listingGroup{ltx_lst_identifier}{i}}}}}}\in\{0,\dots,\textrm{\lstinline{{% 
 +\lst@@@set@language\lst@@@set@numbers\lst@@@set@frame\lst@@@set@rulecolor% 
 +\lst@@@set@language\lst@@@set@numbers{\@listingGroup{ltx_lst_identifier}{min}}% 
 +({\@listingGroup{ltx_lst_identifier}{shape}}({\@listingGroup{% 
 +ltx_lst_identifier}{ov}})[[0]],{\@listingGroup{ltx_lst_space}{~{}}}{% 
 +\@listingGroup{ltx_lst_identifier}{shape}}({\@listingGroup{ltx_lst_identifier}% 
 +{sv}})[[0]])}}}}\}:\textrm{\lstinline{{\lst@@@set@language\lst@@@set@numbers
 +\lst@@@set@frame\lst@@@set@rulecolor\lst@@@set@language\lst@@@set@numbers{% 
 +\@listingGroup{ltx_lst_identifier}{ov}}[[{\@listingGroup{ltx_lst_identifier}{i% 
 +}}]]{\@listingGroup{ltx_lst_space}{~{}}}+{\@listingGroup{ltx_lst_space}{~{}}}{% 
 +\@listingGroup{ltx_lst_identifier}{sv}}[[{\@listingGroup{ltx_lst_identifier}{i% 
 +}}]]{\@listingGroup{ltx_lst_space}{~{}}}\textless={\@listingGroup{% 
 +ltx_lst_space}{~{}}}{\@listingGroup{ltx_lst_identifier}{shape}}({% 
 +\@listingGroup{ltx_lst_identifier}{a}})[[{\@listingGroup{ltx_lst_identifier}{i% 
 +}}]]}}}}' display='inline'><mrow><mrow><mrow><mo>∀</mo><mtext class='ltx_lst_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>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><=</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.i6' class='ltx_item' style='list-style-type:none;'> +<li id='Ch2.S2.I5.ix3.I3.i6' class='ltx_item' style='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_item'><span class='ltx_text ltx_font_bold'></span></span>  
-<div id='Ch2.I7.I3.i6.p1' class='ltx_para'> +<div id='Ch2.S2.I5.ix3.I3.i6.p1' class='ltx_para'> 
-<p class='ltx_p'><math id='Ch2.I7.I3.i6.p1.m1' class='ltx_Math' alttext='{{{{{{{{\forall\textrm{\lstinline 1}}}\in\{\textrm{\lstinline 1}}},\dots,\textrm{% +<p class='ltx_p'><math id='Ch2.S2.I5.ix3.I3.i6.p1.m1' class='ltx_Math' alttext='{{{{\forall\textrm{\lstinline{{\lst@@@set@language\lst@@@set@numbers% 
-\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>+\lst@@@set@frame\lst@@@set@rulecolor\lst@@@set@language\lst@@@set@numbers{% 
 +\@listingGroup{ltx_lst_identifier}{i}}}}}}\in\{\textrm{\lstinline{{% 
 +\lst@@@set@language\lst@@@set@numbers\lst@@@set@frame\lst@@@set@rulecolor% 
 +\lst@@@set@language\lst@@@set@numbers{\@listingGroup{ltx_lst_identifier}{min}}% 
 +({\@listingGroup{ltx_lst_identifier}{shape}}({\@listingGroup{% 
 +ltx_lst_identifier}{ov}})[[0]],{\@listingGroup{ltx_lst_space}{~{}}}{% 
 +\@listingGroup{ltx_lst_identifier}{shape}}({\@listingGroup{ltx_lst_identifier}% 
 +{sv}})[[0]])}}}},\dots,\textrm{\lstinline{{\lst@@@set@language
 +\lst@@@set@numbers\lst@@@set@frame\lst@@@set@rulecolor\lst@@@set@language% 
 +\lst@@@set@numbers{\@listingGroup{ltx_lst_identifier}{shape}}({\@listingGroup{% 
 +ltx_lst_identifier}{sv}})[[0]]}}}}\}:\textrm{\lstinline{{\lst@@@set@language% 
 +\lst@@@set@numbers\lst@@@set@frame\lst@@@set@rulecolor\lst@@@set@language% 
 +\lst@@@set@numbers{\@listingGroup{ltx_lst_identifier}{sv}}[[{\@listingGroup{% 
 +ltx_lst_identifier}{i}}]]{\@listingGroup{ltx_lst_space}{~{}}}\textless={% 
 +\@listingGroup{ltx_lst_space}{~{}}}{\@listingGroup{ltx_lst_identifier}{shape}}% 
 +({\@listingGroup{ltx_lst_identifier}{a}})[[{\@listingGroup{ltx_lst_identifier}% 
 +{i}}]]}}}}' display='inline'><mrow><mrow><mrow><mo>∀</mo><mtext class='ltx_lst_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>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><=</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 2153: Line 2410:
 </div> </div>
 </dd> </dd>
-<dt id='Ch2.I7.ix4' class='ltx_item'><span class='ltx_tag ltx_tag_description'><math id='Ch2.I7.ix4.m1' class='ltx_Math' alttext='e_{1}' display='inline'><msub><mi>e</mi><mn>1</mn></msub></math> ++ <math id='Ch2.I7.ix4.m2' class='ltx_Math' alttext='e_{2}' display='inline'><msub><mi>e</mi><mn>2</mn></msub></math></span></dt>+<dt id='Ch2.S2.I5.ix4' class='ltx_item'><span class='ltx_tag ltx_tag_item'><math id='Ch2.S2.I5.ix4.m1' class='ltx_Math' alttext='e_{1}' display='inline'><msub><mi>e</mi><mn>1</mn></msub></math><span class='ltx_text ltx_font_bold'> ++ <math id='Ch2.S2.I5.ix4.m2' class='ltx_Math' alttext='e_{2}' display='inline'><msub><mi>e</mi><mn mathvariant='normal'>2</mn></msub></math></span></span></dt>
 <dd class='ltx_item'> <dd class='ltx_item'>
-<div id='Ch2.I7.ix4.p1' class='ltx_para'> +<div id='Ch2.S2.I5.ix4.p1' class='ltx_para'> 
-<p class='ltx_p'>concatenates arrays <math id='Ch2.I7.ix4.p1.m1' class='ltx_Math' alttext='e_{1}' display='inline'><msub><mi>e</mi><mn>1</mn></msub></math> and <math id='Ch2.I7.ix4.p1.m2' class='ltx_Math' alttext='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.S2.I5.ix4.p1.m1' class='ltx_Math' alttext='e_{1}' display='inline'><msub><mi>e</mi><mn>1</mn></msub></math> and <math id='Ch2.S2.I5.ix4.p1.m2' class='ltx_Math' alttext='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.I4' class='ltx_itemize'> +<ul id='Ch2.S2.I5.ix4.I4' class='ltx_itemize'> 
-<li id='Ch2.I7.I4.i1' class='ltx_item' style='list-style-type:none;'> +<li id='Ch2.S2.I5.ix4.I4.i1' class='ltx_item' style='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_item'><span class='ltx_text ltx_font_bold'></span></span>  
-<div id='Ch2.I7.I4.i1.p1' class='ltx_para'> +<div id='Ch2.S2.I5.ix4.I4.i1.p1' class='ltx_para'> 
-<p class='ltx_p'><math id='Ch2.I7.I4.i1.p1.m1' class='ltx_Math' alttext='e_{1}' display='inline'><msub><mi>e</mi><mn>1</mn></msub></math> and <math id='Ch2.I7.I4.i1.p1.m2' class='ltx_Math' alttext='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.S2.I5.ix4.I4.i1.p1.m1' class='ltx_Math' alttext='e_{1}' display='inline'><msub><mi>e</mi><mn>1</mn></msub></math> and <math id='Ch2.S2.I5.ix4.I4.i1.p1.m2' class='ltx_Math' alttext='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.i2' class='ltx_item' style='list-style-type:none;'> +<li id='Ch2.S2.I5.ix4.I4.i2' class='ltx_item' style='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_item'><span class='ltx_text ltx_font_bold'></span></span>  
-<div id='Ch2.I7.I4.i2.p1' class='ltx_para'> +<div id='Ch2.S2.I5.ix4.I4.i2.p1' class='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.m1' class='ltx_Math' alttext='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.m2' class='ltx_Math' alttext='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.S2.I5.ix4.I4.i2.p1.m1' class='ltx_Math' alttext='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.S2.I5.ix4.I4.i2.p1.m2' class='ltx_Math' alttext='e_{2}' display='inline'><msub><mi>e</mi><mn>2</mn></msub></math>))</span>.</p>
 </div> </div>
 </li> </li>
Line 2176: Line 2433:
 </div> </div>
 </dd> </dd>
-<dt id='Ch2.I7.ix5' class='ltx_item'><span class='ltx_tag ltx_tag_description'>rotate(ov, a)</span></dt>+<dt id='Ch2.S2.I5.ix5' class='ltx_item'><span class='ltx_tag ltx_tag_item'><span class='ltx_text ltx_font_bold'>rotate(ov, a)</span></span></dt>
 <dd class='ltx_item'> <dd class='ltx_item'>
-<div id='Ch2.I7.ix5.p1' class='ltx_para'> +<div id='Ch2.S2.I5.ix5.p1' class='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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>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.I5' class='ltx_itemize'> +<ul id='Ch2.S2.I5.ix5.I5' class='ltx_itemize'> 
-<li id='Ch2.I7.I5.i1' class='ltx_item' style='list-style-type:none;'> +<li id='Ch2.S2.I5.ix5.I5.i1' class='ltx_item' style='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_item'><span class='ltx_text ltx_font_bold'></span></span>  
-<div id='Ch2.I7.I5.i1.p1' class='ltx_para'>+<div id='Ch2.S2.I5.ix5.I5.i1.p1' class='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.i2' class='ltx_item' style='list-style-type:none;'> +<li id='Ch2.S2.I5.ix5.I5.i2' class='ltx_item' style='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_item'><span class='ltx_text ltx_font_bold'></span></span>  
-<div id='Ch2.I7.I5.i2.p1' class='ltx_para'> +<div id='Ch2.S2.I5.ix5.I5.i2.p1' class='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><=<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 2201: Line 2458:
 </div> </div>
 </dd> </dd>
-<dt id='Ch2.I7.ix6' class='ltx_item'><span class='ltx_tag ltx_tag_description'>shift(ov, expr, a)</span></dt>+<dt id='Ch2.S2.I5.ix6' class='ltx_item'><span class='ltx_tag ltx_tag_item'><span class='ltx_text ltx_font_bold'>shift(ov, expr, a)</span></span></dt>
 <dd class='ltx_item'> <dd class='ltx_item'>
-<div id='Ch2.I7.ix6.p1' class='ltx_para'> +<div id='Ch2.S2.I5.ix6.p1' class='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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>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.I6' class='ltx_itemize'> +<ul id='Ch2.S2.I5.ix6.I6' class='ltx_itemize'> 
-<li id='Ch2.I7.I6.i1' class='ltx_item' style='list-style-type:none;'> +<li id='Ch2.S2.I5.ix6.I6.i1' class='ltx_item' style='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_item'><span class='ltx_text ltx_font_bold'></span></span>  
-<div id='Ch2.I7.I6.i1.p1' class='ltx_para'>+<div id='Ch2.S2.I5.ix6.I6.i1.p1' class='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.i2' class='ltx_item' style='list-style-type:none;'> +<li id='Ch2.S2.I5.ix6.I6.i2' class='ltx_item' style='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_item'><span class='ltx_text ltx_font_bold'></span></span>  
-<div id='Ch2.I7.I6.i2.p1' class='ltx_para'> +<div id='Ch2.S2.I5.ix6.I6.i2.p1' class='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><=<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.i3' class='ltx_item' style='list-style-type:none;'> +<li id='Ch2.S2.I5.ix6.I6.i3' class='ltx_item' style='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_item'><span class='ltx_text ltx_font_bold'></span></span>  
-<div id='Ch2.I7.I6.i3.p1' class='ltx_para'>+<div id='Ch2.S2.I5.ix6.I6.i3.p1' class='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>
Line 2238: Line 2495:
 <p class='ltx_p'>A few examples:</p> <p class='ltx_p'>A few examples:</p>
 </div> </div>
-<figure id='LST11' class='ltx_float ltx_lstlisting ltx_role_listing'>+<figure id='LST11' class='ltx_float ltx_lstlisting'>
 <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,IHVzZSBTdGRJTzogYWxsOwogdXNlIEFycmF5OiBhbGw7CgogaW50IG1haW4oKQogewogICB2ZWN0ID0gWzEsMiwzLDQsNSw2LDcsOCw5XTsKCiAgIG1hdCA9IFt2ZWN0LCB2ZWN0KzEwLCB2ZWN0KzIwXTsKICAgcHJpbnQobWF0KTsKCiAgIHByaW50KHRha2UoWzIsLTJdLCBtYXQpKTsKICAgcHJpbnQodGFrZShbMl0sIG1hdCkpOwogICBwcmludCh0YWtlKFtdLCBtYXQpKTsKCiAgIHByaW50KHRha2UoWzBdLCBtYXQpKTsKICAgcHJpbnQodGFrZShbMiwgMF0sIG1hdCkpOwogICBwcmludCh0YWtlKFsyXSwgcmVzaGFwZShbMywwLDVdLCBbXSkpKTsKCiAgIHByaW50KGRyb3AoWzAsIC0xXSwgbWF0KSk7CgogICBwcmludChtYXQgKysgbWF0KTsKCiAgIHByaW50KHJvdGF0ZShbLTEsIDQyXSwgbWF0KSk7CiAgIHByaW50KHJvdGF0ZShbIDFdLCBtYXQpKTsKCiAgIHByaW50KHNoaWZ0KFswLCAtMl0sIDAsIG1hdCkpOwogICBwcmludChzaGlmdChbMCwgLTIyXSwgMCwgbWF0KSk7CiAgIHByaW50KHNoaWZ0KFsxXSwgMCwgbWF0KSk7CgogICByZXR1cm4gMDsKIH0='>⬇</a></div> 
-<div class='ltx_listingline'> +<div id='lstnumberx139' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>1</span></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'>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 id='lstnumberx140' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>2</span></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'>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 id='lstnumberx141' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>3</span></span>+                    <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>3</span></span> 
 +                  
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx142' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>4</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'>main</span>()
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx143' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>5</span></span>{+                    <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>5</span></span> 
 +                  <span class='ltx_text ltx_lst_space'> </span>{
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx144' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx145' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>7</span></span>+                    <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>7</span></span> 
 +                  
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx146' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx147' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx148' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>10</span></span>+                    <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>10</span></span> 
 +                  
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx149' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx150' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx151' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx152' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>14</span></span>+                    <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>14</span></span> 
 +                  
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx153' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx154' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx155' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx156' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>18</span></span>+                    <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>18</span></span> 
 +                  
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx157' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx158' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>20</span></span>+                    <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>20</span></span> 
 +                  
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx159' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx160' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>22</span></span>+                    <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>22</span></span> 
 +                  
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx161' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx162' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx163' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>25</span></span>+                    <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>25</span></span> 
 +                  
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx164' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx165' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx166' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx167' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>29</span></span>+                    <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>29</span></span> 
 +                  
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx168' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx169' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>31</span></span>}+                    <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>31</span></span> 
 +                  <span class='ltx_text ltx_lst_space'> </span>}
 </div> </div>
 </div> </div>
 </figure> </figure>
 <div id='Ch2.S2.SS1.SSSx3.p4' class='ltx_para'> <div id='Ch2.S2.SS1.SSSx3.p4' class='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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>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
Line 2360: Line 2648:
 <div id='Thmtheorem7.p1' class='ltx_para'> <div id='Thmtheorem7.p1' class='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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>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.I8' class='ltx_itemize'> +<ul id='Ch2.S2.I6' class='ltx_itemize'> 
-<li id='Ch2.I8.i1' class='ltx_item' style='list-style-type:none;'> +<li id='Ch2.S2.I6.i1' class='ltx_item' style='list-style-type:none;'> 
-<span class='ltx_tag ltx_tag_itemize'>•</span>  +<span class='ltx_tag ltx_tag_item'>•</span>  
-<div id='Ch2.I8.i1.p1' class='ltx_para'>+<div id='Ch2.S2.I6.i1.p1' class='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.i2' class='ltx_item' style='list-style-type:none;'> +<li id='Ch2.S2.I6.i2' class='ltx_item' style='list-style-type:none;'> 
-<span class='ltx_tag ltx_tag_itemize'>•</span>  +<span class='ltx_tag ltx_tag_item'>•</span>  
-<div id='Ch2.I8.i2.p1' class='ltx_para'>+<div id='Ch2.S2.I6.i2.p1' class='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.i3' class='ltx_item' style='list-style-type:none;'> +<li id='Ch2.S2.I6.i3' class='ltx_item' style='list-style-type:none;'> 
-<span class='ltx_tag ltx_tag_itemize'>•</span>  +<span class='ltx_tag ltx_tag_item'>•</span>  
-<div id='Ch2.I8.i3.p1' class='ltx_para'>+<div id='Ch2.S2.I6.i3.p1' class='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.i4' class='ltx_item' style='list-style-type:none;'> +<li id='Ch2.S2.I6.i4' class='ltx_item' style='list-style-type:none;'> 
-<span class='ltx_tag ltx_tag_itemize'>•</span>  +<span class='ltx_tag ltx_tag_item'>•</span>  
-<div id='Ch2.I8.i4.p1' class='ltx_para'>+<div id='Ch2.S2.I6.i4.p1' class='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.i5' class='ltx_item' style='list-style-type:none;'> +<li id='Ch2.S2.I6.i5' class='ltx_item' style='list-style-type:none;'> 
-<span class='ltx_tag ltx_tag_itemize'>•</span>  +<span class='ltx_tag ltx_tag_item'>•</span>  
-<div id='Ch2.I8.i5.p1' class='ltx_para'>+<div id='Ch2.S2.I6.i5.p1' class='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.i6' class='ltx_item' style='list-style-type:none;'> +<li id='Ch2.S2.I6.i6' class='ltx_item' style='list-style-type:none;'> 
-<span class='ltx_tag ltx_tag_itemize'>•</span>  +<span class='ltx_tag ltx_tag_item'>•</span>  
-<div id='Ch2.I8.i6.p1' class='ltx_para'>+<div id='Ch2.S2.I6.i6.p1' class='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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>shift</span> and <span class='ltx_text ltx_lst_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>rotate</span>
 as well?</p> as well?</p>
 </div> </div>
Line 2414: Line 2702:
 </div> </div>
 <div id='Ch2.S2.SS1.SSSx4.p2' class='ltx_para'> <div id='Ch2.S2.SS1.SSSx4.p2' class='ltx_para'>
-<dl id='Ch2.I9' class='ltx_description'> +<dl id='Ch2.S2.I7' class='ltx_description'> 
-<dt id='Ch2.I9.ix1' class='ltx_item'><span class='ltx_tag ltx_tag_description'>sum(a)</span></dt>+<dt id='Ch2.S2.I7.ix1' class='ltx_item'><span class='ltx_tag ltx_tag_item'><span class='ltx_text ltx_font_bold'>sum(a)</span></span></dt>
 <dd class='ltx_item'> <dd class='ltx_item'>
-<div id='Ch2.I9.ix1.p1' class='ltx_para'> +<div id='Ch2.S2.I7.ix1.p1' class='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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>a</span>. If <span class='ltx_text ltx_lst_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>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.ix2' class='ltx_item'><span class='ltx_tag ltx_tag_description'>prod(a)</span></dt>+<dt id='Ch2.S2.I7.ix2' class='ltx_item'><span class='ltx_tag ltx_tag_item'><span class='ltx_text ltx_font_bold'>prod(a)</span></span></dt>
 <dd class='ltx_item'> <dd class='ltx_item'>
-<div id='Ch2.I9.ix2.p1' class='ltx_para'> +<div id='Ch2.S2.I7.ix2.p1' class='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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>a</span>. If <span class='ltx_text ltx_lst_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>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.ix3' class='ltx_item'><span class='ltx_tag ltx_tag_description'>all(a)</span></dt>+<dt id='Ch2.S2.I7.ix3' class='ltx_item'><span class='ltx_tag ltx_tag_item'><span class='ltx_text ltx_font_bold'>all(a)</span></span></dt>
 <dd class='ltx_item'> <dd class='ltx_item'>
-<div id='Ch2.I9.ix3.p1' class='ltx_para'> +<div id='Ch2.S2.I7.ix3.p1' class='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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>true</span>, iff all elements of <span class='ltx_text ltx_lst_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>a</span> are <span class='ltx_text ltx_lst_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>a</span> is an empty array, <span class='ltx_text ltx_lst_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>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.ix4' class='ltx_item'><span class='ltx_tag ltx_tag_description'>any(a)</span></dt>+<dt id='Ch2.S2.I7.ix4' class='ltx_item'><span class='ltx_tag ltx_tag_item'><span class='ltx_text ltx_font_bold'>any(a)</span></span></dt>
 <dd class='ltx_item'> <dd class='ltx_item'>
-<div id='Ch2.I9.ix4.p1' class='ltx_para'> +<div id='Ch2.S2.I7.ix4.p1' class='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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>true</span>, iff at least one element of <span class='ltx_text ltx_lst_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>true</span>. If <span class='ltx_text ltx_lst_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>a</span> is an empty array, <span class='ltx_text ltx_lst_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>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.ix5' class='ltx_item'><span class='ltx_tag ltx_tag_description'>maxval(a)</span></dt>+<dt id='Ch2.S2.I7.ix5' class='ltx_item'><span class='ltx_tag ltx_tag_item'><span class='ltx_text ltx_font_bold'>maxval(a)</span></span></dt>
 <dd class='ltx_item'> <dd class='ltx_item'>
-<div id='Ch2.I9.ix5.p1' class='ltx_para'> +<div id='Ch2.S2.I7.ix5.p1' class='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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>a</span>. If <span class='ltx_text ltx_lst_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>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.
Line 2456: Line 2744:
 </div> </div>
 </dd> </dd>
-<dt id='Ch2.I9.ix6' class='ltx_item'><span class='ltx_tag ltx_tag_description'>minval(a)</span></dt>+<dt id='Ch2.S2.I7.ix6' class='ltx_item'><span class='ltx_tag ltx_tag_item'><span class='ltx_text ltx_font_bold'>minval(a)</span></span></dt>
 <dd class='ltx_item'> <dd class='ltx_item'>
-<div id='Ch2.I9.ix6.p1' class='ltx_para'> +<div id='Ch2.S2.I7.ix6.p1' class='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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>a</span>. If <span class='ltx_text ltx_lst_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>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.
Line 2470: Line 2758:
 <p class='ltx_p'>A few examples:</p> <p class='ltx_p'>A few examples:</p>
 </div> </div>
-<figure id='LST12' class='ltx_float ltx_lstlisting ltx_role_listing'>+<figure id='LST12' class='ltx_float ltx_lstlisting'>
 <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,IHVzZSBTdGRJTzogYWxsOwogdXNlIEFycmF5OiBhbGw7CgogaW50IG1haW4oKQogewogICB2ZWN0ID0gWzEsMiwzLDQsNSw2LDcsOCw5XTsKCiAgIG1hdCA9IFt2ZWN0LCB2ZWN0KzEwLCB2ZWN0KzIwXTsKCiAgIHByaW50KHN1bShtYXQpKTsKICAgcHJpbnQocHJvZCh2ZWN0KSk7CiAgIHByaW50KGFsbChtYXQgPj0gMSkpOwogICBwcmludChhbnkobWF0ID4gMSkpOwogICBwcmludChtYXh2YWwobWF0KSk7CiAgIHByaW50KG1pbnZhbChtYXQpKTsKCiAgIHJldHVybiAwOwogfQ=='>⬇</a></div> 
-<div class='ltx_listingline'> +<div id='lstnumberx170' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>1</span></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'>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 id='lstnumberx171' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>2</span></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'>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 id='lstnumberx172' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>3</span></span>+                    <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>3</span></span> 
 +                  
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx173' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>4</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'>main</span>()
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx174' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>5</span></span>{+                    <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>5</span></span> 
 +                  <span class='ltx_text ltx_lst_space'> </span>{
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx175' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx176' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>7</span></span>+                    <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>7</span></span> 
 +                  
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx177' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx178' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>9</span></span>+                    <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>9</span></span> 
 +                  
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx179' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx180' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx181' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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>>=<span class='ltx_text ltx_lst_space'> </span>1));
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx182' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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>><span class='ltx_text ltx_lst_space'> </span>1));
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx183' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx184' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx185' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>16</span></span>+                    <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>16</span></span> 
 +                  
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx186' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx187' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>18</span></span>}+                    <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>18</span></span> 
 +                  <span class='ltx_text ltx_lst_space'> </span>}
 </div> </div>
 </div> </div>
Line 2558: Line 2864:
 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 ltx_font_italic'>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 ltx_font_italic'>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 ltx_font_italic'>Axis Control</em>.</p>
 </div> </div>
 <section id='Ch2.S2.SS2.SSSx1' class='ltx_subsubsection'> <section id='Ch2.S2.SS2.SSSx1' class='ltx_subsubsection'>
Line 2582: Line 2888:
 <div id='Ch2.S2.SS2.SSSx1.p2' class='ltx_para'> <div id='Ch2.S2.SS2.SSSx1.p2' class='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 ltx_font_italic'>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
Line 2602: Line 2908:
 <p class='ltx_p'>A few examples:</p> <p class='ltx_p'>A few examples:</p>
 </div> </div>
-<figure id='LST13' class='ltx_float ltx_lstlisting ltx_role_listing'>+<figure id='LST13' class='ltx_float ltx_lstlisting'>
 <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,IHVzZSBTdGRJTzogYWxsOwogdXNlIEFycmF5OiBhbGw7CgogaW50IG1haW4oKQogewogICB2ZWN0ID0gWzEsMiwzLDQsNSw2LDcsOCw5XTsKCiAgIG1hdCA9IFt2ZWN0LCB2ZWN0KzEwLCB2ZWN0KzIwXTsKICAgcHJpbnQobWF0KTsKCiAgIHByaW50KG1hdFtbMV1dKTsKICAgcHJpbnQobWF0W1sxLC5dXSk7CiAgIHByaW50KG1hdFtbMSwuLi5dXSk7CgogICBwcmludChtYXRbWy4sMV1dKTsKICAgcHJpbnQobWF0W1suLi4sMV1dKTsKCiAgIHByaW50KG1hdFtbMSwuLi4sMV1dKTsKCiAgIGFycjNkID0gW21hdCwgbWF0XTsKICAgcHJpbnQoYXJyM2QpOwoKICAgcHJpbnQoYXJyM2RbWy4sMV1dKTsKICAgcHJpbnQoYXJyM2RbWy4uLiwxXV0pOwoKICAgcmV0dXJuIDA7CiB9'>⬇</a></div> 
-<div class='ltx_listingline'> +<div id='lstnumberx188' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>1</span></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'>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 id='lstnumberx189' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>2</span></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'>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 id='lstnumberx190' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>3</span></span>+                    <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>3</span></span> 
 +                  
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx191' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>4</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'>main</span>()
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx192' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>5</span></span>{+                    <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>5</span></span> 
 +                  <span class='ltx_text ltx_lst_space'> </span>{
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx193' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx194' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>7</span></span>+                    <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>7</span></span> 
 +                  
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx195' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx196' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx197' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>10</span></span>+                    <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>10</span></span> 
 +                  
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx198' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx199' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx200' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx201' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>14</span></span>+                    <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>14</span></span> 
 +                  
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx202' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx203' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx204' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>17</span></span>+                    <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>17</span></span> 
 +                  
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx205' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx206' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>19</span></span>+                    <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>19</span></span> 
 +                  
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx207' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx208' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx209' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>22</span></span>+                    <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>22</span></span> 
 +                  
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx210' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx211' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx212' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>25</span></span>+                    <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>25</span></span> 
 +                  
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx213' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx214' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>27</span></span>}+                    <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>27</span></span> 
 +                  <span class='ltx_text ltx_lst_space'> </span>}
 </div> </div>
 </div> </div>
Line 2691: Line 3024:
 <div id='Ch2.S2.SS2.SSSx1.p6' class='ltx_para'> <div id='Ch2.S2.SS2.SSSx1.p6' class='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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>mat</span> is shown in lines 15 and 16.</p>
 </div> </div>
 <div id='Ch2.S2.SS2.SSSx1.p7' class='ltx_para'> <div id='Ch2.S2.SS2.SSSx1.p7' class='ltx_para'>
Line 2713: Line 3046:
 <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.p1' class='ltx_para'> <div id='Thmtheorem9.p1' class='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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>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>
Line 2723: Line 3056:
 <p class='ltx_p'>Referring to Exercise <a href='#Thmtheorem5' title='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 SaC' class='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='#Thmtheorem5' title='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 SaC' class='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.m1' class='ltx_Math' alttext='{{\langle\textrm{\lstinline 1}}}\rangle' display='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.m1' class='ltx_Math' alttext='{\langle\textrm{\lstinline{{\lst@@@set@language\lst@@@set@numbers% 
 +\lst@@@set@frame\lst@@@set@rulecolor\lst@@@set@language\lst@@@set@numbers{% 
 +\@listingGroup{ltx_lst_identifier}{vec}}}}}}\rangle' display='inline'><mrow><mo stretchy='false'>⟨</mo><mtext class='ltx_lst_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>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>
Line 2738: Line 3073:
 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 ltx_font_italic'>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
Line 2746: Line 3081:
 <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.m1' class='ltx_Math' alttext='{{{{{{\langle\textrm{\lstinline 1}}}\rangle\ \mathop{\textrm{\lstinline 1}}}}\ +<td class='ltx_eqn_cell ltx_align_center'><math id='Ch2.Ex1.m1' class='ltx_Math' alttext='{{{\langle\textrm{\lstinline{{\lst@@@set@language\lst@@@set@numbers% 
-\langle\textrm{\lstinline 1}}}\rangle' display='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.5pt' stretchy='false'>⟩</mo></mrow><mo>⁢</mo><mrow><mpadded class='ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting' width='+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>+\lst@@@set@frame\lst@@@set@rulecolor\lst@@@set@language\lst@@@set@numbers{% 
 +\@listingGroup{ltx_lst_identifier}{index\textunderscore vector}}}}}}\rangle\ 
 +\mathop{\textrm{\lstinline{{\lst@@@set@language\lst@@@set@numbers% 
 +\lst@@@set@frame\lst@@@set@rulecolor\lst@@@set@language\lst@@@set@numbers-% 
 +\textgreater}}}}}\ \langle\textrm{\lstinline{{\lst@@@set@language% 
 +\lst@@@set@numbers\lst@@@set@frame\lst@@@set@rulecolor\lst@@@set@language% 
 +\lst@@@set@numbers{\@listingGroup{ltx_lst_identifier}{expression}}}}}}\rangle' display='block'><mrow><mrow><mo stretchy='false'>⟨</mo><mtext class='ltx_lst_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>index_vector</mtext><mo rspace='7.5pt' stretchy='false'>⟩</mo></mrow><mo>⁢</mo><mrow><mpadded class='ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting' width='+5pt'><mtext>-></mtext></mpadded><mrow><mo stretchy='false'>⟨</mo><mtext class='ltx_lst_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>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.m1' class='ltx_Math' alttext='{{\langle\textrm{\lstinline 1}}}\rangle' display='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.m1' class='ltx_Math' alttext='{\langle\textrm{\lstinline{{\lst@@@set@language\lst@@@set@numbers% 
-and <math id='Ch2.S2.SS2.SSSx2.p1.m2' class='ltx_Math' alttext='{{\langle\textrm{\lstinline 1}}}\rangle' display='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+\lst@@@set@frame\lst@@@set@rulecolor\lst@@@set@language\lst@@@set@numbers{% 
 +\@listingGroup{ltx_lst_identifier}{index\textunderscore vector}}}}}}\rangle' display='inline'><mrow><mo stretchy='false'>⟨</mo><mtext class='ltx_lst_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>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.m2' class='ltx_Math' alttext='{\langle\textrm{\lstinline{{\lst@@@set@language\lst@@@set@numbers% 
 +\lst@@@set@frame\lst@@@set@rulecolor\lst@@@set@language\lst@@@set@numbers{% 
 +\@listingGroup{ltx_lst_identifier}{expression}}}}}}\rangle' display='inline'><mrow><mo stretchy='false'>⟨</mo><mtext class='ltx_lst_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>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 2758: Line 3103:
 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.p2' class='ltx_para'> +<div id='Ch2.S2.SS2.SSSx2.p2' class='ltx_para ltx_align_center'> 
-<p class='ltx_p ltx_align_center'> +<p class='ltx_p'><span class='ltx_text ltx_framed_rectangle' style='border-color: black;'> 
- +<span class='ltx_inline-para ltx_minipage ltx_align_middle' style='width:390.3pt;'> 
-<span class='ltx_inline-block ltx_minipage ltx_align_middle ltx_framed_rectangle' style='width:390.3pt;'>+<span id='Ch2.S2.SS2.SSSx2.p2.p1' class='ltx_para'>
 <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
Line 2772: Line 3117:
 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
-specificational overhead.+specificational overhead.</span></span>
 </span></span> </span></span>
-</span> +</span></p>
-</p>+
 </div> </div>
 <div id='Ch2.S2.SS2.SSSx2.p3' class='ltx_para'> <div id='Ch2.S2.SS2.SSSx2.p3' class='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='LST14' class='ltx_float ltx_lstlisting ltx_role_listing'>+<figure id='LST14' class='ltx_float ltx_lstlisting'>
 <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,IHVzZSBTdGRJTzogYWxsOwogdXNlIEFycmF5OiBhbGw7CgogaW50IG1haW4oKQogewogICB2ZWN0ID0gWzAsMSwyLDMsNCw1LDYsNyw4LDldOwoKICAgbWF0ID0ge1tpXSAtPiB2ZWN0W1tpXV0qMTArdmVjdH07CiAgIHByaW50KG1hdCk7CgogICBtYXRfaW5jID0ge2l2IC0+IG1hdFtpdl0gKyAxfTsKICAgcHJpbnQobWF0X2luYyk7CgogICBtYXRfdHJhbnMgPSB7W2ksal0gLT4gbWF0W1tqLGldXX07CiAgIHByaW50KG1hdF90cmFucyk7CgogICBtYXRfZGlhZyA9IHtbaSxqXSAtPiB3aGVyZShpID09IGogLCBtYXRbW2ksal1dICwgMCl9OwogICBwcmludChtYXRfZGlhZyk7CgogICByZXR1cm4gMDsKIH0='>⬇</a></div> 
-<div class='ltx_listingline'> +<div id='lstnumberx215' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>1</span></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'>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 id='lstnumberx216' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>2</span></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'>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 id='lstnumberx217' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>3</span></span>+                    <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>3</span></span> 
 +                  
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx218' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>4</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'>main</span>()
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx219' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>5</span></span>{+                    <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>5</span></span> 
 +                  <span class='ltx_text ltx_lst_space'> </span>{
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx220' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx221' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>7</span></span>+                    <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>7</span></span> 
 +                  
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx222' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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>-><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 id='lstnumberx223' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx224' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>10</span></span>+                    <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>10</span></span> 
 +                  
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx225' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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>-><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 id='lstnumberx226' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx227' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>13</span></span>+                    <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>13</span></span> 
 +                  
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx228' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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>,<span class='ltx_text ltx_lst_identifier'>j</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_identifier'>j</span>,<span class='ltx_text ltx_lst_identifier'>i</span>]]};
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx229' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx230' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>16</span></span>+                    <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>16</span></span> 
 +                  
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx231' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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>,<span class='ltx_text ltx_lst_identifier'>j</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'>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'>j</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_identifier'>i</span>,<span class='ltx_text ltx_lst_identifier'>j</span>]]<span class='ltx_text ltx_lst_space'> </span>,<span class='ltx_text ltx_lst_space'> </span>0)};
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx232' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx233' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>19</span></span>+                    <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>19</span></span> 
 +                  
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx234' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx235' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>21</span></span>}+                    <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>21</span></span> 
 +                  <span class='ltx_text ltx_lst_space'> </span>}
 </div> </div>
 </div> </div>
Line 2852: Line 3217:
 <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'>10</span> to the vector <span class='ltx_text ltx_lst_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>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
Line 2872: Line 3237:
 <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.p1' class='ltx_para'> <div id='Thmtheorem12.p1' class='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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>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>
Line 2885: Line 3250:
 <p class='ltx_p'>A few examples:</p> <p class='ltx_p'>A few examples:</p>
 </div> </div>
-<figure id='LST15' class='ltx_float ltx_lstlisting ltx_role_listing'>+<figure id='LST15' class='ltx_float ltx_lstlisting'>
 <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,IHVzZSBTdGRJTzogYWxsOwogdXNlIEFycmF5OiBhbGw7CgogaW50IG1haW4oKQogewogICB2ZWN0ID0gWzAsMSwyLDNdOwoKICAgbWF0ID0ge1suLGldIC0+IHZlY3RbW2ldXSo0ICsgdmVjdH07CiAgIHByaW50KG1hdCk7CgogICBhcnIzZCA9IHtbaV0gLT4gdmVjdFtbaV1dKjE2ICsgbWF0fTsKICAgcHJpbnQoYXJyM2QpOwoKICAgYXJyM2QgPSB7Wy4sLixpXSAtPiB2ZWN0W1tpXV0qMTYgKyBtYXR9OwogICBwcmludChhcnIzZCk7CgogICBhcnIzZCA9IHtbLixpXSAtPiB2ZWN0W1tpXV0qMTYgKyBtYXR9OwogICBwcmludChhcnIzZCk7CgogICByZXR1cm4gMDsKIH0='>⬇</a></div> 
-<div class='ltx_listingline'> +<div id='lstnumberx236' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>1</span></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'>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 id='lstnumberx237' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>2</span></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'>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 id='lstnumberx238' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>3</span></span>+                    <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>3</span></span> 
 +                  
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx239' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>4</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'>main</span>()
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx240' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>5</span></span>{+                    <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>5</span></span> 
 +                  <span class='ltx_text ltx_lst_space'> </span>{
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx241' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx242' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>7</span></span>+                    <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>7</span></span> 
 +                  
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx243' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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>-><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 id='lstnumberx244' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx245' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>10</span></span>+                    <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>10</span></span> 
 +                  
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx246' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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>-><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 id='lstnumberx247' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx248' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>13</span></span>+                    <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>13</span></span> 
 +                  
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx249' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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>-><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 id='lstnumberx250' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx251' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>16</span></span>+                    <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>16</span></span> 
 +                  
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx252' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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>-><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 id='lstnumberx253' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx254' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>19</span></span>+                    <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>19</span></span> 
 +                  
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx255' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx256' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>21</span></span>}+                    <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>21</span></span> 
 +                  <span class='ltx_text ltx_lst_space'> </span>}
 </div> </div>
 </div> </div>
Line 2986: Line 3372:
 of a matrix:</p> of a matrix:</p>
 </div> </div>
-<figure id='LST16' class='ltx_float ltx_lstlisting ltx_role_listing'>+<figure id='LST16' class='ltx_float ltx_lstlisting'>
 <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,IHVzZSBTdGRJTzogYWxsOwogdXNlIEFycmF5OiBhbGw7CgogaW50IG1haW4oKQogewogICB2ZWN0ID0gWzAsMSwyLDMsNCw1LDYsNyw4LDldOwoKICAgbWF0ID0ge1suLGldIC0+IHZlY3RbW2ldXSoxMCt2ZWN0fTsKICAgcHJpbnQobWF0KTsKCiAgIHN1bV9yb3dzID0ge1tpXSAtPiBzdW0obWF0W1tpXV0pfTsKICAgcHJpbnQoc3VtX3Jvd3MpOwoKICAgc3VtX2NvbHMgPSB7W2ldIC0+IHN1bSggbWF0W1suLGldXSl9OwogICBwcmludChzdW1fY29scyk7CgogICByZXR1cm4gMDsKIH0='>⬇</a></div> 
-<div class='ltx_listingline'> +<div id='lstnumberx257' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>1</span></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'>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 id='lstnumberx258' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>2</span></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'>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 id='lstnumberx259' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>3</span></span>+                    <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>3</span></span> 
 +                  
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx260' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>4</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'>main</span>()
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx261' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>5</span></span>{+                    <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>5</span></span> 
 +                  <span class='ltx_text ltx_lst_space'> </span>{
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx262' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx263' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>7</span></span>+                    <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>7</span></span> 
 +                  
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx264' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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>-><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 id='lstnumberx265' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx266' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>10</span></span>+                    <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>10</span></span> 
 +                  
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx267' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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>-><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 id='lstnumberx268' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx269' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>13</span></span>+                    <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>13</span></span> 
 +                  
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx270' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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>-><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 id='lstnumberx271' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx272' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>16</span></span>+                    <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>16</span></span> 
 +                  
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx273' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx274' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>18</span></span>}+                    <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>18</span></span> 
 +                  <span class='ltx_text ltx_lst_space'> </span>}
 </div> </div>
 </div> </div>
Line 3050: Line 3454:
 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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>minval</span>) operations:</p>
 </div> </div>
-<figure id='LST17' class='ltx_float ltx_lstlisting ltx_role_listing'>+<figure id='LST17' class='ltx_float ltx_lstlisting'>
 <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,IHVzZSBTdGRJTzogYWxsOwogdXNlIEFycmF5OiBhbGw7CgogaW50IG1haW4oKQogewogICB2ZWN0ID0gWzAsMSwyLDNdOwoKICAgYXJyM2QgPSB7W2ksal0gLT4gdmVjdFtbaV1dKjQgKyB2ZWN0W1tqXV0qMTYgKyB2ZWN0fTsKICAgcHJpbnQoYXJyM2QpOwoKICAgbWF4X2lubmVyX3ZlY3RzID0ge1tpLGpdIC0+IG1heHZhbChhcnIzZFtbaSxqXV0pfTsKICAgcHJpbnQobWF4X2lubmVyX3ZlY3RzKTsKCiAgIG1heF9pbm5lcl9hcnJheXMgPSB7W2ldIC0+IG1heHZhbChhcnIzZFtbaV1dKX07CiAgIHByaW50KG1heF9pbm5lcl9hcnJheXMpOwoKICAgbWF4X291dGVyX2FycmF5cyA9IHtbaV0gLT4gbWF4dmFsKGFycjNkW1suLC4saV1dKX07CiAgIHByaW50KG1heF9vdXRlcl9hcnJheXMpOwoKICAgcmV0dXJuIDA7CiB9'>⬇</a></div> 
-<div class='ltx_listingline'> +<div id='lstnumberx275' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>1</span></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'>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 id='lstnumberx276' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>2</span></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'>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 id='lstnumberx277' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>3</span></span>+                    <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>3</span></span> 
 +                  
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx278' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>4</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'>main</span>()
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx279' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>5</span></span>{+                    <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>5</span></span> 
 +                  <span class='ltx_text ltx_lst_space'> </span>{
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx280' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx281' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>7</span></span>+                    <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>7</span></span> 
 +                  
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx282' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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>,<span class='ltx_text ltx_lst_identifier'>j</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_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_text ltx_lst_identifier'>j</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'>vect</span>};
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx283' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx284' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>10</span></span>+                    <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>10</span></span> 
 +                  
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx285' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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>,<span class='ltx_text ltx_lst_identifier'>j</span>]<span class='ltx_text ltx_lst_space'> </span>-><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_text ltx_lst_identifier'>j</span>]])};
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx286' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx287' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>13</span></span>+                    <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>13</span></span> 
 +                  
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx288' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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>-><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 id='lstnumberx289' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx290' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>16</span></span>+                    <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>16</span></span> 
 +                  
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx291' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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>-><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 id='lstnumberx292' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx293' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>19</span></span>+                    <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>19</span></span> 
 +                  
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx294' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx295' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>21</span></span>}+                    <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>21</span></span> 
 +                  <span class='ltx_text ltx_lst_space'> </span>}
 </div> </div>
 </div> </div>
 </figure> </figure>
 <div id='Ch2.S2.SS2.SSSx3.p4' class='ltx_para'> <div id='Ch2.S2.SS2.SSSx3.p4' class='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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>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
Line 3138: Line 3563:
 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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>reverse</span>:</p>
 </div> </div>
-<figure id='LST18' class='ltx_float ltx_lstlisting ltx_role_listing'>+<figure id='LST18' class='ltx_float ltx_lstlisting'>
 <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,IHVzZSBTdGRJTzogYWxsOwogdXNlIEFycmF5OiBhbGw7CgogaW50IG1haW4oKQogewogICB2ZWN0ID0gWzAsMSwyLDNdOwoKICAgYXJyM2QgPSB7W2ksal0gLT4gdmVjdFtbaV1dKjQgKyB2ZWN0W1tqXV0qMTYgKyB2ZWN0fTsKICAgcHJpbnQoYXJyM2QpOwoKICAgcHJpbnQoYXJyM2QgKysgYXJyM2QpOwogICBwcmludCh7W2ldIC0+IGFycjNkW1tpXV0gKysgYXJyM2RbW2ldXX0pOwogICBwcmludCh7W2ksal0gLT4gYXJyM2RbW2ksal1dICsrIGFycjNkW1tpLGpdXX0pOwoKICAgcHJpbnQocmV2ZXJzZSggYXJyM2QpKTsKICAgcHJpbnQoeyBbaV0gLT4gcmV2ZXJzZShhcnIzZFtbaV1dKX0pOwogICBwcmludCh7IFtpLGpdIC0+IHJldmVyc2UoYXJyM2RbW2ksal1dKX0pOwoKICAgcmV0dXJuIDA7CiB9'>⬇</a></div> 
-<div class='ltx_listingline'> +<div id='lstnumberx296' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>1</span></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'>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 id='lstnumberx297' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>2</span></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'>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 id='lstnumberx298' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>3</span></span>+                    <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>3</span></span> 
 +                  
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx299' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>4</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'>main</span>()
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx300' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>5</span></span>{+                    <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>5</span></span> 
 +                  <span class='ltx_text ltx_lst_space'> </span>{
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx301' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx302' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>7</span></span>+                    <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>7</span></span> 
 +                  
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx303' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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>,<span class='ltx_text ltx_lst_identifier'>j</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_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_text ltx_lst_identifier'>j</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'>vect</span>};
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx304' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx305' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>10</span></span>+                    <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>10</span></span> 
 +                  
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx306' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx307' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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>-><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 id='lstnumberx308' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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>,<span class='ltx_text ltx_lst_identifier'>j</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_text ltx_lst_identifier'>j</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_text ltx_lst_identifier'>j</span>]]});
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx309' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>14</span></span>+                    <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>14</span></span> 
 +                  
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx310' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx311' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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>-><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 id='lstnumberx312' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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>,<span class='ltx_text ltx_lst_identifier'>j</span>]<span class='ltx_text ltx_lst_space'> </span>-><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_text ltx_lst_identifier'>j</span>]])});
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx313' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>18</span></span>+                    <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>18</span></span> 
 +                  
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx314' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx315' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>20</span></span>}+                    <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>20</span></span> 
 +                  <span class='ltx_text ltx_lst_space'> </span>}
 </div> </div>
 </div> </div>
Line 3209: Line 3654:
 <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>4,<span class='ltx_text ltx_lst_space'> </span>4]</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 3217: Line 3662:
 <div id='Ch2.S2.SS2.SSSx3.p7' class='ltx_para'> <div id='Ch2.S2.SS2.SSSx3.p7' class='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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>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>
Line 3223: Line 3668:
 <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.p1' class='ltx_para'> <div id='Thmtheorem14.p1' class='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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>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 3274: Line 3719:
 <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='LST19' class='ltx_float ltx_lstlisting ltx_role_listing'>+<figure id='LST19' class='ltx_float ltx_lstlisting'>
 <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,IHVzZSBTdGRJTzogYWxsOwogdXNlIEFycmF5OiBhbGw7CgogaW50IG1haW4oKQogewogICBpZCA9IFtbMWQsIDBkLCAwZF0sIFswZCwgMWQsIDBkXSwgWzBkLCAwZCwgMWRdXTsKCiAgIHZlY3QgPSBbMWQsIDJkLCAzZCwgNGRdOwogICBtYXQgPSBbdmVjdCwgdmVjdCs0ZCwgdmVjdCs4ZF07CiAgIHByaW50KG1hdCk7CgogICByZXMgPSB7W2ksal0gLT4gc3VtKGlkW1tpLC5dXSAqIG1hdFtbLixqXV0pfTsKICAgcHJpbnQocmVzKTsKCiAgIHJldHVybiAwOwogfQ=='>⬇</a></div> 
-<div class='ltx_listingline'> +<div id='lstnumberx316' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>1</span></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'>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 id='lstnumberx317' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>2</span></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'>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 id='lstnumberx318' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>3</span></span>+                    <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>3</span></span> 
 +                  
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx319' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>4</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'>main</span>()
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx320' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>5</span></span>{+                    <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>5</span></span> 
 +                  <span class='ltx_text ltx_lst_space'> </span>{
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx321' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx322' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>7</span></span>+                    <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>7</span></span> 
 +                  
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx323' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx324' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx325' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx326' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>11</span></span>+                    <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>11</span></span> 
 +                  
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx327' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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>,<span class='ltx_text ltx_lst_identifier'>j</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_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>[[.,<span class='ltx_text ltx_lst_identifier'>j</span>]])};
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx328' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx329' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>14</span></span>+                    <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>14</span></span> 
 +                  
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx330' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx331' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>16</span></span>}+                    <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>16</span></span> 
 +                  <span class='ltx_text ltx_lst_space'> </span>}
 </div> </div>
 </div> </div>
 </figure> </figure>
 <div id='Ch2.S2.SS3.SSSx1.p4' class='ltx_para'> <div id='Ch2.S2.SS3.SSSx1.p4' class='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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>id</span> and <span class='ltx_text ltx_lst_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>mat</span> in 
-lines6 and 8, respectively,+lines 6 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.m1' class='ltx_Math' alttext='\odot' display='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.m1' class='ltx_Math' alttext='\odot' display='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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>i</span>-th row of <span class='ltx_text ltx_lst_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>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>[[.,<span class='ltx_text ltx_lst_identifier'>j</span>]]</span> refers to the <span class='ltx_text ltx_lst_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>j</span>-th column of <span class='ltx_text ltx_lst_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>i</span> and <span class='ltx_text ltx_lst_identifier 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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>id</span> and <span class='ltx_text ltx_lst_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>mat</span>, respectively.
 A variable <math id='Ch2.S2.SS3.SSSx1.p4.m2' class='ltx_Math' alttext='k' display='inline'><mi>k</mi></math> as used in the mathematical specification is not required A variable <math id='Ch2.S2.SS3.SSSx1.p4.m2' class='ltx_Math' alttext='k' display='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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>sum</span>.</p>
 </div> </div>
 </section> </section>
Line 3350: Line 3811:
 Fig. <a href='#Ch2.F1' title='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 SaC' class='ltx_ref'><span class='ltx_text ltx_ref_tag'>2.1</span></a> illustrates such a stencil operation.</p> Fig. <a href='#Ch2.F1' title='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 SaC' class='ltx_ref'><span class='ltx_text ltx_ref_tag'>2.1</span></a> illustrates such a stencil operation.</p>
 </div> </div>
-<figure id='Ch2.F1' class='ltx_figure'><img src='data:image/png;base64,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' id='Ch2.F1.g1' class='ltx_graphics ltx_centering' width='209' height='130' alt=''> +<figure id='Ch2.F1' class='ltx_figure'><img src='data:image/png;base64,b'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'' id='Ch2.F1.g1' class='ltx_graphics ltx_centering' width='209' height='130' alt='A 5-point-stencil relaxation with cyclic boundaries'> 
-<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.p2' class='ltx_para'> <div id='Ch2.S2.SS3.SSSx2.p2' class='ltx_para'>
Line 3381: Line 3842:
 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='LST20' class='ltx_float ltx_lstlisting ltx_role_listing'>+<figure id='LST20' class='ltx_float ltx_lstlisting'>
 <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,IHVzZSBTdGRJTzogYWxsOwogdXNlIEFycmF5OiBhbGw7CgogaW50IG1haW4oKQogewogICB3ZWlnaHRzID0gW1swZCwgMWQsIDBkXSwgWzFkLCA0ZCwgMWRdLCBbIDBkLCAxZCwgMGRdXSAvIDhkOwoKICAgdmVjdCA9IFsxZCwgMmQsIDNkLCA0ZF07CiAgIG1hdCA9IFt2ZWN0LCB2ZWN0KzRkLCB2ZWN0KzhkLCB2ZWN0KzEyZF07CiAgIHByaW50KG1hdCk7CgogICBtYXQgPSB7W2ksal0gLT4gc3VtKHsgaXYgLT4gd2VpZ2h0c1tpdl0gKiByb3RhdGUoaXYtMSwgbWF0KX1bWy4uLixpLGpdXSl9OwogICBwcmludChtYXQpOwoKICAgcmV0dXJuIDA7CiB9'>⬇</a></div> 
-<div class='ltx_listingline'> +<div id='lstnumberx332' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>1</span></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'>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 id='lstnumberx333' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>2</span></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'>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 id='lstnumberx334' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>3</span></span>+                    <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>3</span></span> 
 +                  
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx335' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>4</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'>main</span>()
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx336' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>5</span></span>{+                    <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>5</span></span> 
 +                  <span class='ltx_text ltx_lst_space'> </span>{
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx337' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx338' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>7</span></span>+                    <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>7</span></span> 
 +                  
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx339' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx340' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx341' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx342' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>11</span></span>+                    <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>11</span></span> 
 +                  
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx343' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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>,<span class='ltx_text ltx_lst_identifier'>j</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_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_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>,<span class='ltx_text ltx_lst_identifier'>j</span>]])};
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx344' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx345' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>14</span></span>+                    <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>14</span></span> 
 +                  
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx346' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx347' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>16</span></span>}+                    <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>16</span></span> 
 +                  <span class='ltx_text ltx_lst_space'> </span>}
 </div> </div>
 </div> </div>
Line 3441: Line 3918:
 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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>rotate</span> for each legal index position <span class='ltx_text ltx_lst_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>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>-><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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>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>,<span class='ltx_text ltx_lst_identifier'>j</span>]</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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>i</span> and <span class='ltx_text ltx_lst_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>j</span>.</p>
 </div> </div>
 <div id='Thmtheorem16' class='ltx_theorem ltx_theorem_theorem'> <div id='Thmtheorem16' class='ltx_theorem ltx_theorem_theorem'>
Line 3465: Line 3942:
 <section id='Ch3' class='ltx_chapter'> <section id='Ch3' class='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.p1' class='ltx_para'> <div id='Ch3.p1' class='ltx_para'>
Line 3489: Line 3966:
 multiple return values, as illustrated in the following example.</p> multiple return values, as illustrated in the following example.</p>
 </div> </div>
-<figure id='LST21' class='ltx_float ltx_lstlisting ltx_role_listing'>+<figure id='LST21' class='ltx_float ltx_lstlisting'>
 <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,IHVzZSBTY2FsYXJBcml0aDogYWxsOwoKIGludCwgaW50IGRpdm1vZChpbnQgeCwgaW50IHkpCiB7CiAgIHJldHVybiAoeCAvIHksIHggJSB5KTsKIH0KCiBpbnQgbWFpbigpCiB7CiAgIGQsIG0gPSBkaXZtb2QoOCwgMyk7CiAgIHJldHVybiBkOwogfQ=='>⬇</a></div> 
-<div class='ltx_listingline'> +<div id='lstnumberx348' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>1</span></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'>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 id='lstnumberx349' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>2</span></span>+                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>2</span></span> 
 +                
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx350' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>3</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_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 id='lstnumberx351' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>4</span></span>{+                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>4</span></span> 
 +                <span class='ltx_text ltx_lst_space'> </span>{
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx352' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx353' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>6</span></span>}+                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>6</span></span> 
 +                <span class='ltx_text ltx_lst_space'> </span>}
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx354' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>7</span></span>+                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>7</span></span> 
 +                
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx355' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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'>main</span>()
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx356' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>9</span></span>{+                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>9</span></span> 
 +                <span class='ltx_text ltx_lst_space'> </span>{
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx357' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx358' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx359' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>12</span></span>}+                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>12</span></span> 
 +                <span class='ltx_text ltx_lst_space'> </span>}
 </div> </div>
 </div> </div>
 </figure> </figure>
 <div id='Ch3.S1.SS1.p2' class='ltx_para'> <div id='Ch3.S1.SS1.p2' class='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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>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_keyword ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting 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
Line 3548: Line 4037:
 <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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>divmod</span>.</p>
 </div> </div>
 </div> </div>
Line 3555: Line 4044:
 <div id='Thmtheorem18.p1' class='ltx_para'> <div id='Thmtheorem18.p1' class='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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>divmod</span>?</p>
 </div> </div>
 </div> </div>
Line 3565: Line 4054:
 <div id='Ch3.S1.SS2.p1' class='ltx_para'> <div id='Ch3.S1.SS2.p1' class='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_keyword ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_font_bold'>int</span>, <span class='ltx_text ltx_lst_keyword ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_font_bold'>float</span>, <span class='ltx_text ltx_lst_keyword ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_font_bold'>double</span>, <span class='ltx_text ltx_lst_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>char</span> etc.</p>
 </div> </div>
-<div id='Ch3.S1.SS2.p2' class='ltx_para'> +<div id='Ch3.S1.SS2.p2' class='ltx_para ltx_align_center'> 
-<p class='ltx_p ltx_align_center'> +<p class='ltx_p'> 
- +<span class='ltx_inline-para ltx_minipage ltx_align_middle ltx_framed_rectangle' style='width:390.3pt;'> 
-<span class='ltx_inline-block ltx_minipage ltx_align_middle ltx_framed_rectangle' style='width:390.3pt;'>+<span id='Ch3.S1.SS2.p2.p1' class='ltx_para'>
 <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
Line 3578: Line 4067:
 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></span>
 </p> </p>
 </div> </div>
 <div id='Ch3.S1.SS2.p3' class='ltx_para'> <div id='Ch3.S1.SS2.p3' class='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_keyword ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_font_bold'>bool</span> and the integer type <span class='ltx_text ltx_lst_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>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
Line 3591: Line 4080:
 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.p4' class='ltx_para'> +<div id='Ch3.S1.SS2.p4' class='ltx_para ltx_align_center'> 
-<p class='ltx_p ltx_align_center'> +<p class='ltx_p'> 
- +<span class='ltx_inline-para ltx_minipage ltx_align_middle ltx_framed_rectangle' style='width:390.3pt;'> 
-<span class='ltx_inline-block ltx_minipage ltx_align_middle ltx_framed_rectangle' style='width:390.3pt;'>+<span id='Ch3.S1.SS2.p4.p1' class='ltx_para'>
 <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.
Line 3600: Line 4089:
 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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>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></span>
  
 </p> </p>
Line 3618: Line 4107:
 Here a few examples:</p> Here a few examples:</p>
 </div> </div>
-<figure id='LST22' class='ltx_float ltx_lstlisting ltx_role_listing'>+<figure id='LST22' class='ltx_float ltx_lstlisting'>
 <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,IHVzZSBTdGRJTzogYWxsOwogdXNlIEFycmF5OiBhbGw7CgogYm9vbCBmb28oZG91YmxlIHgpCiB7CiAgIHJldHVybiB0cnVlOwogfQoKIGJvb2wgYmFyKGZsb2F0IHgpCiB7CiAgIHJldHVybiBmYWxzZTsKIH0KCiBpbnQgbWFpbigpCiB7CiAgIC8qIFR5cGUgZXJyb3I6IGZvbyBpcyBub3QgZGVmaW5lZCBvbiBpbnQhICAqLwogICBhID0gZm9vKDApOwoKICAgLyogQ29ycmVjdCBjYWxsczogICovCiAgIGEgPSBmb28oMC4wKTsKICAgYSA9IGZvbygwZCk7CgogICAvKiBUeXBlIGVycm9yOiBiYXIgaXMgbm90IGRlZmluZWQgb24gZG91YmxlISAgKi8KICAgYSA9IGJhcigwLjApOwoKICAgLyogQ29ycmVjdCBjYWxsczogICAqLwogICBhID0gYmFyKDBmKTsKICAgYSA9IGJhcigwLjBmKTsKCiAgIHJldHVybiAwOwogfQ=='>⬇</a></div> 
-<div class='ltx_listingline'> +<div id='lstnumberx360' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>1</span></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'>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 id='lstnumberx361' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>2</span></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'>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 id='lstnumberx362' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>3</span></span>+                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>3</span></span> 
 +                
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx363' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>4</span></span> 
 +                <span class='ltx_text ltx_lst_space'> </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 id='lstnumberx364' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>5</span></span>{+                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>5</span></span> 
 +                <span class='ltx_text ltx_lst_space'> </span>{
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx365' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx366' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>7</span></span>}+                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>7</span></span> 
 +                <span class='ltx_text ltx_lst_space'> </span>}
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx367' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>8</span></span>+                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>8</span></span> 
 +                
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx368' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>9</span></span> 
 +                <span class='ltx_text ltx_lst_space'> </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 id='lstnumberx369' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>10</span></span>{+                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>10</span></span> 
 +                <span class='ltx_text ltx_lst_space'> </span>{
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx370' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx371' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>12</span></span>}+                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>12</span></span> 
 +                <span class='ltx_text ltx_lst_space'> </span>}
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx372' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>13</span></span>+                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>13</span></span> 
 +                
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx373' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>14</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'>main</span>()
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx374' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>15</span></span>{+                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>15</span></span> 
 +                <span class='ltx_text ltx_lst_space'> </span>{
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx375' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx376' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx377' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>18</span></span>+                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>18</span></span> 
 +                
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx378' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx379' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx380' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx381' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>22</span></span>+                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>22</span></span> 
 +                
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx382' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx383' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx384' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>25</span></span>+                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>25</span></span> 
 +                
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx385' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx386' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx387' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx388' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>29</span></span>+                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>29</span></span> 
 +                
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx389' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx390' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>31</span></span>}+                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>31</span></span> 
 +                <span class='ltx_text ltx_lst_space'> </span>}
 </div> </div>
 </div> </div>
Line 3721: Line 4241:
 <div id='Thmtheorem19.p1' class='ltx_para'> <div id='Thmtheorem19.p1' class='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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>foo</span> accordingly?</p>
 </div> </div>
 <div id='Thmtheorem19.p2' class='ltx_para'> <div id='Thmtheorem19.p2' class='ltx_para'>
Line 3737: Line 4257:
 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_keyword ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_font_bold'>int</span> as a running example, <span class='ltx_text ltx_lst_keyword ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting 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,
Line 3766: Line 4286:
 integer elements in a graphical form.</p> integer elements in a graphical form.</p>
 </div> </div>
-<figure id='Ch3.F1' class='ltx_figure'><svg id='Ch3.F1.pic1' class='ltx_picture ltx_centering' height='144.08' overflow='visible' version='1.1' viewbox='-35.4 -12.98 449.02 144.08' width='449.02'><g transform='matrix(1 0 0 -1 0 118.12)'><g stroke='#000000'><g fill='#000000'><g color='#000000' stroke-width='0.4pt'><g transform='matrix(1 0 0 1 -28.02 115)'><class='ltx_svg_fog' transform='matrix(1 0 0 -1 0 11.21)'><switch><foreignobject color='#000000' height='100%' overflow='visible' width='56.04'+<figure id='Ch3.F1' class='ltx_figure'><span class='ltx_ERROR ltx_centering undefined'>{tikzpicture}</span><span class='ltx_ERROR ltx_centering undefined'>\node</span
-<p class='ltx_p'><span class='ltx_text ltx_font_typewriter' style='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_fog' transform='matrix(1 0 0 -1 0 11.21)'><switch><foreignobject color='#000000' height='100%' overflow='visible' width='56.04'> +<p class='ltx_p ltx_align_center'><span class='ltx_text' style='font-size:90%;'>(star) at (0,3) <span class='ltx_text ltx_font_typewriter'>int[*]</span>
-<p class='ltx_p'><span class='ltx_text ltx_font_typewriter' style='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_fog' transform='matrix(1 0 0 -0 11.21)'><switch><foreignobject color='#000000' height='100%' overflow='visible' width='56.04'> +<span class='ltx_ERROR undefined'>\node</span>(plusat (1.5,2) <span class='ltx_text ltx_font_typewriter'>int[+]</span>
-<p class='ltx_p'><span class='ltx_text ltx_font_typewriter' style='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_fog' transform='matrix(1 0 0 -1 0 11.21)'><switch><foreignobject color='#000000' height='100%' overflow='visible' width='74.72'> +<span class='ltx_ERROR undefined'>\node</span>(akd1at (1.5,1) <span class='ltx_text ltx_font_typewriter'>int[.]</span>
-<p class='ltx_p'><span class='ltx_text ltx_font_typewriter' style='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_fog' transform='matrix(1 0 0 -1 0 11.21)'><switch><foreignobject color='#000000' height='100%' overflow='visible' width='93.4'> +<span class='ltx_ERROR undefined'>\node</span>(akd2at (5,1) <span class='ltx_text ltx_font_typewriter'>int[.,.]</span>
-<p class='ltx_p'><span class='ltx_text ltx_font_typewriter' style='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_fog' transform='matrix(1 0 0 -0 11.21)'><switch><foreignobject color='#000000' height='100%' overflow='visible' width='9.34'> +<span class='ltx_ERROR undefined'>\node</span>(akd3at (9,1) <span class='ltx_text ltx_font_typewriter'>int[.,.,.]</span>
-<p class='ltx_p'><math id='Ch3.F1.pic1.m1' class='ltx_Math' alttext='\cdots' display='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_fog' transform='matrix(1 0 0 -1 0 11.21)'><switch><foreignobject color='#000000' height='100%' overflow='visible' width='56.04'> +<span class='ltx_ERROR undefined'>\node</span>(akd4at (10.1,1) <math id='Ch3.F1.m1' class='ltx_Math' alttext='\cdots' display='inline'><mi mathvariant='normal'>⋯</mi></math>
-<p class='ltx_p'><span class='ltx_text ltx_font_typewriter' style='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_fog' transform='matrix(0 -1 0 11.21)'><switch><foreignobject color='#000000' height='100%' overflow='visible' width='56.04'> +<span class='ltx_ERROR undefined'>\node</span>(aks11at (1.5,0) <span class='ltx_text ltx_font_typewriter'>int[1]</span>
-<p class='ltx_p'><span class='ltx_text ltx_font_typewriter' style='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_fog' transform='matrix(1 0 -1 0 11.21)'><switch><foreignobject color='#000000' height='100%' overflow='visible' width='9.34'> +<span class='ltx_ERROR undefined'>\node</span>(aks12at (2.7,0) <span class='ltx_text ltx_font_typewriter'>int[4]</span>
-<p class='ltx_p'><math id='Ch3.F1.pic1.m2' class='ltx_Math' alttext='\cdots' display='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_fog' transform='matrix(0 -1 0 11.21)'><switch><foreignobject color='#000000' height='100%' overflow='visible' width='74.72'> +<span class='ltx_ERROR undefined'>\node</span>(aks13) at (3.5,0) <math id='Ch3.F1.m2' class='ltx_Math' alttext='\cdots' display='inline'><mi mathvariant='normal'>⋯</mi></math>
-<p class='ltx_p'><span class='ltx_text ltx_font_typewriter' style='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_fog' transform='matrix(0 -1 0 11.21)'><switch><foreignobject color='#000000' height='100%' overflow='visible' width='74.72'> +<span class='ltx_ERROR undefined'>\node</span>(aks21at (5,0) <span class='ltx_text ltx_font_typewriter'>int[7,2]</span>
-<p class='ltx_p'><span class='ltx_text ltx_font_typewriter' style='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_fog' transform='matrix(0 -1 0 11.21)'><switch><foreignobject color='#000000' height='100%' overflow='visible' width='9.34'> +<span class='ltx_ERROR undefined'>\node</span>(aks22at (6.5,0) <span class='ltx_text ltx_font_typewriter'>int[2,9]</span>
-<p class='ltx_p'><math id='Ch3.F1.pic1.m3' class='ltx_Math' alttext='\cdots' display='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_fog' transform='matrix(0 -1 0 11.21)'><switch><foreignobject color='#000000' height='100%' overflow='visible' width='102.74'> +<span class='ltx_ERROR undefined'>\node</span>(aks23at (7.4,0) <math id='Ch3.F1.m3' class='ltx_Math' alttext='\cdots' display='inline'><mi mathvariant='normal'>⋯</mi></math>
-<p class='ltx_p'><span class='ltx_text ltx_font_typewriter' style='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_fog' transform='matrix(0 -1 0 11.21)'><switch><foreignobject color='#000000' height='100%' overflow='visible' width='9.34'> +<span class='ltx_ERROR undefined'>\node</span>(aks31at (9,0) <span class='ltx_text ltx_font_typewriter'>int[9,8,11]</span>
-<p class='ltx_p'><math id='Ch3.F1.pic1.m4' class='ltx_Math' alttext='\cdots' display='inline'><mi mathsize='90%' mathvariant='normal'>⋯</mi></math></p></foreignobject></switch></g></g><g transform='matrix(0 0 1 -14.01 -3.11)'><class='ltx_svg_fog' transform='matrix(1 0 0 -1 0 11.21)'><switch><foreignobject color='#000000height='100%overflow='visible' width='28.02'> +<span class='ltx_ERROR undefined'>\node</span>(aks32at (10.2,0) <math id='Ch3.F1.m4' class='ltx_Math' alttext='\cdots' display='inline'><mi mathvariant='normal'>⋯</mi></math>
-<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.49' style='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.49' style='fill:none'></path></g></g></g></g></svg+<span class='ltx_ERROR undefined'>\node</span>(aks00) at (0,0) <span class='ltx_text ltx_font_typewriter'>int</span>
-<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>+<a href='star)edgetitle='' class='ltx_ref ltx_path ltx_font_typewriter'>star)edge</a>aks00); 
 +<a href='star)edgetitle='' class='ltx_ref ltx_path ltx_font_typewriter'>star)edge</a>plus); 
 +<a href='plus)edgetitle='' class='ltx_ref ltx_path ltx_font_typewriter'>plus)edge</a>akd1); 
 +<a href='plus)edgetitle='' class='ltx_ref ltx_path ltx_font_typewriter'>plus)edge</a>akd2); 
 +<a href='plus)edgetitle='' class='ltx_ref ltx_path ltx_font_typewriter'>plus)edge</a>akd3); 
 +<a href='akd1)edgetitle='' class='ltx_ref ltx_path ltx_font_typewriter'>akd1)edge</a>aks11); 
 +<a href='akd1)edgetitle='' class='ltx_ref ltx_path ltx_font_typewriter'>akd1)edge</a>aks12); 
 +<a href='akd2)edgetitle='' class='ltx_ref ltx_path ltx_font_typewriter'>akd2)edge</a>aks21); 
 +<a href='akd2)edgetitle='' class='ltx_ref ltx_path ltx_font_typewriter'>akd2)edge</a>aks22); 
 +<a href='akd3)edgetitle='' class='ltx_ref ltx_path ltx_font_typewriter'>akd3)edge</a>aks31); 
 +</span></p
 +<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.p4' class='ltx_para'> <div id='Ch3.S1.SS3.p4' class='ltx_para'>
Line 3807: Line 4338:
 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.p2' class='ltx_para'> +<div id='Ch3.S1.SS4.p2' class='ltx_para ltx_align_center'> 
-<p class='ltx_p ltx_align_center'> +<p class='ltx_p'><span class='ltx_text ltx_framed_rectangle' style='border-color: black;'> 
- +<span class='ltx_inline-para ltx_minipage ltx_align_middle' style='width:390.3pt;'> 
-<span class='ltx_inline-block ltx_minipage ltx_align_middle ltx_framed_rectangle' style='width:390.3pt;'>+<span id='Ch3.S1.SS4.p2.p1' class='ltx_para'>
 <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
Line 3819: Line 4350:
 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> </span></span>
-</span> +</span></p>
-</p>+
 </div> </div>
 <div id='Ch3.S1.SS4.p3' class='ltx_para'> <div id='Ch3.S1.SS4.p3' class='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='LST23' class='ltx_float ltx_lstlisting ltx_role_listing'>+<figure id='LST23' class='ltx_float ltx_lstlisting'>
 <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,IHVzZSBTY2FsYXJBcml0aDogYWxsOwogdXNlIFN0ZElPOiBhbGw7CgogaW50IHR3aWNlKGludCB4KQogewogICByZXR1cm4gMiAqIHg7CiB9CgogZG91YmxlIHR3aWNlKGRvdWJsZSB4KQogewogICByZXR1cm4gMi4wICogeDsKIH0KCiBpbnQgbWFpbigpCiB7CiAgIGEgPSB0d2ljZSg1KTsKICAgcHJpbnQoYSk7CgogICBiID0gdHdpY2UoNS45KTsKICAgcHJpbnQoYik7CgogICByZXR1cm4gMDsKIH0='>⬇</a></div> 
-<div class='ltx_listingline'> +<div id='lstnumberx391' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>1</span></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'>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 id='lstnumberx392' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>2</span></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'>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 id='lstnumberx393' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>3</span></span>+                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>3</span></span> 
 +                
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx394' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>4</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'>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 id='lstnumberx395' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>5</span></span>{+                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>5</span></span> 
 +                <span class='ltx_text ltx_lst_space'> </span>{
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx396' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx397' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>7</span></span>}+                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>7</span></span> 
 +                <span class='ltx_text ltx_lst_space'> </span>}
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx398' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>8</span></span>+                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>8</span></span> 
 +                
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx399' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>9</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'>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 id='lstnumberx400' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>10</span></span>{+                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>10</span></span> 
 +                <span class='ltx_text ltx_lst_space'> </span>{
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx401' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx402' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>12</span></span>}+                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>12</span></span> 
 +                <span class='ltx_text ltx_lst_space'> </span>}
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx403' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>13</span></span>+                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>13</span></span> 
 +                
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx404' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>14</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'>main</span>()
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx405' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>15</span></span>{+                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>15</span></span> 
 +                <span class='ltx_text ltx_lst_space'> </span>{
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx406' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx407' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx408' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>18</span></span>+                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>18</span></span> 
 +                
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx409' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx410' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx411' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>21</span></span>+                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>21</span></span> 
 +                
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx412' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx413' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>23</span></span>}+                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>23</span></span> 
 +                <span class='ltx_text ltx_lst_space'> </span>}
 </div> </div>
 </div> </div>
Line 3906: Line 4459:
 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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>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='LST24' class='ltx_float ltx_lstlisting ltx_role_listing'>+<figure id='LST24' class='ltx_float ltx_lstlisting'>
 <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,IGludFsuXSBxdWlja3NvcnQoaW50Wy5dIHYpCiB7CiAgICBwaXZvdCA9IHZbWzFdXTsKICAgIC8qIC4uLiAgKi8KIH0KCiBpbnRbMV0gcXVpY2tzb3J0KGludFsxXSB2KQogewogICByZXR1cm4gdjsKIH0KCiBpbnRbMF0gcXVpY2tzb3J0KGludFswXSB2KQogewogICByZXR1cm4gdjsKIH0='>⬇</a></div> 
-<div class='ltx_listingline'> +<div id='lstnumberx414' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>1</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'>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 id='lstnumberx415' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>2</span></span>{+                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>2</span></span> 
 +                <span class='ltx_text ltx_lst_space'> </span>{
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx416' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx417' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx418' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>5</span></span>}+                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>5</span></span> 
 +                <span class='ltx_text ltx_lst_space'> </span>}
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx419' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>6</span></span>+                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>6</span></span> 
 +                
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx420' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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>[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 id='lstnumberx421' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>8</span></span>{+                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>8</span></span> 
 +                <span class='ltx_text ltx_lst_space'> </span>{
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx422' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx423' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>10</span></span>}+                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>10</span></span> 
 +                <span class='ltx_text ltx_lst_space'> </span>}
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx424' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>11</span></span>+                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>11</span></span> 
 +                
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx425' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>12</span></span> 
 +                <span class='ltx_text ltx_lst_space'> </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 id='lstnumberx426' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>13</span></span>{+                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>13</span></span> 
 +                <span class='ltx_text ltx_lst_space'> </span>{
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx427' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx428' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>15</span></span>}+                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>15</span></span> 
 +                <span class='ltx_text ltx_lst_space'> </span>}
 </div> </div>
 </div> </div>
Line 3970: Line 4538:
 <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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>cPlus</span>
 and by overloading it appropriately.</p> and by overloading it appropriately.</p>
 </div> </div>
Line 4021: Line 4589:
 <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.p1' class='ltx_para'> <div id='Thmtheorem23.p1' class='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_keyword ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting 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_keyword ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting 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>
Line 4040: Line 4608:
 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='LST25' class='ltx_float ltx_lstlisting ltx_role_listing'>+<figure id='LST25' class='ltx_float ltx_lstlisting'>
 <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,IHVzZSBBcnJheTogYWxsOwogdXNlIFN0ZElPOiBhbGw7CgogaW50IG1haW4oKQogewogICBhID0gNDI7CiAgIHByaW50KGEpOwogICBhKys7CiAgIHByaW50KGEpOwogICBhICs9IDU7CiAgIHByaW50KGEpOwogICBhIC09IGE7CiAgIHByaW50KGEpOwoKICAgdiA9IFsxLDIsMyw0LDVdOwogICBwcmludCh2KTsKICAgdiArPSAxOwogICBwcmludCh2KTsKICAgdlswXSA9IDA7CiAgIHByaW50KHYpOwoKICAgbSA9IFt2LHYsdl07CiAgIHByaW50KG0pOwogICBtKys7CiAgIHByaW50KG0pOwoKICAgcmV0dXJuIGE7CiB9'>⬇</a></div> 
-<div class='ltx_listingline'> +<div id='lstnumberx429' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>1</span></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'>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 id='lstnumberx430' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>2</span></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'>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 id='lstnumberx431' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>3</span></span>+                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>3</span></span> 
 +                
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx432' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>4</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'>main</span>()
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx433' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>5</span></span>{+                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>5</span></span> 
 +                <span class='ltx_text ltx_lst_space'> </span>{
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx434' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx435' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx436' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx437' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx438' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx439' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx440' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx441' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx442' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>14</span></span>+                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>14</span></span> 
 +                
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx443' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx444' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx445' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx446' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx447' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx448' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx449' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>21</span></span>+                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>21</span></span> 
 +                
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx450' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx451' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx452' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx453' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx454' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>26</span></span>+                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>26</span></span> 
 +                
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx455' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx456' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>28</span></span>}+                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>28</span></span> 
 +                <span class='ltx_text ltx_lst_space'> </span>}
 </div> </div>
 </div> </div>
Line 4136: Line 4732:
 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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>a</span> is possible any more.</p>
 </div> </div>
 <div id='Ch3.S2.SS2.p3' class='ltx_para'> <div id='Ch3.S2.SS2.p3' class='ltx_para'>
Line 4148: Line 4744:
 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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>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
Line 4155: Line 4751:
 <div id='Ch3.S2.SS2.p4' class='ltx_para'> <div id='Ch3.S2.SS2.p4' class='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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>modarray</span>.
 Line 19 shows an example.</p> Line 19 shows an example.</p>
 </div> </div>
Line 4161: Line 4757:
 <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.p1' class='ltx_para'> <div id='Thmtheorem24.p1' class='ltx_para'>
-<p class='ltx_p'>Starting from the code in Listing <a href='#LST25' title='25 ‣ 3.2.2 Assignments ‣ 3.2 Lesson 4: Function Bodies ‣ Chapter 3 Basic Program Structure ‣ Part I Trails Covering the Basics of SaC' class='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='#LST25' title='Listing 25 ‣ 3.2.2 Assignments ‣ 3.2 Lesson 4: Function Bodies ‣ Chapter 3 Basic Program Structure ‣ Part I Trails Covering the Basics of SaC' class='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.p2' class='ltx_para'> +<div id='Thmtheorem24.p2' class='ltx_para ltx_noindent'> 
-<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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>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>
Line 4178: Line 4774:
 <div id='Ch3.S2.SS3.p1' class='ltx_para'> <div id='Ch3.S2.SS3.p1' class='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.I1' class='ltx_itemize'> +<ul id='Ch3.S2.I1' class='ltx_itemize'> 
-<li id='Ch3.I1.i1' class='ltx_item' style='list-style-type:none;'> +<li id='Ch3.S2.I1.i1' class='ltx_item' style='list-style-type:none;'> 
-<span class='ltx_tag ltx_tag_itemize'>•</span>  +<span class='ltx_tag ltx_tag_item'>•</span>  
-<div id='Ch3.I1.i1.p1' class='ltx_para'>+<div id='Ch3.S2.I1.i1.p1' class='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.i2' class='ltx_item' style='list-style-type:none;'> +<li id='Ch3.S2.I1.i2' class='ltx_item' style='list-style-type:none;'> 
-<span class='ltx_tag ltx_tag_itemize'>•</span>  +<span class='ltx_tag ltx_tag_item'>•</span>  
-<div id='Ch3.I1.i2.p1' class='ltx_para'>+<div id='Ch3.S2.I1.i2.p1' class='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.i3' class='ltx_item' style='list-style-type:none;'> +<li id='Ch3.S2.I1.i3' class='ltx_item' style='list-style-type:none;'> 
-<span class='ltx_tag ltx_tag_itemize'>•</span>  +<span class='ltx_tag ltx_tag_item'>•</span>  
-<div id='Ch3.I1.i3.p1' class='ltx_para'>+<div id='Ch3.S2.I1.i3.p1' class='ltx_para'>
 <p class='ltx_p'>conditional expressions.</p> <p class='ltx_p'>conditional expressions.</p>
 </div> </div>
Line 4205: Line 4801:
 </p> </p>
 </div> </div>
-<figure id='LST26' class='ltx_float ltx_lstlisting ltx_role_listing'>+<figure id='LST26' class='ltx_float ltx_lstlisting'>
 <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,IHVzZSBTY2FsYXJBcml0aDogYWxsOwogdXNlIFN0ZElPOiBhbGw7CgogaW50IG1haW4oKQogewogICBhID0gNTsKICAgYiA9IDc7CiAgIHByaW50ZigiYT0lZCwgYj0lZFxuIiwgYSwgYik7CgogICBpZiAoYSA8IGIpIGEgPSBiOwogICBwcmludGYoImE9JWQsIGI9JWRcbiIsIGEsIGIpOwoKICAgaWYgKGEgPj0gYikgewogICAgIGEgPSBiOwogICB9IGVsc2UgewogICAgIGIgPSBhOwogICB9CiAgIHByaW50ZigiYT0lZCwgYj0lZFxuIiwgYSwgYik7CgogICBiID0gYSA8IGIgPyBhIDogYjsKICAgcHJpbnRmKCJhPSVkLCBiPSVkXG4iLCBhLCBiKTsKCiAgIHJldHVybiBiOwogfQ=='>⬇</a></div> 
-<div class='ltx_listingline'> +<div id='lstnumberx457' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>1</span></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'>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 id='lstnumberx458' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>2</span></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'>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 id='lstnumberx459' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>3</span></span>+                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>3</span></span> 
 +                
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx460' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>4</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'>main</span>()
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx461' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>5</span></span>{+                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>5</span></span> 
 +                <span class='ltx_text ltx_lst_space'> </span>{
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx462' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx463' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx464' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx465' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>9</span></span>+                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>9</span></span> 
 +                
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx466' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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><<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 id='lstnumberx467' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx468' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>12</span></span>+                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>12</span></span> 
 +                
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx469' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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>>=<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 id='lstnumberx470' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx471' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx472' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx473' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>17</span></span><span class='ltx_text ltx_lst_space'>  </span>}+                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>17</span></span> 
 +                <span class='ltx_text ltx_lst_space'>   </span>}
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx474' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx475' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>19</span></span>+                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>19</span></span> 
 +                
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx476' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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><<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 id='lstnumberx477' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx478' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>22</span></span>+                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>22</span></span> 
 +                
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx479' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx480' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>24</span></span>}+                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>24</span></span> 
 +                <span class='ltx_text ltx_lst_space'> </span>}
 </div> </div>
 </div> </div>
Line 4289: Line 4909:
 <div id='Ch3.S2.SS3.p3' class='ltx_para'> <div id='Ch3.S2.SS3.p3' class='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_keyword ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting 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
Line 4297: Line 4917:
 </div> </div>
 <div id='Ch3.S2.SS3.p4' class='ltx_para'> <div id='Ch3.S2.SS3.p4' class='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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>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 4308: Line 4928:
  
 <div id='Ch3.S2.SS4.p1' class='ltx_para'> <div id='Ch3.S2.SS4.p1' class='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_keyword ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting 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_keyword ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_font_bold'>do</span> and <span class='ltx_text ltx_lst_keyword ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting 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='LST27' class='ltx_float ltx_lstlisting ltx_role_listing'>+<figure id='LST27' class='ltx_float ltx_lstlisting'>
 <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,IHVzZSBTY2FsYXJBcml0aDogYWxsOwogdXNlIFN0ZElPOiBhbGw7CgogaW50IG1haW4oKQogewogICBhID0gMTA7CgogICB3aGlsZSAoYSA+IDApIHsKICAgICBhID0gYSAtIDI7CiAgICAgcHJpbnQoYSk7CiAgIH0KCiAgIGRvIHsKICAgICBwcmludChhKTsKICAgICBhID0gYSArIDE7CiAgIH0gd2hpbGUgKGEgPCA3KTsKCiAgIGZvciAoaSA9IDEsIGogPSAyOyBpICsgaiA8IDQyIDsgaSsrLCBqKyspIHsKICAgICBhICo9IDI7CiAgICAgcHJpbnQoYSk7CiAgIH0KCiAgIHJldHVybiBhOwogfQ=='>⬇</a></div> 
-<div class='ltx_listingline'> +<div id='lstnumberx481' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>1</span></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'>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 id='lstnumberx482' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>2</span></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'>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 id='lstnumberx483' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>3</span></span>+                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>3</span></span> 
 +                
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx484' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>4</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'>main</span>()
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx485' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>5</span></span>{+                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>5</span></span> 
 +                <span class='ltx_text ltx_lst_space'> </span>{
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx486' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx487' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>7</span></span>+                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>7</span></span> 
 +                
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx488' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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>><span class='ltx_text ltx_lst_space'> </span>0)<span class='ltx_text ltx_lst_space'> </span>{
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx489' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx490' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx491' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>11</span></span><span class='ltx_text ltx_lst_space'>  </span>}+                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>11</span></span> 
 +                <span class='ltx_text ltx_lst_space'>   </span>}
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx492' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>12</span></span>+                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>12</span></span> 
 +                
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx493' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx494' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx495' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx496' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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><<span class='ltx_text ltx_lst_space'> </span>7);
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx497' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>17</span></span>+                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>17</span></span> 
 +                
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx498' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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><span class='ltx_text ltx_lst_identifier'>j</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_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'>j</span><span class='ltx_text ltx_lst_space'> </span><<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><span class='ltx_text ltx_lst_identifier'>j</span>++)<span class='ltx_text ltx_lst_space'> </span>{
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx499' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx500' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx501' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>21</span></span><span class='ltx_text ltx_lst_space'>  </span>}+                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>21</span></span> 
 +                <span class='ltx_text ltx_lst_space'>   </span>}
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx502' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>22</span></span>+                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>22</span></span> 
 +                
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx503' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx504' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>24</span></span>}+                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>24</span></span> 
 +                <span class='ltx_text ltx_lst_space'> </span>}
 </div> </div>
 </div> </div>
Line 4393: Line 5037:
 <div id='Ch3.S2.SS4.p2' class='ltx_para'> <div id='Ch3.S2.SS4.p2' class='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_keyword ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting 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_keyword ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting 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>
Line 4405: Line 5049:
 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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>b</span> in the <span class='ltx_text ltx_lst_keyword ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting 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_keyword ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting 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
Line 4419: Line 5063:
  
 <div id='Ch3.S2.SS5.p1' class='ltx_para'> <div id='Ch3.S2.SS5.p1' class='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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>break</span> and <span class='ltx_text ltx_lst_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>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
Line 4440: Line 5084:
 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='LST28' class='ltx_float ltx_lstlisting ltx_role_listing'>+<figure id='LST28' class='ltx_float ltx_lstlisting'>
 <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,IHVzZSBTdGRJTzogYWxsOwoKIHR5cGVkZWYgaW50IG15aW50OwogdHlwZWRlZiBmbG9hdFsxMDAsMTAwXSByZWFsX21hdHJpeDsKIHR5cGVkZWYgZG91YmxlWzJdIGNvbXBsZXg7CgogaW50IG1haW4oKQogewogICBjb21wbGV4ICAgYzsKICAgZG91YmxlWzJdIGQ7CgogICBjID0gKGNvbXBsZXgpIFsxLjIsMi4zXTsKICAgZCA9IChkb3VibGVbMl0pIGM7CiAgIHByaW50KGQpOwoKICAgcmV0dXJuIDA7CiB9'>⬇</a></div> 
-<div class='ltx_listingline'> +<div id='lstnumberx505' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>1</span></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'>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 id='lstnumberx506' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>2</span></span>+                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>2</span></span> 
 +                
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx507' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>3</span></span> 
 +                <span class='ltx_text ltx_lst_space'> </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 id='lstnumberx508' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>4</span></span> 
 +                <span class='ltx_text ltx_lst_space'> </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 id='lstnumberx509' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>5</span></span> 
 +                <span class='ltx_text ltx_lst_space'> </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 id='lstnumberx510' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>6</span></span>+                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>6</span></span> 
 +                
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx511' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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'>main</span>()
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx512' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>8</span></span>{+                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>8</span></span> 
 +                <span class='ltx_text ltx_lst_space'> </span>{
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx513' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx514' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx515' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>11</span></span>+                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>11</span></span> 
 +                
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx516' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx517' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx518' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx519' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>15</span></span>+                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>15</span></span> 
 +                
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx520' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx521' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>17</span></span>}+                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>17</span></span> 
 +                <span class='ltx_text ltx_lst_space'> </span>}
 </div> </div>
 </div> </div>
 </figure> </figure>
 <div id='Ch3.S3.SS1.p2' class='ltx_para'> <div id='Ch3.S3.SS1.p2' class='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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>complex</span> instead.</p>
 </div> </div>
 <div id='Ch3.S3.SS1.p3' class='ltx_para'> <div id='Ch3.S3.SS1.p3' class='ltx_para'>
Line 4544: Line 5205:
 </div> </div>
 <div id='Ch3.S3.SS2.p2' class='ltx_para'> <div id='Ch3.S3.SS2.p2' class='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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>tobool</span> and <span class='ltx_text ltx_lst_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>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
Line 4551: Line 5212:
 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='LST29' class='ltx_float ltx_lstlisting ltx_role_listing'>+<figure id='LST29' class='ltx_float ltx_lstlisting'>
 <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,IHVzZSBTY2FsYXJBcml0aDogYWxsOwogdXNlIFN0ZElPOiBhbGw7CgogaW50IG1haW4oKQogewogICBkb3VibGUgeDsKICAgZmxvYXQgeTsKICAgaW50IHo7CgogICB4ID0gMi4zOwogICBwcmludCh4KTsKCiAgIHkgPSB0b2YoeCk7CiAgIHByaW50KHkpOwoKICAgeiA9IHRvaSh5KTsKICAgcHJpbnQoeik7CgogICByZXR1cm4gejsKIH0='>⬇</a></div> 
-<div class='ltx_listingline'> +<div id='lstnumberx522' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>1</span></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'>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 id='lstnumberx523' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>2</span></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'>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 id='lstnumberx524' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>3</span></span>+                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>3</span></span> 
 +                
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx525' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>4</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'>main</span>()
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx526' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>5</span></span>{+                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>5</span></span> 
 +                <span class='ltx_text ltx_lst_space'> </span>{
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx527' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx528' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx529' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx530' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>9</span></span>+                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>9</span></span> 
 +                
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx531' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx532' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx533' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>12</span></span>+                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>12</span></span> 
 +                
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx534' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx535' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx536' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>15</span></span>+                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>15</span></span> 
 +                
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx537' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx538' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx539' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>18</span></span>+                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>18</span></span> 
 +                
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx540' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx541' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>20</span></span>}+                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>20</span></span> 
 +                <span class='ltx_text ltx_lst_space'> </span>}
 </div> </div>
 </div> </div>
Line 4622: Line 5303:
 <section id='Ch4' class='ltx_chapter'> <section id='Ch4' class='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.p1' class='ltx_para'> <div id='Ch4.p1' class='ltx_para'>
Line 4636: Line 5317:
 into high-performance, concurrently executable code.</p> into high-performance, concurrently executable code.</p>
 </div> </div>
-<div id='Ch4.p2' class='ltx_para'> +<div id='Ch4.p2' class='ltx_para ltx_align_center'> 
-<p class='ltx_p ltx_align_center'> +<p class='ltx_p'><span class='ltx_text ltx_framed_rectangle' style='border-color: black;'> 
- +<span class='ltx_inline-para ltx_minipage ltx_align_middle' style='width:390.3pt;'> 
-<span class='ltx_inline-block ltx_minipage ltx_align_middle ltx_framed_rectangle' style='width:390.3pt;'>+<span id='Ch4.p2.p1' class='ltx_para'>
 <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.I1' class='ltx_itemize'> +<span id='Ch4.S0.I1' class='ltx_itemize'> 
-<span id='Ch4.I1.i1' class='ltx_item' style='list-style-type:none;'><span class='ltx_tag ltx_tag_itemize'><span class='ltx_text ltx_font_italic'></span></span>  +<span id='Ch4.S0.I1.i1' class='ltx_item' style='list-style-type:none;'><span class='ltx_tag ltx_tag_item'>•</span>  
-<span id='Ch4.I1.i1.p1' class='ltx_para'> +<span id='Ch4.S0.I1.i1.p1' class='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'>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.i2' class='ltx_item' style='list-style-type:none;'><span class='ltx_tag ltx_tag_itemize'><span class='ltx_text ltx_font_italic'></span></span>  +<span id='Ch4.S0.I1.i2' class='ltx_item' style='list-style-type:none;'><span class='ltx_tag ltx_tag_item'>•</span>  
-<span id='Ch4.I1.i2.p1' class='ltx_para'> +<span id='Ch4.S0.I1.i2.p1' class='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'>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>
 </span> </span>
-</span> +<br class='ltx_break'> 
-</p>+</span></span> 
 +</span></p>
 </div> </div>
 <div id='Ch4.p3' class='ltx_para'> <div id='Ch4.p3' class='ltx_para'>
Line 4674: Line 5356:
 </div> </div>
 <div id='Ch4.S1.SS1.p2' class='ltx_para'> <div id='Ch4.S1.SS1.p2' class='ltx_para'>
-<ul id='Ch4.I2' class='ltx_itemize'> +<ul id='Ch4.S1.I1' class='ltx_itemize'> 
-<li id='Ch4.I2.i1' class='ltx_item' style='list-style-type:none;'> +<li id='Ch4.S1.I1.i1' class='ltx_item' style='list-style-type:none;'> 
-<span class='ltx_tag ltx_tag_itemize'>•</span>  +<span class='ltx_tag ltx_tag_item'>•</span>  
-<div id='Ch4.I2.i1.p1' class='ltx_para'> +<div id='Ch4.S1.I1.i1.p1' class='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 ltx_font_italic'>generator-ranges</em>),</p>
 </div> </div>
 </li> </li>
-<li id='Ch4.I2.i2' class='ltx_item' style='list-style-type:none;'> +<li id='Ch4.S1.I1.i2' class='ltx_item' style='list-style-type:none;'> 
-<span class='ltx_tag ltx_tag_itemize'>•</span>  +<span class='ltx_tag ltx_tag_item'>•</span>  
-<div id='Ch4.I2.i2.p1' class='ltx_para'>+<div id='Ch4.S1.I1.i2.p1' class='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 ltx_font_italic'>generator-expressions</em>), and</p>
 </div> </div>
 </li> </li>
-<li id='Ch4.I2.i3' class='ltx_item' style='list-style-type:none;'> +<li id='Ch4.S1.I1.i3' class='ltx_item' style='list-style-type:none;'> 
-<span class='ltx_tag ltx_tag_itemize'>•</span>  +<span class='ltx_tag ltx_tag_item'>•</span>  
-<div id='Ch4.I2.i3.p1' class='ltx_para'> +<div id='Ch4.S1.I1.i3.p1' class='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 ltx_font_italic'>with-loop operators</em>) that take such
 values and construct arrays from them.</p> values and construct arrays from them.</p>
 </div> </div>
Line 4705: Line 5387:
 Let’s have a look at a simple example:</p> Let’s have a look at a simple example:</p>
 </div> </div>
-<figure id='LST30' class='ltx_float ltx_lstlisting ltx_role_listing'>+<figure id='LST30' class='ltx_float ltx_lstlisting'>
 <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,IHVzZSBTdGRJTzogYWxsOwogdXNlIEFycmF5OiBhbGw7CgogaW50IG1haW4oKQogewogICBhID0gd2l0aCB7CiAgICAgICAgIChbMF0gPD0gaXYgPCBbNV0pOiA0MjsKICAgICAgIH06IGdlbmFycmF5KFs3XSwgMCk7CgogICBwcmludChhKTsKICAgcmV0dXJuIDA7CiB9'>⬇</a></div> 
-<div class='ltx_listingline'> +<div id='lstnumberx542' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>1</span></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'>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 id='lstnumberx543' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>2</span></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'>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 id='lstnumberx544' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>3</span></span>+                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>3</span></span> 
 +                
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx545' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>4</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'>main</span>()
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx546' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>5</span></span>{+                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>5</span></span> 
 +                <span class='ltx_text ltx_lst_space'> </span>{
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx547' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx548' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>7</span></span> 
 +                <span class='ltx_text ltx_lst_space'>         </span>([0]<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><<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 id='lstnumberx549' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx550' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>9</span></span>+                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>9</span></span> 
 +                
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx551' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx552' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx553' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>12</span></span>}+                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>12</span></span> 
 +                <span class='ltx_text ltx_lst_space'> </span>}
 </div> </div>
 </div> </div>
Line 4751: Line 5445:
 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><=<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_space'> </span>[5])</span>.
 It denotes the set of vectors It denotes the set of vectors
-<math id='Ch4.S1.SS1.p4.m1' class='ltx_Math' alttext='{{\{\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.m1' class='ltx_Math' alttext='{\{\textrm{\lstinline{{\lst@@@set@language\lst@@@set@numbers\lst@@@set@frame% 
 +\lst@@@set@rulecolor\lst@@@set@language\lst@@@set@numbers[0],{\@listingGroup{% 
 +ltx_lst_space}{~{}}}[1],{\@listingGroup{ltx_lst_space}{~{}}}...,{% 
 +\@listingGroup{ltx_lst_space}{~{}}}[4]}}}}\}' 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.m2' class='ltx_Math' alttext='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.m2' class='ltx_Math' alttext='f_{\text{map}}' display='inline'><msub><mi>f</mi><mtext>map</mtext></msub></math> maps any index vector <span class='ltx_text ltx_lst_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>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.m3' class='ltx_Math' alttext='{{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.m3' class='ltx_Math' alttext='{f_{\text{map}}\textrm{\lstinline{{\lst@@@set@language\lst@@@set@numbers% 
 +\lst@@@set@frame\lst@@@set@rulecolor\lst@@@set@language\lst@@@set@numbers({% 
 +\@listingGroup{ltx_lst_identifier}{iv}}){\@listingGroup{ltx_lst_space}{~{}}}={% 
 +\@listingGroup{ltx_lst_space}{~{}}}42}}}}' 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>.
Line 4767: Line 5467:
 <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.m1' class='ltx_Math' alttext='{{{{{{{{\textrm{\lstinline 1}}}=\begin{cases}f_{\text{map}}\textrm{\lstinline 1}}}&+<td class='ltx_eqn_cell ltx_align_center'><math id='Ch4.Ex1.m1' class='ltx_Math' alttext='{{{{\textrm{\lstinline{{\lst@@@set@language\lst@@@set@numbers\lst@@@set@frame% 
-\textrm{\lstinline 1}}}\in\{\textrm{\lstinline 1}}}\}\\ +\lst@@@set@rulecolor\lst@@@set@language\lst@@@set@numbers{\@listingGroup{% 
-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='5pt' displaystyle='true' rowspacing='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>+ltx_lst_identifier}{a}}[{\@listingGroup{ltx_lst_identifier}{iv}}]}}}}=\begin{
 +cases}f_{\text{map}}\textrm{\lstinline{{\lst@@@set@language\lst@@@set@numbers% 
 +\lst@@@set@frame\lst@@@set@rulecolor\lst@@@set@language\lst@@@set@numbers({% 
 +\@listingGroup{ltx_lst_identifier}{iv}})}}}}&\textrm{\lstinline{{% 
 +\lst@@@set@language\lst@@@set@numbers\lst@@@set@frame\lst@@@set@rulecolor% 
 +\lst@@@set@language\lst@@@set@numbers{\@listingGroup{ltx_lst_identifier}{iv}}}% 
 +}}}\in\{\textrm{\lstinline{{\lst@@@set@language\lst@@@set@numbers% 
 +\lst@@@set@frame\lst@@@set@rulecolor\lst@@@set@language\lst@@@set@numbers[0],{% 
 +\@listingGroup{ltx_lst_space}{~{}}}[1],{\@listingGroup{ltx_lst_space}{~{}}}...% 
 +,{\@listingGroup{ltx_lst_space}{~{}}}[4]}}}}\}\\ 
 +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='5pt' displaystyle='true' rowspacing='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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>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>
Line 4789: Line 5499:
 <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.I3' class='ltx_itemize'> +<ul id='Ch4.S1.I2' class='ltx_itemize'> 
-<li id='Ch4.I3.i1' class='ltx_item' style='list-style-type:none;'> +<li id='Ch4.S1.I2.i1' class='ltx_item' style='list-style-type:none;'> 
-<span class='ltx_tag ltx_tag_itemize'>•</span>  +<span class='ltx_tag ltx_tag_item'>•</span>  
-<div id='Ch4.I3.i1.p1' class='ltx_para'> +<div id='Ch4.S1.I2.i1.p1' class='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><=<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_space'> </span>[3])</span>?</p>
 </div> </div>
 </li> </li>
-<li id='Ch4.I3.i2' class='ltx_item' style='list-style-type:none;'> +<li id='Ch4.S1.I2.i2' class='ltx_item' style='list-style-type:none;'> 
-<span class='ltx_tag ltx_tag_itemize'>•</span>  +<span class='ltx_tag ltx_tag_item'>•</span>  
-<div id='Ch4.I3.i2.p1' class='ltx_para'> +<div id='Ch4.S1.I2.i2.p1' class='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><=<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_space'> </span>[8])</span>?
 </p> </p>
 </div> </div>
 </li> </li>
-<li id='Ch4.I3.i3' class='ltx_item' style='list-style-type:none;'> +<li id='Ch4.S1.I2.i3' class='ltx_item' style='list-style-type:none;'> 
-<span class='ltx_tag ltx_tag_itemize'>•</span>  +<span class='ltx_tag ltx_tag_item'>•</span>  
-<div id='Ch4.I3.i3.p1' class='ltx_para'> +<div id='Ch4.S1.I2.i3.p1' class='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><=<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_space'> </span>[5])</span>?</p>
 </div> </div>
 </li> </li>
-<li id='Ch4.I3.i4' class='ltx_item' style='list-style-type:none;'> +<li id='Ch4.S1.I2.i4' class='ltx_item' style='list-style-type:none;'> 
-<span class='ltx_tag ltx_tag_itemize'>•</span>  +<span class='ltx_tag ltx_tag_item'>•</span>  
-<div id='Ch4.I3.i4.p1' class='ltx_para'> +<div id='Ch4.S1.I2.i4.p1' class='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><=<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_space'> </span>[5])</span>?</p>
 </div> </div>
 </li> </li>
-<li id='Ch4.I3.i5' class='ltx_item' style='list-style-type:none;'> +<li id='Ch4.S1.I2.i5' class='ltx_item' style='list-style-type:none;'> 
-<span class='ltx_tag ltx_tag_itemize'>•</span>  +<span class='ltx_tag ltx_tag_item'>•</span>  
-<div id='Ch4.I3.i5.p1' class='ltx_para'> +<div id='Ch4.S1.I2.i5.p1' class='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><=<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_space'> </span>[0])</span>?</p>
 </div> </div>
 </li> </li>
Line 4838: Line 5548:
 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='LST31' class='ltx_float ltx_lstlisting ltx_role_listing'>+<figure id='LST31' class='ltx_float ltx_lstlisting'>
 <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,IHVzZSBTdGRJTzogYWxsOwogdXNlIEFycmF5OiBhbGw7CgogaW50IG1haW4oKQogewogICBhID0gd2l0aCB7CiAgICAgICAgIChbMCwyXSA8PSBbaSxqXSA8IFs1LDZdKTogNDI7CiAgICAgICB9OiBnZW5hcnJheShbNSw2XSwgMCk7CiAgIHByaW50KGEpOwoKICAgc2hwID0gWzUsNl07CiAgIGEgPSB3aXRoIHsKICAgICAgICAgKDAqc2hwIDw9IGl2IDwgc2hwKTogNDI7CiAgICAgICB9OiBnZW5hcnJheShzaHAsIDApOwogICBwcmludChhKTsKCiAgIGEgPSB3aXRoIHsKICAgICAgICAgKC4gPCBpdiA8IC4pOiA0MjsKICAgICAgIH06IGdlbmFycmF5KFs1LDZdLCAwKTsKICAgcHJpbnQoYSk7CgogICBhID0gd2l0aCB7CiAgICAgICAgICguIDw9IGp2PVt4LHldIDw9IFs0LDVdKTogNDI7CiAgICAgICB9OiBnZW5hcnJheSggWzUsNl0sIDApOwogICBwcmludChhKTsKCiAgIGEgPSB3aXRoIHsKICAgICAgICAgKC4gPD0gW2ksal0gPD0gLiBzdGVwIFsxLDRdKTogNDI7CiAgICAgICB9OiBnZW5hcnJheShbNSw2XSwgMCk7CiAgIHByaW50KGEpOwoKICAgYSA9IHdpdGggewogICAgICAgICAoLiA8PSBbaSxqXSA8PSAuIHN0ZXAgWzIsNF0gd2lkdGggWzEsMl0pOiA0MjsKICAgICAgIH06IGdlbmFycmF5KFs1LDZdLCAwKTsKICAgcHJpbnQoYSk7CgogICByZXR1cm4gMDsKIH0='>⬇</a></div> 
-<div class='ltx_listingline'> +<div id='lstnumberx554' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>1</span></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'>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 id='lstnumberx555' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>2</span></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'>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 id='lstnumberx556' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>3</span></span>+                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>3</span></span> 
 +                
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx557' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>4</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'>main</span>()
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx558' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>5</span></span>{+                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>5</span></span> 
 +                <span class='ltx_text ltx_lst_space'> </span>{
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx559' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx560' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>7</span></span> 
 +                <span class='ltx_text ltx_lst_space'>         </span>([0,2]<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_identifier'>j</span>]<span class='ltx_text ltx_lst_space'> </span><<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 id='lstnumberx561' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx562' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx563' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>10</span></span>+                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>10</span></span> 
 +                
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx564' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx565' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx566' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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><=<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_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 id='lstnumberx567' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx568' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx569' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>16</span></span>+                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>16</span></span> 
 +                
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx570' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx571' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>18</span></span> 
 +                <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'>iv</span><span class='ltx_text ltx_lst_space'> </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 id='lstnumberx572' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx573' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx574' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>21</span></span>+                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>21</span></span> 
 +                
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx575' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx576' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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_space'> </span><span class='ltx_text ltx_lst_identifier'>jv</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><=<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 id='lstnumberx577' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx578' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx579' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>26</span></span>+                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>26</span></span> 
 +                
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx580' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx581' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>28</span></span> 
 +                <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'>i</span>,<span class='ltx_text ltx_lst_identifier'>j</span>]<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'>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 id='lstnumberx582' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx583' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx584' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>31</span></span>+                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>31</span></span> 
 +                
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx585' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx586' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>33</span></span> 
 +                <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'>i</span>,<span class='ltx_text ltx_lst_identifier'>j</span>]<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'>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 id='lstnumberx587' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx588' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx589' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>36</span></span>+                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>36</span></span> 
 +                
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx590' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx591' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>38</span></span>}+                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>38</span></span> 
 +                <span class='ltx_text ltx_lst_space'> </span>}
 </div> </div>
 </div> </div>
Line 4962: Line 5710:
 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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>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 4969: Line 5717:
 as well as for the bounds.</p> as well as for the bounds.</p>
 </div> </div>
-<div id='Ch4.S1.SS2.p3' class='ltx_para'> +<div id='Ch4.S1.SS2.p3' class='ltx_para ltx_align_center'> 
-<p class='ltx_p ltx_align_center'> +<p class='ltx_p'><span class='ltx_text ltx_framed_rectangle' style='border-color: black;'> 
- +<span class='ltx_inline-para ltx_minipage ltx_align_middle' style='width:390.3pt;'> 
-<span class='ltx_inline-block ltx_minipage ltx_align_middle ltx_framed_rectangle' style='width:390.3pt;'>+<span id='Ch4.S1.SS2.p3.p1' class='ltx_para'>
 <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!
Line 4981: Line 5729:
 from most conventional language from most conventional language
 constructs for data-parallel array operations.</span></span> constructs for data-parallel array operations.</span></span>
-</span> +</span></span> 
-</p>+</span></p>
 </div> </div>
 <div id='Ch4.S1.SS2.p4' class='ltx_para'> <div id='Ch4.S1.SS2.p4' class='ltx_para'>
Line 4988: Line 5736:
 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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>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
Line 4996: Line 5744:
 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 ltx_font_italic'>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'><=</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>
Line 5007: Line 5755:
 <div id='Thmtheorem26.p1' class='ltx_para'> <div id='Thmtheorem26.p1' class='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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>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>
Line 5022: Line 5770:
 <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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>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
Line 5029: Line 5777:
 </div> </div>
 <div id='Ch4.S1.SS2.p7' class='ltx_para'> <div id='Ch4.S1.SS2.p7' class='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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>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
Line 5058: Line 5806:
 associated generator expression. Here a few examples:</p> associated generator expression. Here a few examples:</p>
 </div> </div>
-<figure id='LST32' class='ltx_float ltx_lstlisting ltx_role_listing'>+<figure id='LST32' class='ltx_float ltx_lstlisting'>
 <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,IHVzZSBTdGRJTzogYWxsOwogdXNlIEFycmF5OiBhbGw7CgogaW50LCBpbnQgZGl2bW9kKGludCB4LCBpbnQgeSkKIHsKICAgcmV0dXJuICh4IC8geSwgeCAlIHkpOwogfQoKIGludCBtYWluKCkKIHsKICAgYSA9IHdpdGggewogICAgICAgICAoWzAsMV0gPD0gW2ksal0gPCBbNiw2XSkgewogICAgICAgICAgIGRpdiwgbW9kID0gZGl2bW9kKCBpLCBqKTsKICAgICAgICAgfTogbW9kOwogICAgICAgfTogZ2VuYXJyYXkoWzYsNl0sIDApOwogICBwcmludChhKTsKCiAgIGEgPSB3aXRoIHsKICAgICAgICAgKC4gPD0gW2ksal0gPD0gLik6IChpPT1qID8gMTogMCkgOwogICAgICAgfTogZ2VuYXJyYXkoWzYsNl0sIDApOwogICBwcmludChhKTsKCiAgIGEgPSB3aXRoIHsKICAgICAgICAgKC4gPD0gW2ldIDw9IC4pIHsKICAgICAgICAgICBtdmFsID0gaTsKICAgICAgICAgICB2YWwgPSBzdW0od2l0aCB7CiAgICAgICAgICAgICAgICAgICAgICAgICguIDw9IFtpXSA8PSAuKTogaTsKICAgICAgICAgICAgICAgICAgICAgfTogZ2VuYXJyYXkoW212YWxdLCAwKSk7CiAgICAgICAgIH06IHZhbDsKICAgICAgIH06IGdlbmFycmF5KFs2XSwgMCk7CiAgIHByaW50KGEpOwoKICAgcmV0dXJuIDA7CiB9'>⬇</a></div> 
-<div class='ltx_listingline'> +<div id='lstnumberx592' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>1</span></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'>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 id='lstnumberx593' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>2</span></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'>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 id='lstnumberx594' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>3</span></span>+                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>3</span></span> 
 +                
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx595' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>4</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_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 id='lstnumberx596' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>5</span></span>{+                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>5</span></span> 
 +                <span class='ltx_text ltx_lst_space'> </span>{
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx597' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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'>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 id='lstnumberx598' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>7</span></span> 
 +                <span class='ltx_text ltx_lst_space'> </span>}
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx599' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>8</span></span> 
 +                
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx600' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>9</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'>main</span>()
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx601' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>10</span></span> 
 +                <span class='ltx_text ltx_lst_space'> </span>{
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx602' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>11</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 id='lstnumberx603' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>12</span></span>+                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>12</span></span> 
 +                <span class='ltx_text ltx_lst_space'>         </span>([0,1]<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_identifier'>j</span>]<span class='ltx_text ltx_lst_space'> </span><<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 id='lstnumberx604' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>13</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><span class='ltx_text ltx_lst_identifier'>j</span>);
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx605' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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'>mod</span>;
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx606' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx607' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx608' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>17</span></span>+                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>17</span></span> 
 +                
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx609' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx610' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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_space'> </span>[<span class='ltx_text ltx_lst_identifier'>i</span>,<span class='ltx_text ltx_lst_identifier'>j</span>]<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'>i</span>==<span class='ltx_text ltx_lst_identifier'>j</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>0)<span class='ltx_text ltx_lst_space'> </span>;
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx611' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>20</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 id='lstnumberx612' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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'>a</span>);
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx613' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>22</span></span> 
 +                
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx614' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>23</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 id='lstnumberx615' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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_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>.)<span class='ltx_text ltx_lst_space'> </span>{
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx616' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>25</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 id='lstnumberx617' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>26</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 id='lstnumberx618' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>27</span></span>+                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>27</span></span> 
 +                <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'>i</span>]<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'>i</span>;
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx619' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>28</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 id='lstnumberx620' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>29</span></span>}+                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='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'>val</span>; 
 +</div> 
 +<div id='lstnumberx621' class='ltx_listingline'> 
 +                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>30</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 id='lstnumberx622' class='ltx_listingline'> 
 +                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>31</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 id='lstnumberx623' class='ltx_listingline'> 
 +                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>32</span></span> 
 +                 
 +</div> 
 +<div id='lstnumberx624' class='ltx_listingline'> 
 +                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>33</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 id='lstnumberx625' class='ltx_listingline'> 
 +                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>34</span></span> 
 +                <span class='ltx_text ltx_lst_space'> </span>}
 </div> </div>
 </div> </div>
 </figure> </figure>
 <div id='Ch4.S1.SS3.p2' class='ltx_para'> <div id='Ch4.S1.SS3.p2' class='ltx_para'>
-<p class='ltx_p'>The first with-loop in lines 610+<p class='ltx_p'>The first with-loop in lines 1115
 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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>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
Line 5160: Line 5957:
 </div> </div>
 <div id='Ch4.S1.SS3.p3' class='ltx_para'> <div id='Ch4.S1.SS3.p3' class='ltx_para'>
-<p class='ltx_p'>The with-loop in lines 1315+<p class='ltx_p'>The with-loop in lines 1820
 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.p4' class='ltx_para'> <div id='Ch4.S1.SS3.p4' class='ltx_para'>
Line 5172: Line 5970:
 Note, however, that with-loops can be arbitrarily nested. Note, however, that with-loops can be arbitrarily nested.
 An example for such a nesting is shown in the with-loop in An example for such a nesting is shown in the with-loop in
-lines 1825+lines 2330
 of the examples above.</p> of the examples above.</p>
 </div> </div>
Line 5183: Line 5981:
 </div> </div>
 <div id='Thmtheorem28.p2' class='ltx_para'> <div id='Thmtheorem28.p2' class='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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>i</span>?</p>
 </div> </div>
 </div> </div>
Line 5194: Line 5992:
 <div id='Ch4.S1.SS4.p1' class='ltx_para'> <div id='Ch4.S1.SS4.p1' class='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.p2' class='ltx_para'> <div id='Ch4.S1.SS4.p2' class='ltx_para'>
-<ul id='Ch4.I4' class='ltx_itemize'> +<ul id='Ch4.S1.I3' class='ltx_itemize'> 
-<li id='Ch4.I4.i1' class='ltx_item' style='list-style-type:none;'> +<li id='Ch4.S1.I3.i1' class='ltx_item' style='list-style-type:none;'> 
-<span class='ltx_tag ltx_tag_itemize'>•</span>  +<span class='ltx_tag ltx_tag_item'>•</span>  
-<div id='Ch4.I4.i1.p1' class='ltx_para'> +<div id='Ch4.S1.I3.i1.p1' class='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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>modarray</span> operator which “modifies” an existing array, and</p>
 </div> </div>
 </li> </li>
-<li id='Ch4.I4.i2' class='ltx_item' style='list-style-type:none;'> +<li id='Ch4.S1.I3.i2' class='ltx_item' style='list-style-type:none;'> 
-<span class='ltx_tag ltx_tag_itemize'>•</span>  +<span class='ltx_tag ltx_tag_item'>•</span>  
-<div id='Ch4.I4.i2.p1' class='ltx_para'> +<div id='Ch4.S1.I3.i2.p1' class='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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>fold</span> operators that enable the specification of reduction
 operations</p> operations</p>
 </div> </div>
Line 5222: Line 6019:
 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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>b</span> is computed from the array <span class='ltx_text ltx_lst_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>a</span>.
 As in lesson <a href='#Ch2.S1' title='2.1 Lesson 1: Arrays as Data ‣ Chapter 2 Array Programming Basics ‣ Part I Trails Covering the Basics of SaC' class='ltx_ref'><span class='ltx_text ltx_ref_tag'>2.1</span></a> on arrays as data, printing As in lesson <a href='#Ch2.S1' title='2.1 Lesson 1: Arrays as Data ‣ Chapter 2 Array Programming Basics ‣ Part I Trails Covering the Basics of SaC' class='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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>a</span> in line 15 shows that in fact two different arrays have
 been created.</p> been created.</p>
 </div> </div>
-<figure id='LST33' class='ltx_float ltx_lstlisting ltx_role_listing'>+<figure id='LST33' class='ltx_float ltx_lstlisting'>
 <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,IHVzZSBTdGRJTzogYWxsOwogdXNlIEFycmF5OiBhbGw7CgogaW50IG1haW4oKQogewogICBhID0gd2l0aCB7CiAgICAgICAgICguIDw9IFtpXSA8PSAuKTogaTsKICAgICAgIH06IGdlbmFycmF5KCBbNl0sIDApOwogICBwcmludChhKTsKCiAgIGIgPSB3aXRoIHsKICAgICAgICAgKC4gPD0gaXYgPD0gLiBzdGVwIFsyXSk6IC1hW2l2XTsKICAgICAgIH06IG1vZGFycmF5KGEpOwogICBwcmludChiKTsKICAgcHJpbnQoYSk7CgogICBjID0gd2l0aCB7CiAgICAgICAgKFswXSA8PSBpdiA8PSBbNV0pOiBhW2l2XTsKICAgICAgIH06IGZvbGQoKiwgMSk7CiAgIHByaW50KGMpOwoKICAgZCA9IHdpdGggewogICAgICAgIChbMF0gPD0gaXYgPD0gWzVdKTogYVtpdl07CiAgICAgICB9OiBmb2xkZml4KCosIDEsIDApOwogICBwcmludChkKTsKCiAgIHJldHVybiAwOwogfQ=='>⬇</a></div> 
-<div class='ltx_listingline'> +<div id='lstnumberx626' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>1</span></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'>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 id='lstnumberx627' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>2</span></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'>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 id='lstnumberx628' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>3</span></span>+                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>3</span></span> 
 +                
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx629' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>4</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'>main</span>()
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx630' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>5</span></span>{+                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>5</span></span> 
 +                <span class='ltx_text ltx_lst_space'> </span>{
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx631' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx632' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>7</span></span> 
 +                <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'>i</span>]<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'>i</span>;
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx633' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx634' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx635' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>10</span></span>+                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>10</span></span> 
 +                
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx636' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx637' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>12</span></span> 
 +                <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'>iv</span><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'>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 id='lstnumberx638' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx639' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx640' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx641' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>16</span></span>+                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>16</span></span> 
 +                
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx642' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx643' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>18</span></span> 
 +                <span class='ltx_text ltx_lst_space'>        </span>([0]<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><=<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 id='lstnumberx644' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx645' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx646' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>21</span></span>+                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>21</span></span> 
 +                
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx647' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx648' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>23</span></span> 
 +                <span class='ltx_text ltx_lst_space'>        </span>([0]<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><=<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 id='lstnumberx649' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx650' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx651' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>26</span></span>+                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>26</span></span> 
 +                
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx652' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx653' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>28</span></span>}+                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>28</span></span> 
 +                <span class='ltx_text ltx_lst_space'> </span>}
 </div> </div>
 </div> </div>
Line 5349: Line 6174:
 <section id='Ch5' class='ltx_chapter'> <section id='Ch5' class='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.p1' class='ltx_para'> <div id='Ch5.p1' class='ltx_para'>
Line 5364: Line 6189:
 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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>main</span> as its name space identifier. As an example of 
-using name spaces consider Listing <a href='#LST34' title='34 ‣ 5.1 Name Spaces ‣ Chapter 5 Working with Modules ‣ Part I Trails Covering the Basics of SaC' class='ltx_ref'><span class='ltx_text ltx_ref_tag'>34</span></a>.</p>+using name spaces consider Listing <a href='#LST34' title='Listing 34 ‣ 5.1 Name Spaces ‣ Chapter 5 Working with Modules ‣ Part I Trails Covering the Basics of SaC' class='ltx_ref'><span class='ltx_text ltx_ref_tag'>34</span></a>.</p>
 </div> </div>
-<figure id='LST34' class='ltx_float ltx_lstlisting ltx_role_listing'>+<figure id='LST34' class='ltx_float ltx_lstlisting'>
 <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,IGludCBtYWluKCkKIHsKICAgU3RkSU86OnByaW50ZigiSGVsbG8gV29ybGQhXG4iKTsKICAgcmV0dXJuIDA7CiB9'>⬇</a></div> 
-<div class='ltx_listingline'> +<div id='lstnumberx654' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>1</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'>main</span>()
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx655' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>2</span></span>{+                <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>2</span></span> 
 +              <span class='ltx_text ltx_lst_space'> </span>{
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx656' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx657' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx658' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>5</span></span>}+                <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>5</span></span> 
 +              <span class='ltx_text ltx_lst_space'> </span>}
 </div> </div>
 </div> </div>
Line 5414: Line 6244:
 well be expressed as follows:</p> well be expressed as follows:</p>
 </div> </div>
-<figure id='LST35' class='ltx_float ltx_lstlisting ltx_role_listing'>+<figure id='LST35' class='ltx_float ltx_lstlisting'>
 <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,IHVzZSBTdGRJTzogYWxsOwoKIGludCBtYWluKCkKIHsKICAgcHJpbnRmKCJIZWxsbyBXb3JsZCFcbiIpOwogICByZXR1cm4gMDsKIH0='>⬇</a></div> 
-<div class='ltx_listingline'> +<div id='lstnumberx659' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>1</span></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'>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 id='lstnumberx660' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>2</span></span>+                <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>2</span></span> 
 +              
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx661' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>3</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'>main</span>()
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx662' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>4</span></span>{+                <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>4</span></span> 
 +              <span class='ltx_text ltx_lst_space'> </span>{
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx663' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx664' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx665' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>7</span></span>}+                <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>7</span></span> 
 +              <span class='ltx_text ltx_lst_space'> </span>}
 </div> </div>
 </div> </div>
Line 5448: Line 6285:
 <div id='Ch5.S2.p3' class='ltx_para'> <div id='Ch5.S2.p3' class='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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>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='LST36' class='ltx_float ltx_lstlisting ltx_role_listing'>+<figure id='LST36' class='ltx_float ltx_lstlisting'>
 <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,IHVzZSBTdGRJTzoge3ByaW50Zn07CgogaW50IG1haW4oKQogewogICBwcmludGYoIkhlbGxvIFdvcmxkIVxuIik7CiAgIHJldHVybiAwOwogfQ=='>⬇</a></div> 
-<div class='ltx_listingline'> +<div id='lstnumberx666' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>1</span></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'>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 id='lstnumberx667' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>2</span></span>+                <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>2</span></span> 
 +              
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx668' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>3</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'>main</span>()
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx669' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>4</span></span>{+                <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>4</span></span> 
 +              <span class='ltx_text ltx_lst_space'> </span>{
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx670' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx671' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx672' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>7</span></span>}+                <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>7</span></span> 
 +              <span class='ltx_text ltx_lst_space'> </span>}
 </div> </div>
 </div> </div>
 </figure> </figure>
 <div id='Ch5.S2.p4' class='ltx_para'> <div id='Ch5.S2.p4' class='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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>StdIO</span>. To use <span class='ltx_text ltx_lst_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>FastIO</span> except the <span class='ltx_text ltx_lst_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>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='LST37' class='ltx_float ltx_lstlisting ltx_role_listing'>+<figure id='LST37' class='ltx_float ltx_lstlisting'>
 <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,IHVzZSBGYXN0SU86IGFsbCBleGNlcHQge3ByaW50Zn07CiB1c2UgU3RkSU86IHtwcmludGZ9OwoKIGludCBtYWluKCkKIHsKICAgcHJpbnRmKCJIZWxsbyBXb3JsZCFcbiIpOwogICByZXR1cm4gMDsKIH0='>⬇</a></div> 
-<div class='ltx_listingline'> +<div id='lstnumberx673' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>1</span></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'>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 id='lstnumberx674' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>2</span></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'>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 id='lstnumberx675' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>3</span></span>+                <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>3</span></span> 
 +              
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx676' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>4</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'>main</span>()
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx677' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>5</span></span>{+                <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>5</span></span> 
 +              <span class='ltx_text ltx_lst_space'> </span>{
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx678' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx679' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx680' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>8</span></span>}+                <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>8</span></span> 
 +              <span class='ltx_text ltx_lst_space'> </span>}
 </div> </div>
 </div> </div>
 </figure> </figure>
 <div id='Ch5.S2.p5' class='ltx_para'> <div id='Ch5.S2.p5' class='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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>StdIO</span>.</p>
 </div> </div>
 </section> </section>
Line 5531: Line 6383:
 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_keyword ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting 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_keyword ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_font_bold'>import</span> statement.</p>
 </div> </div>
-<figure id='LST38' class='ltx_float ltx_lstlisting ltx_role_listing'>+<figure id='LST38' class='ltx_float ltx_lstlisting'>
 <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,IGltcG9ydCBTdGRJTzoge3ByaW50Zn07CgogaW50IG1haW4oKQogewogICBtYWluOjpwcmludGYoIkhlbGxvIFdvcmxkIVxuIik7CiAgIHJldHVybiAwOwogfQ=='>⬇</a></div> 
-<div class='ltx_listingline'> +<div id='lstnumberx681' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>1</span></span> 
 +              <span class='ltx_text ltx_lst_space'> </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 id='lstnumberx682' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>2</span></span>+                <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>2</span></span> 
 +              
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx683' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>3</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'>main</span>()
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx684' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>4</span></span>{+                <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>4</span></span> 
 +              <span class='ltx_text ltx_lst_space'> </span>{
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx685' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx686' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx687' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>7</span></span>}+                <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>7</span></span> 
 +              <span class='ltx_text ltx_lst_space'> </span>}
 </div> </div>
 </div> </div>
Line 5567: Line 6426:
 <div id='Ch5.S3.p2' class='ltx_para'> <div id='Ch5.S3.p2' class='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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>main</span>. Consider a module <span class='ltx_text ltx_lst_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>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='LST39' class='ltx_float ltx_lstlisting ltx_role_listing'>+<figure id='LST39' class='ltx_float ltx_lstlisting'>
 <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,IGltcG9ydCBmb286IHtiYXJ9OwoKIGludFsrXSBiYXIoaW50WytdIHgpCiB7CiAgIC8qIC4uLiAgKi8KIH0KCiBpbnQgbWFpbigpCiB7CiAgIC8qIC4uLiAgKi8KCiAgIHkgPSBiYXIoeCk7CgogICAvKiAuLi4gICovCiB9'>⬇</a></div> 
-<div class='ltx_listingline'> +<div id='lstnumberx688' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>1</span></span> 
 +              <span class='ltx_text ltx_lst_space'> </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 id='lstnumberx689' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>2</span></span>+                <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>2</span></span> 
 +              
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx690' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>3</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'>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 id='lstnumberx691' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>4</span></span>{+                <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>4</span></span> 
 +              <span class='ltx_text ltx_lst_space'> </span>{
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx692' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx693' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>6</span></span>}+                <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>6</span></span> 
 +              <span class='ltx_text ltx_lst_space'> </span>}
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx694' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>7</span></span>+                <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>7</span></span> 
 +              
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx695' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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'>main</span>()
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx696' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>9</span></span>{+                <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>9</span></span> 
 +              <span class='ltx_text ltx_lst_space'> </span>{
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx697' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx698' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>11</span></span>+                <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>11</span></span> 
 +              
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx699' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx700' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>13</span></span>+                <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>13</span></span> 
 +              
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx701' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx702' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>15</span></span>}+                <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>15</span></span> 
 +              <span class='ltx_text ltx_lst_space'> </span>}
 </div> </div>
 </div> </div>
 </figure> </figure>
 <div id='Ch5.S3.p3' class='ltx_para'> <div id='Ch5.S3.p3' class='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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>main</span> there are two instances of <span class='ltx_text ltx_lst_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>foo</span> and the one defined within <span class='ltx_text ltx_lst_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>main</span> and so overloading can take place.</p>
 </div> </div>
 <div id='Ch5.S3.p4' class='ltx_para'> <div id='Ch5.S3.p4' class='ltx_para'>
Line 5641: Line 6515:
 <div id='Ch5.S4.p1' class='ltx_para'> <div id='Ch5.S4.p1' class='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_keyword ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting 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='LST40' class='ltx_float ltx_lstlisting ltx_role_listing'>+<figure id='LST40' class='ltx_float ltx_lstlisting'>
 <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,IHVzZSBTdGRJTzogYWxsOwogaW1wb3J0IFN0ZElPOiB7cHJpbnRmfTsKCiBpbnQgbWFpbigpCiB7CiAgIHByaW50ZigiTmV2ZXIgc2VlIHRoaXMhXG4iKTsKCiAgIHJldHVybiAwOwogfQ=='>⬇</a></div> 
-<div class='ltx_listingline'> +<div id='lstnumberx703' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>1</span></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'>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 id='lstnumberx704' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>2</span></span> 
 +              <span class='ltx_text ltx_lst_space'> </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 id='lstnumberx705' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>3</span></span>+                <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>3</span></span> 
 +              
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx706' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>4</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'>main</span>()
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx707' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>5</span></span>{+                <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>5</span></span> 
 +              <span class='ltx_text ltx_lst_space'> </span>{
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx708' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx709' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>7</span></span>+                <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>7</span></span> 
 +              
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx710' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx711' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>9</span></span>}+                <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>9</span></span> 
 +              <span class='ltx_text ltx_lst_space'> </span>}
 </div> </div>
 </div> </div>
 </figure> </figure>
 <div id='Ch5.S4.p2' class='ltx_para'> <div id='Ch5.S4.p2' class='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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>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_keyword ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting 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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>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_keyword ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_font_bold'>use</span> statement can be used.</p>
 </div> </div>
-<figure id='LST41' class='ltx_float ltx_lstlisting ltx_role_listing'>+<figure id='LST41' class='ltx_float ltx_lstlisting'>
 <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,IHVzZSBTdGRJTzogYWxsIGV4Y2VwdCB7cHJpbnRmfTsKIGltcG9ydCBTdGRJTzoge3ByaW50Zn07CgogaW50IG1haW4oKQogewogICBwcmludGYoIkhleSwgaXQgd29ya3MhXG4iKTsKCiAgIHJldHVybiAwOwogfQ=='>⬇</a></div> 
-<div class='ltx_listingline'> +<div id='lstnumberx712' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>1</span></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'>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 id='lstnumberx713' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>2</span></span> 
 +              <span class='ltx_text ltx_lst_space'> </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 id='lstnumberx714' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>3</span></span>+                <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>3</span></span> 
 +              
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx715' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>4</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'>main</span>()
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx716' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>5</span></span>{+                <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>5</span></span> 
 +              <span class='ltx_text ltx_lst_space'> </span>{
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx717' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx718' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>7</span></span>+                <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>7</span></span> 
 +              
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx719' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx720' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>9</span></span>}+                <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>9</span></span> 
 +              <span class='ltx_text ltx_lst_space'> </span>}
 </div> </div>
 </div> </div>
Line 5733: Line 6625:
 <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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>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='LST42' class='ltx_float ltx_lstlisting ltx_role_listing'>+<figure id='LST42' class='ltx_float ltx_lstlisting'>
 <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,IG1vZHVsZSBteW1vZDsKCiBwcm92aWRlIGFsbCBleGNlcHQge2Zvb307CiBleHBvcnQge2Zvb307CgogaW50IGZvbyhpbnQgeCkKIHsKICAgcmV0dXJuIC8qIC4uLiAgKi87CiB9CgogaW50IGJhcih4IGludCB4KQogewogICByZXR1cm4gLyogLi4uICAqLzsKIH0='>⬇</a></div> 
-<div class='ltx_listingline'> +<div id='lstnumberx721' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>1</span></span> 
 +              <span class='ltx_text ltx_lst_space'> </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 id='lstnumberx722' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>2</span></span>+                <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>2</span></span> 
 +              
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx723' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>3</span></span> 
 +              <span class='ltx_text ltx_lst_space'> </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 id='lstnumberx724' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>4</span></span> 
 +              <span class='ltx_text ltx_lst_space'> </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 id='lstnumberx725' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>5</span></span>+                <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>5</span></span> 
 +              
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx726' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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'>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 id='lstnumberx727' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>7</span></span>{+                <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>7</span></span> 
 +              <span class='ltx_text ltx_lst_space'> </span>{
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx728' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx729' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>9</span></span>}+                <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>9</span></span> 
 +              <span class='ltx_text ltx_lst_space'> </span>}
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx730' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>10</span></span>+                <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>10</span></span> 
 +              
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx731' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>11</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'>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 id='lstnumberx732' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>12</span></span>{+                <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>12</span></span> 
 +              <span class='ltx_text ltx_lst_space'> </span>{
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx733' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx734' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>14</span></span>}+                <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>14</span></span> 
 +              <span class='ltx_text ltx_lst_space'> </span>}
 </div> </div>
 </div> </div>
Line 5789: Line 6695:
 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_keyword ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting 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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>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_keyword ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting 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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>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_keyword ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_font_bold'>use</span> or <span class='ltx_text ltx_lst_keyword ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting 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_keyword ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_font_bold'>provide</span> and <span class='ltx_text ltx_lst_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>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_keyword ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_font_bold'>use</span> and <span class='ltx_text ltx_lst_keyword ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting 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 5805: Line 6711:
 <section id='Ch6' class='ltx_chapter'> <section id='Ch6' class='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.p1' class='ltx_para'> <div id='Ch6.p1' class='ltx_para'>
Line 5831: Line 6737:
 <table id='Ch10.S4.EGx1' class='ltx_equationgroup ltx_eqn_eqnarray ltx_eqn_table'> <table id='Ch10.S4.EGx1' class='ltx_equationgroup ltx_eqn_eqnarray ltx_eqn_table'>
  
-<tr id='Ch6.Ex1' class='ltx_equation ltx_eqn_row ltx_align_baseline'>+<tbody id='Ch6.Ex1'><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_td ltx_align_right ltx_eqn_cell'><math id='Ch6.Ex1.m1' class='ltx_Math' alttext='\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.m1' class='ltx_Math' alttext='\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>
Line 5837: Line 6743:
 <td class='ltx_td ltx_align_left ltx_eqn_cell'><math id='Ch6.Ex1.m3' class='ltx_Math' alttext='\displaystyle\mathbb{N}' display='inline'><mi>ℕ</mi></math></td> <td class='ltx_td ltx_align_left ltx_eqn_cell'><math id='Ch6.Ex1.m3' class='ltx_Math' alttext='\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></tbody
-<tr id='Ch6.Ex2' class='ltx_equation ltx_eqn_row ltx_align_baseline'>+<tbody id='Ch6.Ex2'><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_td ltx_align_right ltx_eqn_cell'><math id='Ch6.Ex2.m1' class='ltx_Math' alttext='\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.m1' class='ltx_Math' alttext='\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>
Line 5844: Line 6750:
 <td class='ltx_td ltx_align_left ltx_eqn_cell'><math id='Ch6.Ex2.m3' class='ltx_Math' alttext='\displaystyle\begin{cases}v_{xy},&\mbox{if }x<x_{\text{max}}\wedge y<y_{\text{% <td class='ltx_td ltx_align_left ltx_eqn_cell'><math id='Ch6.Ex2.m3' class='ltx_Math' alttext='\displaystyle\begin{cases}v_{xy},&\mbox{if }x<x_{\text{max}}\wedge y<y_{\text{%
 max}}\\ max}}\\
-0,&\mbox{otherwise}\end{cases}' display='inline'><mrow><mo>{</mo><mtable columnspacing='5pt' rowspacing='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='5pt' rowspacing='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><</mo><mrow><msub><mi>x</mi><mtext>max</mtext></msub><mo>∧</mo><mi>y</mi></mrow><mo><</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></tbody>
 </table> </table>
 <p class='ltx_p'>where <math id='Ch6.S1.p2.m2' class='ltx_Math' alttext='\forall x,y:0\leq v_{xy}\leq 255' display='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.m2' class='ltx_Math' alttext='\forall x,y:0\leq v_{xy}\leq 255' display='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
Line 5861: Line 6767:
 <table id='Ch10.S4.EGx2' class='ltx_equationgroup ltx_eqn_eqnarray ltx_eqn_table'> <table id='Ch10.S4.EGx2' class='ltx_equationgroup ltx_eqn_eqnarray ltx_eqn_table'>
  
-<tr id='Ch6.Ex3' class='ltx_equation ltx_eqn_row ltx_align_baseline'>+<tbody id='Ch6.Ex3'><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_td ltx_align_right ltx_eqn_cell'><math id='Ch6.Ex3.m1' class='ltx_Math' alttext='\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.m1' class='ltx_Math' alttext='\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>
Line 5867: Line 6773:
 <td class='ltx_td ltx_align_left ltx_eqn_cell'><math id='Ch6.Ex3.m3' class='ltx_Math' alttext='\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='true' movablelimits='false' symmetric='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='true' movablelimits='false' symmetric='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.m3' class='ltx_Math' alttext='\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='true' movablelimits='false' symmetric='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='true' movablelimits='false' symmetric='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></tbody>
 </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
Line 5896: Line 6802:
 <table id='Ch10.S4.EGx3' class='ltx_equationgroup ltx_eqn_eqnarray ltx_eqn_table'> <table id='Ch10.S4.EGx3' class='ltx_equationgroup ltx_eqn_eqnarray ltx_eqn_table'>
  
-<tr id='Ch6.Ex4' class='ltx_equation ltx_eqn_row ltx_align_baseline'>+<tbody id='Ch6.Ex4'><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_td ltx_align_right ltx_eqn_cell'><math id='Ch6.Ex4.m1' class='ltx_Math' alttext='\displaystyle F_{x}=\begin{pmatrix}1&0&-1\\ <td class='ltx_td ltx_align_right ltx_eqn_cell'><math id='Ch6.Ex4.m1' class='ltx_Math' alttext='\displaystyle F_{x}=\begin{pmatrix}1&0&-1\\
Line 5906: Line 6812:
 -1&-2&-1\end{pmatrix}' display='inline'><mrow><msub><mi>F</mi><mi>y</mi></msub><mo>=</mo><mrow><mo>(</mo><mtable columnspacing='5pt' rowspacing='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='5pt' rowspacing='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></tbody>
 </table> </table>
 <p class='ltx_p'>Applying these two masks to an input image <math id='Thmtheorem29.p1.m1' class='ltx_Math' alttext='S' display='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.m1' class='ltx_Math' alttext='S' display='inline'><mi>S</mi></math> yields two sub-results, one
Line 5922: Line 6828:
 <table id='Ch10.S4.EGx4' class='ltx_equationgroup ltx_eqn_eqnarray ltx_eqn_table'> <table id='Ch10.S4.EGx4' class='ltx_equationgroup ltx_eqn_eqnarray ltx_eqn_table'>
  
-<tr id='Ch6.Ex5' class='ltx_equation ltx_eqn_row ltx_align_baseline'>+<tbody id='Ch6.Ex5'><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_td ltx_align_right ltx_eqn_cell'><math id='Ch6.Ex5.m1' class='ltx_Math' alttext='\displaystyle G_{9}=\frac{1}{15}\cdot\begin{pmatrix}1&2&1\\ <td class='ltx_td ltx_align_right ltx_eqn_cell'><math id='Ch6.Ex5.m1' class='ltx_Math' alttext='\displaystyle G_{9}=\frac{1}{15}\cdot\begin{pmatrix}1&2&1\\
 2&3&2\\ 2&3&2\\
-1&2&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='5pt' rowspacing='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='5pt' rowspacing='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.m3' class='ltx_Math' alttext='\displaystyle G_{25}=\frac{1}{331}\begin{pmatrix}1&4&7&4&1\\ <td class='ltx_td ltx_align_left ltx_eqn_cell'><math id='Ch6.Ex5.m3' class='ltx_Math' alttext='\displaystyle G_{25}=\frac{1}{331}\begin{pmatrix}1&4&7&4&1\\
Line 5935: Line 6840:
 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='5pt' rowspacing='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='5pt' rowspacing='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></tbody>
 </table> </table>
 </div> </div>
Line 5941: Line 6846:
 <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.I1' class='ltx_itemize'> +<ul id='Ch6.S1.I1' class='ltx_itemize'> 
-<li id='Ch6.I1.i1' class='ltx_item' style='list-style-type:none;'> +<li id='Ch6.S1.I1.i1' class='ltx_item' style='list-style-type:none;'> 
-<span class='ltx_tag ltx_tag_itemize'>•</span>  +<span class='ltx_tag ltx_tag_item'>•</span>  
-<div id='Ch6.I1.i1.p1' class='ltx_para'> +<div id='Ch6.S1.I1.i1.p1' class='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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>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 5951: Line 6856:
 </div> </div>
 </li> </li>
-<li id='Ch6.I1.i2' class='ltx_item' style='list-style-type:none;'> +<li id='Ch6.S1.I1.i2' class='ltx_item' style='list-style-type:none;'> 
-<span class='ltx_tag ltx_tag_itemize'>•</span>  +<span class='ltx_tag ltx_tag_item'>•</span>  
-<div id='Ch6.I1.i2.p1' class='ltx_para'> +<div id='Ch6.S1.I1.i2.p1' class='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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>sobel</span> that takes an image as input and 
-applies <math id='Ch6.I1.i2.p1.m1' class='ltx_Math' alttext='F_{x}' display='inline'><msub><mi>F</mi><mi>x</mi></msub></math> and <math id='Ch6.I1.i2.p1.m2' class='ltx_Math' alttext='F_{y}' display='inline'><msub><mi>F</mi><mi>y</mi></msub></math> to the image. Furthermore, add <math id='Ch6.I1.i2.p1.m3' class='ltx_Math' alttext='S_{x}' display='inline'><msub><mi>S</mi><mi>x</mi></msub></math> and <math id='Ch6.I1.i2.p1.m4' class='ltx_Math' alttext='S_{y}' display='inline'><msub><mi>S</mi><mi>y</mi></msub></math>+applies <math id='Ch6.S1.I1.i2.p1.m1' class='ltx_Math' alttext='F_{x}' display='inline'><msub><mi>F</mi><mi>x</mi></msub></math> and <math id='Ch6.S1.I1.i2.p1.m2' class='ltx_Math' alttext='F_{y}' display='inline'><msub><mi>F</mi><mi>y</mi></msub></math> to the image. Furthermore, add <math id='Ch6.S1.I1.i2.p1.m3' class='ltx_Math' alttext='S_{x}' display='inline'><msub><mi>S</mi><mi>x</mi></msub></math> and <math id='Ch6.S1.I1.i2.p1.m4' class='ltx_Math' alttext='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.i3' class='ltx_item' style='list-style-type:none;'> +<li id='Ch6.S1.I1.i3' class='ltx_item' style='list-style-type:none;'> 
-<span class='ltx_tag ltx_tag_itemize'>•</span>  +<span class='ltx_tag ltx_tag_item'>•</span>  
-<div id='Ch6.I1.i3.p1' class='ltx_para'> +<div id='Ch6.S1.I1.i3.p1' class='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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>gauss9</span> and <span class='ltx_text ltx_lst_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>gauss25</span> that take an 
-image as input and apply <math id='Ch6.I1.i3.p1.m1' class='ltx_Math' alttext='G_{9}' display='inline'><msub><mi>G</mi><mn>9</mn></msub></math> and <math id='Ch6.I1.i3.p1.m2' class='ltx_Math' alttext='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.S1.I1.i3.p1.m1' class='ltx_Math' alttext='G_{9}' display='inline'><msub><mi>G</mi><mn>9</mn></msub></math> and <math id='Ch6.S1.I1.i3.p1.m2' class='ltx_Math' alttext='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.i4' class='ltx_item' style='list-style-type:none;'> +<li id='Ch6.S1.I1.i4' class='ltx_item' style='list-style-type:none;'> 
-<span class='ltx_tag ltx_tag_itemize'>•</span>  +<span class='ltx_tag ltx_tag_item'>•</span>  
-<div id='Ch6.I1.i4.p1' class='ltx_para'> +<div id='Ch6.S1.I1.i4.p1' class='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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>stdin</span>, calls <span class='ltx_text ltx_lst_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>sobel</span>, <span class='ltx_text ltx_lst_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>stdout</span>.</p>
 </div> </div>
 </li> </li>
Line 5979: Line 6884:
 <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='LST43' class='ltx_float ltx_lstlisting ltx_role_listing'>+<figure id='LST43' class='ltx_float ltx_lstlisting'>
 <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,IHVzZSBTdHJ1Y3R1cmVzOiBhbGw7CiB1c2UgU3RkSU86IGFsbDsKIHVzZSBDbG9jazoge3RpbWUsIGdldHRpbWUsIGRpZmZ0aW1lfTsKCiAvKiBIZWxwZXIgdG8gd3JpdGUgbWF0cml4IHRvIHN0ZG91dCBpbiBwbGFpbiBtYXRyaXggZm9ybWF0LgogICAgVGhlIHByb2R1Y2VkIG91dHB1dCAobGV0J3Mgc2F5IG0uZGF0KSBjYW4gYmUgdXNlZCB3aXRoIGdudXBsb3QKICAgIGxpa2Ugc286CiAgICAgICAgIGdudXBsb3Q+IHBsb3QgIm0uZGF0IiBtYXRyaXggd2l0aCBpbWFnZSAgKi8KIHZvaWQgd3JpdGVNYXRyaXgoIGludFsuLC5dIG0pCiB7CiAgIGZvciAoeT0wOyB5PHNoYXBlKG0pWzFdOyB5KyspIHsKICAgICBmb3IgKHg9MDsgeDxzaGFwZShtKVswXTsgeCsrKSB7CiAgICAgICBwcmludGYoIiVkICIsIG1bW3gseV1dKTsKICAgICB9CiAgICAgcHJpbnRmKCJcbiIpOwogICB9CiB9CgogLyogQ29udm9sdXRpb24gd2l0aCBnaXZlbiBtYXNrLiAgKi8KIGlubGluZSBpbnRbLiwuXSBhcHBseShpbnRbLiwuXSBtYXNrLCBpbnRbLiwuXSBpbWcpCiB7CiAgIC8qIEltcGxlbWVudCBjb252b2x1dGlvbiBoZXJlLiAgKi8KIH0KCiBpbnRbLiwuXSBzb2JlbChpbnRbLiwuXSBpbWcpCiB7CiAgIFNZID0gWwogICAgICAgICAgWzEsIDIsIDFdLCBbMCwgMCwgMF0sIFstMSwgLTIsIC0xXQogICAgICAgIF07CiAgIC8qIENvbXBsZXRlIHRoaXMgZnVuY3Rpb24gaGVyZS4gICovCiB9CgogaW50Wy4sLl0gZ2F1c3NCbHVyOShpbnRbLiwuXSBpbWcpCiB7CiAgIC8qIENvbXBsZXRlIHRoaXMgZnVuY3Rpb24gaGVyZS4gICovCiB9CgogaW50Wy4sLl0gZ2F1c3NCbHVyMjUoaW50Wy4sLl0gaW1nKQogewogICAvKiBDb21wbGV0ZSB0aGlzIGZ1bmN0aW9uIGhlcmUuICAqLwogfQoKIGludFsqXSwgdGltZSB0aW1lc3RhbXAoaW50WypdIGltZykKIHsKICAgcmV0dXJuIChpbWcsIGdldHRpbWUoKSk7CiB9CgogaW50IG1haW4oKQogewogICBmcHJpbnRmKHN0ZGVyciwgIlxuUmVhZGluZyBpbWFnZSBpbiBGaWJyZSBmb3JtYXQuLi5cbiIpOwogICBpbWcgPSBGaWJyZVNjYW5JbnRBcnJheShzdGRpbik7CgogICBmcHJpbnRmKHN0ZGVyciwgIlxuQXBwbHlpbmcgZmlsdGVyIC4uLlxuIik7CiAgIGltZywgc3RhcnQgPSB0aW1lc3RhbXAoaW1nKTsKICAgaW1nID0gc29iZWwoaW1nKTsKICAgaW1nLCBlbmQgPSB0aW1lc3RhbXAoaW1nKTsKCiAgIC8qIENhbGwgdGhlIG90aGVyIGZpbHRlcnMgaGVyZS4gICovCgogICBmcHJpbnRmKHN0ZGVyciwgIlxuRmluaXNoZWQgZmlsdGVyaW5nIGFmdGVyICVmc1xuIiwgZGlmZnRpbWUoZW5kLCBzdGFydCkpOwogICBmcHJpbnRmKHN0ZGVyciwgIlxuV3JpdGluZyByZXN1bHQgaW1hZ2UgLi4uXG4iKTsKICAgd3JpdGVNYXRyaXgoaW1nKTsKCiAgIHJldHVybiAwOwogfQ=='>⬇</a></div> 
-<div class='ltx_listingline'> +<div id='lstnumberx735' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>1</span></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'>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 id='lstnumberx736' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>2</span></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'>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 id='lstnumberx737' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>3</span></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'>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 id='lstnumberx738' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>4</span></span>+                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>4</span></span> 
 +                
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx739' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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>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 id='lstnumberx740' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text ltx_font_italic' style='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_listingline'><span class='ltx_text ltx_font_italic' style='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 id='lstnumberx741' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text ltx_font_italic' style='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_listingline'><span class='ltx_text ltx_font_italic' style='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 id='lstnumberx742' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text ltx_font_italic' style='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_listingline'><span class='ltx_text ltx_font_italic' style='color:#BFBFBF;'>8</span></span> 
 +                <span class='ltx_text ltx_lst_space ltx_font_italic'>         </span><span class='ltx_text ltx_font_italic'>gnuplot></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 id='lstnumberx743' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>9</span></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'>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 id='lstnumberx744' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>10</span></span>{+                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>10</span></span> 
 +                <span class='ltx_text ltx_lst_space'> </span>{
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx745' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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><<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 id='lstnumberx746' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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><<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 id='lstnumberx747' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx748' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>14</span></span><span class='ltx_text ltx_lst_space'>    </span>}+                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>14</span></span> 
 +                <span class='ltx_text ltx_lst_space'>     </span>}
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx749' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx750' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>16</span></span><span class='ltx_text ltx_lst_space'>  </span>}+                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>16</span></span> 
 +                <span class='ltx_text ltx_lst_space'>   </span>}
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx751' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>17</span></span>}+                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>17</span></span> 
 +                <span class='ltx_text ltx_lst_space'> </span>}
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx752' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>18</span></span>+                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>18</span></span> 
 +                
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx753' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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>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 id='lstnumberx754' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>20</span></span> 
 +                <span class='ltx_text ltx_lst_space'> </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 id='lstnumberx755' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>21</span></span>{+                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>21</span></span> 
 +                <span class='ltx_text ltx_lst_space'> </span>{
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx756' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx757' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>23</span></span>}+                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>23</span></span> 
 +                <span class='ltx_text ltx_lst_space'> </span>}
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx758' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>24</span></span>+                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>24</span></span> 
 +                
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx759' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>25</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'>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 id='lstnumberx760' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>26</span></span>{+                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>26</span></span> 
 +                <span class='ltx_text ltx_lst_space'> </span>{
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx761' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx762' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx763' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>29</span></span><span class='ltx_text ltx_lst_space'>       </span>];+                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>29</span></span> 
 +                <span class='ltx_text ltx_lst_space'>        </span>];
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx764' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx765' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>31</span></span>}+                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>31</span></span> 
 +                <span class='ltx_text ltx_lst_space'> </span>}
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx766' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>32</span></span>+                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>32</span></span> 
 +                
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx767' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>33</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'>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 id='lstnumberx768' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>34</span></span>{+                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>34</span></span> 
 +                <span class='ltx_text ltx_lst_space'> </span>{
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx769' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx770' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>36</span></span>}+                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>36</span></span> 
 +                <span class='ltx_text ltx_lst_space'> </span>}
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx771' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>37</span></span>+                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>37</span></span> 
 +                
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx772' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>38</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'>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 id='lstnumberx773' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>39</span></span>{+                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>39</span></span> 
 +                <span class='ltx_text ltx_lst_space'> </span>{
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx774' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx775' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>41</span></span>}+                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>41</span></span> 
 +                <span class='ltx_text ltx_lst_space'> </span>}
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx776' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>42</span></span>+                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>42</span></span> 
 +                
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx777' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>43</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'>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 id='lstnumberx778' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>44</span></span>{+                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>44</span></span> 
 +                <span class='ltx_text ltx_lst_space'> </span>{
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx779' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx780' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>46</span></span>}+                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>46</span></span> 
 +                <span class='ltx_text ltx_lst_space'> </span>}
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx781' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>47</span></span>+                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>47</span></span> 
 +                
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx782' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>48</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'>main</span>()
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx783' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>49</span></span>{+                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>49</span></span> 
 +                <span class='ltx_text ltx_lst_space'> </span>{
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx784' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx785' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx786' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>52</span></span>+                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>52</span></span> 
 +                
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx787' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx788' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx789' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx790' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx791' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>57</span></span>+                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>57</span></span> 
 +                
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx792' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx793' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>59</span></span>+                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>59</span></span> 
 +                
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx794' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx795' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx796' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx797' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>63</span></span>+                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>63</span></span> 
 +                
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx798' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx799' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>65</span></span>}+                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>65</span></span> 
 +                <span class='ltx_text ltx_lst_space'> </span>}
 </div> </div>
 </div> </div>
Line 6188: Line 7158:
 <div id='Thmtheorem29.p5' class='ltx_para'> <div id='Thmtheorem29.p5' class='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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>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>
Line 6195: Line 7165:
 <table style='width:100%;'> <table style='width:100%;'>
 <tr> <tr>
-<td class='ltx_subgraphics'><img src='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAASoAAAGlEAQAAAC3Ra/qAAAABGdBTUEAAYagMeiWXwAAAAJiS0dE//8UqzHNAAAACXBIWXMAAACQAAAAkADxRbprAAAAB3RJTUUH4QMYEyIH5HepjQAARIlJREFUeNrt3XWcVNX/x/HXvdOzyQZLSyi2YmAgKjZ+TezuLuzCwu4Eu74mxk9ssVBUxERFRUEFpZtdNqbn/P4445cFmdlgl5D38/GYh7Jz5/b93M8599xzQERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERCQXR7sAuhxTduWM59b5QHtCVieF785ff8EuEx9fE7bVq8MNU1K7XeT0Oe79Zs+gH3Ae+I8D70vg7Qi+oeA7GHwvg+c1cP+EmoXBO3ze6AWp5yC1LSSvgdQgnNQzmOTmkLoZUv8Bc8cSNxKT4yaz7O/SzjRq/aMpiB3a6jsv6e5PzLuAvPgnrb6smsB2hOIVeMwrrb6sRcE7KIxe0KTf3A5OD3C/BHciOCFw7wLnG3D7gBkPqQGQPB5StcB9QNopoNZ/IQWxq5u6iqkTI21hf13Aa44TfwBjmv052hjHMSY4xpiiW4wpCxrTqZMxPX40ZoOhxmxyuTGbbWZMtz2M6ZkypsdQY7p0MaZ9oTGldcYU32FMXp4xfr8xboflWA99Vu7na2Pcc43x+YwJvGlMaAtj8i40prDQmKKfjCnsaUx4F/s9jy//8vIu/faUNeUKVUa1PDvvXsjfAwp2huB0cKvANeA8Aa4P3DHgvg1ODBgFRe+COQ1MTzBFkP4azP+B6QvmaDAfQWo3SB0AdQ9BXRiiv0HiEmCfVbwC4WNgIPB9A5OWgOcCSAXBTAQeWk0P/ivgexSCd0HejhDuAe5wcMcBU8B5CfgInLvB6QiMAUJgqiE9BcwMSL8MydOhbhRExkEiBPFnwLyka0uBqgW5N4J/OoSGQP7eDRcP/1ch+C3gA/Zcapo8SJ0LqW6QPh7iI8BZG6he9feF0w/MDo2Y8EhwB0M6H8wlq/HB7wPuseB7HIJByDsdPB+AWwnslZnmycx/Q8ADgAdILv4+dQzEj4b0HpD4DNLHATcAClQKVMvL8xHkL4A2F0DRy+A5BXi/Bed/iD2fS0uh9EgwEyBdCIu6waIfofYuiB0NputKDEpeOPgA2N4D7beHNgmYFIbHEjDxe1hQtezfbTAANpwER7wAhb/C7FPgryi88S6MyQfz3ip84OdAoAgKHoXCOyB/YSaD3hIoAe5sxrF+ysawUDmUDwDzX0gPtsd69oUQnwXJ63TNAbjaBY2wpy26+adD+HkIXQreG8B5aAUtewx4d4Xg3RDeA/IfhuCX4F4EnLeCA/UvUPgmdPwN8hPg/xrc2yEchq6HwFobge/zf55ZRa9Al/eh4+Pg89lK5mBvKNwJ1poMvkPA2XcVPPY3g2cXyFsLwi9C4FTwesH5BZyWLo63A2eEPdbh4RC6EPy/grMTsIkyKmkog5gA7s5Qfg8U1UHgTHDuWEHLngSeA6AAKPgWTCcwX0P1CzBjOESrwNy14vZF/o2w0UWw/9226MtA4AToAhzvgZ+vhVsGwOwgULf4d5uG4PDNoftEoAj4PygHSj6Dro/Ch/Ng4TxIrGp38ocgPA86HQ0+A96tgHzg+lY41nuA09Me5/zuEDsKqkphzmeQeAPor4xKsp08u4AvaDMG/0Bwa4H1V+IKrQMMAs9nEHoRfD3AOXPFLT74A3TZHZzBwFpLZVsXgW88hG795y2w4Dzw7LaM/fsdeK+DDhMhsM0qdOAvBs+NEPRDaE9wtwBn2gpc/tbgxsD/PIS/huDh4H3GBnhlVPLPHfQlFG0FbR3wrw3OX8BlKzFwnm0r5fMB/54w50xYeAQkhq6Y5VecB4f+B5yJ//wucCwU7Q+dN4A/84FF9eLrwRAei21zVv9OeTaEgX37wzNFULOq3KBOgLx+UNYDin8Hfl/By38e/ICv2p5/CwqgZh5Urg1pZVRSn/+/UHSmrfj1XA+cv2qtn+c3CE2C/D1XzPLCo6HgDwifnWOdRkNRERBY8u+lc8AXzf679jdDYN1VIEDtAYGbofxsKB4KweRKXp9O4Dg2oy/qD+UfQSgEzhHKqOTvDOEpKHoCCgaB22/VWz/P7zZQmf6wcAUsL+9zG6hCOQKV9/NMoPI3LVB1uBkCewMfrfxAFRwMZU+D727wrOxKs042gw6HbRE0r8S2t4odAXymjGqN5k61d9V2HSHvA3AqmzefdAnEXoS6B6B6C4gEIDERUru24IW1G7hdV8x+6bgWdCjIPU3qa7utS9eKzzkc4vtn/11hGkq6Q9EWK++4B6dD2zh0OAL8T2aaHiyvGWB2hPRQMCXLOa9vwXsmVBwKeRuD75M16JpUWFrGxV8HnmshGALvEHD2b958zFGQngqpSZD8AFIupPcEU9GCK3sWOG+vmP0SCkNoeAPbvNBu69IVKbEvId0xRyb2IvjzwNdmJWaoEQgcBKEv7buZTku8ph7Bttq/Ccyry3le7gru5RD8ArzvgnO/in5rrsshnITyCeAZ1LSf1j4FtetD/ASIV0HyZ0h/DyYOZt3M4+fdwfkT3I7gPQe814C7P/h+gOD6EPwEvDeDe2Ijg+H7kPoTKFxBGVV+A9flgfBHCjh9yb//MQs2+QLYL0fx73XoOAjmrYR+LAofh4JuUPhEE29GL0K6DOp6QdyFyARI/ALpFJg/wQwC0xEYDfwO7vngXQj+KvB9CcEpENoRPHuAc2UjFlgKjILSQyH22Iop8itQrYrWB+9BEHLB6dW0n6Zuh9htEH0PovMg8Q5Qv5g3IvPfduDMtu+K+Q4DTzmkbwXPw+D/Eri1CQsdAny64jKq4HByvtKT6gS1B/+z6FezL6RGNFD0uhtCKymj8k22vV/4fm7iD6cCB0LiWYi5EFkA8d62l4T0YEi/CXT/eyeA2xP8O0Bqvn1lxvMCBA/GNkRrjIB9Xck/AFLXKKP6l2p3H8w6G8LXQfen4KdPgPb1pyj5HUqDEHCAXxqeY92HUPUeVB4H0TZgyut9ma0uapbtnyVeAfH6fw8DQ8G9GQoWQUF/yPdCIB88X/9zNtHnYe4hsGAY0Kn1994660OPG4Gtl/199ckwLwzTltHe6IetYd+zgROyz7/HzlB9PnyxIus+9oW8j6BjFDz9gEYGqoUvQORRqD4CamcC2y01wbDMp76+tkQcBaJ5mb9l3usr3B/yu0Kb/SGwVSNuivdDeg1qp7AG1VGtdwXcmWlSeNEm0HkvOHjAEnUAX4C3LHPC5kr337UVpNH+EN0a4vdDaiSY4S2wmr+BuQySfSE2B+pmQ80JUPcOxB6EeB+IrwOxGEQPgcQoW//RqirAOxr8XcA3Nkexbz+IHLbs72JBSHghleOpXvAECEVW3BnhbAaeagjekmkf17OB494fUgGouxiiP0J8CqT6tMy6pPaE+MFQdz9EL4P0NDA5HiykyyD9lTKqf6Ffr4eJmdeHY3nw/l9w3q7Uu4H7opC/A4QbqqfYANIdYPbasOg5SGwJbNtCq3m3zbZqMx8A/g8KOkHeTeAZDuZlSO4Hi7pAfFcw37TyrtsFivaFktOhcI/sk82YBzM6L/u7ee2gah2o286+DrQs7XvCvM9X3BnhGQqhQ6HDQ7azO6eBoJOeAJFymHES1Ha0L4y3lNrf7PFe8AmUfAzlr4BvO/D2/ue08c9h0QNgxiij+pfzHQNdu8PMnZaI2hvYl2Vz3lWPg8RHULcVJAYu0Rtn6/kMkh9C/DeIbQvxfSE+CNLVYC5YAcvfBvK+AU8Dj8MjXSCS4/WiyB72IVjWo7In+G+3L/3SuZW36Q0IHAeB+4BR4DTwMCI+0mbQdU9DKgXmndZZLXMmJBJQNwYiD0C8o83eyRSnzcX2DuZUAPOUUf1LPZmpdXp2HvTuBy9+XP/b/KPANxrI0UI63Q1qdoRZtRB72T6Ob3V72Qt8iYt8YOa/h6+AItIwWPtVCDbQ/mv6kTAjR4vpGT9DxQBom+X74olQ9jPk50PlYcBtrXiH7gil3aBwhG2Kwka5p6/qA9X9oXJW5kB0b6VAtRNUAVUHQ2gQtBlgX4Z3XwHnHDDHQ1UZzNsBAp0VqP6l/sy8fTYpDpP+0UlHoCu4b+QuxkWehlo/JKsyHb9dugbstrOh4nXwnUzOd94W9oUFA4EsdScL7oAFCxrIdXeHimKoujx7Z/EtodBnX4L2jG2g7ugSqI7Doq8hNoalnn60onsgcSBUPw2p08GNg/M4MAtqfoH04ysg61TRb9UU6Aqe+bmnqXsKagOQTK4hQQr7InRFBfhPzj3dgu1hwYAcgexOaCBO4d8d2j1Aq/cSUOiHwLbgmd5AvdTFUHUuLNoNomOwzUFWUKBKHgTVr8Hs02BWAmY/AXNfhUXnQfrHNevaVKDC3qm8N0DgRvDk6Bkh+inUHQ/R09awHTQMepyYo+hXC9ERMPt2mPdK7qJfA3GB4Gy7LKe1zswI+HazTT+8HXNPGvseFm4MVa+v/N5HzVuQOhuSi9bMa1QNPgHnVnAnZfocynGnSt8PyYsgvfkatoO2hvyXM5Xpy3pknoLU9hC7znaTnDVGNFCZDuA+DfkjwbmxlY71geB+At7NbZ/nOYt9D0O8DJLbrQLH4F77MWvoNaqMCvBsl+k6o4GwvSgC8flr1r7xjYL8y6B7dwjGskw0Gn78EWraAjtmn9f03WFKHtTVAVke7efdDptuCk4rPSTw9rHFWOeBBo71JjCvCubsr+tDgUpERIGqhas3+kByyzVrm9vdAhsdB65L9ocHo2HcOKhtIEthZ6i9yWZfJkule7AM1l4b8r4E94cWPtlHQWCMHeHHzZIpme9sq/+//DD/SZ3zClSrkgpsF7mBBqYbA8xas3aNvyfkN/SkqwpqtoRU24bnl+ptpyVbXWBn2x97XhI8G7Vwsa8204dTP+y4isuQXgix98D4wbypS0OBalWyGzijyN4S8e+77WHAO2vWrik5F3o01O3KOPjjMYjs3PD8oo/Zabk4ywSH2EDVrRbC17bstuT/CYV7Zo51lvd4UmNhwcaQasM/Bq8QBaqVaxNgMHYYpxycv4Dj16xdU/AfqFgvR/DuA8kZMPcsSMxpeH7xm2D2bDDP556u7TngH9Sy2xK4FYI5XuRNvw/JCEQitoW4KFCtUpxNwLmGBjufc/60o5OsSfL3yh2o2BZSM2HemY0LVIlMoKKBQFVxDgRaOFD5b4NAjkBl6gUqdtZ1oUC1ijEdIHUVizu2y3aivwnuJWtQAK+C/Beh7K0cgecXmOfa/WcaEcQTDsyda+uqOChHoJoLgSdbblu829s+vdxncqzboRD5WdfDqkgNPjOBKn0lmInA3rkDladyDbqLVULeC1BaCGRpPxYfb9sbpa9s3DwTbiZQbQXeg+0IK8ss+s0F/5jcx6NJJ3pf8Hxptymb5KENN0gVZVStLLAINh8KviG2h8+N1gFmAqTCEBkB5tTcr0oE7wTPGvQkqP0F0KYTeF/PPk1kJvzRhA7cTEfbKeDU/hDN0aVxlxTkHwtudctsS3gqePbPsV77QmxrqL5GQUEZ1Uo18EP44gU4610ofA++2gvWHwAvYTyQ3h7Mp+RsfuCZCO52a84eC/a0WaSTY5tTEahpyvBfb9rXQOr2g9QBOQKLAc9X4LTQuHqevcDx55jgM0j7INlFQUEZ1Up158/Q5QH4ca/FPXx2tZfYM2AM1FwDyUezzyH0OfheBmfGmrHH1n4T2jbwiL5mEvzQjBFwxt0ANcNyFLMnwlpDoOuFLbMtBZuC78zs39d9DbHRYA5WUFCgWqkueQtm/wm/JrL18Om8rhNCRIFqpXqnCBJ7QXg328PnFv2W7uGz9kxIbN9AXcfREL5qDcmoLoeKh7J/by6H6p7wU0EzMqqb7Kg1uXSvgnVqlnMjNgPHgbwzwZOj/7DqSohepICwqlqD6qjG/t34IBNm/tnDZ6qjfdcr5w7bGrynY3tXvJt/5wiQLrADhL4C3+nZJ4tdD7EaSDejcWTNU5DaB/s2QJbBVoNXQOgt4MXl2JZzMk0SHiZn76SpjyEdVUBQRrUaiAyA5MAG6jqegcJjwR3Msvtm+pfcvpxR0OEYKM5RkT7/Tpg7EaKfNH0Rk6ZC7TNgcoyd2OFC6LScryw5e9oXkd3x4OToFDGyM8Rn6hpQoFoNJNpD+nDbgX7WE/8uCO4CJSXg2S17NrBau8huXzABnlOzT7agDBZe3sx9fTdUnwjV/bJPUzwN2pyGfb3J18xA9RJ4rge2yTLBj/ZBSnwcpL7TNaBAtRpIdoDU4blbWLt32y5515RA5Z6WO1AtuKz5gWpRQ4FqKpSclnm9qZmVFM5L4L0OnCyByoyzgSqhQKVAtTqpuxzqGhhT3Huo7RG0UwxKf4LAv6xrYmdapo/0Brq9md4FZixH0WxGG5j+afbv/VdD/pPQ/mEyTXObsS2/2f7w6Z8lUJVA/H1sHZYoUK02WdVVkHqogZO/M3g8ED4Q/HuAe8q/LFDtDfnfgKeBkWAiYYj0bf5yokdCZG6Ok3ND8G4FoZvB2aeZC/lPpj6xIsv3r4HZAZikc1+BajVSkweLhkHiisyotLkyq3uhdHvodD50PhqKPoFgIXjDq3mgmp7JqIKtnFGV5M6oAIIvZ0al6ddKGdWWmWM9TOe+AtXqlFF5IHknmKuAcQ3svBvBXwahnhD+Cvw7gftq6w1MsMKsoIwqciREGhiW3HOXXRfObOZC9sxkVO2yfP9B5lhP1bm/KlPvCUs7GmrXg2mzoMuz4C1txE50wZsHeZsCF4K5D1JfQ+07ENsCEh0h+jtED4dECNJ3reIZVS87Ekz4eGDyMiZ4BaZvDfP+gurlGJDzj7Mhr3fuacLbwaYd4fUXId2cbVkH/H5wjsuSUVVCPA7crlNfGdVqJn2xHQk5vg2kPm3GDDra1tDe+8B3I/g/guCXkPc65D8Neb9DOAyBEeDbCjxXYB/Bl6/8bfe8BYFa8O4KTrYGkH9k+kjfYPmWlboWEj9C/HKyNsZ071zOjGp7cHYCyrJ8PwbSH9HsynpRRrXyin8nQA2w4Dko3RlCTb2LH2Ar2/Pes5//DQPeDsxYO5BprAvUrQd1T0OsHdS2gfRBLF8r7BaQ1w1K/gsF32afxgyFP+6H6LvLt6y666GqDcx7EDrcjB1kcyl/11G5OzYzO3wHvJ8BZyw7GJpDINU3073PJjr3lVGthhL9IHY5JBe04Ez3AedVcK8D388QPATCxZCfD+H1ITAN/L3t9wxc8dvsr4C8hl6JaaGMCiDV387LjMwSaELgGw3+S2xX0KJAJUtZ+CnMPwuqv2m5eTrTwS2G4E1QdCW09UDHzexYdl2ugnYvQ8mT9ntn3xW/zaV7QPeGirtDM6POXL38y4tOzIxK0ydLUbQDFO4LZSeB/0mdkwpUsuwL6RyodqHqfEhNAHNO6y3L9wiEBkDBcCgrg5L7IXQPeN5bcdubfyFUmAYmet8O0JC4YPmXF78XZp0O5orc07X9BAJfNGMBs8BcA+iF49XaGlRHdewkaFMLC+ZB4a3g3wq+/BpGv53rV7GzgaPBOQ+CE8G/PrB2KwWqh+0HoKAM/A8AW0P6AEitoL1UcAFUNNDVjXkPZh8A8TuB5ezDK3EPzK4FxgNPZZ+u4lOY3MxAxRPAkbrYlVGtFoZXwJwdIPwsFN4PQ2fCtv0addfPh8pe8FchzN4IavuD2RFo5Z4+w3VQsQ+sFYCKQyGwJzitXPwp+T/onqNIl3oCqjvYARoSLdDFTXQi/P6YHR8wl+49ILxhK2xwd2AUDY7pKApUK8iOYXjuXqjYFJLvgW8hVN/QmF8aLyTeh7rhED0JkucAH7d+ccJ7AAQ/g/ChEPwC3HPAua11lxnYFvKvybEv/oTkmxCLgdl/+ZeX2hNqtwRGNlAkPR48J7XCBudlWr37FAwUqFYJ8b3hnCfgHQfGvg0nDoJXpzVlDuljYMEJMKkafvoJZj8IkbGQbuX2T+7xUFoK6w2DHvnQ4RLb/IG7W3Y5he2g7S/Q4azs01TfAT8c24JH5SaYNg0WvA7JA7NPt9EdULB7Mxbwne0dgcos329i27xRqmCwKluD6qjefQveZfG9+4PXdPhFlFH9a5l1IJGA6YfBL8C4p2H8eJh8KMzqDQu2zBSNYi27XOdHKEhARQ/o2RPCJ4DzacvNf+2voaJ/7mlq7oBxx7b8Ph33K1TnyGo6tYXym6CgqcO8N5BROTfb7NTZTue1AtW/3e6QTkPyMYidAtEZUNsbanpA7f5QdzpEt4H4PEjcC8mRmcr4v5q5vJ7g7gyhTcA3FZwWalEd3gJ89+WeJjUVag5r+V1Y+xYkx+eeJtgHQms18abyDqSvJvt4jbuCcy22D3xRoPo3S39vX2ytngjzt4BZb8KfT8Lvp8OflTC1L8x+AeZ/CtXvQGRbSI8E80wzM6vzbT/g7W6FohfB00IV7B0fgjZv556m7gX4I9Dy+3BSV4hcl3ua9sOh41FNDFRrQ3IQMCLLvvwGfNcDh+o8VqBaU4uIa0NyD4iXQd0lUF0ElZnW7rNOg3lfQOVdUOOxgc6Yps3fsyvk94KSQS2zvqUnQ16ONmLJ0RDdEBas0/L7avY8iN+ae5o230HpU02c8cGQvBJMljZYzuOZPtV31fm6KtNLya1pHdtQMwUkAP7uiC8zakuoP4S/h4AL+XHw+sBpysHbFfKvAv+mMGfA8q9uySmQlyMIJT+DyIawoBUavM6eD7Fbck9T/L19xadJN4uDIXUFkG0QiifAeyI4t+h0VUYly5Q4CuoOh+rpMH8+zO0Hi76FWJsmHMCdwHcKhG8Dt7k9i25su6MpugmCORo+LiyFhY9iu6RpYQt+hshudoCNrBnV91DydBMD1SE2o+LLLBnVE+C5ThmVMirJnqEcBcl6//bvBG2+AdpAoJGtvj07gXMq5N0K8RCk65oXqPw3QOGNmUBVnT1QVT4K3Nry+2L+zxDtAckJ4J2RPVCVftD0ol/qR6CEZbY+d54A79fATajzPGVU0qgMKw4L1oPpp8GUp6H6fEiu1/DvnJ5QOsS+1Ow044g65dBtCoSeAidHZfr0v2BGdStt/K4wcyTMzFG0K90fKtIQuBloZFHXGDvKjHk5ywSZV2g8v4IzUuegApU0fFEdBIkCiPSAyFaQ/AFMIzqnc06EwI3gTrYZRJMdDfl7gecvIMcLyZE6O5p0qxgF0TkQOTv7JIHzIPgSeK4FOjZyn76UGWUm2zsImVdonEXgDNE5qEAljdcNamth8m0wOQ+mN9RZ+Ma20WLRehAsaMZJMDjTR3oDg6n+/ihMasUzZtJI+P3oHAH5HMgrhY03BreRL4Sb3zJ9oj+Ze7rA1eAt1qmnQCUiokD171QzBeYMgunTIdE197Sh2eCb2/RlOJfDJpvk6EZlln1laPJ18Fdd623rpJHw29ENbOObdl3dqkbOdHs7UEd6Ephjsk/mvxq8bXS+KVBJ8w2FeB9ILwRzUY6D2acZ76y9DO4tdlQcd6ss0/wAdXWQeh1MK/YyED0cIreA+QiILHsaz+WZUWma2A1y+gggR4+k7m/grK9TTYFqldDtEuiRhA32g+NOgsKK1WGtzcewcDjEvwFzXPbpAsPB+2oTTwAPeB+BLl0gkKXVtzkPpkyBujJIt+LLu7PDMPMRSPYla+V3YGBmVJormjbvRBGkc7yj6LsHvIMUEBSoVrpAezhlIKzzKxw4GN7ZFQ69aXXagkQxpE7J/r3nZ3BPAefsxs8zDyjzZXoQeCHLRPfYV37iV7bu9qU3hvj/wfyzgfOyBJQDoXwoeHYDPmz8vFNvgpme/fvg2eB9VgFhVbUGNfg8tStM/xDWuR7i18G8PMjfaLUKVEU2UPlGZwlU48HzEjg/2dGaGxWozOJAlXVMwbszgzmMauXMcROITYV5b0LF7GW/TuQ9EMp2AE8eOK9DY1+PTL0FpgeQn+U2dhb4HlVAUEa10g0LwS/DYeEs8HaCo/Ph18tWpy2I9YbUWQ0c0MHg69/4eZbOgR47NxBADssMj/VB629jtK1dlskymoVTDb4boHMehH5v/HzrxkFqXvbv/ffaod/VI7EyqpVszsjFZQX/+1CaDzPfWJ22IP0BmCpyjoLjjM8U/c5t3Dz9+0JeQ+8IfmkHCU3vsAK28Wi7LF4EltX18ABwBkD4FfA0oZV8qhJMPEeA/w3crcF5ieY1mhVlVC0vfjXMvGB1W+vUzZBuKLSeaYcxb3RGdR10z1FTZ7aG9HSY1MVmO62eUVXkzqj+1n0GhE9v/Hxr34TkVrmn8Z0Cef9VUFCgkuViNgbuaWCiHuR8DeYfGdWGkJerh9APwexte+BMHdX625jKZFTmxdzT5e0D3ksbP99kX0g3UPnufgueW3WeKVDJ8gWqI8F0b+CAdgF3ZuPn2e5R2PCT7N8v2AYm7W1f6Umf1frbWPcKjBsHqfdzF1833AMK/tOEQLUXRCZCJJF9mtAAKH0FXBfYQOebApU0z+nA1i2bUaVPglSOIl18ItSeteI20ZwAqe0h+iek/i9H5vUnmCb2v5UqheT12b93BoD7Gvh3B27Q6aZAJc3i9AXn+QYmamIdVWIjiOyUI6O6G/5YgZ3KmZ4QHQGznoSYP/t0kSch1cSBHqLbQl2O/uWdGvCVQOmP4KpvKgUqaebBKrJ9R+W80PcF810TikS/QDRbXc9jENkFKlMrflvnJyFxbY4i4gmQym/aPJPvQ9IL5hqyvqLjTAffbuDuAc7GOucUqKTJAhvbHj1zFuVmQ3Jg4+dZcxPMOTVL0BsPM76A7yMrfls/r4aFOYpp03pCpIl9t0c2g5owmKuALN3EuMNt3+yBn8Fzo845BSppMm8VeB7OkU1tBumDILlZ4+c5Iw7f325fOk5/teR3vwbgtyqY/euK39ZfvfDnJJjz4FJZ0VEwZw5M/h4ipzWxWBmB5N1QUwMmS08RzoZ2iPfikRDuBZyl806BSprEVwlurkDVC1IHQmrzpgWqH27LEqiC8NuilROoJmQC1ewHlvx7IhOo/vwB6k5tYqCKQurvQJXt5amNbKAqGgl5mwFn6rxbJW7S2gWrgbcgVA7BSvD2A7I8pYsdAMm/aNLgCwvegNpL4OZ7oc9/IbwJJC6Due/A58fC1AOAd1fOZr//MozbBTZ8DDo+DLE6mL8BjH4PFtzacAPOZUn9BAuGQ+k88D0Abu9lT+e/CfJnQOlomK8zUIFKGqGvfTvRcwk4OZoSpD8H82fTZp3YDhLXwYR20HUHKCiC6H9h2niYWQZ1m6y8zZ49HSLDIDwZvCVQ9zjM+Qh+ezDTNOG7ps/TVEGiD5huwNQcRY1fwbcPBEbr9FPRTxrk7A3eJ6C8PDOsUw6xAZDcvxkLedwWh0beAG8B798E338PtSu5x8v4UKgcB9/fA29F4APg29fA7AhEmznTP+zv54+AeAPNOPyVUHgOFBWBs7KGfE9BKAT5s6DwCSjygXMt0EcZlaxKBoIThkAAnF3IOUhB+nMwk5qxjMl2fMG5fz+O/7tO6siVu+lmczvCdNUjUAVwSOaLGcsx0xrgY4jPhvSsBu7iCfB9Bz4ftnfQF1bCjeog2wWPb19w97TDoTnXgNlLGdW/1OZROGcBbHJ+th4+vRdC0bbQti+0awdtD4S8FHhGrZw19j8DHUth3fH2rupmC1JVdvy6qjMh2sRRjPN2hbLTV6MTdiQUFECncyF4d/Pns3B7qDwYahroZNA32/Z+2qULlPQBJqyY7QzdCmXjoWdP++mWhLXegM6HwXrrQV438BykQPUvtE0pfHIt/NTjHz187gaMguBBEPRAIA3+GyEQhfAdkPeS7VPcXwHuJOCrVl7VQ8C7K4TC4Otue+3MmXl8AIlBkHobzDaNX0xgX+jwJaz3E3SeBP7RQJdV9wh6ToH8J2Cdk6Hn01ByAQS2WI6i5XEQq4X0R0AD2ZXvXgiUQKgq08ngf1phAz8E9zMI3gLhxyF4KHiGLzVNb/suor+4aS9lK1CtNiYcDIU7wBlP2jfY5uVBvn1udKvtcK6iCtoFoTwKZUOgfCZ0HgZd05k76u4QegQ8x7Vyuu+Bgm+h41pQfCp4G2oXtSVUXwDxbpB+vvHLaTsb9jkSLhkERzwE5QNWfnEvl/Dm0GMynNsLzp0FWx4B5Q82f36V3WHun5DqC6aB+qrCEVDeGzqOs9mt80crXIzbQGgv6PAQdJ4IbX0QXKr1vfM48A2EdgN/LwWqf6HNNoK2MZhbunQPn/7xUDwAgoeDc8kydtI0W09RMBdKj4by/0BpKRRMhFAE/Ftl7rLNaRz4ADiH2/mHL4bia6HsWyi+B7yvA+c0kE2NgPQnUF0NqcsbucxvoGwo7BCCnn9C0G+LF9vcDp3PBq5c9Y5e3hOwbWfYsQba3AOhk2CrC2DHP6CsDFuZ1dQ6sDgkx8PCczMj3zR0sUyAwNf22JdPg+IJENosU7m9XjM2qhc4+9j6xzZlUHY1lN4DwSA47XJUCfSB/EHgn7bmXL1rUGX6PWEoPwFmnLx0D5/+e6B4HvgGgJslULk+8M2BgqMgcTvEXofaCRAttV0Ex7+H1JlAE4cFdx4A53rwvQbhi6CgPQQWQnjHzAQNdZQ3AkxdvUB1bSOW+TWUD4EdusE6f9gg2bMnLDwDZr0KU18Arlu1jl7+E7DtUOhVC8WP279tfT603QW+LYP58cb3n750oKr8BEp3aUSg+hUCQKAUot9D5FOo6gXxwZDam8UPIZoSqLaDwCgbqAJXQ2hHIAi0a2Bd7gZ3S2VU/0KJM2BGBLj3Hz18jsj0QdTIR75uH9u/dl4/KO4BpdOgbVuoqIay56BkDrS5F4rfhqI6KLoYCu+yn+ICaHOSzWgqOkG7qdDuY5sVFD0DwQfA92QT6llugNokpK4Erm/EBf8ZdLga+n8JZbuBO3bxdx2/hi2/gZ2ezuyPi1aBE7QSCu6E/j1hrechvF+9u+xOUHYN9O8P7T3g/6YZWVWlHfK9ehBEL2zCHf6/EOwHxbOh4kFo+xWUPgxFcyE/H/IehrwPIX9TW/lfcDUUVELhx1BcDGUBaDsDKo6EkhII+sDXhN4gzIhMMw1lVGsOp36gGtrw9J4+4PGDf0egO7bhYFtIVkPiWUhuAul7IL0npLcCc7F9Dw/AUwDuSRA4Hnydwf0A3O2BMuDppq977AaonQ7pqxo3fcFoaH8V7PkFBHZfMlB1+hq2+AZKD4VPXUhfCNy2co+NpxIK74D+50DbB8Bfbx95+0GpA/23tOtb/TXEmxOogJorwPkZgo0c6dH7lP2EMsX32FeQHADR7SGWD+YhoD84m4I7F7gKnCngjgJPMQRT4J0BviPBKcnMtGsTA9XOwEcKVGuOiyF9C/DTcl5UD4Lzf+DvAeZA4D4wWwKjwHyfCYofgXM3OGPA3RVY0PzlLbwEFraDukY+/elyMez+ImwVh8BB4I4Blhp0s/3TUNwGTn4WXovBzLG2PdPK0OZg6Lo5HLEtlL8IvmVEIXc4hK6AU9vCK9fD+AkwZd1m7Mu9IP4dpNNQvBM4rwHFjf+9733w7gD+zyA9BPgcG8WOBWcscBqwDTg3AMNsGy0ngH162IQnteYxSD0Bcz8F+iqjWqOYccBWwHIOnuX8YbMtKoDPgM1sQROwTSDq+3uIqv2WozB7JcQTEJ/cuOnD60L7J6F7Dbg711uHeoJb2Qrj7lMgNMVuk1lJx8U/BgpPgXW2gcCpwMvLmOhuW3/R/Sgoexnybm7mvhwIsZEQH5NZThMr591M3aTn46W+eAXwA99mPhstVUS/tokrOtlW/McMeEaqjmqNEtkHpk+H2AmZzGpVDqq/Q3Ic/PEHzHgB6iY3/rc7XQvrD4NAAy8ZO7vC5pvDBgOhdCXetdscDG3fsHU8XJx72sAzUHEZtFuO7C+yM8w4EiZOhMjBkLx81Tr2CS9UXp5Zv79s9qdAJSKiot+qIzXa9kw7qRu0rYGi28B/36q3nvHtYa4HKveG2NWZomUTPFwMf82EHXaE7bJkYslPIfYZDJoNv54JtSesvO399S6YOgr+uggGj4HwKNtMZAnfgNkC7tkWPhsCs19ezoy1K9QCEw6Agg2gvAwKz1+JGfRMiBTBrM8geg1E/27+EluzrlFlVPWkt4Ho+1B3A9T2hlgvSN4DZtZKXKnfwJwI8fch8gPEb4R012ae9L1hwaPw5zWwcFNILfWOX/p5mDca/qiE6i0g1W4VuIkUw6ILYHInqH0czBn1vnwW4pfBlCkwbzbEO7XggveDpA+i+0LdJZC4ClI3gvlqBW33Y5BYFyL72k4Nk6PtQLDKqITEMJg7DOa/Br5DoGgOFF4PobfBt5IyC3OPDUxVvWy3vPF7wTRzIPr0o/BlWxj7LLS7E3r3hcJ638dq4NP9YORAmPg58PDKPybRTW07yofPgpO+gPV3sHXTYJsWzDsHnnsOPktA6vgWvGnNh9oCqItAXjmUdYFgFwitoJGUYxOg7mKovAYWTWG5HrooUP1LmWGQvBJqb7J3Mv+64DsLgheBd5x9UdizATiTse2oWnr5wyG1D8Q+h1gxxDeFmvMhuQ6YI2i4tXqueV8EqXvh4z0h/BOs9xa0aQvx4fD5gTBuEcxJrnrHZNZXMLo/LLwX+hwAvoPgx9th4n7w27aQ7tVK54LXNgitnAs+BwJ3QHgABJ8Edx6417RQYHwVUiGI10Fke4gcCfGTIfarrkcFqmwn5/OQwtZV1AKejcH/FBTOgfCzwM/gHgRMsk/IWtxwSCah7hOoOhnqdoTkYcB5LTDviyAVhlG3wFqjbKvqNhtC7DL4PB/GfQALEqtooLoDFm4FW8bBsy/8uCuMvRh++40m19c1ms82CI3PBTcK/iugpAZ894HzK+C00Dn3GiTbQN08mD/PBirzoK5FBaqm1BdcALHfYEEYqsaCOxnc38E3Bvwu+GeBb3fwDwLPFHAPBecwcPa0DUC5ANxMrwSmI5gYJGdA4l5IFkH6PEhOhsQjkNgPkg9D4nhIjbAjyqSvbeENitrXL0ZsCtXHwkYvwlcHwA8Xw6Juq+5xmL0AYhvDvRtCySj45jSYsT/w+IpZfvpiiN8D8y6Ayv3AMwZ8Q8B/GvjLwPsy+PYD3/VgDgJziH2fkMMh/RJwK5hDwbwKqaMg9Z3NlqOlkBgF6dGQStg+681Puu7qc7QLAE78AR5tcu/g/ggEd4DgZAiEIPg0eH8F90twv7EjFjszwHkI3Ez/3mYspP8LiVsg3g4SH0HyAVtZG18boqdDotgW/VaEbQ6BTX+GD6Iw7SGI7bpqH6nAg9D5dmi7FvyyPiwcsvLWxT0TfB1tJ3fBTuCbBoEy+x6o6QimE5inwXSHdB87XL3pAmYn20Yr+RFEd4S6cyA2BdtQuAnyLh17au3NWzy8JlyhyqiWQ2IMpA6DSBTcT8B9FZw64BJwLrBFRLYF523gQnCeBnMnmD3AzAFzo+20zfQEswDMLZC+EdKfrbhtGP8x/PUWLExDvOeqv8/j+8L082DO2VD31cpdl3QviO8Bqatsw1tnW3BHZ7p9+Rx4B8yHwJfAnWDuBr4A1gXzDZgkpL+F1PvAAF1PyqgA2GUX2Gg8RG4D/7O2F6kvv4bRbzc3o2qyifaERXUP0gLWpIxqDWpH1f9RiL8Bs6+Gwvth6EzYtt8KXYWeClIiKvrlVN0PHukE518MyffAtxCqb9ApIKJAtQp5YTqcugi+eAn8eXDiYBj2OFCg00BEgWoVMSEJExZix7EEPnhNh19k9aB3/UREgUpERIFKRBSoRFpC98Og8AHwfaR9IQpUsorKuwB8f4A7R/tCFKhERIFKRESBapXkH2tHs/UGgU+AkXbA0qJKCOeBZ4vF04bTUHys/T48BEIB8B+8+PtgHRQ+COEwOJm3tJygHV038Af4zwf/EDvyivv3cFbPQygEhd+Av3LxvLwzIBSF/P5ZVnwshI+EkpOgfXto+xYU+SH46uJJfMdA+CQoL4eKc6D0Nygaln1feLeH4vWgXTsoHwvFNeBtwnhanoOhsND2TV9oILT7sqcLvwelb0HbbaC0FDxDgEn15jMB8m+Agi3tvi7ZAcqn2MFTvV5gWwi9b0eqbtcOCj4Eb4d/Lsf53B6L8o3t2IElR9oh7jmjERtzKnhOgzZtoOI4KOtmj+MS8z/Gzj+0LoTOhLzf7fqEp4DvOXA62WNbvhuUDYbCgZlzawrk3aprT4GqKTupDHw3gmc0uAeD0xs8u0DwFNulhyeUOSmvA38X8F8I5hrwvAPeeeA7OzOjrcC/sT1hA3uAs0Hm7y9B4AvwHApORztGXLA/OAMz873KjnEX2saOrsybmSBzFfhOBk+WbmqD/4XAPPBeb/ufcs4Ddz74/h4NegvwOrZrEscBAuApAn95Zvl/1TtLBkPQgVAEfL3BfAzuHuC5xK5HY/g8EFjLBhLnTgjcB8GR4N0VyPTP7pwK/t0h2Ac814Izy+7r8J420DiZDvLc4eD/GQLD7bq648FzAnjXhtBXEFgEvjB4BwP9IOgF3y7gKa0XdCsgcFZmWw8AZ2Pbc2s4DJ6X7L+z6gPeTSHUD7yjgSvtcfOPsfMj08++85z9PvA8BJ+DQE+7Ps5r4MbB+5rtJsadZo+z5yIIfgmh7uDrpmtPgaoJAn2hzd2Qvzd4k+B9HMJfQdvNoaQUQp0zF+ItUHQ4lB0N5ioI9oCiz6HNHpkZPQNFt0D7ftB2PHivWHwQ2h0KAT94DgLvh9B+AngzfVI5l0L5QdDuecg/FNzMIAYFl0PBphCet+z1rpgK5Z9D4Z2QHgnOQRAaA4WjMhM8APk+KO8LHg9QCuFNbXbSfkK94dOD4A6Gdi50nAFFjwM7gmecHRi04IrG7ceiEJQcY7MO90Uoexsq+kLBt0BmH3l7Q+mP0P5lCFwP7tt2X681EQr2A889mX2dD22ugop8u66+a20QyD8HuhwNZT9BURcIXwfOKGhXCMVfQ6jP4vXJ3w1Kd83s6yh4b4LwldClCwRd8NyYY2NegYLbodMoKNoX3Esg+L49Tu0ngOftzLGrtt9X1ELFIii50K6PWwr++VBYBp0fBd9L4Lsc8o6HjkdAu1Oh+CRde/+7qWgXNCx1G8Ri4D0c3LuBhyEQgPjNwHfgfSpTRMwHUwHxx2y2EgeCXcH7F9AWfB3AvAKJ38FzOzgpcJ4BzwHgXgfJoyAxGjwv2AzGezrE3wJnX/A9D4nTgDvB3x6igP8dSJ8J8dOWWuECcGrA+wTExkLtXxCpBedTcKbauz9XAo9A7b6Qfg5iF4LZGmJfgK8dlJaD9xaIbwmmCPK/BqcvxAZC1bUQuwjcO4BaSJc1bj8mvrUdxdVWQepS20OmNwShI2Fh3Pbh5TvHBrIF+9pueVNtIFJptz+wB6T3g6q/77Jngtkfqs6H6JHg+QwC90NoMLjXQl0JJM6A9IUQOhk8syG4EGoAz+4Q2g/8O8O87pm+rX4A77Hg7gR5V4DzlJ12mUXTlO3ZMzUSFiyA+CHgqYHYsdDm8Mz5sc+So0xH34VFV0P8QohvDMFtINzRrn/1J5D+FNy1bBfH4Vm67hSomih9G8Rngq+PLeqYTyBwOMSuA8974F2vXqBqC4lM17hxwOkG/h8y33cAczDEf4fQFuD+Be679qLyXAqJHyBxjw0+zkXgeRLcR4BTwH8D1J4GbA+BeoEqOhbivy21woXg1ILvcaibCpWHQ7IW+DTz+dsjUPcI1AE8l/nbzeD+Bh284LkFnHFgyiD/F3D2gNgTsGBY8/ZjYixEBkBVla0D8lwAoQ6Qf4tdvvsjeJ+1mevUfewQ6yaQ2aRhELjUrk/Vk5ls5UwwN8Oi7yH+NvAWhMqhXXtwf4K6nSCSKXaHH4TgCRCYCawFnt0ygeoMmPokJP9jA5XnHjsCUV4hpJ6CmpeyBKpkJlA9agMVhwBfQ+x5aBewgSq995Ijw8fehQWjgdGZeWwCebNhTgKqd7MdJrpbgT+6kodoU9FvNc2ojrQZlX9ncF8Az+ngvwkiZ0J6HVuvw2DwvQrmfohn6p4Se4Jxwe1oi1b+M8C8CPE2dmQTbwcIPAb+GohfDuYF4CvgCohdDr5dwb+9rVtJXAExjw1g/u1shaunL6TXh/jBS63wIjAGEkMg+DmU7QMFd0BgCLhL9R7q3QuCh0Cbe6F0LpQPgbK2ts7KswjcV4BOti4uMQniI3IUkSshfNvij3eercf6X6C6HZL1sr/U2ZCebLNJCm2Q8m4LqRQkB4Px1MtGPgD3DPBG6t1AtoPUSXZ6MsHaDLY9bsbegHS9dCb1FjiPg5vpK8P/KDizbe+reXlQcDQU3An5vWx9pPdh8DyTo77tViABsYeWDPzp3vbYeT8FT8nir+J9IVlv3fkL3EXg9rfTm3Uz67+pPddMnq67NTSj6n8obPQGlF8MU79csofPRgSqq8C3F3iG2UEwAzfCnDMhuDZ4ZoBzjR3oIXU/xDNlk+SeYNLg6QQerw1U6R0hdjJ44uDtBt7HwLMdJG4AEwLGgXkd4ufaSmb/9pDOg+TWEDsS3AvB/xq4Y+zv0ovsAAFLjFBTbYsc8SGQ1x/Cp4LnTqgphPQxkF46ULWFkkvs8tyhtgLYqbSByhkOVNpAtWgSxEYA22SpvK8Ef70nVWYfSOwB6Xcz++M2SJwKZEahTp9tg4nnQ+BD8DxrbwKpHyF1DVAvqMY+hPwzwFsveJg+kJoIqVOwvacCXAvpNhDfAdL1NjT1pg1M7omZQJMJVLwFeXuBc7Sto3PuAx/g2wo8ObIa7632hhCvH6gehvTlEN8ZvEV2pJz/BentILn+4n87U8CtsoEqfgyYzHiBplcmUOUrOK2hGdWIF2DGjnD3I03t4TP1EEQi4PkO/CeBf6htOhA/C2KfgrnCPmIOD4f0nxCpN9fEPRCdlckyZkL6dai9GGovgsBGEG5vBwao2wrSxy6+AOu2spXr4Y4QOiDzm4vBHQjhq+yTreSbkJwIZuiy13vOOzArAHMGgzMYyh6HDi60z2RggTeguA+U3w8LhsPMi2FqNUy5J5OlzMhcwB5gFJiHgBzDm3uj4Ntt8cdzMThr1wss54M5e6kfbWTnjRec222R0OyYKTcvxbkFqBcYzKXAqUtOYyba36dvsX3Q/+/ve4OpV+x13rABN30PxLaF6E0QvQwib0JNDcx7EapzDA/vvAJOTzBHZZngJXAurpf9vQSmjQKOMqoG+b6D8tkws39Te/g0k+yF61SC2w3M77ZoZIbY4oe5CTx7gacPmL0gXV7vBO0F6afAezN4XTu4Q+oMSPnB/zF4wuC8aTMGns/8aCSkPgT3CVu5y2hI/WI/DALv1eB9FEwEzDrAj8te79i9wBuQHg/BwRC41T5dcu+zF5LnHlvsDMyARB+7DqmNbHAxZUAE6AI44PQDHrP1OFnvegfY4sz/LmYvOPVHL/4em67UV5SZ9yfApsDawMdAeBkL2ASczev9+0fgm6Wmqc78/rrM/P72KTDPPtQAoG8meI2F9GC7z/93zID0NpCcluOk6GMfWvBllkDWB9it3h/uBF5XwFFG1aDwK/BR5p469m04cRC8Oq1RP33C1vnUbQsFr0DeVFi0CNLd7UCRfG0b8blXQ6ITROs1F4j2hLpK2ygw8DakiqHuQaiuhtAU27Az7z07v9SLmcAYtd8H34SCLSDfb7+PHQnpn8EZAGVlEOsG8XoNJp0ngOlLBat9YNEuMHUq/D4C6p6FojttHVeoM5gdoHa+zSISW9uRVLxh2+jxf9nQD1BXB6GzIXxY9t00dzxMm7b4U/0nxOc3/gjFz4XEnbYi2tvBPoj4W/4TNrhH/2iZs6FuBPAHuM/bfbtwfVi4cPGnagxE6w1q6vwETq96x/UnMAMhvONSF9QQW+cVWw/il+W4+W0Pyc6QvMs2gHXHZX7/ERQVgaui35qaUVVdB5mzgQ9eUw+fIsqo/pVqHgTPJuA9xWY86V0hGoPk2TYzijwA8aVytNg6UHdL5vsqSLwDHGErTN1+4PkZnLjNWMxBmR8dA9EopL8A72bgfy/z/eYQux9qX8jMz4H4ePuYvl07WHsHKDkX2MVmRB2vhfbnQEklFBdDxXYQ+C9EtrcVzZGp4B4DhYdBRYV91abdFdBlF1vUNX+PNXcLzJwJnmOg+A7oVG3v+iWToXQclMRbZv8mZkDkPZvRdH8C2p4JJd/Z139K94Sah2D+xi2zrOj9UPUTRCdCz55QdgO0GQttzrb7sr0XCl8BhtmW9BvvBF0fheCl9vfzghD5AQqmQefO0OZUqEjbxqLxOFSFILJR7nWovQTmfgWdOkHHvtDxcvspLFQvEwpUyyFZAImTID4Mkn3tazLmUUhtZh8xxw+F9C9L/iZ9FaTa2e8TBy45uGiivQ1YsfuyFIUS9ilbvF7xIuVA4kWIvQfJoWC+Ar6D5IeQ6AKp5209jTGQ6gWEwPODvdjMLxB/FSI/Z+Y1EBKbQfQ/tijo9oZUHUT72fVNrQ9mfSBh5xd9FaKzwXxnnxB67gBnQqaOp6FiXQBSA2xl9//2zU2Q2hTig4DM6zrp3jZIJ54HJx88vwODoe4QSAyG9NaZotNdkBwGiaVGtTMRiL8P6e+BE+rttymQnADJGfX2/1SIvmb3pfsreNYBzyGZ736D9JHAXHuc49tD8mUw72d+fAAkBthgbwx4rgE3D5JPQt0lYGoz011hz5XkRfZp5hLr+gAkrs48SDkL0hNso9/Y5fbpcNaKellTnfiDPd1yf/xrG1OyqzHFC4zxeIzhFPv34EfGtGtnTP4fxngP/Ofv3JPs9wVhY7yXLf574aHGlOxoTJtzl728ws7GtHnWmOLPFv/N192YcIUx7dsb47vGGM4zhueMycszpuRgY4JVxlBgjOMYU7yLMe2HGNOltzFduxrTrtaY/G2Ncacvnl/wfmOKbzNmrbWM6djbmKLBxvhPNaa83JjQeca4U+ttx37GBO8zpl0vO7/OpcZUbGlMMNXwviufYUzwXWM8xYv/5j3DmNDOxpSVGcNS+6DkJmM6fmhMl37GdOxoTOADY1xfvd9+Z0ybNsa0eXDJ33k+Nqa01JjA68a469c7dg8YU/QfY4qGLHVsxhtTXGxMp67GdDnBmC6f2mMVHGiMt5MxHGSM6xpTETam+EpjPCcu/q3zmDGBDe2xWOs0Yzqtb5ftOMbQKTPNHGMKC43J729M4IJl7JukMcGgMaUnG1PyhzGFlxsTDhuz/s7GdL4q9z7Nu/TbU5RRyT+kFkBkEkRvgfTVwLeZTOu/tjI6fu8/MyqwT5ZqaiA2aMmMKvYzRP6CSJbeD2JVENkYoo/XW4eBkKiB6gsh1Q8YA/yfzUoiP0PyZiBus4DoZKjeCqpmQGUl1Nxoi6bmznpZ4lsQfR8qz4VFJ9tsKvWtbQqR2GPJac2vkHwHambZ+VVdAjWnQPLahvddbQEkn4H0pfUyqq8hcawt1vLFktNHPoRF3aHqT1h0ASS72zZp//vtQxC5FCJbLpXBdrUZTXJdMPUeaqTesq/ZRLda6tgMtRncokqo+g6qHrfHKvmFbaPGeBsWagZBdJR9hed/v90MkmfaY1G5NyyaC3UX231P5umnybNZc/x3SO6x1E65277qlEpB3UCI3AuJ4ZB3OyQrIfmzrjlpRkaljz4t+XG62YzVdY1hl0xG+Ksx3brZT/l6yqj+pnf9RFZWcSYOgaG2Zw7fteC44N4G7Axze0HsGe0jBSqRlW0YuH0h1B78j4B7EDjX26eycQcSR5C1QemaxtEugNIL1u+XPGTX+doTsuJPPtsLKD2Xqju7Cpib+6cFO0zpNy322n3aiSIisqZosxNsfLvtAq8sAd2HtOLCLoJOJwG/w8b/ByFfKy2nG2xUAqWzwHsl9Kpb3PdoS/NdC5v9Dp5ToGB7WD8CtEIro9IbwFcI7iTYdDj4HMjbDja8lyV78moB7TKZULeroctj9v/XuQ5K9PLMMni0C1p9F3vgkjJI9oKNf4F9Z0PJnZC8FGZ/2PLL23EWHH0bFB4O+d3goANg1Bstv5zdp0Gbw2CLObBzb5hVBvvH4MuRLb+sgaWwsC3s+QLseRzEtoDuHeH3x1owSB0HQ/rCyN/gyK0hujcccDf0Gwp1J8DGH8MvM1pmWTv74Lg6mPAJDFgHtr0YPCNgy9Nhl2vh84chdZeuncXUjqrVpVJw+2PQ6UKYvQVMugreD8FGPVp+We1KoN0cmL4/rHMnvHk+JDZvne3qMwh6fAudLwLvVPh8Lcjr1TrLig2AXd6FmjDUrA3v7AgbjG3ZZcx/Ej7b3/5/SRxGJsG7nW099e6L0H1Myy1rZAKqa+GvzvBGX9sFY9cO8PZrMGl3+8q5KFCt2IxqMgw+Fr7sCZP2h9KDYd3X4Y9WKP75F0FeW9j6ZEidBd1vAmfX1tmu2dvAKydB6jKgJ5QOgmiX1llW24fgls2hy3QI7A49f4M/n2y9Yxa5DtpfBcmPwTcJuj9t+zJraV1+gZPWh3fPgskbwroXQPkgWPi1rhtZ0YHqPNjuZugHtP8BeufBf64G/q/1ltnxC/A/B0dcAmu1b6XtmgiH/QjrV0PZ53D0u1AwonWW1T4Fxz0Obd+E9XxwUAw827T8cjoYW0dV+AocdRmUF0GPh+GQBPj+27LL6loIxdfa86IfEPoO9j0Fev1H14yIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIhIU/0/DMJl7317f+cAAAAldEVYdGRhdGU6Y3JlYXRlADIwMTctMDMtMjRUMTk6MzQ6MDcrMDA6MDDzzygNAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE3LTAzLTI0VDE5OjM0OjA3KzAwOjAwgpKQsQAAACB0RVh0cGRmOkhpUmVzQm91bmRpbmdCb3gANTk1eDg0MiswKzA7H1VcAAAAFHRFWHRwZGY6VmVyc2lvbgBQREYtMS4zIFMGrL8AAAAASUVORK5CYII=' id='Ch6.F1.g1' class='ltx_graphics ltx_centering' width='298' height='421' alt=''></td> +<td class='ltx_subgraphics'><img src='data:image/png;base64,b'iVBORw0KGgoAAAANSUhEUgAAASoAAAGlEAQAAAC3Ra/qAAAAAmJLR0T//xSrMc0AAAAJcEhZcwAAAJAAAACQAPFFumsAAAAHdElNRQfmAw4QNAOVs17hAABEWElEQVR42u3dd5QUxdrH8W/35NkcYIEFFFAUE5hQEBMmTChmr+nqa0Yx55zFgGLWq2K6ihGzGEBRMYuKkQwSJLPLptlJ9f5R42VFZjawS3B/n3PmiDs9nfvpp6qrq0BEREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREQkE0e7AHq8VXxV5KyNP9CekPVJwZPLDpiwy29XtIZt9epww5y5F5xXc8UOTQ/au4IzBHx9wHc7eHzgGwK+nuC7DdzHwf0RlnfOGhUIVA1Kvg3xwyDxMCTug8RbkDgQ4k9A8nhIPrCaGxRzZvNNaD59qrdv8Z0313s+1e7XbBz9pMWX9WXoOHpGqgiaV1p8WZ+Fa+hd8xFes2+D7/pDwSkF5wNwvwXHBfcGcD8CZ2swMyBxMsQvh2QYzANApduOSYFr2LbmjMau4qJfA3HYSRdwa5E1b3ghGNPkz3HGOI4xwc+NyRtqTHHQmI4djen2ozGb3W/MVpcbs/XWxnS+0ZjuCWO63W9M587GtM81pqjamPw7jcnKMsbvN8btsBrroc/a/XxtjHuuMT6fMYE3jQlta0zWhcbk5hqT95Mxud2NCe9hv+fx1V9e8NKZu7eWa1QZ1ersvHsgex/I6Q/BueCWg2vAGQGuH9zPwX0bnFpgHBS+C+Z0MN3B5EHyazAvg+kH5jgwH0JiL0gcAtUP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'' id='Ch6.F1.g1' class='ltx_graphics ltx_centering' width='298' height='421' alt='The '></td> 
-<td class='ltx_subgraphics'><img src='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAASoAAAGlEAQAAAC3Ra/qAAAABGdBTUEAAYagMeiWXwAAAAJiS0dE//8UqzHNAAAACXBIWXMAAACQAAAAkADxRbprAAAAB3RJTUUH4QMYEyIH5HepjQAAbpZJREFUeNrs3XWYHUXWx/HPuE/c3YkTCBJcF/fFfVlgAwss7hoWd13c3d0SEiQQEiBG3F0mmWTcp94/engzCRYWXejv89xnpm/X7equ7v716apT5xATExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMT830kxE1A+6OaXrz4yW5D45aI+V8i952VPfN3nP7gn+FYk+PTzfyanc9O2OKY99a70aaRejMbvEGfi+n+CC1nkX4EiYetXbaqlqozKBnB7A/Sb9ywQ/mZYS5hGAm9SdhcQpgvhLray1dRfhZzc5h5moR5jwgrXmXFidTugUfWesiEb93B2oSFSlJHyqk4+BdtuKtJeDpx34QLkvMTxlZ+GIoJXQinf3vx1OdIPoikvtFyxXyq76P2wPWsrzhtSxmVLSSFF3/xi6Iw/Ua55Wd+4/sDSPyAZn+l6XV07E3XO2jTg9S/kJK5TvlxhC+ouYHkZaTNjr6uXE7FUlaOT8gZNy/1rPIbKi5d2Z/FH7DiGGrgmu/fxZrjypqzr1io/iw8kTkn+Mun613+VpIH0+wceuaw2Vw6X092SxIXrF20YgSVg1n1Di12YqvPfOodavuR+BI+w3vU9orKlxxA0VAajKT6Ggrvo2QxXiEMwoc/6sg+/UXbrRYHktiFhCrCxfgP4Tv2MfF9krYk5Z66m/U1FH93+e/h7F/pyvhm+20ZnYuMm2hcQseDGfAq3f9GRjPSdl+n/LvUPkTNmaQ8S+aqugfSAEqGseRGShezakt/SfyEVc1I2Ifw7A+f6+rzvjzxh8QsFqo/Iek30bELA7owsJqt36VFEenX4SqmncHypRRdydKPWTqD5Z0pWsWqVdFT+N1WZD5Jw1E0mkODK8i4lYYTadqcpg1pfyhtzmarx8h7lfxd+bKGyc2YlcHyBix+nprV2PPXbYPOR3PMvWy9M57H/iScU7fyAaZlcP0iZvbG6jW/O3Am+11L2/NIvLbOIniW8AlhW+5rzfufsXT27+ykH0XiQlo3pMVUur1Pz0vY6CYa96XZO+RsRbiCsn+waj9KjqO8iKorqNiP8o+oGUfatTSYQ+4/afACDbem1ST670DRhRQ/wZK/MP4SPt6EhbXMaURpQXzvxUL1I0iaTu5rtH2GXr3oXUnGuVQ2oWg6RYvIKyD/DOZ2Zt7TLCpn9T7Rp3lbmrQlp5Dms2m+itL3yBlHQgHZ75CYSsYoslNoiZarKXyCsmcoepr8RIpeI3ELavJ+/TbIOps+z7DtiHpfbl339xKyziVnT6Ss/bt2DzFwW7p2QtU3t/vOeaR/9Ts86R1JeIKMETQ6m3bbROd+w11pcCrZt0fFii6iahdqDqF8CCU7U5VIaQ2lq6OHStoQEv5NShm5i0lpRsMNSVtZZ32X0uJYqkYwcyhF6SQdjrviey8GHDeeEL7tk3xyCB02C2GXXUJ4fJcQ5n0UQm1t9FmYEMLD80M4rFMIXbqEkLzk27exvp+UmSG02zSEjVqGcPLJITx8Qwhjzwgh77Q1dZbsGcKyyhBeeSWE4/YMYYP3Q0i//KfVu76fw5JDuGf4mn35vk//a0LIqgihQ+MQLr00hJoVP/ybv+0aQvsTf51jWZ9P1vYh9Lo4hPPPD2Hm1iGs7rZmX5e3C+HLJSE8NCKEE08Mof/1IbReEELyXuu57TNDaDs9hG3ahXDaaSE8fGwIw/cKYfkda+pY0CCEJ3cLYbfdQmiyKoS0juts47wvTogtqhhJH9K4jM530reE5uUk5bP6Q1bPZuooZvZk2U2UfRC9xvwUwrWUv0bRMyyqJfc8EjYl733atyKnLynvE1bQ9AB6DGTJSZQ/yoIPqTkKR/9y7dH6MFrvi1Vrviu9kPnj2eD1tct2aMzCxaSNpOM1JOyEL9esn7IF7f9F1kFrvuvRj8VTmP9bnvTNSMgk931avMgGHemUQ/pZVD3CsvtZfRHz32XJJKa9zeLuFLehchdCw/WrpqYLFaNZfT4La8hYSeHFVB9O5wxaVJH4NM2H03c7Ch9i+U0se4Wi4wiXx/dnbFHVfRqkh7DXEyE8eVgINTUh1M4OIb9LCO+nhnDxxSH07xxCzlW/3BM98ZIQmj8aQs8nQjjuuBD+0yyEUV1CWPTsmqfui/8IYfATIeTkhJB41S9rYXz0z29aQV8tD+GIft/8/rmxIfS+NYRtun679XTw4hDGP/3N70fW/saW1PQQUlJC2LYyhPMKQxgzbM2+zRoVwiP/CuHoo0PYYGkIzbcKIfGWn6neuSHk3BpC3+6RBTfphBBWvrim7lcHh3D5gSEMuiiEtLQQEnL+XBZVYixS39IoVaSNot0zdDmS5j1J2I6lHZi6L5M/ZN48irej5hf0YgnHUHkwpXexpAfTN2TCJYxrwoLOVJ1K0+50+YCGt5C08S+0IzuRuzdJh6z99fhufH4gy2r49GoKv1izrtnnpOz2zU0VLOKD7VmeyvgbmdTtd2RB70r2+3ToQL8+dB5CVhdK34wGSqbszfRylm5A6SdUnk444meqfBQ191P8PvPnM/F2pmzGoouoHkrja+lwAP22odOjZOeTMj++V//UFlXWyhA6dAjh3y+GMKXlmqfaQ0eEsM/xIbTKDiEhIQSdf+Wn/cQQGrcLoVtZCFdfHcLSN6L9Kn46hH32CaHBX3+ZehMahDBoUAjjRq9t/Wx7WwiJW4egYwitWoXwyUZrr9/uzW9aVB/euma7TWaFsM8dvx+LKqdTCP0nhHD55VGb1taGUL5rCJMmhXDMpyFsWhtCxn6/8H60j66tLq+GsPu1IdyyMoSVK0OovimE2sdCKDwnhBtvDGHgRyF0SIj7qP60pL5Kh8PYeBs2e5emRSxszrh2DL2TGX+n6AJCFW75bgskcVsydyNrM1LuRSD0oLwZla9QWkVNNv71I3buLsrqRhU/mkf3Kja/ikZdadeOlGtFLgM/MwmD2TOHxhMxkPA2dx7Bon6EeSik6GJqrv8BC3EBYXq9/q1GrFzMjMPpNgETSS2i9X0s3sCa0cRfgdZn0q012xzItq1I2Z9lc/iqjA+fZsJNLDuLqkPw0npudCPcQeKw6Px7kLAh4eXv+U0B4TLyezCjPYm3Ehox4CHa/JV2OzHoBhZfyOfLmdcsFqo/JWmv0f4wtqlks6vJKuLTvrw2kGEnsWIk1Y1++FUp6WJymtIsmaz7o69r92J1T4qvpbKE2pbf5Vr+HdxNGcrO4KON2CCV9lvT5AHanUXqw79MmyQMZs/VNH6oTnDe5vYmLHyB0CT6rvhMqmvXQ6imrVkua8zKY5h+GF1FrvaphbS5lyX7/si2+alCdQYbNWWvfAYOib5b9j4flfH008zeiZof24G9EQmfknRF3fFvRe0+PyxULmXVpaxuwYIyFnWh+CE2uZ0uF7P5TuTtw8o8Pogtqj9h31QCfb9il6vYYwvSlvLsZTy/LZ9uRP5qavb65u/Sz6fBbPo9SZfONH2FVrfQ6p9kDiKxAflH0mA+NbOpnMGql8lvQkFTynYkvzVLFrHgEFY2Y/lYajvj/m/Z0SMo3ZQJTejzLOkz8Z9frl0SHqbzRqR/7bf1PAv7U7n3j2zf50h4d+2e0SV/4840dn2WpCdotYzTTuOYhlT/Cuc85S3aPMM/GtLzFjqfwILHeDSDyR34PImFXan5N15Zp12GkHYNLQ+k93Y02ZRWW5G7MenZJP+btFNJaUntc4SLqNqSgk9Y0Z+C7VjUhxmJLGlJ5RdUv11P2PtT+T4z2vDIsYzYm9EHceZcBi1hYuGf596Mhao+z9HgUlp+TMtp1B7Kgl5M78PS/nXD/x9/SyfsRNInRhds5zdo8wgdN6T1+aRNICSytBvNbiJhD2p2ZdW9LG/EygsoOpilXQhXUXA2JZ+QcAt2/I79/CyaC1bQjIICiot/4XbZlKxdsEfdDbSQsv9mGOZmEm5f+6vyMcz6T930IGTsRbeXoyk5v8rDaQlZY+jyMm1nkH0eeZcw5U2mnc/8U6j4F976FgG/nMQ3yTqdVmfT+gE6vkKTfLLeI/Vy0nci5TzCFtRuFTkHr5zG4v3Ja0RNR5a8SNJoEoahnlB5N5qlVPw6c/eiPINmZ1DdmyatyK6OhepPyQYt2O9qtu1e96a1Fa/sxKzPqHkf60zxbbyannPZLJnNJtFzPA06kHIBlQWU/Z0lH1CUzLIDafYSDcrIWE7W9XS8g3ZPU/MMyc9RO438D1i1jLGXMPVKZsxm+eksOpuaZTgAU8guZZN2DPgH3bry4WW/YcN1pvXmkee1i6OvZj1PWSPSfuCnlXexsDuhrm0zVrDBUhI2++V3O+dL2t7CMcfQ+zNqEhjdmTsu5aNyik6g8q9r9yMmt6f5Vmx0LG2S6Hk+/W6n1TmkPk/ycoobU90eLaJ5e9WvESaSugE5R9O8IX2zqHmcik3Ia84Xqcz6itFv81Vjyq8nPLem3ppPyGvJJ6dy+zhOLMCpsVD9Kck9kjbDaZZad7M1YfGHlOz/Hf1Z+9D0crrcRb/L6TyHlCxqR7KyOyWnRlNkCpMpuDiaOZ96FUkPkJtF2kskLCBxINnTydyE4sEUPkbFVZRczsqHKG5N4vbU1A1HJ+xCShGNx9DwNLI/+o0bLouMz0g8YM1XxYOomf7DP62dRdksdBHNq6sgR2R5/uKvffeStR0dc8jtTsHr5GczaRLLj6PmDJy7jhV1DBlP0LqEzofQ51IGDCB3A0ym6kw8QlkDQgdqXqxzAi0gYTmpl5B5MQ1akrSIxEG0uZGKJML5zFxK8oGRNaWeUIWV0RSbFRcw4xWq9o7v1z8wLetePDKH0KcblkBqm+PGN2oUwiPHhbDgmhCmdgnhnntCaDchhORpaw8fJ3UIoUNCCHvsEcLbtSEsv3LN0Pqo20K4+qYQjhwUQs+eITQ4I4TkE9YZ6h8TQvJLITRrFkLv5BC2uS6EPd8N4fTTQ3ikKoQvXw1h2btrtll6UAh5d4bw2mshXLFnCKdsHMLg80N47LEQVhaFULNXCAWHRVN8cj79+YfLm54QQu96U0dWLQrho9O/6Tbx2GMhLK3nEDrophByrwph484hjB8fQu0D0fejTw6hU6cQXLb2NirWcSZN2+2XdQPITQnhuDtDeCgvqi/v8hAeHhTCgL7fMeVlQQh9Ng3hn19G7gpVOdHvKh8LYd68EJ7eLISrzwnhkItD6N8/hDZDQmj6zxCyXgohKSmE5M9CyFoeQuuaEDbZJIQj3wnhvLNDePztEBYtCqGqbmpSyS0hvPBCCAdcFEL/y0NIz157P9Jah7DzziF8MTuEIbfHDp9/xBe7i7hp8+j/s/vRbg8O3I/otSsnh8Z9SLqFghwWLqTyE8Loek/Ta2mQSode9F1J48uovYnl+zG1ReS8OLeSpa9S8ibVXQlL1tmNGwlfUfkeJduy+khWTmDh40zrzIQRjLueaS1ZPIbiXGpb0WQirU+nbVvaPkmzZtiapQcx4z+sOo2az3/+Vmt0FZ3qXSVlf2Xm6HUKtafFFFKfWPNV4dtUH0Xp60yfjroIUun307HjmlfE/7fAzqFmZL0Biuy1LbSfjf1J+JDmN9HmwKg/EmYNY+GXFC9fx4KaQtYedM6n+x50u4Gs3SnqypL7mbwrY8cyJY/Zu7F8HsUDqehA1SJqmkbRIcKX1KRQuT2Fr7HsVuYvYOpixu3L7CEsP4ma7aMoG73n0nsHurSqc7btQPLZZG8euaJkvkLSnrHp8Qflsrqej/OGkrwfZ18Eje86bvzGxSHM/FcIKz8J4f6DIosoednaT7PUriFsu2kI99Wb+jF3aAiPbx/C4YeH0G6DENLO+wlTZoaE0OyVEHosiqZp3NUzhE9uDmFBdVTXitwQZj0WwtTGIZSVhbB8cQgPPh7C0e9G0z6U/wITkS8O4aV6U2Q+2zyEje5Zx0rc7ZtTYZxa50RZGDmL1hwYfb90dgiPPBJC4hlrb2PMziEUNlrz+x7nhZCx5y/gvLp7NAXlH1uHMG7ZmvqOOiuE/v8KwaR1LJgjQ+jbN4Tb7wlh5N/WlP/0oRDuOTWEAz4IoV27EJIWhOC+H78/yftGE9pP/zyEx59ee1LyzGtCuOO0qP2yLwih0eQQNqsK4clNQnjr/BBOmxRbVH9wUo6iY2eWbA/ZHeg8P4oNVZDEyssji2jdScYN8ujwBa1eiJaX7cKM+5m5iGU9KX+zzqXgvyQcTdUdlKZF0zSmP8fEpxi3YxSLas6dLDqTRS8w8wgmP87c3uQ9S+1wPzao3vp1P91N03qjitUPUXTY+v++ZggFr2JetJx6DS0OxjrbmNGXkpfXLHfYhIyUn/94kjrSqBGd/0P2v6k8kRn3kXcdJbMxZk3Z1MNpchU9e9J6KjkXUvE2sx9kyp3MOp68hpS/Q0jD9P/inK+gbDMWjmRGGRPnR+4RlQ+SNp02jzPgdDZ6mgFV9L2dbpPYfBfa7RWbHn9QOubWDVOlcvBrpF4MG1503Pirrw6h4LoQXpkQwv6Hf/vTb/svQnj3pBBqj4ieeA+3DGGP3iE0mfgL9aVMCqFRzxA6pYdwwAEhnHRsFBLk1E9DOP74ELY/N4QOe4WQefwv15dz5fS1LaX33vgWK+V7LKqvP9XT1l6fNGPt9ZtVhDBq3Jr1j+8ZQt8jf4FpMmOi/sXC++tC9fwnhMGDQ8h+IITEdcL0tPpnCAeeE/WxVZaHULVXCPPmhHD22SF0KgyhQfLPuG9zQ2h4VQibtgvh2mtDWHROCGUFa9pjYpsQJn0UwvKdo+V5bUO4ZKt4Cs0flLl1LnKzK5n9/8+jrEvp+DxJDcgbSd6tqNffklRO2u1ssjnN32XFa8zenQ9SmPUapVm/0O7eSdk/CauY3J35V5F4De6nal/y01ndn6obfkOT/E0yGtazEGbXTdSu/XHbWZhEea81y30PJWfiz2xH96LRTmx2JslfMn0Ok7ZnwmNU/p1Qrx2bvkuf4ewwjRZ3sfRK5hfyyW582pTVfSi/BJf8TDt3C+UTWdSeYcOi66/9/nTdmNarSDyKhAcpTGXlIYx4mMmNRdN0YqH6c5B9CR33JqkNeU+xYvE6jVRO1nUM3IwWf2XF2XzWgQ+msfB1Kn8pf5a7KBd9Vn/93a51fx/4fbRd0ptkTUFdcoowh6oL/eio5ouSqeiCGfWEauXPLFQ9adiTzTYj+VKmDeezZUyYQOWGqBd9otl79GnEDjNp/jyfz+WzQp7ejfG3UbPLzyhSXwsVFh3K0mdZejYb7M/2hzBwNtnZ6Enhfsw7lLceYlbqn+cejYUKma/SZjCL9o/6nJadtfb6hnvT/Rn6NSYU8GULnj+eZa9TNfaP2y45x5GxJ6ZGy2UDKGu9dpnmL7FPgzXL817jvm2wzshg5a6ktSKhbpQttwWFE6np+yu++CfR/1EGvsGKM/hgHCNOjKYj2aFOeN+gcSeO2JqNP6JZStQ/eMu9TL+A6QV1zr/7/UI7OSza/qwpLMlh3Hk03J/schJzqWlDcRpzX6P277FQ/alI2oqMDFaPpPgZyndEvSx/Ka3JvZGG2dTuzeqrI/eFilsJ9/6BL45zSbx6zXL1e9RsuXaZtC1oWy8OVcmtTNkX+WuXq/mIMHxNIsmU10g8qy4t1K9E1vM0vJJG+zG/B3m3saw1NfWmrSRsRXof2l9Hy5GkdYgGA2YMYcF8iif/wju5HNtSIvrk3UDK3pFFlZhCyKDqYIqXkHnln+cejQPnoaqCwkImzGXBdErPX3t906cZOJDUO/msIUObMGcO1ff+sdvl0AvYbPya5SuP4Jpd1y7TYWvOm7lmeeUiXn8dc9Yud/gIJt29ZvmUD2l3xdplKk6not78tQa9aDjk5zmW9PPZ8Qb2qguL8uROjLmVRfVEKuVy2t/Jqaey/xy6lvNVM846i3HjWTb5NzgJZ1FVFWUxWrmS/OspKiJk/7nu0VioYmJiYqH6X6Bye1avZtUGVPzjW57G+9K8OcsPZtI1zGn152iXw8eyeb0IDqPuY8yYH/jRttTU+EYwqdcPZUXHNcsX3k3na9cuc3UCl9azUvebxyENfp5j2eQd9viS7TciL4+X01m0zutpmzbsVsCZZ5JxBR9ezPmfM2pUlPE6Jhaq35a+UciOcD8mfM8r4gORGV4z+U/aTv8knFHv4mlFYs56/nY7fPH9RQp7UDBgzXLzqbT87OfZ9SafRIEFq15k2WBK0qiulwc58UayK2h6crS88HkWb8XqkwgjUBnfJrFQ/cYkXFcnVJNx5neXK5oSxX8qHfLnbKfanQn10lul7kFqj/X87UeEk76/zJSz+OrWNcvbX8suh/08+77VvjSdR1EG7wxiTjPKDqxnNT9N1+VsU2dBPpfMa68zYdvISqyfIiwmFqrfRqjeJjEx+nztD1Sf8FDkP5y9AbkvRmE6/tB0JeUqErb//mJdmtKlXriRUS8zavX6V5O0D0kX1GvnpYRJP/O5HUfGdXR4hoxXKM2MwrjU3Iwpa8q1rqZTFe3HUHxW1PG/oIjaxfH9EQvV74V6QpUw9FvWPxwJVc4GNHiBjEv+4O3RhdR/RynCvrdYMzr/FKHa95cXqsSxZF5Lx2frhCorEqrq7xCqDmMoOpOv7mZhLFSxUP2eSNk38lNpeBlp12OftddX/jV65Uvbl6ab0+jMP7iFuRkbbkhW3etOuIXXNiZ/nSktW9zB5vWEaub5zHz0u7c7+jRGvbZmuVNrunz6A/uycWTd/bdTRVLuoGVLmpxBwVssrGXZMsLXgyYtcDkbFNCqJJrGM2ECea9SMjW+N2Kh+h2RvE8kVI0uI/V67Lv2+qoD64Rqv0ioGp715xOqVzf6plANWkeoZp3PrO8Rqs/WFao2dPnkBy7QjSLr7r8VquTbI6FqfDqFb0Xp05cto3ZwXYHmJFy2RqgqetYJ1SuxUMVC9ZuQVshGd0bP2LUjfNZOpbKSTu/RujfZTdb+ZcGOTJtG+Se0nEnb20jZGa/9MVsqaQynvUirdtFy7XCGbs3q3t//u8qPqfwe94XRN/JZvXRZB13JYeu86i1ewS3jqKnbToMUdt6ZxDP+u2NJT6RXL1LeZ+HnUSKJyvfwWN2xDqBxYzZ8hTbHsvpRhm8XXQ/fmbcxJhaqX47ThpH9DP88bt0In2FXamvJWkbG2ySvM9mzqnnkDVyzA+nFZAwg8UNs9Qe1qPLpuoj0o+u+uJPlg6l65/t/V7uC2vzvXr+qPyvrTaZuewXt10n5VP54FB8q1FlzKQm0aBF1iv9Xovscubkk3EHZvRRvTNjG/8fHSmhIaioNtySjI1VzyTspuh7+m/hSMbFQ/URumkT7u5m4BxVZvDePjjvBnJd5bAGJI+nVlQ6l69xgD0SvA7MOo8ne9Huf7t1JbfQnabpJlJVRu7BuOYOkpLocfT+C8kmU3/79ZfKW8uij0ZxK6Dibu+8m9b9wU0hsTs4wNt2UpFPrQj2vk1k4/fLoNbfjRZTtw0cTonNdvXEsDrFQ/Sac+wbL5jK1at0Inw2bRDHQGw2PL4iYmFioflPeakDVHmTuzBMr2Hg7nh0BK+5j9GiqRtP5Gjqu8zStmBBNCB39BoWt6Pkohx1Gw0NJ+IM5AibcTdIPHdN0dt2VRl+/Gp7Atdcy/6L/osJXIutMnXVaew0lJYSXfvqxNNiD1rvQpw9Lj+Or4Wt5JIDMWyOLK20BeXOY0CWafeCuWBxiofpN+PJtRmD6JVGEz2f2onIIVB8Y9UHVziI9mYyD8YFo6Loe+bdTnkZWFu1n03w7Mub7wakh/0tkNqJxvfTwq59m3ibriNkFbPAMmV9njZlZF/Ym94e3X9GThV38f0d1SjaNbsPffuCH7+JHJiVNuYW0viRfSemsaP+q6uXKMyQSydybSBhDZRdKRsSiEAvV75TC2mhUr+IuWubQKomkHbDz2uU+e5elzenUiUPvYcf3afMMSX+gyNXtN2bzUWuWx5bx+MPrCNW/uKCCdnXB48LtPP88eb1+ePsrLuSZkwivRMvZndnkdRJ+YCpOYj889eOOpdFLNP83mdcx/y6W9mJ1Ur1tXhvFIdvgaRKPJf8kZm8T3w+xUP1OKTuWpUspGEfDm2m/e+R7kzR37XILVvLFJKbVhdnd9St2XkmfZBrcTGKf//226FPBfoPqHfOWfPblOoVakXFtvQnJBRSfTU339XgoDOSTTwjto+XGl7DvviR+sHa5TypYXW9Utcssso77cceSkUGmKJpD/mwqdifUyx2Y2pmsL2nShOJ/s/KN9RPbmFiofhuh+ludUI2n0c203+3bhWrhCj6fzNQ6h89dJrJzfiRUDW8hsfcfQ6j2rydUC7di9DrhlhNak37N2kJVcha1P0aoOkTLTb5LqCpZVV+oZpP5E4Rq1axvEaouZI2NhKroqjqh6hnfD7FQ/U6pvJb8fMZuxKo+dFrCvuNoOJ6kpvXKNeXzsTyfzBOLonCwWw3ntAe4NoOjVzBoJl2OJmM0Caf+77VF8u2k3rdmufwGCkt+vu1XLyL/JQyLlpMep+E4HLp2uRebsbRedINznqNL7o+rK+dKcg8jXEr+jVROW2f97tF0qPRrWPQei8soiG+HWKh+r3ztmb76PaqOI6uc1vdGN2xCPefPkMaqe1mYwPxHqS6nyXK6b0LfF+jwOE13I3s0yTviwv+9tkgYQOLAem1zJdX7/3zbD49StYUoNrhouk7Kzmi3drlFr1Deds1yj0Fk/8iRwOTepHwWCVXlNGqL1l6fchqp40m8grJllD9FVYjvh9/lAzRuArxH2JYRn7DxQWw6lt168caXjExmWb2iJVvy1QuseJL8V9imkr5FdJjDkV3Y/VQKOzA/n7lHsHgMq8tZvAXLM1n5b0oOorz9/2ZTZV5Dx6Vrlldfz7hLf/56VvWjuivqxCX7UJL7/7htZF9JbiaKWZVL5f6oN08ze2caPEgoY8UJFF+KJvHtEFtUv1eWYQTL76b0U9JX0fIQGq8m9eC1i9YMpmAL5s9n8igWN4oSEmTuTodUel/AhlMZMIBeHeiyE+1W0OyvZL9A2pUklf4PP9muIKfbmuWqK1n+yc9fT9XfqT22Xr3tSdjix20jpTcp8+te2w+jts06x9KC5Dl1Fte5VE2yVkr3mNii+l0ybhGPVETzzPbGBYlktuelf7Lgjnr9LH2jB/1biXxUTsd/0nMlg5Lp9hjNO9C5Nd3GUbsrNQ2ofZCae6IZ/MWTovx3cwuY9TcWv8TYf7Foc8qH/XYxkPo8TJuyNctvT2DiLqiXZabHJtz+1ZrlWSu4qPrH1/XyMrbZOUr0CRs1Y0oahRU/3/E02IPGV1B7E8t2oWKdPsMGgcaTqe3EsjsoahzfA7FF9b/AgaweSt7GrH6Z1C1p+z7t8sj+goRvyU5c8yEli8l7jpkn8VU3xm3A2LFMepZZF7HgK1b8k+KV1A4i+e3IDaJ1G7o8Tq9nGfAq/Q6l+9V03JLGE0l7kMRf0a+n3eE0rudDtaQXBescc9I6FlXtA5R99OPrmj2Psno+TV2nkJmxdpmCp1m9x5rljAvIvOJHXNzDSDgnGvWreozandZZ/3rkS1VTEzmCVn8Z3wKxRfU/QG1g4ma0aUnne9jiVQ44mLQbqJjJxO2/GeO/7C9RCrs5GLE1ybtEccTbvUO3t2h/Fk0+pePNdHiAFs+TO4c2N5DVkcQhhGrymzJ1GdPuYOFbjDmaiX1Y/g7lGb/O8R/ahE3qOVW+eQnjJ6Pzmu+yrqHHG2uWKyaz6KQfX9cDj7JVJl931f3zamb0ZOnqNWUmlNF07v8nMdbuX3T8ivXNrZGyGSl/o+xZVi+hap2pQSntSL6PsgJWJ1B2SnwPxBbV/wiVw1g5jtmzKWhJ8hhaDGaDDWgyj9QPfSNdeX1CPjV/j9KErxzFolOZO4xp9zD+TsZO4MudmDiR6ZNZuCF5W1FdTc7btDyWjldGk6R7n0+HpTS9leSd8PEve+wZG5NaL7pB5T1U/0IiWXokNfX8onJrSc5bu8zS3iyu55LQ+jzaHfLj6gkPRSFbamsJR31LgZuovYSaS6i9Ib7+Y4vqf4SCzRh9HHkT6HgcAzrxlxR6709pd0Y3YmnH705FXjOGmn4swILH1nkqvE/2uVFUrC4P0asfGyylTTkDdqJ7b/q2JKEuTO6XR/L2Vnz5KsO/pHDvXzYFept7aNh1zfKK0ZT8QjkMFzalvF68p55VZM1CvdfKt6+g8GmOqFvedzDN9+OdHyNUM6jcIHI/qW37Leufp/wFKs6jul98/cdC9T9E6VgWDebt6SSeQo+/0TyRgx+lVVe+qGXO3aycGvVRGbueN827VOQTvmLe3yhtwdwiGvydLx+g0wW0uoiGK9jgI5p/wNan0fkcGh/M59ex4DwKP6Jqyq/fLtmvkl2vD2tVU/K/wh2/TH1Fj1Nw3prlJiU0S/oRIrU3YUOUk1BAwr7fUqgfCQl1nzviaz8Wqt+co2fTqIT8FeReR+qmfDaGkW9+Q6i+pPR43t6f1nvR7mm6ruKg12nUhYTZlN7F6leoKf4RQvUOFe9QgaJXqBs5lzCWpn9hg1H0mkeHBTS5ks5n0bZjFH6m0VwqZ0b7VbbitxGqnFfJ3nXNcn5TVp3/y9VX9DiFK1HXJ9a4hGan/jih0hqjIqGynyiARn36rhEqd+LYWBTiPqrflJdasHwbMp8g9y7uXMKg7b7vF3OG8OwR3LsvL/+L0ssZuAODb+XmBpx4O4MSaVZD0se46r/bs/AEqzdkQkNefYoH2nBuObcN49NmrNqUTc/mvB5cMoYzjmbDAnJOJnHfn+M9jDYzo0m6EGqZ1pKydcIE7z6TXep99+xAnm/931e7tA+L6/VLNc6kyR4/3xkPJdTWZblJOImEdUQ1VEazDRKvIGlx9GoeEwvVb8y2mTx5Gy36U/0uKaso+vf3vgL2ZuFZzG7Nom5RKvdGJ9NlAP1fovOAyJE5/UASt4+ezv8VN1D1HgUvs2Rz5mQwcX9mbMuKV6lsTKMJbJBDr1V070ijfUk+n4SRP71lEvYkczeSsuq+eI7C16ipWrtcy4do+eSa5QUnsvAndLaXvUN5vdRkqcmk/pzzI59CXWythPOwzoTj8Ayex2UklP9yr7AxMT+CXfbg1B3Y9A522ofTxtGiboLGceOjFKPf/kl8IoS0tBAGLQ/hin4hfLZpCLW10ae0LIQ5b4cwfHgI/0kM4ezzQjhqtxA23jiExo+EkLLxd293fT7NDguh94QQLr88hKmjQij9IITanUMoKgrh0poQBtwYQvrlP62OlJNDeOaZEFYMjI6pYmkIm2wSQnbjtct99M81x11bG8LWu/20envmh3DCh2u2994mIVx82dpl+uaGMHZsCDV/jcqM+zKELl1CSLjgh7d/SpcQnuoW/X7L3BAanLP2+h06hHD27SFMnBjCefND2P6un3Y8v/Yn67wvTviz3L1/oj6qd96oGy+qM/CHvhKLd0xMzP8Q329R1f+kzg6h8xch7LFHCHecEsKHA0OYnxVZOBWdQ6jaKITKvBAKCkKYukUIQ+eE8OweIVx/fQj/OjCEg9uGsPPtIXTqFELGFSEkNlqPepuEkJAQQrctQzh5aQiPdlhjhTzfI4TjR4SQlRVCYuf/7smc3m1tS6n8lm8v93NbVISwxZtrb3Nk7drrs/8RwqBBIZQnRevzvgjhscdCSJ37w9s+6fAQnvgihGnTQth1ZghN5q29fqvnQvjX0BBmzQrhukNC2DMjtqjiPqo/CGFXyvdkZV9mLGJCE8aeyIT9mV7C/GNZdhAlZ5PwPtk70WhGFIivw/50v5feO0eTlvseT7dutH+TxvuTNpPEb/PyriKMoPRVlp7JrCHMfZjKUpq+SdcUmjeP+qzWDZfys9AqCsWSsGXdcgW17xPO/uXbu2YxBa9GE4ch5XNaTCFhPSZ219xK7TtRXPS0feoF+vt6fT41j5KYSGp/kkbG13f86vcHoWo6i7H4GkYh81Kadaf1p/SYQ9cPaZlEjyNpuzmdRpP8BbUDSHyN5BkkrKbodqZvyJSbomQHY8uYfCfLt6Ns3QwohdiWRXjzVUZeQO1+DJ7HNj3ZpJLpO/DKSaw4BTf9zAe9Bw1fIflVHIwVVAwibPDLt3fZq0xuVpcQFLnHsxOS1sPrs+J1KvpFkT6b5JG2Tlz2si8oXRIlIG1yI9n3xNd3LFR/VOH6gNUHRNNByv7N/HlRwoLmj9ByII1mkXUYObfS4EAatybr1Cgzb9v5ZD1O93R6Hsa055i0Cwv/zrTeFJdSu07wvaoeFP+Dz16l5zC2vJCW6eywA2O3p/QJfkwUmdQ+ZNULIVx9KeUfrl0mIYXNNiOnLqpDSOGFF1jxc0Q6+Ce1h5J4NnJJ6kzGdZQNFWWe+SkiV0rpg5EjZ862JPfC5fXWd6Fkr8iHKqcx6a0xN76mY6H6IwrVCAr6RSFsv04k7BpSLqbpbbScSaPDaPcu7R6n/XU0f5u+1bRbQJcypBEOY+bVjMhl/N+jMLxlK6ldp77qHhTX8NmFdLiF9m/RdlN22Jnnj2T+jB8pVL3JqmcZVV0aTdKtH0Du/4Xq0XWEqvJneJU+hZqTSFwWCVViZzKvpez8n0Goyih5kIQycrYh+eB1hKorpaeS8Ak5jUjvGF/PcR/Vn4mh0STXok1Y0pc5nzFuPz6cwWsJPHMODz7Ik5vy5l6MHBTlxcvdgI3vZ7f9owSng26h7QAy1/Wdv5zy85m4LxOmMOMksm+g97W0HEHSgeu/q+3vZLPj1yxPbsErQ9exqLqxzfvkfh1d4EamT6f0q5/eVCvvjFJtff0amd0+SgiauM4E4erHCa+vWc5sRdIPOJuW7hwJFeT0I+XkdYTsbIqOiOYBZt1PxlkkjYgv39ii+hMJVe1Qii+m+Ovv9v36rifpHJrPptcmbLA3bbdgm4Vs2IMW/6bmVNofRsKhVA6i4s11rKQromk4X73NhGm0PYnu19DnED7bnel/pea59dvVDnex+af+f5rKpObfIlRd2XpYvS9uZHo1NZN+elOtuJPn/8NBPUn6Wqg68O4ROLyeUD0RpdhK2HONUBW2ijrbv9Oi2omSZjg0Eqrkk1GvXUrPpmjHSKiy7yNzGsmDftmJ3zGxRfW/wY3U3BGNGn5xPS89wH13cv75XLGA13OZ0YPO8zm+A+dswZmz6JVH2tvr3Ijj+PwmXk3AtgwqYqNFdDxx/Xenf1MOrDd/b8HfGfNDneQV1LyPn2HUr+gCRv6F2rei5WbHcMxDJL23drmr/8nMZmuW9/uMVj8Q6K7gRPIfi0YMm+wUxQmrT/kEihZGGYgyR5J7Nw0S4ks0tqhimI4BUQC+yn6sFkWhXDWRBk3pdCgt3yLrdTrtQUV6JG4N9iap0dqbqlnNqrpRyDCCJrvS6FEyz8N567c7DV+lbb1Xy7Jzo2nbzvyefqXan+8RV3UpK/cTHcTlpHWkw1wS1pnzN3UsxfUyArXJJ30nvPc92+5C1aaEeaQe/y3uCX+h+hEq/x5lxk6ZSUp8hcYWVcx33PjXsWoVr73I2ekcUM2JJ/L5C7QZyt5ncP/97PolzdeZfzdnXz66hocfpnwJ3duw2YD/fl9qB1PbsN6T7A0yZv+CB793FArYqu8v9uYJLK/XwX/WUXT5gc72/JUsbxkFJWy5BVk7k3hOvQL7UXkbixdHYYtz+9Hi4Ph6jIUqJiYmJhaq/32KbmfBu9x3H4emcUsZo3vSsyd/q2CTSaSfXs8C6k/5pYwYQf4ymh1FrznrV1f6y6R0/f4y/Ztw6Iv13lwbcNqvkPY849Mo8cL/H2dLQucft42CN8hrwOrVNL+HpqU0WMdHrCozGnEN75E7m1ZxH1UsVDE/jrImLHmM2VtRM4zcrch5ivR1/JfCYZSUUL0tKVuSdTMJH+Kw799+k5vIqpfqasEZ5K8z5N9sZ7rXS/xZ8QRLB/z8xzpzGaWL6tV7Fqkb/8DFW0Ti95SpPS0KzVNRQWIeKfeTsk7MqfA8FedHSR7SXyUzFqpYqH57Op1Ll2p67cMxfye3xe95bxdvyevLue+NKFlE79foXkLLFevckDnMmUPJsGiqS4cXSd2ZhNzv3/5mz9GpXprzpw5m9N5rl9nqC86o59O0ciVv3/bzH+sdw5j/wprl7Y6iyQ9MaUmdRur3lKneJwp2mJdHyogoplfjzdcpk8SywWRNoEUz2sdCFQvVb0taK044jW5TOeBy3tqJg6/+ve91YQ8WD2fqVGqvp2EPmt2+jlWwOhpiX30ECdeQs4jMzGiy7fex5Vd0GV/Pqqkh7wespXA9Vdf//Mc5bjZFX6xZ3usmmq+T9n7MG4ysJ9Kd7qHb6O/fbs2BFBaS8gkNn6XhOvEGqkewdCm1fcmtoF0x6dfi9VgcYqH6TTixI4uG0e0AKqezIovsTf8XhGpJnVCFOqFqfsd3C5Vrf5xQdZ6wtlAt/wGhqv2FhGr8rLWFas+boozTawnV62sLVcf1EKrar4XqUxo8Q8N1fMyqh9cJVT9yKyOhyriGhFioYqH6bXg6gykvsWopyW05Mpup5//ud/tWal5m5kxWPUT6IzRrs06Zf0avhsvPprAF1TuReT2JbX5cVZXXUV3vZThhOAnNfp3DLF9MzXvfX+aLWxjVcs3yfttz2A+8hlbuwvz5pC6i0w10Xcdjv+LhqG1nnEfl53TfhR49SBoUi8PviT+Rw+fy9/l6HkjqezTJZslrv/vdnkHIpbgrVdeR+BRp60xxMTaa9lH+LtWHkHIbyf8mofGPq6p2GmFmPaG6sy6W+Ku//GHW7oUu0fF+F6sGkH8k6s5a6xF06PYD221J6WISy8iaTvY6/Xa1cygupuhmam8l+xRyviShSSwOsUX1m1N5KUvO/F/Z29qjWHYSBROxCxlnfIdVcinlZVRdXSdUS39avb2W0bpszfKwixne41e8OB9eO3lFZSsqfuS0nfI3+OpAyg+m48n0uZgG40iosxxrEyl+g3HjmX8CWcPYdlsyniVxYCwQsVDFrD9nR5l8q1YTPiJx3LcXq+lNzf5Rx3Di5djrp1WbW0H602uWl11K3nG/4nFfR8LdaxZDOrUTftwmarai8HRqziTrS3IvjUZEHVlX4KCozOoCSjuTdAfNmpG0AEPjSy8Wqpj1JnSqez0ppmrMd5er6krNftg3ilqZsJ4WQU1/rr2WReu8CF/8HnvXi07wzO48N+KXO87n+/FUvYgJG9/IZhk/bZvlD/DVV4wZTNaG9Mlj881Jnrt2ubcfZNzHZG3C3//OVjPpNC++9mKhill/TouEJzWVpPu+p9yJJFxOwgU/cvv9SL2KxM3qllPwAcnnkZhVTwhvj4bzfynyZrKsXmysji/Q5Sfm2gsXULM1qydS9RhJl9CkCYnJ2GZNueITyN+AFQNJ2I5Wh9E4j6Tb4ssvFqqY9SJhbxo3pklj0r8ntEniZnVCdcqPrOBqGt5C0tfJRXOjaAKZg9dkT4ai9yje/pc7zhF3M7SeF/zf0jn5J75+hVMof5ux57F6KVkXMWgQqVnqsqdFzBrImPP54MFIpPdsxKYfkPVWfP39HojDvPwvCNUXZGWR2obad6k6ep0CWXiT1BTSdiKlb10yhPVMVpDwKS0PIWcYyQ9R8xkD9yW75Nc9zuqxVL+Iep7wqd1pewSLHif3Zhpt+99te1UuFZ+QeB8t94z638oH8HUwijCFksXk3UPVOJoU03weTXak8IPodfqHIjzExBbVn5qk4+nUicb7RK8xq9bx2NY5soCazqVJc3JLoqiV4fP1vAgOZLcMelSSO4fkah5sR9e5v+5xFp9C0ToZdJqcyYHNSEqg/4sMHP7fbfuLnizfj/RT+csn9DyQ7FvXrK/5N7NfZcQX5L/E5nls9yKDmkdtKx4BjIUq5rtJG02D/nTtSuqlFJ1F3hHrFBpJTg5N3iYli/L7I2/smg1/XF1/7ck523HxFzS7k5Tn66yNq3hlQ1Ye/ssfb2kSX/2VUPda1uAQdvmUiy/hmGPZYbM1ZQtyyV/PuXl5hzL9Y2YOJ/lKBkyj6Vck1YuaWrYj81dEkSgq34zm/e0wlI4dSZoZX4vxq1/Md5JeT6jSLqP4Vlas48iZ8HGdUL1DSkdK7qsTqj3w6Y8TKj3xxTr9PFfz8l/J/zWEKpmJB9DrHRJ2iYTqL4fwl28puzqX/PV81C4/hGn703oJffoxYGM+Tmf+wjUx0kt3YP5nkVDtMYP2W7H9UJ46nvnvURM/1mOLKuZbniJH0KsBO95Hp2NY/CYzd2Ze1jonsSh6NWx0EEXPMDefoo2p+df3b/+BVnxyzveXWXgko97l7fNZtfsvf8wLt+TKj6k+64fLPvEk96av33arGjD6RUZ8EHWu75DOZk/TvV5sr5BN4Vzef5/XjuWrO6IRwsGD6X4FjXf8dc9/6hc0K6L/aWx1CNtcwlapdD+B9EIS58dCFfM7IOEsclNovjGZYyjbmuIWlLy4Trmn6jrbP6V6ASX7Uj0U3b9/+3MyWHHxD1g4Z5F/B8s2oOrUX/6Yy95nyt2E8T9cdv58Ziet33bDYeQvIu/OqJ+veWIU8iWnfj0vUf0wy5ez5BwKNiLtCLp0IedyUn/loEBJO5O+Hw3H0bQdzSbRNJGcL0iqwiPxq9+fy6wsI3U/2p1A86VkJZGQH61bVcayhSz/B+VnED7+FQQqiazRbHsWh/6dLes8zEd8yuTtKHq0XuF/knQI/QaScwVLK5j3n/WrZ3EBD1zAG0mc2Yv2haTXs2Te3poXL2XU1njq1z0nB93BLv3ouyFb59Xb5yU8OItwM4vLyA7rv83FGzIhhZde4qAT2Lqc1BClF1u5KeEcaptHU2peXkDRebTcna7HceajjB7B608w7QFqS/DZL3AtJtJgHzYeSvfr2CKFTo9H06MSq0mZQfnpPH4Nk2YxJhaqP5HlUk3SR+SU0nQTGrxEwtZ163al6DCSN8F/8PGvcZeSshMtDqMDOpxW189yN4UvUn1dvbJdSehBw5tJPoWqSyi51lrOjN9pvezLnHtZhKIjqVm59volw5mey1flv/45+XQjuj5CyyPX/r58T6ZsQG1byhqT/PL6b7P8eAoGsSiV2q1othutnyDtUxLeIcARUZ/V4uYsu43SDmTdSY8BLNuc3HkkfIBdfqEDf47Uk2j+Ep2Oo+8jdHyegstIfIW0W6l9gbbvML8yvnf/gGxUzqn59Dtj3Qif3d48bvzgwSFMeyaE/F1DWNgyhC++CCFvZgil24SweP8QRo4M4ZrDQzjg8xA26B5CVlYICeeGwM/7aXpaCH0OCuHuu0NY2TKE2toQSi4O4cILQ+g6MIS0o9cu36wyhI26hDBvXggVR4Vwd00I2z/z/XUkLgthjz1CmPpYtP2vP2WFIZw9PITE1T//cf3UT7eRIYwoXXt/a2tDmJ4Zwm67hZB02/ptJ61PCD16hDDm2RAKTwlh2cAQhgwJofGeIaQMWrtsy7tD2P+8ED77LITK7UOo7hDC/NUhnH56CJ1uCaFB8s93fLkzQ+i1KoTjlofw0UchlOZHx1fRL6r/jtNCuHNICC/ft+bYb/n4ixPiV78/HJs34cPj+aobFx7FvVM5eAvu+1vusXR7i4wNKdmdvMlRMLXUMpq8H70SNNib9qspOYfkJjRsTN4Qyh6ivA0V91HxNDUT1wyt/6All0vSmST1JfMxsm+iQxltm9D6GpKms3x/luSyMIGyM6itP/9sIDljaPYy6btQeCoFrSj6njRSWX8h5yP6riTzbmtlI078iC6Hsc3eUaezk/HVb3vWEp8j8xE2uYSGm+CqtddnbE3fUxh3EivbU/kDHcy1m1Bazdwk2g4kbRAdhtK0nNq0KM/i11ROZ2UiUw+JMls36EZaMl2Oo99nLNuaRRux6jBKWxD6REEM14tnSFpO2koaTqfDXrQ7lR4tabCAipkU38vS5ZG7xsxMEvaj9AMWpNKqAr1i8+MPyI7HsM2L/HMTzn2WpNc4/SvY6eTjxg/fNoQVHUP4uDiEm2aFcMopIVx/UQjvbBLC/IlrnmJVc0JYeEYIw4eHcP0VIfzj4BB2/SiE/v1DaDQuhJS26/8UTd48hMZJIbR/O4Sddw7h3AtDeDMrhNmPRnVVXxbC4zuHcGRCnQVXvc42xoewW5cQrlkQlf9wuxAOOS6E3L98d519W4Zw6LdYJvU/5Y+HkJQUgpd+e0sq89kQBgwIoey979/nQ0eF0PJHWLh7vBXCp9us+f3feoUw4KBvlkv9W2SB3bplCB9vtKb8tE9CeK00hLPHhLDxxiFk3RRC8nbrX3/i4yHk7hVCzxDC4MEhvN04hGm31Nv+ayE8tyKEI6aE0KJFCEl7hpBycAhtHgjhws4hvNoohNMmxRbVH5ABfZhbQV4TGrTlyIqvI3y2GMu2H/PlcwzrEHVQLn+cqWlMaUeXN+i4P+3foNVbpB9L+0ySLqXLclYdQsHRLCplxQhKvqS0E9VvUjOd2gSq/0bSjaQ9TFpzsqaRsyUNjiP7dNqeRbs5dLyA3KuY8x5ffsqwu5jwCJUPE9YZo216Dz1vYWBdzKjJC1j4JhV9v70Fun3FTv9hyytx5feMNvXlkloeasr8XtRO/m3OWJOZdBnG35aQ/Ai+xz3ggPuo6MKEV5m59w9ve/ZJjBpE4gtscgA7jCOpkIV55NXzfq8Zy4pTGD6OZRMoTKfXYTRsQvfXSf07Hf/G5KcoOJNVX7HqKcpy0YSk7aJpO0nPkLgTKc+SeTGNc2n0FO2OptdkupxDxkgW7cDkE/ksn1nDmXAnxWdT25qQSkkZi7ah80tM6PHnuXv/REJ1aybN/sbi478rwueXzzK0PZ+3omy3ulelGtptR5fubD2DTV5jg8do/yltLqHmDqovo7oXS8exaDir3mHF9pRfQcVrVCdQMYyU3WmwgpxEWkyj6SwaTSFrII0PIf0aEs6nqidjc3jxJD75Bwvup/YCrBMVoem99JrGwJvXCNWi26mY9e0t0P0rdjqQ3bb+/pZK6svFNQyfxsLfUKiazqRPPics/uGy+9/H3P9Q9irr40Q+6yRG5ZFSJ1Q7jqf0bUZu/02hWvlPht/A3MkUpZN1LJsfTbPZdC1im78x8UDyBjKvKXPeJb89upHSjpQ3STmGlKvJ+CvNRtP5PJptRfujaLpDVFdBW6Z9xbtb8FYPllWysl70iICSZ5gyhcWPUjIoFqo/IFUnsRhuoxJL1ox+3RylTJqSQd75VFXhzbp+ikRWzKfmaiqeZNYNdN6G1k/S+AZyRpE7hKwhpFTQNL2uv+l9qm6k5iZqv6TydlJak9OXjHSyW5F2L7XnUHQRq2ZRdBV527PqGUY1ZFIXVg8mrBPaJeF9Ws1ix+2jIeyUs/kqk1lnUvjKt/TzHMqAw9m9mG4PoZ5QfZTOmGVscTB9tiS7nl/V0U1JHMVHJ1N15697tjq8yn6JbL7V2t/n/YeXr6DwOvbbgc718hAOGkjG6yx/nbG9qP2ehKU17zGrkpxVTD+Mlh3Z4ED+8g8K7mdJR2pvxht1I4ZbsPRWRj9J1VPM2oNmc2m7Pc1G0rAF6RuRcwZNl9YTqs9JPIGka0nKIO0qGt5Hswmkn0/JO9FE6DnPsHgyky5k9D7k3U7pQeuc93tJn0W3brT6mKxP/zx3cOyegPKbWXpu5Gi44nyq61kkVQmswIrDonDeuQm0nk6Ho+l+PR0OoP1HtJlJ6wqaplH7GI22JAwmvIF7I4srpTWZ/UidR0IrKu+heAtKF7J4FrOuYvIIFjzLl41ZvQU13xLVPXE4bd5mp5Z070LywUxcyqxdKTgD6yRkSDyEga+x+/Z0eHDtdR+mcffqaLpKx3PXEaomzP2MUYW/vlB1fJX9DmWTLb8pVPe2YdFj9O/xTaFqu4gJrzEhndrv2X7Nu8zKQjXTrqDTWfR8kJ0n8Ok+LN+e2j3WCFXFFizF8qeY+joznqTbHDbvx4CVtO4Rxe9qdy/thkRCldCNpK8nhm9E4jUkX0V2DzLGUtmA/HeZchHDMXMy40ay/Ou2brjOebyX9P51QvU22aNii+pPRc4zdJ1O3weY245Vw6gZ8e1lS7Zk/v4s+w9f3U76QjLeI7MxzRuQewipH5OcRcrFpGxG4j0kPhaJQe1R0bZXn09+cwrzKLspCoNbfiYll1CxLUX/pibX/ycygITpdDiUDtM493IGHEfVO0wZz/Mvsmwvanb75j6n9OSME2n5Aeo9pc96gtefZ8U07pocOTruczL96olS1xbstOpXye+wdp/TsbRssPZ3t8zig0eYVkvlTlzahHe24fp6adqbH84ZN/HEY2tCuHwXRZszZ3sefpjWp9HiUjbpxFUDuXVzZlUwYxWVjdb8pnYrigdH0Rim7MAHh9PsFNpdSIMsmjxKZkYUt97Z0UOjuhU1CdR2oaYl1XtSdC+FD7D8U5ZXs2o6ZSsoPgLjvrmvjU6h3UFssw9H3Uhu0z/XPRoLFZIHkfUxDYqjaAUJzb/nSTyYUpT2WxOeKHEZKcfRdCiNzifzZDIqSZtBamOSGpM8L7KsKtOoHM7yzixvRME+lH9B9dcZBo+p+7vlN+tOeJDMoTQ9jN69aXwuy06l8CUW3kbFwYSR32KBvU23b+nnGb8Z81pSmcsszFnK6rvXEfE0Wlz465+Ttp+Tvsfa3814iK82oXi/aHlSKlknrV0m7Sy6nUVidz/YWVU9jJKTmfsCBWNpGmh0LH0upVV/VqwgaYt1fjQ4cghdXfdZMpKFQ1h5Ok1upfWjNPqb/8+mE1D1OVUNqcmn6h7KZpI3m9WXs/R0CroTOmLOd+9r6lgazIgsxg5pOBqfxPfun4rDtzhu/NfDwo9eGcLuGSE0ahRCYsbvxOGxIIScnBAOvCKEoU+uGcL+6NgQThoQQp9/fP/vs25beyi/YlII558fQqv8dcq9H8KNL65d9uWkEI6/5Nc/5hdvDWHZzLX3Zf87Q8jcp165N0LY8NMQ8vJCqG24dtncrj+uvt4PhHDcqyG8M27NNr7cKoTzNgyhQ4cQEj/59dsgdWEIbQaEcOSRIQxNDmFW0Zp9uy49hF0//fO4J8STkmNiYmL+F+ifc9z4IUNCKGgePa1WdI2m0Ny8PITDWobQ59DIokl44ld+qk4KodXWIWw0M4Q77wxhRUbdVJfiEG6/PYSB00LIeeqHt7OuRfX156EzQ9imZwiGRU6FY1Z9s8wzQ0M49Llf35o4deMQpuz4zf35/K4QGjQIIenfIbyUF0LF8WuvX5kWwmOPhZDR5MfXmfF+CD1GR9ZmUahr60dCGD8+hLOuC2GvpiG0bRtCQkIIWv0yx514RgjNmoWwb24IFz8cwsez1xzbiskhjGgQwqGHhtC6TwhN9o8dPv9UlHzEghZM34V2N+AKcvak7V0UNyKhAw36sbQ9xQdQOpiKLKo+IQzz/64MP4uJuyGJF5P1KA3n0HUl7bvROp+kXqw4nOUnMOcYii+M/Hx+iJpN+WgIAz4lu96+tpxP5xnRsHvvSnI+Rr1+oQWvMb+23ijUr8jCM5l9AVmX0fayen1m97JVNWWzaTqShHq36qoqFp7AlBbUDMWAH1dn7S2UTWbBO0yaR4uNyD2F7AvpkkXiXlQfQ9oCVr5BRXvKzyb8lI7tHiS0Jn026QlRSJdOL9JrNzoeTO7JlB3Aso9ZsimTG7H8WSoejOLnx/yJSG1z3PhGjUI4fHEIT/QJYXafek/pI0JYOjGalHxd2xCO3DOETQtDaNMmhNRNQ0jo+fM+UdM/DKHxGyFsvXUIF/01hBH5IeSdFu1L5dwQnj8phJM7Rn1oSf3Xc7uDQ8jICOHz7t+0UEbeGcLdCd9ucV37eQgDrv7t+ub2fiuEG6q/f+pM/c+7y0K45KGfVmfCgBDS0kLYZUgIl+4TwthWa7ZfuGsIE14J4frrQ9i+bQjdZoeQ9lOnGT0YQkpKCF0vCmGny0O4+NUQxowJoTy17pyvCmHatBAuWh7CvluF0PKv9Szl82KL6k9FTRFlFzIhh+qNmbEtnbrQYSJtXiTzXNo9wBan02kwSwdHGYMXJbHqblZ3pvB28mdQckU0obTqQWpuo+ZewmXU1EXHTPmU5LPJnkb2WDJXkHoJ2ato0JDmx9PwCTY4is4P0SGdtJFMOZiJHXl/PyacStkr1DbAP9bjAMdQdRH338CRTzHo0DWr2r0RxWRay7JYzSvb8klzllz+252XaY+TNJLub7J7cxK/x3L9chbvtOLzl39aneEfVOcxcxtqDqOylLkD6LE/2S9GmWm2uIMmd7D0NmbXsOxLVs2jbAiFKdF0qpr9SZhC4nZRLsakZ0i4jKTHSdmG7APJTKBRES1G0nVo5Dja+XBa57DyaFY3ZeZ70TF9fBBL51Oc/+e8R2OhQk0hNecy8Vxm3srnZ9BxY7YtY5MX6I2299MW1Y9QcgqFzZiTx4KrmdeXRa8z822WNaEon9LrqehG1VvUbE6ou+FTbyJjOC1epsVDNJ1KzjhazqJ9JzqfSYuudOtIyr+RTuXHTH6NF49mzF0suorKc3/EAX5O9efcV0XX/dcWqravR8e1rlC92I+RR7Niq99QqJ4gv5qmy9il7/eP/Hw5i3e7MfGnVnpi5H4wC0tOZm6XKODePkPo1pneh9P8HTbbhbz3md6T6f2Y/RErN2JhFgvupnJQ5JibvB2p95ByAEkfknIiWRfTch+aJtB5Hza4kg0GRs62GXW5Fb8aybQRDJvNO4+zYFuq5/9579FYqNahYmIkOitzmDWO1zeh4/HRp3tvWm9C86tpcBmdetDhbDbNpmI38nem8CzKe1P5QHTBhzsJram5h9ozybiLtLHkbEFai+jCTXyE1N7kjiW9lMTVTFvE7NnR34Uf8MnNLCylYEeqmvyXgpzMfwLD+vJqA5JKsU5C0/fOZfg2vHcRBYf89udj9RBeL6ZlMkfOomuXtdevas47E7i1hrnbYcTPV3f5hiy6hrff4KsXaN2Tvm3ZaAK9+pN+Ep0vp80INj89cgwtmRgJWCVsQ8KsKIJsQjkJI+rO9U00uoisWhq8QPrFFKezeAYLrmTscEYnsWwYi3cjvwc1Z/6578tYqNa1Ju6P0k2Vixz68moo6E3R7aQuIDmXzH3JqSU7h9THSaxzQGyRRUmg4jiq+xN2q5tC8wW1A6g5lIwC0iaS0Y/El6NUVKERGpFxHuGgaK5hURFLdmfabcy6malTozhKIRnD/suDS2DWIyzNp/akKCnEutmmlk1g0nSWv/L7OB9Vl0ezMqcso/hbJuFWprHgMWb0pnLEz3wtHE8ZyjagqAH5x+ENWjxBu+NJaUDDg8mtczoNJ1F5Es2epepRwiEosSaM8wEkjCKlC7lbkl5D5o1U30DhKIp2Y8kJTD6AiR+x6k6KJmFSfF/GQvUDlCUy/7gomN7kOWRcSM4RNJhDu4a07EyrbJp2o0F7Uh6Pwr8k50cB9pKejyYFp1TUWWyTo+gGS85ndQWrd6BkY1a1oWAkK8dTuBvz0sj/hMK3KbuXslLCkJ9+POFTyj7iLy9zyXVs/Bq5dZmX77yRF69jwpDf33n44EtSG9L/NXat29+pzzM1m0emUdX1l62//GyWjKLwCaas5tnhNBxKy+1pVULrF8l+gobHkZRE7dPUNqPmoWgKTXUitSOoGU9NCtX3UFFDQVfmn8mcLSjsy6qtWXVpNLm8ekp8//0JhWrHHekzmbLrSX2C1E35bAwjv9e5oDah7qmKfGhN2mdk/z3Kc7f6WMpejDrQazYka1NSdyOtkvAKLq+zgOr6emrup7Zb5PaQ34gVe1L4KUuPYfk0ljxP/qksOIny2wj/+pmb4T/UZPLhZPIeouqUNatm9mfuVFY+//s7e3mroygH6UezeZ21t/AWZqcw+0E8+Atb2hdFVnb566zEki9ocCatO1F4OlX/oFEParqSeUDUL1j7DFWX1k2heSGa71d1A1UfUvIhxTUsS2T6tsyaQcmOlA0XR+78c3P9HAZ/zj5duGAOaSdwVl2ahOPG/6JD7XtGETO//iQO/f3FJI8//3uf2D3hD0nRdtzXljPOofpdUlZFMQp+BVYStq23vF/82IiJiYXqW3lmEScWMuo5UrM47nKefhA5v3jVn35/bKSYmJhYqOqYVs20VRgaLQ99JT79vwINsWG95QKMjZslJhaqmN8T/esSdtYRPvL/AwsxMetLHOYl5hcl61L692dQFwaV0X8lmdejZ9w2MbFFFfM7IfuySKiaLiOhjOUrWXwdpVsj9hOKiS2qmN8Djeax8840GMLm3Rk0ioa3Yru4bWJioYr5nZDyCC1akNKHxn+jyUpS/+0bmXJiYuJXv59iEQwhO5uk8dFy/qb4kMbpJOfhXkofiKa7NJpGygUk1iVYCG8RRkXhWFYdSeYmZL9Kap0v/IoPqF1B4l/I+pYzUb4rlW9hd1qMqPvujCixaWE+jbqTvArHUtqUVfdS0xjtSexKi4W0uopGD5Ba9/vCUorvY87rJPSncRoNW9FscLS+Oo2qS5ixNytHU3Vk3VUyjKYP0uDftHmF9NPr9udx8u5gTmYU5aG2+Nvbcei+tFpI0hyav02Dg6gZSdkcFvYn/y7cHa3PPYMubcl8jaRjo98vKGTZBZQ/Q8KA6LgSmmAfEjamfTMSr6P6ZlbOYGVzWi4muy6BZ7ibxS1YfQarj4++yxxK1oa0u4oG+5K4fZSzL2848++lYhLVG3zHEz6LrDY0O572Z0ff1W5G+QLmDGXljSSPIOvdKOEsZDxIbnnd/rxIwRusXETHN6K5nwlHUvMiS+pSdNUeRWUTlvaP78NYqH6A1MlkNiJ5TLRc1BijyMoiZRAJexJ6kPQR6eeQNpCkW+outCMjkakZTNHHpB1N1kdk7FW3rQRqtiLpQbJe/mbd4Tg8RPgbuXW/SfwPiindkYzZpO5O6EPNJyTuE0VskBmNtKX/m0YLaX4K6S3rjieQPJuUkSQcSlYmjc6hxcHR+qrXqbyShXeReFzdjiSQsB1pPckupdlMMuvKly6kfARJOXgJf/n2dlzWhtIxZN5G+tVkd6PmboonkbcUddEBEncnNZ9G48j5BylXRN+v2pH8x6mcT+KZkYglnoaBJF5C87Yk5lJ5ONV7U/wcDctp+FXduTic1WdTukO9i/9O0pfTKJ2mW5J4EJULqfiSpOdIfOB7LowXSf6S7CtpdmD0Vc1DlPZnyS4kNCIxm9RisuqiUGRdTONH6vbnWGofoOhqGl0VTXBP/CtVt1N4Wd32HiSpZXwPxkK1HgwcTt9OJOxN2ya804XUpRy8H8XjaNyf2W/x4kbs+QEFA1n1HMl3k/sy2UkYy6jt6L8TG+5G24/JaMvjAynZmdSDaJBOzVO4LIpokDiNigNYdRbV5/DPXSg5n7l7s/Athm3BoKtIuYyyrZlyCsNGRREfkvuzT28O6ULGAopOYPSB5LxPv8eiut/YguYf0vtmOp7F+M5UDqP9hrS9geOX82Q5Iyex8DMOHMbeF9C4CatvZdTpNDucjL1Jvo0nN4ySoBZ+Rztu+gEdC0ibTp8+tH6D7reT0iuKfnDNxmR8QfsqDp1F842YOoCSM2gyh1NeYOTxTEngg5YMnkf2FSRdT+0ZJE+g/BPSltH7Dj48mdwTooSfq4cyoITFFcx8hvv2p+FE9tqCDXJpdg5fLiRhWxpeRM8XeP95xr7BiN0ofKvegZxP0nVR+270MVu0IO+vzCylUW867EXtLtw/lYq+NH2DXS6gdou61FkHsfRqqs8nYUcyFrHVFYweR20HcgfQ+mESh1JwMZPbMiSP0NX/p+CKhSrmmyb+FBJ7Uv0+6feSlknaPuTksDKNpHyy/kH26CgBZXEmVROouSCylJLa48YokmPjbmTcQfIj0d9GC8lIJeVGSqpJOZjEUwjPUbovTVuQ9DJV08l8l7KOZMyl4X9o2JDUHUnaPrLsPCnKCXg3iRvR+lqSH6BgNEsfx3uRoKV9gvI1M8bKN2P1q5R3JCwlf0UUoqbrljTbl6YbUTib9g9R+3cKXmPJBlRfROklURTMtBfWwzI9n4ITSNyJkgGUPcncMWS0ITeXJufTMImWN5G5hFnPsSqV6l1IqmTZLHL+Q/N2UXSC3MZUTaJ8A2qKqTiTmj1J68/iXUhYzvJJ0cTgpO2Z8TYZh9Pw3zS6jTbTabA/CQ8xYwYlB5H4LBYw/3kaHUDTh8idQWFSvethftQV0G4KuS9SeAdLp1DckerhJNxBuwTa7kpxAWnPk1XNgnuoep/qk6itjaLDZn9Jg4FMvYaSl6N1FV9GbZH2JSmVdYlG9/X/GZtjoYr5VjKuJOUBSs6j5YY060DWdHpsypjZdPuMzifRNZ++7cjvQMEx1A6s63s4jcSn2AT9TiG3HWlv0KaSTR+NBCT04+klUYTPlN2o3p2F+7HT3dGrY2l32o6KYhO1yaP1KFYeSOPR1HQnZSqJl0dlE1uQ/iR77004nk9vYMy4yDl88TsU3E5OOjXXUlPDoidZ3oKCk8i+mmmPsOgGLr+EbQ8h4SLSm3LEoYy+n0lXMKY77c9h9WKStoqswR+i6WAm1FByDfNuxVe8mE3zD7i+F5v9k25NabUp7YdxRRkdL4nmN1XtzZy57H8+nUfyVga9NmPU4SwYQ+W9TD+E7GakPcjEDek/mGHdyXuebcbyRC/ObEi/m9jk32xRTOvW5D/Nrcew2bYkF1P1NB88y4VnkPMBS9qxsL7gPknXjTj4Kkpy+GIoH0wk+wFWD6T8n1yQxIGTWLgDc1LpcB+vvUt+JabRp5Ln09noOfrdx9Vns3U/yoex8nwazaX1QzQaS+ZWJJ5Fzcn4LBaqmO8h7UsaNybvbkorqB7FlC7M34AGL5PZgMREViXgXHJLyG1P+/bMGcfyBWw0jNJHoz6umrnkd6ailsyjouUp77LJP2hcTdkghi2OrJbUBdE+jB5N3n9IPoOUo8nIYF4NLZfR/AU8Wm+Hp1LTjxlPktCQ7iNYNI6KCaQeTvUOlJdT1o/ky6l+NLIqWveiMZqfw8yZ9HyK1g1o9yzFxeSnkfoS+5/ClANI2JJwOtWXs7AFrVfTrl6ImJKPaP4Y6vpo+nxB0q40raLJEWT2j/qXJrxEo3doPZLEjXnhBY68kOJdSBxGix2YO4vCPKqvp127qMN/3l0U3McBo6huSp/xpF/Kl5m03pSt/kHxJ3QbTFUWZW8w/wYa7kjHpcy9goWjo1fRpZeRvj2ZfUh4jpI00q+j3WBcXG8UM4WOHSMLO/90ClpxQHemNqLHI+QU8dJLHL4pCUujjvuVK2m1F52n06IX815j66dotILFh/PXU2nxDuXXUv4vBgbGD6VsFrmz4vuP2D3hRwnV8rspHUHBKKZMYX5PJr/M3PZrhCqcR25pJFLt21Mwnml7kplJySMs+pIZTzF2bBQ4LfmoSEymTKHlLnTtSodBLF5M1YUkzSdhWCRUs25gyRmsKK4TqhSql9Fi3VevqZG1NP0pEgfRvSGLFlEyIbI+qr9aI1Rll1GeGQnV0l40uo4BIRKqzCejMLvtDo6EamUaqQPZ78JoMCFtS5JPp2oWCxfSehV9nlvz6XgazR9fs1t9vmDLXdhsM3odybaX0XcrJkyg0bO0OoKkgZFQHTWAAbvQrYgddqDRbArfpeCySKgqL2H+3ay6n10+pXMDth/HDpdEbd1qU7Y8j51ui4Roy60ioZp3QPTa3LGYJVcwsypav+QyVmRT1ZuEhEio0q6j3TrJM1JSI6GqGk/+HhR044AD6NiIzR9mzx6RUCUUk7CMgjqhar0XAzdkzzqP/G2epG1nFh3OX/9Kv7n0/xeb3xkFM1x+MnkXEtrE918sVOvBqjIqVkSvCUsOorScgq+YOJHKTlG+tQVXsHo1i94g9bUoVG1hIYnHUL6KVdexYgVzk5m7A/NHM28esy9n9qMsbswGG1CxB/n3RkPo3bqxfBPmnMGc5Kj8or7MO5+5tVF987ambAsy8liyhKrudTudE91sfY6OhGz8TpF3+PZvsGkDNphKWhrtutAzk76v0aFDJKR5Z5D3CvPnUzyUmsewdSSkDT4l40NGvs+HO/JZB8bsyedjGTCAHkfR/v6oz6ldCzrcT7OJVFSwuAGrb2TpRXz6KSM/Z9VrlL8Q7XvJo5RcTsWzkQivfJdRrRh6Hh9+SJO2LB8a9fVkZUWDDmmjSdqYZYP5+D9M2of5VVEo58RbWfgeE3szalQ0gpqfxZLWFBRQPJzFj7FkatTn1PAjMnZbc94Ld6Tsvm9eDwnvRPXPPT8KmNj0CMaMYXgzPtuGJf3p1YuV57L4BZZeH4WVtiP5BzBml2h/WuSQmcPiAZGV9vEhDB/D5xtScjYLB7Py4/j++xO++u16MH1ei8Z4Fny2vhE+V5VSsTISqsUHU/ol5V+RN5G0ziz9OAop3PBQFr5Bt21o8BUTO5BwNOWrWX07K7ZlZQort4+G6VPPjW7M4sfIOL1OqHZh5QDKT4+EKm8gpc9TFCKhSulD+vmk1dByNfO3prwdGc1ZspKqHqJ4MnVC1fcYpr3BhL0YfDJ97yHxBopySNuQ9l3ouoDc1yLR+eoRlp9O7mDm70bRUKpLCedEQtUvgYSJjBzGR8/Wa6QhHD+ADY4k6QBqc2nXiMzbSd2YCpFQrbqBosP5dAsSK8lZSdK8SKjaPkrx5ZHvWMap5L/HZ6cwc240QrbfYXz1XpR0o90N0Stn6knUPMnSIxl5DxvuS9fKSKiSbmVhLTMvoHQb9jiO/DEsa03TURQNZ1FgyXNk96Hhh3gAH0WHVLADGffhtHWe7O9GQjXnfDIOpMmRa4SqaBu6bRgJ1YptWHw3y5IpOpu0HVnZiSldGfU3zunNilwWb7RGqPLPp81RFJ/FoqNI/FgUcz3mzyRUbz9D49144j6O/Zgbr+aU7X5IqJb8nRXLo6duWU3kH5M2luoksnuQ9A9ST4isgLm30WsYbY7mhcOZH2i5kA07MW4cGb1peE/0ildzL+VdmT6bcCybbMWSeZT3pPZjepYx6myqGpFaQqdO1FxD6QDKBjPxS3qOIWcuSw9l8RDsRVIm1Zm8PIA9/sl2pWz4LgXP8dCGDLyGgQ+yVW/6FzPmJj4bzsFVbHQ7Gwyn+3G8W0zZrpTsTuFdVN9K7b+wB+U346hvtlV5I2onRAkxGl5G5QKSaiLfrhW3kH8tSbexohlZc6mpJmEHyjeiqpyqv1BTHo3qVW5FVQOqL4xyEnqDmgJqXkN7yg+h/D+UprDyFEqzov7DwpWRNbjgUJZsS969kdNtzalUbk9FarS96oNJ2oDMvWmfFL2mqyDrbRoOomNX8q9i2XMkfUzi0ehM8qaEA6huSHVzqvelfJMoH2T151TlkHA51W9F9VTcyLKTyPwoClO8YiD+Vq/R+pN4LInLSexEwhUkXhFtI6E0Fqg/oVCljKXZMpbs+mMifJZ/TsUxJCdTE3AYib1JeIDkHJI7k3J/dHOVbBhdcBm1FJ9J6W2kV9Ewi5mzI2fGlJvJup6qayidRPF1kftBgz1YeANFBYS7yMmn+Mno1StxF7KaUnUb5X+lpgsFw2m5Ksr9V1ZAeQbJMyNrqnYOi4+nciRtW9CillEnMfc9ui0jtTNNm9JgGIWHMWM5rZ4l5Ty6BLp0onoy1R9R/R7VV1ObTugWuTbUfker1RxG9YFUHB4JTG2bOjcIVF5F5QySZlJ5E+lTCffin9QGQjFhJK4mYRC1TSMnzdp/Ec5HL8JKwrhIqGraUXsINRVU3Ep1d6pLqJpP6aeU/SvyYq/oGlkmtWOpHUzt84RSai8l4TqSTyHz4ahfSybZt9PkILJGsbo55YNI3JSEr0joR+JUwqWRp3vtB4QHqH01SuseXoy8yRMuJ6yIZibUDKXiPJKfpPoLKs9Y51WyIcYjD51IOApPRn8TluKFWKT+ZEKV+SLD6wJtfvnm+kb4zD+Q+X9n9j/Z4xk+fJ6EM/nrMYxOpfO7ZJWzqCtdb6TN/OjCnHAWX7xAnzLa70htCd2m0m4SDTqT9ASr8sk7jcot6Nec9y9h4SjSB3PUK6w8jcTPyT6RRh9TNJFV50XJIEY3Zbu+zGvLyE+47jpqTmfR/eRlRtlz3u7A/GQWXc6mz7H/ySwJXHcsuUMILSgZSYu9o871T2aRcRU9RpOaSlIe5TewOp8jHmLS5uR8xb8aRo6t5cdQexfhQp5vwu4jaPk5bdtSjPmVNMpgywxqe1I7jYTayI8olEcjleFaas+iyz50/IBF/2DqM2x0K3+fFWWi3voMPn+dfm9RvpCpq6k5MUr5VVu3PUsIT1JzMZWV0af6KGoWYPs15VKb0yuTdk1ptgcF15M/i3FbseBElm5Cg6voOo3qsdF0nX+dTdpKklpTczjTp7NvY5a8xfzzGDyL2pfo1Y5N/sYt/ThoS7Lms/w5qqvrfd6N9q0on1ZN2Ov6qD/z/Ouo2BnH06wZm/QmJ/ZK/zMKVcEQJtT9P/SVOMJnTEwsVH8YQhuWf8DnIzh2EWlDqLmPfd7hy+fo/iydz2bmAHbelykv8MWiaEh6/ONRaJPNTiOhkF13ZNq1zB1Pm3S2SY0cNCsvoWBfpl3GrFMiE6+6mgP2I+EfVD3O/I1Y1pRNh9D1M9L3ZdttuO9xRr3LtjnMuzTyO2o1OupPyb2bzstJWkpyH8YEenzKQTey+mZ6z2RFa8afFI1K2oU3ynlvfOQS0Hpx5KYw4x9RB/Hka5h5APM3pddcChtS04uk3uT14rUTKVyn76rvCA6sYsNR0TBGWWe8Gq3LHkmDVyL3gEYvsHQU6bU8ewB778yAp2h2Mm9mMmoyg3cl/XUeHsWel9H5HUr+tXZ9GXvQaxCNDiTlojXfNyqk02YUXUDTx5l0JftuzPJPufJeDm0ezQgouI9lz0YRlJdfQX4evV7n+bdo/zxdvuChh/jHbtFI3sy/ctddJN/HF+/wcSfOGULaoWReTeeXaXQIGYdQeBx5h0Z9V0PPZNMX+MvR/G1L+m9EzbmUrGDs9VS8RNNjSRwd34PE7gnrRWVXVp9O6R2kDCT5CUrPiRJ5Fl9KZQPSro78iQpvZvUe0e9Ku1E8ndK/R+4AVR0pep382yL3gurh1M6LXkny8yn/O1WbRv05K0+hqphwK7UFFJzO6gcpuY2Km6LO+/L5JF5I9oho+1lNSLsw8ulKTCR9C8LhlH5B0ZlkX0NWIsmdovpWv0LuvGiEsfw8Um8m+2lyHoliRlUNonJDai9n0fFkbUuTdqSPpugsaoeTmElK+O62q2kY+WClH0lVH8qTIh+valQMpvoNUq+m5GCWTmZ5n6hfq91bJPWjcv9oBLPDkMhNZMW4uk7q9iQ/Q/JNlJTgHCoepfyt6LW1sk/UllULo/KVjUlcFCWELS1l4VBKRpNcQufOUeSH0kwqPovaNiODlNejuhMSyB0bTS5O6hAtL7mLihk03aHu3O5L8gIavUnmdSzZjLxpVIa6Pqs+VL8WTaqGlQ+xvA2F20f1Z+9aV+/MaNJ24sKo36p2A8Jl6pJKxhZVzPew6hQmFLCwCQ2HUXkac4+JnBxnHUrz12lyOwXnMDWH8XXyP/9UZlTR6pOo36HgSKZOY+ybrBxH1yPJfTTqsxg9mmUbUvhw1Dcy8i80f4iG86h8gPH78dV1NHqdZs/TZguWPENyEl3GR9tP25Kl57J6SVR/s5dYeBrzTqRsAoMOptPzZB/L6JG4iF4nsO0LvHhC5LHd6D5yFpD5GYWLyL+F6iG80JddhpF+PVNHM/ww2pxF7nQaVH3PYMRGzLyWVk0pHMLyiykrIzGwcktSOtD0duZmMHEImUM4uoZDuzPqMlbV0CqJo69h7BKmjKBoTjTSmVVN0tPMCdQex7IDaNiBxmexaggFT1H8FIkPs2o5qRWk7xSNCo7emD2PosdQTjiBt5MpaE/VCHq9QKM2lFexcno0UNLz5CjKROpRJKXz1kf0u5etcxg3gEmTaf4cfe+j9f3c24CSXDJ3p9Xl1A6h7Nw1evPJXAr3JrWIEz5g6uesbkPJnTS/m5IsXEDVNMJ76BoLVcwPUNqXxc8yYltqd49GwtJKWTKWiQdR3ZEGb5B1LWPPYX5dTKay25jSi4QqGo8keylfJjH7A4pmkzMkGm2qXMHYJMrvREuq92D8eDJ2IvsvVCUwtob5j5B9aeQNvWp01Gk/9WKWtOGzz6howsqeFE0ncQlJF1Dbj4a7k7UJhZP4cncqvmLyZKq2Z+UVtO5A9RLCDBbsTdUt0f7Xnsns5hTk88UN0QBA4zOiofqmW5J2GJU1zCthRTJVmd9su+LLomOpTWT5Zaz+JLKAqhOYfDZLX6FkBuXdmHkRyUt4803a1lI1OorpVH4HIz5nwm0sqKH4ML48g/LrqPqUsDG1OdGoae0j0bDJ4gtYPJzVw0lYxbgvo5A6FXtT+gRz32FkWxagdWdSZ5H7ajSKWFbG0ieYf3k0z2/MGAqOIiOdUBvt//gnKTyQ1dOwOhrNrZjIrD0YuyUTz6G2CbknkjCZxAaRJ/vShriR0J7qIynfksLzKDmdpH1oeiQz20avi2m3s/qYOovq1lioYn5IqPqw+BZG9CHtXGrSqVrN4nej+XorOtLwY3zMvGtZvhiHR+4JUw5jZX+a1gXTm9+FlR+wdFXkdJg2mJolzCmh7ITIyqm+lfGPsnoZabtQc1zkYFhQQ/llzL0BSyjanrwKio+LhEoTCntS+jjJ00m/k1ZTadAkqrtwMrNOZuGbkVAtP4qVQ+hwI03+RfV0Fg1h2aGUboa/sqyagvf44lCKnqDN7vQuoelqHBZFDZh3Iit8u1CVXMb43mQWY1pkZZSUROnRJ59D9ruYQWFb5l9MzfmUvMk2HckZHcWjKsdnnzNla1aJoiWMPYPEgigGVNmJ1KaxYBCFj5KzJLJGFm8UeaDD+LEkNaZmb4rmMe9dSk6i2Y5sdB/tZ5H+GrV7RkI19XGW9GZZnVAlnUlCOuVhjVAtfpAVT7DhWFJvofIhZp7LmCeZchspHWmyLWU3oCHFB7O8Y51QdaB6Q8qyo1G/0tPJbkCTkXxyCjv1JHUfFk9HWnwPxkK1HlSPoPgNJv6DhCewA7VDKb2Gqg/I34bkjLpXnQKqrqz74REs/Q/5N5CSQRhLxW1UPxLFSMo/iIT7MIiy96mqS3ZQmxdFNVi5gMSMunAsXaPJxKVnMe+xuv6foVHokJoJjG1Qt6/NqF2E01nWj7TjSXynbrubUnZTNMew8j3yOlNSyaQMUmZGZSo+oXI4tTfW9c9tS9We1L7H7AdZ9BRfDSOxum4fXqHsrxSeFgUIXJey4cy+jsSLkUrtjlQMihw957xP0t1127mF8utxFPMf4/V7SRpFwol1grczJcdQvZJwA5MbRJEdQh617andgbw9WDWUpC3qjiU7cieAaSfh4agDvPodahewqhPF/VlRGUW0SLiP0DNyeyg+iaqvqGzEpGYkHIwW1A6I2g+WbUPRR0yts6DDK9TMpqgNlROp6krVZaz8+nx1jPzn/v+6ymZlKWObMP0Esm+kRzIb96XdrSzYmFHPxvcfUYy2GMeN5/5+cTvE/Fq0up5Oef6vvfsL3bOs4zj+1u1XzLmtfr85Np1Tf7aZf5bmEq1ZWxoTTWSK2T+lFcuIJEkzjZGjWWQkFmUHDSzBo4qMMspRDYxYSWVU6CjXrEjZJBEy98dt2MEtdVAdBM+zE1+vo+fo+XBfz3NdXPd9X9f36rR59duv1SM31Oz31mu+WW/fX2c+Uts31r1/qx8t/e/fMfuWhz/w3O0rNptRvURM3bjt+oNXffhpLcHhsvdT9ehb69FLh1vfmRfV80fVLzfVr44aCvq9cNHwLGve/6hDNedNf1ltKyAALyWvfHMtv2OovD7/QE3fNcawm2rx+mpHLf9WzZoYU85JdcZkTe2qmZ+os/bUkYvHEzWxqV67o2ZcW3PeOGzZ7uoxzK0/XRNz68iddea3a+KImr2yTv9i/6qrMCoLv/RiM26sJS8eI7H0tpo8Wn/5TzM0wdibeEbdPH94x7N8e122uybvrIO31O4fjz5v1a665nM195119El15RX14P2jz1nz1+El+oqn6oJzatf8Wru/Hto6+qzrp+qZBXXx1+vidbV/RU0fVzvuHuEgta7uOr+2PlbvPrf2XVpXfKFWf7n2vG9YY7/9ydFkXTBR6/bU739Sly+t13+sZjxQr/tgXbiptm2uQ5/Xd/7NyvSxO3So7ri7Fn+0dq+onbfWD2fVGSePPmvhZC18qp5YW0vvrO/dUAfOHs91vWHDsKHk+JuGNdnbThhOyRuH/ZfXhVuGozP+8ar6wao67eHRZjx9T/107fB58vnaerBmrqx9D9aWb9T0z0aXtfVAPftc/fn4uv/82vuhOvHY+v53aueaobYFBqrDO6N6vD75nnpoWe1cW1Nvq1O+W38cw+3fy/5esxfUue+vQ9fV9GfqiLeM57p2n1f3rR9WPrWspjbUviXjyVrwlfrs2bXkiXr5mlr2WP3pnvH9Zntvq0W3DgtTJnbW9L315KrR5yzZXutPrS3X1eOn1yk31jEb6plf6Dcc7oHqI7Xy9lpdLfpNnTO7LtnYWCsNHffz4byUd91cJywa03X9od7xuzr12Zq/ra7ZUnMeGE/WokO17qvDZqVXT9SV+2vGeaPPOfaF4RnV3Pvq6o/XMfPq5M111YHhcPpROnFuvWLT8L9YXc36dV12bZ11iT4DAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/69/AvuvJKHUn1KlAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE3LTAzLTI0VDE5OjM0OjA3KzAwOjAw888oDQAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxNy0wMy0yNFQxOTozNDowNyswMDowMIKSkLEAAAAgdEVYdHBkZjpIaVJlc0JvdW5kaW5nQm94ADU5NXg4NDIrMCswOx9VXAAAABR0RVh0cGRmOlZlcnNpb24AUERGLTEuMyBTBqy/AAAAAElFTkSuQmCC' id='Ch6.F1.g2' class='ltx_graphics ltx_centering' width='298' height='421' alt=''></td>+<td class='ltx_subgraphics'><img src='data:image/png;base64,b'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'' id='Ch6.F1.g2' class='ltx_graphics ltx_centering' width='298' height='421' alt='The '></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>
Line 6213: Line 7183:
 </div> </div>
 <div id='Thmtheorem30.p2' class='ltx_para'> <div id='Thmtheorem30.p2' class='ltx_para'>
-<ol id='Ch6.I2' class='ltx_enumerate'> +<ol id='Ch6.S2.I1' class='ltx_enumerate'> 
-<li id='Ch6.I2.i1' class='ltx_item' style='list-style-type:none;'> +<li id='Ch6.S2.I1.i1' class='ltx_item' style='list-style-type:none;'> 
-<span class='ltx_tag ltx_tag_enumerate'>1.</span>  +<span class='ltx_tag ltx_tag_item'>1.</span>  
-<div id='Ch6.I2.i1.p1' class='ltx_para'>+<div id='Ch6.S2.I1.i1.p1' class='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
Line 6222: Line 7192:
 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.I1' class='ltx_itemize'> +<ul id='Ch6.S2.I1.i1.I1' class='ltx_itemize'> 
-<li id='Ch6.I2.I1.i1' class='ltx_item' style='list-style-type:none;'> +<li id='Ch6.S2.I1.i1.I1.i1' class='ltx_item' style='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_item'></span>  
-<div id='Ch6.I2.I1.i1.p1' class='ltx_para'> +<div id='Ch6.S2.I1.i1.I1.i1.p1' class='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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>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.i2' class='ltx_item' style='list-style-type:none;'> +<li id='Ch6.S2.I1.i1.I1.i2' class='ltx_item' style='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_item'></span>  
-<div id='Ch6.I2.I1.i2.p1' class='ltx_para'> +<div id='Ch6.S2.I1.i1.I1.i2.p1' class='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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>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.m1' class='ltx_Math' alttext='\mathbb{C}^{2}' display='inline'><msup><mi>ℂ</mi><mn>2</mn></msup></math>.</p>+<math id='Ch6.S2.I1.i1.I1.i2.p1.m1' class='ltx_Math' alttext='\mathbb{C}^{2}' display='inline'><msup><mi>ℂ</mi><mn>2</mn></msup></math>.</p>
 </div> </div>
 </li> </li>
Line 6241: Line 7211:
 </div> </div>
 </li> </li>
-<li id='Ch6.I2.i2' class='ltx_item' style='list-style-type:none;'> +<li id='Ch6.S2.I1.i2' class='ltx_item' style='list-style-type:none;'> 
-<span class='ltx_tag ltx_tag_enumerate'>2.</span>  +<span class='ltx_tag ltx_tag_item'>2.</span>  
-<div id='Ch6.I2.i2.p1' class='ltx_para'>+<div id='Ch6.S2.I1.i2.p1' class='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.m1' class='ltx_Math' alttext='\mathbb{C}^{2}' display='inline'><msup><mi>ℂ</mi><mn>2</mn></msup></math> yields an+clear whether the chosen fraction of <math id='Ch6.S2.I1.i2.p1.m1' class='ltx_Math' alttext='\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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>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.p2' class='ltx_para'>+<div id='Ch6.S2.I1.i2.p2' class='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
Line 6258: Line 7228:
 accordingly.</p> accordingly.</p>
 </div> </div>
-<div id='Ch6.I2.i2.p3' class='ltx_para'> +<div id='Ch6.S2.I1.i2.p3' class='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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>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.i3' class='ltx_item' style='list-style-type:none;'> +<li id='Ch6.S2.I1.i3' class='ltx_item' style='list-style-type:none;'> 
-<span class='ltx_tag ltx_tag_enumerate'>3.</span>  +<span class='ltx_tag ltx_tag_item'>3.</span>  
-<div id='Ch6.I2.i3.p1' class='ltx_para'> +<div id='Ch6.S2.I1.i3.p1' class='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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>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.p2' class='ltx_para'>+<div id='Ch6.S2.I1.i3.p2' class='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.i4' class='ltx_item' style='list-style-type:none;'> +<li id='Ch6.S2.I1.i4' class='ltx_item' style='list-style-type:none;'> 
-<span class='ltx_tag ltx_tag_enumerate'>4.</span>  +<span class='ltx_tag ltx_tag_item'>4.</span>  
-<div id='Ch6.I2.i4.p1' class='ltx_para'>+<div id='Ch6.S2.I1.i4.p1' class='ltx_para'>
 <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 <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.i5' class='ltx_item' style='list-style-type:none;'> +<li id='Ch6.S2.I1.i5' class='ltx_item' style='list-style-type:none;'> 
-<span class='ltx_tag ltx_tag_enumerate'>5.</span>  +<span class='ltx_tag ltx_tag_item'>5.</span>  
-<div id='Ch6.I2.i5.p1' class='ltx_para'>+<div id='Ch6.S2.I1.i5.p1' class='ltx_para'>
 <p class='ltx_p'>Try using the compiler option <span class='ltx_text ltx_font_typewriter'>-t cuda</span> to experiment with graphics <p class='ltx_p'>Try using the compiler option <span class='ltx_text ltx_font_typewriter'>-t cuda</span> to experiment with graphics
 cards!</p> cards!</p>
 </div> </div>
 </li> </li>
-<li id='Ch6.I2.i6' class='ltx_item' style='list-style-type:none;'> +<li id='Ch6.S2.I1.i6' class='ltx_item' style='list-style-type:none;'> 
-<span class='ltx_tag ltx_tag_enumerate'>6.</span>  +<span class='ltx_tag ltx_tag_item'>6.</span>  
-<div id='Ch6.I2.i6.p1' class='ltx_para'>+<div id='Ch6.S2.I1.i6.p1' class='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>
Line 6305: Line 7275:
 <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 ltx_font_italic'>normalized iteration counts</em>. A normalized iteration count for a point in
 the complex plane <math id='Thmtheorem31.p1.m1' class='ltx_Math' alttext='z' display='inline'><mi>z</mi></math> is computed by using the iteration count <math id='Thmtheorem31.p1.m2' class='ltx_Math' alttext='t' display='inline'><mi>t</mi></math> and the value the complex plane <math id='Thmtheorem31.p1.m1' class='ltx_Math' alttext='z' display='inline'><mi>z</mi></math> is computed by using the iteration count <math id='Thmtheorem31.p1.m2' class='ltx_Math' alttext='t' display='inline'><mi>t</mi></math> and the value
 at that position <math id='Thmtheorem31.p1.m3' class='ltx_Math' alttext='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.m3' class='ltx_Math' alttext='z_{t}' display='inline'><msub><mi>z</mi><mi>t</mi></msub></math> during the final iteration. Using these two values, the
Line 6312: Line 7282:
 </div> </div>
 <div id='Thmtheorem31.p2' class='ltx_para'> <div id='Thmtheorem31.p2' class='ltx_para'>
-<ol id='Ch6.I3' class='ltx_enumerate'> +<ol id='Ch6.S2.I2' class='ltx_enumerate'> 
-<li id='Ch6.I3.i1' class='ltx_item' style='list-style-type:none;'> +<li id='Ch6.S2.I2.i1' class='ltx_item' style='list-style-type:none;'> 
-<span class='ltx_tag ltx_tag_enumerate'>1.</span>  +<span class='ltx_tag ltx_tag_item'>1.</span>  
-<div id='Ch6.I3.i1.p1' class='ltx_para'>+<div id='Ch6.S2.I2.i1.p1' class='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.I1' class='ltx_itemize'> +<ul id='Ch6.S2.I2.i1.I1' class='ltx_itemize'> 
-<li id='Ch6.I3.I1.i1' class='ltx_item' style='list-style-type:none;'> +<li id='Ch6.S2.I2.i1.I1.i1' class='ltx_item' style='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_item'></span>  
-<div id='Ch6.I3.I1.i1.p1' class='ltx_para'> +<div id='Ch6.S2.I2.i1.I1.i1.p1' class='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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>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.p2' class='ltx_para'> +<div id='Ch6.S2.I2.i1.I1.i1.p2' class='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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>escapeValue</span>.</p>
 </div> </div>
 </li> </li>
-<li id='Ch6.I3.I1.i2' class='ltx_item' style='list-style-type:none;'> +<li id='Ch6.S2.I2.i1.I1.i2' class='ltx_item' style='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_item'></span>  
-<div id='Ch6.I3.I1.i2.p1' class='ltx_para'> +<div id='Ch6.S2.I2.i1.I1.i2.p1' class='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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>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.m1' class='ltx_Math' alttext='0\leq x<360' display='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.S2.I2.i1.I1.i2.p1.m1' class='ltx_Math' alttext='0\leq x<360' display='inline'><mrow><mn>0</mn><mo>≤</mo><mi>x</mi><mo><</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.p2' class='ltx_para'> +<div id='Ch6.S2.I2.i1.I1.i2.p2' class='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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>Hsb2Rgb</span> that converts a HSB color description into
 its corresponding RGB representation.</p> its corresponding RGB representation.</p>
 </div> </div>
Line 6364: Line 7334:
 </div> </div>
 <div id='Thmtheorem32.p2' class='ltx_para'> <div id='Thmtheorem32.p2' class='ltx_para'>
-<ol id='Ch6.I4' class='ltx_enumerate'> +<ol id='Ch6.S2.I3' class='ltx_enumerate'> 
-<li id='Ch6.I4.i1' class='ltx_item' style='list-style-type:none;'> +<li id='Ch6.S2.I3.i1' class='ltx_item' style='list-style-type:none;'> 
-<span class='ltx_tag ltx_tag_enumerate'>1.</span>  +<span class='ltx_tag ltx_tag_item'>1.</span>  
-<div id='Ch6.I4.i1.p1' class='ltx_para'> +<div id='Ch6.S2.I3.i1.p1' class='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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>apply</span>, <span class='ltx_text ltx_lst_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>gaussBlur</span> and <span class='ltx_text ltx_lst_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>gaussBlur25</span> as described in the
 previous case study.</p> previous case study.</p>
 </div> </div>
 </li> </li>
-<li id='Ch6.I4.i2' class='ltx_item' style='list-style-type:none;'> +<li id='Ch6.S2.I3.i2' class='ltx_item' style='list-style-type:none;'> 
-<span class='ltx_tag ltx_tag_enumerate'>2.</span>  +<span class='ltx_tag ltx_tag_item'>2.</span>  
-<div id='Ch6.I4.i2.p1' class='ltx_para'>+<div id='Ch6.S2.I3.i2.p1' class='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
Line 6390: Line 7360:
 <section id='Pt2' class='ltx_part'> <section id='Pt2' class='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='Ch7' class='ltx_chapter'> <section id='Ch7' class='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.p1' class='ltx_para'> <div id='Ch7.p1' class='ltx_para'>
Line 6403: Line 7373:
 </div> </div>
 <div id='Ch7.p2' class='ltx_para'> <div id='Ch7.p2' class='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 ltx_font_italic'>benchmarking</em> in <span class='ltx_text ltx_font_smallcaps'>SaC</span>.</p>
 </div> </div>
 <section id='Ch7.S1' class='ltx_section'> <section id='Ch7.S1' class='ltx_section'>
Line 6433: Line 7403:
 <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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>RTClock</span> and <span class='ltx_text ltx_lst_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>RTimer</span>.
 The code example below illustrates how this works.</p> The code example below illustrates how this works.</p>
 </div> </div>
-<figure id='LST44' class='ltx_float ltx_lstlisting ltx_role_listing'>+<figure id='LST44' class='ltx_float ltx_lstlisting'>
 <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,IHVzZSBSVENsb2NrOiBhbGw7CiB1c2UgUlRpbWVyOiBhbGw7CgogaW50IG1haW4oKQogewogICBpbnQgc2VjczsKICAgaW50IG5zZWNzOwogICBkb3VibGUgdGltZTsKCiAgIHRpbWVyID0gY3JlYXRlUlRpbWVyKCk7CgogICBzdGFydFJUaW1lcih0aW1lcik7CgogICBkb1JlbGV2YW50Q29tcHV0YXRpb24oLyogLi4uICAqLyk7CgogICBzdG9wUlRpbWVyKHRpbWVyKTsKCiAgIHNlY3MsIG5zZWNzID0gZ2V0UlRpbWVySW50cyh0aW1lcik7CiAgIHRpbWUgPSBnZXRSVGltZXJEYmwodGltZXIpOwoKICAgZGVzdHJveVJUaW1lcih0aW1lcik7CiB9'>⬇</a></div> 
-<div class='ltx_listingline'> +<div id='lstnumberx800' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>1</span></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'>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 id='lstnumberx801' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>2</span></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'>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 id='lstnumberx802' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>3</span></span>+                <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>3</span></span> 
 +              
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx803' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>4</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'>main</span>()
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx804' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>5</span></span>{+                <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>5</span></span> 
 +              <span class='ltx_text ltx_lst_space'> </span>{
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx805' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx806' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx807' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx808' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>9</span></span>+                <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>9</span></span> 
 +              
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx809' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx810' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>11</span></span>+                <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>11</span></span> 
 +              
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx811' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx812' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>13</span></span>+                <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>13</span></span> 
 +              
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx813' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx814' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>15</span></span>+                <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>15</span></span> 
 +              
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx815' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx816' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>17</span></span>+                <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>17</span></span> 
 +              
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx817' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx818' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx819' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>20</span></span>+                <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>20</span></span> 
 +              
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx820' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx821' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>22</span></span>}+                <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>22</span></span> 
 +              <span class='ltx_text ltx_lst_space'> </span>}
 </div> </div>
 </div> </div>
 </figure> </figure>
 <div id='Ch7.S1.p4' class='ltx_para'> <div id='Ch7.S1.p4' class='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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>RTClock</span> and <span class='ltx_text ltx_lst_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>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_keyword ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting 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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>getRTimerDbl</span> yields elapsed time in seconds as a double
 precision floating point value.</p> precision floating point value.</p>
 </div> </div>
Line 6534: Line 7526:
 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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>destroyRTimer</span> function.</p>
 </div> </div>
 <div id='Ch7.S1.p6' class='ltx_para'> <div id='Ch7.S1.p6' class='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 ltx_font_italic'>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 6548: Line 7540:
 to apply a little trick:</p> to apply a little trick:</p>
 </div> </div>
-<figure id='LST45' class='ltx_float ltx_lstlisting ltx_role_listing'>+<figure id='LST45' class='ltx_float ltx_lstlisting'>
 <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,IC8qIHJldHVybi10eXBlICAqLyBkb1JlbGV2YW50Q29tcHV0YXRpb24oLyogLi4uICAqLykKIHsKICAgLyogLi4uICAqLwogICB0b3VjaChSVGNsb2NrKTsKICAgLyogLi4uICAqLwogfQ=='>⬇</a></div> 
-<div class='ltx_listingline'> +<div id='lstnumberx822' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>1</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>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 id='lstnumberx823' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>2</span></span>{+                <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>2</span></span> 
 +              <span class='ltx_text ltx_lst_space'> </span>{
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx824' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx825' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx826' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx827' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>6</span></span>}+                <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>6</span></span> 
 +              <span class='ltx_text ltx_lst_space'> </span>}
 </div> </div>
 </div> </div>
 </figure> </figure>
 <div id='Ch7.S1.p7' class='ltx_para'> <div id='Ch7.S1.p7' class='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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>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_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>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>
Line 6585: Line 7583:
 <section id='Ch8' class='ltx_chapter'> <section id='Ch8' class='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.p1' class='ltx_para'> <div id='Ch8.p1' class='ltx_para'>
Line 6593: Line 7591:
 <section id='Ch9' class='ltx_chapter'> <section id='Ch9' class='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.p1' class='ltx_para'> <div id='Ch9.p1' class='ltx_para'>
-<p class='ltx_p'><span class='ltx_text ltx_font_smallcaps'>SaC</span> supports states through objects that are passed implicitly aroundThis +<p class='ltx_p'><span class='ltx_text ltx_font_smallcaps'>SaC</span> supports an explicit notion of stateful objects. All stateful objects need to be associated 
-allows the programmer to specify stateful expressions as sequences while +to an explicit stateful type. Conceptually, such stateful objects need to be passed around in a 
-maintaining the sideeffect free functional semantics of the <span class='ltx_text ltx_font_smallcaps'>SaC</span> languageThe +linear fashion in order to maintain the side-effect free nature of <span class='ltx_text ltx_font_smallcaps'>SaC</span>.</p> 
-underlying idea is called <em class='ltx_emph'>global objects</em> and will be discussed through out +</div> 
-this chapter.</p>+<div id='Ch9.p2' class='ltx_para ltx_align_center'> 
 +<p class='ltx_p'> 
 +<span class='ltx_inline-para ltx_minipage ltx_align_middle ltx_framed_rectangle' style='width:390.3pt;'> 
 +<span id='Ch9.p2.p1' class='ltx_para'> 
 +<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'>Under the hood these types are uniqueness types very similar to those of Clean.</span></span> 
 +</span></span> 
 +</p> 
 +</div> 
 +<div id='Ch9.p3' class='ltx_para'> 
 +<p class='ltx_p'>To relieve programmers form the burden to pass around states explicitly whenever they are needed, 
 +<span class='ltx_text ltx_font_smallcaps'>SaC</span> offers syntactic sugar, referred-to as <em class='ltx_emph ltx_font_italic'>reference parameters</em> and <em class='ltx_emph ltx_font_italic'>global objects</em>
 +These two mechanisms enable state modifications that have a rather C-like feel and touch, 
 +as if <span class='ltx_text ltx_font_smallcaps'>SaC</span> would cater for side-effects in general. 
 +Nevertheless, they are being translated away into a purely side-effect free form.</p>
 </div> </div>
 <section id='Ch9.S1' class='ltx_section'> <section id='Ch9.S1' class='ltx_section'>
Line 6611: Line 7623:
 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. This class type is a user-defined type similar to any other 
-only possible from within the same namespace. The following example shows the +user defined type, however, it implicitly carries a notion of being stateful, i.e., 
-class <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>Counter</span>:</p>+it is a uniqueness type.</p> 
 +</div> 
 +<div id='Ch9.S1.p2' class='ltx_para'> 
 +<p class='ltx_p'>The following example shows the class <span class='ltx_text ltx_lst_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>Counter</span>:</p>
 </div> </div>
-<figure id='LST46' class='ltx_float ltx_lstlisting ltx_role_listing'>+<figure id='LST46' class='ltx_float ltx_lstlisting'>
 <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,IGNsYXNzIENvdW50ZXI7CgogY2xhc3N0eXBlIGludDsKCiB1c2UgQXJyYXk6IHsrfTsKCiBleHBvcnQgYWxsOwoKIENvdW50ZXIgY3JlYXRlQ291bnRlcigpCiB7CiAgIHJldHVybiAoQ291bnRlcikoMCk7CiB9CgogQ291bnRlciBpbmNyZW1lbnQgKENvdW50ZXIgYykKIHsKICAgcmV0dXJuIChDb3VudGVyKSAoKGludCkoYykgKyAxKTsKIH0KCiBpbnQgZ2V0VmFsdWUoQ291bnRlciBjKQogewogICByZXR1cm4gKGludCljOwogfQo='>⬇</a></div> 
-<div class='ltx_listingline'> +<div id='lstnumberx828' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>1</span></span> 
 +              <span class='ltx_text ltx_lst_space'> </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 id='lstnumberx829' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>2</span></span>+                <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>2</span></span> 
 +              
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx830' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>3</span></span> 
 +              <span class='ltx_text ltx_lst_space'> </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 id='lstnumberx831' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>4</span></span>+                <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>4</span></span> 
 +              
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx832' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>5</span></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'>Array</span>:<span class='ltx_text ltx_lst_space'> </span>{+};
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx833' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>6</span></span>{+                <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>6</span></span> 
 +              
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx834' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>7</span></span> 
 +              <span class='ltx_text ltx_lst_space'> </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'>all</span>;
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx835' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>8</span></span>}+                <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>8</span></span> 
 +              
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx836' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>9</span></span>+                <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>9</span></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'>createCounter</span>()
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx837' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>10</span></span> 
 +              <span class='ltx_text ltx_lst_space'> </span>{
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx838' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>11</span></span>{+                <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='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'>Counter</span>)(0);
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx839' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>12</span></span> 
 +              <span class='ltx_text ltx_lst_space'> </span>}
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx840' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>13</span></span>}+                <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>13</span></span> 
 +              
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx841' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>14</span></span>+                <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>14</span></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'>increment</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'>c</span>)
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx842' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>15</span></span> 
 +              <span class='ltx_text ltx_lst_space'> </span>{
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx843' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>16</span></span>{+                <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='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>(<span class='ltx_text ltx_lst_identifier'>Counter</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_text ltx_lst_space'> </span>+<span class='ltx_text ltx_lst_space'> </span>1);
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx844' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>17</span></span> 
 +              <span class='ltx_text ltx_lst_space'> </span>}
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx845' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>18</span></span>}+                <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>18</span></span> 
 +              
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx846' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>19</span></span>+                <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>19</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'>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 id='lstnumberx847' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>20</span></span> 
 +              <span class='ltx_text ltx_lst_space'> </span>{
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx848' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>21</span></span>{+                <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>21</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 id='lstnumberx849' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>22</span></span>}+                <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>22</span></span> 
 +              <span class='ltx_text ltx_lst_space'> </span>}
 </div> </div>
 </div> </div>
 </figure> </figure>
-<div id='Ch9.S1.p2' class='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 
-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 
-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> 
-technique, these functions are able to destructively modify an instance and thus 
-its state.</p> 
-</div> 
 <div id='Ch9.S1.p3' class='ltx_para'> <div id='Ch9.S1.p3' class='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'>A class file starts with the <span class='ltx_text ltx_lst_keyword ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_font_bold'>class</span> keyword, followed by the name of the 
-<span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>c</span> and returns the new, modified versionA special function is +class. Another keyword unique to classes is <span class='ltx_text ltx_lst_keyword ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_font_bold'>classtype</span>The statement in 
-<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 +line 3 defines <span class='ltx_text ltx_lst_keyword ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_font_bold'>int</span> as the classtype of class <span class='ltx_text ltx_lst_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>Counter</span>
-<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 +Other than that, a class is constructed liek any module
-<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 +It can use or import from other modules or classes, and it can provide and import its own types 
-one constructor function and a destructor function. However, the destructor +and functions.</p>
-function can be empty like in the example above.</p>+
 </div> </div>
-<section id='Ch9.S1.SS1' class='ltx_subsection'> +<div id='Ch9.S1.p4' class='ltx_para'> 
-<h5 class='ltx_title ltx_title_subsection'> +<class='ltx_p'>The function <span class='ltx_text ltx_lst_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>createCounter</span> generates an object of type <span class='ltx_text ltx_lst_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>Counter</span>. 
-<span class='ltx_tag ltx_tag_subsection'>9.1.</span>Extending Classes</h5+Note here, that the type cast is essentialIt transforms the integer value <span class='ltx_text ltx_lstlisting'></span
- +into a stateful object of type <span class='ltx_text ltx_lst_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>Counter</span>
-<div id='Ch9.S1.SS1.p1' class='ltx_para'> +The function <span class='ltx_text ltx_lst_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>increment</span> increments the value of Counter instance 
-<class='ltx_p'>Like modules, it is possible to extend classes by new functionsHowever, a +<span class='ltx_text ltx_lst_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>c</span> and returns the new, modified version. 
-class can only be the derivative of one single other class. There is no support +Againwe see cast from the stateful object <span class='ltx_text ltx_lst_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>c</span> of type <span class='ltx_text ltx_lst_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>Counter</span> 
-for multiple derivation. Furthermore, there is no possibility to extend the +into an integer object for which <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>+</span> is defined in the module <span class='ltx_text ltx_lst_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>Array</span>
-class type — extension is limited to functionsThe following listing shows how +The incremented integer value subsequently is transformed into a stateful <span class='ltx_text ltx_lst_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>Counter</span> 
-to extend our <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_lst_identifier'>Counter</span> example to new class capable of decrementing +object directly thereafter. 
-its value:</p>+Finally, we have function <span class='ltx_text ltx_lst_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>getValue</span> which returns the current integer value of the 
 +provided <span class='ltx_text ltx_lst_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>Counter</span> object.</p>
 </div> </div>
-<figure id='LST47' class='ltx_float ltx_lstlisting ltx_role_listing'> +<div id='Ch9.S1.p5' class='ltx_para ltx_noindent'> 
-<figcaption class='ltx_caption'><span class='ltx_tag ltx_tag_float'>Listing 47: </span>DecCounter class</figcaption>+<p class='ltx_p'>Let us now look at a simple use of the class <span class='ltx_text ltx_lst_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>Counter</span>:</p> 
 +</div> 
 +<figure id='LST47' class='ltx_float ltx_lstlisting'> 
 +<figcaption class='ltx_caption'><span class='ltx_tag ltx_tag_float'>Listing 47: </span>using 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,Y2xhc3MgRGVjQ291bnRlciBleHRlbmRzIENvdW50ZXI7CgpwdWJsaWMgdm9pZCBkZWNyZW1lbnQo%0AQ291bnRlciAmYykKewogIGMgPSAoQ291bnRlcikoKGludCljIC0gMSk7Cn0=%0A'>⬇</a></div> +<div class='ltx_listing_data'><a href='data:text/plain;base64,IHVzZSBDb3VudGVyOmFsbDsKCiBpbnQgbWFpbigpCiB7CiAgICBjID0gY3JlYXRlQ291bnRlciAoKTsKICAgIGMgPSBpbmNyZW1lbnQgKGMpOwogICAgU3RkSU86OnByaW50IChnZXRWYWx1ZSAoYykpOwoKICAgIHJldHVybiAwOwogfQ=='>⬇</a></div> 
-<div class='ltx_listingline'> +<div id='lstnumberx850' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>1</span></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'>Counter</span>:<span class='ltx_text ltx_lst_identifier'>all</span>;
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx851' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>2</span></span>+                <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>2</span></span> 
 +              
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx852' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>3</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'>main</span>()
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx853' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>4</span></span>{+                <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>4</span></span> 
 +              <span class='ltx_text ltx_lst_space'> </span>{
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx854' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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'>createCounter</span><span class='ltx_text ltx_lst_space'> </span>();
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx855' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>6</span></span>}+                <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>6</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'>increment</span><span class='ltx_text ltx_lst_space'> </span>(<span class='ltx_text ltx_lst_identifier'>c</span>); 
 +</div> 
 +<div id='lstnumberx856' class='ltx_listingline'> 
 +                <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>7</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'>print</span><span class='ltx_text ltx_lst_space'> </span>(<span class='ltx_text ltx_lst_identifier'>getValue</span><span class='ltx_text ltx_lst_space'> </span>(<span class='ltx_text ltx_lst_identifier'>c</span>)); 
 +</div> 
 +<div id='lstnumberx857' class='ltx_listingline'> 
 +                <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>8</span></span> 
 +               
 +</div> 
 +<div id='lstnumberx858' class='ltx_listingline'> 
 +                <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='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 id='lstnumberx859' class='ltx_listingline'> 
 +                <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>10</span></span> 
 +              <span class='ltx_text ltx_lst_space'> </span>}
 </div> </div>
 </div> </div>
 </figure> </figure>
-<div id='Ch9.S1.SS1.p2' class='ltx_para'> +<div id='Ch9.S1.p6' class='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_identifier'>extends</span> in line 1 signals that the class +<p class='ltx_p'>Now try to duplicate line 7. 
-<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 +The compiler needs to reject the second call to 
-is no class type definition as the class type is as well derived from class +<span class='ltx_text ltx_lst_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>getValue</span> because the object <span class='ltx_text ltx_lst_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>c</span> 
-<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 +is used more than once!</p>
-defined within the current class. +
-</p>+
 </div> </div>
-</section> +<div id='Thmtheorem33' class='ltx_theorem ltx_theorem_theorem'> 
-<section id='Ch9.S1.SS2' class='ltx_subsection'> +<h6 class='ltx_title ltx_runin ltx_font_bold ltx_title_theorem'>Exercise 33. </h6
-<h5 class='ltx_title ltx_title_subsection'> +<div id='Thmtheorem33.p1' class='ltx_para'> 
-<span class='ltx_tag ltx_tag_subsection'>9.1.2 </span>States using Classes</h5> +<class='ltx_p'>Define a new version of 
- +<span class='ltx_text ltx_lst_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>getValue</span> which returns both, the 
-</section> +(unmodified) <span class='ltx_text ltx_lst_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>Counter</span> <span class='ltx_text ltx_lst_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>c</span> and the current 
-<section id='Ch9.S1.SS3' class='ltx_subsection'> +integer value.</p>
-<h5 class='ltx_title ltx_title_subsection'> +
-<span class='ltx_tag ltx_tag_subsection'>9.1.3 </span>Global Objects</h5> +
- +
-</section> +
-</section> +
-<section id='Ch9.S2' class='ltx_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> +
- +
-</section> +
-</section> +
-<section id='Ch10' class='ltx_chapter'> +
-<h3 class='ltx_title ltx_title_chapter'> +
-<span class='ltx_tag ltx_tag_chapter'>Chapter 10 </span>Interfacing with Other Languages</h3> +
- +
-<div id='Ch10.p1' class='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 +
-and how to integrate foreign libraries into <span class='ltx_text ltx_font_smallcaps'>SaC</span> programs.</p>+
 </div> </div>
-<div id='Ch10.p2' class='ltx_para'> 
-<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 
-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.S1' class='ltx_section'> +<section id='Ch9.S1.SS1' class='ltx_subsection'>
-<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> +
-</h4> +
- +
-<section id='Ch10.S1.SS1' class='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'>9.1.1 </span>Reference Parameters</h5>
  
-<div id='Ch10.S1.SS1.p1' class='ltx_para'> +<div id='Ch9.S1.SS1.p1' class='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'>The function <span class='ltx_text ltx_lst_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>getValue</span> from the previous exercise 
-function must be defined in <span class='ltx_text ltx_font_smallcaps'>SaC</span>This is done by prefixing the function +shows that in most cases we want stateful objects that are passed 
-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 +to functions as arguments to be returned as wellirrespective of whether 
-having a function adding two integers specified in <span class='ltx_text ltx_font_smallcaps'>C</span> as follows:</p>+they have been modified or not
 +To avoid the necessity of specifying sequences of such function calls as</p>
 </div> </div>
-<figure id='LST48' class='ltx_float ltx_lstlisting ltx_role_listing'> +<figure id='LST48' class='ltx_float ltx_lstlisting'> 
-<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>explicit passing of state</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,IC4uLgogICAgYyA9IGluY3JlbWVudCAoYyk7CiAgICBjLCB2MSA9IGdldFZhbHVlIChjKTsKICAgIGMsIHYyID0gZ2V0VmFsdWUgKGMpOwogLi4u'>⬇</a></div> 
-<div class='ltx_listingline'> +<div id='lstnumberx860' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>1</span></span> 
 +                <span class='ltx_text ltx_lst_space'> </span>
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx861' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>2</span></span>{+                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>2</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'>increment</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 id='lstnumberx862' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>3</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_identifier'>v1</span><span class='ltx_text ltx_lst_space'> </span>=<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>getValue</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 id='lstnumberx863' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>4</span></span>}+                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>4</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_identifier'>v2</span><span class='ltx_text ltx_lst_space'> </span>=<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>getValue</span><span class='ltx_text ltx_lst_space'> </span>(<span class='ltx_text ltx_lst_identifier'>c</span>); 
 +</div> 
 +<div id='lstnumberx864' class='ltx_listingline'> 
 +                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>5</span></span> 
 +                <span class='ltx_text ltx_lst_space'> </span>
 </div> </div>
 </div> </div>
 </figure> </figure>
-<div id='Ch10.S1.SS1.p2' class='ltx_para'> +<div id='Ch9.S1.SS1.p2' class='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'><span class='ltx_text ltx_font_smallcaps'>SaC</span> offers a syntactical shortcut, named <em class='ltx_emph ltx_font_italic'>Reference Parameters</em>. 
-supposed you are using the GNU compiler collectionThis will generate single +The idea is that an explicit return of stateful object can be syntactically omitted 
-<span class='ltx_text ltx_font_typewriter'>addfun.o</span> fileThis can now be used from within <span class='ltx_text ltx_font_smallcaps'>SaC</span>:</p>+if the formal parameter is annotated by the symbol <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>&</span>. 
 +For our example, this can be done by defining 
 +<span class='ltx_text ltx_lst_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>increment</span> and <span class='ltx_text ltx_lst_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>getValue</span> like this:</p>
 </div> </div>
-<figure id='LST49' class='ltx_float ltx_lstlisting ltx_role_listing'> +<figure id='LST49' class='ltx_float ltx_lstlisting'> 
-<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>Reference Parameter</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,IC4uLgogIHZvaWQgaW5jcmVtZW50IChDb3VudGVyICZjKQogIHsKICAgICBjID0gKENvdW50ZXIpKChpbnQpYyArIDEpOwogIH0KCiAgaW50IGdldFZhbHVlKENvdW50ZXIgJmMpCiAgewogICAgIHZhbCA9IChpbnQpIGM7CiAgICAgYyA9IChDb3VudGVyKSB2YWw7CiAgICAgcmV0dXJuIHZhbDsKICB9CiAuLi4='>⬇</a></div> 
-<div class='ltx_listingline'> +<div id='lstnumberx865' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>1</span></span> 
 +                <span class='ltx_text ltx_lst_space'> </span>
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx866' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>2</span></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_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'>c</span>)
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx867' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>3</span></span>+                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>3</span></span> 
 +                <span class='ltx_text ltx_lst_space'>  </span>{
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx868' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>4</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 id='lstnumberx869' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>5</span></span>{+                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>5</span></span> 
 +                <span class='ltx_text ltx_lst_space'>  </span>}
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx870' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>6</span></span> 
 +                
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx871' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>7</span></span>+                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='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'>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 id='lstnumberx872' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>8</span></span> 
 +                <span class='ltx_text ltx_lst_space'>  </span>{
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx873' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>9</span></span>}+                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>9</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_keyword ltx_font_bold'>int</span>)<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>c</span>; 
 +</div> 
 +<div id='lstnumberx874' class='ltx_listingline'> 
 +                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>10</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_space'> </span><span class='ltx_text ltx_lst_identifier'>val</span>; 
 +</div> 
 +<div id='lstnumberx875' class='ltx_listingline'> 
 +                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='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'>val</span>; 
 +</div> 
 +<div id='lstnumberx876' class='ltx_listingline'> 
 +                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>12</span></span> 
 +                <span class='ltx_text ltx_lst_space'>  </span>} 
 +</div> 
 +<div id='lstnumberx877' class='ltx_listingline'> 
 +                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>13</span></span> 
 +                <span class='ltx_text ltx_lst_space'> </span>
 </div> </div>
 </div> </div>
 </figure> </figure>
-<div id='Ch10.S1.SS1.p3' class='ltx_para ltx_noindent'> +<div id='Ch9.S1.SS1.p3' class='ltx_para'> 
-<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'>With these definitions, we can now use the <span class='ltx_text ltx_lst_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>Counter</span> class as follows: 
-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 +</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'>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>+
 </div> </div>
-<div id='Ch10.S1.SS1.p4' class='ltx_para'> +<figure id='LST50' class='ltx_float ltx_lstlisting'> 
-<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 +<figcaption class='ltx_caption'><span class='ltx_tag ltx_tag_float'>Listing 50: </span>using Reference Parameters</figcaption> 
-<span class='ltx_text ltx_font_typewriter'>sac2c -o addfun addfun.sac</span>. The resulting executable will contain both, the +<div class='ltx_listing ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting ltx_listing'> 
-<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 class='ltx_listing_data'><a href='data:text/plain;base64,IHVzZSBDb3VudGVyOmFsbDsKCiBpbnQgbWFpbigpCiB7CiAgICBjID0gY3JlYXRlQ291bnRlciAoKTsKICAgIGluY3JlbWVudCAoYyk7CiAgICBpbmNyZW1lbnQgKGMpOwogICAgU3RkSU86OnByaW50IChnZXRWYWx1ZSAoYykpOwogICAgU3RkSU86OnByaW50IChnZXRWYWx1ZSAoYykpOwoKICAgIHJldHVybiAwOwogfQ=='>⬇</a></div> 
 +<div id='lstnumberx878' class='ltx_listingline'> 
 +                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>1</span></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'>Counter</span>:<span class='ltx_text ltx_lst_identifier'>all</span>;
 </div> </div>
-</section> +<div id='lstnumberx879' class='ltx_listingline'> 
-<section id='Ch10.S1.SS2' class='ltx_subsection'> +                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>2</span></span
-<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+
- +
-<div id='Ch10.S1.SS2.p1' class='ltx_para'> +
-<p class='ltx_p'>dudu</p>+
 </div> </div>
 +<div id='lstnumberx880' class='ltx_listingline'>
 +                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>3</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'>main</span>()
 +</div>
 +<div id='lstnumberx881' class='ltx_listingline'>
 +                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>4</span></span>
 +                <span class='ltx_text ltx_lst_space'> </span>{
 +</div>
 +<div id='lstnumberx882' class='ltx_listingline'>
 +                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='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'>createCounter</span><span class='ltx_text ltx_lst_space'> </span>();
 +</div>
 +<div id='lstnumberx883' class='ltx_listingline'>
 +                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>6</span></span>
 +                <span class='ltx_text ltx_lst_space'>    </span><span class='ltx_text ltx_lst_identifier'>increment</span><span class='ltx_text ltx_lst_space'> </span>(<span class='ltx_text ltx_lst_identifier'>c</span>);
 +</div>
 +<div id='lstnumberx884' class='ltx_listingline'>
 +                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>7</span></span>
 +                <span class='ltx_text ltx_lst_space'>    </span><span class='ltx_text ltx_lst_identifier'>increment</span><span class='ltx_text ltx_lst_space'> </span>(<span class='ltx_text ltx_lst_identifier'>c</span>);
 +</div>
 +<div id='lstnumberx885' class='ltx_listingline'>
 +                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>8</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'>print</span><span class='ltx_text ltx_lst_space'> </span>(<span class='ltx_text ltx_lst_identifier'>getValue</span><span class='ltx_text ltx_lst_space'> </span>(<span class='ltx_text ltx_lst_identifier'>c</span>));
 +</div>
 +<div id='lstnumberx886' class='ltx_listingline'>
 +                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>9</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'>print</span><span class='ltx_text ltx_lst_space'> </span>(<span class='ltx_text ltx_lst_identifier'>getValue</span><span class='ltx_text ltx_lst_space'> </span>(<span class='ltx_text ltx_lst_identifier'>c</span>));
 +</div>
 +<div id='lstnumberx887' class='ltx_listingline'>
 +                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>10</span></span>
 +                
 +</div>
 +<div id='lstnumberx888' class='ltx_listingline'>
 +                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='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 id='lstnumberx889' class='ltx_listingline'>
 +                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>12</span></span>
 +                <span class='ltx_text ltx_lst_space'> </span>}
 +</div>
 +</div>
 +</figure>
 </section> </section>
-<section id='Ch10.S1.SS3' class='ltx_subsection'>+<section id='Ch9.S1.SS2' class='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.</span>Using pragma directives</h5>+<span class='ltx_tag ltx_tag_subsection'>9.1.</span>Global Objects</h5>
  
-<div id='Ch10.S1.SS3.p1' class='ltx_para'> +<div id='Ch9.S1.SS2.p1' class='ltx_para'> 
-<p class='ltx_p'>dada+<p class='ltx_p'>When looking at the previous use of the class <span class='ltx_text ltx_lst_identifier ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'>Counter</span>, 
 +we can see that the introduction of reference parameters enables program 
 +specifications that look very “imperative”. 
 +The idea of leaving out explicit passing of state can be driven even further. 
 +In <span class='ltx_text ltx_font_smallcaps'>SaC</span>, we also have a mechanism for omitting stateful objects as parameters which are 
 +needed within a function body. For that purpose, <span class='ltx_text ltx_font_smallcaps'>SaC</span> introduces the notion of <em class='ltx_emph ltx_font_italic'>Global Objects</em>
 +Global objects are stateful 
 +objects that are generated once before the program execution starts and 
 +that are available everywhere within the program for inspection or modification. 
 +While this seems to finally unleash side-effects, in fact the compiler 
 +inserts the missing passing of states throughout the program as needed.</p> 
 +<p class='ltx_p ltx_align_center'> 
 +<span class='ltx_inline-para ltx_minipage ltx_align_middle ltx_framed_rectangle' style='width:390.3pt;'> 
 +<span id='Ch9.S1.SS2.p1.p1' class='ltx_para'> 
 +<span class='ltx_p'><span class='ltx_text ltx_font_bold'>A note for compiler implementation freaks:</span></span> 
 +<span class='ltx_p'><span class='ltx_text ltx_font_italic'>If you want to find out what the compiler actually does, 
 +you may want to inspect the program after all objects have been inserted by the compiler. 
 +This can be done by looking at the output when compiling with the flag </span><span class='ltx_text ltx_font_typewriter'>-btc</span><span class='ltx_text ltx_font_italic'>
 +If you want to find out about further break options, check </span><span class='ltx_text ltx_font_typewriter'>sac2c -help</span><span class='ltx_text ltx_font_italic'>.</span></span> 
 +</span></span>
 </p> </p>
 </div> </div>
-</section> +<div id='Ch9.S1.SS2.p2' class='ltx_para ltx_noindent'> 
-<section id='Ch10.S1.SS4' class='ltx_subsection'> +<class='ltx_p'>We can extend our counter example by a global counter as follows:</p> 
-<h5 class='ltx_title ltx_title_subsection'> +</div
-<span class='ltx_tag ltx_tag_subsection'>10.1.4 </span>Example TermFile</h5> +<figure id='LST51' class='ltx_float ltx_lstlisting'> 
- +<figcaption class='ltx_caption'><span class='ltx_tag ltx_tag_float'>Listing 51: </span>class Counter extended</figcaption>
-<figure id='LST50' class='ltx_float ltx_lstlisting ltx_role_listing'> +
-<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,IGNsYXNzIENvdW50ZXI7CgogLi4uCiBleHBvcnQgYWxsOwoKIG9iamRlZiBDb3VudGVyIHRoZUNvdW50ZXIgPSBjcmVhdGVDb3VudGVyKCk7Cgogdm9pZCBpbmNyZW1lbnQgKCkKIHsKICAgaW5jcmVtZW50ICh0aGVDb3VudGVyKTsKIH0KCiBpbnQgZ2V0VmFsdWUgKCkKIHsKICAgcmV0dXJuIGdldFZhbHVlICh0aGVDb3VudGVyKTsKIH0KIC4uLg=='>⬇</a></div> 
-<div class='ltx_listingline'> +<div id='lstnumberx890' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>1</span></span> 
 +                <span class='ltx_text ltx_lst_space'> </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 id='lstnumberx891' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>2</span></span>+                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>2</span></span> 
 +                
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx892' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>3</span></span> 
 +                <span class='ltx_text ltx_lst_space'> </span>
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx893' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>4</span></span>+                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>4</span></span> 
 +                <span class='ltx_text ltx_lst_space'> </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'>all</span>;
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx894' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>5</span></span> 
 +                
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx895' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>6</span></span> 
 +                <span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>objdef</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'>theCounter</span><span class='ltx_text ltx_lst_space'> </span>=<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>createCounter</span>();
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx896' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>7</span></span>+                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>7</span></span> 
 +                
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx897' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>8</span></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_space'> </span>()
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx898' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>9</span></span> 
 +                <span class='ltx_text ltx_lst_space'> </span>{
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx899' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>10</span></span> 
 +                <span class='ltx_text ltx_lst_space'>   </span><span class='ltx_text ltx_lst_identifier'>increment</span><span class='ltx_text ltx_lst_space'> </span>(<span class='ltx_text ltx_lst_identifier'>theCounter</span>);
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx900' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>11</span></span> 
 +                <span class='ltx_text ltx_lst_space'> </span>}
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx901' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>12</span></span>+                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>12</span></span> 
 +                
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx902' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>13</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'>getValue</span><span class='ltx_text ltx_lst_space'> </span>()
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx903' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>14</span></span> 
 +                <span class='ltx_text ltx_lst_space'> </span>{
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx904' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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><span class='ltx_text ltx_lst_identifier'>getValue</span><span class='ltx_text ltx_lst_space'> </span>(<span class='ltx_text ltx_lst_identifier'>theCounter</span>);
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx905' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>16</span></span> 
 +                <span class='ltx_text ltx_lst_space'> </span>}
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx906' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>17</span></span>+                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>17</span></span> 
 +                <span class='ltx_text ltx_lst_space'> </span>
 </div> </div>
-<div class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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'+</figure
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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 id='Ch9.S1.SS2.p3' class='ltx_para ltx_noindent'> 
 +<class='ltx_p'>With this extension, 
 +applications of <span class='ltx_text ltx_lst_language_SaC ltx_lst_numbers_left ltx_lstlisting'><span class='ltx_text ltx_lst_identifier'>increment</span><span class='ltx_text ltx_lst_space'> </span>()</span> become possible within arbitrary 
 +function bodiesFor example, we can specify:</p>
 </div> </div>
-<div class='ltx_listingline'> +<figure id='LST52' class='ltx_float ltx_lstlisting'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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>+<figcaption class='ltx_caption'><span class='ltx_tag ltx_tag_float'>Listing 52: </span>using the global counter</figcaption> 
 +<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,IHVzZSBBcnJheTogYWxsOwogdXNlIENvdW50ZXI6IGFsbDsKCiBpbnQgZm9vIChpbnQgbikKIHsKICAgIGluY3JlbWVudCAoKTsKICAgIHJldHVybiBuKzE7CiB9CgogaW50IG1haW4oKQogewogICAgc3VtID0gMDsKICAgIGZvciAoaT0wOyBpPDIwOyApCiAgICAgICBpID0gZm9vIChpKTsKCiAgICBTdGRJTzo6cHJpbnQgKGdldFZhbHVlICgpKTsKICAgIHJldHVybiAwOwogfQ=='>⬇</a></div> 
 +<div id='lstnumberx907' class='ltx_listingline'> 
 +                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>1</span></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'>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 id='lstnumberx908' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>2</span></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'>Counter</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 id='lstnumberx909' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>22</span></span>+                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>3</span></span> 
 +                
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx910' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>4</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'>foo</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'>n</span>)
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx911' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text ltx_font_italic' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>5</span></span> 
 +                <span class='ltx_text ltx_lst_space'> </span>{
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx912' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text ltx_font_italic' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>6</span></span> 
 +                <span class='ltx_text ltx_lst_space'>    </span><span class='ltx_text ltx_lst_identifier'>increment</span><span class='ltx_text ltx_lst_space'> </span>();
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx913' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text ltx_font_italic' style='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_listingline'><span class='ltx_text' style='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'>n</span>+1;
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx914' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text ltx_font_italic' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>8</span></span> 
 +                <span class='ltx_text ltx_lst_space'> </span>}
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx915' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>28</span></span>+                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>9</span></span> 
 +                
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx916' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>10</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'>main</span>()
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx917' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text ltx_font_italic' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>11</span></span> 
 +                <span class='ltx_text ltx_lst_space'> </span>{
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx918' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text ltx_font_italic' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>12</span></span> 
 +                <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_space'> </span>0;
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx919' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>32</span></span>+                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>13</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>=0;<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>i</span><20;<span class='ltx_text ltx_lst_space'> </span>)
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx920' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>14</span></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><span class='ltx_text ltx_lst_identifier'>foo</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 id='lstnumberx921' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text ltx_font_italic' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>15</span></span> 
 +                
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx922' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text ltx_font_italic' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>16</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'>print</span><span class='ltx_text ltx_lst_space'> </span>(<span class='ltx_text ltx_lst_identifier'>getValue</span><span class='ltx_text ltx_lst_space'> </span>());
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx923' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text ltx_font_italic' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx924' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>37</span></span>+                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>18</span></span> 
 +                <span class='ltx_text ltx_lst_space'> </span>}
 </div> </div>
-<div class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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'> +</figure> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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>+</section> 
 +</section> 
 +</section> 
 +<section id='Ch10' class='ltx_chapter'> 
 +<h3 class='ltx_title ltx_title_chapter'> 
 +<span class='ltx_tag ltx_tag_chapter'>Chapter 10 </span>Interfacing with Other Languages</h3> 
 + 
 +<div id='Ch10.p1' class='ltx_para'> 
 +<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>
 </div> </div>
-<div class='ltx_listingline'> +<div id='Ch10.p2' class='ltx_para'> 
-<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>+<class='ltx_p'>So far, we have four lessons. One that explains how to utilise 
 +<em class='ltx_emph ltx_font_italic'><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>
 </div> </div>
-<div class='ltx_listingline'> +<section id='Ch10.S1' class='ltx_section'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>41</span></span>+<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> 
 +</h4> 
 + 
 +<section id='Ch10.S1.SS1' class='ltx_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> 
 + 
 +<div id='Ch10.S1.SS1.p1' class='ltx_para'> 
 +<p class='ltx_p'>As a starting point, let us assume that you do have a C-library that you would like 
 +to use from <span class='ltx_text ltx_font_smallcaps'>SaC</span>
 +Whether you do have access to the library’s sources or not does not matter at all. 
 +All you need is an object file or a library file and knowledge about the signatures 
 +of the functions that are contained in it. 
 +Typically, you will have a header file containing the needed extern declarations.</p>
 </div> </div>
-<div class='ltx_listingline'+<div id='Ch10.S1.SS1.p2' class='ltx_para'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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>);+<class='ltx_p'>For example, you may have a file <span class='ltx_text ltx_font_typewriter'>simple.h</span> which looks like this:</p>
 </div> </div>
-<div class='ltx_listingline'> +<figure id='LST53' class='ltx_float ltx_lstlisting'> 
-<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>+<figcaption class='ltx_caption'><span class='ltx_tag ltx_tag_float'>Listing 53: </span>Simple example header file in C</figcaption> 
 +<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,ICNpZm5kZWYgU0lNUExFX0gKICNkZWZpbmUgU0lNUExFX0gKCiBleHRlcm4gaW50IGFkZChpbnQgeCwgaW50IHkpOwoKICNlbmRpZg=='></a></div> 
 +<div id='lstnumberx925' class='ltx_listingline'> 
 +                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>1</span></span> 
 +                <span class='ltx_text ltx_lst_space'> </span>#<span class='ltx_text ltx_lst_identifier'>ifndef</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>SIMPLE_H</span>
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx926' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>2</span></span> 
 +                <span class='ltx_text ltx_lst_space'> </span>#<span class='ltx_text ltx_lst_identifier'>define</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>SIMPLE_H</span>
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx927' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>3</span></span> 
 +                
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx928' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>46</span></span>+                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>4</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_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 id='lstnumberx929' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>5</span></span> 
 +                
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx930' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text ltx_font_italic' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>6</span></span> 
 +                <span class='ltx_text ltx_lst_space'> </span>#<span class='ltx_text ltx_lst_identifier'>endif</span>
 </div> </div>
-<div class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text ltx_font_italic' style='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'+</figure
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text ltx_font_italic' style='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 id='Ch10.S1.SS1.p3' class='ltx_para'> 
 +<class='ltx_p'>We furthermore assume that you have an object file <span class='ltx_text ltx_font_typewriter'>simple.o</span> that contains 
 +an implementation of this function. 
 +You can generate a suitable object file by putting 
 +</p>
 </div> </div>
-<div class='ltx_listingline'+<figure id='LST54' class='ltx_float ltx_lstlisting'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text ltx_font_italic' style='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>+<figcaption class='ltx_caption'><span class='ltx_tag ltx_tag_float'>Listing 54: </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_data'><a href='data:text/plain;base64,ICNpbmNsdWRlICJzaW1wbGUuaCIKCiBpbnQgYWRkKGludCB4LCBpbnQgeSkKIHsKICAgcmV0dXJuIHggKyB5OwogfQ=='></a></div> 
 +<div id='lstnumberx931' class='ltx_listingline'> 
 +                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>1</span></span> 
 +                <span class='ltx_text ltx_lst_space'> </span>#<span class='ltx_text ltx_lst_identifier'>include</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_string'>”simple.h”</span>
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx932' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text ltx_font_italic' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>2</span></span> 
 +                
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx933' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text ltx_font_italic' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>3</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'>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 id='lstnumberx934' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>54</span></span>+                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>4</span></span> 
 +                <span class='ltx_text ltx_lst_space'> </span>{
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx935' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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>;
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx936' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>6</span></span> 
 +                <span class='ltx_text ltx_lst_space'> </span>}
 </div> </div>
-<div class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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'+</figure
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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 id='Ch10.S1.SS1.p4' class='ltx_para'> 
 +<class='ltx_p'>into a file <span class='ltx_text ltx_font_typewriter'>simple.c</span> and compiling it by <span class='ltx_text ltx_font_typewriter'>gcc -c simple.c</span> or similar.</p>
 </div> </div>
-<div class='ltx_listingline'+<div id='Ch10.S1.SS1.p5' class='ltx_para'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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>+<class='ltx_p'>Now, if you want to make this function available in <span class='ltx_text ltx_font_smallcaps'>SaC</span>, all you need to do is to add 
 +an external declaration with some additional information on where to find the object file 
 +into your <span class='ltx_text ltx_font_smallcaps'>SaC</span> programFor example:</p>
 </div> </div>
-<div class='ltx_listingline'> +<figure id='LST55' class='ltx_float ltx_lstlisting'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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>+<figcaption class='ltx_caption'><span class='ltx_tag ltx_tag_float'>Listing 55: </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_data'><a href='data:text/plain;base64,IGV4dGVybmFsIGludCBhZGQoaW50IHgsIGludCB5KTsKICAgI3ByYWdtYSBsaW5rb2JqICJzaW1wbGUubyIKCiBpbnQgbWFpbigpCiB7CiAgIFN0ZElPOjpwcmludGYoIjEgcGx1cyAxIGVxdWF0ZXMgdG8gJWRcbiIsIGFkZCggMSwgMSkpOwoKICAgcmV0dXJuIDA7CiB9'>⬇</a></div> 
 +<div id='lstnumberx937' class='ltx_listingline'> 
 +                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>1</span></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_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 id='lstnumberx938' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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_identifier'>linkobj</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_string'>simple.o”</span>
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx939' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>62</span></span>+                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>3</span></span> 
 +                
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx940' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>4</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'>main</span>()
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx941' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text ltx_font_italic' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>5</span></span> 
 +                <span class='ltx_text ltx_lst_space'> </span>{
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx942' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text ltx_font_italic' style='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_listingline'><span class='ltx_text' style='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>equates<span class='ltx_text ltx_lst_space'> </span>to<span class='ltx_text ltx_lst_space'> </span>%d\n”</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 id='lstnumberx943' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>66</span></span>+                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>7</span></span> 
 +                
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx944' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx945' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text ltx_font_italic' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>9</span></span> 
 +                <span class='ltx_text ltx_lst_space'> </span>}
 </div> </div>
-<div class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text ltx_font_italic' style='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'+</figure
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text ltx_font_italic' style='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 id='Ch10.S1.SS1.p6' class='ltx_para'> 
 +<class='ltx_p'>If you compile this with <span class='ltx_text ltx_font_typewriter'>sac2c</span> you will obtain an executable which should yield the expected 
 +result.</p>
 </div> </div>
-<div class='ltx_listingline'+<div id='Thmtheorem34' class='ltx_theorem ltx_theorem_theorem'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text ltx_font_italic' style='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>+<h6 class='ltx_title ltx_runin ltx_font_bold ltx_title_theorem'>Exercise 34. </h6> 
 +<div id='Thmtheorem34.p1' class='ltx_para'> 
 +<class='ltx_p'>Note herethat the <span class='ltx_text ltx_font_smallcaps'>SaC</span> compiler has no guarantees that the signature that has been provided here 
 +indeed matches your implementation. Try what happens if you wrongly declare both arguments of <span class='ltx_text ltx_font_typewriter'>add</span> 
 +to be of type <span class='ltx_text ltx_font_typewriter'>double</span>.</p>
 </div> </div>
-<div class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text ltx_font_italic' style='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 id='Ch10.S1.SS1.p7' class='ltx_para'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>73</span></span>+<class='ltx_p'>To get more type safety here, you can share the C header file with the <span class='ltx_text ltx_font_smallcaps'>SaC</span> compiler by 
 +using yet another pragma:</p>
 </div> </div>
-<div class='ltx_listingline'> +<figure id='LST56' class='ltx_float ltx_lstlisting'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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>);+<figcaption class='ltx_caption'><span class='ltx_tag ltx_tag_float'>Listing 56: </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_data'><a href='data:text/plain;base64,IGV4dGVybmFsIGludCBhZGQoZG91YmxlIHgsIGRvdWJsZSB5KTsKICAgI3ByYWdtYSBsaW5rb2JqICJzaW1wbGUubyIKICAgI3ByYWdtYSBoZWFkZXIgICJzaW1wbGUuaCIKCiBpbnQgbWFpbigpCiB7CiAgIFN0ZElPOjpwcmludGYoIjEgcGx1cyAxIGlzICVkXG4iLCBhZGQoIDEsIDEpKTsKCiAgIHJldHVybiAwOwogfQ=='>⬇</a></div> 
 +<div id='lstnumberx946' class='ltx_listingline'> 
 +                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>1</span></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_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'>double</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'>double</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 id='lstnumberx947' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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_identifier'>linkobj</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_string'>simple.o”</span>
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx948' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>3</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'>header</span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_string'>”simple.h”</span>
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx949' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>4</span></span> 
 +                
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx950' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>5</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'>main</span>()
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx951' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>6</span></span> 
 +                <span class='ltx_text ltx_lst_space'> </span>{
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx952' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>7</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\n”</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 id='lstnumberx953' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>8</span></span> 
 +                
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx954' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>82</span></span>+                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='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 id='lstnumberx955' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>10</span></span> 
 +                <span class='ltx_text ltx_lst_space'> </span>}
 </div> </div>
-<div class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text ltx_font_italic' style='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'+</figure
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text ltx_font_italic' style='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 id='Ch10.S1.SS1.p8' class='ltx_para'> 
 +<class='ltx_p'>If you compile this version the compiler will point out that it expected a function which satisfies</p>
 </div> </div>
-<div class='ltx_listingline'> +<figure id='LST57' class='ltx_float ltx_lstlisting'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text ltx_font_italic' style='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>+<figcaption class='ltx_caption'><span class='ltx_tag ltx_tag_float'>Listing 57: </span>expected type</figcaption> 
 +<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,IGludCBhZGQgKGRvdWJsZSBTQUNsX3gsIGRvdWJsZSBTQUNsX3kpOw=='></a></div> 
 +<div id='lstnumberx956' class='ltx_listingline'> 
 +                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>1</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'>add</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'>SACl_x</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'>SACl_y</span>);
 </div> </div>
-<div class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text ltx_font_italic' style='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'+</figure
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text ltx_font_italic' style='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 id='Ch10.S1.SS1.p9' class='ltx_para'> 
 +<class='ltx_p'>and not the actually implemented one:</p>
 </div> </div>
-<div class='ltx_listingline'> +<figure id='LST58' class='ltx_float ltx_lstlisting'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text ltx_font_italic' style='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>+<figcaption class='ltx_caption'><span class='ltx_tag ltx_tag_float'>Listing 58: </span>actual type</figcaption> 
 +<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,IGludCBhZGQoaW50IHgsIGludCB5KTs='>⬇</a></div> 
 +<div id='lstnumberx957' class='ltx_listingline'> 
 +                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>1</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'>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'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text ltx_font_italic' style='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'> +</figure> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text ltx_font_italic' style='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 id='Ch10.S1.SS1.p10' class='ltx_para ltx_align_center'> 
 +<class='ltx_p'> 
 +<span class='ltx_inline-para ltx_minipage ltx_align_middle ltx_framed_rectangle' style='width:390.3pt;'> 
 +<span id='Ch10.S1.SS1.p10.p1' class='ltx_para'> 
 +<span class='ltx_p'><span class='ltx_text ltx_font_bold'>A note for proper software engineers:</span></span> 
 +<span class='ltx_p'><span class='ltx_text ltx_font_italic'>You always want to include your header file here; just to make sure that you 
 +got the interface right!</span></span> 
 +</span></span> 
 +</p>
 </div> </div>
-<div class='ltx_listingline'+<div id='Ch10.S1.SS1.p11' class='ltx_para'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text ltx_font_italic' style='color:#BFBFBF;'>92</span></span><span class='ltx_text ltx_lst_space ltx_font_italic'>   </span><span class='ltx_text ltx_font_italic'>*/</span>+<class='ltx_p'>Sometimes, a given <span class='ltx_text ltx_font_smallcaps'>C</span> function is supposed to return more than one value or the programmer wants to allow the function 
 +to change a value in the calling context. This is typically implemented by passing a pointer to the to-be-changed 
 +argument or to the expected extra return value as an argument. 
 +Let us consider a slight variant of our simple example here:</p>
 </div> </div>
-<div class='ltx_listingline'> +<figure id='LST59' class='ltx_float ltx_lstlisting'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>93</span></span>+<figcaption class='ltx_caption'><span class='ltx_tag ltx_tag_float'>Listing 59: </span>addto function in C</figcaption> 
 +<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,ICNpbmNsdWRlICJzaW1wbGUuaCIKCiB2b2lkIGFkZHRvKGludCAqeCwgaW50IHkpCiB7CiAgICp4ICs9IHk7CiB9'>⬇</a></div> 
 +<div id='lstnumberx958' class='ltx_listingline'> 
 +                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>1</span></span> 
 +                <span class='ltx_text ltx_lst_space'> </span>#<span class='ltx_text ltx_lst_identifier'>include</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_string'>”simple.h”</span>
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx959' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>2</span></span> 
 +                
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx960' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>3</span></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'>addto</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 id='lstnumberx961' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>4</span></span> 
 +                <span class='ltx_text ltx_lst_space'> </span>{
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx962' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>5</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><span class='ltx_text ltx_lst_identifier'>y</span>;
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx963' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>6</span></span> 
 +                <span class='ltx_text ltx_lst_space'> </span>}
 </div> </div>
-<div class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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'> +</figure> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>100</span></span>+<div id='Ch10.S1.SS1.p12' class='ltx_para'> 
 +<class='ltx_p'>Since <span class='ltx_text ltx_font_smallcaps'>SaC</span> doe not have the notion of explicit memory or even side-effects, one may think that such a function 
 +cannot be used from <span class='ltx_text ltx_font_smallcaps'>SaC</span>. The key idea for enabling the use of this function is to disentangle the memory aspect from 
 +the purely operational one. This still is an addition operation as before. The only difference is that the result 
 +has been ”mapped“ into the first argument. 
 +We can model this in <span class='ltx_text ltx_font_smallcaps'>SaC</span> by telling the compiler that the this mapping of the result into the first argument actually 
 +has taken place:</p>
 </div> </div>
-<div class='ltx_listingline'> +<figure id='LST60' class='ltx_float ltx_lstlisting'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>101</span></span><span class='ltx_text ltx_lst_space'>   </span><span class='ltx_text ltx_lst_comment ltx_font_italic'>/*</span>+<figcaption class='ltx_caption'><span class='ltx_tag ltx_tag_float'>Listing 60: </span>addto 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_data'><a href='data:text/plain;base64,IGV4dGVybmFsIGludCBhZGR0byhpbnQgeCwgaW50IHkpOwogICAjcHJhZ21hIGxpbmtvYmogICJzaW1wbGUubyIKICAgI3ByYWdtYSBoZWFkZXIgICAic2ltcGxlLmgiCiAgICNwcmFnbWEgbGlua3NpZ24gWzEsMSwyXQoKIGludCBtYWluKCkKIHsKICAgU3RkSU86OnByaW50ZigiMSBwbHVzIDEgaXMgJWRcbiIsIGFkZHRvKCAxLCAxKSk7CgogICByZXR1cm4gMDsKIH0='>⬇</a></div> 
 +<div id='lstnumberx964' class='ltx_listingline'> 
 +                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>1</span></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_keyword ltx_font_bold'>int</span><span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>addto</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 id='lstnumberx965' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text ltx_font_italic' style='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_listingline'><span class='ltx_text' style='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_identifier'>linkobj</span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_string'>”simple.o”</span>
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx966' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text ltx_font_italic' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>3</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'>header</span><span class='ltx_text ltx_lst_space'>   </span><span class='ltx_text ltx_lst_string'>”simple.h”</span>
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx967' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text ltx_font_italic' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>4</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'>linksign</span><span class='ltx_text ltx_lst_space'> </span>[1,1,2]
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx968' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text ltx_font_italic' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>5</span></span> 
 +                
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx969' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text ltx_font_italic' style='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_listingline'><span class='ltx_text' style='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'>main</span>()
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx970' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='color:#BFBFBF;'>107</span></span>+                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>7</span></span> 
 +                <span class='ltx_text ltx_lst_space'> </span>{
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx971' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>8</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\n”</span>,<span class='ltx_text ltx_lst_space'> </span><span class='ltx_text ltx_lst_identifier'>addto</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 id='lstnumberx972' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>9</span></span> 
 +                
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx973' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>10</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 id='lstnumberx974' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>11</span></span> 
 +                <span class='ltx_text ltx_lst_space'> </span>}
 </div> </div>
-<div class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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'> +</figure> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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 id='Ch10.S1.SS1.p13' class='ltx_para'> 
 +<p class='ltx_p'>The pragma <span class='ltx_text ltx_font_typewriter'>linksign</span> tells the compiler where to map each of the return types and arguments into. 
 +The first entry of the vector after the keyword <span class='ltx_text ltx_font_typewriter'>linksign</span> tells the compiler that the return value 
 +will be the first argument. The next one refers to the first argument. This mapping of a return value to the 
 +same position as one argument tells the compiler that this will require a ”pointer-construction“.</p> 
 +</div> 
 +<div id='Thmtheorem35' class='ltx_theorem ltx_theorem_theorem'> 
 +<h6 class='ltx_title ltx_runin ltx_font_bold ltx_title_theorem'>Exercise 35. </h6> 
 +<div id='Thmtheorem35.p1' class='ltx_para'> 
 +<p class='ltx_p'>Play around with the linksign pragma and find out what the restrictions are. 
 +How do you have to define the linksign pragma to get the same signature as in the 
 +<span class='ltx_text ltx_font_typewriter'>add</span> example?</p> 
 +</div> 
 +</div> 
 +<div id='Ch10.S1.SS1.p14' class='ltx_para'> 
 +<p class='ltx_p'>As you have seen, the linksign pragma allows for quite some messing around with the signature. 
 +In particular disentangling in-out-parameters like the first argument of <span class='ltx_text ltx_font_typewriter'>addto</span> often 
 +creates the desire to change the name of the function. This also is needed when names that exist 
 +in a given library clash with names from those of another library. 
 +To facilitate this as well, <span class='ltx_text ltx_font_smallcaps'>SaC</span> provides yet another pragma named ”linkname“. 
 +With it, our simple example can finally be written as:</p> 
 +</div> 
 +<figure id='LST61' class='ltx_float ltx_lstlisting'> 
 +<figcaption class='ltx_caption'><span class='ltx_tag ltx_tag_float'>Listing 61: </span>addto 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_data'><a href='data:text/plain;base64,IGV4dGVybmFsIGludCBhZGQoaW50IHgsIGludCB5KTsKICAgI3ByYWdtYSBsaW5rb2JqICAic2ltcGxlLm8iCiAgICNwcmFnbWEgaGVhZGVyICAgInNpbXBsZS5oIgogICAjcHJhZ21hIGxpbmtzaWduIFsxLDEsMl0KICAgI3ByYWdtYSBsaW5rbmFtZSAiYWRkdG8iCgogaW50IG1haW4oKQogewogICBTdGRJTzo6cHJpbnRmKCIxIHBsdXMgMSBpcyAlZFxuIiwgYWRkKCAxLCAxKSk7CgogICByZXR1cm4gMDsKIH0='>⬇</a></div> 
 +<div id='lstnumberx975' class='ltx_listingline'> 
 +                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>1</span></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_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 id='lstnumberx976' class='ltx_listingline'> 
 +                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='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_identifier'>linkobj</span><span class='ltx_text ltx_lst_space'>  </span><span class='ltx_text ltx_lst_string'>”simple.o”</span> 
 +</div> 
 +<div id='lstnumberx977' class='ltx_listingline'> 
 +                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>3</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'>header</span><span class='ltx_text ltx_lst_space'>   </span><span class='ltx_text ltx_lst_string'>simple.h”</span> 
 +</div> 
 +<div id='lstnumberx978' class='ltx_listingline'> 
 +                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>4</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'>linksign</span><span class='ltx_text ltx_lst_space'> </span>[1,1,2] 
 +</div> 
 +<div id='lstnumberx979' class='ltx_listingline'> 
 +                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>5</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'>”addto”</span> 
 +</div> 
 +<div id='lstnumberx980' class='ltx_listingline'> 
 +                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>6</span></span> 
 +                 
 +</div> 
 +<div id='lstnumberx981' class='ltx_listingline'> 
 +                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='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'>main</span>() 
 +</div> 
 +<div id='lstnumberx982' class='ltx_listingline'> 
 +                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>8</span></span> 
 +                <span class='ltx_text ltx_lst_space'> </span>
 +</div> 
 +<div id='lstnumberx983' class='ltx_listingline'> 
 +                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>9</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\n”</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 id='lstnumberx984' class='ltx_listingline'> 
 +                  <span class='ltx_tag ltx_tag_listingline'><span class='ltx_text' style='color:#BFBFBF;'>10</span></span> 
 +                
 </div> </div>
-<div class='ltx_listingline'> +<div id='lstnumberx985' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='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 id='lstnumberx986' class='ltx_listingline'> 
-<span class='ltx_tag ltx_tag_listing'><span class='ltx_text' style='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_listingline'><span class='ltx_text' style='color:#BFBFBF;'>12</span></span> 
 +                <span class='ltx_text ltx_lst_space'> </span>}
 </div> </div>
 </div> </div>
 </figure> </figure>
 +</section>
 +<section id='Ch10.S1.SS2' class='ltx_subsection'>
 +<h5 class='ltx_title ltx_title_subsection'>
 +<span class='ltx_tag ltx_tag_subsection'>10.1.2 </span>Dealing with non-scalar arrays</h5>
 +
 +<div id='Ch10.S1.SS2.p1' class='ltx_para'>
 +<p class='ltx_p'>In principle, all the pragmas described in this lesson so far carry over to non-scalar arrays.</p>
 +</div>
 +</section>
 +<section id='Ch10.S1.SS3' class='ltx_subsection'>
 +<h5 class='ltx_title ltx_title_subsection'>
 +<span class='ltx_tag ltx_tag_subsection'>10.1.3 </span>Stateful <span class='ltx_text ltx_font_smallcaps'>C</span> functions</h5>
 +
 </section> </section>
 </section> </section>
Line 7260: Line 8615:
 </div> </div>
 <footer class='ltx_page_footer'> <footer class='ltx_page_footer'>
-<div class='ltx_page_logo'>Generated  on Fri Mar 24 19:34:06 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 class='ltx_page_logo'>Generated  on Mon Mar 14 17:52:01 2022 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>
 </body> </body>
 </html> </html>
 +