﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<?application progid="SMath Studio Desktop" version="0.99.7109.29964"?>
<worksheet xmlns="http://smath.info/schemas/worksheet/1.0">
  <settings ppi="96">
    <identity>
      <id>9077b962-e880-46c9-b421-46f89e031ad4</id>
      <revision>78</revision>
    </identity>
    <calculation>
      <precision>4</precision>
      <exponentialThreshold>5</exponentialThreshold>
      <trailingZeros>false</trailingZeros>
      <significantDigitsMode>false</significantDigitsMode>
      <roundingMode>0</roundingMode>
      <fractions>decimal</fractions>
    </calculation>
    <pageModel active="true" viewMode="0" printGrid="false" printAreas="true" simpleEqualsOnly="false" printBackgroundImages="true">
      <paper id="9" orientation="Portrait" width="827" height="1169" />
      <margins left="39" right="39" top="39" bottom="39" />
      <header alignment="Center" color="#a9a9a9">&amp;[DATE] &amp;[TIME] - &amp;[FILENAME]</header>
      <footer alignment="Center" color="#a9a9a9">&amp;[PAGENUM] / &amp;[COUNT]</footer>
      <backgrounds />
    </pageModel>
    <dependencies>
      <assembly name="SMath Studio Desktop" version="0.99.7109.29964" guid="a37cba83-b69c-4c71-9992-55ff666763bd" />
      <assembly name="Math Region" version="0.99.7109.29964" guid="02f1ab51-215b-466e-a74d-5d8b1cf85e8d" />
      <assembly name="Slider Region" version="1.0.7100.22009" guid="0c864749-6fe8-4f62-a74d-f6ac601e52a5" />
      <assembly name="SpecialFunctions" version="1.12.7109.29964" guid="2814e667-4e12-48b1-8d51-194e480eabc5" />
      <assembly name="TextRegion" version="1.11.7109.29964" guid="485d28c5-349a-48b6-93be-12a35a1c1e39" />
      <assembly name="PlotRegion" version="1.11.7109.29964" guid="c451c2b5-798b-4f08-b9ec-b90963d1ddaa" />
    </dependencies>
  </settings>
  <regions type="content">
    <region id="0" top="18" color="#000000" bgColor="#ffffff">
      <area collapsed="true">
        <title lang="eng">
          <p>Sudoku Brute Force Solver</p>
        </title>
      </area>
      <region id="1" left="18" top="54" width="681" height="753" color="#000000" bgColor="#ffffff" fontSize="10">
        <math optimize="2">
          <input>
            <e type="operand">Π</e>
            <e type="function" args="1">Sudoku</e>
            <e type="operand">M</e>
            <e type="operand">Π</e>
            <e type="operator" args="2">:</e>
            <e type="operand">S</e>
            <e type="operand">0</e>
            <e type="operator" args="2">:</e>
            <e type="operand">s</e>
            <e type="operand">0</e>
            <e type="operator" args="2">:</e>
            <e type="operand">ν</e>
            <e type="operand">0</e>
            <e type="operator" args="2">:</e>
            <e type="operand">U</e>
            <e type="operand">0</e>
            <e type="operator" args="2">:</e>
            <e type="operand">n</e>
            <e type="operand">1</e>
            <e type="operator" args="2">:</e>
            <e type="operand">no</e>
            <e type="operand">1</e>
            <e type="operator" args="2">:</e>
            <e type="operand">1</e>
            <e type="operand">7</e>
            <e type="function" args="9">mat</e>
            <e type="operand">λ</e>
            <e type="operand">1</e>
            <e type="operand">81</e>
            <e type="function" args="2">range</e>
            <e type="operand">M</e>
            <e type="operand">λ</e>
            <e type="function" args="2">el</e>
            <e type="operand">0</e>
            <e type="operator" args="2">≡</e>
            <e type="operand">U</e>
            <e type="operand">ν</e>
            <e type="operand">ν</e>
            <e type="operand">1</e>
            <e type="operator" args="2">+</e>
            <e type="operator" args="2">:</e>
            <e type="function" args="2">el</e>
            <e type="operand">λ</e>
            <e type="operator" args="2">:</e>
            <e type="operand">continue</e>
            <e type="function" args="3">if</e>
            <e type="function" args="3">for</e>
            <e type="operand">n</e>
            <e type="operand">ν</e>
            <e type="operator" args="2">≤</e>
            <e type="operand">S</e>
            <e type="operand">s</e>
            <e type="operand">s</e>
            <e type="operand">1</e>
            <e type="operator" args="2">+</e>
            <e type="operator" args="2">:</e>
            <e type="function" args="2">el</e>
            <e type="operand">M</e>
            <e type="operator" args="2">:</e>
            <e type="operand">r</e>
            <e type="operand">U</e>
            <e type="operand">n</e>
            <e type="function" args="2">el</e>
            <e type="operand">1</e>
            <e type="operator" args="2">-</e>
            <e type="operand">9</e>
            <e type="operator" args="2">/</e>
            <e type="function" args="1">trunc</e>
            <e type="operand">1</e>
            <e type="operator" args="2">+</e>
            <e type="operator" args="2">:</e>
            <e type="operand">c</e>
            <e type="operand">U</e>
            <e type="operand">n</e>
            <e type="function" args="2">el</e>
            <e type="operand">1</e>
            <e type="operator" args="2">-</e>
            <e type="operand">9</e>
            <e type="function" args="2">mod</e>
            <e type="operand">1</e>
            <e type="operator" args="2">+</e>
            <e type="operator" args="2">:</e>
            <e type="operand">1</e>
            <e type="operand">2</e>
            <e type="function" args="4">mat</e>
            <e type="operand">ro</e>
            <e type="operand">3</e>
            <e type="operand">r</e>
            <e type="operand">1</e>
            <e type="operator" args="2">-</e>
            <e type="operand">3</e>
            <e type="operator" args="2">/</e>
            <e type="function" args="1">trunc</e>
            <e type="operator" args="2">*</e>
            <e type="operand">1</e>
            <e type="operator" args="2">+</e>
            <e type="operator" args="2">:</e>
            <e type="operand">co</e>
            <e type="operand">3</e>
            <e type="operand">c</e>
            <e type="operand">1</e>
            <e type="operator" args="2">-</e>
            <e type="operand">3</e>
            <e type="operator" args="2">/</e>
            <e type="function" args="1">trunc</e>
            <e type="operator" args="2">*</e>
            <e type="operand">1</e>
            <e type="operator" args="2">+</e>
            <e type="operator" args="2">:</e>
            <e type="operand">1</e>
            <e type="operand">2</e>
            <e type="function" args="4">mat</e>
            <e type="operand">N</e>
            <e type="operand">no</e>
            <e type="operand">9</e>
            <e type="function" args="2">range</e>
            <e type="operand">φ</e>
            <e type="operand">0</e>
            <e type="operator" args="2">:</e>
            <e type="operand">k</e>
            <e type="operand">1</e>
            <e type="operand">9</e>
            <e type="function" args="2">range</e>
            <e type="operand">M</e>
            <e type="operand">r</e>
            <e type="operand">k</e>
            <e type="function" args="3">el</e>
            <e type="operand">N</e>
            <e type="operator" args="2">≡</e>
            <e type="bracket">(</e>
            <e type="operand">M</e>
            <e type="operand">k</e>
            <e type="operand">c</e>
            <e type="function" args="3">el</e>
            <e type="operand">N</e>
            <e type="operator" args="2">≡</e>
            <e type="bracket">(</e>
            <e type="operator" args="2">|</e>
            <e type="bracket">(</e>
            <e type="operand">M</e>
            <e type="operand">ro</e>
            <e type="operand">k</e>
            <e type="operand">1</e>
            <e type="operator" args="2">-</e>
            <e type="operand">3</e>
            <e type="function" args="2">mod</e>
            <e type="operator" args="2">+</e>
            <e type="operand">co</e>
            <e type="operand">k</e>
            <e type="operand">1</e>
            <e type="operator" args="2">-</e>
            <e type="operand">3</e>
            <e type="operator" args="2">/</e>
            <e type="function" args="1">trunc</e>
            <e type="operator" args="2">+</e>
            <e type="function" args="3">el</e>
            <e type="operand">N</e>
            <e type="operator" args="2">≡</e>
            <e type="bracket">(</e>
            <e type="operator" args="2">|</e>
            <e type="operand">φ</e>
            <e type="operand">1</e>
            <e type="operator" args="2">:</e>
            <e type="operand">break</e>
            <e type="operand">2</e>
            <e type="operand">1</e>
            <e type="function" args="4">line</e>
            <e type="operand">continue</e>
            <e type="function" args="3">if</e>
            <e type="function" args="3">for</e>
            <e type="operand">φ</e>
            <e type="operand">0</e>
            <e type="operator" args="2">≡</e>
            <e type="operand">M</e>
            <e type="operand">U</e>
            <e type="operand">n</e>
            <e type="function" args="2">el</e>
            <e type="function" args="2">el</e>
            <e type="operand">N</e>
            <e type="operator" args="2">:</e>
            <e type="operand">n</e>
            <e type="operand">n</e>
            <e type="operand">1</e>
            <e type="operator" args="2">+</e>
            <e type="operator" args="2">:</e>
            <e type="operand">no</e>
            <e type="operand">1</e>
            <e type="operator" args="2">:</e>
            <e type="operand">1</e>
            <e type="operand">3</e>
            <e type="function" args="5">mat</e>
            <e type="operand">break</e>
            <e type="operand">2</e>
            <e type="operand">1</e>
            <e type="function" args="4">line</e>
            <e type="operand">φ</e>
            <e type="operand">1</e>
            <e type="operator" args="2">≡</e>
            <e type="bracket">(</e>
            <e type="operand">N</e>
            <e type="operand">9</e>
            <e type="operator" args="2">≡</e>
            <e type="bracket">(</e>
            <e type="operator" args="2">&amp;</e>
            <e type="operand">no</e>
            <e type="operand">10</e>
            <e type="operator" args="2">:</e>
            <e type="operand">no</e>
            <e type="operand">9</e>
            <e type="operator" args="2">&gt;</e>
            <e type="operand">n</e>
            <e type="operand">1</e>
            <e type="operator" args="2">≡</e>
            <e type="operand" style="string">Can't solve the puzzle.</e>
            <e type="function" args="1">error</e>
            <e type="operand">n</e>
            <e type="operand">n</e>
            <e type="operand">1</e>
            <e type="operator" args="2">-</e>
            <e type="operator" args="2">:</e>
            <e type="operand">no</e>
            <e type="operand">M</e>
            <e type="operand">U</e>
            <e type="operand">n</e>
            <e type="function" args="2">el</e>
            <e type="function" args="2">el</e>
            <e type="operand">1</e>
            <e type="operator" args="2">+</e>
            <e type="operator" args="2">:</e>
            <e type="operand">M</e>
            <e type="operand">U</e>
            <e type="operand">n</e>
            <e type="function" args="2">el</e>
            <e type="function" args="2">el</e>
            <e type="operand">0</e>
            <e type="operator" args="2">:</e>
            <e type="operand">1</e>
            <e type="operand">3</e>
            <e type="function" args="5">mat</e>
            <e type="function" args="3">if</e>
            <e type="function" args="2">while</e>
            <e type="operand">break</e>
            <e type="operand">3</e>
            <e type="operand">1</e>
            <e type="function" args="5">line</e>
            <e type="operand">continue</e>
            <e type="function" args="3">if</e>
            <e type="function" args="3">if</e>
            <e type="operand">3</e>
            <e type="operand">1</e>
            <e type="function" args="5">line</e>
            <e type="function" args="3">for</e>
            <e type="operand">4</e>
            <e type="operand">1</e>
            <e type="function" args="6">line</e>
            <e type="function" args="2">while</e>
            <e type="operand">S</e>
            <e type="operand">s</e>
            <e type="operand">s</e>
            <e type="operand">1</e>
            <e type="operator" args="2">+</e>
            <e type="operator" args="2">:</e>
            <e type="function" args="2">el</e>
            <e type="operand">M</e>
            <e type="operator" args="2">:</e>
            <e type="operand">4</e>
            <e type="operand">1</e>
            <e type="function" args="6">line</e>
            <e type="operator" args="2">:</e>
          </input>
        </math>
      </region>
      <region id="2" left="774" top="72" width="242" height="168" color="#000000" bgColor="#ffffff" fontSize="10">
        <text lang="eng">
          <p>Notation:

Π = Puzzle (9x9 matrix)
U = Unsolved (column vector)
ν = lenght(Unsolve)
n = counter for ν
N = sudoku 1-9 number
r,c = row, col of M
ro,co = rowStart, colStart
φ = flag "Not avaible"</p>
        </text>
      </region>
      <region id="3" left="18" top="819" width="647" height="176" color="#000000" bgColor="#ffffff" fontSize="10">
        <math optimize="2">
          <input>
            <e type="operand">M</e>
            <e type="operand">Mo</e>
            <e type="function" args="2">PlotSudoku</e>
            <e type="operand">x</e>
            <e type="operand">0</e>
            <e type="operator" args="2">:</e>
            <e type="operand">y</e>
            <e type="operand">0</e>
            <e type="operator" args="2">:</e>
            <e type="operand">r</e>
            <e type="operand">1</e>
            <e type="operand">M</e>
            <e type="function" args="1">rows</e>
            <e type="function" args="2">range</e>
            <e type="operator" args="2">:</e>
            <e type="operand">c</e>
            <e type="operand">1</e>
            <e type="operand">M</e>
            <e type="function" args="1">cols</e>
            <e type="function" args="2">range</e>
            <e type="operator" args="2">:</e>
            <e type="operand">P</e>
            <e type="operand">0</e>
            <e type="operand">5</e>
            <e type="function" args="2">matrix</e>
            <e type="operator" args="2">:</e>
            <e type="operand">1</e>
            <e type="operand">5</e>
            <e type="function" args="7">mat</e>
            <e type="operand">r</e>
            <e type="operand">1</e>
            <e type="operand">M</e>
            <e type="function" args="1">rows</e>
            <e type="function" args="2">range</e>
            <e type="operand">c</e>
            <e type="operand">1</e>
            <e type="operand">M</e>
            <e type="function" args="1">cols</e>
            <e type="function" args="2">range</e>
            <e type="operand">P</e>
            <e type="operand">P</e>
            <e type="operand">c</e>
            <e type="operand">10</e>
            <e type="operand">r</e>
            <e type="operator" args="2">-</e>
            <e type="operand">M</e>
            <e type="operand">r</e>
            <e type="operand">c</e>
            <e type="function" args="3">el</e>
            <e type="function" args="1">num2str</e>
            <e type="operand">8</e>
            <e type="operand">Mo</e>
            <e type="operand">r</e>
            <e type="operand">c</e>
            <e type="function" args="3">el</e>
            <e type="operand">0</e>
            <e type="operator" args="2">≡</e>
            <e type="operand" style="string">red</e>
            <e type="operand" style="string">blue</e>
            <e type="function" args="3">if</e>
            <e type="operand">1</e>
            <e type="operand">5</e>
            <e type="function" args="7">mat</e>
            <e type="function" args="2">stack</e>
            <e type="function" args="1">eval</e>
            <e type="operator" args="2">:</e>
            <e type="function" args="3">for</e>
            <e type="function" args="3">for</e>
            <e type="operand">P</e>
            <e type="function" args="1">eval</e>
            <e type="operand">3</e>
            <e type="operand">1</e>
            <e type="function" args="5">line</e>
            <e type="operator" args="2">:</e>
          </input>
        </math>
      </region>
      <region id="4" top="999" color="#000000" bgColor="#ffffff">
        <area terminator="true" />
      </region>
    </region>
    <region id="5" top="1026" color="#000000" bgColor="#ffffff">
      <area collapsed="false">
        <title lang="eng">
          <p>Animation</p>
        </title>
      </area>
      <region id="6" left="54" top="1062" width="689" height="40" color="#000000" bgColor="#ffffff" fontSize="10">
        <text lang="eng">
          <p>Very simple problem, for testing purposes. A true problem can take very long time, 
because the procedure store all intermediate steps.</p>
        </text>
      </region>
      <region id="7" left="54" top="1116" width="173" height="171" color="#000000" bgColor="#ffffff" fontSize="10">
        <math>
          <input>
            <e type="operand">M</e>
            <e type="operand">0</e>
            <e type="operand">4</e>
            <e type="operand">8</e>
            <e type="operand">6</e>
            <e type="operand">3</e>
            <e type="operand">0</e>
            <e type="operand">2</e>
            <e type="operand">9</e>
            <e type="operand">1</e>
            <e type="operand">1</e>
            <e type="operand">0</e>
            <e type="operand">3</e>
            <e type="operand">4</e>
            <e type="operand">7</e>
            <e type="operand">0</e>
            <e type="operand">6</e>
            <e type="operand">5</e>
            <e type="operand">8</e>
            <e type="operand">6</e>
            <e type="operand">5</e>
            <e type="operand">0</e>
            <e type="operand">8</e>
            <e type="operand">1</e>
            <e type="operand">9</e>
            <e type="operand">4</e>
            <e type="operand">3</e>
            <e type="operand">7</e>
            <e type="operand">2</e>
            <e type="operand">6</e>
            <e type="operand">5</e>
            <e type="operand">0</e>
            <e type="operand">4</e>
            <e type="operand">8</e>
            <e type="operand">7</e>
            <e type="operand">1</e>
            <e type="operand">3</e>
            <e type="operand">8</e>
            <e type="operand">7</e>
            <e type="operand">9</e>
            <e type="operand">1</e>
            <e type="operand">0</e>
            <e type="operand">3</e>
            <e type="operand">5</e>
            <e type="operand">4</e>
            <e type="operand">6</e>
            <e type="operand">3</e>
            <e type="operand">1</e>
            <e type="operand">4</e>
            <e type="operand">7</e>
            <e type="operand">5</e>
            <e type="operand">6</e>
            <e type="operand">8</e>
            <e type="operand">2</e>
            <e type="operand">9</e>
            <e type="operand">9</e>
            <e type="operand">2</e>
            <e type="operand">7</e>
            <e type="operand">3</e>
            <e type="operand">6</e>
            <e type="operand">4</e>
            <e type="operand">1</e>
            <e type="operand">8</e>
            <e type="operand">5</e>
            <e type="operand">5</e>
            <e type="operand">3</e>
            <e type="operand">6</e>
            <e type="operand">2</e>
            <e type="operand">8</e>
            <e type="operand">1</e>
            <e type="operand">9</e>
            <e type="operand">7</e>
            <e type="operand">4</e>
            <e type="operand">4</e>
            <e type="operand">8</e>
            <e type="operand">1</e>
            <e type="operand">5</e>
            <e type="operand">9</e>
            <e type="operand">7</e>
            <e type="operand">3</e>
            <e type="operand">6</e>
            <e type="operand">0</e>
            <e type="operand">9</e>
            <e type="operand">9</e>
            <e type="function" args="83">mat</e>
            <e type="operator" args="2">:</e>
          </input>
        </math>
      </region>
      <region id="8" left="243" top="1116" width="113" height="26" color="#000000" bgColor="#ffffff" fontSize="10">
        <math optimize="2">
          <input>
            <e type="operand">S</e>
            <e type="operand">M</e>
            <e type="function" args="1">Sudoku</e>
            <e type="operator" args="2">:</e>
          </input>
        </math>
      </region>
      <region id="9" left="243" top="1152" width="147" height="26" color="#000000" bgColor="#ffffff" fontSize="10">
        <math>
          <input>
            <e type="operand">N</e>
            <e type="operand">S</e>
            <e type="function" args="1">length</e>
            <e type="operator" args="2">:</e>
          </input>
          <result action="numeric">
            <e type="operand">9</e>
          </result>
        </math>
      </region>
      <region id="10" left="243" top="1188" width="86" height="26" color="#000000" bgColor="#ffffff" fontSize="10">
        <math>
          <input>
            <e type="operand">n</e>
            <e type="operand">1</e>
            <e type="operand">N</e>
            <e type="function" args="2">range</e>
            <e type="operator" args="2">:</e>
          </input>
        </math>
      </region>
      <region id="11" left="36" top="1314" width="278" height="99" color="#000000" bgColor="#ffffff" fontSize="10">
        <math optimize="0">
          <input>
            <e type="operand">whatever</e>
            <e type="operand" style="string">min</e>
            <e type="operand">1</e>
            <e type="operator" args="2">≡</e>
            <e type="operand" style="string">increment</e>
            <e type="operand">1</e>
            <e type="operator" args="2">≡</e>
            <e type="operand" style="string">maximum value</e>
            <e type="operand">N</e>
            <e type="operator" args="2">≡</e>
            <e type="operand" style="string">TickPosition</e>
            <e type="operand" style="string">both</e>
            <e type="operator" args="2">≡</e>
            <e type="operand" style="string">tickFrequency</e>
            <e type="operand">1</e>
            <e type="operator" args="2">≡</e>
            <e type="operand">5</e>
            <e type="operand">1</e>
            <e type="function" args="7">sys</e>
            <e type="operator" args="2">:</e>
          </input>
        </math>
      </region>
      <region id="12" left="54" top="1467" width="262" height="84" color="#000000" bgColor="#ffffff" fontSize="10">
        <slider settings="whatever" orientation="Horizontal" maxValue="9" minValue="1" value="3" valueLabel="true" increment="1" decimalPlaces="0" tickStyle="Both" tickFrequency="1" ticksLabels="false">
          <input>
            <e type="operand">k</e>
          </input>
        </slider>
      </region>
      <region id="13" left="396" top="1566" width="266" height="40" color="#000000" bgColor="#ffffff" fontSize="10">
        <text lang="eng">
          <p>Can't animate this for n, using
S[n instead S[N</p>
        </text>
      </region>
      <region id="14" left="36" top="1593" width="288" height="216" color="#000000" bgColor="#ffffff" fontSize="10">
        <plot axes="false" type="2d" render="lines" scale_x="2.40259211758516" scale_y="2.87806509765526" scale_z="11.0361368739637" rotate_x="0" rotate_y="0" rotate_z="0" transpose_x="-115" transpose_y="-85" transpose_z="0">
          <input>
            <e type="operand">S</e>
            <e type="operand">N</e>
            <e type="function" args="2">el</e>
            <e type="operand">S</e>
            <e type="operand">k</e>
            <e type="function" args="2">el</e>
            <e type="function" args="2">PlotSudoku</e>
            <e type="operand">1</e>
            <e type="operand">1</e>
            <e type="function" args="3">sys</e>
          </input>
        </plot>
      </region>
      <region id="15" left="387" top="1818" width="61" height="24" color="#000000" bgColor="#ffffff" fontSize="10">
        <text lang="eng">
          <p>Alvaro</p>
        </text>
      </region>
      <region id="16" top="1854" color="#000000" bgColor="#ffffff">
        <area terminator="true" />
      </region>
    </region>
  </regions>
</worksheet>