Warning, /frameworks/syntax-highlighting/autotests/reference/highlight.tig.ref is written in an unsupported language. File is not indexed.
0001 <Comment>/* Mandelbrot integer demo</Comment><br/> 0002 <Comment> * Released under the MIT License</Comment><br/> 0003 <Comment> */</Comment><br/> 0004 <Normal Text></Normal Text><br/> 0005 <Keyword>let</Keyword><br/> 0006 <Normal Text> </Normal Text><Comment>/* Basic types. */</Comment><br/> 0007 <Normal Text> </Normal Text><Keyword>type</Keyword><Normal Text> bool </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Type>int</Type><br/> 0008 <Normal Text> </Normal Text><Keyword>type</Keyword><Normal Text> coord </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Type>int</Type><br/> 0009 <Normal Text> </Normal Text><Keyword>type</Keyword><Normal Text> value </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Type>int</Type><br/> 0010 <Normal Text> </Normal Text><Keyword>type</Keyword><Normal Text> array2d </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Keyword>array</Keyword><Normal Text> </Normal Text><Keyword>of</Keyword><Normal Text> value</Normal Text><br/> 0011 <Normal Text> </Normal Text><Keyword>type</Keyword><Normal Text> image2d </Normal Text><Symbol>=</Symbol><Normal Text> { nrows </Normal Text><Symbol>:</Symbol><Normal Text> coord</Normal Text><Symbol>,</Symbol><Normal Text> ncols </Normal Text><Symbol>:</Symbol><Normal Text> coord</Normal Text><Symbol>,</Symbol><Normal Text> data </Normal Text><Symbol>:</Symbol><Normal Text> array2d }</Normal Text><br/> 0012 <Normal Text></Normal Text><br/> 0013 <Normal Text> </Normal Text><Comment>/* Image creation. */</Comment><br/> 0014 <Normal Text> </Normal Text><Keyword>function</Keyword><Normal Text> image_new (ncols </Normal Text><Symbol>:</Symbol><Normal Text> coord</Normal Text><Symbol>,</Symbol><Normal Text> nrows </Normal Text><Symbol>:</Symbol><Normal Text> coord) </Normal Text><Symbol>:</Symbol><Normal Text> image2d </Normal Text><Symbol>=</Symbol><br/> 0015 <Normal Text> image2d { nrows </Normal Text><Symbol>=</Symbol><Normal Text> nrows</Normal Text><Symbol>,</Symbol><Normal Text> ncols </Normal Text><Symbol>=</Symbol><Normal Text> ncols</Normal Text><Symbol>,</Symbol><br/> 0016 <Normal Text> data </Normal Text><Symbol>=</Symbol><Normal Text> array2d[nrows </Normal Text><Symbol>*</Symbol><Normal Text> ncols] </Normal Text><Keyword>of</Keyword><Normal Text> </Normal Text><Decimal>0</Decimal><Normal Text> }</Normal Text><br/> 0017 <Normal Text></Normal Text><br/> 0018 <Normal Text> </Normal Text><Keyword>function</Keyword><Normal Text> image_set (input </Normal Text><Symbol>:</Symbol><Normal Text> image2d</Normal Text><Symbol>,</Symbol><Normal Text> col </Normal Text><Symbol>:</Symbol><Normal Text> coord</Normal Text><Symbol>,</Symbol><Normal Text> row </Normal Text><Symbol>:</Symbol><Normal Text> coord</Normal Text><Symbol>,</Symbol><br/> 0019 <Normal Text> value </Normal Text><Symbol>:</Symbol><Normal Text> value) </Normal Text><Symbol>=</Symbol><br/> 0020 <Normal Text> (</Normal Text><br/> 0021 <Normal Text> input</Normal Text><Symbol>.</Symbol><Normal Text>data[row </Normal Text><Symbol>*</Symbol><Normal Text> input</Normal Text><Symbol>.</Symbol><Normal Text>ncols </Normal Text><Symbol>+</Symbol><Normal Text> col] </Normal Text><Symbol>:=</Symbol><Normal Text> value</Normal Text><br/> 0022 <Normal Text> )</Normal Text><br/> 0023 <Normal Text></Normal Text><br/> 0024 <Normal Text> </Normal Text><Keyword>function</Keyword><Normal Text> mandelbrot () </Normal Text><Symbol>=</Symbol><br/> 0025 <Normal Text> </Normal Text><Keyword>let</Keyword><br/> 0026 <Normal Text> </Normal Text><Keyword>type</Keyword><Normal Text> fp </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Type>int</Type><br/> 0027 <Normal Text> </Normal Text><Keyword>var</Keyword><Normal Text> X </Normal Text><Symbol>:</Symbol><Normal Text> </Normal Text><Type>int</Type><Normal Text> </Normal Text><Symbol>:=</Symbol><Normal Text> </Normal Text><Decimal>300</Decimal><br/> 0028 <Normal Text> </Normal Text><Keyword>var</Keyword><Normal Text> Y </Normal Text><Symbol>:</Symbol><Normal Text> </Normal Text><Type>int</Type><Normal Text> </Normal Text><Symbol>:=</Symbol><Normal Text> </Normal Text><Decimal>300</Decimal><br/> 0029 <Normal Text> </Normal Text><Keyword>var</Keyword><Normal Text> ima </Normal Text><Symbol>:</Symbol><Normal Text> image2d </Normal Text><Symbol>:=</Symbol><Normal Text> image_new (X</Normal Text><Symbol>,</Symbol><Normal Text> Y)</Normal Text><br/> 0030 <Normal Text> </Normal Text><Keyword>var</Keyword><Normal Text> fixsize</Normal Text><Symbol>:</Symbol><Normal Text> </Normal Text><Type>int</Type><Normal Text> </Normal Text><Symbol>:=</Symbol><Normal Text> </Normal Text><Decimal>16834</Decimal><br/> 0031 <Normal Text></Normal Text><br/> 0032 <Normal Text> </Normal Text><Keyword>function</Keyword><Normal Text> mul(a </Normal Text><Symbol>:</Symbol><Normal Text> fp</Normal Text><Symbol>,</Symbol><Normal Text> b </Normal Text><Symbol>:</Symbol><Normal Text> fp) </Normal Text><Symbol>:</Symbol><Normal Text> fp </Normal Text><Symbol>=</Symbol><Normal Text> (a</Normal Text><Symbol>*</Symbol><Normal Text>b)</Normal Text><Symbol>/</Symbol><Normal Text>fixsize</Normal Text><br/> 0033 <Normal Text> </Normal Text><Keyword>function</Keyword><Normal Text> frac(n </Normal Text><Symbol>:</Symbol><Normal Text> </Normal Text><Type>int</Type><Symbol>,</Symbol><Normal Text> d </Normal Text><Symbol>:</Symbol><Normal Text> </Normal Text><Type>int</Type><Normal Text>) </Normal Text><Symbol>:</Symbol><Normal Text> fp </Normal Text><Symbol>=</Symbol><Normal Text> (n</Normal Text><Symbol>*</Symbol><Normal Text>fixsize)</Normal Text><Symbol>/</Symbol><Normal Text>d</Normal Text><br/> 0034 <Normal Text></Normal Text><br/> 0035 <Normal Text> </Normal Text><Keyword>var</Keyword><Normal Text> xcenter </Normal Text><Symbol>:</Symbol><Normal Text> fp </Normal Text><Symbol>:=</Symbol><Normal Text> frac(</Normal Text><Decimal>0016</Decimal><Symbol>,</Symbol><Normal Text> </Normal Text><Decimal>10000</Decimal><Normal Text>)</Normal Text><br/> 0036 <Normal Text> </Normal Text><Keyword>var</Keyword><Normal Text> ycenter </Normal Text><Symbol>:</Symbol><Normal Text> fp </Normal Text><Symbol>:=</Symbol><Normal Text> frac(</Normal Text><Decimal>8224</Decimal><Symbol>,</Symbol><Normal Text> </Normal Text><Decimal>10000</Decimal><Normal Text>)</Normal Text><br/> 0037 <Normal Text> </Normal Text><Keyword>var</Keyword><Normal Text> xmin </Normal Text><Symbol>:</Symbol><Normal Text> fp </Normal Text><Symbol>:=</Symbol><Normal Text> xcenter </Normal Text><Symbol>-</Symbol><Normal Text> frac(</Normal Text><Decimal>5</Decimal><Symbol>,</Symbol><Decimal>100</Decimal><Normal Text>)</Normal Text><br/> 0038 <Normal Text> </Normal Text><Keyword>var</Keyword><Normal Text> ymin </Normal Text><Symbol>:</Symbol><Normal Text> fp </Normal Text><Symbol>:=</Symbol><Normal Text> ycenter </Normal Text><Symbol>-</Symbol><Normal Text> frac(</Normal Text><Decimal>5</Decimal><Symbol>,</Symbol><Decimal>100</Decimal><Normal Text>)</Normal Text><br/> 0039 <Normal Text> </Normal Text><Keyword>var</Keyword><Normal Text> xmax </Normal Text><Symbol>:</Symbol><Normal Text> fp </Normal Text><Symbol>:=</Symbol><Normal Text> xcenter </Normal Text><Symbol>+</Symbol><Normal Text> frac(</Normal Text><Decimal>5</Decimal><Symbol>,</Symbol><Decimal>100</Decimal><Normal Text>)</Normal Text><br/> 0040 <Normal Text> </Normal Text><Keyword>var</Keyword><Normal Text> ymax </Normal Text><Symbol>:</Symbol><Normal Text> fp </Normal Text><Symbol>:=</Symbol><Normal Text> ycenter </Normal Text><Symbol>+</Symbol><Normal Text> frac(</Normal Text><Decimal>5</Decimal><Symbol>,</Symbol><Decimal>100</Decimal><Normal Text>)</Normal Text><br/> 0041 <Normal Text> </Normal Text><Keyword>var</Keyword><Normal Text> xs </Normal Text><Symbol>:</Symbol><Normal Text> fp </Normal Text><Symbol>:=</Symbol><Normal Text> (xmax </Normal Text><Symbol>-</Symbol><Normal Text> xmin)</Normal Text><Symbol>/</Symbol><Normal Text>X</Normal Text><br/> 0042 <Normal Text> </Normal Text><Keyword>var</Keyword><Normal Text> ys </Normal Text><Symbol>:</Symbol><Normal Text> fp </Normal Text><Symbol>:=</Symbol><Normal Text> (ymax </Normal Text><Symbol>-</Symbol><Normal Text> ymin)</Normal Text><Symbol>/</Symbol><Normal Text>Y</Normal Text><br/> 0043 <Normal Text></Normal Text><br/> 0044 <Normal Text> </Normal Text><Keyword>function</Keyword><Normal Text> iterations(x</Normal Text><Symbol>:</Symbol><Type>int</Type><Symbol>,</Symbol><Normal Text> y</Normal Text><Symbol>:</Symbol><Type>int</Type><Normal Text>) </Normal Text><Symbol>:</Symbol><Normal Text> </Normal Text><Type>int</Type><Normal Text> </Normal Text><Symbol>=</Symbol><br/> 0045 <Normal Text> </Normal Text><Keyword>let</Keyword><br/> 0046 <Normal Text> </Normal Text><Keyword>var</Keyword><Normal Text> i </Normal Text><Symbol>:</Symbol><Normal Text> </Normal Text><Type>int</Type><Normal Text> </Normal Text><Symbol>:=</Symbol><Normal Text> </Normal Text><Decimal>0</Decimal><br/> 0047 <Normal Text> </Normal Text><Keyword>var</Keyword><Normal Text> p </Normal Text><Symbol>:</Symbol><Normal Text> fp </Normal Text><Symbol>:=</Symbol><Normal Text> xmin</Normal Text><Symbol>+</Symbol><Normal Text>x</Normal Text><Symbol>*</Symbol><Normal Text>xs</Normal Text><br/> 0048 <Normal Text> </Normal Text><Keyword>var</Keyword><Normal Text> q </Normal Text><Symbol>:</Symbol><Normal Text> fp </Normal Text><Symbol>:=</Symbol><Normal Text> ymin</Normal Text><Symbol>+</Symbol><Normal Text>y</Normal Text><Symbol>*</Symbol><Normal Text>ys</Normal Text><br/> 0049 <Normal Text> </Normal Text><Keyword>var</Keyword><Normal Text> x0 </Normal Text><Symbol>:</Symbol><Normal Text> fp </Normal Text><Symbol>:=</Symbol><Normal Text> </Normal Text><Decimal>0</Decimal><br/> 0050 <Normal Text> </Normal Text><Keyword>var</Keyword><Normal Text> y0 </Normal Text><Symbol>:</Symbol><Normal Text> fp </Normal Text><Symbol>:=</Symbol><Normal Text> </Normal Text><Decimal>0</Decimal><br/> 0051 <Normal Text> </Normal Text><Keyword>var</Keyword><Normal Text> xn </Normal Text><Symbol>:</Symbol><Normal Text> fp </Normal Text><Symbol>:=</Symbol><Normal Text> </Normal Text><Decimal>0</Decimal><br/> 0052 <Normal Text> </Normal Text><Keyword>var</Keyword><Normal Text> four </Normal Text><Symbol>:</Symbol><Normal Text> fp </Normal Text><Symbol>:=</Symbol><Normal Text> frac(</Normal Text><Decimal>4</Decimal><Symbol>,</Symbol><Decimal>1</Decimal><Normal Text>)</Normal Text><br/> 0053 <Normal Text> </Normal Text><Keyword>var</Keyword><Normal Text> two </Normal Text><Symbol>:</Symbol><Normal Text> fp </Normal Text><Symbol>:=</Symbol><Normal Text> frac(</Normal Text><Decimal>2</Decimal><Symbol>,</Symbol><Decimal>1</Decimal><Normal Text>)</Normal Text><br/> 0054 <Normal Text> </Normal Text><Keyword>in</Keyword><br/> 0055 <Normal Text> </Normal Text><ControlFlow>while</ControlFlow><Normal Text> (mul(xn</Normal Text><Symbol>,</Symbol><Normal Text>xn)</Normal Text><Symbol>+</Symbol><Normal Text>mul(y0</Normal Text><Symbol>,</Symbol><Normal Text>y0) </Normal Text><Symbol><</Symbol><Normal Text> four) </Normal Text><Symbol>&</Symbol><Normal Text> (i </Normal Text><Symbol><</Symbol><Normal Text> </Normal Text><Decimal>256</Decimal><Normal Text>) </Normal Text><ControlFlow>do</ControlFlow><br/> 0056 <Normal Text> (</Normal Text><br/> 0057 <Normal Text> i </Normal Text><Symbol>:=</Symbol><Normal Text> i </Normal Text><Symbol>+</Symbol><Normal Text> </Normal Text><Decimal>1</Decimal><Symbol>;</Symbol><br/> 0058 <Normal Text> xn </Normal Text><Symbol>:=</Symbol><Normal Text> mul((x0</Normal Text><Symbol>+</Symbol><Normal Text>y0)</Normal Text><Symbol>,</Symbol><Normal Text>(x0</Normal Text><Symbol>-</Symbol><Normal Text>y0)) </Normal Text><Symbol>+</Symbol><Normal Text> p</Normal Text><Symbol>;</Symbol><br/> 0059 <Normal Text> y0 </Normal Text><Symbol>:=</Symbol><Normal Text> mul(two</Normal Text><Symbol>,</Symbol><Normal Text>mul(x0</Normal Text><Symbol>,</Symbol><Normal Text>y0)) </Normal Text><Symbol>+</Symbol><Normal Text> q</Normal Text><Symbol>;</Symbol><br/> 0060 <Normal Text> x0 </Normal Text><Symbol>:=</Symbol><Normal Text> xn</Normal Text><br/> 0061 <Normal Text> )</Normal Text><Symbol>;</Symbol><br/> 0062 <Normal Text> i</Normal Text><br/> 0063 <Normal Text> </Normal Text><Keyword>end</Keyword><br/> 0064 <Normal Text></Normal Text><br/> 0065 <Normal Text> </Normal Text><Keyword>in</Keyword><br/> 0066 <Normal Text></Normal Text><br/> 0067 <Normal Text> (</Normal Text><ControlFlow>for</ControlFlow><Normal Text> y </Normal Text><Symbol>:=</Symbol><Normal Text> </Normal Text><Decimal>0</Decimal><Normal Text> </Normal Text><ControlFlow>to</ControlFlow><Normal Text> (Y</Normal Text><Symbol>-</Symbol><Decimal>1</Decimal><Normal Text>) </Normal Text><ControlFlow>do</ControlFlow><br/> 0068 <Normal Text> </Normal Text><ControlFlow>for</ControlFlow><Normal Text> x </Normal Text><Symbol>:=</Symbol><Normal Text> </Normal Text><Decimal>0</Decimal><Normal Text> </Normal Text><ControlFlow>to</ControlFlow><Normal Text> (X</Normal Text><Symbol>-</Symbol><Decimal>1</Decimal><Normal Text>) </Normal Text><ControlFlow>do</ControlFlow><br/> 0069 <Normal Text> </Normal Text><Keyword>let</Keyword><br/> 0070 <Normal Text> </Normal Text><Keyword>var</Keyword><Normal Text> i </Normal Text><Symbol>:</Symbol><Normal Text> </Normal Text><Type>int</Type><Normal Text> </Normal Text><Symbol>:=</Symbol><Normal Text> iterations(x</Normal Text><Symbol>,</Symbol><Normal Text>y)</Normal Text><br/> 0071 <Normal Text> </Normal Text><Keyword>in</Keyword><br/> 0072 <Normal Text> image_set (ima</Normal Text><Symbol>,</Symbol><Normal Text> x</Normal Text><Symbol>,</Symbol><Normal Text> y</Normal Text><Symbol>,</Symbol><Normal Text> i)</Normal Text><br/> 0073 <Normal Text> </Normal Text><Keyword>end</Keyword><Normal Text>)</Normal Text><Symbol>;</Symbol><br/> 0074 <Normal Text> </Normal Text><Keyword>end</Keyword><br/> 0075 <Keyword>in</Keyword><br/> 0076 <Normal Text> </Normal Text><Function>print</Function><Normal Text>(</Normal Text><String>"Mandelbrot demo</String><Escape>\n</Escape><String>"</String><Normal Text>)</Normal Text><Symbol>;</Symbol><br/> 0077 <Normal Text> mandelbrot()</Normal Text><br/> 0078 <Keyword>end</Keyword><br/>