Warning, file /frameworks/syntax-highlighting/autotests/html/highlight.tig.dark.html was not indexed or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).

0001 <!DOCTYPE html>
0002 <html><head>
0003 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
0004 <title>highlight.tig</title>
0005 <meta name="generator" content="KF5::SyntaxHighlighting - Definition (Tiger) - Theme (Breeze Dark)"/>
0006 </head><body style="background-color:#232629;color:#cfcfc2"><pre>
0007 <span style="color:#7a7c7d;">/* Mandelbrot integer demo</span>
0008 <span style="color:#7a7c7d;"> * Released under the MIT License</span>
0009 <span style="color:#7a7c7d;"> */</span>
0010 
0011 <span style="font-weight:bold;">let</span>
0012   <span style="color:#7a7c7d;">/* Basic types.  */</span>
0013   <span style="font-weight:bold;">type</span> bool <span style="color:#3f8058;">=</span> <span style="color:#2980b9;">int</span>
0014   <span style="font-weight:bold;">type</span> coord <span style="color:#3f8058;">=</span> <span style="color:#2980b9;">int</span>
0015   <span style="font-weight:bold;">type</span> value <span style="color:#3f8058;">=</span> <span style="color:#2980b9;">int</span>
0016   <span style="font-weight:bold;">type</span> array2d <span style="color:#3f8058;">=</span> <span style="font-weight:bold;">array</span> <span style="font-weight:bold;">of</span> value
0017   <span style="font-weight:bold;">type</span> image2d <span style="color:#3f8058;">=</span> { nrows <span style="color:#3f8058;">:</span> coord<span style="color:#3f8058;">,</span> ncols <span style="color:#3f8058;">:</span> coord<span style="color:#3f8058;">,</span> data <span style="color:#3f8058;">:</span> array2d }
0018 
0019   <span style="color:#7a7c7d;">/* Image creation.  */</span>
0020   <span style="font-weight:bold;">function</span> image_new (ncols <span style="color:#3f8058;">:</span> coord<span style="color:#3f8058;">,</span> nrows <span style="color:#3f8058;">:</span> coord) <span style="color:#3f8058;">:</span> image2d <span style="color:#3f8058;">=</span>
0021     image2d { nrows <span style="color:#3f8058;">=</span> nrows<span style="color:#3f8058;">,</span> ncols <span style="color:#3f8058;">=</span> ncols<span style="color:#3f8058;">,</span>
0022           data <span style="color:#3f8058;">=</span> array2d[nrows <span style="color:#3f8058;">*</span> ncols] <span style="font-weight:bold;">of</span> <span style="color:#f67400;">0</span> }
0023 
0024   <span style="font-weight:bold;">function</span> image_set (input <span style="color:#3f8058;">:</span> image2d<span style="color:#3f8058;">,</span> col <span style="color:#3f8058;">:</span> coord<span style="color:#3f8058;">,</span> row <span style="color:#3f8058;">:</span> coord<span style="color:#3f8058;">,</span>
0025               value <span style="color:#3f8058;">:</span> value) <span style="color:#3f8058;">=</span>
0026     (
0027       input<span style="color:#3f8058;">.</span>data[row <span style="color:#3f8058;">*</span> input<span style="color:#3f8058;">.</span>ncols <span style="color:#3f8058;">+</span> col] <span style="color:#3f8058;">:=</span> value
0028     )
0029 
0030   <span style="font-weight:bold;">function</span> mandelbrot () <span style="color:#3f8058;">=</span>
0031     <span style="font-weight:bold;">let</span>
0032       <span style="font-weight:bold;">type</span> fp <span style="color:#3f8058;">=</span> <span style="color:#2980b9;">int</span>
0033       <span style="font-weight:bold;">var</span> X <span style="color:#3f8058;">:</span> <span style="color:#2980b9;">int</span> <span style="color:#3f8058;">:=</span> <span style="color:#f67400;">300</span>
0034       <span style="font-weight:bold;">var</span> Y <span style="color:#3f8058;">:</span> <span style="color:#2980b9;">int</span> <span style="color:#3f8058;">:=</span> <span style="color:#f67400;">300</span>
0035       <span style="font-weight:bold;">var</span> ima <span style="color:#3f8058;">:</span> image2d <span style="color:#3f8058;">:=</span> image_new (X<span style="color:#3f8058;">,</span> Y)
0036       <span style="font-weight:bold;">var</span> fixsize<span style="color:#3f8058;">:</span> <span style="color:#2980b9;">int</span> <span style="color:#3f8058;">:=</span> <span style="color:#f67400;">16834</span>
0037 
0038       <span style="font-weight:bold;">function</span> mul(a <span style="color:#3f8058;">:</span> fp<span style="color:#3f8058;">,</span> b <span style="color:#3f8058;">:</span> fp) <span style="color:#3f8058;">:</span> fp <span style="color:#3f8058;">=</span> (a<span style="color:#3f8058;">*</span>b)<span style="color:#3f8058;">/</span>fixsize
0039       <span style="font-weight:bold;">function</span> frac(n <span style="color:#3f8058;">:</span> <span style="color:#2980b9;">int</span><span style="color:#3f8058;">,</span> d <span style="color:#3f8058;">:</span> <span style="color:#2980b9;">int</span>) <span style="color:#3f8058;">:</span> fp <span style="color:#3f8058;">=</span> (n<span style="color:#3f8058;">*</span>fixsize)<span style="color:#3f8058;">/</span>d
0040 
0041       <span style="font-weight:bold;">var</span> xcenter <span style="color:#3f8058;">:</span> fp <span style="color:#3f8058;">:=</span> frac(<span style="color:#f67400;">0016</span><span style="color:#3f8058;">,</span> <span style="color:#f67400;">10000</span>)
0042       <span style="font-weight:bold;">var</span> ycenter <span style="color:#3f8058;">:</span> fp <span style="color:#3f8058;">:=</span> frac(<span style="color:#f67400;">8224</span><span style="color:#3f8058;">,</span> <span style="color:#f67400;">10000</span>)
0043       <span style="font-weight:bold;">var</span> xmin <span style="color:#3f8058;">:</span> fp <span style="color:#3f8058;">:=</span> xcenter <span style="color:#3f8058;">-</span> frac(<span style="color:#f67400;">5</span><span style="color:#3f8058;">,</span><span style="color:#f67400;">100</span>)
0044       <span style="font-weight:bold;">var</span> ymin <span style="color:#3f8058;">:</span> fp <span style="color:#3f8058;">:=</span> ycenter <span style="color:#3f8058;">-</span> frac(<span style="color:#f67400;">5</span><span style="color:#3f8058;">,</span><span style="color:#f67400;">100</span>)
0045       <span style="font-weight:bold;">var</span> xmax <span style="color:#3f8058;">:</span> fp <span style="color:#3f8058;">:=</span> xcenter <span style="color:#3f8058;">+</span> frac(<span style="color:#f67400;">5</span><span style="color:#3f8058;">,</span><span style="color:#f67400;">100</span>)
0046       <span style="font-weight:bold;">var</span> ymax <span style="color:#3f8058;">:</span> fp <span style="color:#3f8058;">:=</span> ycenter <span style="color:#3f8058;">+</span> frac(<span style="color:#f67400;">5</span><span style="color:#3f8058;">,</span><span style="color:#f67400;">100</span>)
0047       <span style="font-weight:bold;">var</span> xs   <span style="color:#3f8058;">:</span> fp <span style="color:#3f8058;">:=</span> (xmax <span style="color:#3f8058;">-</span> xmin)<span style="color:#3f8058;">/</span>X
0048       <span style="font-weight:bold;">var</span> ys   <span style="color:#3f8058;">:</span> fp <span style="color:#3f8058;">:=</span> (ymax <span style="color:#3f8058;">-</span> ymin)<span style="color:#3f8058;">/</span>Y
0049 
0050     <span style="font-weight:bold;">function</span> iterations(x<span style="color:#3f8058;">:</span><span style="color:#2980b9;">int</span><span style="color:#3f8058;">,</span> y<span style="color:#3f8058;">:</span><span style="color:#2980b9;">int</span>) <span style="color:#3f8058;">:</span> <span style="color:#2980b9;">int</span> <span style="color:#3f8058;">=</span>
0051     <span style="font-weight:bold;">let</span>
0052         <span style="font-weight:bold;">var</span> i <span style="color:#3f8058;">:</span> <span style="color:#2980b9;">int</span> <span style="color:#3f8058;">:=</span> <span style="color:#f67400;">0</span>
0053         <span style="font-weight:bold;">var</span> p <span style="color:#3f8058;">:</span> fp <span style="color:#3f8058;">:=</span> xmin<span style="color:#3f8058;">+</span>x<span style="color:#3f8058;">*</span>xs
0054         <span style="font-weight:bold;">var</span> q <span style="color:#3f8058;">:</span> fp <span style="color:#3f8058;">:=</span> ymin<span style="color:#3f8058;">+</span>y<span style="color:#3f8058;">*</span>ys
0055         <span style="font-weight:bold;">var</span> x0 <span style="color:#3f8058;">:</span> fp <span style="color:#3f8058;">:=</span> <span style="color:#f67400;">0</span>
0056         <span style="font-weight:bold;">var</span> y0 <span style="color:#3f8058;">:</span> fp <span style="color:#3f8058;">:=</span> <span style="color:#f67400;">0</span>
0057         <span style="font-weight:bold;">var</span> xn <span style="color:#3f8058;">:</span> fp <span style="color:#3f8058;">:=</span> <span style="color:#f67400;">0</span>
0058         <span style="font-weight:bold;">var</span> four <span style="color:#3f8058;">:</span> fp <span style="color:#3f8058;">:=</span> frac(<span style="color:#f67400;">4</span><span style="color:#3f8058;">,</span><span style="color:#f67400;">1</span>)
0059         <span style="font-weight:bold;">var</span> two  <span style="color:#3f8058;">:</span> fp <span style="color:#3f8058;">:=</span> frac(<span style="color:#f67400;">2</span><span style="color:#3f8058;">,</span><span style="color:#f67400;">1</span>)
0060     <span style="font-weight:bold;">in</span>
0061         <span style="color:#fdbc4b;font-weight:bold;">while</span> (mul(xn<span style="color:#3f8058;">,</span>xn)<span style="color:#3f8058;">+</span>mul(y0<span style="color:#3f8058;">,</span>y0) <span style="color:#3f8058;">&lt;</span> four) <span style="color:#3f8058;">&amp;</span> (i <span style="color:#3f8058;">&lt;</span> <span style="color:#f67400;">256</span>) <span style="color:#fdbc4b;font-weight:bold;">do</span>
0062         (
0063             i  <span style="color:#3f8058;">:=</span> i <span style="color:#3f8058;">+</span> <span style="color:#f67400;">1</span><span style="color:#3f8058;">;</span>
0064             xn <span style="color:#3f8058;">:=</span> mul((x0<span style="color:#3f8058;">+</span>y0)<span style="color:#3f8058;">,</span>(x0<span style="color:#3f8058;">-</span>y0)) <span style="color:#3f8058;">+</span> p<span style="color:#3f8058;">;</span>
0065             y0 <span style="color:#3f8058;">:=</span> mul(two<span style="color:#3f8058;">,</span>mul(x0<span style="color:#3f8058;">,</span>y0)) <span style="color:#3f8058;">+</span> q<span style="color:#3f8058;">;</span>
0066             x0 <span style="color:#3f8058;">:=</span> xn
0067         )<span style="color:#3f8058;">;</span>
0068         i
0069     <span style="font-weight:bold;">end</span>
0070 
0071     <span style="font-weight:bold;">in</span>
0072 
0073     (<span style="color:#fdbc4b;font-weight:bold;">for</span> y <span style="color:#3f8058;">:=</span> <span style="color:#f67400;">0</span> <span style="color:#fdbc4b;font-weight:bold;">to</span> (Y<span style="color:#3f8058;">-</span><span style="color:#f67400;">1</span>) <span style="color:#fdbc4b;font-weight:bold;">do</span>
0074         <span style="color:#fdbc4b;font-weight:bold;">for</span> x <span style="color:#3f8058;">:=</span> <span style="color:#f67400;">0</span> <span style="color:#fdbc4b;font-weight:bold;">to</span> (X<span style="color:#3f8058;">-</span><span style="color:#f67400;">1</span>) <span style="color:#fdbc4b;font-weight:bold;">do</span>
0075             <span style="font-weight:bold;">let</span>
0076                 <span style="font-weight:bold;">var</span> i <span style="color:#3f8058;">:</span> <span style="color:#2980b9;">int</span>  <span style="color:#3f8058;">:=</span> iterations(x<span style="color:#3f8058;">,</span>y)
0077              <span style="font-weight:bold;">in</span>
0078                 image_set (ima<span style="color:#3f8058;">,</span> x<span style="color:#3f8058;">,</span> y<span style="color:#3f8058;">,</span> i)
0079              <span style="font-weight:bold;">end</span>)<span style="color:#3f8058;">;</span>
0080     <span style="font-weight:bold;">end</span>
0081 <span style="font-weight:bold;">in</span>
0082     <span style="color:#8e44ad;">print</span>(<span style="color:#f44f4f;">&quot;Mandelbrot demo</span><span style="color:#3daee9;">\n</span><span style="color:#f44f4f;">&quot;</span>)<span style="color:#3f8058;">;</span>
0083     mandelbrot()
0084 <span style="font-weight:bold;">end</span>
0085 </pre></body></html>