kopia lustrzana https://github.com/backface/turtlestitch
1 wiersz
870 KiB
XML
1 wiersz
870 KiB
XML
<blocks app="Snap! 7, https://snap.berkeley.edu" version="2"><palette><category name="1. SciSnap! globals" color="0,170,170,1"/><category name="5. PlotPad for data plots" color="150,175,80,1"/><category name="4. SQL tools" color="255,150,0,1"/><category name="7. GraphPad for graph operations" color="210,160,0,1"/><category name="8. NNPad for neural networks" color="200,100,0,1"/><category name="3. Data tools" color="220,50,0,1"/><category name="0. My own blocks" color="179,120,0,1"/><category name="2. Math tools" color="0,180,50,1"/><category name="6. ImagePad for image operations" color="200,170,50,1"/></palette><block-definition s="start SciSnap!" type="command" category="1. SciSnap! globals"><comment w="143.1691406249999" collapsed="false">Initialization of SciSnap!</comment><header></header><code></code><translations></translations><inputs></inputs><script><block s="doApplyExtension"><l>src_load(url)</l><list><l>libraries/SciSnapExtensions.js</l></list></block><block s="doWarp"><script><block s="doApplyExtension"><l>SciS_addMenuItemForSciSnapManuals()</l><list></list></block><custom-block s="Switch to SciSnap! logo"></custom-block><custom-block s="set SciSnap! global variables and properties"></custom-block><block s="doApplyExtension"><l>SciS_setvalue(which,value)</l><list><l>Stage size</l><block s="reportNewList"><list><l>800</l><l>600</l></list></block></list></block><block s="doSwitchToCostume"><l>HilbertoLeft</l><comment w="90" collapsed="false">... if sprite Hilberto is available.</comment></block></script></block></script><scripts><script x="319" y="43.800000000000125"><block s="doApplyExtension"><l>src_load(url)</l><list><l>https://emu-online.de/SciSnapExtensions.js</l></list><comment w="90" collapsed="false">alternative server</comment></block></script></scripts></block-definition><block-definition s="set SciSnap! global variables and properties" type="command" category="1. SciSnap! globals"><comment x="0" y="0" w="220.79868031547676" collapsed="false">Creates global variables "SciSnap!Properties", "SciSnap!Data", and "SciSnap!Messages". 
Sets the default values of global SciSnap!-properties for items
typeOfData
width
height
minValue
maxValue
columns
rows
maxSetValue</comment><header></header><code></code><translations></translations><inputs></inputs><script><block s="doWarp"><script><block s="doApplyExtension"><l>var_declare(scope, name)</l><list><l>global</l><l>SciSnap!Properties</l></list></block><block s="doApplyExtension"><l>var_declare(scope, name)</l><list><l>global</l><l>SciSnap!Data</l></list></block><block s="doApplyExtension"><l>var_declare(scope, name)</l><list><l>global</l><l>SciSnap!Messages</l></list></block><block s="doSetVar"><l>SciSnap!Properties</l><block s="reportNewList"><list></list></block></block><block s="doSetVar"><l>SciSnap!Messages</l><block s="reportNewList"><list></list></block></block><block s="doSetVar"><l>SciSnap!Data</l><block s="reportNewList"><list></list></block></block><custom-block s="set SciSnap! global property %s to %s"><l>typeOfData</l><l>not set</l></custom-block><custom-block s="set SciSnap! global property %s to %s"><l>width</l><l>not set</l></custom-block><custom-block s="set SciSnap! global property %s to %s"><l>height</l><l>not set</l></custom-block><custom-block s="set SciSnap! global property %s to %s"><l>minValue</l><l>not set</l></custom-block><custom-block s="set SciSnap! global property %s to %s"><l>maxValue</l><l>not set</l></custom-block><custom-block s="set SciSnap! global property %s to %s"><l>columns</l><l>0</l></custom-block><custom-block s="set SciSnap! global property %s to %s"><l>rows</l><l>0</l></custom-block><custom-block s="set SciSnap! global property %s to %s"><l>maxSetValue</l><l>500</l></custom-block></script></block></script></block-definition><block-definition s="SciSnap! global property %'name'" type="reporter" category="1. SciSnap! globals"><comment x="0" y="0" w="183.33333333333337" collapsed="false">Returns the value of an existing global SciSnap!-property or "not found".

Items:
typeOfData
width
height
minValue
maxValue
columns
rows
maxSetValue</comment><header></header><code></code><translations></translations><inputs><input type="%s">minValue<options>typeOfData
width
height
minValue
maxValue
columns
rows
maxSetValue</options></input></inputs><script><block s="doDeclareVariables"><list><l>result</l><l>h</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>result</l><l>not found</l></block><block s="doSetVar"><l>name</l><block s="reportListItem"><l>1</l><block s="reportTextSplit"><block var="name"/><l> </l></block></block></block><block s="doSetVar"><l>h</l><block s="reportMap"><block s="reifyReporter"><script><block s="doIf"><block s="reportEquals"><block var="name"/><block s="reportListItem"><l>1</l><l/></block></block><script><block s="doSetVar"><l>result</l><block s="reportListItem"><l>2</l><l/></block></block></script></block><block s="doReport"><l></l></block></script><list></list></block><block var="SciSnap!Properties"/></block></block><block s="doReport"><block var="result"/></block></script></block></script></block-definition><block-definition s="set SciSnap! global property %'name' to %'value'" type="command" category="1. SciSnap! globals"><comment x="0" y="0" w="167.5" collapsed="false">Sets the value of an existing global SciSnap!-property or inserts it anew.

Items:
typeOfData
width
height
minValue
maxValue
columns
rows
maxSetValue</comment><header></header><code></code><translations></translations><inputs><input type="%s">minValue<options>typeOfData
width
height
minValue
maxValue
columns
rows
maxSetValue</options></input><input type="%s"></input></inputs><script><block s="doDeclareVariables"><list><l>done</l><l>h</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>name</l><block s="reportListItem"><l>1</l><block s="reportTextSplit"><block var="name"/><l> </l></block></block></block><block s="doSetVar"><l>done</l><block s="reportBoolean"><l><bool>false</bool></l></block></block><block s="doSetVar"><l>h</l><block s="reportMap"><block s="reifyReporter"><script><block s="doIf"><block s="reportEquals"><block var="name"/><block s="reportListItem"><l>1</l><l/></block></block><script><block s="doReplaceInList"><l>2</l><l/><block var="value"/></block><block s="doSetVar"><l>done</l><block s="reportBoolean"><l><bool>true</bool></l></block></block></script></block><block s="doReport"><l></l></block></script><list></list></block><block var="SciSnap!Properties"/></block></block><block s="doIf"><block s="reportNot"><block var="done"/></block><script><block s="doAddToList"><block s="reportNewList"><list><block var="name"/><block var="value"/></list></block><block var="SciSnap!Properties"/></block></script></block></script></block></script></block-definition><block-definition s="show global message title: %'title' $nl message: %'message'" type="command" category="1. SciSnap! globals"><comment x="0" y="0" w="172" collapsed="false">Shows the message with headline in the middle of the window.</comment><header></header><code></code><translations></translations><inputs><input type="%txt">headline</input><input type="%txt">theMessage</input></inputs><script><block s="doApplyExtension"><l>SciS_showmessage(title,message)</l><list><block s="reportJoinWords"><list><block var="title"/><l></l></list></block><block s="reportJoinWords"><list><block var="message"/><l></l></list></block></list></block></script></block-definition><block-definition s="report SciSnap! error %'errortext'" type="command" category="1. SciSnap! globals"><comment x="0" y="0" w="189.5" collapsed="false">Adds a new entry to SciSnap!Messages and shows the error message.</comment><header></header><code></code><translations></translations><inputs><input type="%txt">something wrong!</input></inputs><script><block s="doAddToList"><block var="errortext"/><block var="SciSnap!Messages"/></block><block s="doIfElse"><block s="reportEquals"><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><l>Stage</l></block></block><script><custom-block s="show global message title: %txt %br message: %txt"><l>ERROR:</l><block var="errortext"/></custom-block></script><script><block s="doSayFor"><block var="errortext"/><l>1</l></block></script></block></script></block-definition><block-definition s="copy of costume %'costume'" type="reporter" category="looks"><comment x="0" y="0" w="143.66666666666657" collapsed="false">Reports a copy of a costume.</comment><header></header><code></code><translations></translations><inputs><input type="%obj"></input></inputs><script><block s="doReport"><block s="reportApplyExtension"><l>SciS_costumecopy(costume)</l><list><block var="costume"/></list></block></block></script></block-definition><block-definition s="costume of %'sprite'" type="reporter" category="looks"><comment x="0" y="0" w="154.1666666666665" collapsed="false">Reports the costume of a sprite.</comment><header></header><code></code><translations></translations><inputs><input type="%obj"></input></inputs><script><block s="doReport"><block s="reportAskFor"><block var="sprite"/><block s="reifyReporter"><autolambda><block s="reportGet"><l><option>costume</option></l></block></autolambda><list></list></block><list></list></block></block></script></block-definition><block-definition s="random" type="reporter" category="operators"><comment x="0" y="0" w="204.38451443569573" collapsed="false">Returns a random number between 0 and 1.</comment><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="reportRandom"><l>0.0000000000000000000001</l><l>1</l></block></block></script></block-definition><block-definition s="π" type="reporter" category="operators"><comment x="0" y="0" w="65.33333333333333" collapsed="false">Reports Pi.</comment><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><l>3.141592653589793</l></block></script></block-definition><block-definition s="e" type="reporter" category="operators"><comment x="0" y="0" w="122.33333333333326" collapsed="false">Reports Euler's number.</comment><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="reportMonadic"><l><option>e^</option></l><l>1</l></block></block></script></block-definition><block-definition s="round %'x' to %'n' digits" type="reporter" category="operators"><comment x="0" y="0" w="127.00000000000001" collapsed="false">Rounds value x to n digits.</comment><header></header><code></code><translations></translations><inputs><input type="%n">1.2357</input><input type="%n">2</input></inputs><script><block s="doReport"><block s="reportQuotient"><block s="reportRound"><block s="reportVariadicProduct"><list><block var="x"/><block s="reportMonadic"><l><option>10^</option></l><block var="n"/></block></list></block></block><block s="reportMonadic"><l><option>10^</option></l><block var="n"/></block></block></block></script></block-definition><block-definition s="%'n' !" type="reporter" category="operators"><comment x="0" y="0" w="90" collapsed="false">Reports n faculty.</comment><header></header><code></code><translations></translations><inputs><input type="%n">5</input></inputs><script><block s="doWarp"><script><block s="doIf"><block s="reportLessThan"><block var="n"/><l>0</l></block><script><block s="doReport"><l>NaN</l></block></script></block><block s="doIfElse"><block s="reportEquals"><block var="n"/><l>0</l></block><script><block s="doReport"><l>1</l></block></script><script><block s="doReport"><block s="reportVariadicProduct"><list><block var="n"/><custom-block s="%n !"><block s="reportDifference"><block var="n"/><l>1</l></block></custom-block></list></block></block></script></block></script></block></script></block-definition><block-definition s="( %'n' ) $nl ( %'k' )" type="reporter" category="operators"><comment x="0" y="0" w="155.66666666666663" collapsed="false">Reports a binomial coefficient.</comment><header></header><code></code><translations></translations><inputs><input type="%n">5</input><input type="%n">3</input></inputs><script><block s="doDeclareVariables"><list><l>result</l></list></block><block s="doWarp"><script><block s="doIf"><block s="reportGreaterThan"><block s="reportVariadicProduct"><list><l>2</l><block var="k"/></list></block><block var="n"/></block><script><block s="doSetVar"><l>k</l><block s="reportDifference"><block var="n"/><block var="k"/></block></block></script></block><block s="doIf"><block s="reportLessThan"><block var="k"/><l>1</l></block><script><block s="doReport"><l>1</l></block></script></block><block s="doSetVar"><l>result</l><l>1</l></block><block s="doSetVar"><l>n</l><block s="reportVariadicSum"><list><block var="n"/><l>1</l></list></block></block><block s="doFor"><l>i</l><l>1</l><block var="k"/><script><block s="doSetVar"><l>result</l><block s="reportQuotient"><block s="reportVariadicProduct"><list><block var="result"/><block s="reportDifference"><block var="n"/><block var="i"/></block></list></block><block var="i"/></block></block></script></block><block s="doReport"><block var="result"/></block></script></block></script></block-definition><block-definition s="is %'data' a %'choice'" type="predicate" category="1. SciSnap! globals"><comment x="0" y="0" w="212.35029354207427" collapsed="false">Test on vector, matrix, table, predicate, interval, list of intervals, set, or complex-number.</comment><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%txt" readonly="true">vector<options>vector
transposed-vector
matrix
table
complex-number
complex-number-Cartesian-style
complex-number-polar-style
set
comparisonOperator
interval
listOfIntervals
numericalList</options></input></inputs><script><block s="doDeclareVariables"><list><l>width</l><l>result</l><l>dummy</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>choice</l><block s="reportListItem"><l>1</l><block s="reportTextSplit"><block var="choice"/><l> </l></block></block></block><block s="doIf"><block s="reportEquals"><block var="choice"/><l>comparisonOperator</l></block><script><block s="doReport"><block s="reportListContainsItem"><block s="reportNewList"><list><block s="reifyPredicate"><autolambda><block s="reportLessThan"><l></l><l></l></block></autolambda><list></list></block><block s="reifyPredicate"><autolambda><block s="reportLessThanOrEquals"><l></l><l></l></block></autolambda><list></list></block><block s="reifyPredicate"><autolambda><block s="reportEquals"><l></l><l></l></block></autolambda><list></list></block><block s="reifyPredicate"><autolambda><block s="reportGreaterThan"><l></l><l></l></block></autolambda><list></list></block><block s="reifyPredicate"><autolambda><block s="reportGreaterThanOrEquals"><l></l><l></l></block></autolambda><list></list></block><block s="reifyPredicate"><autolambda><block s="reportNotEquals"><l></l><l></l></block></autolambda><list></list></block><block s="reifyPredicate"><autolambda><block s="reportOr"><l/><l/></block></autolambda><list></list></block><block s="reifyPredicate"><autolambda><block s="reportAnd"><l/><l/></block></autolambda><list></list></block><block s="reifyPredicate"><autolambda><block s="reportNot"><l/></block></autolambda><list></list></block></list></block><block var="data"/></block></block></script></block><block s="doIf"><block s="reportNot"><block s="reportIsA"><block var="data"/><l><option>list</option></l></block></block><script><block s="doReport"><block s="reportBoolean"><l><bool>false</bool></l></block></block></script></block><block s="doIf"><block s="reportEquals"><block var="choice"/><l>complex-number</l></block><script><block s="doReport"><block s="reportOr"><custom-block s="is %s a %txt"><block var="data"/><l>complex-number-Cartesian-style</l></custom-block><custom-block s="is %s a %txt"><block var="data"/><l>complex-number-polar-style</l></custom-block></block></block></script></block><block s="doIf"><block s="reportEquals"><block var="choice"/><l>complex-number-Cartesian-style</l></block><script><block s="doReport"><block s="reportAnd"><block s="reportAnd"><block s="reportEquals"><block s="reportListAttribute"><l><option>length</option></l><block var="data"/></block><l>3</l></block><block s="reportEquals"><block s="reportListItem"><l>1</l><block var="data"/></block><l>complexNumberCartesianStyle</l></block></block><block s="reportAnd"><block s="reportIsA"><block s="reportListItem"><l>2</l><block var="data"/></block><l><option>number</option></l></block><block s="reportIsA"><block s="reportListItem"><l>2</l><block var="data"/></block><l><option>number</option></l></block></block></block></block></script></block><block s="doIf"><block s="reportEquals"><block var="choice"/><l>complex-number-polar-style</l></block><script><block s="doReport"><block s="reportAnd"><block s="reportAnd"><block s="reportEquals"><block s="reportListAttribute"><l><option>length</option></l><block var="data"/></block><l>3</l></block><block s="reportEquals"><block s="reportListItem"><l>1</l><block var="data"/></block><l>complexNumberPolarStyle</l></block></block><block s="reportAnd"><block s="reportIsA"><block s="reportListItem"><l>2</l><block var="data"/></block><l><option>number</option></l></block><block s="reportIsA"><block s="reportListItem"><l>2</l><block var="data"/></block><l><option>number</option></l></block></block></block></block></script></block><block s="doIf"><block s="reportEquals"><block var="choice"/><l>transposed-vector</l></block><script><block s="doReport"><block s="reportEquals"><block s="reportListAttribute"><l><option>length</option></l><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportNot"><block s="reportAnd"><block s="reportIsA"><block var="value"/><l><option>list</option></l></block><block s="reportAnd"><block s="reportEquals"><block s="reportListAttribute"><l><option>length</option></l><block var="value"/></block><l>1</l></block><block s="reportIsA"><block s="reportListItem"><l>1</l><block var="value"/></block><l><option>number</option></l></block></block></block></block></autolambda><list><l>value</l></list></block><block var="data"/></block></block><l>0</l></block></block></script></block><block s="doIf"><block s="reportEquals"><block var="choice"/><l>vector</l></block><script><block s="doIfElse"><block s="reportIsA"><block s="reportListItem"><l>1</l><block var="data"/></block><l><option>list</option></l></block><script><block s="doReport"><custom-block s="is %s a %txt"><block var="data"/><l>transposed-vector</l></custom-block></block></script><script><block s="doReport"><block s="reportEquals"><block s="reportListAttribute"><l><option>length</option></l><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportNot"><block s="reportIsA"><l></l><l><option>number</option></l></block></block></autolambda><list></list></block><block var="data"/></block></block><l>0</l></block></block></script></block></script></block><block s="doIf"><block s="reportEquals"><block var="choice"/><l>matrix</l></block><script><block s="doIfElse"><block s="reportLessThan"><block s="reportListAttribute"><l><option>length</option></l><block var="data"/></block><l>1</l></block><script><block s="doReport"><block s="reportBoolean"><l><bool>false</bool></l></block></block></script><script><block s="doIf"><block s="reportNot"><block s="reportIsA"><block s="reportListItem"><l>1</l><block var="data"/></block><l><option>list</option></l></block></block><script><block s="doReport"><block s="reportBoolean"><l><bool>false</bool></l></block></block></script></block><block s="doSetVar"><l>width</l><block s="reportListAttribute"><l><option>length</option></l><block s="reportListItem"><l>1</l><block var="data"/></block></block></block><block s="doIfElse"><block s="reportLessThan"><block var="width"/><l>1</l></block><script><block s="doReport"><block s="reportBoolean"><l><bool>false</bool></l></block></block></script><script><block s="doReport"><block s="reportApplyExtension"><l>SciS_isMatrix(data)</l><list><block var="data"/></list></block></block></script></block></script></block></script></block><block s="doIf"><block s="reportEquals"><block var="choice"/><l>table</l></block><script><block s="doIf"><block s="reportEquals"><block var="data"/><block s="reportNewList"><list></list></block></block><script><block s="doReport"><block s="reportBoolean"><l><bool>true</bool></l></block></block></script></block><block s="doIf"><block s="reportNot"><block s="reportIsA"><block s="reportListItem"><l>1</l><block var="data"/></block><l><option>list</option></l></block></block><script><block s="doReport"><block s="reportBoolean"><l><bool>false</bool></l></block></block></script></block><block s="doSetVar"><l>width</l><block s="reportListAttribute"><l><option>length</option></l><block s="reportListItem"><l>1</l><block var="data"/></block></block></block><block s="doReport"><block s="reportApplyExtension"><l>SciS_isTable(data)</l><list><block var="data"/></list></block></block></script></block><block s="doIf"><block s="reportEquals"><block var="choice"/><l>interval</l></block><script><block s="doIf"><block s="reportEquals"><block s="reportListAttribute"><l><option>length</option></l><block var="data"/></block><l>4</l></block><script><block s="doReport"><block s="reportAnd"><block s="reportAnd"><block s="reportAnd"><block s="reportIsA"><block s="reportListItem"><l>1</l><block var="data"/></block><l><option>number</option></l></block><block s="reportIsA"><block s="reportListItem"><l>4</l><block var="data"/></block><l><option>number</option></l></block></block><block s="reportLessThanOrEquals"><block s="reportListItem"><l>1</l><block var="data"/></block><block s="reportListItem"><l>4</l><block var="data"/></block></block></block><block s="reportAnd"><block s="reportOr"><block s="reportEquals"><block s="reportListItem"><l>2</l><block var="data"/></block><l>≤</l></block><block s="reportEquals"><block s="reportListItem"><l>2</l><block var="data"/></block><l><</l></block></block><block s="reportOr"><block s="reportEquals"><block s="reportListItem"><l>3</l><block var="data"/></block><l>≤</l></block><block s="reportEquals"><block s="reportListItem"><l>3</l><block var="data"/></block><l><</l></block></block></block></block></block></script></block><block s="doReport"><block s="reportBoolean"><l><bool>false</bool></l></block></block></script></block><block s="doIf"><block s="reportEquals"><block var="choice"/><l>listOfIntervals</l></block><script><block s="doIfElse"><block s="reportEquals"><block s="reportListAttribute"><l><option>length</option></l><block var="data"/></block><l>0</l></block><script><block s="doReport"><block s="reportBoolean"><l><bool>false</bool></l></block></block></script><script><block s="doSetVar"><l>result</l><block s="reportBoolean"><l><bool>true</bool></l></block></block><block s="doForEach"><l>item</l><block var="data"/><script><block s="doIf"><block s="reportNot"><custom-block s="is %s a %txt"><block var="item"/><l>interval</l></custom-block></block><script><block s="doSetVar"><l>result</l><block s="reportBoolean"><l><bool>false</bool></l></block></block></script></block></script></block><block s="doReport"><block var="result"/></block></script></block></script></block><block s="doIf"><block s="reportEquals"><block var="choice"/><l>set</l></block><script><block s="doIf"><block s="reportNot"><block s="reportAnd"><block s="reportEquals"><block s="reportListItem"><l>1</l><block var="data"/></block><l>set</l></block><block s="reportEquals"><block s="reportListAttribute"><l><option>length</option></l><block var="data"/></block><l>5</l></block></block></block><script><block s="doReport"><block s="reportBoolean"><l><bool>false</bool></l></block></block></script></block><block s="doReport"><custom-block s="all of %mult%boolUE"><list><block s="reportIsA"><block s="reportListItem"><l>2</l><block var="data"/></block><l><option>Boolean</option></l></block><block s="reportIsA"><block s="reportListItem"><l>3</l><block var="data"/></block><l><option>list</option></l></block><block s="reportOr"><block s="reportEquals"><block s="reportListItem"><l>4</l><block var="data"/></block><block s="reportNewList"><list></list></block></block><custom-block s="is %s a %txt"><block s="reportListItem"><l>4</l><block var="data"/></block><l>listOfIntervals</l></custom-block></block><block s="reportOr"><block s="reportEquals"><block s="reportListItem"><l>5</l><block var="data"/></block><l></l></block><block s="reportIsA"><block s="reportListItem"><l>5</l><block var="data"/></block><l><option>predicate</option></l></block></block></list></custom-block></block></script></block><block s="doIf"><block s="reportEquals"><block var="choice"/><l>numericalList</l></block><script><block s="doSetVar"><l>result</l><block s="reportBoolean"><l><bool>true</bool></l></block></block><block s="doForEach"><l>item</l><block var="data"/><script><block s="doIf"><block s="reportNot"><block s="reportIsA"><block var="item"/><l><option>number</option></l></block></block><script><block s="doSetVar"><l>result</l><block s="reportBoolean"><l><bool>false</bool></l></block></block><block s="doReport"><block var="result"/></block></script></block></script></block><block s="doReport"><block var="result"/></block></script></block><block s="doReport"><block s="reportBoolean"><l><bool>false</bool></l></block></block></script></block></script><scripts><script x="375.9951171875" y="1253.6666666666665"><block s="reportEquals"><block s="reportListAttribute"><l><option>length</option></l><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportOr"><block s="reportNotEquals"><block s="reportListAttribute"><l><option>length</option></l><block var="row"/></block><block var="width"/></block><block s="reportGreaterThan"><block s="reportListAttribute"><l><option>length</option></l><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportNot"><block s="reportIsA"><block var="value"/><l><option>number</option></l></block></block></autolambda><list><l>value</l></list></block><block var="row"/></block></block><l>0</l></block></block></autolambda><list><l>row</l></list></block><block var="data"/></block></block><l>0</l></block></script><script x="236" y="1856.8333333333328"><block s="reportEquals"><block s="reportListAttribute"><l><option>length</option></l><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportNotEquals"><block s="reportListAttribute"><l><option>length</option></l><block var="row"/></block><block var="width"/></block></autolambda><list><l>row</l></list></block><block var="data"/></block></block><l>0</l></block></script></scripts></block-definition><block-definition s="substring of %'aString' from %'from' to %'to'" type="reporter" category="operators"><comment x="0" y="0" w="141.66666666666669" collapsed="false">Reports a substring of a string.</comment><header></header><code></code><translations></translations><inputs><input type="%txt">thisString</input><input type="%n">1</input><input type="%n">4</input></inputs><script><block s="doReport"><block s="reportApplyExtension"><l>SciS_substring(aString,from,to)</l><list><block var="aString"/><block var="from"/><block var="to"/></list></block></block></script></block-definition><block-definition s="delete %'choice' %'substring' in %'aString'" type="reporter" category="operators"><comment x="0" y="0" w="252.5" collapsed="false">Reports a string without first/all instances of substring.</comment><header></header><code></code><translations></translations><inputs><input type="%txt" readonly="true">all<options>all
first</options></input><input type="%txt">this</input><input type="%txt">thisString</input></inputs><script><block s="doReport"><block s="reportApplyExtension"><l>SciS_delete(substring,aString,choice)</l><list><block var="substring"/><block var="aString"/><block var="choice"/></list></block></block></script></block-definition><block-definition s="upper case %'aString'" type="reporter" category="operators"><comment x="0" y="0" w="140.83333333333334" collapsed="false">Reports a string in upper case.</comment><header></header><code></code><translations></translations><inputs><input type="%s">thisString</input></inputs><script><block s="doReport"><block s="reportApplyExtension"><l>SciS_uppercase(txt)</l><list><block var="aString"/></list></block></block></script></block-definition><block-definition s="lower case %'aString'" type="reporter" category="operators"><comment x="0" y="0" w="144.16666666666669" collapsed="false">Reports a string in lower case.</comment><header></header><code></code><translations></translations><inputs><input type="%s">ThisString</input></inputs><script><block s="doReport"><block s="reportApplyExtension"><l>SciS_lowercase(txt)</l><list><block var="aString"/></list></block></block></script></block-definition><block-definition s="write text %'theText' to TXT-file %'filename'" type="command" category="operators"><comment x="0" y="0" w="116.14677103718192" collapsed="false">Stores a string in a file. </comment><header></header><code></code><translations></translations><inputs><input type="%txt">this text</input><input type="%txt">this file</input></inputs><script><block s="doIfElse"><block s="reportAnd"><block s="reportIsA"><block var="theText"/><l><option>text</option></l></block><block s="reportIsA"><block var="filename"/><l><option>text</option></l></block></block><script><block s="doApplyExtension"><l>SciS_writeToFile(data,filename)</l><list><block var="theText"/><block var="filename"/></list></block></script><script><custom-block s="report SciSnap! error %txt"><l>ERROR: text as data and filename required!</l></custom-block></script></block></script></block-definition><block-definition s="index of %'substring' in %'aString'" type="reporter" category="operators"><comment x="0" y="0" w="270" collapsed="false">Reports the index of first appearance of substring in string.</comment><header></header><code></code><translations></translations><inputs><input type="%txt">ring</input><input type="%txt">thisString</input></inputs><script><block s="doReport"><block s="reportApplyExtension"><l>SciS_indexof(sub,txt)</l><list><block var="substring"/><block var="aString"/></list></block></block></script></block-definition><block-definition s="replace %'choice' %'substring' with %'replacement' in %'aString'" type="reporter" category="operators"><comment x="0" y="0" w="277.5" collapsed="false">Reports a string with replacement instead of substring.</comment><header></header><code></code><translations></translations><inputs><input type="%txt" readonly="true">all<options>all
first</options></input><input type="%txt">this</input><input type="%txt">that</input><input type="%txt">thisString</input></inputs><script><block s="doReport"><block s="reportApplyExtension"><l>SciS_replace(substring,replacement,aString,choice)</l><list><block var="substring"/><block var="replacement"/><block var="aString"/><block var="choice"/></list></block></block></script></block-definition><block-definition s="datetime" type="reporter" category="sensing"><comment x="0" y="0" w="206" collapsed="false">Reports date and time in standard notation.</comment><header></header><code></code><translations></translations><inputs></inputs><script><block s="doDeclareVariables"><list><l>month</l><l>hour</l><l>minute</l><l>second</l><l>day</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>month</l><block s="reportDate"><l><option>month</option></l></block></block><block s="doIf"><block s="reportLessThan"><block var="month"/><l>10</l></block><script><block s="doSetVar"><l>month</l><block s="reportJoinWords"><list><l>0</l><block var="month"/></list></block></block></script></block><block s="doSetVar"><l>day</l><block s="reportDate"><l><option>date</option></l></block></block><block s="doIf"><block s="reportLessThan"><block var="day"/><l>10</l></block><script><block s="doSetVar"><l>day</l><block s="reportJoinWords"><list><l>0</l><block var="day"/></list></block></block></script></block><block s="doSetVar"><l>hour</l><block s="reportDate"><l><option>hour</option></l></block></block><block s="doIf"><block s="reportLessThan"><block var="hour"/><l>10</l></block><script><block s="doSetVar"><l>hour</l><block s="reportJoinWords"><list><l>0</l><block var="hour"/></list></block></block></script></block><block s="doSetVar"><l>minute</l><block s="reportDate"><l><option>minute</option></l></block></block><block s="doIf"><block s="reportLessThan"><block var="minute"/><l>10</l></block><script><block s="doSetVar"><l>minute</l><block s="reportJoinWords"><list><l>0</l><block var="minute"/></list></block></block></script></block><block s="doSetVar"><l>second</l><block s="reportDate"><l><option>second</option></l></block></block><block s="doIf"><block s="reportLessThan"><block var="second"/><l>10</l></block><script><block s="doSetVar"><l>second</l><block s="reportJoinWords"><list><l>0</l><block var="second"/></list></block></block></script></block><block s="doReport"><block s="reportJoinWords"><list><block s="reportDate"><l><option>year</option></l></block><l>-</l><block var="month"/><l>-</l><block var="day"/><l>T</l><block var="hour"/><l>:</l><block var="minute"/><l>:</l><block var="second"/></list></block></block></script></block></script></block-definition><block-definition s="datetime: %'dt' $arrowRight %'time'" type="reporter" category="sensing"><header></header><code></code><translations></translations><inputs><input type="%txt"></input><input type="%txt" readonly="true">seconds today<options>Julian Date
decimal years
days this year
hours this year
minutes this year
seconds this year
hours today
minutes today
seconds today</options></input></inputs><script><block s="doDeclareVariables"><list><l>h</l><l>m</l><l>s</l><l>hms</l><l>separator</l><l>YYYY</l><l>MM</l><l>DD</l><l>YMD</l><l>monthdays</l><l>days</l><l>JD</l><l>jm</l><l>jy</l><l>i</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>monthdays</l><block s="reportNewList"><list><l>31</l><l>28</l><l>31</l><l>30</l><l>31</l><l>30</l><l>31</l><l>31</l><l>30</l><l>31</l><l>30</l><l>31</l></list></block></block><block s="doSetVar"><l>separator</l><custom-block s="index of %txt in %txt"><l>T</l><block var="dt"/></custom-block></block><block s="doIf"><block s="reportEquals"><block var="separator"/><l>0</l></block><script><block s="doSetVar"><l>separator</l><custom-block s="index of %txt in %txt"><l> </l><block var="dt"/></custom-block></block></script></block><block s="doSetVar"><l>YYYY</l><custom-block s="substring of %txt from %n to %n"><block var="dt"/><l>1</l><block s="reportDifference"><block var="separator"/><l>7</l></block></custom-block></block><block s="doSetVar"><l>MM</l><custom-block s="substring of %txt from %n to %n"><block var="dt"/><block s="reportDifference"><block var="separator"/><l>5</l></block><block s="reportDifference"><block var="separator"/><l>4</l></block></custom-block></block><block s="doSetVar"><l>DD</l><custom-block s="substring of %txt from %n to %n"><block var="dt"/><block s="reportDifference"><block var="separator"/><l>2</l></block><block s="reportDifference"><block var="separator"/><l>1</l></block></custom-block></block><block s="doSetVar"><l>h</l><custom-block s="substring of %txt from %n to %n"><block var="dt"/><block s="reportVariadicSum"><list><block var="separator"/><l>1</l></list></block><block s="reportVariadicSum"><list><block var="separator"/><l>2</l></list></block></custom-block></block><block s="doSetVar"><l>m</l><custom-block s="substring of %txt from %n to %n"><block var="dt"/><block s="reportVariadicSum"><list><block var="separator"/><l>4</l></list></block><block s="reportVariadicSum"><list><block var="separator"/><l>5</l></list></block></custom-block></block><block s="doSetVar"><l>s</l><custom-block s="substring of %txt from %n to %n"><block var="dt"/><block s="reportVariadicSum"><list><block var="separator"/><l>7</l></list></block><block s="reportStringSize"><block var="dt"/></block></custom-block></block><block s="doSetVar"><l>days</l><block var="DD"/></block><block s="doSetVar"><l>i</l><l>1</l></block><block s="doUntil"><block s="reportGreaterThan"><block var="i"/><block s="reportDifference"><block var="MM"/><l>1</l></block></block><script><block s="doChangeVar"><l>days</l><block s="reportListItem"><block var="i"/><block var="monthdays"/></block></block><block s="doChangeVar"><l>i</l><l>1</l></block></script></block><block s="doIf"><block s="reportAnd"><block s="reportEquals"><block s="reportModulus"><block var="YYYY"/><l>4</l></block><l>0</l></block><block s="reportGreaterThan"><block var="MM"/><l>2</l></block></block><script><block s="doChangeVar"><l>days</l><l>1</l></block></script></block><block s="doIfElse"><block s="reportEquals"><block var="time"/><l>Julian Date</l></block><script><block s="doIf"><block s="reportLessThan"><block var="YYYY"/><l>0</l></block><script><block s="doChangeVar"><l>YYYY</l><l>1</l></block></script></block><block s="doIfElse"><block s="reportGreaterThan"><block var="MM"/><l>2</l></block><script><block s="doSetVar"><l>jy</l><block var="YYYY"/></block><block s="doSetVar"><l>jm</l><block s="reportVariadicSum"><list><block var="MM"/><l>1</l></list></block></block></script><script><block s="doSetVar"><l>jy</l><block s="reportDifference"><block var="YYYY"/><l>1</l></block></block><block s="doSetVar"><l>jm</l><block s="reportVariadicSum"><list><block var="MM"/><l>13</l></list></block></block></script></block><block s="doSetVar"><l>JD</l><block s="reportVariadicSum"><list><block s="reportVariadicSum"><list><block s="reportMonadic"><l><option>floor</option></l><block s="reportVariadicProduct"><list><l>365.25</l><block var="jy"/></list></block></block><block s="reportMonadic"><l><option>floor</option></l><block s="reportVariadicProduct"><list><l>30.6001</l><block var="jm"/></list></block></block></list></block><block s="reportVariadicSum"><list><block var="DD"/><l>1720995</l></list></block></list></block></block><block s="doIf"><block s="reportGreaterThanOrEquals"><block s="reportVariadicSum"><list><block var="DD"/><block s="reportVariadicProduct"><list><l>31</l><block s="reportVariadicSum"><list><block var="MM"/><block s="reportVariadicProduct"><list><l>12</l><block var="YYYY"/></list></block></list></block></list></block></list></block><block s="reportVariadicSum"><list><l>15</l><block s="reportVariadicProduct"><list><l>31</l><block s="reportVariadicSum"><list><l>10</l><block s="reportVariadicProduct"><list><l>12</l><l>1582</l></list></block></list></block></list></block></list></block></block><script><block s="doChangeVar"><l>JD</l><block s="reportVariadicSum"><list><block s="reportDifference"><l>2</l><block s="reportMonadic"><l><option>floor</option></l><block s="reportVariadicProduct"><list><l>0.01</l><block var="jy"/></list></block></block></block><block s="reportMonadic"><l><option>floor</option></l><block s="reportVariadicProduct"><list><block s="reportVariadicProduct"><list><l>0.01</l><l>0.25</l></list></block><block var="jy"/></list></block></block></list></block></block></script></block><block s="doReport"><block s="reportVariadicSum"><list><block var="JD"/><block s="reportQuotient"><block s="reportVariadicSum"><list><block s="reportVariadicSum"><list><block s="reportDifference"><block var="h"/><l>12</l></block><block s="reportQuotient"><block var="m"/><l>60</l></block></list></block><block s="reportQuotient"><block var="s"/><l>3600</l></block></list></block><l>24</l></block></list></block></block></script><script><block s="doIfElse"><block s="reportEquals"><block var="time"/><l>decimal years</l></block><script><block s="doReport"><block s="reportVariadicSum"><list><block var="YYYY"/><block s="reportQuotient"><block s="reportVariadicSum"><list><block var="days"/><block s="reportQuotient"><block s="reportVariadicSum"><list><block s="reportVariadicSum"><list><block var="h"/><block s="reportQuotient"><block var="m"/><l>60</l></block></list></block><block s="reportQuotient"><block var="s"/><l>3600</l></block></list></block><l>24</l></block></list></block><l>365.252199</l></block></list></block></block></script><script><block s="doIfElse"><block s="reportEquals"><block var="time"/><l>days this year</l></block><script><block s="doReport"><block s="reportVariadicSum"><list><block var="days"/><block s="reportQuotient"><block s="reportVariadicSum"><list><block s="reportVariadicSum"><list><block var="h"/><block s="reportQuotient"><block var="m"/><l>60</l></block></list></block><block s="reportQuotient"><block var="s"/><l>3600</l></block></list></block><l>24</l></block></list></block></block></script><script><block s="doIfElse"><block s="reportEquals"><block var="time"/><l>hours this year</l></block><script><block s="doReport"><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><l>24</l><block var="days"/></list></block><block s="reportVariadicSum"><list><block s="reportVariadicSum"><list><block var="h"/><block s="reportQuotient"><block var="m"/><l>60</l></block></list></block><block s="reportQuotient"><block var="s"/><l>3600</l></block></list></block></list></block></block></script><script><block s="doIfElse"><block s="reportEquals"><block var="time"/><l>minutes this year</l></block><script><block s="doReport"><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><block s="reportVariadicProduct"><list><l>24</l><l>60</l></list></block><block var="days"/></list></block><block s="reportVariadicSum"><list><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><block var="h"/><l>60</l></list></block><block var="m"/></list></block><block s="reportQuotient"><block var="s"/><l>60</l></block></list></block></list></block></block></script><script><block s="doIfElse"><block s="reportEquals"><block var="time"/><l>seconds this year</l></block><script><block s="doReport"><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><block s="reportVariadicProduct"><list><l>24</l><l>3600</l></list></block><block var="days"/></list></block><block s="reportVariadicSum"><list><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><block var="h"/><l>3600</l></list></block><block s="reportVariadicProduct"><list><block var="m"/><l>60</l></list></block></list></block><block var="s"/></list></block></list></block></block></script><script><block s="doIfElse"><block s="reportEquals"><block var="time"/><l>hours today</l></block><script><block s="doReport"><block s="reportVariadicSum"><list><block s="reportVariadicSum"><list><block var="h"/><block s="reportQuotient"><block var="m"/><l>60</l></block></list></block><block s="reportQuotient"><block var="s"/><l>3600</l></block></list></block></block></script><script><block s="doIfElse"><block s="reportEquals"><block var="time"/><l>minutes today</l></block><script><block s="doReport"><block s="reportVariadicSum"><list><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><block var="h"/><l>60</l></list></block><block var="m"/></list></block><block s="reportQuotient"><block var="s"/><l>60</l></block></list></block></block></script><script><block s="doReport"><block s="reportVariadicSum"><list><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><block var="h"/><l>3600</l></list></block><block s="reportVariadicProduct"><list><block var="m"/><l>60</l></list></block></list></block><block var="s"/></list></block></block></script></block></script></block></script></block></script></block></script></block></script></block></script></block></script></block></script></block></script></block-definition><block-definition s="all of %'preds'" type="predicate" category="operators"><comment x="0" y="0" w="247.99999999999997" collapsed="false">Takes any number of Boolean (true/false) inputs (use the left and right arrowheads to adjust the number of input slots) and reports TRUE only if all of the inputs are TRUE, otherwise FALSE. Like AND but for multiple inputs.</comment><header></header><code></code><translations>pt:todas as afirmações _ são verdadeiras
</translations><inputs><input type="%mult%boolUE"></input></inputs><script><block s="doIf"><block s="reportListIsEmpty"><block var="preds"/></block><script><block s="doReport"><block s="reportBoolean"><l><bool>true</bool></l></block></block></script></block><block s="doReport"><block s="reportAnd"><block s="evaluate"><block s="reportListItem"><l>1</l><block var="preds"/></block><list></list></block><custom-block s="all of %mult%boolUE"><block s="reportCDR"><block var="preds"/></block></custom-block></block></block></script></block-definition><block-definition s="any of %'preds'" type="predicate" category="operators"><comment x="0" y="0" w="240" collapsed="false">Takes any number of Boolean (true/false) inputs (use the left and right arrowheads to adjust the number of input slots) and reports TRUE if at least one input is TRUE, otherwise FALSE.</comment><header></header><code></code><translations>pt:alguma das afirmações _ é verdadeira
</translations><inputs><input type="%mult%boolUE"></input></inputs><script><block s="doIf"><block s="reportListIsEmpty"><block var="preds"/></block><script><block s="doReport"><block s="reportBoolean"><l><bool>false</bool></l></block></block></script></block><block s="doReport"><block s="reportOr"><block s="evaluate"><block s="reportListItem"><l>1</l><block var="preds"/></block><list></list></block><custom-block s="any of %mult%boolUE"><block s="reportCDR"><block var="preds"/></block></custom-block></block></block></script></block-definition><block-definition s="new costume %'width' %'height' %'r' %'g' %'b'" type="reporter" category="looks"><comment x="0" y="0" w="389.7865234374999" collapsed="false">Returns an empty costume of the given width and height with background color r/g/b.</comment><header></header><code></code><translations></translations><inputs><input type="%n">400</input><input type="%n">300</input><input type="%n">245</input><input type="%n">245</input><input type="%n">245</input></inputs><script><block s="doReport"><block s="reportApplyExtension"><l>SciS_newcostume(w,h,r,g,b)</l><list><block var="width"/><block var="height"/><block var="r"/><block var="g"/><block var="b"/></list></block></block></script></block-definition><block-definition s="is the global %'global' property %'prop' $nl with value %'value' present ?" type="predicate" category="1. SciSnap! globals"><comment x="0" y="0" w="154.16666666666669" collapsed="false">Tests the value of a property.</comment><header></header><code></code><translations></translations><inputs><input type="%b">false</input><input type="%txt">typeOfConfiguration</input><input type="%s">MathPad</input></inputs><script><block s="doIfElse"><block var="global"/><script><block s="doReport"><block s="reportApplyExtension"><l>SciS_ispropertypresent(properties,name,value)</l><list><l>SciSnap!Properties</l><block var="prop"/><block var="value"/></list></block></block></script><script><block s="doReport"><block s="reportApplyExtension"><l>SciS_ispropertypresent(properties,name,value)</l><list><l>myProperties</l><block var="prop"/><block var="value"/></list></block></block></script></block></script></block-definition><block-definition s="%'choice' %'n' of %'table' $arrowRightOutline name" type="reporter" category="other" helper="true"><comment x="0" y="0" w="258.33333333333337" collapsed="false">Reports the row or column name of the row or column with the number entered, or reports an error message.</comment><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true">column<options>column
row</options></input><input type="%n">1</input><input type="%s">SciSnap!Data</input></inputs><script><block s="doDeclareVariables"><list><l>firstLine</l><l>data</l></list></block><block s="doWarp"><script><block s="doIfElse"><block s="reportEquals"><block var="table"/><l>SciSnap!Data</l></block><script><block s="doSetVar"><l>data</l><block var="SciSnap!Data"/></block></script><script><block s="doSetVar"><l>data</l><block var="table"/></block></script></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a %txt"><block var="data"/><l>table</l></custom-block></block><script><block s="doReport"><l>ERROR: only tables supported!</l></block></script></block><block s="doIf"><block s="reportEquals"><block s="reportListAttribute"><l><option>length</option></l><block var="data"/></block><l>0</l></block><script><block s="doReport"><l>ERROR: table is empty!</l></block></script></block><block s="doIf"><block s="reportEquals"><block var="choice"/><l>column</l></block><script><block s="doReport"><block s="reportIfElse"><block s="reportOr"><block s="reportLessThan"><block var="n"/><l>1</l></block><block s="reportGreaterThan"><block var="n"/><block s="reportListAttribute"><l><option>length</option></l><block s="reportListItem"><l>1</l><block var="data"/></block></block></block></block><l>ERROR: index out of range!</l><block s="reportListItem"><block var="n"/><block s="reportListItem"><l>1</l><block var="data"/></block></block></block></block></script></block><block s="doIf"><block s="reportEquals"><block var="choice"/><l>row</l></block><script><block s="doReport"><block s="reportIfElse"><block s="reportOr"><block s="reportLessThan"><block var="n"/><l>1</l></block><block s="reportGreaterThan"><block var="n"/><block s="reportListAttribute"><l><option>length</option></l><block var="data"/></block></block></block><l>ERROR: index out of range!</l><block s="reportListItem"><l>1</l><block s="reportListItem"><block var="n"/><block var="data"/></block></block></block></block></script></block></script></block></script></block-definition><block-definition s="columnwise %'function' %'data'" type="reporter" category="control" helper="true"><comment x="0" y="0" w="212" collapsed="false">Turns a row-wise (in Lisp terminology) function
into a column-wise one.</comment><header></header><code></code><translations></translations><inputs><input type="%repRing"></input><input type="%l"></input></inputs><script><block s="doReport"><block s="errorObsolete"></block></block></script></block-definition><block-definition s="scalar -> hyper %'func'" type="reporter" category="control" helper="true"><comment x="0" y="0" w="217.99999999999997" collapsed="false">Takes a dyadic scalar function as input, and
hyperizes it, so that it can take lists as inputs.

Don't use on slow functions (this has compiled map calls). Meant for use on primitives.</comment><header></header><code></code><translations></translations><inputs><input type="%repRing"></input></inputs><script><block s="doDeclareVariables"><list><l>hyper func</l><l>scalarized</l></list></block><block s="doSetVar"><l>hyper func</l><block s="reifyReporter"><script><block s="doWarp"><script><block s="doIfElse"><block s="errorObsolete"></block><script><block s="doIfElse"><block s="errorObsolete"></block><script><block s="doReport"><block s="evaluate"><block var="func"/><list><block s="errorObsolete"></block><block s="errorObsolete"></block></list></block></block></script><script><block s="doSetVar"><l>scalarized</l><block s="errorObsolete"></block></block><block s="doIf"><block s="reportEquals"><l></l><block s="reportAtomicFindFirst"><block s="reifyPredicate"><autolambda><block s="reportIsA"><l></l><l><option>list</option></l></block></autolambda><list></list></block><block var="b"/></block></block><script><block s="doReport"><block s="reportAtomicMap"><block s="reifyReporter"><autolambda><block s="evaluate"><block var="func"/><list><block var="scalarized"/><l></l></list></block></autolambda><list></list></block><block var="b"/></block></block></script></block><block s="doReport"><block s="reportMap"><block s="reifyReporter"><autolambda><block s="evaluate"><block var="hyper func"/><list><block var="scalarized"/><l></l></list></block></autolambda><list></list></block><block var="b"/></block></block></script></block></script><script><block s="doIfElse"><block s="errorObsolete"></block><script><block s="doSetVar"><l>scalarized</l><block s="errorObsolete"></block></block><block s="doIf"><block s="reportEquals"><l></l><block s="reportAtomicFindFirst"><block s="reifyPredicate"><autolambda><block s="reportIsA"><l></l><l><option>list</option></l></block></autolambda><list></list></block><block var="a"/></block></block><script><block s="doReport"><block s="reportAtomicMap"><block s="reifyReporter"><autolambda><block s="evaluate"><block var="func"/><list><l></l><block var="scalarized"/></list></block></autolambda><list></list></block><block var="a"/></block></block></script></block><block s="doReport"><block s="reportMap"><block s="reifyReporter"><autolambda><block s="evaluate"><block var="hyper func"/><list><l></l><block var="scalarized"/></list></block></autolambda><list></list></block><block var="a"/></block></block></script><script><block s="doIf"><block s="reportAnd"><block s="reportEquals"><l></l><block s="reportAtomicFindFirst"><block s="reifyPredicate"><autolambda><block s="reportIsA"><l></l><l><option>list</option></l></block></autolambda><list></list></block><block var="a"/></block></block><block s="reportEquals"><l></l><block s="reportAtomicFindFirst"><block s="reifyPredicate"><autolambda><block s="reportIsA"><l></l><l><option>list</option></l></block></autolambda><list></list></block><block var="b"/></block></block></block><script><block s="doReport"><block s="errorObsolete"></block></block></script></block><block s="doReport"><block s="errorObsolete"></block></block></script></block></script></block></script></block></script><list><l>a</l><l>b</l></list></block></block><block s="doReport"><block var="hyper func"/></block></script></block-definition><block-definition s="pipe %'value' $arrowRight %'pipe'" type="reporter" category="control"><header></header><code></code><translations>pt:a aplicação a _ de _
</translations><inputs><input type="%s"></input><input type="%mult%repRing"></input></inputs><script><block s="doIf"><block s="reportListIsEmpty"><block var="pipe"/></block><script><block s="doReport"><block var="value"/></block></script></block><block s="doReport"><custom-block s="pipe %s $arrowRight %mult%repRing"><block s="evaluate"><block s="reportListItem"><l>1</l><block var="pipe"/></block><list><block var="value"/></list></block><block s="reportCDR"><block var="pipe"/></block></custom-block></block></script></block-definition><block-definition s="evaluate predicate %'predicate' with %'param'" type="predicate" category="other" helper="true"><comment x="0" y="0" w="118.33333333333327" collapsed="false">Evaluates the predicate with a given parameter.</comment><header></header><code></code><translations></translations><inputs><input type="%s">ringified predicate</input><input type="%s"></input></inputs><script><block s="doWarp"><script><block s="doIfElse"><block s="reportIsA"><block var="predicate"/><l><option>predicate</option></l></block><script><block s="doReport"><block s="evaluate"><block var="predicate"/><list><block var="param"/></list></block></block></script><script><block s="doReport"><block s="reportBoolean"><l><bool>false</bool></l></block></block></script></block></script></block></script></block-definition><block-definition s="evaluate intervals %'intervals' with %'x'" type="predicate" category="other" helper="true"><comment x="0" y="0" w="118.65384615384613" collapsed="false">Evaluates the intervals with a given parameter.</comment><header></header><code></code><translations></translations><inputs><input type="%l">ringified predicate</input><input type="%s"></input></inputs><script><block s="doWarp"><script><block s="doIf"><block s="reportOr"><block s="reportNot"><block s="reportIsA"><block var="x"/><l><option>number</option></l></block></block><block s="reportNot"><custom-block s="is %s a %txt"><block var="intervals"/><l>listOfIntervals</l></custom-block></block></block><script><block s="doReport"><block s="reportBoolean"><l><bool>false</bool></l></block></block></script></block><block s="doForEach"><l>item</l><block var="intervals"/><script><block s="doIfElse"><block s="reportEquals"><block s="reportListItem"><l>2</l><block var="item"/></block><l><</l></block><script><block s="doIf"><block s="reportGreaterThanOrEquals"><block s="reportListItem"><l>1</l><block var="item"/></block><block var="x"/></block><script><block s="doReport"><block s="reportBoolean"><l><bool>false</bool></l></block></block></script></block></script><script><block s="doIf"><block s="reportGreaterThan"><block s="reportListItem"><l>1</l><block var="item"/></block><block var="x"/></block><script><block s="doReport"><block s="reportBoolean"><l><bool>false</bool></l></block></block></script></block></script></block><block s="doIfElse"><block s="reportEquals"><block s="reportListItem"><l>3</l><block var="item"/></block><l><</l></block><script><block s="doIf"><block s="reportGreaterThanOrEquals"><block var="x"/><block s="reportListItem"><l>4</l><block var="item"/></block></block><script><block s="doReport"><block s="reportBoolean"><l><bool>false</bool></l></block></block></script></block></script><script><block s="doIf"><block s="reportGreaterThan"><block var="x"/><block s="reportListItem"><l>4</l><block var="item"/></block></block><script><block s="doReport"><block s="reportBoolean"><l><bool>false</bool></l></block></block></script></block></script></block></script></block><block s="doReport"><block s="reportBoolean"><l><bool>true</bool></l></block></block></script></block></script></block-definition><block-definition s="%'set1' ∩ %'set2'" type="reporter" category="other" helper="true"><comment x="0" y="0" w="194.40476190476184" collapsed="false">Reports the intersection of two sets.</comment><header></header><code></code><translations></translations><inputs><input type="%s">set1</input><input type="%s">set2</input></inputs><script><block s="doWarp"><script><block s="doDeclareVariables"><list><l>result</l></list></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a %txt"><block var="set1"/><l>set</l></custom-block></block><script><block s="doReport"><l>ERROR: first parameter is not a set!</l></block></script><comment w="107.14285714285722" collapsed="false">are these two sets?</comment></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a %txt"><block var="set2"/><l>set</l></custom-block></block><script><block s="doReport"><l>ERROR: second parameter is not a set!</l></block></script></block><block s="doSetVar"><l>result</l><block s="reportNewList"><list><l>set</l><block s="reportAnd"><block s="reportListItem"><l>2</l><block var="set1"/></block><block s="reportListItem"><l>2</l><block var="set2"/></block></block><block s="reportConcatenatedLists"><list><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportOr"><block s="reportListContainsItem"><block s="reportListItem"><l>3</l><block var="set1"/></block><block var="element"/></block><custom-block s="evaluate intervals %l with %s"><block s="reportListItem"><l>4</l><block var="set1"/></block><block var="element"/></custom-block></block></autolambda><list><l>element</l></list></block><block s="reportListItem"><l>3</l><block var="set2"/></block></block><block s="reportKeep"><block s="reifyPredicate"><autolambda><custom-block s="evaluate intervals %l with %s"><block s="reportListItem"><l>4</l><block var="set2"/></block><block var="element"/></custom-block></autolambda><list><l>element</l></list></block><block s="reportListItem"><l>3</l><block var="set1"/></block></block></list></block><custom-block s="intersect interval lists %l and %l"><block s="reportListItem"><l>4</l><block var="set1"/></block><block s="reportListItem"><l>4</l><block var="set2"/></block></custom-block><l></l></list></block></block><block s="doReport"><custom-block s="cleaned up set %l"><block var="result"/></custom-block></block></script></block></script></block-definition><block-definition s="%'set1' ∪ %'set2'" type="reporter" category="other" helper="true"><comment x="0" y="0" w="139.16666666666669" collapsed="false">Reports the union of two sets.</comment><header></header><code></code><translations></translations><inputs><input type="%s">set1</input><input type="%s">set2</input></inputs><script><block s="doWarp"><script><block s="doDeclareVariables"><list><l>result</l></list></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a %txt"><block var="set1"/><l>set</l></custom-block></block><script><block s="doReport"><l>ERROR: first parameter is not a set!</l></block></script><comment w="107.14285714285722" collapsed="false">are these two sets?</comment></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a %txt"><block var="set2"/><l>set</l></custom-block></block><script><block s="doReport"><l>ERROR: second parameter is not a set!</l></block></script></block><block s="doSetVar"><l>result</l><block s="reportNewList"><list><l>set</l><block s="reportAnd"><block s="reportListItem"><l>2</l><block var="set1"/></block><block s="reportListItem"><l>2</l><block var="set2"/></block></block><block s="reportConcatenatedLists"><list><block s="reportListItem"><l>3</l><block var="set1"/></block><block s="reportListItem"><l>3</l><block var="set2"/></block></list></block><custom-block s="merge intervals %l"><block s="reportConcatenatedLists"><list><block s="reportListItem"><l>4</l><block var="set1"/></block><block s="reportListItem"><l>4</l><block var="set2"/></block></list></block></custom-block><l></l></list></block></block><block s="doReport"><custom-block s="cleaned up set %l"><block var="result"/></custom-block></block></script></block></script></block-definition><block-definition s="%'set1' \ %'set2'" type="reporter" category="other" helper="true"><comment x="0" y="0" w="212.85714285714297" collapsed="false">Reports the difference between two sets.</comment><header></header><code></code><translations></translations><inputs><input type="%s">set1</input><input type="%s">set2</input></inputs><script><block s="doDeclareVariables"><list><l>result</l><l>n</l><l>m</l><l>interval1</l><l>interval2</l><l>difference</l></list></block><block s="doWarp"><script><block s="doIf"><block s="reportNot"><custom-block s="is %s a %txt"><block var="set1"/><l>set</l></custom-block></block><script><block s="doReport"><l>ERROR: first parameter is not a set!</l></block></script><comment w="107.14285714285722" collapsed="false">are these two sets?</comment></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a %txt"><block var="set2"/><l>set</l></custom-block></block><script><block s="doReport"><l>ERROR: second parameter is not a set!</l></block></script></block><block s="doSetVar"><l>result</l><block s="reportNewList"><list><l>set</l><block s="reportAnd"><block s="reportListItem"><l>2</l><block var="set1"/></block><block s="reportListItem"><l>2</l><block var="set2"/></block></block><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportNot"><block s="reportOr"><block s="reportListContainsItem"><block s="reportListItem"><l>3</l><block var="set2"/></block><block var="element"/></block><custom-block s="evaluate intervals %l with %s"><block s="reportListItem"><l>4</l><block var="set2"/></block><block var="element"/></custom-block></block></block></autolambda><list><l>element</l></list></block><block s="reportListItem"><l>3</l><block var="set1"/></block></block><block s="reportNewList"><list></list></block><l></l></list></block></block><block s="doIf"><block s="reportNot"><block s="reportListItem"><l>2</l><block var="result"/></block></block><script><block s="doIfElse"><block s="reportOr"><block s="reportGreaterThan"><block s="reportListAttribute"><l><option>length</option></l><block s="reportListItem"><l>4</l><block var="set1"/></block></block><l>0</l></block><block s="reportGreaterThan"><block s="reportListAttribute"><l><option>length</option></l><block s="reportListItem"><l>4</l><block var="set2"/></block></block><l>0</l></block></block><script><block s="doReport"><l>ERROR: impossible operation for not numerical sets.</l></block></script><script><block s="doReport"><block s="reportNewList"><list><l>set</l><block s="reportListItem"><l>2</l><block var="result"/></block><block s="reportListItem"><l>3</l><block var="result"/></block><block s="reportListItem"><l>4</l><block var="set1"/></block><l></l></list></block></block></script></block></script></block><block s="doSetVar"><l>set1</l><custom-block s="copy of %l"><block var="set1"/></custom-block></block><block s="doSetVar"><l>set2</l><custom-block s="copy of %l"><block var="set2"/></custom-block></block><block s="doReplaceInList"><l>4</l><block var="set2"/><block s="reportConcatenatedLists"><list><block s="reportListItem"><l>4</l><block var="set2"/></block><custom-block s="list of numbers %l $arrowRightOutline list of intervals"><block s="reportListItem"><l>3</l><block var="set2"/></block></custom-block></list></block></block><block s="doReplaceInList"><l>3</l><block var="set2"/><block s="reportNewList"><list></list></block></block><block s="doSetVar"><l>m</l><l>1</l></block><block s="doUntil"><block s="reportGreaterThan"><block var="m"/><block s="reportListAttribute"><l><option>length</option></l><block s="reportListItem"><l>4</l><block var="set2"/></block></block></block><script><block s="doSetVar"><l>interval2</l><block s="reportListItem"><block var="m"/><block s="reportListItem"><l>4</l><block var="set2"/></block></block></block><block s="doSetVar"><l>n</l><l>1</l></block><block s="doUntil"><block s="reportGreaterThan"><block var="n"/><block s="reportListAttribute"><l><option>length</option></l><block s="reportListItem"><l>4</l><block var="set1"/></block></block></block><script><block s="doSetVar"><l>interval1</l><block s="reportListItem"><block var="n"/><block s="reportListItem"><l>4</l><block var="set1"/></block></block></block><block s="doSetVar"><l>difference</l><custom-block s="difference of interval %l and %l"><block var="interval1"/><block var="interval2"/></custom-block></block><block s="doIf"><block s="reportAnd"><block s="reportGreaterThan"><block s="reportListAttribute"><l><option>length</option></l><block var="difference"/></block><l>0</l></block><block s="reportGreaterThan"><block s="reportListAttribute"><l><option>length</option></l><custom-block s="intersect two intervals %l %l"><block var="interval1"/><block var="interval2"/></custom-block></block><l>0</l></block></block><script><block s="doReplaceInList"><l>4</l><block var="set1"/><block s="reportConcatenatedLists"><list><block s="reportListItem"><l>4</l><block var="set1"/></block><block var="difference"/></list></block></block><block s="doDeleteFromList"><block var="n"/><block s="reportListItem"><l>4</l><block var="set1"/></block></block></script></block><block s="doChangeVar"><l>n</l><l>1</l></block></script></block><block s="doChangeVar"><l>m</l><l>1</l></block></script><comment w="120" collapsed="false">compare the mth interval with all intervals of set1</comment></block><block s="doReplaceInList"><l>4</l><block var="result"/><custom-block s="merge intervals %l"><block s="reportListItem"><l>4</l><block var="set1"/></block></custom-block></block><block s="doReport"><custom-block s="cleaned up set %l"><block var="result"/></custom-block></block></script></block></script></block-definition><block-definition s="%'set1' X %'set2'" type="reporter" category="other" helper="true"><comment x="0" y="0" w="250.16666666666677" collapsed="false">Reports the Cartesian product between two sets.</comment><header></header><code></code><translations></translations><inputs><input type="%s">set1</input><input type="%s">set2</input></inputs><script><block s="doDeclareVariables"><list><l>result</l><l>term1</l><l>term2</l></list></block><block s="doWarp"><script><block s="doIf"><block s="reportNot"><custom-block s="is %s a %txt"><block var="set1"/><l>set</l></custom-block><comment w="107.14285714285722" collapsed="false">are these two sets?</comment></block><script><block s="doReport"><l>ERROR: first parameter is not a set!</l></block></script></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a %txt"><block var="set2"/><l>set</l></custom-block></block><script><block s="doReport"><l>ERROR: second parameter is not a set!</l></block></script></block><block s="doIf"><block s="reportOr"><block s="reportGreaterThan"><block s="reportListAttribute"><l><option>length</option></l><block s="reportListItem"><l>4</l><block var="set1"/></block></block><l>0</l></block><block s="reportGreaterThan"><block s="reportListAttribute"><l><option>length</option></l><block s="reportListItem"><l>4</l><block var="set2"/></block></block><l>0</l></block></block><script><block s="doReport"><l>ERROR: impossible operation with infinite sets!</l></block></script></block><block s="doSetVar"><l>result</l><block s="reportNewList"><list><l>set</l><block s="reportAnd"><block s="reportListItem"><l>2</l><block var="set1"/></block><block s="reportListItem"><l>2</l><block var="set2"/></block></block><block s="reportNewList"><list></list></block><block s="reportNewList"><list></list></block><l></l></list></block></block><block s="doForEach"><l>item_1</l><block s="reportListItem"><l>3</l><block var="set1"/></block><script><block s="doForEach"><l>item_2</l><block s="reportListItem"><l>3</l><block var="set2"/></block><script><block s="doIfElse"><block s="reportIsA"><block var="item_1"/><l><option>list</option></l></block><script><block s="doSetVar"><l>term1</l><block var="item_1"/></block></script><script><block s="doSetVar"><l>term1</l><block s="reportNewList"><list><block var="item_1"/></list></block></block></script></block><block s="doIfElse"><block s="reportIsA"><block var="item_2"/><l><option>list</option></l></block><script><block s="doSetVar"><l>term2</l><block var="item_2"/></block></script><script><block s="doSetVar"><l>term2</l><block s="reportNewList"><list><block var="item_2"/></list></block></block></script></block><block s="doAddToList"><block s="reportConcatenatedLists"><list><block var="term1"/><block var="term2"/></list></block><block s="reportListItem"><l>3</l><block var="result"/></block></block></script></block></script></block><block s="doReport"><block var="result"/></block></script></block></script></block-definition><block-definition s="%'a' $arrowRightThin %'b' ?" type="predicate" category="other" helper="true"><comment x="0" y="0" w="67.5" collapsed="false">implication</comment><header></header><code></code><translations></translations><inputs><input type="%s">1</input><input type="%n">0</input></inputs><script><block s="doReport"><block s="reportOr"><block s="reportNot"><custom-block s="number %n $arrowRightOutline boolean"><block var="a"/></custom-block></block><custom-block s="number %n $arrowRightOutline boolean"><block var="b"/></custom-block></block></block></script></block-definition><block-definition s="%'a' $arrowLeftRightThin %'b' ?" type="predicate" category="other" helper="true"><comment x="0" y="0" w="90" collapsed="false">equivalence</comment><header></header><code></code><translations></translations><inputs><input type="%s">1</input><input type="%s">0</input></inputs><script><block s="doReport"><block s="reportEquals"><custom-block s="number %n $arrowRightOutline boolean"><block var="a"/></custom-block><custom-block s="number %n $arrowRightOutline boolean"><block var="b"/></custom-block></block></block></script></block-definition><block-definition s="number %'x' $arrowRightOutline boolean" type="reporter" category="other" helper="true"><comment x="0" y="0" w="163.3333333333337" collapsed="false">Converts numbers to booleans</comment><header></header><code></code><translations></translations><inputs><input type="%n">1</input></inputs><script><block s="doWarp"><script><block s="doIfElse"><block s="reportIsA"><block var="x"/><l><option>number</option></l></block><script><block s="doReport"><block s="reportNot"><block s="reportEquals"><block var="x"/><l>0</l></block></block></block></script><script><block s="doReport"><block var="x"/></block></script></block></script></block></script></block-definition><block-definition s="boolean %'x' $arrowRightOutline number" type="reporter" category="other" helper="true"><comment x="0" y="0" w="179.16666666666669" collapsed="false">Converts booleans to numbers</comment><header></header><code></code><translations></translations><inputs><input type="%b">true</input></inputs><script><block s="doWarp"><script><block s="doIfElse"><block s="reportIsA"><block var="x"/><l><option>Boolean</option></l></block><script><block s="doIfElse"><block var="x"/><script><block s="doReport"><l>1</l></block></script><script><block s="doReport"><l>0</l></block></script></block></script><script><block s="doReport"><block var="x"/></block></script></block></script></block></script></block-definition><block-definition s="merge intervals %'theIntervals'" type="reporter" category="other" helper="true"><comment x="0" y="0" w="322.5" collapsed="false">Intervals should be of structure [leftLimit,operator1,operator2,rightLimit]</comment><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doDeclareVariables"><list><l>result</l><l>n</l><l>m</l><l>interval1</l><l>interval2</l><l>merged?</l><l>leftMarker</l><l>rightMarker</l></list></block><block s="doWarp"><script><block s="doIf"><block s="reportNot"><custom-block s="is %s a %txt"><block var="theIntervals"/><l>listOfIntervals</l></custom-block></block><script><block s="doIfElse"><block s="reportEquals"><block var="theIntervals"/><block s="reportNewList"><list></list></block></block><script><block s="doReport"><block var="theIntervals"/></block></script><script><block s="doReport"><l>ERROR: intervals necessary!</l></block></script></block></script></block><block s="doIf"><block s="reportLessThan"><block s="reportListAttribute"><l><option>length</option></l><block var="theIntervals"/></block><l>2</l></block><script><block s="doReport"><block var="theIntervals"/></block></script></block><block s="doSetVar"><l>result</l><block s="reportMap"><block s="reifyReporter"><script></script><list></list></block><block var="theIntervals"/></block></block><block s="doSetVar"><l>n</l><l>1</l></block><block s="doUntil"><block s="reportGreaterThan"><block var="n"/><block s="reportListAttribute"><l><option>length</option></l><block var="result"/></block></block><script><block s="doSetVar"><l>interval1</l><block s="reportListItem"><block var="n"/><block var="result"/></block><comment w="105.83333333333334" collapsed="false">compare the nth interval with the rest</comment></block><block s="doSetVar"><l>merged?</l><block s="reportBoolean"><l><bool>false</bool></l></block></block><block s="doSetVar"><l>m</l><l>1</l></block><block s="doUntil"><block s="reportGreaterThan"><block var="m"/><block s="reportListAttribute"><l><option>length</option></l><block var="result"/></block></block><script><block s="doIfElse"><block s="reportEquals"><block var="m"/><block var="n"/></block><script><block s="doChangeVar"><l>m</l><l>1</l></block></script><script><block s="doSetVar"><l>interval2</l><block s="reportListItem"><block var="m"/><block var="result"/></block></block><block s="doIfElse"><custom-block s="are intervals %l and %l overlapping?"><block var="interval1"/><block var="interval2"/></custom-block><script><block s="doSetVar"><l>leftMarker</l><block s="reportIfElse"><block s="reportLessThan"><block s="reportListItem"><l>1</l><block var="interval1"/></block><block s="reportListItem"><l>1</l><block var="interval2"/></block></block><block s="reportNewList"><list><block s="reportListItem"><l>1</l><block var="interval1"/></block><block s="reportListItem"><l>2</l><block var="interval1"/></block></list></block><block s="reportIfElse"><block s="reportGreaterThan"><block s="reportListItem"><l>1</l><block var="interval1"/></block><block s="reportListItem"><l>1</l><block var="interval2"/></block></block><block s="reportNewList"><list><block s="reportListItem"><l>1</l><block var="interval2"/></block><block s="reportListItem"><l>2</l><block var="interval2"/></block></list></block><block s="reportIfElse"><block s="reportEquals"><block s="reportListItem"><l>2</l><block var="interval1"/></block><l><</l></block><block s="reportNewList"><list><block s="reportListItem"><l>1</l><block var="interval1"/></block><block s="reportListItem"><l>2</l><block var="interval1"/></block></list></block><block s="reportNewList"><list><block s="reportListItem"><l>1</l><block var="interval2"/></block><block s="reportListItem"><l>2</l><block var="interval2"/></block></list></block></block></block></block><comment w="90" collapsed="false">determine new limits</comment></block><block s="doSetVar"><l>rightMarker</l><block s="reportIfElse"><block s="reportLessThan"><block s="reportListItem"><l>4</l><block var="interval1"/></block><block s="reportListItem"><l>4</l><block var="interval2"/></block></block><block s="reportNewList"><list><block s="reportListItem"><l>4</l><block var="interval2"/></block><block s="reportListItem"><l>3</l><block var="interval2"/></block></list></block><block s="reportIfElse"><block s="reportGreaterThan"><block s="reportListItem"><l>4</l><block var="interval1"/></block><block s="reportListItem"><l>4</l><block var="interval2"/></block></block><block s="reportNewList"><list><block s="reportListItem"><l>4</l><block var="interval1"/></block><block s="reportListItem"><l>3</l><block var="interval1"/></block></list></block><block s="reportIfElse"><block s="reportEquals"><block s="reportListItem"><l>3</l><block var="interval1"/></block><l><</l></block><block s="reportNewList"><list><block s="reportListItem"><l>4</l><block var="interval2"/></block><block s="reportListItem"><l>3</l><block var="interval2"/></block></list></block><block s="reportNewList"><list><block s="reportListItem"><l>4</l><block var="interval1"/></block><block s="reportListItem"><l>3</l><block var="interval1"/></block></list></block></block></block></block></block><block s="doSetVar"><l>merged?</l><block s="reportBoolean"><l><bool>true</bool></l></block></block><block s="doReplaceInList"><block var="n"/><block var="result"/><block s="reportNewList"><list><block s="reportListItem"><l>1</l><block var="leftMarker"/></block><block s="reportListItem"><l>2</l><block var="leftMarker"/></block><block s="reportListItem"><l>2</l><block var="rightMarker"/></block><block s="reportListItem"><l>1</l><block var="rightMarker"/></block></list></block><comment w="90" collapsed="false">replace two intervals by the new one</comment></block><block s="doDeleteFromList"><block var="m"/><block var="result"/></block></script><script><block s="doChangeVar"><l>m</l><l>1</l></block></script></block></script></block></script></block><block s="doIf"><block s="reportNot"><block var="merged?"/></block><script><block s="doChangeVar"><l>n</l><l>1</l></block></script></block></script></block><block s="doReport"><block var="result"/></block></script></block></script></block-definition><block-definition s="predicate tree %'tree' $arrowRightThin list of intervals" type="reporter" category="other" helper="true"><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doWarp"><script><block s="doIf"><block s="reportListContainsItem"><block s="reportNewList"><list><block s="reifyPredicate"><autolambda><block s="reportEquals"><l></l><l></l></block></autolambda><list></list></block><block s="reifyPredicate"><autolambda><block s="reportNotEquals"><l></l><l></l></block></autolambda><list></list></block><block s="reifyPredicate"><autolambda><block s="reportLessThanOrEquals"><l></l><l></l></block></autolambda><list></list></block><block s="reifyPredicate"><autolambda><block s="reportGreaterThanOrEquals"><l></l><l></l></block></autolambda><list></list></block><block s="reifyPredicate"><autolambda><block s="reportLessThan"><l></l><l></l></block></autolambda><list></list></block><block s="reifyPredicate"><autolambda><block s="reportGreaterThan"><l></l><l></l></block></autolambda><list></list></block></list></block><block s="reportListItem"><l>1</l><block var="tree"/></block></block><script><block s="doIf"><block s="reportAnd"><block s="reportEquals"><block s="reportListItem"><l>2</l><block var="tree"/></block><l></l></block><block s="reportEquals"><block s="reportListItem"><l>3</l><block var="tree"/></block><l></l></block></block><script><block s="doReport"><l>ERROR: senseless predicate</l></block></script></block></script></block><block s="doIf"><block s="reportEquals"><block s="reportListItem"><l>1</l><block var="tree"/></block><block s="reifyPredicate"><autolambda><block s="reportEquals"><l></l><l></l></block></autolambda><list></list></block></block><script><block s="doIfElse"><block s="reportEquals"><block s="reportListItem"><l>2</l><block var="tree"/></block><l></l></block><script><block s="doReport"><block s="reportNewList"><list><block s="reportNewList"><list><block s="reportListItem"><l>3</l><block var="tree"/></block><l>≤</l><l>≤</l><block s="reportListItem"><l>3</l><block var="tree"/></block></list></block></list></block></block></script><script><block s="doReport"><block s="reportNewList"><list><block s="reportNewList"><list><block s="reportListItem"><l>2</l><block var="tree"/></block><l>≤</l><l>≤</l><block s="reportListItem"><l>2</l><block var="tree"/></block></list></block></list></block></block></script></block></script></block><block s="doIf"><block s="reportEquals"><block s="reportListItem"><l>1</l><block var="tree"/></block><block s="reifyPredicate"><autolambda><block s="reportNotEquals"><l></l><l></l></block></autolambda><list></list></block></block><script><block s="doIfElse"><block s="reportEquals"><block s="reportListItem"><l>2</l><block var="tree"/></block><l></l></block><script><block s="doReport"><block s="reportNewList"><list><block s="reportNewList"><list><l>-Infinity</l><l><</l><l><</l><block s="reportListItem"><l>3</l><block var="tree"/></block></list></block><block s="reportNewList"><list><block s="reportListItem"><l>3</l><block var="tree"/></block><l><</l><l><</l><l>Infinity</l></list></block></list></block></block></script><script><block s="doReport"><block s="reportNewList"><list><block s="reportNewList"><list><l>-Infinity</l><l><</l><l><</l><block s="reportListItem"><l>2</l><block var="tree"/></block></list></block><block s="reportNewList"><list><block s="reportListItem"><l>2</l><block var="tree"/></block><l><</l><l><</l><l>Infinity</l></list></block></list></block></block></script></block></script></block><block s="doIf"><block s="reportEquals"><block s="reportListItem"><l>1</l><block var="tree"/></block><block s="reifyPredicate"><autolambda><block s="reportLessThanOrEquals"><l></l><l></l></block></autolambda><list></list></block></block><script><block s="doIfElse"><block s="reportEquals"><block s="reportListItem"><l>2</l><block var="tree"/></block><l></l></block><script><block s="doReport"><block s="reportNewList"><list><block s="reportNewList"><list><l>-Infinity</l><l>≤</l><l>≤</l><block s="reportListItem"><l>3</l><block var="tree"/></block></list></block></list></block></block></script><script><block s="doReport"><block s="reportNewList"><list><block s="reportNewList"><list><block s="reportListItem"><l>2</l><block var="tree"/></block><l>≤</l><l>≤</l><l>Infinity</l></list></block></list></block></block></script></block></script></block><block s="doIf"><block s="reportEquals"><block s="reportListItem"><l>1</l><block var="tree"/></block><block s="reifyPredicate"><autolambda><block s="reportGreaterThanOrEquals"><l></l><l></l></block></autolambda><list></list></block></block><script><block s="doIfElse"><block s="reportEquals"><block s="reportListItem"><l>2</l><block var="tree"/></block><l></l></block><script><block s="doReport"><block s="reportNewList"><list><block s="reportNewList"><list><block s="reportListItem"><l>3</l><block var="tree"/></block><l>≤</l><l>≤</l><l>Infinity</l></list></block></list></block></block></script><script><block s="doReport"><block s="reportNewList"><list><block s="reportNewList"><list><l>-Infinity</l><l>≤</l><l>≤</l><block s="reportListItem"><l>2</l><block var="tree"/></block></list></block></list></block></block></script></block></script></block><block s="doIf"><block s="reportEquals"><block s="reportListItem"><l>1</l><block var="tree"/></block><block s="reifyPredicate"><autolambda><block s="reportLessThan"><l></l><l></l></block></autolambda><list></list></block></block><script><block s="doIfElse"><block s="reportEquals"><block s="reportListItem"><l>2</l><block var="tree"/></block><l></l></block><script><block s="doReport"><block s="reportNewList"><list><block s="reportNewList"><list><l>-Infinity</l><l>≤</l><l><</l><block s="reportListItem"><l>3</l><block var="tree"/></block></list></block></list></block></block></script><script><block s="doReport"><block s="reportNewList"><list><block s="reportNewList"><list><block s="reportListItem"><l>2</l><block var="tree"/></block><l><</l><l>≤</l><l>Infinity</l></list></block></list></block></block></script></block></script></block><block s="doIf"><block s="reportEquals"><block s="reportListItem"><l>1</l><block var="tree"/></block><block s="reifyPredicate"><autolambda><block s="reportGreaterThan"><l></l><l></l></block></autolambda><list></list></block></block><script><block s="doIfElse"><block s="reportEquals"><block s="reportListItem"><l>2</l><block var="tree"/></block><l></l></block><script><block s="doReport"><block s="reportNewList"><list><block s="reportNewList"><list><block s="reportListItem"><l>3</l><block var="tree"/></block><l><</l><l>≤</l><l>Infinity</l></list></block></list></block></block></script><script><block s="doReport"><block s="reportNewList"><list><block s="reportNewList"><list><l>-Infinity</l><l>≤</l><l><</l><block s="reportListItem"><l>2</l><block var="tree"/></block></list></block></list></block></block></script></block></script></block><block s="doIf"><block s="reportEquals"><block s="reportListItem"><l>1</l><block var="tree"/></block><block s="reifyPredicate"><autolambda><block s="reportAnd"><l/><l/></block></autolambda><list></list></block></block><script><block s="doReport"><custom-block s="intersect interval lists %l and %l"><custom-block s="predicate tree %l $arrowRightThin list of intervals"><block s="reportListItem"><l>2</l><block var="tree"/></block></custom-block><custom-block s="predicate tree %l $arrowRightThin list of intervals"><block s="reportListItem"><l>3</l><block var="tree"/></block></custom-block></custom-block></block></script></block><block s="doIf"><block s="reportEquals"><block s="reportListItem"><l>1</l><block var="tree"/></block><block s="reifyPredicate"><autolambda><block s="reportOr"><l/><l/></block></autolambda><list></list></block></block><script><block s="doReport"><custom-block s="merge interval lists %l and %l"><custom-block s="predicate tree %l $arrowRightThin list of intervals"><block s="reportListItem"><l>2</l><block var="tree"/></block></custom-block><custom-block s="predicate tree %l $arrowRightThin list of intervals"><block s="reportListItem"><l>3</l><block var="tree"/></block></custom-block></custom-block></block></script></block><block s="doIf"><block s="reportEquals"><block s="reportListItem"><l>1</l><block var="tree"/></block><block s="reifyPredicate"><autolambda><block s="reportNot"><l/></block></autolambda><list></list></block></block><script><block s="doIf"><block s="reportEquals"><block s="reportListItem"><l>1</l><block s="reportListItem"><l>2</l><block var="tree"/></block></block><block s="reifyPredicate"><autolambda><block s="reportEquals"><l></l><l></l></block></autolambda><list></list></block></block><script><block s="doReport"><custom-block s="predicate tree %l $arrowRightThin list of intervals"><block s="reportConcatenatedLists"><list><block s="reportNewList"><list><block s="reifyPredicate"><autolambda><block s="reportNotEquals"><l></l><l></l></block></autolambda><list></list></block></list></block><block s="reportCDR"><block s="reportListItem"><l>2</l><block var="tree"/></block></block></list></block></custom-block></block></script></block><block s="doIf"><block s="reportEquals"><block s="reportListItem"><l>1</l><block s="reportListItem"><l>2</l><block var="tree"/></block></block><block s="reifyPredicate"><autolambda><block s="reportNotEquals"><l></l><l></l></block></autolambda><list></list></block></block><script><block s="doReport"><custom-block s="predicate tree %l $arrowRightThin list of intervals"><block s="reportConcatenatedLists"><list><block s="reportNewList"><list><block s="reifyPredicate"><autolambda><block s="reportEquals"><l></l><l></l></block></autolambda><list></list></block></list></block><block s="reportCDR"><block s="reportListItem"><l>2</l><block var="tree"/></block></block></list></block></custom-block></block></script></block><block s="doIf"><block s="reportEquals"><block s="reportListItem"><l>1</l><block s="reportListItem"><l>2</l><block var="tree"/></block></block><block s="reifyPredicate"><autolambda><block s="reportLessThanOrEquals"><l></l><l></l></block></autolambda><list></list></block></block><script><block s="doReport"><custom-block s="predicate tree %l $arrowRightThin list of intervals"><block s="reportConcatenatedLists"><list><block s="reportNewList"><list><block s="reifyPredicate"><autolambda><block s="reportGreaterThan"><l></l><l></l></block></autolambda><list></list></block></list></block><block s="reportCDR"><block s="reportListItem"><l>2</l><block var="tree"/></block></block></list></block></custom-block></block></script></block><block s="doIf"><block s="reportEquals"><block s="reportListItem"><l>1</l><block s="reportListItem"><l>2</l><block var="tree"/></block></block><block s="reifyPredicate"><autolambda><block s="reportGreaterThanOrEquals"><l></l><l></l></block></autolambda><list></list></block></block><script><block s="doReport"><custom-block s="predicate tree %l $arrowRightThin list of intervals"><block s="reportConcatenatedLists"><list><block s="reportNewList"><list><block s="reifyPredicate"><autolambda><block s="reportLessThan"><l></l><l></l></block></autolambda><list></list></block></list></block><block s="reportCDR"><block s="reportListItem"><l>2</l><block var="tree"/></block></block></list></block></custom-block></block></script></block><block s="doIf"><block s="reportEquals"><block s="reportListItem"><l>1</l><block s="reportListItem"><l>2</l><block var="tree"/></block></block><block s="reifyPredicate"><autolambda><block s="reportGreaterThan"><l></l><l></l></block></autolambda><list></list></block></block><script><block s="doReport"><custom-block s="predicate tree %l $arrowRightThin list of intervals"><block s="reportConcatenatedLists"><list><block s="reportNewList"><list><block s="reifyPredicate"><autolambda><block s="reportLessThanOrEquals"><l></l><l></l></block></autolambda><list></list></block></list></block><block s="reportCDR"><block s="reportListItem"><l>2</l><block var="tree"/></block></block></list></block></custom-block></block></script></block><block s="doIf"><block s="reportEquals"><block s="reportListItem"><l>1</l><block s="reportListItem"><l>2</l><block var="tree"/></block></block><block s="reifyPredicate"><autolambda><block s="reportLessThan"><l></l><l></l></block></autolambda><list></list></block></block><script><block s="doReport"><custom-block s="predicate tree %l $arrowRightThin list of intervals"><block s="reportConcatenatedLists"><list><block s="reportNewList"><list><block s="reifyPredicate"><autolambda><block s="reportGreaterThanOrEquals"><l></l><l></l></block></autolambda><list></list></block></list></block><block s="reportCDR"><block s="reportListItem"><l>2</l><block var="tree"/></block></block></list></block></custom-block></block></script></block><block s="doIf"><block s="reportEquals"><block s="reportListItem"><l>1</l><block s="reportListItem"><l>2</l><block var="tree"/></block></block><block s="reifyPredicate"><autolambda><block s="reportNot"><l/></block></autolambda><list></list></block></block><script><block s="doReport"><custom-block s="predicate tree %l $arrowRightThin list of intervals"><block s="reportListItem"><l>2</l><block s="reportListItem"><l>2</l><block var="tree"/></block></block></custom-block></block></script></block><block s="doIf"><block s="reportEquals"><block s="reportListItem"><l>1</l><block s="reportListItem"><l>2</l><block var="tree"/></block></block><block s="reifyPredicate"><autolambda><block s="reportAnd"><l/><l/></block></autolambda><list></list></block></block><script><block s="doReport"><custom-block s="predicate tree %l $arrowRightThin list of intervals"><block s="reportNewList"><list><block s="reifyPredicate"><autolambda><block s="reportOr"><l/><l/></block></autolambda><list></list></block><block s="reportNewList"><list><block s="reifyPredicate"><autolambda><block s="reportNot"><l/></block></autolambda><list></list></block><block s="reportListItem"><l>2</l><block s="reportListItem"><l>2</l><block var="tree"/></block></block></list></block><block s="reportNewList"><list><block s="reifyPredicate"><autolambda><block s="reportNot"><l/></block></autolambda><list></list></block><block s="reportListItem"><l>3</l><block s="reportListItem"><l>2</l><block var="tree"/></block></block></list></block></list></block></custom-block></block></script></block><block s="doIf"><block s="reportEquals"><block s="reportListItem"><l>1</l><block s="reportListItem"><l>2</l><block var="tree"/></block></block><block s="reifyPredicate"><autolambda><block s="reportOr"><l/><l/></block></autolambda><list></list></block></block><script><block s="doReport"><custom-block s="predicate tree %l $arrowRightThin list of intervals"><block s="reportNewList"><list><block s="reifyPredicate"><autolambda><block s="reportAnd"><l/><l/></block></autolambda><list></list></block><block s="reportNewList"><list><block s="reifyPredicate"><autolambda><block s="reportNot"><l/></block></autolambda><list></list></block><block s="reportListItem"><l>2</l><block s="reportListItem"><l>2</l><block var="tree"/></block></block></list></block><block s="reportNewList"><list><l>not</l><block s="reportListItem"><l>3</l><block s="reportListItem"><l>2</l><block var="tree"/></block></block></list></block></list></block></custom-block></block></script></block></script></block></script></block></script></block-definition><block-definition s="intersect two intervals %'interval1' %'interval2'" type="reporter" category="other" helper="true"><comment x="0" y="0" w="322.5" collapsed="false">Intervals should be of structure [leftLimit,operator1,operator2,rightLimit]</comment><header></header><code></code><translations></translations><inputs><input type="%l"></input><input type="%l"></input></inputs><script><block s="doDeclareVariables"><list><l>leftEdge</l><l>rightEdge</l><l>op1</l><l>op2</l></list></block><block s="doWarp"><script><block s="doIf"><block s="reportNot"><block s="reportAnd"><custom-block s="is %s a %txt"><block var="interval1"/><l>interval</l></custom-block><custom-block s="is %s a %txt"><block var="interval2"/><l>interval</l></custom-block></block></block><script><block s="doReport"><l>ERROR: intervals required!</l></block></script></block><block s="doIf"><block s="reportNot"><custom-block s="are intervals %l and %l overlapping?"><block var="interval1"/><block var="interval2"/></custom-block></block><script><block s="doReport"><block s="reportNewList"><list></list></block><comment w="90" collapsed="false">an empty interval</comment></block></script></block><block s="doIfElse"><block s="reportLessThan"><block s="reportListItem"><l>1</l><block var="interval1"/></block><block s="reportListItem"><l>1</l><block var="interval2"/></block></block><script><block s="doSetVar"><l>leftEdge</l><block s="reportListItem"><l>1</l><block var="interval2"/></block></block><block s="doSetVar"><l>op1</l><block s="reportListItem"><l>2</l><block var="interval2"/></block></block></script><script><block s="doIfElse"><block s="reportEquals"><block s="reportListItem"><l>1</l><block var="interval1"/></block><block s="reportListItem"><l>1</l><block var="interval2"/></block></block><script><block s="doSetVar"><l>leftEdge</l><block s="reportListItem"><l>1</l><block var="interval2"/></block></block><block s="doIfElse"><block s="reportOr"><block s="reportEquals"><block s="reportListItem"><l>2</l><block var="interval1"/></block><l><</l></block><block s="reportEquals"><block s="reportListItem"><l>2</l><block var="interval2"/></block><l><</l></block></block><script><block s="doSetVar"><l>op1</l><l><</l></block></script><script><block s="doSetVar"><l>op1</l><l>≤</l></block></script></block></script><script><block s="doSetVar"><l>leftEdge</l><block s="reportListItem"><l>1</l><block var="interval1"/></block></block><block s="doSetVar"><l>op1</l><block s="reportListItem"><l>2</l><block var="interval1"/></block></block></script></block></script><comment w="82.00716145833326" collapsed="false">define left edge and operator</comment></block><block s="doIfElse"><block s="reportLessThan"><block s="reportListItem"><l>4</l><block var="interval1"/></block><block s="reportListItem"><l>4</l><block var="interval2"/></block></block><script><block s="doSetVar"><l>rightEdge</l><block s="reportListItem"><l>4</l><block var="interval1"/></block></block><block s="doSetVar"><l>op2</l><block s="reportListItem"><l>3</l><block var="interval1"/></block></block></script><script><block s="doIfElse"><block s="reportEquals"><block s="reportListItem"><l>4</l><block var="interval1"/></block><block s="reportListItem"><l>4</l><block var="interval2"/></block></block><script><block s="doSetVar"><l>rightEdge</l><block s="reportListItem"><l>4</l><block var="interval1"/></block></block><block s="doIfElse"><block s="reportOr"><block s="reportEquals"><block s="reportListItem"><l>3</l><block var="interval1"/></block><l><</l></block><block s="reportEquals"><block s="reportListItem"><l>3</l><block var="interval2"/></block><l><</l></block></block><script><block s="doSetVar"><l>op2</l><l><</l></block></script><script><block s="doSetVar"><l>op2</l><l>≤</l></block></script></block></script><script><block s="doSetVar"><l>rightEdge</l><block s="reportListItem"><l>4</l><block var="interval2"/></block></block><block s="doSetVar"><l>op2</l><block s="reportListItem"><l>3</l><block var="interval2"/></block></block></script></block></script><comment w="82.00716145833326" collapsed="false">define right edge and operator</comment></block><block s="doReport"><block s="reportNewList"><list><block var="leftEdge"/><block var="op1"/><block var="op2"/><block var="rightEdge"/></list></block></block></script></block></script></block-definition><block-definition s="intersect interval lists %'intervals1' and %'intervals2'" type="reporter" category="other" helper="true"><header></header><code></code><translations></translations><inputs><input type="%l"></input><input type="%l"></input></inputs><script><block s="doDeclareVariables"><list><l>result</l><l>m</l><l>n</l><l>interval</l></list></block><block s="doWarp"><script><block s="doIf"><block s="reportNot"><block s="reportAnd"><block s="reportOr"><custom-block s="is %s a %txt"><block var="intervals1"/><l>listOfIntervals</l></custom-block><block s="reportEquals"><block s="reportListAttribute"><l><option>length</option></l><block var="intervals1"/></block><l>0</l></block></block><block s="reportOr"><custom-block s="is %s a %txt"><block var="intervals2"/><l>listOfIntervals</l></custom-block><block s="reportEquals"><block s="reportListAttribute"><l><option>length</option></l><block var="intervals2"/></block><l>0</l></block></block></block></block><script><block s="doReport"><l>ERROR: interval lists required!</l></block></script></block><block s="doIf"><block s="reportOr"><block s="reportLessThan"><block s="reportListAttribute"><l><option>length</option></l><block var="intervals1"/></block><l>1</l></block><block s="reportLessThan"><block s="reportListAttribute"><l><option>length</option></l><block var="intervals2"/></block><l>1</l></block></block><script><block s="doReport"><block s="reportNewList"><list></list></block></block></script></block><block s="doSetVar"><l>result</l><block s="reportNewList"><list></list></block></block><block s="doSetVar"><l>n</l><l>1</l></block><block s="doUntil"><block s="reportGreaterThan"><block var="n"/><block s="reportListAttribute"><l><option>length</option></l><block var="intervals1"/></block></block><script><block s="doSetVar"><l>m</l><l>1</l></block><block s="doUntil"><block s="reportGreaterThan"><block var="m"/><block s="reportListAttribute"><l><option>length</option></l><block var="intervals2"/></block></block><script><block s="doSetVar"><l>interval</l><custom-block s="intersect two intervals %l %l"><block s="reportListItem"><block var="n"/><block var="intervals1"/></block><block s="reportListItem"><block var="m"/><block var="intervals2"/></block></custom-block></block><block s="doIf"><block s="reportGreaterThan"><block s="reportListAttribute"><l><option>length</option></l><block var="interval"/></block><l>0</l></block><script><block s="doAddToList"><block var="interval"/><block var="result"/></block></script></block><block s="doChangeVar"><l>m</l><l>1</l></block></script></block><block s="doChangeVar"><l>n</l><l>1</l></block></script></block><block s="doReport"><custom-block s="merge intervals %l"><block var="result"/></custom-block></block></script></block></script></block-definition><block-definition s="merge interval lists %'intervals1' and %'intervals2'" type="reporter" category="other" helper="true"><header></header><code></code><translations></translations><inputs><input type="%l"></input><input type="%l"></input></inputs><script><block s="doDeclareVariables"><list><l>result</l><l>n</l></list></block><block s="doWarp"><script><block s="doIf"><block s="reportNot"><block s="reportAnd"><custom-block s="is %s a %txt"><block var="intervals1"/><l>listOfIntervals</l></custom-block><custom-block s="is %s a %txt"><block var="intervals2"/><l>listOfIntervals</l></custom-block></block></block><script><block s="doReport"><l>ERROR: interval lists required!</l></block></script></block><block s="doIf"><block s="reportLessThan"><block s="reportListAttribute"><l><option>length</option></l><block var="intervals1"/></block><l>1</l></block><script><block s="doReport"><block var="intervals2"/></block></script></block><block s="doIf"><block s="reportLessThan"><block s="reportListAttribute"><l><option>length</option></l><block var="intervals2"/></block><l>1</l></block><script><block s="doReport"><block var="intervals1"/></block></script></block><block s="doSetVar"><l>result</l><block s="reportMap"><block s="reifyReporter"><script></script><list></list></block><block var="intervals1"/></block></block><block s="doSetVar"><l>n</l><l>1</l></block><block s="doUntil"><block s="reportGreaterThan"><block var="n"/><block s="reportListAttribute"><l><option>length</option></l><block var="intervals2"/></block></block><script><block s="doAddToList"><block s="reportListItem"><block var="n"/><block var="intervals2"/></block><block var="result"/></block><block s="doChangeVar"><l>n</l><l>1</l></block></script></block><block s="doReport"><custom-block s="merge intervals %l"><block var="result"/></custom-block></block></script></block></script></block-definition><block-definition s="is interval %'interval' subinterval of interval list %'intervals' ?" type="predicate" category="other" helper="true"><header></header><code></code><translations></translations><inputs><input type="%l"></input><input type="%l"></input></inputs><script><block s="doDeclareVariables"><list><l>isSubinterval</l></list></block><block s="doWarp"><script><block s="doIf"><block s="reportNot"><custom-block s="is %s a %txt"><block var="interval"/><l>interval</l></custom-block></block><script><block s="doReport"><l>ERROR: interval required!</l></block></script></block><block s="doIf"><block s="reportEquals"><block s="reportListAttribute"><l><option>length</option></l><block var="intervals"/></block><l>0</l></block><script><block s="doReport"><block s="reportBoolean"><l><bool>false</bool></l></block></block></script></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a %txt"><block var="intervals"/><l>listOfIntervals</l></custom-block></block><script><block s="doReport"><l>ERROR: interval list required!</l></block></script></block><block s="doForEach"><l>item</l><custom-block s="merge intervals %l"><block var="intervals"/></custom-block><script><block s="doIf"><block s="reportEquals"><custom-block s="intersect two intervals %l %l"><block var="interval"/><block var="item"/></custom-block><block var="interval"/></block><script><block s="doReport"><block s="reportBoolean"><l><bool>true</bool></l></block></block></script></block></script></block><block s="doReport"><block s="reportBoolean"><l><bool>false</bool></l></block></block></script></block></script></block-definition><block-definition s="elements of %'elements' not covered by predicate %'predicate'" type="reporter" category="other" helper="true"><comment x="0" y="0" w="269" collapsed="false">Returns all elements of a list not covered by the predicate.</comment><header></header><code></code><translations></translations><inputs><input type="%l"></input><input type="%s"></input></inputs><script><block s="doDeclareVariables"><list><l>coveredElements</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>coveredElements</l><block s="reportKeep"><block s="reifyPredicate"><autolambda><custom-block s="evaluate predicate %s with %s"><block var="predicate"/><block var="element"/></custom-block></autolambda><list><l>element</l></list></block><block var="elements"/></block></block><block s="doReport"><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportNot"><block s="reportListContainsItem"><block var="coveredElements"/><l></l></block></block></autolambda><list></list></block><block var="elements"/></block></block></script></block></script></block-definition><block-definition s="elements of %'elements' not covered by intervals %'intervals'" type="reporter" category="other" helper="true"><comment x="0" y="0" w="269" collapsed="false">Returns all elements of a list not covered by the intervals.</comment><header></header><code></code><translations></translations><inputs><input type="%l"></input><input type="%l"></input></inputs><script><block s="doDeclareVariables"><list><l>coveredElements</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>coveredElements</l><block s="reportKeep"><block s="reifyPredicate"><autolambda><custom-block s="evaluate intervals %l with %s"><block var="intervals"/><block var="element"/></custom-block></autolambda><list><l>element</l></list></block><block var="elements"/></block></block><block s="doReport"><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportNot"><block s="reportListContainsItem"><block var="coveredElements"/><l></l></block></block></autolambda><list></list></block><block var="elements"/></block></block></script></block></script></block-definition><block-definition s="cleaned up set %'set'" type="reporter" category="other" helper="true"><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doDeclareVariables"><list><l>result</l></list></block><block s="doWarp"><script><block s="doIf"><block s="reportNot"><custom-block s="is %s a %txt"><block var="set"/><l>set</l></custom-block></block><script><block s="doReport"><l>ERROR: parameter is not a set!</l></block></script></block><block s="doSetVar"><l>result</l><custom-block s="copy of %l"><block var="set"/></custom-block></block><block s="doReplaceInList"><l>3</l><block var="result"/><block s="reportApplyExtension"><l>lst_sort(list, fn)</l><list><custom-block s="%s without duplicates"><custom-block s="elements of %l not covered by intervals %l"><block s="reportListItem"><l>3</l><block var="set"/></block><block s="reportListItem"><l>4</l><block var="set"/></block></custom-block></custom-block><block s="reifyPredicate"><autolambda><block s="reportLessThan"><l></l><l></l></block></autolambda><list></list></block></list></block></block><block s="doReport"><block var="result"/></block></script></block></script></block-definition><block-definition s="is %'predicateTree' translatable to intervals?" type="predicate" category="other" helper="true"><comment x="0" y="0" w="306.15384615384613" collapsed="false">Test wether the predicate is translatable to a list of intervals.</comment><header></header><code></code><translations></translations><inputs><input type="%l">ringified predicate</input></inputs><script><block s="doWarp"><script><block s="doIf"><block s="reportNot"><block s="reportIsA"><block var="predicateTree"/><l><option>list</option></l></block></block><script><block s="doReport"><block s="reportBoolean"><l><bool>false</bool></l></block></block></script></block><block s="doIf"><custom-block s="is %s a %txt"><block s="reportListItem"><l>1</l><block var="predicateTree"/></block><l>comparisonOperator</l></custom-block><script><block s="doIf"><block s="reportEquals"><block s="reportListItem"><l>1</l><block var="predicateTree"/></block><block s="reifyPredicate"><autolambda><block s="reportNot"><l/></block></autolambda><list></list></block></block><script><block s="doReport"><custom-block s="is %l translatable to intervals?"><block s="reportListItem"><l>2</l><block var="predicateTree"/></block></custom-block></block></script></block><block s="doIf"><block s="reportOr"><block s="reportEquals"><block s="reportListItem"><l>1</l><block var="predicateTree"/></block><block s="reifyPredicate"><autolambda><block s="reportAnd"><l/><l/></block></autolambda><list></list></block></block><block s="reportEquals"><block s="reportListItem"><l>1</l><block var="predicateTree"/></block><block s="reifyPredicate"><autolambda><block s="reportAnd"><l/><l/></block></autolambda><list></list></block></block></block><script><block s="doReport"><block s="reportAnd"><custom-block s="is %l translatable to intervals?"><block s="reportListItem"><l>2</l><block var="predicateTree"/></block></custom-block><custom-block s="is %l translatable to intervals?"><block s="reportListItem"><l>3</l><block var="predicateTree"/></block></custom-block></block></block></script></block><block s="doReport"><block s="reportAnd"><block s="reportOr"><block s="reportEquals"><block s="reportListItem"><l>2</l><block var="predicateTree"/></block><l></l></block><block s="reportIsA"><block s="reportListItem"><l>2</l><block var="predicateTree"/></block><l><option>number</option></l></block></block><block s="reportOr"><block s="reportEquals"><block s="reportListItem"><l>3</l><block var="predicateTree"/></block><l></l></block><block s="reportIsA"><block s="reportListItem"><l>3</l><block var="predicateTree"/></block><l><option>number</option></l></block></block></block></block></script></block><block s="doReport"><block s="reportBoolean"><l><bool>false</bool></l></block></block></script></block></script></block-definition><block-definition s="difference of interval %'interval1' and %'interval2'" type="reporter" category="other" helper="true"><comment x="0" y="0" w="322.5" collapsed="false">Intervals should be of structure [leftLimit,operator1,operator2,rightLimit]</comment><header></header><code></code><translations></translations><inputs><input type="%l"></input><input type="%l"></input></inputs><script><block s="doDeclareVariables"><list><l>leftEdge</l><l>rightEdge</l><l>op1</l><l>op2</l><l>intersection</l><l>result</l></list></block><block s="doWarp"><script><block s="doIf"><block s="reportNot"><block s="reportAnd"><custom-block s="is %s a %txt"><block var="interval1"/><l>interval</l></custom-block><custom-block s="is %s a %txt"><block var="interval2"/><l>interval</l></custom-block></block></block><script><block s="doReport"><l>ERROR: intervals required!</l></block></script></block><block s="doSetVar"><l>interval1</l><custom-block s="copy of %l"><block var="interval1"/></custom-block></block><block s="doSetVar"><l>interval2</l><custom-block s="copy of %l"><block var="interval2"/></custom-block></block><block s="doSetVar"><l>intersection</l><custom-block s="intersect two intervals %l %l"><block var="interval1"/><block var="interval2"/></custom-block></block><block s="doIf"><block s="reportEquals"><block s="reportListAttribute"><l><option>length</option></l><block var="intersection"/></block><l>0</l></block><script><block s="doReport"><block s="reportNewList"><list><block var="interval1"/></list></block></block></script></block><block s="doIf"><block s="reportEquals"><block var="interval1"/><block var="intersection"/></block><script><block s="doReport"><block s="reportNewList"><list></list></block></block></script></block><block s="doSetVar"><l>result</l><block s="reportNewList"><list></list></block></block><block s="doIf"><block s="reportEquals"><block s="reportListItem"><l>1</l><block var="interval1"/></block><block s="reportListItem"><l>1</l><block var="intersection"/></block></block><script><block s="doIf"><block s="reportAnd"><block s="reportEquals"><block s="reportListItem"><l>2</l><block var="interval1"/></block><l>≤</l></block><block s="reportEquals"><block s="reportListItem"><l>2</l><block var="intersection"/></block><l><</l></block></block><script><block s="doAddToList"><block s="reportNewList"><list><block s="reportListItem"><l>1</l><block var="intersection"/></block><l>≤</l><l>≤</l><block s="reportListItem"><l>1</l><block var="intersection"/></block></list></block><block var="result"/></block></script></block><block s="doIfElse"><block s="reportLessThan"><block s="reportListItem"><l>4</l><block var="intersection"/></block><block s="reportListItem"><l>4</l><block var="interval1"/></block></block><script><block s="doSetVar"><l>leftEdge</l><block s="reportListItem"><l>4</l><block var="intersection"/></block></block><block s="doIfElse"><block s="reportEquals"><block s="reportListItem"><l>3</l><block var="intersection"/></block><l>≤</l></block><script><block s="doSetVar"><l>op1</l><l><</l></block></script><script><block s="doSetVar"><l>op1</l><l>≤</l></block></script></block><block s="doAddToList"><block s="reportNewList"><list><block var="leftEdge"/><block var="op1"/><block s="reportListItem"><l>3</l><block var="interval1"/></block><block s="reportListItem"><l>4</l><block var="interval1"/></block></list></block><block var="result"/></block></script><script><block s="doIf"><block s="reportAnd"><block s="reportEquals"><block s="reportListItem"><l>3</l><block var="interval1"/></block><l>≤</l></block><block s="reportEquals"><block s="reportListItem"><l>3</l><block var="intersection"/></block><l><</l></block></block><script><block s="doAddToList"><block s="reportNewList"><list><block s="reportListItem"><l>4</l><block var="intersection"/></block><l>≤</l><l>≤</l><block s="reportListItem"><l>4</l><block var="intersection"/></block></list></block><block var="result"/></block></script></block></script></block><block s="doReport"><block var="result"/></block></script></block><block s="doIf"><block s="reportLessThan"><block s="reportListItem"><l>1</l><block var="intersection"/></block><block s="reportListItem"><l>4</l><block var="interval1"/></block></block><script><block s="doIfElse"><block s="reportEquals"><block s="reportListItem"><l>2</l><block var="intersection"/></block><l><</l></block><script><block s="doAddToList"><block s="reportNewList"><list><block s="reportListItem"><l>1</l><block var="interval1"/></block><block s="reportListItem"><l>2</l><block var="interval1"/></block><l>≤</l><block s="reportListItem"><l>1</l><block var="intersection"/></block></list></block><block var="result"/></block></script><script><block s="doAddToList"><block s="reportNewList"><list><block s="reportListItem"><l>1</l><block var="interval1"/></block><block s="reportListItem"><l>2</l><block var="interval1"/></block><l><</l><block s="reportListItem"><l>1</l><block var="intersection"/></block></list></block><block var="result"/></block></script></block><block s="doIfElse"><block s="reportLessThan"><block s="reportListItem"><l>4</l><block var="intersection"/></block><block s="reportListItem"><l>4</l><block var="interval1"/></block></block><script><block s="doSetVar"><l>leftEdge</l><block s="reportListItem"><l>4</l><block var="intersection"/></block></block><block s="doIfElse"><block s="reportEquals"><block s="reportListItem"><l>3</l><block var="intersection"/></block><l>≤</l></block><script><block s="doSetVar"><l>op1</l><l><</l></block></script><script><block s="doSetVar"><l>op1</l><l>≤</l></block></script></block><block s="doAddToList"><block s="reportNewList"><list><block var="leftEdge"/><block var="op1"/><block s="reportListItem"><l>3</l><block var="interval1"/></block><block s="reportListItem"><l>4</l><block var="interval1"/></block></list></block><block var="result"/></block></script><script><block s="doIf"><block s="reportAnd"><block s="reportEquals"><block s="reportListItem"><l>3</l><block var="interval1"/></block><l>≤</l></block><block s="reportEquals"><block s="reportListItem"><l>3</l><block var="intersection"/></block><l><</l></block></block><script><block s="doAddToList"><block s="reportNewList"><list><block s="reportListItem"><l>4</l><block var="intersection"/></block><l>≤</l><l>≤</l><block s="reportListItem"><l>4</l><block var="intersection"/></block></list></block><block var="result"/></block></script></block></script></block><block s="doReport"><block var="result"/></block></script></block><block s="doIf"><block s="reportEquals"><block s="reportListItem"><l>1</l><block var="intersection"/></block><block s="reportListItem"><l>4</l><block var="interval1"/></block></block><script><block s="doAddToList"><block s="reportNewList"><list><block s="reportListItem"><l>1</l><block var="interval1"/></block><block s="reportListItem"><l>2</l><block var="interval1"/></block><l><</l><block s="reportListItem"><l>4</l><block var="interval1"/></block></list></block><block var="result"/></block></script></block><block s="doReplaceInList"><l>4</l><block var="result"/><custom-block s="merge intervals %l"><block s="reportListItem"><l>4</l><block var="result"/></block></custom-block></block><block s="doReport"><block var="result"/></block></script></block></script></block-definition><block-definition s="list of numbers %'numbers' $arrowRightOutline list of intervals" type="reporter" category="other" helper="true"><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doDeclareVariables"><list><l>result</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>result</l><block s="reportNewList"><list></list></block></block><block s="doForEach"><l>item</l><block var="numbers"/><script><block s="doAddToList"><block s="reportNewList"><list><block var="item"/><l>≤</l><l>≤</l><block var="item"/></list></block><block var="result"/></block></script></block><block s="doReport"><block var="result"/></block></script></block></script></block-definition><block-definition s="are intervals %'interval1' and %'interval2' overlapping?" type="predicate" category="other" helper="true"><header></header><code></code><translations></translations><inputs><input type="%l"></input><input type="%l"></input></inputs><script><block s="doWarp"><script><block s="doIf"><block s="reportNot"><block s="reportAnd"><custom-block s="is %s a %txt"><block var="interval1"/><l>interval</l></custom-block><custom-block s="is %s a %txt"><block var="interval2"/><l>interval</l></custom-block></block></block><script><block s="doReport"><l>ERROR: intervals required!</l></block></script></block><block s="doIf"><block s="reportAnd"><block s="reportLessThanOrEquals"><block s="reportListItem"><l>1</l><block var="interval2"/></block><block s="reportListItem"><l>1</l><block var="interval1"/></block></block><block s="reportOr"><block s="reportLessThan"><block s="reportListItem"><l>4</l><block var="interval2"/></block><block s="reportListItem"><l>1</l><block var="interval1"/></block></block><block s="reportAnd"><block s="reportEquals"><block s="reportListItem"><l>4</l><block var="interval2"/></block><block s="reportListItem"><l>1</l><block var="interval1"/></block></block><block s="reportOr"><block s="reportOr"><block s="reportAnd"><block s="reportEquals"><block s="reportListItem"><l>3</l><block var="interval2"/></block><l><</l></block><block s="reportEquals"><block s="reportListItem"><l>2</l><block var="interval1"/></block><l>≤</l></block></block><block s="reportAnd"><block s="reportEquals"><block s="reportListItem"><l>3</l><block var="interval2"/></block><l>≤</l></block><block s="reportEquals"><block s="reportListItem"><l>2</l><block var="interval1"/></block><l><</l></block></block></block><block s="reportAnd"><block s="reportEquals"><block s="reportListItem"><l>3</l><block var="interval2"/></block><l><</l></block><block s="reportEquals"><block s="reportListItem"><l>2</l><block var="interval1"/></block><l><</l></block></block></block></block></block></block><script><block s="doReport"><block s="reportBoolean"><l><bool>false</bool></l></block></block></script></block><block s="doIf"><block s="reportAnd"><block s="reportGreaterThanOrEquals"><block s="reportListItem"><l>4</l><block var="interval2"/></block><block s="reportListItem"><l>4</l><block var="interval1"/></block></block><block s="reportOr"><block s="reportGreaterThan"><block s="reportListItem"><l>1</l><block var="interval2"/></block><block s="reportListItem"><l>4</l><block var="interval1"/></block></block><block s="reportAnd"><block s="reportEquals"><block s="reportListItem"><l>1</l><block var="interval2"/></block><block s="reportListItem"><l>4</l><block var="interval1"/></block></block><block s="reportOr"><block s="reportOr"><block s="reportAnd"><block s="reportEquals"><block s="reportListItem"><l>2</l><block var="interval2"/></block><l><</l></block><block s="reportEquals"><block s="reportListItem"><l>3</l><block var="interval1"/></block><l>≤</l></block></block><block s="reportAnd"><block s="reportEquals"><block s="reportListItem"><l>2</l><block var="interval2"/></block><l>≤</l></block><block s="reportEquals"><block s="reportListItem"><l>3</l><block var="interval1"/></block><l><</l></block></block></block><block s="reportAnd"><block s="reportEquals"><block s="reportListItem"><l>2</l><block var="interval2"/></block><l><</l></block><block s="reportEquals"><block s="reportListItem"><l>3</l><block var="interval1"/></block><l><</l></block></block></block></block></block></block><script><block s="doReport"><block s="reportBoolean"><l><bool>false</bool></l></block></block></script></block><block s="doReport"><block s="reportBoolean"><l><bool>true</bool></l></block></block></script></block></script></block-definition><block-definition s="configure %'sprite' as a PlotPad width: %'width' $nl height: %'height' color: %'r' %'g' %'b'" type="command" category="5. PlotPad for data plots"><comment x="0" y="0" w="115" collapsed="false">Creates a new empty costume of the specified size and color and sets the local properties</comment><header></header><code></code><translations></translations><inputs><input type="%txt">thisSprite<options>thisSprite
theStage
anotherSprite</options></input><input type="%n">400</input><input type="%n">300</input><input type="%n">245</input><input type="%n">245</input><input type="%n">245</input></inputs><script><block s="doWarp"><script><block s="doDeclareVariables"><list><l>target</l><l>costumeWidth</l><l>costumeHeight</l><l>yIntervals</l></list></block><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>theStage</l></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>thisSprite</l></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIfElse"><block s="reportIsIdentical"><block var="target"/><block s="reportObject"><l>Stage</l></block></block><script><block s="doSetVar"><l>sprite</l><l>theStage</l></block><block s="doSetVar"><l>target</l><block s="reportObject"><l>Stage</l></block></block><block s="doSetVar"><l>costumeWidth</l><block s="reportAttributeOf"><l><option>width</option></l><l>Stage</l></block></block><block s="doSetVar"><l>costumeHeight</l><block s="reportAttributeOf"><l><option>height</option></l><l>Stage</l></block></block></script><script><block s="doTellTo"><block var="target"/><block s="reifyScript"><script><block s="gotoXY"><l>0</l><l>0</l></block><block s="setHeading"><l>90</l></block><block s="show"></block></script><list></list></block><list></list></block><block s="doSetVar"><l>costumeWidth</l><block var="width"/></block><block s="doSetVar"><l>costumeHeight</l><block var="height"/></block></script></block><block s="doTellTo"><block var="target"/><block s="reifyScript"><script><block s="doApplyExtension"><l>var_declare(scope, name)</l><list><l>sprite</l><l>myProperties</l></list></block><block s="doApplyExtension"><l>var_declare(scope, name)</l><list><l>sprite</l><l>myData</l></list></block><block s="doSetVar"><l>myProperties</l><block s="reportNewList"><list></list></block></block><block s="doSetVar"><l>myData</l><block s="reportNewList"><list></list></block></block><block s="doSwitchToCostume"><block s="reportApplyExtension"><l>SciS_newcostume(w,h,r,g,b)</l><list><block var="costumeWidth"/><block var="costumeHeight"/><block var="r"/><block var="g"/><block var="b"/></list></block></block><block s="doAddToList"><block s="reportNewList"><list><l>typeOfConfiguration</l><l>PlotPad</l></list></block><block var="myProperties"/></block><block s="doAddToList"><block s="reportNewList"><list><l>typeOfData</l><l>none</l></list></block><block var="myProperties"/></block><block s="doAddToList"><block s="reportNewList"><list><l>lineProperties</l><block s="reportNewList"><list><l>continuous</l><l>1</l><l>0</l><l>0</l><l>0</l></list></block></list></block><block var="myProperties"/></block><block s="doAddToList"><block s="reportNewList"><list><l>markerProperties</l><block s="reportNewList"><list><l>square</l><l>5</l><block s="reportBoolean"><l><bool>false</bool></l></block><l>255</l><l>0</l><l>0</l></list></block></list></block><block var="myProperties"/></block><block s="doAddToList"><block s="reportNewList"><list><l>dataProperties</l><block s="reportNewList"><list><l>notSet</l><l>notSet</l><l>0</l><l>0</l></list></block></list></block><block var="myProperties"/></block><block s="doAddToList"><block s="reportNewList"><list><l>scaleOffsets</l><block s="reportNewList"><list><l>60</l><l>10</l><l>35</l><l>50</l></list></block></list></block><block var="myProperties"/></block><block s="doAddToList"><block s="reportNewList"><list><l>labels</l><block s="reportNewList"><list><l></l><l></l><l></l><l>18</l><l>16</l><l>16</l><l></l><l></l></list></block></list></block><block var="myProperties"/></block><block s="doAddToList"><block s="reportNewList"><list><l>ranges</l><block s="reportNewList"><list><l>-10</l><l>10</l><l>-10</l><l>10</l></list></block></list></block><block var="myProperties"/></block><block s="doSetVar"><l>yIntervals</l><block s="reportRound"><block s="reportVariadicProduct"><list><l>6</l><block s="reportQuotient"><block var="height"/><block var="width"/></block></list></block></block></block><block s="doIf"><block s="reportLessThan"><block var="yIntervals"/><l>3</l></block><script><block s="doSetVar"><l>yIntervals</l><l>3</l></block></script></block><block s="doAddToList"><block s="reportNewList"><list><l>scaleProperties</l><block s="reportNewList"><list><l>2</l><l>2</l><l>12</l><l>12</l><l>6</l><block var="yIntervals"/><l>-10</l><l>-10</l><l>2</l><l>2</l><l>1</l><l>1</l><l>6</l><l>0</l><l>0</l><block s="reportBoolean"><l><bool>false</bool></l></block><block s="reportBoolean"><l><bool>false</bool></l></block><block s="reportBoolean"><l><bool>false</bool></l></block><block s="reportBoolean"><l><bool>false</bool></l></block><block s="reportBoolean"><l><bool>true</bool></l></block><block s="reportBoolean"><l><bool>true</bool></l></block><block s="reportBoolean"><l><bool>false</bool></l></block></list></block></list></block><block var="myProperties"/></block></script><list></list></block><list></list></block><block s="doIfElse"><block s="reportIsIdentical"><block var="target"/><block s="reportObject"><l>Stage</l></block></block><script><block s="doTellTo"><l>Stage</l><block s="reifyScript"><script><block s="doAddToList"><block s="reportNewList"><list><l>costumeProperties</l><block s="reportNewList"><list><block s="reportAttributeOf"><l><option>width</option></l><l>Stage</l></block><block s="reportAttributeOf"><l><option>height</option></l><l>Stage</l></block><block var="r"/><block var="g"/><block var="b"/><block s="reportQuotient"><block s="reportDifference"><block s="reportAttributeOf"><l><option>width</option></l><l>Stage</l></block><block var="width"/></block><l>2</l></block><block s="reportQuotient"><block s="reportDifference"><block s="reportAttributeOf"><l><option>height</option></l><l>Stage</l></block><block var="height"/></block><l>2</l></block><l>0</l><l>0</l><l>0</l></list></block></list></block><block var="myProperties"/></block></script><list></list></block><list></list></block></script><script><block s="doTellTo"><block var="target"/><block s="reifyScript"><script><block s="doAddToList"><block s="reportNewList"><list><l>costumeProperties</l><block s="reportNewList"><list><block var="width"/><block var="height"/><block var="r"/><block var="g"/><block var="b"/><l>0</l><l>0</l><l>0</l><l>0</l><l>0</l></list></block></list></block><block var="myProperties"/></block></script><list></list></block><list></list></block></script></block></script></block></script><scripts><comment x="721.6666666666665" y="25.166666666666657" w="195" collapsed="false">costume properties:
1: width
2: height
3: back color red
4: back color green
5: back color blue
6: left offset for Image position on stage
7: upper offset for Image position on stage
8: front color red
9: front color green
10: front color blue

line properties:
1: line width
2: line style
3: line color red
4: line color green
5: lineColor blue

marker properties:
1: marker style
2: marker width
3: marker connected
4: marker color red
5: marker color green
6: marker color blue

data properties:
1: minValue
2: maxValue
3: columns
4: rows

scale offsets:
1:left offset
2: right offset
3: upper offset
4: lower offset

labels:
1: title
2: x label
3: y label
4: title height
5: x label height
6: y label height
7: x unit
8: y unit

ranges:
1: x left
2: x right
3: y lower 
4: y upper

scale properties:
1: scales x precision
2: scales y precision
3: scales x textheight
4: scales y textheight
5: scales x intervals
6: scales y intervals
7: scales x start
8: scales y start
9: scales x step
10: scales y step
11: scales x scaling
12: scales y scaling
13: scales ticlength
14: scales x minitics
15: scales y minitics
16: scales x grid
17: scales y grid
18: scales x centered
19: scales y centered
20: scales show x scale
21: scales show y scale
22: plot border</comment></scripts></block-definition><block-definition s="is %'sprite' a PlotPad?" type="predicate" category="5. PlotPad for data plots"><header></header><code></code><translations></translations><inputs><input type="%s">thisSprite<options>thisSprite
theStage
anotherSprite</options></input></inputs><script><block s="doWarp"><script><block s="doIfElse"><block s="reportEquals"><block var="sprite"/><l>thisSprite</l></block><script><block s="doReport"><block s="reportAskFor"><block s="reportObject"><l><option>myself</option></l></block><block s="reifyReporter"><autolambda><custom-block s="is the global %b property %txt %br with value %s present ?"><l><bool>false</bool></l><l>typeOfConfiguration</l><l>PlotPad</l></custom-block></autolambda><list></list></block><list></list></block></block></script><script><block s="doIfElse"><block s="reportEquals"><block var="sprite"/><l>theStage</l></block><script><block s="doReport"><block s="reportAskFor"><block s="reportObject"><l>Stage</l></block><block s="reifyReporter"><autolambda><custom-block s="is the global %b property %txt %br with value %s present ?"><l><bool>false</bool></l><l>typeOfConfiguration</l><l>PlotPad</l></custom-block></autolambda><list></list></block><list></list></block></block></script><script><block s="doReport"><block s="reportAskFor"><block s="reportObject"><block var="sprite"/></block><block s="reifyReporter"><autolambda><custom-block s="is the global %b property %txt %br with value %s present ?"><l><bool>false</bool></l><l>typeOfConfiguration</l><l>PlotPad</l></custom-block></autolambda><list></list></block><list></list></block></block></script></block></script></block></script></block></script></block-definition><block-definition s="PlotPadProperty %'name' of %'sprite'" type="reporter" category="5. PlotPad for data plots"><comment x="0" y="0" w="95" collapsed="false">Reads the value of an existing property.</comment><header></header><code></code><translations></translations><inputs><input type="%txt">costumeProperties<options>typeOfConfiguration
typeOfData
costumeProperties
lineProperties
markerProperties
dataProperties
scaleOffsets
labels
ranges
scaleProperties</options></input><input type="%txt">thisSprite<options>thisSprite
theStage
anotherSprite</options></input></inputs><script><block s="doDeclareVariables"><list><l>result</l><l>h</l><l>target</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>theStage</l></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>thisSprite</l></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a PlotPad?"><block var="target"/></custom-block></block><script><block s="doReport"><l>ERROR: target isn't configured as PlotPad!</l></block></script></block><block s="doSetVar"><l>result</l><l>not found</l></block><block s="doSetVar"><l>name</l><block s="reportListItem"><l>1</l><block s="reportTextSplit"><block var="name"/><l> </l></block></block></block><block s="doSetVar"><l>h</l><block s="reportMap"><block s="reifyReporter"><script><block s="doIf"><block s="reportEquals"><block var="name"/><block s="reportListItem"><l>1</l><l/></block></block><script><block s="doSetVar"><l>result</l><block s="reportListItem"><l>2</l><l/></block></block></script></block><block s="doReport"><l></l></block></script><list></list></block><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block></block></block><block s="doReport"><block var="result"/></block></script></block></script></block-definition><block-definition s="set PlotPadProperty %'name' of %'sprite' to %'value'" type="command" category="5. PlotPad for data plots"><comment x="0" y="0" w="128.97435897435886" collapsed="false">Sets the value of an existing property or inserts it anew.</comment><header></header><code></code><translations></translations><inputs><input type="%txt">costumeProperties<options>typeOfConfiguration
typeOfData
costumeProperties
lineProperties
markerProperties
dataProperties
scaleOffsets
labels
ranges
scaleProperties</options></input><input type="%txt">thisSprite<options>thisSprite
theStage
anotherSprite</options></input><input type="%s"></input></inputs><script><block s="doDeclareVariables"><list><l>done</l><l>h</l><l>target</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>theStage</l></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>thisSprite</l></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a PlotPad?"><block var="target"/></custom-block></block><script><custom-block s="report SciSnap! error %txt"><l>ERROR: target isn't configured as PlotPad!</l></custom-block><block s="doStopThis"><l><option>this block</option></l></block></script></block><block s="doSetVar"><l>name</l><block s="reportListItem"><l>1</l><block s="reportTextSplit"><block var="name"/><l> </l></block></block></block><block s="doSetVar"><l>done</l><block s="reportBoolean"><l><bool>false</bool></l></block></block><block s="doSetVar"><l>h</l><block s="reportMap"><block s="reifyReporter"><script><block s="doIf"><block s="reportEquals"><block var="name"/><block s="reportListItem"><l>1</l><l/></block></block><script><block s="doReplaceInList"><l>2</l><l/><block var="value"/></block><block s="doSetVar"><l>done</l><block s="reportBoolean"><l><bool>true</bool></l></block></block></script></block><block s="doReport"><l></l></block></script><list></list></block><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block></block></block><block s="doIf"><block s="reportNot"><block var="done"/></block><script><block s="doTellTo"><block var="target"/><block s="reifyScript"><script><block s="doAddToList"><l></l><l/></block></script><list></list></block><list><block s="reportNewList"><list><block var="name"/><block var="value"/></list></block><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block></list></block></script></block></script></block></script></block-definition><block-definition s="set PlotPad costume properties width: %'width' height: %'height' $nl back color: %'r' %'g' %'b' front color: %'rFront' %'gFront' %'bFront' $nl offsets: %'leftOffset' %'upperOffset' on %'sprite'" type="command" category="5. PlotPad for data plots"><comment x="0" y="0" w="117.66039530436237" collapsed="false">a simple way to set some costume attributes:
1: width
2: height
3: back color red
4: back color green
5: back color blue
6: left offset for Image
 position on stage
7: upper offset for Image
 position on stage
8: front color red
9: front color green
10: front color blue</comment><header></header><code></code><translations></translations><inputs><input type="%n">400</input><input type="%n">300</input><input type="%n">245</input><input type="%n">245</input><input type="%n">245</input><input type="%n">180</input><input type="%n">180</input><input type="%n">180</input><input type="%n">0</input><input type="%n">0</input><input type="%txt">thisSprite<options>thisSprite
theStage
anotherSprite</options></input></inputs><script><block s="doDeclareVariables"><list><l>target</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>theStage</l></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>thisSprite</l></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a PlotPad?"><block var="target"/></custom-block></block><script><custom-block s="report SciSnap! error %txt"><l>ERROR: target isn't configured as PlotPad!</l></custom-block><block s="doStopThis"><l><option>this block</option></l></block></script></block><block s="doIfElse"><block s="reportIsIdentical"><block var="target"/><block s="reportObject"><l>Stage</l></block></block><script><custom-block s="set PlotPadProperty %txt of %txt to %s"><l>costumeProperties</l><l>theStage</l><block s="reportNewList"><list><block s="reportAttributeOf"><l><option>width</option></l><l>Stage</l></block><block s="reportAttributeOf"><l><option>height</option></l><l>Stage</l></block><block var="r"/><block var="g"/><block var="b"/><block var="leftOffset"/><block var="upperOffset"/><block var="rFront"/><block var="gFront"/><block var="bFront"/></list></block></custom-block></script><script><custom-block s="set PlotPadProperty %txt of %txt to %s"><l>costumeProperties</l><block var="target"/><block s="reportNewList"><list><block var="width"/><block var="height"/><block var="r"/><block var="g"/><block var="b"/><block var="leftOffset"/><block var="upperOffset"/><block var="rFront"/><block var="gFront"/><block var="bFront"/></list></block></custom-block></script></block><block s="doTellTo"><block var="target"/><block s="reifyScript"><script><block s="doSwitchToCostume"><block s="reportApplyExtension"><l>SciS_newcostume(w,h,r,g,b)</l><list><block var="width"/><block var="height"/><block var="r"/><block var="g"/><block var="b"/></list></block></block></script><list></list></block><list></list></block></script></block></script></block-definition><block-definition s="set PlotPad line properties style: %'style' $nl width: %'lineWidth' color: %'r' %'g' %'b' on %'sprite'" type="command" category="5. PlotPad for data plots"><comment x="0" y="0" w="105.68386840820362" collapsed="false">a simple way to set some net attributes:
line properties:
1: line style
2: lineWidth
3: line color red
4: line color green
5: lineColor blue</comment><header></header><code></code><translations></translations><inputs><input type="%txt" readonly="true">continuous<options>continuous
dashed
dash-dot
dot-dot
rainbow
inverse-rainbow</options></input><input type="%n">1</input><input type="%n">0</input><input type="%n">0</input><input type="%n">0</input><input type="%txt">thisSprite<options>thisSprite
theStage
anotherSprite</options></input></inputs><script><block s="doDeclareVariables"><list><l>target</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>theStage</l></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>thisSprite</l></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a PlotPad?"><block var="target"/></custom-block></block><script><custom-block s="report SciSnap! error %txt"><l>ERROR: target isn't configured as PlotPad!</l></custom-block><block s="doStopThis"><l><option>this block</option></l></block></script></block><custom-block s="set PlotPadProperty %txt of %txt to %s"><l>lineProperties</l><block var="target"/><block s="reportNewList"><list><block var="style"/><block var="lineWidth"/><block var="r"/><block var="g"/><block var="b"/></list></block></custom-block></script></block></script></block-definition><block-definition s="set PlotPad marker properties style: %'style' width: %'width' $nl color: %'r' %'g' %'b' connected? %'connected' on %'sprite'" type="command" category="5. PlotPad for data plots"><comment x="0" y="0" w="105.68386840820362" collapsed="false">a simple way to set some net attributes:
marker properties:
1: marker style
2: marker width
3: marker connected
4: marker color red
5: marker color green
6: marker color blue</comment><header></header><code></code><translations></translations><inputs><input type="%txt" readonly="true">square<options>none
o_circle
._point
+_plus
x_ex
square
triangle</options></input><input type="%n">5</input><input type="%n">0</input><input type="%n">0</input><input type="%n">0</input><input type="%b">false</input><input type="%txt">thisSprite<options>thisSprite
theStage
anotherSprite</options></input></inputs><script><block s="doDeclareVariables"><list><l>target</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>theStage</l></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>thisSprite</l></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a PlotPad?"><block var="target"/></custom-block></block><script><custom-block s="report SciSnap! error %txt"><l>ERROR: target isn't configured as PlotPad!</l></custom-block><block s="doStopThis"><l><option>this block</option></l></block></script></block><custom-block s="set PlotPadProperty %txt of %txt to %s"><l>markerProperties</l><block var="target"/><block s="reportNewList"><list><block var="style"/><block var="width"/><block var="connected"/><block var="r"/><block var="g"/><block var="b"/></list></block></custom-block></script></block></script></block-definition><block-definition s="set PlotPad scale properties precision: %'xprecision' %'yprecision' $nl textheight: %'xtextheight' %'ytextheight' number of intervals: %'nx' %'ny' $nl on %'sprite'" type="command" category="5. PlotPad for data plots"><comment x="0" y="0" w="152.3076923076923" collapsed="false">Sets some properties for scales.</comment><header></header><code></code><translations></translations><inputs><input type="%n">2</input><input type="%n">2</input><input type="%n">12</input><input type="%n">12</input><input type="%n">10</input><input type="%n">10</input><input type="%txt">thisSprite<options>thisSprite
theStage
anotherSprite</options></input></inputs><script><block s="doWarp"><script><block s="doDeclareVariables"><list><l>target</l><l>scaleProperties</l></list></block><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>theStage</l></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>thisSprite</l></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a PlotPad?"><block var="target"/></custom-block></block><script><custom-block s="report SciSnap! error %txt"><l>ERROR: target isn't configured as PlotPad!</l></custom-block><block s="doStopThis"><l><option>this block</option></l></block></script></block><block s="doSetVar"><l>scaleProperties</l><custom-block s="PlotPadProperty %txt of %txt"><l>scaleProperties</l><block var="target"/></custom-block></block><block s="doReplaceInList"><l>1</l><block var="scaleProperties"/><block var="xprecision"/></block><block s="doReplaceInList"><l>2</l><block var="scaleProperties"/><block var="yprecision"/></block><block s="doReplaceInList"><l>3</l><block var="scaleProperties"/><block var="xtextheight"/></block><block s="doReplaceInList"><l>4</l><block var="scaleProperties"/><block var="ytextheight"/></block><block s="doReplaceInList"><l>5</l><block var="scaleProperties"/><block var="nx"/></block><block s="doReplaceInList"><l>6</l><block var="scaleProperties"/><block var="ny"/></block><custom-block s="set PlotPadProperty %txt of %txt to %s"><l>scaleProperties</l><block var="target"/><block var="scaleProperties"/></custom-block></script></block></script></block-definition><block-definition s="set PlotPad labels on %'sprite' to $nl title: %'newTitle' titleheight: %'tHeight' $nl x-label: %'newXLabel' xLabelheight: %'xHeight' $nl y-label: %'newYLabel' yLabelheight: %'yHeight'" type="command" category="5. PlotPad for data plots"><comment x="0" y="0" w="140.3846153846154" collapsed="false">Sets the labels and textheights of the diagrams of a PlotPad.</comment><header></header><code></code><translations></translations><inputs><input type="%s">thisSprite<options>thisSprite
theStage
anotherSprite</options></input><input type="%txt">Diagram Title</input><input type="%n">18</input><input type="%txt">x-label</input><input type="%n">16</input><input type="%txt">y-label</input><input type="%n">16</input></inputs><script><block s="doWarp"><script><block s="doDeclareVariables"><list><l>target</l></list></block><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>theStage</l></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>thisSprite</l></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a PlotPad?"><block var="target"/></custom-block></block><script><custom-block s="report SciSnap! error %txt"><l>ERROR: target isn't configured as PlotPad!</l></custom-block><block s="doStopThis"><l><option>this block</option></l></block></script></block><custom-block s="set PlotPadProperty %txt of %txt to %s"><l>labels</l><block var="target"/><block s="reportNewList"><list><block var="newTitle"/><block var="newXLabel"/><block var="newYLabel"/><block var="tHeight"/><block var="xHeight"/><block var="yHeight"/><l></l><l></l></list></block></custom-block><custom-block s="set PlotPad offsets from edges on %txt"><block var="target"/></custom-block></script></block></script></block-definition><block-definition s="set PlotPad offsets from edges on %'sprite'" type="command" category="5. PlotPad for data plots"><comment x="0" y="0" w="187.1666676666667" collapsed="false">Sets the distances of the diagram axes to the edges of the Sketchpad.</comment><header></header><code></code><translations></translations><inputs><input type="%txt">thisSprite<options>thisSprite
theStage
anotherSprite</options></input></inputs><script><block s="doDeclareVariables"><list><l>leftOffset</l><l>rightOffset</l><l>target</l><l>upperOffset</l><l>lowerOffset</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>theStage</l></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>thisSprite</l></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a PlotPad?"><block var="target"/></custom-block></block><script><custom-block s="report SciSnap! error %txt"><l>ERROR: target isn't configured as PlotPad!</l></custom-block><block s="doStopThis"><l><option>this block</option></l></block></script></block><block s="doSetVar"><l>upperOffset</l><block s="reportVariadicProduct"><list><l>1</l><block s="reportListItem"><l>3</l><custom-block s="PlotPadProperty %txt of %txt"><l>scaleProperties</l><block var="target"/></custom-block></block></list><comment w="90" collapsed="false">UPPER OFFSET</comment></block></block><block s="doIf"><block s="reportGreaterThan"><block s="reportStringSize"><block s="reportListItem"><l>1</l><custom-block s="PlotPadProperty %txt of %txt"><l>labels</l><block var="target"/></custom-block></block></block><l>0</l></block><script><block s="doChangeVar"><l>upperOffset</l><block s="reportVariadicProduct"><list><l>1</l><block s="reportListItem"><l>4</l><custom-block s="PlotPadProperty %txt of %txt"><l>labels</l><block var="target"/></custom-block></block></list></block></block></script></block><block s="doIf"><block s="reportLessThan"><block s="reportListItem"><l>13</l><custom-block s="PlotPadProperty %txt of %txt"><l>scaleProperties</l><block var="target"/></custom-block></block><l>0</l></block><script><block s="doChangeVar"><l>upperOffset</l><block s="reportVariadicProduct"><list><l>-1</l><block s="reportListItem"><l>13</l><custom-block s="PlotPadProperty %txt of %txt"><l>scaleProperties</l><block var="target"/></custom-block></block></list></block></block></script></block><block s="doSetVar"><l>lowerOffset</l><block s="reportVariadicProduct"><list><l>1</l><block s="reportListItem"><l>3</l><custom-block s="PlotPadProperty %txt of %txt"><l>scaleProperties</l><block var="target"/></custom-block></block></list></block><comment w="90" collapsed="false">LOWER OFFSET</comment></block><block s="doIf"><block s="reportNot"><block s="reportListItem"><l>19</l><custom-block s="PlotPadProperty %txt of %txt"><l>scaleProperties</l><block var="target"/></custom-block></block></block><script><block s="doChangeVar"><l>lowerOffset</l><block s="reportVariadicProduct"><list><l>1</l><block s="reportListItem"><l>3</l><custom-block s="PlotPadProperty %txt of %txt"><l>scaleProperties</l><block var="target"/></custom-block></block></list></block></block><block s="doIf"><block s="reportOr"><block s="reportGreaterThan"><block s="reportStringSize"><block s="reportListItem"><l>2</l><custom-block s="PlotPadProperty %txt of %txt"><l>labels</l><block var="target"/></custom-block></block></block><l>0</l></block><block s="reportOr"><block s="reportLessThan"><block s="reportListItem"><l>11</l><custom-block s="PlotPadProperty %txt of %txt"><l>scaleProperties</l><block var="target"/></custom-block></block><l>0.99</l></block><block s="reportGreaterThan"><block s="reportListItem"><l>11</l><custom-block s="PlotPadProperty %txt of %txt"><l>scaleProperties</l><block var="target"/></custom-block></block><l>1.01</l></block></block></block><script><block s="doChangeVar"><l>lowerOffset</l><block s="reportVariadicProduct"><list><l>1.5</l><block s="reportListItem"><l>5</l><custom-block s="PlotPadProperty %txt of %txt"><l>labels</l><block var="target"/></custom-block></block></list></block></block></script></block></script></block><block s="doSetVar"><l>rightOffset</l><block s="reportVariadicProduct"><list><l>1.5</l><block s="reportListItem"><l>4</l><custom-block s="PlotPadProperty %txt of %txt"><l>scaleProperties</l><block var="target"/></custom-block></block></list></block><comment w="90" collapsed="false">RIGHT OFFSET.</comment></block><block s="doIf"><block s="reportLessThan"><block s="reportListItem"><l>13</l><custom-block s="PlotPadProperty %txt of %txt"><l>scaleProperties</l><block var="target"/></custom-block></block><l>0</l></block><script><block s="doChangeVar"><l>rightOffset</l><block s="reportVariadicProduct"><list><l>-1</l><block s="reportListItem"><l>13</l><custom-block s="PlotPadProperty %txt of %txt"><l>scaleProperties</l><block var="target"/></custom-block></block></list></block></block></script></block><block s="doSetVar"><l>leftOffset</l><block s="reportVariadicProduct"><list><l>1</l><block s="reportListItem"><l>4</l><custom-block s="PlotPadProperty %txt of %txt"><l>scaleProperties</l><block var="target"/></custom-block></block></list></block><comment w="90" collapsed="false">LEFT OFFSET</comment></block><block s="doIf"><block s="reportNot"><block s="reportListItem"><l>18</l><custom-block s="PlotPadProperty %txt of %txt"><l>scaleProperties</l><block var="target"/></custom-block></block></block><script><block s="doChangeVar"><l>leftOffset</l><block s="reportVariadicProduct"><list><l>3</l><block s="reportListItem"><l>4</l><custom-block s="PlotPadProperty %txt of %txt"><l>scaleProperties</l><block var="target"/></custom-block></block></list></block></block><block s="doIf"><block s="reportOr"><block s="reportGreaterThan"><block s="reportStringSize"><block s="reportListItem"><l>3</l><custom-block s="PlotPadProperty %txt of %txt"><l>labels</l><block var="target"/></custom-block></block></block><l>0</l></block><block s="reportOr"><block s="reportLessThan"><block s="reportListItem"><l>12</l><custom-block s="PlotPadProperty %txt of %txt"><l>scaleProperties</l><block var="target"/></custom-block></block><l>0.99</l></block><block s="reportGreaterThan"><block s="reportListItem"><l>12</l><custom-block s="PlotPadProperty %txt of %txt"><l>scaleProperties</l><block var="target"/></custom-block></block><l>1.01</l></block></block></block><script><block s="doChangeVar"><l>leftOffset</l><block s="reportVariadicProduct"><list><l>1</l><block s="reportListItem"><l>6</l><custom-block s="PlotPadProperty %txt of %txt"><l>labels</l><block var="target"/></custom-block></block></list></block></block></script></block><block s="doIf"><block s="reportLessThan"><block s="reportListItem"><l>13</l><custom-block s="PlotPadProperty %txt of %txt"><l>scaleProperties</l><block var="target"/></custom-block></block><l>0</l></block><script><block s="doChangeVar"><l>leftOffset</l><block s="reportVariadicProduct"><list><l>-1</l><block s="reportListItem"><l>13</l><custom-block s="PlotPadProperty %txt of %txt"><l>scaleProperties</l><block var="target"/></custom-block></block></list></block></block></script></block></script></block><custom-block s="set PlotPadProperty %txt of %txt to %s"><l>scaleOffsets</l><block var="target"/><block s="reportNewList"><list><block var="leftOffset"/><block var="rightOffset"/><block var="upperOffset"/><block var="lowerOffset"/></list></block></custom-block></script></block></script></block-definition><block-definition s="set PlotPad ranges for x: %'xLeft' %'xRight' y: %'yLower' %'yUpper' $nl with border? %'border' of %'percent' pretty formatted? %'pretty' $nl on %'sprite'" type="command" category="5. PlotPad for data plots"><comment x="0" y="0" w="119.1666666666667" collapsed="false">Sets the ranges for the axes of the diagrams of a Sketchpad.</comment><header></header><code></code><translations></translations><inputs><input type="%n">-10</input><input type="%n">10</input><input type="%n">-10</input><input type="%n">10</input><input type="%b">false</input><input type="%n">0.1</input><input type="%b">true</input><input type="%txt">thisSprite<options>thisSprite
theStage
anotherSprite</options></input></inputs><script><block s="doDeclareVariables"><list><l>dx</l><l>dy</l><l>target</l><l>ranges</l><l>scaleProperties</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>theStage</l></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>thisSprite</l></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a PlotPad?"><block var="target"/></custom-block></block><script><custom-block s="report SciSnap! error %txt"><l>ERROR: target isn't configured as PlotPad!</l></custom-block><block s="doStopThis"><l><option>this block</option></l></block></script></block><block s="doSetVar"><l>ranges</l><block s="reportNewList"><list><block var="xLeft"/><block var="xRight"/><block var="yLower"/><block var="yUpper"/></list></block></block><block s="doIf"><block var="border"/><script><block s="doSetVar"><l>dx</l><block s="reportVariadicProduct"><list><block var="percent"/><block s="reportDifference"><block var="xRight"/><block var="xLeft"/></block></list></block></block><block s="doSetVar"><l>dy</l><block s="reportVariadicProduct"><list><block var="percent"/><block s="reportDifference"><block var="yUpper"/><block var="yLower"/></block></list></block></block><block s="doSetVar"><l>ranges</l><block s="reportNewList"><list><block s="reportDifference"><block var="xLeft"/><block var="dx"/></block><block s="reportVariadicSum"><list><block var="xRight"/><block var="dx"/></list></block><block s="reportDifference"><block var="yLower"/><block var="dy"/></block><block s="reportVariadicSum"><list><block var="yUpper"/><block var="dy"/></list></block></list></block></block></script></block><custom-block s="set PlotPadProperty %txt of %txt to %s"><l>ranges</l><block var="target"/><block var="ranges"/></custom-block><block s="doIfElse"><block var="pretty"/><script><custom-block s="set pretty ranges on PlotPad %txt"><block var="target"/></custom-block></script><script><block s="doSetVar"><l>scaleProperties</l><custom-block s="PlotPadProperty %txt of %txt"><l>scaleProperties</l><block var="target"/></custom-block></block><block s="doReplaceInList"><l>7</l><block var="scaleProperties"/><block s="reportListItem"><l>1</l><block var="ranges"/></block></block><block s="doReplaceInList"><l>9</l><block var="scaleProperties"/><block s="reportQuotient"><block s="reportDifference"><block s="reportListItem"><l>2</l><block var="ranges"/></block><block s="reportListItem"><l>1</l><block var="ranges"/></block></block><block s="reportListItem"><l>5</l><block var="scaleProperties"/></block></block></block><block s="doReplaceInList"><l>11</l><block var="scaleProperties"/><l>1</l></block><block s="doReplaceInList"><l>14</l><block var="scaleProperties"/><l>1</l></block><block s="doReplaceInList"><l>8</l><block var="scaleProperties"/><block s="reportListItem"><l>3</l><block var="ranges"/></block></block><block s="doReplaceInList"><l>10</l><block var="scaleProperties"/><block s="reportQuotient"><block s="reportDifference"><block s="reportListItem"><l>4</l><block var="ranges"/></block><block s="reportListItem"><l>3</l><block var="ranges"/></block></block><block s="reportListItem"><l>6</l><block var="scaleProperties"/></block></block></block><block s="doReplaceInList"><l>12</l><block var="scaleProperties"/><l>1</l></block><block s="doReplaceInList"><l>15</l><block var="scaleProperties"/><l>1</l></block><custom-block s="set PlotPadProperty %txt of %txt to %s"><l>scaleProperties</l><block var="target"/><block var="scaleProperties"/></custom-block></script></block></script></block></script></block-definition><block-definition s="add graph %'aFunction' to PlotPad %'sprite'" type="command" category="5. PlotPad for data plots"><comment x="0" y="0" w="220" collapsed="false">Draws the graph of a function given as rigified Snap!-function or coefficient-list of a polynomial. </comment><header></header><code></code><translations></translations><inputs><input type="%s">ringified operator or polynomial</input><input type="%txt">thisSprite<options>thisSprite
theStage
anotherSprite</options></input></inputs><script><block s="doDeclareVariables"><list><l>target</l></list></block><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>theStage</l></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>thisSprite</l></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a PlotPad?"><block var="target"/></custom-block></block><script><custom-block s="report SciSnap! error %txt"><l>ERROR: target isn't configured as PlotPad!</l></custom-block><block s="doStopThis"><l><option>this block</option></l></block></script></block><block s="doIfElse"><block s="reportOr"><block s="reportIsA"><block var="aFunction"/><l><option>reporter</option></l></block><custom-block s="is %s a %txt"><block var="aFunction"/><l>vector</l></custom-block></block><script><block s="doTellTo"><block var="target"/><block s="reifyScript"><script><block s="doSwitchToCostume"><l></l></block></script><list></list></block><list><block s="evaluate"><block s="reifyReporter"><autolambda><block s="reportApplyExtension"><l>SciS_addGraphToPlotpad(costume,ranges,offsets,lineattributes,aFunction,proc)</l><list><block s="reportAskFor"><block var="target"/><block s="reifyReporter"><autolambda><block s="reportGet"><l><option>costume</option></l></block></autolambda><list></list></block><list></list></block><custom-block s="PlotPadProperty %txt of %txt"><l>ranges</l><block var="target"/></custom-block><custom-block s="PlotPadProperty %txt of %txt"><l>scaleOffsets</l><block var="target"/></custom-block><custom-block s="PlotPadProperty %txt of %txt"><l>lineProperties</l><block var="target"/></custom-block><block var="aFunction"/></list></block></autolambda><list></list></block><list></list></block></list></block></script><script><custom-block s="report SciSnap! error %txt"><l>ERROR: ringified operator necessary!</l></custom-block></script></block></script></block-definition><block-definition s="add dataplot of numeric data: %'data' to PlotPad %'sprite'" type="command" category="5. PlotPad for data plots"><comment x="0" y="0" w="195.83333333333334" collapsed="false">Draws the data points of a two-dimensional table with numerical values. With a lot of additions from Rick Hessman. Thanks!</comment><header></header><code></code><translations></translations><inputs><input type="%s">myData</input><input type="%txt">thisSprite<options>thisSprite
theStage
anotherSprite</options></input></inputs><script><block s="doDeclareVariables"><list><l>source</l><l>target</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>theStage</l></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>thisSprite</l></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a PlotPad?"><block var="target"/></custom-block></block><script><custom-block s="report SciSnap! error %txt"><l>ERROR: target isn't configured as PlotPad!</l></custom-block><block s="doStopThis"><l><option>this block</option></l></block></script></block><block s="doIfElse"><block s="reportEquals"><block var="data"/><l>myData</l></block><script><block s="doSetVar"><l>source</l><block s="reportAttributeOf"><l>myData</l><block var="target"/></block></block></script><script><block s="doSetVar"><l>source</l><block var="data"/></block></script></block><block s="doIfElse"><block s="reportAnd"><block s="reportNot"><custom-block s="is %s a %txt"><block var="source"/><l>matrix</l></custom-block></block><block s="reportEquals"><block s="reportListAttribute"><l><option>length</option></l><block s="reportListItem"><l>1</l><block var="source"/></block></block><l>2</l></block></block><script><custom-block s="report SciSnap! error %txt"><l>ERROR: only matrices supported!</l></custom-block><block s="doStopThis"><l><option>this block</option></l></block></script><script><block s="doTellTo"><block var="target"/><block s="reifyScript"><script><block s="doSwitchToCostume"><l></l></block></script><list></list></block><list><block s="reportApplyExtension"><l>SciS_addNumericDataplotToPlotpad(costume,ranges,offsets,labels,lineattributes,dataattributes,data)</l><list><block s="reportAskFor"><block var="target"/><block s="reifyReporter"><autolambda><block s="reportGet"><l><option>costume</option></l></block></autolambda><list></list></block><list></list></block><custom-block s="PlotPadProperty %txt of %txt"><l>ranges</l><block var="target"/></custom-block><custom-block s="PlotPadProperty %txt of %txt"><l>scaleOffsets</l><block var="target"/></custom-block><custom-block s="PlotPadProperty %txt of %txt"><l>labels</l><block var="target"/></custom-block><custom-block s="PlotPadProperty %txt of %txt"><l>lineProperties</l><block var="target"/></custom-block><custom-block s="PlotPadProperty %txt of %txt"><l>markerProperties</l><block var="target"/></custom-block><block var="source"/></list></block></list></block></script></block></script></block></script></block-definition><block-definition s="add dataplot of mixed data: %'data' $nl y-scale? %'yScaled' x-scale? %'xScaled' to PlotPad %'sprite'" type="command" category="5. PlotPad for data plots"><comment x="0" y="0" w="208.33333333333334" collapsed="false">Draws the data points of a two-dimensional table with numerical values in column 2. 
Text values should be used to set the x-label.</comment><header></header><code></code><translations></translations><inputs><input type="%s">myData</input><input type="%b">true</input><input type="%b">true</input><input type="%txt">thisSprite<options>thisSprite
theStage
anotherSprite</options></input></inputs><script><block s="doDeclareVariables"><list><l>source</l><l>wasXscaled?</l><l>wasYscaled?</l><l>target</l><l>scaleProperties</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>theStage</l></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>thisSprite</l></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a PlotPad?"><block var="target"/></custom-block></block><script><custom-block s="report SciSnap! error %txt"><l>ERROR: target isn't configured as PlotPad!</l></custom-block><block s="doStopThis"><l><option>this block</option></l></block></script></block><block s="doIfElse"><block s="reportEquals"><block var="data"/><l>myData</l></block><script><block s="doIfElse"><block s="reportEquals"><custom-block s="PlotPadProperty %txt of %txt"><l>typeOfData</l><block var="target"/></custom-block><l>table</l></block><script><block s="doSetVar"><l>source</l><block s="reportAttributeOf"><l>myData</l><block var="target"/></block></block></script><script><custom-block s="report SciSnap! error %txt"><l>ERROR: table data necessary!</l></custom-block><block s="doStopThis"><l><option>this block</option></l></block></script></block></script><script><block s="doSetVar"><l>source</l><block var="data"/></block></script></block><block s="doIfElse"><block s="reportNot"><custom-block s="is %s a %txt"><block var="source"/><l>table</l></custom-block></block><script><custom-block s="report SciSnap! error %txt"><l>ERROR: table data necessary!</l></custom-block><block s="doStopThis"><l><option>this block</option></l></block></script><script><block s="doTellTo"><block var="target"/><block s="reifyScript"><script><block s="doSwitchToCostume"><l></l></block></script><list></list></block><list><block s="reportApplyExtension"><l>SciS_addMixedDataplotToPlotpad(costume,ranges,offsets,labels,lineattributes,dataattributes,data)</l><list><block s="reportAskFor"><block var="target"/><block s="reifyReporter"><autolambda><block s="reportGet"><l><option>costume</option></l></block></autolambda><list></list></block><list></list></block><custom-block s="PlotPadProperty %txt of %txt"><l>ranges</l><block var="target"/></custom-block><custom-block s="PlotPadProperty %txt of %txt"><l>scaleOffsets</l><block var="target"/></custom-block><custom-block s="PlotPadProperty %txt of %txt"><l>labels</l><block var="target"/></custom-block><custom-block s="PlotPadProperty %txt of %txt"><l>lineProperties</l><block var="target"/></custom-block><custom-block s="PlotPadProperty %txt of %txt"><l>markerProperties</l><block var="target"/></custom-block><block var="source"/></list></block></list></block></script></block><block s="doSetVar"><l>scaleProperties</l><custom-block s="PlotPadProperty %txt of %txt"><l>scaleProperties</l><block var="target"/></custom-block></block><block s="doSetVar"><l>wasXscaled?</l><block s="reportListItem"><l>20</l><block var="scaleProperties"/></block></block><block s="doSetVar"><l>wasYscaled?</l><block s="reportListItem"><l>21</l><block var="scaleProperties"/></block></block><block s="doReplaceInList"><l>20</l><block var="scaleProperties"/><block var="xScaled"/></block><block s="doReplaceInList"><l>21</l><block var="scaleProperties"/><block var="yScaled"/></block><custom-block s="set PlotPadProperty %txt of %txt to %s"><l>scaleProperties</l><block var="target"/><block var="scaleProperties"/></custom-block></script></block></script></block-definition><block-definition s="add histogram of %'data' with %'n' groups $nl pretty formated? %'prettyFormatted' to PlotPad %'sprite'" type="command" category="5. PlotPad for data plots"><comment x="0" y="0" w="146.33333333333326" collapsed="false">Draws a histogram of histogram data.With a lot of additions by Rick Hessman. Thanks!</comment><header></header><code></code><translations></translations><inputs><input type="%s">myData</input><input type="%n">10</input><input type="%b">true</input><input type="%txt">thisSprite<options>thisSprite
theStage
anotherSprite</options></input></inputs><script><block s="doDeclareVariables"><list><l>ranges</l><l>pretty</l><l>dx</l><l>source</l><l>min</l><l>max</l><l>result</l><l>target</l><l>delta</l><l>h</l><l>i</l><l>x</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>theStage</l></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>thisSprite</l></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a PlotPad?"><block var="target"/></custom-block></block><script><custom-block s="report SciSnap! error %txt"><l>ERROR: target isn't configured as PlotPad!</l></custom-block><block s="doStopThis"><l><option>this block</option></l></block></script></block><block s="doIfElse"><block s="reportEquals"><block var="data"/><l>myData</l></block><script><block s="doSetVar"><l>source</l><block s="reportAttributeOf"><l>myData</l><block var="target"/></block></block></script><script><block s="doSetVar"><l>source</l><block var="data"/></block></script></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a %txt"><block var="source"/><l>vector</l></custom-block></block><script><custom-block s="report SciSnap! error %txt"><l>ERROR: vector required!</l></custom-block><block s="doStopThis"><l><option>this block</option></l></block></script></block><block s="doIf"><block s="reportEquals"><block s="reportListAttribute"><l><option>length</option></l><block var="source"/></block><l>0</l></block><script><custom-block s="report SciSnap! error %txt"><l>ERROR: empty data!</l></custom-block><block s="doStopThis"><l><option>this block</option></l></block></script></block><block s="doIf"><custom-block s="is %s a %txt"><block var="source"/><l>transposed-vector</l></custom-block><script><block s="doSetVar"><l>source</l><custom-block s="transpose %l"><block var="source"/></custom-block></block></script></block><block s="doSetVar"><l>min</l><block s="reportCombine"><block var="source"/><block s="reifyReporter"><autolambda><block s="reportVariadicMin"><list><l></l><l></l></list></block></autolambda><list></list></block></block></block><block s="doSetVar"><l>max</l><block s="reportCombine"><block var="source"/><block s="reifyReporter"><autolambda><block s="reportVariadicMax"><list><l></l><l></l></list></block></autolambda><list></list></block></block></block><block s="doSetVar"><l>delta</l><block s="reportQuotient"><block s="reportDifference"><block var="max"/><block var="min"/></block><block var="n"/></block></block><block s="doSetVar"><l>h</l><block s="reportVariadicSum"><list><block var="min"/><block s="reportQuotient"><block var="delta"/><l>2</l></block></list></block></block><block s="doSetVar"><l>result</l><block s="reportNewList"><list></list></block></block><block s="doRepeat"><block var="n"/><script><block s="doAddToList"><block s="reportNewList"><list><block var="h"/><l>0</l></list></block><block var="result"/></block><block s="doChangeVar"><l>h</l><block var="delta"/></block></script></block><block s="doSetVar"><l>i</l><l>1</l></block><block s="doUntil"><block s="reportGreaterThan"><block var="i"/><block s="reportListAttribute"><l><option>length</option></l><block var="source"/></block></block><script><block s="doSetVar"><l>x</l><block s="reportListItem"><block var="i"/><block var="source"/></block></block><block s="doIf"><block s="reportNot"><block s="reportIsA"><block var="x"/><l><option>number</option></l></block></block><script><block s="doSetVar"><l>x</l><block s="reportListItem"><l>1</l><block var="x"/></block></block></script></block><block s="doIf"><block s="reportIsA"><block var="x"/><l><option>number</option></l></block><script><block s="doSetVar"><l>h</l><block s="reportMonadic"><l><option>ceiling</option></l><block s="reportQuotient"><block s="reportDifference"><block var="x"/><block var="min"/></block><block var="delta"/></block></block></block><block s="doIfElse"><block s="reportLessThan"><block var="h"/><l>1</l></block><script><block s="doSetVar"><l>h</l><l>1</l></block></script><script><block s="doIf"><block s="reportGreaterThan"><block var="h"/><block var="n"/></block><script><block s="doSetVar"><l>h</l><block var="n"/></block></script></block></script></block><block s="doReplaceInList"><l>2</l><block s="reportListItem"><block var="h"/><block var="result"/></block><block s="reportVariadicSum"><list><block s="reportListItem"><l>2</l><block s="reportListItem"><block var="h"/><block var="result"/></block></block><l>1</l></list></block></block></script></block><block s="doChangeVar"><l>i</l><l>1</l></block></script></block><block s="doSetVar"><l>source</l><block var="result"/></block><custom-block s="get ranges for PlotPad %txt %br from %s with border %n"><block var="target"/><block var="source"/><l>0.1</l></custom-block><block s="doIf"><block var="prettyFormatted"/><script><custom-block s="set pretty ranges on PlotPad %txt"><block var="target"/></custom-block></script></block><block s="doTellTo"><block var="target"/><block s="reifyScript"><script><block s="doSwitchToCostume"><l></l></block></script><list></list></block><list><block s="reportApplyExtension"><l>SciS_addHistogramToPlotpad(costume,ranges,offsets,lineattributes,data,datapointattributes)</l><list><block s="reportAskFor"><block var="target"/><block s="reifyReporter"><autolambda><block s="reportGet"><l><option>costume</option></l></block></autolambda><list></list></block><list></list></block><custom-block s="PlotPadProperty %txt of %txt"><l>ranges</l><block var="target"/></custom-block><custom-block s="PlotPadProperty %txt of %txt"><l>scaleOffsets</l><block var="target"/></custom-block><custom-block s="PlotPadProperty %txt of %txt"><l>lineProperties</l><block var="target"/></custom-block><block var="source"/><custom-block s="PlotPadProperty %txt of %txt"><l>markerProperties</l><block var="target"/></custom-block></list></block></list></block></script></block></script></block-definition><block-definition s="add axes and scales to PlotPad %'sprite'" type="command" category="5. PlotPad for data plots"><comment x="0" y="0" w="226.3153515625" collapsed="false">Draws and labels the axes of a PlotPad.
With lot of additions of Rick Hessman. Thanks!</comment><header></header><code></code><translations></translations><inputs><input type="%txt">thisSprite<options>thisSprite
theStage
anotherSprite</options></input></inputs><script><block s="doDeclareVariables"><list><l>target</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>theStage</l></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>thisSprite</l></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a PlotPad?"><block var="target"/></custom-block></block><script><custom-block s="report SciSnap! error %txt"><l>ERROR: target isn't configured as PlotPad!</l></custom-block><block s="doStopThis"><l><option>this block</option></l></block></script></block><block s="doTellTo"><block var="target"/><block s="reifyScript"><script><block s="doSwitchToCostume"><l></l></block></script><list></list></block><list><block s="reportApplyExtension"><l>SciS_addAxesAndScalesToPlotpad(costume,scaleattributes,labels,offsets,ranges,plotcolors)</l><list><block s="reportAskFor"><block var="target"/><block s="reifyReporter"><autolambda><block s="reportGet"><l><option>costume</option></l></block></autolambda><list></list></block><list></list></block><custom-block s="PlotPadProperty %txt of %txt"><l>scaleProperties</l><block var="target"/></custom-block><custom-block s="PlotPadProperty %txt of %txt"><l>labels</l><block var="target"/></custom-block><custom-block s="PlotPadProperty %txt of %txt"><l>scaleOffsets</l><block var="target"/></custom-block><custom-block s="PlotPadProperty %txt of %txt"><l>ranges</l><block var="target"/></custom-block><custom-block s="PlotPadProperty %txt of %txt"><l>costumeProperties</l><block var="target"/></custom-block></list></block></list></block></script></block></script></block-definition><block-definition s="clear plot of %'sprite'" type="command" category="5. PlotPad for data plots"><header></header><code></code><translations></translations><inputs><input type="%s">thisSprite</input></inputs><script><block s="doDeclareVariables"><list><l>target</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>theStage</l></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>thisSprite</l></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a PlotPad?"><block var="target"/></custom-block></block><script><custom-block s="report SciSnap! error %txt"><l>ERROR: target isn't configured as PlotPad!</l></custom-block><block s="doStopThis"><l><option>this block</option></l></block></script></block><block s="doTellTo"><block var="target"/><block s="reifyScript"><script><block s="doSwitchToCostume"><l></l></block></script><list></list></block><list><block s="reportApplyExtension"><l>SciS_newcostume(w,h,r,g,b)</l><list><block s="reportAttributeOf"><l><option>width</option></l><block var="target"/></block><block s="reportAttributeOf"><l><option>height</option></l><block var="target"/></block><block s="reportListItem"><l>3</l><custom-block s="PlotPadProperty %txt of %txt"><l>costumeProperties</l><block var="target"/></custom-block></block><block s="reportListItem"><l>4</l><custom-block s="PlotPadProperty %txt of %txt"><l>costumeProperties</l><block var="target"/></custom-block></block><block s="reportListItem"><l>5</l><custom-block s="PlotPadProperty %txt of %txt"><l>costumeProperties</l><block var="target"/></custom-block></block></list></block></list></block></script></block></script></block-definition><block-definition s="set pretty ranges on PlotPad %'sprite'" type="command" category="5. PlotPad for data plots"><comment x="0" y="0" w="311.3333333333333" collapsed="false">Sets the ranges to "pretty" values. Many thanks to Rick Hessman!</comment><header></header><code></code><translations></translations><inputs><input type="%txt">thisSprite<options>thisSprite
theStage
anotherSprite</options></input></inputs><script><block s="doDeclareVariables"><list><l>pretty</l><l>target</l><l>scaleProperties</l><l>ranges</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>theStage</l></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>thisSprite</l></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a PlotPad?"><block var="target"/></custom-block></block><script><custom-block s="report SciSnap! error %txt"><l>ERROR: target isn't configured as PlotPad!</l></custom-block><block s="doStopThis"><l><option>this block</option></l></block></script></block><block s="doSetVar"><l>scaleProperties</l><custom-block s="PlotPadProperty %txt of %txt"><l>scaleProperties</l><block var="target"/></custom-block></block><block s="doSetVar"><l>ranges</l><custom-block s="PlotPadProperty %txt of %txt"><l>ranges</l><block var="target"/></custom-block></block><block s="doSetVar"><l>pretty</l><custom-block s="pretty values for a PlotPad from %n %br to %n with %n intervals"><block s="reportListItem"><l>1</l><block var="ranges"/></block><block s="reportListItem"><l>2</l><block var="ranges"/></block><block s="reportListItem"><l>5</l><block var="scaleProperties"/></block></custom-block><comment w="89.66666666666667" collapsed="false">get dictionary of pretty values.</comment></block><block s="doReplaceInList"><l>7</l><block var="scaleProperties"/><block s="reportListItem"><l>2</l><block s="reportListItem"><l>1</l><block var="pretty"/></block></block></block><block s="doReplaceInList"><l>9</l><block var="scaleProperties"/><block s="reportListItem"><l>2</l><block s="reportListItem"><l>3</l><block var="pretty"/></block></block></block><block s="doReplaceInList"><l>11</l><block var="scaleProperties"/><block s="reportListItem"><l>2</l><block s="reportListItem"><l>4</l><block var="pretty"/></block></block></block><block s="doReplaceInList"><l>5</l><block var="scaleProperties"/><block s="reportMonadic"><l><option>ceiling</option></l><block s="reportQuotient"><block s="reportAskFor"><block var="target"/><block s="reifyReporter"><autolambda><block s="reportGetImageAttribute"><l><option>width</option></l><l><option>current</option></l></block></autolambda><list></list></block><list></list></block><block s="reportVariadicProduct"><list><l>6</l><block s="reportListItem"><l>3</l><block var="scaleProperties"/></block></list></block></block></block></block><block s="doReplaceInList"><l>1</l><block var="scaleProperties"/><block s="reportListItem"><l>2</l><block s="reportListItem"><l>6</l><block var="pretty"/></block></block></block><block s="doReplaceInList"><l>14</l><block var="scaleProperties"/><block s="reportListItem"><l>2</l><block s="reportListItem"><l>7</l><block var="pretty"/></block></block></block><block s="doSetVar"><l>pretty</l><custom-block s="pretty values for a PlotPad from %n %br to %n with %n intervals"><block s="reportListItem"><l>3</l><block var="ranges"/></block><block s="reportListItem"><l>4</l><block var="ranges"/></block><block s="reportListItem"><l>6</l><block var="scaleProperties"/></block></custom-block><comment w="89.66666666666667" collapsed="false">get dictionary of pretty values.</comment></block><block s="doReplaceInList"><l>8</l><block var="scaleProperties"/><block s="reportListItem"><l>2</l><block s="reportListItem"><l>1</l><block var="pretty"/></block></block></block><block s="doReplaceInList"><l>10</l><block var="scaleProperties"/><block s="reportListItem"><l>2</l><block s="reportListItem"><l>3</l><block var="pretty"/></block></block></block><block s="doReplaceInList"><l>12</l><block var="scaleProperties"/><block s="reportListItem"><l>2</l><block s="reportListItem"><l>4</l><block var="pretty"/></block></block></block><block s="doReplaceInList"><l>6</l><block var="scaleProperties"/><block s="reportMonadic"><l><option>ceiling</option></l><block s="reportQuotient"><block s="reportAskFor"><block var="target"/><block s="reifyReporter"><autolambda><block s="reportGetImageAttribute"><l><option>height</option></l><l><option>current</option></l></block></autolambda><list></list></block><list></list></block><block s="reportVariadicProduct"><list><l>8</l><block s="reportListItem"><l>4</l><block var="scaleProperties"/></block></list></block></block></block></block><block s="doReplaceInList"><l>2</l><block var="scaleProperties"/><block s="reportListItem"><l>2</l><block s="reportListItem"><l>6</l><block var="pretty"/></block></block></block><block s="doReplaceInList"><l>15</l><block var="scaleProperties"/><block s="reportListItem"><l>2</l><block s="reportListItem"><l>7</l><block var="pretty"/></block></block></block><custom-block s="set PlotPadProperty %txt of %txt to %s"><l>ranges</l><block var="target"/><block var="ranges"/></custom-block><custom-block s="set PlotPadProperty %txt of %txt to %s"><l>scaleProperties</l><block var="target"/><block var="scaleProperties"/></custom-block></script></block></script><scripts><script x="452.66666666666674" y="398.66666666666663"><block s="doReplaceInList"><l>1</l><block var="ranges"/><block s="reportListItem"><l>2</l><block s="reportListItem"><l>1</l><block var="pretty"/></block></block></block><block s="doReplaceInList"><l>2</l><block var="ranges"/><block s="reportListItem"><l>2</l><block s="reportListItem"><l>2</l><block var="pretty"/></block></block></block></script><script x="455.16666666666674" y="773.6666666666666"><block s="doReplaceInList"><l>3</l><block var="ranges"/><block s="reportListItem"><l>2</l><block s="reportListItem"><l>1</l><block var="pretty"/></block></block></block><block s="doReplaceInList"><l>4</l><block var="ranges"/><block s="reportListItem"><l>2</l><block s="reportListItem"><l>2</l><block var="pretty"/></block></block></block></script></scripts></block-definition><block-definition s="pretty values for a PlotPad from %'min' $nl to %'max' with %'num' intervals" type="reporter" category="5. PlotPad for data plots"><comment x="0" y="0" w="164.3333333333332" collapsed="false">"Pretty" scaling from Rick Hessman. Many thanks!</comment><header></header><code></code><translations></translations><inputs><input type="%n">-10</input><input type="%n">10</input><input type="%n">6</input></inputs><script><block s="doWarp"><script><block s="doDeclareVariables"><list><l>nix</l><l>sign</l><l>pretty</l><l>between</l><l>places</l><l>delta</l><l>dtic</l><l>scaling</l><l>index</l><l>n</l><l>result</l><l>nint</l></list></block><block s="doIf"><block s="reportLessThan"><block var="num"/><l>3</l></block><script><block s="doReport"><l>ERROR: num-value <3 senseless</l></block></script></block><block s="doIf"><block s="reportOr"><block s="reportGreaterThan"><block s="reportMonadic"><l><option>abs</option></l><block var="min"/></block><l>2000</l></block><block s="reportGreaterThan"><block s="reportMonadic"><l><option>abs</option></l><block var="max"/></block><l>2000</l></block></block><script><block s="doSetVar"><l>result</l><block s="reportNewList"><list></list></block></block><block s="doSetVar"><l>delta</l><block s="reportVariadicProduct"><list><block var="dtic"/><block var="scaling"/></list></block></block><block s="doSetVar"><l>n</l><block s="reportMonadic"><l><option>floor</option></l><block s="reportQuotient"><block var="min"/><block var="delta"/></block></block></block><block s="doAddToList"><block s="reportNewList"><list><l>start</l><block var="min"/></list></block><block var="result"/></block><block s="doAddToList"><block s="reportNewList"><list><l>stop</l><block var="max"/></list></block><block var="result"/></block><block s="doAddToList"><block s="reportNewList"><list><l>step</l><block s="reportQuotient"><block s="reportDifference"><block var="max"/><block var="min"/></block><block var="num"/></block></list></block><block var="result"/></block><block s="doAddToList"><block s="reportNewList"><list><l>scaling</l><l>1</l></list></block><block var="result"/></block><block s="doAddToList"><block s="reportNewList"><list><l>intervals</l><block var="num"/></list></block><block var="result"/></block><block s="doAddToList"><block s="reportNewList"><list><l>precision</l><l>0</l></list></block><block var="result"/></block><block s="doAddToList"><block s="reportNewList"><list><l>minitics</l><l>1</l></list></block><block var="result"/></block><block s="doReport"><block var="result"/></block></script><comment w="196.32285529908663" collapsed="false">Numbers are too big for pretty printing.</comment></block><block s="doSetVar"><l>nint</l><block var="num"/></block><block s="doSetVar"><l>pretty</l><block s="reportNewList"><list><l>0.001</l><l>0.002</l><l>0.005</l><l>0.01</l><l>0.02</l><l>0.05</l><l>0.1</l><l>0.2</l><l>0.5</l><l>1</l><l>2</l><l>5</l><l>10</l><l>20</l><l>50</l><l>100</l><l>200</l><l>500</l><l>1000</l><l>2000</l></list></block></block><block s="doSetVar"><l>between</l><block s="reportNewList"><list><l>9</l><l>1</l><l>3</l><l>4</l><l>1</l><l>3</l><l>4</l><l>1</l><l>3</l><l>4</l><l>1</l><l>3</l><l>4</l><l>1</l><l>3</l><l>4</l><l>1</l><l>3</l><l>4</l><l>1</l></list></block></block><block s="doSetVar"><l>places</l><block s="reportNewList"><list><l>3</l><l>3</l><l>3</l><l>2</l><l>2</l><l>2</l><l>1</l><l>1</l><l>1</l><l>0</l><l>0</l><l>0</l><l>0</l><l>0</l><l>0</l><l>0</l><l>0</l><l>0</l><l>0</l><l>0</l></list></block></block><block s="doSetVar"><l>sign</l><block s="reportMonadic"><l><option>sign</option></l><block s="reportDifference"><block var="max"/><block var="min"/></block></block></block><block s="doRepeat"><l>2</l><script><block s="doSetVar"><l>delta</l><block s="reportMonadic"><l><option>abs</option></l><block s="reportQuotient"><block s="reportDifference"><block var="max"/><block var="min"/></block><block var="nint"/></block></block></block><block s="doIfElse"><block s="reportAnd"><block s="reportGreaterThan"><block var="delta"/><l>0.001</l></block><block s="reportLessThan"><block var="delta"/><l>2000</l></block></block><script><block s="doSetVar"><l>scaling</l><l>1</l></block></script><script><block s="doSetVar"><l>scaling</l><block s="reportMonadic"><l><option>10^</option></l><block s="reportMonadic"><l><option>floor</option></l><block s="reportMonadic"><l><option>log</option></l><block s="reportVariadicProduct"><list><l>0.5</l><block s="reportVariadicSum"><list><block s="reportMonadic"><l><option>abs</option></l><block var="max"/></block><block s="reportMonadic"><l><option>abs</option></l><block var="min"/></block></list></block></list></block></block></block></block></block></script></block><block s="doSetVar"><l>index</l><l>1</l></block><block s="doFor"><l>i</l><l>2</l><block s="reportListAttribute"><l><option>length</option></l><block var="pretty"/></block><script><block s="doIf"><block s="reportGreaterThan"><block var="delta"/><block s="reportVariadicProduct"><list><block s="reportListItem"><block var="i"/><block var="pretty"/></block><block var="scaling"/></list></block></block><script><block s="doSetVar"><l>index</l><block var="i"/></block></script></block></script></block><block s="doIf"><block s="reportAnd"><block s="reportLessThan"><block var="index"/><block s="reportListAttribute"><l><option>length</option></l><block var="pretty"/></block></block><block s="reportGreaterThan"><block s="reportMonadic"><l><option>abs</option></l><block s="reportDifference"><block var="delta"/><block s="reportVariadicProduct"><list><block s="reportListItem"><block var="index"/><block var="pretty"/></block><block var="scaling"/></list></block></block></block><block s="reportMonadic"><l><option>abs</option></l><block s="reportDifference"><block var="delta"/><block s="reportVariadicProduct"><list><block s="reportListItem"><block s="reportVariadicSum"><list><block var="index"/><l>1</l></list></block><block var="pretty"/></block><block var="scaling"/></list></block></block></block></block></block><script><block s="doSetVar"><l>index</l><block s="reportVariadicSum"><list><block var="index"/><l>1</l></list></block></block></script></block><block s="doSetVar"><l>dtic</l><block s="reportVariadicProduct"><list><block s="reportListItem"><block var="index"/><block var="pretty"/></block><block var="sign"/></list></block></block><block s="doSetVar"><l>nint</l><block s="reportMonadic"><l><option>floor</option></l><block s="reportMonadic"><l><option>abs</option></l><block s="reportQuotient"><block s="reportDifference"><block var="max"/><block var="min"/></block><block s="reportVariadicProduct"><list><block var="dtic"/><block var="scaling"/></list></block></block></block></block></block></script></block><block s="doSetVar"><l>result</l><block s="reportNewList"><list></list></block></block><block s="doSetVar"><l>delta</l><block s="reportVariadicProduct"><list><block var="dtic"/><block var="scaling"/></list></block></block><block s="doSetVar"><l>n</l><block s="reportMonadic"><l><option>floor</option></l><block s="reportQuotient"><block var="min"/><block var="delta"/></block></block></block><block s="doAddToList"><block s="reportNewList"><list><l>start</l><block s="reportVariadicProduct"><list><block var="n"/><block var="dtic"/></list></block></list><comment w="192.76999879201264" collapsed="false">start*scaling is the actual starting value (start is the value displayed next to the tic)</comment></block><block var="result"/></block><block s="doAddToList"><block s="reportNewList"><list><l>stop</l><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><block var="n"/><block var="dtic"/></list></block><block s="reportVariadicProduct"><list><block s="reportVariadicSum"><list><block var="nint"/><l>1</l></list></block><block var="dtic"/></list></block></list></block></list></block><block var="result"/></block><block s="doAddToList"><block s="reportNewList"><list><l>step</l><block var="dtic"/></list></block><block var="result"/><comment w="392.5133314895631" collapsed="false">step*scaling is the actual stepping value (step is the difference between the tic labels).</comment></block><block s="doAddToList"><block s="reportNewList"><list><l>scaling</l><block var="scaling"/></list></block><block var="result"/></block><block s="doAddToList"><block s="reportNewList"><list><l>intervals</l><block var="nint"/></list></block><block var="result"/></block><block s="doAddToList"><block s="reportNewList"><list><l>precision</l><block s="reportListItem"><block var="index"/><block var="places"/></block></list></block><block var="result"/></block><block s="doAddToList"><block s="reportNewList"><list><l>minitics</l><block s="reportListItem"><block var="index"/><block var="between"/></block></list></block><block var="result"/></block><block s="doReport"><block var="result"/></block></script></block></script></block-definition><block-definition s="get ranges for PlotPad %'sprite' $nl from %'data' with border %'percent'" type="command" category="5. PlotPad for data plots"><header></header><code></code><translations></translations><inputs><input type="%txt">thisSprite<options>thisSprite
theStage
anotherSprite</options></input><input type="%s">myData</input><input type="%n">0.1</input></inputs><script><block s="doDeclareVariables"><list><l>ranges</l><l>dx</l><l>dy</l><l>source</l><l>target</l><l>scaleProperties</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>theStage</l></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>thisSprite</l></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a PlotPad?"><block var="target"/></custom-block></block><script><custom-block s="report SciSnap! error %txt"><l>ERROR: target isn't configured as PlotPad!</l></custom-block><block s="doStopThis"><l><option>this block</option></l></block></script></block><block s="doIfElse"><block s="reportEquals"><block var="data"/><l>myData</l></block><script><block s="doSetVar"><l>source</l><block s="reportAttributeOf"><l>myData</l><block var="target"/></block></block></script><script><block s="doSetVar"><l>source</l><block var="data"/></block></script></block><block s="doIfElse"><block s="reportLessThan"><block s="reportListAttribute"><l><option>length</option></l><block var="source"/></block><l>2</l></block><script><custom-block s="report SciSnap! error %txt"><l>ERROR: wrong data!</l></custom-block><block s="doStopThis"><l><option>this block</option></l></block></script><script><block s="doSetVar"><l>ranges</l><custom-block s="ranges of 2-dim table %l"><block var="source"/></custom-block></block><block s="doSetVar"><l>dx</l><block s="reportVariadicProduct"><list><block var="percent"/><block s="reportDifference"><block s="reportListItem"><l>2</l><block var="ranges"/></block><block s="reportListItem"><l>1</l><block var="ranges"/></block></block></list></block></block></script></block><block s="doSetVar"><l>dy</l><block s="reportVariadicProduct"><list><block var="percent"/><block s="reportDifference"><block s="reportListItem"><l>4</l><block var="ranges"/></block><block s="reportListItem"><l>3</l><block var="ranges"/></block></block></list></block></block><custom-block s="set PlotPadProperty %txt of %txt to %s"><l>ranges</l><block var="target"/><block s="reportNewList"><list><block s="reportDifference"><block s="reportListItem"><l>1</l><block var="ranges"/></block><block var="dx"/></block><block s="reportVariadicSum"><list><block s="reportListItem"><l>2</l><block var="ranges"/></block><block var="dx"/></list></block><block s="reportDifference"><block s="reportListItem"><l>3</l><block var="ranges"/></block><block var="dy"/></block><block s="reportVariadicSum"><list><block s="reportListItem"><l>4</l><block var="ranges"/></block><block var="dy"/></list></block></list></block></custom-block><block s="doSetVar"><l>scaleProperties</l><custom-block s="PlotPadProperty %txt of %txt"><l>scaleProperties</l><block var="target"/></custom-block></block><block s="doReplaceInList"><l>7</l><block var="scaleProperties"/><block s="reportListItem"><l>1</l><block var="ranges"/></block></block><block s="doReplaceInList"><l>9</l><block var="scaleProperties"/><block s="reportQuotient"><block s="reportDifference"><block s="reportListItem"><l>2</l><block var="ranges"/></block><block s="reportListItem"><l>1</l><block var="ranges"/></block></block><block s="reportListItem"><l>5</l><block var="scaleProperties"/></block></block></block><block s="doReplaceInList"><l>11</l><block var="scaleProperties"/><l>1</l></block><block s="doReplaceInList"><l>14</l><block var="scaleProperties"/><l>1</l></block><block s="doReplaceInList"><l>8</l><block var="scaleProperties"/><block s="reportListItem"><l>3</l><block var="ranges"/></block></block><block s="doReplaceInList"><l>10</l><block var="scaleProperties"/><block s="reportQuotient"><block s="reportDifference"><block s="reportListItem"><l>4</l><block var="ranges"/></block><block s="reportListItem"><l>3</l><block var="ranges"/></block></block><block s="reportListItem"><l>6</l><block var="scaleProperties"/></block></block></block><block s="doReplaceInList"><l>12</l><block var="scaleProperties"/><l>1</l></block><block s="doReplaceInList"><l>15</l><block var="scaleProperties"/><l>1</l></block><custom-block s="set PlotPadProperty %txt of %txt to %s"><l>scaleProperties</l><block var="target"/><block var="scaleProperties"/></custom-block></script></block></script></block-definition><block-definition s="ranges of 2-dim table %'data'" type="reporter" category="5. PlotPad for data plots"><comment x="0" y="0" w="218.33333333333314" collapsed="false">Calculates the ranges of two columns of a table.
</comment><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doWarp"><script><block s="doIfElse"><block s="reportNot"><custom-block s="is %s a %txt"><block var="data"/><l>matrix</l></custom-block></block><script><block s="doReport"><l>ERROR: matrix required!</l></block></script><script><block s="doIfElse"><block s="reportNot"><block s="reportEquals"><block s="reportListAttribute"><l><option>length</option></l><block s="reportListItem"><l>1</l><block var="data"/></block></block><l>2</l></block></block><script><block s="doReport"><l>ERROR: 2-dimensional matrix required!</l></block></script><script><block s="doReport"><block s="reportNewList"><list><block s="reportCombine"><custom-block s="%s %s of %s with first item? %b"><l>column</l><l>1</l><block var="data"/><l><bool>true</bool></l></custom-block><block s="reifyReporter"><autolambda><block s="reportVariadicMin"><list><l></l><l></l></list></block></autolambda><list></list></block></block><block s="reportCombine"><custom-block s="%s %s of %s with first item? %b"><l>column</l><l>1</l><block var="data"/><l><bool>true</bool></l></custom-block><block s="reifyReporter"><autolambda><block s="reportVariadicMax"><list><l></l><l></l></list></block></autolambda><list></list></block></block><block s="reportCombine"><custom-block s="%s %s of %s with first item? %b"><l>column</l><l>2</l><block var="data"/><l><bool>true</bool></l></custom-block><block s="reifyReporter"><autolambda><block s="reportVariadicMin"><list><l></l><l></l></list></block></autolambda><list></list></block></block><block s="reportCombine"><custom-block s="%s %s of %s with first item? %b"><l>column</l><l>2</l><block var="data"/><l><bool>true</bool></l></custom-block><block s="reifyReporter"><autolambda><block s="reportVariadicMax"><list><l></l><l></l></list></block></autolambda><list></list></block></block></list></block></block></script></block></script></block></script></block></script></block-definition><block-definition s="convert value %'pos' to coordinate %'coordinate' $nl of PlotPad %'sprite'" type="reporter" category="5. PlotPad for data plots"><comment x="0" y="0" w="135.1666666666667" collapsed="false">Conversion of coordinates.</comment><header></header><code></code><translations></translations><inputs><input type="%n">100</input><input type="%s" readonly="true">xp<options>xp
yp
x
y</options></input><input type="%txt">thisSprite<options>thisSprite
theStage
anotherSprite</options></input></inputs><script><block s="doDeclareVariables"><list><l>x0</l><l>diagramWidth</l><l>y0</l><l>diagramHeight</l><l>offsets</l><l>ranges</l><l>target</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>theStage</l></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>thisSprite</l></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a PlotPad?"><block var="target"/></custom-block></block><script><block s="doReport"><l>ERROR: target isn't configured as PlotPad!</l></block></script></block><block s="doSetVar"><l>offsets</l><custom-block s="PlotPadProperty %txt of %txt"><l>scaleOffsets</l><block var="target"/></custom-block></block><block s="doSetVar"><l>ranges</l><custom-block s="PlotPadProperty %txt of %txt"><l>ranges</l><block var="target"/></custom-block></block><block s="doSetVar"><l>diagramWidth</l><block s="reportDifference"><block s="reportAskFor"><block var="target"/><block s="reifyReporter"><autolambda><block s="reportGetImageAttribute"><l><option>width</option></l><l><option>current</option></l></block></autolambda><list></list></block><list></list></block><block s="reportListItem"><l>1</l><block var="offsets"/></block></block></block><block s="doSetVar"><l>diagramHeight</l><block s="reportDifference"><block s="reportDifference"><block s="reportAskFor"><block var="target"/><block s="reifyReporter"><autolambda><block s="reportGetImageAttribute"><l><option>height</option></l><l><option>current</option></l></block></autolambda><list></list></block><list></list></block><block s="reportListItem"><l>3</l><block var="offsets"/></block></block><block s="reportListItem"><l>4</l><block var="offsets"/></block></block></block><block s="doSetVar"><l>x0</l><block s="reportQuotient"><block s="reportVariadicProduct"><list><block s="reportListItem"><l>1</l><block var="ranges"/></block><block var="diagramWidth"/></list></block><block s="reportDifference"><block s="reportListItem"><l>1</l><block var="ranges"/></block><block s="reportListItem"><l>2</l><block var="ranges"/></block></block></block></block><block s="doSetVar"><l>y0</l><block s="reportQuotient"><block s="reportVariadicProduct"><list><block s="reportListItem"><l>4</l><block var="ranges"/></block><block var="diagramHeight"/></list></block><block s="reportDifference"><block s="reportListItem"><l>4</l><block var="ranges"/></block><block s="reportListItem"><l>3</l><block var="ranges"/></block></block></block></block><block s="doSetVar"><l>coordinate</l><block s="reportListItem"><l>1</l><block s="reportTextSplit"><block var="coordinate"/><l> </l></block></block></block><block s="doIf"><block s="reportEquals"><block var="coordinate"/><l>xp</l></block><script><block s="doReport"><block s="reportVariadicSum"><list><block s="reportVariadicSum"><list><block var="x0"/><block s="reportQuotient"><block s="reportVariadicProduct"><list><block var="pos"/><block var="diagramWidth"/></list></block><block s="reportDifference"><block s="reportListItem"><l>2</l><block var="ranges"/></block><block s="reportListItem"><l>1</l><block var="ranges"/></block></block></block></list></block><block s="reportListItem"><l>1</l><block var="offsets"/></block></list></block></block></script></block><block s="doIf"><block s="reportEquals"><block var="coordinate"/><l>yp</l></block><script><block s="doReport"><block s="reportVariadicSum"><list><block s="reportDifference"><block var="y0"/><block s="reportQuotient"><block s="reportVariadicProduct"><list><block var="pos"/><block var="diagramHeight"/></list></block><block s="reportDifference"><block s="reportListItem"><l>4</l><block var="ranges"/></block><block s="reportListItem"><l>3</l><block var="ranges"/></block></block></block></block><block s="reportListItem"><l>3</l><block var="offsets"/></block></list></block></block></script></block><block s="doIf"><block s="reportEquals"><block var="coordinate"/><l>x</l></block><script><block s="doReport"><block s="reportQuotient"><block s="reportVariadicProduct"><list><block s="reportDifference"><block s="reportDifference"><block var="pos"/><block s="reportListItem"><l>1</l><block var="offsets"/></block></block><block var="x0"/></block><block s="reportDifference"><block s="reportListItem"><l>2</l><block var="ranges"/></block><block s="reportListItem"><l>1</l><block var="ranges"/></block></block></list></block><block var="diagramWidth"/></block></block></script></block><block s="doIf"><block s="reportEquals"><block var="coordinate"/><l>y</l></block><script><block s="doReport"><block s="reportQuotient"><block s="reportVariadicProduct"><list><block s="reportDifference"><block var="y0"/><block s="reportDifference"><block var="pos"/><block s="reportListItem"><l>3</l><block var="offsets"/></block></block></block><block s="reportDifference"><block s="reportListItem"><l>4</l><block var="ranges"/></block><block s="reportListItem"><l>3</l><block var="ranges"/></block></block></list></block><block var="diagramHeight"/></block></block></script></block></script></block></script></block-definition><block-definition s="PlotPad %'selection' on %'sprite' by mouse" type="reporter" category="5. PlotPad for data plots"><comment x="0" y="0" w="128.33333333333334" collapsed="false">Obtaining coordinates of a PlotPad by mouse.</comment><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true">costume-coordinates<options>costume-coordinates
graph-coordinates</options></input><input type="%txt">thisSprite<options>thisSprite
theStage
anotherSprite</options></input></inputs><script><block s="doDeclareVariables"><list><l>target</l><l>targetCostumeWidth</l><l>targetCostumeHeight</l><l>targetXPosition</l><l>targetYPosition</l><l>targetSize</l><l>x</l><l>y</l><l>x0</l><l>y0</l><l>targetCostume</l><l>xLeft</l><l>xRight</l><l>yLower</l><l>yUpper</l><l>diagramWidth</l><l>diagramHeight</l><l>offsets</l><l>ranges</l></list></block><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>theStage</l></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>thisSprite</l></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a PlotPad?"><block var="target"/></custom-block></block><script><block s="doReport"><l>ERROR: target isn't configured as PlotPad!</l></block></script></block><block s="doSetVar"><l>selection</l><block s="reportListItem"><l>1</l><block s="reportTextSplit"><block var="selection"/><l> </l></block></block></block><block s="doSetVar"><l>targetCostume</l><block s="reportAskFor"><block var="target"/><block s="reifyReporter"><autolambda><block s="reportGet"><l><option>costume</option></l></block></autolambda><list></list></block><list></list></block></block><block s="doSetVar"><l>targetCostumeWidth</l><block s="reportGetImageAttribute"><l><option>width</option></l><block var="targetCostume"/></block></block><block s="doSetVar"><l>targetCostumeHeight</l><block s="reportGetImageAttribute"><l><option>height</option></l><block var="targetCostume"/></block></block><block s="doSetVar"><l>targetXPosition</l><block s="reportAttributeOf"><l><option>x position</option></l><block var="target"/></block></block><block s="doSetVar"><l>targetYPosition</l><block s="reportAttributeOf"><l><option>y position</option></l><block var="target"/></block></block><block s="doSetVar"><l>targetSize</l><block s="reportAttributeOf"><l><option>size</option></l><block var="target"/></block></block><block s="doIf"><block s="reportEquals"><block var="selection"/><l>costume-coordinates</l><comment w="121.68283420138891" collapsed="false">costume coordinates.</comment></block><script><block s="doWarp"><script><block s="doSetVar"><l>x</l><block s="reportRound"><block s="reportVariadicSum"><list><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><l>100</l><block s="reportQuotient"><block s="reportDifference"><block s="reportMouseX"></block><block var="targetXPosition"/></block><block var="targetSize"/></block></list></block><block s="reportQuotient"><block var="targetCostumeWidth"/><l>2</l></block></list></block><l>1</l></list></block></block></block><block s="doSetVar"><l>y</l><block s="reportRound"><block s="reportVariadicSum"><list><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><l>100</l><block s="reportQuotient"><block s="reportDifference"><block var="targetYPosition"/><block s="reportMouseY"></block></block><block var="targetSize"/></block></list></block><block s="reportQuotient"><block var="targetCostumeHeight"/><l>2</l></block></list></block><l>1</l></list></block></block></block><block s="doIfElse"><block s="reportOr"><block s="reportOr"><block s="reportGreaterThan"><block var="x"/><block var="targetCostumeWidth"/></block><block s="reportGreaterThan"><block var="y"/><block var="targetCostumeHeight"/></block></block><block s="reportOr"><block s="reportLessThan"><block var="x"/><l>1</l></block><block s="reportLessThan"><block var="y"/><l>1</l></block></block></block><script><block s="doReport"><block s="reportNewList"><list></list></block></block></script><script><block s="doReport"><block s="reportNewList"><list><block var="x"/><block var="y"/></list></block></block></script></block></script></block></script></block><block s="doIf"><block s="reportEquals"><block var="selection"/><l>graph-coordinates</l><comment w="121.68283420138891" collapsed="false">costume coordinates.</comment></block><script><block s="doWarp"><script><block s="doSetVar"><l>x</l><block s="reportRound"><block s="reportVariadicSum"><list><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><l>100</l><block s="reportQuotient"><block s="reportDifference"><block s="reportMouseX"></block><block var="targetXPosition"/></block><block var="targetSize"/></block></list></block><block s="reportQuotient"><block var="targetCostumeWidth"/><l>2</l></block></list></block><l>1</l></list></block></block></block><block s="doSetVar"><l>y</l><block s="reportRound"><block s="reportVariadicSum"><list><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><l>100</l><block s="reportQuotient"><block s="reportDifference"><block var="targetYPosition"/><block s="reportMouseY"></block></block><block var="targetSize"/></block></list></block><block s="reportQuotient"><block var="targetCostumeHeight"/><l>2</l></block></list></block><l>1</l></list></block></block></block><block s="doSetVar"><l>offsets</l><custom-block s="PlotPadProperty %txt of %txt"><l>scaleOffsets</l><block var="target"/></custom-block></block><block s="doSetVar"><l>ranges</l><custom-block s="PlotPadProperty %txt of %txt"><l>ranges</l><block var="target"/></custom-block></block><block s="doSetVar"><l>xLeft</l><block s="reportListItem"><l>1</l><block var="ranges"/></block></block><block s="doSetVar"><l>xRight</l><block s="reportListItem"><l>2</l><block var="ranges"/></block></block><block s="doSetVar"><l>yLower</l><block s="reportListItem"><l>3</l><block var="ranges"/></block></block><block s="doSetVar"><l>yUpper</l><block s="reportListItem"><l>4</l><block var="ranges"/></block></block><block s="doSetVar"><l>diagramWidth</l><block s="reportDifference"><block s="reportDifference"><block var="targetCostumeWidth"/><block s="reportListItem"><l>1</l><block var="offsets"/></block></block><block s="reportListItem"><l>2</l><block var="offsets"/></block></block></block><block s="doSetVar"><l>diagramHeight</l><block s="reportDifference"><block s="reportDifference"><block var="targetCostumeHeight"/><block s="reportListItem"><l>3</l><block var="offsets"/></block></block><block s="reportListItem"><l>4</l><block var="offsets"/></block></block></block><block s="doSetVar"><l>x0</l><block s="reportVariadicProduct"><list><block s="reportQuotient"><block var="xLeft"/><block s="reportDifference"><block var="xLeft"/><block var="xRight"/></block></block><block var="diagramWidth"/></list></block></block><block s="doSetVar"><l>y0</l><block s="reportVariadicProduct"><list><block s="reportQuotient"><block var="yUpper"/><block s="reportDifference"><block var="yUpper"/><block var="yLower"/></block></block><block var="diagramHeight"/></list></block></block><block s="doIfElse"><block s="reportOr"><block s="reportOr"><block s="reportGreaterThan"><block var="x"/><block var="targetCostumeWidth"/></block><block s="reportGreaterThan"><block var="y"/><block var="targetCostumeHeight"/></block></block><block s="reportOr"><block s="reportLessThan"><block var="x"/><l>1</l></block><block s="reportLessThan"><block var="y"/><l>1</l></block></block></block><script><block s="doReport"><block s="reportNewList"><list></list></block></block></script><script><block s="doReport"><block s="reportNewList"><list><block s="reportQuotient"><block s="reportVariadicProduct"><list><block s="reportDifference"><block s="reportDifference"><block var="x"/><block var="x0"/></block><block s="reportListItem"><l>1</l><block var="offsets"/></block></block><block s="reportDifference"><block var="xRight"/><block var="xLeft"/></block></list></block><block var="diagramWidth"/></block><block s="reportQuotient"><block s="reportVariadicProduct"><list><block s="reportVariadicSum"><list><block s="reportDifference"><block var="y0"/><block var="y"/></block><block s="reportListItem"><l>3</l><block var="offsets"/></block></list></block><block s="reportDifference"><block var="yUpper"/><block var="yLower"/></block></list></block><block var="diagramHeight"/></block></list></block></block></script></block></script></block></script></block></script></block-definition><block-definition s="EXAMPLE 1: $nl Plot of random data width %'w' height %'h' $nl title %'title' labels %'xlab' %'ylab' $nl line %'lstyle' marker %'mstyle' color %'r' %'g' %'b'" type="command" category="5. PlotPad for data plots"><header></header><code></code><translations></translations><inputs><input type="%n">400</input><input type="%n">300</input><input type="%txt"></input><input type="%txt">x</input><input type="%txt">y</input><input type="%txt">continuous</input><input type="%txt">o_circle</input><input type="%n">0</input><input type="%n">0</input><input type="%n">0</input></inputs><script><custom-block s="import %s from %br %s to SciSnap!Data"><l>table-(CSV)-data</l><custom-block s="%n random points near %repRing %br between %n and %n range %n"><l>20</l><block s="reifyReporter"><autolambda><block s="reportDifference"><block s="reportVariadicProduct"><list><l>0.3</l><block s="reportPower"><l></l><l>3</l></block></list></block><l></l></block></autolambda><list></list></block><l>-5</l><l>5</l><l>2</l></custom-block></custom-block><block s="doSetVar"><l>SciSnap!Data</l><custom-block s="%s sorted by column %s %br ascending %b considering headline? %b"><l>SciSnap!Data</l><l>1</l><l><bool>true</bool></l><l><bool>true</bool></l></custom-block></block><custom-block s="configure %txt as a PlotPad width: %n %br height: %n color: %n %n %n"><l>thisSprite</l><block var="w"/><block var="h"/><l>245</l><l>245</l><l>245</l></custom-block><custom-block s="get ranges for PlotPad %txt %br from %s with border %n"><l>thisSprite</l><block var="SciSnap!Data"/><l>0.07</l></custom-block><custom-block s="set pretty ranges on PlotPad %txt"><l>thisSprite</l></custom-block><custom-block s="set PlotPad labels on %s to %br title: %txt titleheight: %n %br x-label: %txt xLabelheight: %n %br y-label: %txt yLabelheight: %n"><l>thisSprite</l><block var="title"/><l>18</l><block var="xlab"/><l>16</l><block var="ylab"/><l>16</l></custom-block><custom-block s="set PlotPad line properties style: %txt %br width: %n color: %n %n %n on %txt"><block var="lstyle"/><l>1</l><l>0</l><l>0</l><l>0</l><l>thisSprite</l></custom-block><custom-block s="set PlotPad marker properties style: %txt width: %n %br color: %n %n %n connected? %b on %txt"><block var="mstyle"/><l>5</l><block var="r"/><block var="g"/><block var="b"/><l><bool>true</bool></l><l>thisSprite</l></custom-block><custom-block s="add dataplot of numeric data: %s to PlotPad %txt"><block var="SciSnap!Data"/><l>thisSprite</l></custom-block><custom-block s="add axes and scales to PlotPad %txt"><l>thisSprite</l></custom-block></script></block-definition><block-definition s="EXAMPLE 2: $nl Histogram of random data width %'w' height %'h' $nl title %'title' labels %'xlab' %'ylab' line %'lstyle' color %'r' %'g' %'b'" type="command" category="5. PlotPad for data plots"><header></header><code></code><translations></translations><inputs><input type="%n">400</input><input type="%n">300</input><input type="%txt"></input><input type="%txt">x</input><input type="%txt">y</input><input type="%txt">continuous</input><input type="%n">0</input><input type="%n">0</input><input type="%n">0</input></inputs><script><custom-block s="import %s from %br %s to SciSnap!Data"><l>table-(CSV)-data</l><custom-block s="%s %s of %s with first item? %b"><l>column</l><l>1</l><custom-block s="%n random points near %repRing %br between %n and %n range %n"><l>500</l><block s="reifyReporter"><autolambda><block s="reportDifference"><block s="reportPower"><l></l><l>3</l></block><l></l></block></autolambda><list></list></block><l>-5</l><l>5</l><l>2</l></custom-block><l><bool>true</bool></l></custom-block></custom-block><custom-block s="configure %txt as a PlotPad width: %n %br height: %n color: %n %n %n"><l>thisSprite</l><block var="w"/><block var="h"/><l>245</l><l>245</l><l>245</l></custom-block><custom-block s="set PlotPad labels on %s to %br title: %txt titleheight: %n %br x-label: %txt xLabelheight: %n %br y-label: %txt yLabelheight: %n"><l>thisSprite</l><block var="title"/><l>18</l><block var="xlab"/><l>16</l><block var="ylab"/><l>16</l></custom-block><custom-block s="add histogram of %s with %n groups %br pretty formated? %b to PlotPad %txt"><block var="SciSnap!Data"/><l>10</l><l><bool>true</bool></l><l>thisSprite</l></custom-block><custom-block s="add axes and scales to PlotPad %txt"><l>thisSprite</l></custom-block></script></block-definition><block-definition s="Example 3: $nl Simple plot of data: %'data' $nl x: %'x' y: %'y' width: %'w' height: %'h' $nl title: %'t' labels: %'xlab' %'ylab' $nl line: %'l' marker: %'m' color: %'r' %'g' %'b'" type="command" category="5. PlotPad for data plots"><header></header><code></code><translations></translations><inputs><input type="%l"></input><input type="%n">0</input><input type="%n">0</input><input type="%n">600</input><input type="%n">400</input><input type="%s"></input><input type="%s"></input><input type="%s"></input><input type="%txt" readonly="true">continuous<options>none
continuous
dashed
dash-dot
dot-dot
rainbow
inverse rainbow</options></input><input type="%txt" readonly="true">square<options>none
o_circle
._point
+_plus
x_ex
square
triangle</options></input><input type="%n">0</input><input type="%n">0</input><input type="%n">0</input></inputs><script><custom-block s="configure %txt as a PlotPad width: %n %br height: %n color: %n %n %n"><l>thisSprite</l><block var="w"/><block var="h"/><l>245</l><l>245</l><l>245</l></custom-block><block s="gotoXY"><block var="x"/><block var="y"/></block><custom-block s="get ranges for PlotPad %txt %br from %s with border %n"><l>thisSprite</l><block var="data"/><l>0.07</l></custom-block><custom-block s="set pretty ranges on PlotPad %txt"><l>thisSprite</l></custom-block><custom-block s="set PlotPad labels on %s to %br title: %txt titleheight: %n %br x-label: %txt xLabelheight: %n %br y-label: %txt yLabelheight: %n"><l>thisSprite</l><block var="t"/><l>18</l><block var="xlab"/><l>16</l><block var="ylab"/><l>16</l></custom-block><custom-block s="set PlotPad line properties style: %txt %br width: %n color: %n %n %n on %txt"><block var="l"/><l>1</l><block var="r"/><block var="g"/><block var="b"/><l>thisSprite</l></custom-block><custom-block s="set PlotPad marker properties style: %txt width: %n %br color: %n %n %n connected? %b on %txt"><block var="m"/><l>5</l><block var="r"/><block var="g"/><block var="b"/><l><bool>true</bool></l><l>thisSprite</l></custom-block><custom-block s="add axes and scales to PlotPad %txt"><l>thisSprite</l></custom-block><custom-block s="add dataplot of numeric data: %s to PlotPad %txt"><block var="data"/><l>thisSprite</l></custom-block></script></block-definition><block-definition s="Switch to SciSnap! logo" type="command" category="1. SciSnap! globals"><comment x="0" y="0" w="138.33333333333334" collapsed="false">Changes the Snap!-Logo. ;-)</comment><header></header><code></code><translations></translations><inputs></inputs><script><block s="doApplyExtension"><l>SciS_SetSciSnapLogo()</l><list></list></block></script></block-definition><block-definition s="configure SQL" type="command" category="4. SQL tools"><comment x="0" y="0" w="231.26365661621094" collapsed="false">Creates SQL variables and sets some properties.</comment><header></header><code></code><translations></translations><inputs></inputs><script><block s="doWarp"><script><block s="doApplyExtension"><l>var_declare(scope, name)</l><list><l>global</l><l>SQLData</l></list></block><block s="doSetVar"><l>SQLData</l><block s="reportNewList"><list></list></block></block><custom-block s="set SciSnap! global property %s to %s"><l>typeOfConfiguration</l><l>SQL</l></custom-block><custom-block s="set SciSnap! global property %s to %s"><l>typeOfData</l><l>none</l></custom-block><custom-block s="set SciSnap! global property %s to %s"><l>connection</l><l></l></custom-block><custom-block s="set SciSnap! global property %s to %s"><l>connected</l><block s="reportBoolean"><l><bool>false</bool></l></block></custom-block><custom-block s="set SciSnap! global property %s to %s"><l>databases</l><block s="reportNewList"><list></list></block></custom-block><custom-block s="set SciSnap! global property %s to %s"><l>currentDatabase</l><l></l></custom-block><custom-block s="set SciSnap! global property %s to %s"><l>tables</l><block s="reportNewList"><list></list></block></custom-block><custom-block s="set SciSnap! global property %s to %s"><l>currentTable</l><l></l></custom-block><custom-block s="set SciSnap! global property %s to %s"><l>attributes</l><block s="reportNewList"><list></list></block></custom-block><custom-block s="set SciSnap! global property %s to %s"><l>columns</l><l>0</l></custom-block><custom-block s="set SciSnap! global property %s to %s"><l>rows</l><l>0</l></custom-block><custom-block s="set SciSnap! global property %s to %s"><l>minValue</l><l>notSet</l></custom-block><custom-block s="set SciSnap! global property %s to %s"><l>maxValue</l><l>notSet</l></custom-block><block s="doSwitchToCostume"><l>SQLDisconnected</l></block></script></block></script></block-definition><block-definition s="is SQL configured?" type="predicate" category="4. SQL tools"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="reportAskFor"><block s="reportObject"><l><option>myself</option></l></block><block s="reifyReporter"><autolambda><custom-block s="is the global %b property %txt %br with value %s present ?"><l><bool>true</bool></l><l>typeOfConfiguration</l><l>SQL</l></custom-block></autolambda><list></list></block><list></list></block></block></script></block-definition><block-definition s="connect to database server" type="command" category="4. SQL tools"><comment x="0" y="0" w="180.18768601190536" collapsed="false">Establishes connection and sets the corresponding properties. Change parameters if necessary. </comment><header></header><code></code><translations></translations><inputs></inputs><script><block s="doDeclareVariables"><list><l>dbs</l></list></block><block s="doWarp"><script><block s="doIf"><block s="reportNot"><custom-block s="is SQL configured?"></custom-block></block><script><custom-block s="report SciSnap! error %txt"><l>ERROR: please configure SciSnap! for SQL first!</l></custom-block><block s="doStopThis"><l><option>this block</option></l></block></script></block><custom-block s="set SciSnap! global property %s to %s"><l>connection</l><l>https://snapextensions.uni-goettingen.de/mysqlquery.php?server=db1&user=snapexuser&password=snap!user</l></custom-block><block s="doIfElse"><block s="reportEquals"><custom-block s="substring of %txt from %n to %n"><block s="reportURL"><block s="reportJoinWords"><list><custom-block s="SciSnap! global property %s"><l>connection</l></custom-block><l>&type=connect</l></list></block></block><l>1</l><l>2</l></custom-block><l>ok</l></block><script><custom-block s="set SciSnap! global property %s to %s"><l>connected</l><block s="reportBoolean"><l><bool>true</bool></l></block></custom-block><block s="doSwitchToCostume"><l>SQLConnected</l></block><block s="doSetVar"><l>dbs</l><block s="reportTextSplit"><block s="reportURL"><block s="reportJoinWords"><list><custom-block s="SciSnap! global property %s"><l>connection</l></custom-block><l>&type=getDBs</l></list></block></block><l><option>line</option></l></block></block><block s="doUntil"><block s="reportOr"><block s="reportEquals"><block s="reportListAttribute"><l><option>length</option></l><block var="dbs"/></block><l>0</l></block><block s="reportGreaterThan"><block s="reportStringSize"><block s="reportListItem"><l><option>last</option></l><block var="dbs"/></block></block><l>0</l></block></block><script><block s="doDeleteFromList"><l><option>last</option></l><block var="dbs"/></block></script></block><block s="doIfElse"><block s="reportOr"><block s="reportEquals"><block s="reportListAttribute"><l><option>length</option></l><block var="dbs"/></block><l>0</l></block><block s="reportEquals"><custom-block s="substring of %txt from %n to %n"><block s="reportListItem"><l>1</l><block var="dbs"/></block><l>1</l><l>5</l></custom-block><l>ERROR</l></block></block><script><custom-block s="set SciSnap! global property %s to %s"><l>databases</l><block s="reportNewList"><list></list></block></custom-block></script><script><custom-block s="set SciSnap! global property %s to %s"><l>databases</l><block var="dbs"/></custom-block><block s="doSwitchToCostume"><l>SQLConnected</l></block></script></block></script><script><custom-block s="set SciSnap! global property %s to %s"><l>connected</l><block s="reportBoolean"><l><bool>false</bool></l></block></custom-block><block s="doSwitchToCostume"><l>SQLDisconnected</l></block></script></block></script></block></script></block-definition><block-definition s="import SQL-data from %'source' to SQLData" type="command" category="4. SQL tools"><comment x="0" y="0" w="135.83333333333334" collapsed="false">Imports the results of an SQL-query to SQLData and sets the corresponding properties.</comment><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doWarp"><script><block s="doIf"><block s="reportNot"><custom-block s="is SQL configured?"></custom-block></block><script><custom-block s="report SciSnap! error %txt"><l>ERROR: please configure SciSnap! for SQL first!</l></custom-block><block s="doStopThis"><l><option>this block</option></l></block></script></block><block s="doIfElse"><block s="reportIsA"><block var="source"/><l><option>list</option></l></block><script><block s="doSetVar"><l>SQLData</l><block s="reportNewList"><list></list></block></block><block s="doFor"><l>i</l><l>1</l><block s="reportListAttribute"><l><option>length</option></l><block var="source"/></block><script><block s="doAddToList"><block s="reportTextSplit"><block s="reportListItem"><block var="i"/><block var="source"/></block><l>,</l></block><block var="SQLData"/></block></script></block><custom-block s="set SciSnap! global property %s to %s"><l>typeOfData</l><l>table</l></custom-block><block s="doIfElse"><block s="reportEquals"><block s="reportListAttribute"><l><option>length</option></l><block var="SQLData"/></block><l>0</l></block><script><custom-block s="set SciSnap! global property %s to %s"><l>columns</l><l>0</l></custom-block><custom-block s="set SciSnap! global property %s to %s"><l>rows</l><l>0</l></custom-block></script><script><custom-block s="set SciSnap! global property %s to %s"><l>rows</l><block s="reportListAttribute"><l><option>length</option></l><block var="SQLData"/></block></custom-block><block s="doIfElse"><block s="reportIsA"><block s="reportListItem"><l>1</l><block var="SQLData"/></block><l><option>list</option></l></block><script><custom-block s="set SciSnap! global property %s to %s"><l>columns</l><block s="reportListAttribute"><l><option>length</option></l><block s="reportListItem"><l>1</l><block var="SQLData"/></block></block></custom-block></script><script><custom-block s="set SciSnap! global property %s to %s"><l>columns</l><l>1</l></custom-block></script></block></script></block><custom-block s="set SciSnap! global property %s to %s"><l>minValue</l><l>notSet</l></custom-block><custom-block s="set SciSnap! global property %s to %s"><l>maxValue</l><l>notSet</l></custom-block></script><script><custom-block s="report SciSnap! error %txt"><l>ERROR: only import from lists</l></custom-block></script></block></script></block></script></block-definition><block-definition s="read databases" type="reporter" category="4. SQL tools"><comment x="0" y="0" w="220.66666666666663" collapsed="false">Reports a list of databases on the server and sets the corresponding properties.</comment><header></header><code></code><translations></translations><inputs></inputs><script><block s="doDeclareVariables"><list><l>dbs</l></list></block><block s="doWarp"><script><block s="doIf"><block s="reportNot"><custom-block s="is SQL configured?"></custom-block></block><script><block s="doReport"><l>ERROR: SQL isn't configured yet!</l></block></script></block><block s="doSetVar"><l>dbs</l><block s="reportTextSplit"><block s="reportURL"><block s="reportJoinWords"><list><custom-block s="SciSnap! global property %s"><l>connection</l></custom-block><l>&type=getDBs</l></list></block></block><l><option>line</option></l></block></block><block s="doUntil"><block s="reportOr"><block s="reportEquals"><block s="reportListAttribute"><l><option>length</option></l><block var="dbs"/></block><l>0</l></block><block s="reportGreaterThan"><block s="reportStringSize"><block s="reportListItem"><l><option>last</option></l><block var="dbs"/></block></block><l>0</l></block></block><script><block s="doDeleteFromList"><l><option>last</option></l><block var="dbs"/></block></script></block><block s="doIfElse"><block s="reportOr"><block s="reportEquals"><block s="reportListAttribute"><l><option>length</option></l><block var="dbs"/></block><l>0</l></block><block s="reportEquals"><custom-block s="substring of %txt from %n to %n"><block s="reportListItem"><l>1</l><block var="dbs"/></block><l>1</l><l>5</l></custom-block><l>ERROR</l></block></block><script><custom-block s="set SciSnap! global property %s to %s"><l>databases</l><block s="reportNewList"><list></list></block></custom-block><block s="doReport"><l>ERROR: reading of databases has failed!</l></block></script><script><custom-block s="set SciSnap! global property %s to %s"><l>databases</l><block var="dbs"/></custom-block><block s="doReport"><block var="dbs"/></block></script></block></script></block></script></block-definition><block-definition s="choose database no. %'n'" type="command" category="4. SQL tools"><comment x="0" y="0" w="182.40882873535156" collapsed="false">Selects one of the databases and sets the corresponding properties.</comment><header></header><code></code><translations></translations><inputs><input type="%n">2</input></inputs><script><block s="doDeclareVariables"><list><l>tables</l><l>result</l></list></block><block s="doWarp"><script><block s="doIf"><block s="reportNot"><custom-block s="is SQL configured?"></custom-block></block><script><custom-block s="report SciSnap! error %txt"><l>ERROR: please configure SciSnap! for SQL first!</l></custom-block><block s="doStopThis"><l><option>this block</option></l></block></script></block><block s="doIf"><block s="reportGreaterThan"><block var="n"/><block s="reportListAttribute"><l><option>length</option></l><custom-block s="SciSnap! global property %s"><l>databases</l></custom-block></block></block><script><custom-block s="report SciSnap! error %txt"><l>ERROR: index out of range!</l></custom-block><block s="doStopThis"><l><option>this block</option></l></block></script></block><custom-block s="set SciSnap! global property %s to %s"><l>currentDatabase</l><block s="reportListItem"><block var="n"/><custom-block s="SciSnap! global property %s"><l>databases</l></custom-block></block></custom-block><block s="doSetVar"><l>result</l><block s="reportURL"><block s="reportJoinWords"><list><custom-block s="SciSnap! global property %s"><l>connection</l></custom-block><l>&command=</l><block s="reportJoinWords"><list><l>USE </l><custom-block s="SciSnap! global property %s"><l>currentDatabase</l></custom-block></list></block></list></block></block></block><custom-block s="set SciSnap! global property %s to %s"><l>tables</l><block s="reportNewList"><list></list></block></custom-block><block s="doSetVar"><l>tables</l><block s="reportTextSplit"><block s="reportURL"><block s="reportJoinWords"><list><custom-block s="SciSnap! global property %s"><l>connection</l></custom-block><l>&command=</l><block s="reportJoinWords"><list><l>SHOW TABLES FROM </l><custom-block s="SciSnap! global property %s"><l>currentDatabase</l></custom-block><l>&type=getTables</l></list></block></list></block></block><l><option>line</option></l></block></block><block s="doUntil"><block s="reportOr"><block s="reportEquals"><block s="reportListAttribute"><l><option>length</option></l><block var="tables"/></block><l>0</l></block><block s="reportGreaterThan"><block s="reportStringSize"><block s="reportListItem"><l><option>last</option></l><block var="tables"/></block></block><l>0</l></block></block><script><block s="doDeleteFromList"><l><option>last</option></l><block var="tables"/></block></script></block><block s="doIfElse"><block s="reportOr"><block s="reportEquals"><block s="reportListAttribute"><l><option>length</option></l><block var="tables"/></block><l>0</l></block><block s="reportEquals"><custom-block s="substring of %txt from %n to %n"><block s="reportListItem"><l>1</l><block var="tables"/></block><l>1</l><l>5</l></custom-block><l>ERROR</l></block></block><script><custom-block s="report SciSnap! error %txt"><l>ERROR: no tables accessable!</l></custom-block><custom-block s="set SciSnap! global property %s to %s"><l>tables</l><block s="reportNewList"><list></list></block></custom-block></script><script><custom-block s="set SciSnap! global property %s to %s"><l>tables</l><block var="tables"/></custom-block></script></block></script></block></script></block-definition><block-definition s="read tables" type="reporter" category="4. SQL tools"><comment x="0" y="0" w="392.7626953124997" collapsed="false">Reports a list of tables of the chosen database and sets the corresponding properties.</comment><header></header><code></code><translations></translations><inputs></inputs><script><block s="doDeclareVariables"><list><l>tbls</l></list></block><block s="doWarp"><script><block s="doIf"><block s="reportNot"><custom-block s="is SQL configured?"></custom-block></block><script><block s="doReport"><l>ERROR: SQL isn't configured yet!</l></block></script></block><block s="doSetVar"><l>tbls</l><block s="reportTextSplit"><block s="reportURL"><block s="reportJoinWords"><list><custom-block s="SciSnap! global property %s"><l>connection</l></custom-block><l>&command=</l><block s="reportJoinWords"><list><l>SHOW TABLES FROM </l><custom-block s="SciSnap! global property %s"><l>currentDatabase</l></custom-block><l>&type=getTables</l></list></block></list></block></block><l><option>line</option></l></block></block><block s="doUntil"><block s="reportOr"><block s="reportEquals"><block s="reportListAttribute"><l><option>length</option></l><block var="tbls"/></block><l>0</l></block><block s="reportGreaterThan"><block s="reportStringSize"><block s="reportListItem"><l><option>last</option></l><block var="tbls"/></block></block><l>0</l></block></block><script><block s="doDeleteFromList"><l><option>last</option></l><block var="tbls"/></block></script></block><block s="doIfElse"><block s="reportOr"><block s="reportEquals"><block s="reportListAttribute"><l><option>length</option></l><block var="tbls"/></block><l>0</l></block><block s="reportEquals"><custom-block s="substring of %txt from %n to %n"><block s="reportListItem"><l>1</l><block var="tbls"/></block><l>1</l><l>5</l></custom-block><l>ERROR</l></block></block><script><custom-block s="set SciSnap! global property %s to %s"><l>tables</l><block s="reportNewList"><list></list></block></custom-block><block s="doReport"><l>ERROR: no tables accessable!</l></block></script><script><custom-block s="set SciSnap! global property %s to %s"><l>tables</l><block var="tbls"/></custom-block></script></block><block s="doReport"><block var="tbls"/></block></script></block></script></block-definition><block-definition s="attributes of table no. %'n'" type="reporter" category="4. SQL tools"><comment x="0" y="0" w="213.8619791666667" collapsed="false">Reads the attributes of the specified table and sets the corresponding properties.</comment><header></header><code></code><translations></translations><inputs><input type="%n">1</input></inputs><script><block s="doDeclareVariables"><list><l>clmns</l></list></block><block s="doWarp"><script><block s="doIf"><block s="reportNot"><custom-block s="is SQL configured?"></custom-block></block><script><block s="doReport"><l>ERROR: SQL isn't configured yet!</l></block></script></block><block s="doIfElse"><block s="reportGreaterThan"><block var="n"/><block s="reportListAttribute"><l><option>length</option></l><custom-block s="SciSnap! global property %s"><l>databases</l></custom-block></block></block><script><block s="doReport"><l>ERROR: table doesn't exist!</l></block></script><script><block s="doSetVar"><l>clmns</l><block s="reportTextSplit"><block s="reportURL"><block s="reportJoinWords"><list><custom-block s="SciSnap! global property %s"><l>connection</l></custom-block><l>&command=</l><block s="reportJoinWords"><list><l>SHOW COLUMNS FROM </l><block s="reportListItem"><block var="n"/><custom-block s="SciSnap! global property %s"><l>tables</l></custom-block></block></list></block><l>&type=getColumns&database=</l><custom-block s="SciSnap! global property %s"><l>currentDatabase</l></custom-block></list></block></block><l><option>line</option></l></block></block><block s="doUntil"><block s="reportNot"><block s="reportEquals"><block s="reportListItem"><l><option>last</option></l><block var="clmns"/></block><l></l></block></block><script><block s="doDeleteFromList"><l><option>last</option></l><block var="clmns"/></block></script></block><block s="doIfElse"><block s="reportOr"><block s="reportEquals"><block s="reportListAttribute"><l><option>length</option></l><block var="clmns"/></block><l>0</l></block><block s="reportEquals"><custom-block s="substring of %txt from %n to %n"><block s="reportListItem"><l>1</l><block var="clmns"/></block><l>1</l><l>5</l></custom-block><l>ERROR</l></block></block><script><custom-block s="set SciSnap! global property %s to %s"><l>attributes</l><block s="reportNewList"><list></list></block></custom-block><block s="doReport"><l>ERROR: reading of attributes has failed!</l></block></script><script><custom-block s="set SciSnap! global property %s to %s"><l>attributes</l><block var="clmns"/></custom-block></script></block><block s="doReport"><block var="clmns"/></block></script></block></script></block></script></block-definition><block-definition s="choose table no. %'n'" type="command" category="4. SQL tools"><comment x="0" y="0" w="163.10389383951835" collapsed="false">Selects one of the tables and sets the corresponding properties.</comment><header></header><code></code><translations></translations><inputs><input type="%n">1</input></inputs><script><block s="doDeclareVariables"><list><l>clmns</l></list></block><block s="doWarp"><script><block s="doIf"><block s="reportNot"><custom-block s="is SQL configured?"></custom-block></block><script><custom-block s="report SciSnap! error %txt"><l>ERROR: please configure SciSnap! for SQL first!</l></custom-block><block s="doStopThis"><l><option>this block</option></l></block></script></block><block s="doIfElse"><block s="reportNot"><block s="reportGreaterThan"><block var="n"/><block s="reportListAttribute"><l><option>length</option></l><custom-block s="SciSnap! global property %s"><l>tables</l></custom-block></block></block></block><script><custom-block s="set SciSnap! global property %s to %s"><l>currentTable</l><block s="reportListItem"><block var="n"/><custom-block s="SciSnap! global property %s"><l>tables</l></custom-block></block></custom-block><custom-block s="set SciSnap! global property %s to %s"><l>attributes</l><block s="reportNewList"><list></list></block></custom-block><block s="doSetVar"><l>clmns</l><block s="reportTextSplit"><block s="reportURL"><block s="reportJoinWords"><list><custom-block s="SciSnap! global property %s"><l>connection</l></custom-block><l>&command=</l><block s="reportJoinWords"><list><l>SHOW COLUMNS FROM </l><block s="reportListItem"><block var="n"/><custom-block s="SciSnap! global property %s"><l>tables</l></custom-block></block></list></block><l>&type=getColumns&database=</l><custom-block s="SciSnap! global property %s"><l>currentDatabase</l></custom-block></list></block></block><l><option>line</option></l></block></block><block s="doUntil"><block s="reportNot"><block s="reportEquals"><block s="reportListItem"><l><option>last</option></l><block var="clmns"/></block><l></l></block></block><script><block s="doDeleteFromList"><l><option>last</option></l><block var="clmns"/></block></script></block><block s="doIfElse"><block s="reportOr"><block s="reportEquals"><block s="reportListAttribute"><l><option>length</option></l><block var="clmns"/></block><l>0</l></block><block s="reportEquals"><custom-block s="substring of %txt from %n to %n"><block s="reportListItem"><l>1</l><block var="clmns"/></block><l>1</l><l>5</l></custom-block><l>ERROR</l></block></block><script><custom-block s="set SciSnap! global property %s to %s"><l>attributes</l><block s="reportNewList"><list></list></block></custom-block><custom-block s="report SciSnap! error %txt"><l>ERROR: table not accessable!</l></custom-block></script><script><custom-block s="set SciSnap! global property %s to %s"><l>attributes</l><block var="clmns"/></custom-block></script></block></script><script><custom-block s="set SciSnap! global property %s to %s"><l>currentTable</l><block s="reportNewList"><list></list></block></custom-block><custom-block s="report SciSnap! error %txt"><l>ERROR: table not accessable!</l></custom-block></script></block></script></block></script></block-definition><block-definition s="SELECT %'what' %'attribs' FROM %'mytables' WHERE %'cond'" type="reporter" category="4. SQL tools"><comment x="0" y="0" w="174.16666666666669" collapsed="false">Generates a simplified SQL query.</comment><header></header><code></code><translations></translations><inputs><input type="%s"><options>*
DISTINCT</options></input><input type="%mult%txt"></input><input type="%mult%txt"></input><input type="%b"></input></inputs><script><block s="doDeclareVariables"><list><l>result</l><l>i</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>result</l><l>SELECT </l></block><block s="doIfElse"><block s="reportEquals"><block var="what"/><l>*</l></block><script><block s="doSetVar"><l>result</l><block s="reportJoinWords"><list><block var="result"/><l>* FROM </l></list></block></block></script><script><block s="doIf"><block s="reportEquals"><block var="what"/><l>DISTINCT</l></block><script><block s="doSetVar"><l>result</l><block s="reportJoinWords"><list><block var="result"/><l>DISTINCT </l></list></block></block></script></block><block s="doSetVar"><l>i</l><l>1</l></block><block s="doUntil"><block s="reportGreaterThan"><block var="i"/><block s="reportDifference"><block s="reportListAttribute"><l><option>length</option></l><block var="attribs"/></block><l>1</l></block></block><script><block s="doSetVar"><l>result</l><block s="reportJoinWords"><list><block var="result"/><block s="reportListItem"><block var="i"/><block var="attribs"/></block><l>,</l></list></block></block><block s="doChangeVar"><l>i</l><l>1</l></block></script></block><block s="doSetVar"><l>result</l><block s="reportJoinWords"><list><block var="result"/><block s="reportListItem"><block var="i"/><block var="attribs"/></block><l> FROM </l></list></block></block></script></block><block s="doIfElse"><block s="reportEquals"><block s="reportListAttribute"><l><option>length</option></l><block var="mytables"/></block><l>0</l></block><script><block s="doReport"><l>ERROR: tables missing!</l></block></script><script><block s="doSetVar"><l>i</l><l>1</l></block><block s="doUntil"><block s="reportGreaterThan"><block var="i"/><block s="reportDifference"><block s="reportListAttribute"><l><option>length</option></l><block var="mytables"/></block><l>1</l></block></block><script><block s="doSetVar"><l>result</l><block s="reportJoinWords"><list><block var="result"/><block s="reportListItem"><block var="i"/><block var="mytables"/></block><l>,</l></list></block></block><block s="doChangeVar"><l>i</l><l>1</l></block></script></block><block s="doSetVar"><l>result</l><block s="reportJoinWords"><list><block var="result"/><block s="reportListItem"><block var="i"/><block var="mytables"/></block></list></block></block></script></block><block s="doIfElse"><block s="reportLessThan"><block s="reportStringSize"><block var="cond"/></block><l>2</l></block><script><block s="doReport"><block var="result"/></block></script><script><block s="doReport"><block s="reportJoinWords"><list><block var="result"/><l> WHERE </l><block var="cond"/></list></block></block></script></block></script></block></script></block-definition><block-definition s="SELECT %'what' %'attribs' FROM %'mytables' WHERE %'cond' $nl GROUP BY %'groupattribs' HAVING %'havcond' ORDER BY %'orderatts' %'how' LIMIT %'n'" type="reporter" category="4. SQL tools"><comment x="0" y="0" w="104.16666666666667" collapsed="false">Generates an almost complete SQL query.</comment><header></header><code></code><translations></translations><inputs><input type="%s"><options>*
DISTINCT</options></input><input type="%mult%txt"></input><input type="%mult%txt"></input><input type="%b"></input><input type="%mult%txt"></input><input type="%b"></input><input type="%mult%txt"></input><input type="%txt" readonly="true">ASC<options>ASC
DESC</options></input><input type="%n">10</input></inputs><script><block s="doDeclareVariables"><list><l>result</l><l>i</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>result</l><l>SELECT </l></block><block s="doIfElse"><block s="reportEquals"><block var="what"/><l>*</l></block><script><block s="doSetVar"><l>result</l><block s="reportJoinWords"><list><block var="result"/><l>* FROM </l></list></block></block></script><script><block s="doIf"><block s="reportEquals"><block var="what"/><l>DISTINCT</l></block><script><block s="doSetVar"><l>result</l><block s="reportJoinWords"><list><block var="result"/><l>DISTINCT </l></list></block></block></script></block><block s="doSetVar"><l>i</l><l>1</l></block><block s="doUntil"><block s="reportGreaterThan"><block var="i"/><block s="reportDifference"><block s="reportListAttribute"><l><option>length</option></l><block var="attribs"/></block><l>1</l></block></block><script><block s="doSetVar"><l>result</l><block s="reportJoinWords"><list><block var="result"/><block s="reportListItem"><block var="i"/><block var="attribs"/></block><l>,</l></list></block></block><block s="doChangeVar"><l>i</l><l>1</l></block></script></block><block s="doSetVar"><l>result</l><block s="reportJoinWords"><list><block var="result"/><block s="reportListItem"><block var="i"/><block var="attribs"/></block><l> FROM </l></list></block></block></script></block><block s="doIfElse"><block s="reportEquals"><block s="reportListAttribute"><l><option>length</option></l><block var="mytables"/></block><l>0</l></block><script><block s="doReport"><l>ERROR: tables missing!</l></block></script><script><block s="doSetVar"><l>i</l><l>1</l></block><block s="doUntil"><block s="reportGreaterThan"><block var="i"/><block s="reportDifference"><block s="reportListAttribute"><l><option>length</option></l><block var="mytables"/></block><l>1</l></block></block><script><block s="doSetVar"><l>result</l><block s="reportJoinWords"><list><block var="result"/><block s="reportListItem"><block var="i"/><block var="mytables"/></block><l>,</l></list></block></block><block s="doChangeVar"><l>i</l><l>1</l></block></script></block><block s="doSetVar"><l>result</l><block s="reportJoinWords"><list><block var="result"/><block s="reportListItem"><block var="i"/><block var="mytables"/></block></list></block></block></script></block><block s="doIf"><block s="reportGreaterThan"><block s="reportStringSize"><block var="cond"/></block><l>2</l></block><script><block s="doSetVar"><l>result</l><block s="reportJoinWords"><list><block var="result"/><l> WHERE </l><block var="cond"/></list></block></block></script></block><block s="doIf"><block s="reportGreaterThan"><block s="reportListAttribute"><l><option>length</option></l><block var="groupattribs"/></block><l>0</l></block><script><block s="doSetVar"><l>result</l><block s="reportJoinWords"><list><block var="result"/><l> GROUP BY </l></list></block></block><block s="doSetVar"><l>i</l><l>1</l></block><block s="doUntil"><block s="reportGreaterThan"><block var="i"/><block s="reportDifference"><block s="reportListAttribute"><l><option>length</option></l><block var="groupattribs"/></block><l>1</l></block></block><script><block s="doSetVar"><l>result</l><block s="reportJoinWords"><list><block var="result"/><block s="reportListItem"><block var="i"/><block var="groupattribs"/></block><l>,</l></list></block></block><block s="doChangeVar"><l>i</l><l>1</l></block></script></block><block s="doSetVar"><l>result</l><block s="reportJoinWords"><list><block var="result"/><block s="reportListItem"><block var="i"/><block var="groupattribs"/></block></list></block></block></script></block><block s="doIf"><block s="reportGreaterThan"><block s="reportStringSize"><block var="havcond"/></block><l>2</l></block><script><block s="doSetVar"><l>result</l><block s="reportJoinWords"><list><block var="result"/><l> HAVING </l><block var="havcond"/></list></block></block></script></block><block s="doIf"><block s="reportGreaterThan"><block s="reportListAttribute"><l><option>length</option></l><block var="orderatts"/></block><l>0</l></block><script><block s="doSetVar"><l>result</l><block s="reportJoinWords"><list><block var="result"/><l> ORDER BY </l></list></block></block><block s="doSetVar"><l>i</l><l>1</l></block><block s="doUntil"><block s="reportGreaterThan"><block var="i"/><block s="reportDifference"><block s="reportListAttribute"><l><option>length</option></l><block var="orderatts"/></block><l>1</l></block></block><script><block s="doSetVar"><l>result</l><block s="reportJoinWords"><list><block var="result"/><block s="reportListItem"><block var="i"/><block var="orderatts"/></block><l>,</l></list></block></block><block s="doChangeVar"><l>i</l><l>1</l></block></script></block><block s="doSetVar"><l>result</l><block s="reportJoinWords"><list><block var="result"/><block s="reportListItem"><block var="i"/><block var="orderatts"/></block></list></block></block><block s="doIfElse"><block s="reportEquals"><block var="how"/><l>ASC</l></block><script><block s="doSetVar"><l>result</l><block s="reportJoinWords"><list><block var="result"/><l> ASC</l></list></block></block></script><script><block s="doIf"><block s="reportEquals"><block var="how"/><l>DESC</l></block><script><block s="doSetVar"><l>result</l><block s="reportJoinWords"><list><block var="result"/><l> DESC</l></list></block></block></script></block></script></block><block s="doIf"><block s="reportIsA"><block var="n"/><l><option>number</option></l></block><script><block s="doIf"><block s="reportGreaterThan"><block var="n"/><l>0</l></block><script><block s="doSetVar"><l>result</l><block s="reportJoinWords"><list><block var="result"/><l> LIMIT </l><block var="n"/></list></block></block></script></block></script></block></script></block><block s="doReport"><block var="result"/></block></script></block></script></block-definition><block-definition s="exec SQL-command %'query'" type="reporter" category="4. SQL tools"><comment x="0" y="0" w="113.33333333333334" collapsed="false">Executes an SQL query.</comment><header></header><code></code><translations></translations><inputs><input type="%txt"></input></inputs><script><block s="doDeclareVariables"><list><l>result</l></list></block><block s="doWarp"><script><block s="doIf"><block s="reportNot"><custom-block s="is SQL configured?"></custom-block></block><script><block s="doReport"><l>ERROR: SQL isn't configured yet!</l></block></script></block><block s="doIfElse"><block s="reportEquals"><block s="reportListItem"><l>1</l><block s="reportTextSplit"><block var="query"/><l>:</l></block></block><l>ERROR</l></block><script><block s="doReport"><block var="query"/></block></script><script><block s="doSetVar"><l>result</l><block s="reportTextSplit"><block s="reportURL"><block s="reportJoinWords"><list><custom-block s="SciSnap! global property %s"><l>connection</l></custom-block><l>&type=query&query=</l><block var="query"/><l>&database=</l><custom-block s="SciSnap! global property %s"><l>currentDatabase</l></custom-block></list></block></block><l><option>line</option></l></block></block></script></block><block s="doUntil"><block s="reportNot"><block s="reportEquals"><block s="reportListItem"><l><option>last</option></l><block var="result"/></block><l></l></block></block><script><block s="doDeleteFromList"><l><option>last</option></l><block var="result"/></block></script></block><block s="doReport"><block var="result"/></block></script></block></script></block-definition><block-definition s="%'a' = %'b'" type="predicate" category="4. SQL tools"><comment x="0" y="0" w="125.83333333333334" collapsed="false">Returns an SQL predicate.</comment><header></header><code></code><translations></translations><inputs><input type="%txt"></input><input type="%txt"></input></inputs><script><block s="doReport"><block s="reportJoinWords"><list><block var="a"/><l> = </l><block var="b"/></list></block></block></script></block-definition><block-definition s="%'a' < %'b'" type="predicate" category="4. SQL tools"><comment x="0" y="0" w="125.83333333333334" collapsed="false">Returns an SQL predicate.</comment><header></header><code></code><translations></translations><inputs><input type="%txt"></input><input type="%txt"></input></inputs><script><block s="doReport"><block s="reportJoinWords"><list><block var="a"/><l> < </l><block var="b"/></list></block></block></script></block-definition><block-definition s="%'a' > %'b'" type="predicate" category="4. SQL tools"><comment x="0" y="0" w="127.5" collapsed="false">Returns an SQL predicate.</comment><header></header><code></code><translations></translations><inputs><input type="%txt"></input><input type="%txt"></input></inputs><script><block s="doReport"><block s="reportJoinWords"><list><block var="a"/><l> > </l><block var="b"/></list></block></block></script></block-definition><block-definition s="%'a' OR %'b'" type="predicate" category="4. SQL tools"><comment x="0" y="0" w="124.16666666666667" collapsed="false">Returns an SQL predicate.</comment><header></header><code></code><translations></translations><inputs><input type="%txt"></input><input type="%txt"></input></inputs><script><block s="doReport"><block s="reportJoinWords"><list><block var="a"/><l> OR </l><block var="b"/></list></block></block></script></block-definition><block-definition s="%'a' AND %'b'" type="predicate" category="4. SQL tools"><comment x="0" y="0" w="131.66666666666669" collapsed="false">Returns an SQL predicate.</comment><header></header><code></code><translations></translations><inputs><input type="%txt"></input><input type="%txt"></input></inputs><script><block s="doReport"><block s="reportJoinWords"><list><l>(</l><block var="a"/><l> AND </l><block var="b"/><l>)</l></list></block></block></script></block-definition><block-definition s="NOT %'a'" type="predicate" category="4. SQL tools"><comment x="0" y="0" w="126.66666666666667" collapsed="false">Returns an SQL predicate.</comment><header></header><code></code><translations></translations><inputs><input type="%txt"></input></inputs><script><block s="doReport"><block s="reportJoinWords"><list><l>NOT(</l><block var="a"/><l>)</l></list></block></block></script></block-definition><block-definition s="%'a' IN ( %'liste' )" type="predicate" category="4. SQL tools"><comment x="0" y="0" w="124.16666666666667" collapsed="false">Returns an SQL predicate.</comment><header></header><code></code><translations></translations><inputs><input type="%txt"></input><input type="%txt"></input></inputs><script><block s="doReport"><block s="reportJoinWords"><list><block var="a"/><l> IN (</l><block var="liste"/><l>)</l></list></block></block></script></block-definition><block-definition s="%'a' LIKE %'b'" type="predicate" category="4. SQL tools"><comment x="0" y="0" w="130.83333333333334" collapsed="false">Returns an SQL predicate.</comment><header></header><code></code><translations></translations><inputs><input type="%txt"></input><input type="%txt"></input></inputs><script><block s="doReport"><block s="reportJoinWords"><list><block var="a"/><l> LIKE </l><block var="b"/></list></block></block></script></block-definition><block-definition s="AVG ( %'a' )" type="reporter" category="4. SQL tools"><comment x="0" y="0" w="125" collapsed="false">Returns an SQL value.</comment><header></header><code></code><translations></translations><inputs><input type="%txt"></input></inputs><script><block s="doReport"><block s="reportJoinWords"><list><l>AVG(</l><block var="a"/><l>)</l></list></block></block></script></block-definition><block-definition s="COUNT ( %'a' )" type="reporter" category="4. SQL tools"><comment x="0" y="0" w="115.83333333333334" collapsed="false">Returns an SQL value.</comment><header></header><code></code><translations></translations><inputs><input type="%txt"></input></inputs><script><block s="doReport"><block s="reportJoinWords"><list><l>COUNT(</l><block var="a"/><l>)</l></list></block></block></script></block-definition><block-definition s="MIN ( %'a' )" type="reporter" category="4. SQL tools"><comment x="0" y="0" w="112.5" collapsed="false">Returns an SQL value.</comment><header></header><code></code><translations></translations><inputs><input type="%txt"></input></inputs><script><block s="doReport"><block s="reportJoinWords"><list><l>MIN(</l><block var="a"/><l>)</l></list></block></block></script></block-definition><block-definition s="MAX ( %'a' )" type="reporter" category="4. SQL tools"><comment x="0" y="0" w="120.83333333333334" collapsed="false">Returns an SQL value.</comment><header></header><code></code><translations></translations><inputs><input type="%txt"></input></inputs><script><block s="doReport"><block s="reportJoinWords"><list><l>MAX(</l><block var="a"/><l>)</l></list></block></block></script></block-definition><block-definition s="SUM ( %'a' )" type="reporter" category="4. SQL tools"><comment x="0" y="0" w="118.33333333333334" collapsed="false">Returns an SQL value.</comment><header></header><code></code><translations></translations><inputs><input type="%txt"></input></inputs><script><block s="doReport"><block s="reportJoinWords"><list><l>SUM(</l><block var="a"/><l>)</l></list></block></block></script></block-definition><block-definition s="configure %'sprite' as a GraphPad width: %'width' $nl height: %'height' color: %'r' %'g' %'b'" type="command" category="7. GraphPad for graph operations"><comment x="0" y="0" w="301.6666666666667" collapsed="false">Creates a new empty costume of the specified size and color and sets local properties. If sprite is the stage, the old costume# of stage is stored. So you can draw graphs on maps, for example.</comment><header></header><code></code><translations></translations><inputs><input type="%s">thisSprite<options>thisSprite
theStage
anotherSprite</options></input><input type="%n">400</input><input type="%n">300</input><input type="%n">245</input><input type="%n">245</input><input type="%n">245</input></inputs><script><block s="doWarp"><script><block s="doDeclareVariables"><list><l>target</l><l>props</l></list></block><block s="doIf"><block s="reportEquals"><block var="sprite"/><l>theStage</l></block><script><block s="doSetVar"><l>width</l><block s="reportAttributeOf"><l><option>width</option></l><l>Stage</l></block></block><block s="doSetVar"><l>height</l><block s="reportAttributeOf"><l><option>height</option></l><l>Stage</l></block></block></script></block><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>theStage</l></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>thisSprite</l></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportIsIdentical"><block var="target"/><block s="reportObject"><l>Stage</l></block></block><script><block s="doSetVar"><l>sprite</l><l>theStage</l></block><block s="doSetVar"><l>target</l><block s="reportObject"><l>Stage</l></block></block><block s="doSetVar"><l>width</l><block s="reportAttributeOf"><l><option>width</option></l><l>Stage</l></block></block><block s="doSetVar"><l>height</l><block s="reportAttributeOf"><l><option>height</option></l><l>Stage</l></block></block></script></block><block s="doTellTo"><block var="target"/><block s="reifyScript"><script><block s="doApplyExtension"><l>var_declare(scope, name)</l><list><l>sprite</l><l>myProperties</l></list></block><block s="doApplyExtension"><l>var_declare(scope, name)</l><list><l>sprite</l><l>myData</l></list></block><block s="doApplyExtension"><l>var_declare(scope, name)</l><list><l>sprite</l><l>adjacencyMatrix</l></list></block><block s="doApplyExtension"><l>var_declare(scope, name)</l><list><l>sprite</l><l>vertexList</l></list></block><block s="doSetVar"><l>myProperties</l><block s="reportNewList"><list></list></block></block><block s="doSetVar"><l>myData</l><block s="reportNewList"><list></list></block></block><block s="doSetVar"><l>adjacencyMatrix</l><block s="reportNewList"><list></list></block></block><block s="doSetVar"><l>vertexList</l><block s="reportNewList"><list></list></block></block><block s="doAddToList"><block s="reportNewList"><list><l>typeOfConfiguration</l><l>GraphPad</l></list></block><block var="myProperties"/></block><block s="doAddToList"><block s="reportNewList"><list><l>typeOfData</l><l>none</l></list></block><block var="myProperties"/></block><block s="doAddToList"><block s="reportNewList"><list><l>costumeProperties</l><block s="reportNewList"><list><block var="width"/><block var="height"/><block var="r"/><block var="g"/><block var="b"/></list></block></list></block><block var="myProperties"/></block><block s="doAddToList"><block s="reportNewList"><list><l>vertexProperties</l><block s="reportNewList"><list><block s="reportNewList"><list><block s="reportRound"><block s="reportVariadicProduct"><list><l>0.1</l><block var="width"/></list></block></block><block s="reportRound"><block s="reportVariadicProduct"><list><l>0.9</l><block var="width"/></list></block></block><block s="reportRound"><block s="reportVariadicProduct"><list><l>0.1</l><block var="height"/></list></block></block><block s="reportRound"><block s="reportVariadicProduct"><list><l>0.9</l><block var="height"/></list></block></block></list></block><l>3</l><block s="reportBoolean"><l><bool>true</bool></l></block><block s="reportBoolean"><l><bool>false</bool></l></block></list></block></list></block><block var="myProperties"/></block><block s="doAddToList"><block s="reportNewList"><list><l>edgeProperties</l><block s="reportNewList"><list><l>1</l><l>0</l><l>0</l><l>0</l><block s="reportBoolean"><l><bool>false</bool></l></block><block s="reportBoolean"><l><bool>false</bool></l></block><block s="reportBoolean"><l><bool>false</bool></l></block></list></block></list></block><block var="myProperties"/></block></script><list></list></block><list></list></block><block s="doIfElse"><block s="reportEquals"><block var="sprite"/><l>theStage</l></block><script><block s="doTellTo"><l>Stage</l><block s="reifyScript"><script><block s="doApplyExtension"><l>var_declare(scope, name)</l><list><l>sprite</l><l>oldStageCostume</l></list></block><block s="doIfElse"><block s="reportIsA"><block s="reportAskFor"><l>Stage</l><block s="reifyReporter"><autolambda><block s="reportGet"><l><option>costume</option></l></block></autolambda><list></list></block><list></list></block><l><option>costume</option></l></block><script><block s="doSetVar"><l>oldStageCostume</l><custom-block s="copy of costume %obj"><block s="reportGet"><l><option>costume</option></l></block></custom-block></block><block s="doSwitchToCostume"><block var="oldStageCostume"/></block><block s="doSetVar"><l>props</l><custom-block s="GraphPadProperty %txt of %txt"><l>costumeProperties</l><l>theStage</l></custom-block></block><block s="doReplaceInList"><l>1</l><block var="props"/><block s="reportAskFor"><l>Stage</l><block s="reifyReporter"><autolambda><block s="reportGetImageAttribute"><l><option>width</option></l><l><option>current</option></l></block></autolambda><list></list></block><list></list></block></block><block s="doReplaceInList"><l>2</l><block var="props"/><block s="reportAskFor"><l>Stage</l><block s="reifyReporter"><autolambda><block s="reportGetImageAttribute"><l><option>height</option></l><l><option>current</option></l></block></autolambda><list></list></block><list></list></block></block><custom-block s="set GraphPadProperty %txt of %txt to %s"><l>costumeProperties</l><l>theStage</l><block var="props"/></custom-block></script><script><block s="doSetVar"><l>oldStageCostume</l><l>null</l></block><block s="doSwitchToCostume"><block s="reportApplyExtension"><l>SciS_newcostume(w,h,r,g,b)</l><list><block var="width"/><block var="height"/><block var="r"/><block var="g"/><block var="b"/></list></block></block></script></block></script><list></list></block><list></list></block></script><script><block s="doTellTo"><block var="target"/><block s="reifyScript"><script><block s="gotoXY"><l>0</l><l>0</l></block><block s="setHeading"><l>90</l></block><block s="doSwitchToCostume"><block s="reportApplyExtension"><l>SciS_newcostume(w,h,r,g,b)</l><list><block var="width"/><block var="height"/><block var="r"/><block var="g"/><block var="b"/></list></block></block><block s="show"></block></script><list></list></block><list></list></block></script></block></script></block></script><scripts><comment x="475" y="98.00000000000011" w="286.6666666666667" collapsed="false">costume properties:
1: width
2: height
3: back color red
4: back color green
5: back color blue

vertex properties:
1: ranges for random coordinates (xLeft,xRight, yUpper,yLower)
2: minimal radius of a vertex, should be changed is vertices are 
 not growing with number of edges
3: boolean: vertices grow with number of connected edges
4: boolean: vertex content is shown. If there is no content, 
 the vertex number is shown

edge properties:
1: line width
2: line color red
3: line color green
4: line color blue
5: boolean: edge is directed
6: boolean: edge has a weight
7: boolean: edge shows weight</comment></scripts></block-definition><block-definition s="is %'sprite' a GraphPad?" type="predicate" category="7. GraphPad for graph operations"><header></header><code></code><translations></translations><inputs><input type="%s">thisSprite<options>thisSprite
theStage
anotherSprite</options></input></inputs><script><block s="doWarp"><script><block s="doIfElse"><block s="reportEquals"><block var="sprite"/><l>thisSprite</l></block><script><block s="doReport"><block s="reportAskFor"><block s="reportObject"><l><option>myself</option></l></block><block s="reifyReporter"><autolambda><custom-block s="is the global %b property %txt %br with value %s present ?"><l><bool>false</bool></l><l>typeOfConfiguration</l><l>GraphPad</l></custom-block></autolambda><list></list></block><list></list></block></block></script><script><block s="doIfElse"><block s="reportEquals"><block var="sprite"/><l>theStage</l></block><script><block s="doReport"><block s="reportAskFor"><l>Stage</l><block s="reifyReporter"><autolambda><custom-block s="is the global %b property %txt %br with value %s present ?"><l><bool>false</bool></l><l>typeOfConfiguration</l><l>GraphPad</l></custom-block></autolambda><list></list></block><list></list></block></block></script><script><block s="doReport"><block s="reportAskFor"><block s="reportObject"><block var="sprite"/></block><block s="reifyReporter"><autolambda><custom-block s="is the global %b property %txt %br with value %s present ?"><l><bool>false</bool></l><l>typeOfConfiguration</l><l>GraphPad</l></custom-block></autolambda><list></list></block><list></list></block></block></script></block></script></block></script></block></script></block-definition><block-definition s="GraphPadProperty %'name' of %'sprite'" type="reporter" category="7. GraphPad for graph operations"><comment x="0" y="0" w="181.66666666666669" collapsed="false">Reads the value of an existing property.</comment><header></header><code></code><translations></translations><inputs><input type="%txt">costumeProperties<options>typeOfConfiguration
typeOfData
costumeProperties
vertexProperties
edgeProperties</options></input><input type="%txt">thisSprite<options>thisSprite
theStage
anotherSprite</options></input></inputs><script><block s="doDeclareVariables"><list><l>result</l><l>h</l><l>target</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>theStage</l></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>thisSprite</l></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a GraphPad?"><block var="target"/></custom-block></block><script><block s="doReport"><l>ERROR: target isn't configured as GraphPad!</l></block></script></block><block s="doSetVar"><l>result</l><l>not found</l></block><block s="doSetVar"><l>name</l><block s="reportListItem"><l>1</l><block s="reportTextSplit"><block var="name"/><l> </l></block></block></block><block s="doSetVar"><l>h</l><block s="reportMap"><block s="reifyReporter"><script><block s="doIf"><block s="reportEquals"><block var="name"/><block s="reportListItem"><l>1</l><l/></block></block><script><block s="doSetVar"><l>result</l><block s="reportListItem"><l>2</l><l/></block></block></script></block><block s="doReport"><l></l></block></script><list></list></block><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block></block></block><block s="doReport"><block var="result"/></block></script></block></script></block-definition><block-definition s="set GraphPadProperty %'name' of %'sprite' to %'value'" type="command" category="7. GraphPad for graph operations"><comment x="0" y="0" w="132.5" collapsed="false">Sets the value of an existing property or inserts it anew.</comment><header></header><code></code><translations></translations><inputs><input type="%txt">costumeProperties<options>typeOfConfiguration
typeOfData
costumeProperties
vertexProperties
edgeProperties</options></input><input type="%txt">thisSprite<options>thisSprite
theStage
anotherSprite</options></input><input type="%s"></input></inputs><script><block s="doDeclareVariables"><list><l>done</l><l>h</l><l>target</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>theStage</l></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>thisSprite</l></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a GraphPad?"><block var="target"/></custom-block></block><script><custom-block s="report SciSnap! error %txt"><l>ERROR: target isn't configured as GraphPad</l></custom-block><block s="doStopThis"><l><option>this block</option></l></block></script></block><block s="doSetVar"><l>name</l><block s="reportListItem"><l>1</l><block s="reportTextSplit"><block var="name"/><l> </l></block></block></block><block s="doSetVar"><l>done</l><block s="reportBoolean"><l><bool>false</bool></l></block></block><block s="doSetVar"><l>h</l><block s="reportMap"><block s="reifyReporter"><script><block s="doIf"><block s="reportEquals"><block var="name"/><block s="reportListItem"><l>1</l><l/></block></block><script><block s="doReplaceInList"><l>2</l><l/><block var="value"/></block><block s="doSetVar"><l>done</l><block s="reportBoolean"><l><bool>true</bool></l></block></block></script></block><block s="doReport"><l></l></block></script><list></list></block><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block></block></block><block s="doIf"><block s="reportNot"><block var="done"/></block><script><block s="doTellTo"><block var="target"/><block s="reifyScript"><script><block s="doAddToList"><l></l><l/></block></script><list></list></block><list><block s="reportNewList"><list><block var="name"/><block var="value"/></list></block><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block></list></block></script></block></script></block></script></block-definition><block-definition s="set GraphPad costume properties width: %'width' $nl height: %'height' color: %'r' %'g' %'b' on %'sprite'" type="command" category="7. GraphPad for graph operations"><comment x="0" y="0" w="119.32706197102902" collapsed="false">a simple way to set some costume attributes.
1: width
2: height
3: back color red
4: back color green
5: back color blue</comment><header></header><code></code><translations></translations><inputs><input type="%n">400</input><input type="%n">300</input><input type="%n">245</input><input type="%n">245</input><input type="%n">245</input><input type="%txt">thisSprite<options>thisSprite
theStage
anotherSprite</options></input></inputs><script><block s="doWarp"><script><block s="doDeclareVariables"><list><l>target</l></list></block><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>theStage</l></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>thisSprite</l></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a GraphPad?"><block var="target"/></custom-block></block><script><custom-block s="report SciSnap! error %txt"><l>ERROR: target isn't configured as GraphPad</l></custom-block><block s="doStopThis"><l><option>this block</option></l></block></script></block><custom-block s="set GraphPadProperty %txt of %txt to %s"><l>costumeProperties</l><block var="target"/><block s="reportNewList"><list><block var="width"/><block var="height"/><block var="r"/><block var="g"/><block var="b"/></list></block></custom-block><block s="doTellTo"><block var="target"/><block s="reifyScript"><script><block s="doSwitchToCostume"><block s="reportApplyExtension"><l>SciS_newcostume(w,h,r,g,b)</l><list><block var="width"/><block var="height"/><block var="r"/><block var="g"/><block var="b"/></list></block></block></script><list></list></block><list></list></block></script></block></script></block-definition><block-definition s="set GraphPad vertex properties minSize: %'minSize' $nl growing? %'isGrowing' showsContent? %'showsContent' on %'sprite'" type="command" category="7. GraphPad for graph operations"><comment x="0" y="0" w="197.2010396321616" collapsed="false">a simple way to set some vertex attributes:
1: ranges for random coordinates
 (xLeft,xRight, yUpper,yLower)
2: minimal radius of a vertex, should be
 changed is vertices are not growing
 with number of edges
3: boolean: vertices grow with number
 of connected edges
4: boolean: vertex content is shown. 
 If there is no content, the vertex
 number is shown</comment><header></header><code></code><translations></translations><inputs><input type="%n">3</input><input type="%b">true</input><input type="%b">false</input><input type="%txt">thisSprite<options>thisSprite
theStage
anotherSprite</options></input></inputs><script><block s="doWarp"><script><block s="doDeclareVariables"><list><l>target</l></list></block><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>theStage</l></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>thisSprite</l></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a GraphPad?"><block var="target"/></custom-block></block><script><custom-block s="report SciSnap! error %txt"><l>ERROR: target isn't configured as GraphPad</l></custom-block><block s="doStopThis"><l><option>this block</option></l></block></script></block><custom-block s="set GraphPadProperty %txt of %txt to %s"><l>vertexProperties</l><block var="target"/><block s="reportNewList"><list><block s="reportListItem"><l>1</l><custom-block s="GraphPadProperty %txt of %txt"><l>vertexProperties</l><block var="target"/></custom-block></block><block var="minSize"/><block var="isGrowing"/><block var="showsContent"/></list></block><comment w="133.9111328125" collapsed="false">The ranges are maintained. </comment></custom-block></script></block></script></block-definition><block-definition s="set GraphPad edge properties lineWidth: %'lineWidth' $nl color: %'r' %'g' %'b' directed? %'isDirected' weighted? %'withWeights' $nl showsWeight? %'showWeight' on %'sprite'" type="command" category="7. GraphPad for graph operations"><comment x="0" y="0" w="119.32706197102902" collapsed="false">a simple way to set some edge attributes:
1: line width
2: line color red
3: line color green
4: line color blue
5: boolean: edge is directed
6: boolean: edge has a weight
7: boolean: edge shows
 weight</comment><header></header><code></code><translations></translations><inputs><input type="%n">1</input><input type="%n">0</input><input type="%n">0</input><input type="%n">0</input><input type="%b">false</input><input type="%b">false</input><input type="%b">false</input><input type="%txt">thisSprite<options>thisSprite
theStage
anotherSprite</options></input></inputs><script><block s="doWarp"><script><block s="doDeclareVariables"><list><l>target</l></list></block><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>theStage</l></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>thisSprite</l></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a GraphPad?"><block var="target"/></custom-block></block><script><custom-block s="report SciSnap! error %txt"><l>ERROR: target isn't configured as GraphPad</l></custom-block><block s="doStopThis"><l><option>this block</option></l></block></script></block><custom-block s="set GraphPadProperty %txt of %txt to %s"><l>edgeProperties</l><block var="target"/><block s="reportNewList"><list><block var="lineWidth"/><block var="r"/><block var="g"/><block var="b"/><block var="isDirected"/><block var="withWeights"/><block var="showWeight"/></list></block></custom-block></script></block></script></block-definition><block-definition s="new vertex at %'x' %'y' content: %'value' on graph of %'sprite'" type="command" category="7. GraphPad for graph operations"><header></header><code></code><translations></translations><inputs><input type="%n">100</input><input type="%n">100</input><input type="%s"></input><input type="%s">thisSprite<options>thisSprite
theStage
anotherSprite</options></input></inputs><script><block s="doDeclareVariables"><list><l>target</l></list></block><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>theStage</l></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>thisSprite</l></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a GraphPad?"><block var="target"/></custom-block></block><script><custom-block s="report SciSnap! error %txt"><l>ERROR: target isn't configured as GraphPad</l></custom-block><block s="doStopThis"><l><option>this block</option></l></block></script></block><custom-block s="add %n random vertices to graph on %txt"><l>1</l><block var="target"/></custom-block><custom-block s="move vertex %n of graph on %txt to %n %n"><block s="reportListAttribute"><l><option>length</option></l><block s="reportAttributeOf"><l>vertexList</l><block var="target"/></block></block><block var="target"/><block var="x"/><block var="y"/></custom-block><custom-block s="change content of vertex %n to %txt of graph on %txt"><block s="reportListAttribute"><l><option>length</option></l><block s="reportAttributeOf"><l>vertexList</l><block var="target"/></block></block><block var="value"/><block var="target"/></custom-block><custom-block s="draw graph on %txt"><block var="target"/></custom-block></script></block-definition><block-definition s="add %'n' random vertices to graph on %'sprite'" type="command" category="7. GraphPad for graph operations"><comment x="0" y="0" w="214.16666666666686" collapsed="false">adds n vertices to the vertexList of a GraphPad:
Vertex attributes have the following order:
1: x
2: y
3: size
4: content
5: isMarked
6: colorNr
7: numberOfLinks</comment><header></header><code></code><translations></translations><inputs><input type="%n">1</input><input type="%txt">thisSprite<options>thisSprite
theStage
anotherSprite</options></input></inputs><script><block s="doDeclareVariables"><list><l>target</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>theStage</l></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>thisSprite</l></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a GraphPad?"><block var="target"/></custom-block></block><script><custom-block s="report SciSnap! error %txt"><l>ERROR: target isn't configured as GraphPad</l></custom-block><block s="doStopThis"><l><option>this block</option></l></block></script></block><block s="doTellTo"><block var="target"/><block s="reifyScript"><script><block s="doSetVar"><l></l><l></l></block></script><list></list></block><list><l>vertexList</l><block s="reportApplyExtension"><l>SciS_addVerticesToVertexlist(n,vlist,vAttributes)</l><list><block var="n"/><block s="reportAttributeOf"><l>vertexList</l><block var="target"/></block><custom-block s="GraphPadProperty %txt of %txt"><l>vertexProperties</l><block var="target"/></custom-block></list></block></list></block><block s="doTellTo"><block var="target"/><block s="reifyScript"><script><block s="doSetVar"><l></l><l></l></block></script><list></list></block><list><l>adjacencyMatrix</l><block s="reportApplyExtension"><l>SciS_addVerticesToAdjacencymatrix(n,amatrix)</l><list><block var="n"/><block s="reportAttributeOf"><l>adjacencyMatrix</l><block var="target"/></block></list></block></list></block><custom-block s="draw graph on %txt"><block var="target"/></custom-block></script></block></script></block-definition><block-definition s="move vertex %'n' of graph on %'sprite' to %'x' %'y'" type="command" category="7. GraphPad for graph operations"><comment x="0" y="0" w="130.83333333333334" collapsed="false">Moves a vertex to another position measured in Snap! sprite-coordinates</comment><header></header><code></code><translations></translations><inputs><input type="%n">1</input><input type="%txt">thisSprite<options>thisSprite
theStage
anotherSprite</options></input><input type="%n">100</input><input type="%n">100</input></inputs><script><block s="doDeclareVariables"><list><l>target</l><l>width</l><l>height</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>theStage</l></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>thisSprite</l></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a GraphPad?"><block var="target"/></custom-block></block><script><custom-block s="report SciSnap! error %txt"><l>ERROR: target isn't configured as GraphPad</l></custom-block><block s="doStopThis"><l><option>this block</option></l></block></script></block><block s="doIfElse"><block s="reportLessThanOrEquals"><block var="n"/><block s="reportListAttribute"><l><option>length</option></l><block s="reportAttributeOf"><l>vertexList</l><block var="target"/></block></block></block><script><block s="doSetVar"><l>width</l><block s="reportListItem"><l>1</l><custom-block s="GraphPadProperty %txt of %txt"><l>costumeProperties</l><block var="target"/></custom-block></block></block><block s="doSetVar"><l>height</l><block s="reportListItem"><l>2</l><custom-block s="GraphPadProperty %txt of %txt"><l>costumeProperties</l><block var="target"/></custom-block></block></block><block s="doReplaceInList"><l>1</l><block s="reportListItem"><block var="n"/><block s="reportAttributeOf"><l>vertexList</l><block var="target"/></block></block><block s="reportRound"><block s="reportVariadicSum"><list><block s="reportQuotient"><block var="width"/><l>2</l></block><block var="x"/></list></block></block></block><block s="doReplaceInList"><l>2</l><block s="reportListItem"><block var="n"/><block s="reportAttributeOf"><l>vertexList</l><block var="target"/></block></block><block s="reportRound"><block s="reportDifference"><block s="reportQuotient"><block var="height"/><l>2</l></block><block var="y"/></block></block></block><custom-block s="draw graph on %txt"><block var="target"/></custom-block></script><script><custom-block s="report SciSnap! error %txt"><l>ERROR: index out of range!</l></custom-block></script></block></script></block></script></block-definition><block-definition s="add %'n' random edges to graph on %'sprite'" type="command" category="7. GraphPad for graph operations"><comment x="0" y="0" w="150" collapsed="false">Creates n new edges randomly.</comment><header></header><code></code><translations></translations><inputs><input type="%n">1</input><input type="%txt">thisSprite<options>thisSprite
theStage
anotherSprite</options></input></inputs><script><block s="doDeclareVariables"><list><l>target</l><l>result</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>theStage</l></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>thisSprite</l></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a GraphPad?"><block var="target"/></custom-block></block><script><custom-block s="report SciSnap! error %txt"><l>ERROR: target isn't configured as GraphPad</l></custom-block><block s="doStopThis"><l><option>this block</option></l></block></script></block><block s="doSetVar"><l>result</l><block s="reportApplyExtension"><l>SciS_addRandomEdgesToGraph(amatrix,n,lAttributes,vlist)</l><list><block s="reportAttributeOf"><l>adjacencyMatrix</l><block var="target"/></block><block var="n"/><custom-block s="GraphPadProperty %txt of %txt"><l>edgeProperties</l><block var="target"/></custom-block><block s="reportAttributeOf"><l>vertexList</l><block var="target"/></block></list></block></block><block s="doTellTo"><block var="target"/><block s="reifyScript"><script><block s="doSetVar"><l></l><l></l></block></script><list></list></block><list><l>adjacencyMatrix</l><block s="reportListItem"><l>1</l><block var="result"/></block></list></block><block s="doTellTo"><block var="target"/><block s="reifyScript"><script><block s="doSetVar"><l></l><l></l></block></script><list></list></block><list><l>vertexList</l><block s="reportListItem"><l>2</l><block var="result"/></block></list></block><custom-block s="draw graph on %txt"><block var="target"/></custom-block></script></block></script></block-definition><block-definition s="add edge from vertex %'v1' to vertex %'v2' to graph on %'sprite'" type="command" category="7. GraphPad for graph operations"><comment x="0" y="0" w="107.5" collapsed="false">Creates a new edge between two vertices.</comment><header></header><code></code><translations></translations><inputs><input type="%n">1</input><input type="%n">2</input><input type="%txt">thisSprite<options>thisSprite
theStage
anotherSprite</options></input></inputs><script><block s="doDeclareVariables"><list><l>target</l><l>vertex1</l><l>vertex2</l><l>weight</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>theStage</l></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>thisSprite</l></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a GraphPad?"><block var="target"/></custom-block></block><script><custom-block s="report SciSnap! error %txt"><l>ERROR: target isn't configured as GraphPad</l></custom-block><block s="doStopThis"><l><option>this block</option></l></block></script></block><block s="doIfElse"><block s="reportAnd"><block s="reportAnd"><block s="reportGreaterThan"><block var="v1"/><l>0</l></block><block s="reportLessThanOrEquals"><block var="v1"/><block s="reportListAttribute"><l><option>length</option></l><block s="reportAttributeOf"><l>vertexList</l><block var="target"/></block></block></block></block><block s="reportAnd"><block s="reportGreaterThan"><block var="v2"/><l>0</l></block><block s="reportLessThanOrEquals"><block var="v2"/><block s="reportListAttribute"><l><option>length</option></l><block s="reportAttributeOf"><l>vertexList</l><block var="target"/></block></block></block></block></block><script><block s="doSetVar"><l>vertex1</l><block s="reportListItem"><block var="v1"/><block s="reportAttributeOf"><l>vertexList</l><block var="target"/></block></block></block><block s="doSetVar"><l>vertex2</l><block s="reportListItem"><block var="v2"/><block s="reportAttributeOf"><l>vertexList</l><block var="target"/></block></block></block><block s="doIfElse"><block s="reportListItem"><l>6</l><custom-block s="GraphPadProperty %txt of %txt"><l>edgeProperties</l><block var="target"/></custom-block></block><script><block s="doSetVar"><l>weight</l><block s="reportRound"><block s="reportQuotient"><block s="reportMonadic"><l><option>sqrt</option></l><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><block s="reportDifference"><block s="reportListItem"><l>1</l><block var="vertex1"/></block><block s="reportListItem"><l>1</l><block var="vertex2"/></block></block><block s="reportDifference"><block s="reportListItem"><l>1</l><block var="vertex1"/></block><block s="reportListItem"><l>1</l><block var="vertex2"/></block></block></list></block><block s="reportVariadicProduct"><list><block s="reportDifference"><block s="reportListItem"><l>2</l><block var="vertex1"/></block><block s="reportListItem"><l>2</l><block var="vertex2"/></block></block><block s="reportDifference"><block s="reportListItem"><l>2</l><block var="vertex1"/></block><block s="reportListItem"><l>2</l><block var="vertex2"/></block></block></list></block></list></block></block><l>10</l></block></block></block></script><script><block s="doSetVar"><l>weight</l><l>1</l></block></script></block><block s="doIf"><block s="reportEquals"><block s="reportListItem"><block var="v2"/><block s="reportListItem"><block var="v1"/><block s="reportAttributeOf"><l>adjacencyMatrix</l><block var="target"/></block></block></block><l>X</l></block><script><block s="doReplaceInList"><l>7</l><block var="vertex1"/><block s="reportVariadicSum"><list><block s="reportListItem"><l>7</l><block var="vertex1"/></block><l>1</l></list></block></block><block s="doReplaceInList"><l>6</l><block var="vertex2"/><block s="reportListItem"><l>6</l><block var="vertex1"/></block></block><block s="doReplaceInList"><block var="v2"/><block s="reportListItem"><block var="v1"/><block s="reportAttributeOf"><l>adjacencyMatrix</l><block var="target"/></block></block><block var="weight"/></block></script></block><block s="doIf"><block s="reportAnd"><block s="reportEquals"><block s="reportListItem"><block var="v1"/><block s="reportListItem"><block var="v2"/><block s="reportAttributeOf"><l>adjacencyMatrix</l><block var="target"/></block></block></block><l>X</l></block><block s="reportNot"><block s="reportListItem"><l>5</l><custom-block s="GraphPadProperty %txt of %txt"><l>edgeProperties</l><block var="target"/></custom-block></block></block></block><script><block s="doReplaceInList"><l>7</l><block var="vertex2"/><block s="reportVariadicSum"><list><block s="reportListItem"><l>7</l><block var="vertex2"/></block><l>1</l></list></block></block><block s="doReplaceInList"><block var="v1"/><block s="reportListItem"><block var="v2"/><block s="reportAttributeOf"><l>adjacencyMatrix</l><block var="target"/></block></block><block var="weight"/></block></script></block><custom-block s="draw graph on %txt"><block var="target"/></custom-block></script><script><custom-block s="report SciSnap! error %txt"><l>ERROR: index out of range!</l></custom-block></script></block></script></block></script></block-definition><block-definition s="draw graph on %'sprite'" type="command" category="7. GraphPad for graph operations"><comment x="0" y="0" w="155" collapsed="false">draws the graph on a GraphPad.</comment><header></header><code></code><translations></translations><inputs><input type="%txt">thisSprite<options>thisSprite
theStage
anotherSprite</options></input></inputs><script><block s="doDeclareVariables"><list><l>target</l><l>oldCostume</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>theStage</l></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>thisSprite</l></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a GraphPad?"><block var="target"/></custom-block></block><script><custom-block s="report SciSnap! error %txt"><l>ERROR: target isn't configured as GraphPad</l></custom-block><block s="doStopThis"><l><option>this block</option></l></block></script></block><block s="doIfElse"><block s="reportIsIdentical"><block var="target"/><block s="reportObject"><l>Stage</l></block></block><script><block s="doIfElse"><block s="reportIsA"><block s="reportAttributeOf"><l>oldStageCostume</l><l>Stage</l></block><l><option>costume</option></l></block><script><block s="doTellTo"><l>Stage</l><block s="reifyScript"><script><block s="doSwitchToCostume"><block s="reportAttributeOf"><l>oldStageCostume</l><l>Stage</l></block></block></script><list></list></block><list></list></block><block s="doSetVar"><l>oldCostume</l><custom-block s="copy of costume %obj"><custom-block s="costume of %obj"><block s="reportObject"><l>Stage</l></block></custom-block></custom-block></block></script><script><block s="doSetVar"><l>oldCostume</l><l>null</l></block></script></block></script><script><block s="doSetVar"><l>oldCostume</l><l>null</l></block></script></block><block s="doTellTo"><block var="target"/><block s="reifyScript"><script><block s="doSwitchToCostume"><l></l></block></script><list></list></block><list><block s="reportApplyExtension"><l>SciS_drawGraph(amatrix,vlist,cAttributes,vAttributes,lAttributes,oldCostume)</l><list><block s="reportAttributeOf"><l>adjacencyMatrix</l><block var="target"/></block><block s="reportAttributeOf"><l>vertexList</l><block var="target"/></block><custom-block s="GraphPadProperty %txt of %txt"><l>costumeProperties</l><block var="target"/></custom-block><custom-block s="GraphPadProperty %txt of %txt"><l>vertexProperties</l><block var="target"/></custom-block><custom-block s="GraphPadProperty %txt of %txt"><l>edgeProperties</l><block var="target"/></custom-block><block var="oldCostume"/></list></block></list></block></script></block></script></block-definition><block-definition s="delete vertex %'n' of graph on %'sprite'" type="command" category="7. GraphPad for graph operations"><comment x="0" y="0" w="90" collapsed="false">Deletes a vertex.</comment><header></header><code></code><translations></translations><inputs><input type="%n">1</input><input type="%txt">thisSprite<options>thisSprite
theStage
anotherSprite</options></input></inputs><script><block s="doDeclareVariables"><list><l>target</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>theStage</l></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>thisSprite</l></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a GraphPad?"><block var="target"/></custom-block></block><script><custom-block s="report SciSnap! error %txt"><l>ERROR: target isn't configured as GraphPad</l></custom-block><block s="doStopThis"><l><option>this block</option></l></block></script></block><block s="doIf"><block s="reportAnd"><block s="reportGreaterThan"><block var="n"/><l>0</l></block><block s="reportLessThanOrEquals"><block var="n"/><block s="reportListAttribute"><l><option>length</option></l><block s="reportAttributeOf"><l>vertexList</l><block var="target"/></block></block></block></block><script><block s="doIfElse"><block s="reportEquals"><block s="reportListAttribute"><l><option>length</option></l><block s="reportAttributeOf"><l>vertexList</l><block var="target"/></block></block><l>1</l></block><script><block s="doTellTo"><block var="target"/><block s="reifyScript"><script><block s="doSetVar"><l></l><l></l></block></script><list></list></block><list><l>vertexList</l><block s="reportNewList"><list></list></block></list></block><block s="doTellTo"><block var="target"/><block s="reifyScript"><script><block s="doSetVar"><l></l><l></l></block></script><list></list></block><list><l>adjacencyMatrix</l><block s="reportNewList"><list></list></block></list></block></script><script><block s="doDeleteFromList"><block var="n"/><block s="reportAttributeOf"><l>vertexList</l><block var="target"/></block></block><block s="doDeleteFromList"><block var="n"/><block s="reportAttributeOf"><l>adjacencyMatrix</l><block var="target"/></block></block><block s="doForEach"><l>item</l><block s="reportAttributeOf"><l>adjacencyMatrix</l><block var="target"/></block><script><block s="doDeleteFromList"><block var="n"/><block var="item"/></block></script></block></script></block><custom-block s="draw graph on %txt"><block var="target"/></custom-block></script></block></script></block></script></block-definition><block-definition s="delete edge from vertex %'v1' to vertex %'v2' $nl of graph on %'sprite'" type="command" category="7. GraphPad for graph operations"><comment x="0" y="0" w="90" collapsed="false">Deletes an edge.</comment><header></header><code></code><translations></translations><inputs><input type="%n">1</input><input type="%n">2</input><input type="%txt">thisSprite<options>thisSprite
theStage
anotherSprite</options></input></inputs><script><block s="doDeclareVariables"><list><l>target</l><l>vertex1</l><l>vertex2</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>theStage</l></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>thisSprite</l></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a GraphPad?"><block var="target"/></custom-block></block><script><custom-block s="report SciSnap! error %txt"><l>ERROR: target isn't configured as GraphPad</l></custom-block><block s="doStopThis"><l><option>this block</option></l></block></script></block><block s="doIfElse"><block s="reportAnd"><block s="reportAnd"><block s="reportGreaterThan"><block var="v1"/><l>0</l></block><block s="reportLessThanOrEquals"><block var="v1"/><block s="reportListAttribute"><l><option>length</option></l><block s="reportAttributeOf"><l>vertexList</l><block var="target"/></block></block></block></block><block s="reportAnd"><block s="reportGreaterThan"><block var="v2"/><l>0</l></block><block s="reportLessThanOrEquals"><block var="v2"/><block s="reportListAttribute"><l><option>length</option></l><block s="reportAttributeOf"><l>vertexList</l><block var="target"/></block></block></block></block></block><script><block s="doSetVar"><l>vertex1</l><block s="reportListItem"><block var="v1"/><block s="reportAttributeOf"><l>vertexList</l><block var="target"/></block></block></block><block s="doSetVar"><l>vertex2</l><block s="reportListItem"><block var="v2"/><block s="reportAttributeOf"><l>vertexList</l><block var="target"/></block></block></block><block s="doIf"><block s="reportGreaterThan"><block s="reportListItem"><block var="v2"/><block s="reportListItem"><block var="v1"/><block s="reportAttributeOf"><l>adjacencyMatrix</l><block var="target"/></block></block></block><l>0</l></block><script><block s="doReplaceInList"><l>7</l><block var="vertex1"/><block s="reportDifference"><block s="reportListItem"><l>7</l><block var="vertex1"/></block><l>1</l></block></block><block s="doReplaceInList"><block var="v2"/><block s="reportListItem"><block var="v1"/><block s="reportAttributeOf"><l>adjacencyMatrix</l><block var="target"/></block></block><l>X</l></block></script></block><block s="doIf"><block s="reportAnd"><block s="reportGreaterThan"><block s="reportListItem"><block var="v1"/><block s="reportListItem"><block var="v2"/><block s="reportAttributeOf"><l>adjacencyMatrix</l><block var="target"/></block></block></block><l>0</l></block><block s="reportNot"><block s="reportListItem"><l>5</l><custom-block s="GraphPadProperty %txt of %txt"><l>edgeProperties</l><block var="target"/></custom-block></block></block></block><script><block s="doReplaceInList"><l>7</l><block var="vertex2"/><block s="reportDifference"><block s="reportListItem"><l>7</l><block var="vertex2"/></block><l>1</l></block></block><block s="doReplaceInList"><block var="v1"/><block s="reportListItem"><block var="v2"/><block s="reportAttributeOf"><l>adjacencyMatrix</l><block var="target"/></block></block><l>X</l></block></script></block><custom-block s="draw graph on %txt"><block var="target"/></custom-block></script><script><custom-block s="report SciSnap! error %txt"><l>ERROR: index out of range!</l></custom-block></script></block></script></block></script></block-definition><block-definition s="weight of edge from vertex %'v1' to vertex %'v2' $nl of graph on %'sprite'" type="reporter" category="7. GraphPad for graph operations"><header></header><code></code><translations></translations><inputs><input type="%n">1</input><input type="%s">2</input><input type="%s">thisSprite<options>thisSprite
theStage
anotherSprite</options></input></inputs><script><block s="doDeclareVariables"><list><l>target</l><l>vertex1</l><l>vertex2</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>theStage</l></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>thisSprite</l></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a GraphPad?"><block var="target"/></custom-block></block><script><block s="doReport"><l>ERROR: target isn't configured as GraphPad!</l></block></script></block><block s="doIfElse"><block s="reportAnd"><block s="reportAnd"><block s="reportGreaterThan"><block var="v1"/><l>0</l></block><block s="reportLessThanOrEquals"><block var="v1"/><block s="reportListAttribute"><l><option>length</option></l><block s="reportAttributeOf"><l>vertexList</l><block var="target"/></block></block></block></block><block s="reportAnd"><block s="reportGreaterThan"><block var="v2"/><l>0</l></block><block s="reportLessThanOrEquals"><block var="v2"/><block s="reportListAttribute"><l><option>length</option></l><block s="reportAttributeOf"><l>vertexList</l><block var="target"/></block></block></block></block></block><script><block s="doSetVar"><l>vertex1</l><block s="reportListItem"><block var="v1"/><block s="reportAttributeOf"><l>vertexList</l><block var="target"/></block></block></block><block s="doSetVar"><l>vertex2</l><block s="reportListItem"><block var="v2"/><block s="reportAttributeOf"><l>vertexList</l><block var="target"/></block></block></block><block s="doIfElse"><block s="reportListItem"><l>6</l><custom-block s="GraphPadProperty %txt of %txt"><l>edgeProperties</l><block var="target"/></custom-block></block><script><block s="doIfElse"><block s="reportNotEquals"><block s="reportListItem"><block var="v2"/><block s="reportListItem"><block var="v1"/><block s="reportAttributeOf"><l>adjacencyMatrix</l><block var="target"/></block></block></block><l>X</l></block><script><block s="doReport"><block s="reportListItem"><block var="v2"/><block s="reportListItem"><block var="v1"/><block s="reportAttributeOf"><l>adjacencyMatrix</l><block var="target"/></block></block></block></block></script><script><block s="doReport"><l>ERROR: there is no connection between these vertices!</l></block></script></block></script><script><block s="doReport"><l>ERROR: in this Graph edges have no weights!</l></block></script></block></script><script><block s="doReport"><l>ERROR: index out of range!</l></block></script></block></script></block></script></block-definition><block-definition s="change weight of edge from vertex %'v1' to vertex %'v2' $nl to %'weight' of graph on %'sprite'" type="command" category="7. GraphPad for graph operations"><comment x="0" y="0" w="132.5" collapsed="false">Sets the weight of an edge.</comment><header></header><code></code><translations></translations><inputs><input type="%n">1</input><input type="%n">2</input><input type="%n">1</input><input type="%txt">thisSprite<options>thisSprite
theStage
anotherSprite</options></input></inputs><script><block s="doDeclareVariables"><list><l>target</l><l>vertex1</l><l>vertex2</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>theStage</l></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>thisSprite</l></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a GraphPad?"><block var="target"/></custom-block></block><script><custom-block s="report SciSnap! error %txt"><l>ERROR: target isn't configured as GraphPad</l></custom-block><block s="doStopThis"><l><option>this block</option></l></block></script></block><block s="doIfElse"><block s="reportAnd"><block s="reportAnd"><block s="reportGreaterThan"><block var="v1"/><l>0</l></block><block s="reportLessThanOrEquals"><block var="v1"/><block s="reportListAttribute"><l><option>length</option></l><block s="reportAttributeOf"><l>vertexList</l><block var="target"/></block></block></block></block><block s="reportAnd"><block s="reportGreaterThan"><block var="v2"/><l>0</l></block><block s="reportLessThanOrEquals"><block var="v2"/><block s="reportListAttribute"><l><option>length</option></l><block s="reportAttributeOf"><l>vertexList</l><block var="target"/></block></block></block></block></block><script><block s="doSetVar"><l>vertex1</l><block s="reportListItem"><block var="v1"/><block s="reportAttributeOf"><l>vertexList</l><block var="target"/></block></block></block><block s="doSetVar"><l>vertex2</l><block s="reportListItem"><block var="v2"/><block s="reportAttributeOf"><l>vertexList</l><block var="target"/></block></block></block><block s="doIfElse"><block s="reportListItem"><l>6</l><custom-block s="GraphPadProperty %txt of %txt"><l>edgeProperties</l><block var="target"/></custom-block></block><script><block s="doIfElse"><block s="reportNotEquals"><block s="reportListItem"><block var="v2"/><block s="reportListItem"><block var="v1"/><block s="reportAttributeOf"><l>adjacencyMatrix</l><block var="target"/></block></block></block><l>X</l></block><script><block s="doReplaceInList"><block var="v2"/><block s="reportListItem"><block var="v1"/><block s="reportAttributeOf"><l>adjacencyMatrix</l><block var="target"/></block></block><block var="weight"/></block><block s="doIf"><block s="reportAnd"><block s="reportNotEquals"><block s="reportListItem"><block var="v1"/><block s="reportListItem"><block var="v2"/><block s="reportAttributeOf"><l>adjacencyMatrix</l><block var="target"/></block></block></block><l>X</l></block><block s="reportNot"><block s="reportListItem"><l>5</l><custom-block s="GraphPadProperty %txt of %txt"><l>edgeProperties</l><block var="target"/></custom-block></block></block></block><script><block s="doReplaceInList"><block var="v1"/><block s="reportListItem"><block var="v2"/><block s="reportAttributeOf"><l>adjacencyMatrix</l><block var="target"/></block></block><block var="weight"/></block></script></block><custom-block s="draw graph on %txt"><block var="target"/></custom-block></script><script><custom-block s="report SciSnap! error %txt"><l>ERROR: there is no connection between these vertices!</l></custom-block></script></block></script><script><custom-block s="report SciSnap! error %txt"><l>ERROR: in this Graph edges have no weights!</l></custom-block></script></block></script><script><custom-block s="report SciSnap! error %txt"><l>ERROR: index out of range!</l></custom-block></script></block></script></block></script></block-definition><block-definition s="ask for new weight of graph on %'sprite'" type="command" category="7. GraphPad for graph operations"><header></header><code></code><translations></translations><inputs><input type="%txt">thisSprite<options>thisSprite
theStage
anotherSprite</options></input></inputs><script><block s="doDeclareVariables"><list><l>target</l><l>n1</l><l>n2</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>theStage</l></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>thisSprite</l></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a GraphPad?"><block var="target"/></custom-block></block><script><custom-block s="report SciSnap! error %txt"><l>ERROR: target isn't configured as GraphPad</l></custom-block><block s="doStopThis"><l><option>this block</option></l></block></script></block><block s="doAsk"><l>from vertex nr</l></block><block s="doIf"><block s="reportIsA"><block s="getLastAnswer"></block><l><option>number</option></l></block><script><block s="doSetVar"><l>n1</l><block s="getLastAnswer"></block></block><block s="doAsk"><l>to vertex nr</l></block><block s="doIf"><block s="reportIsA"><block s="getLastAnswer"></block><l><option>number</option></l></block><script><block s="doSetVar"><l>n2</l><block s="getLastAnswer"></block></block><block s="doAsk"><l>new weight</l></block><block s="doIf"><block s="reportIsA"><block s="getLastAnswer"></block><l><option>number</option></l></block><script><custom-block s="change weight of edge from vertex %n to vertex %n %br to %n of graph on %txt"><block var="n1"/><block var="n2"/><block s="getLastAnswer"></block><block var="target"/></custom-block></script></block></script></block></script></block></script></block></script></block-definition><block-definition s="ask for new start vertex width of graph on %'sprite'" type="command" category="7. GraphPad for graph operations"><comment x="0" y="0" w="142.5" collapsed="false">Input for start vertex.</comment><header></header><code></code><translations></translations><inputs><input type="%s">thisSprite<options>thisSprite
theStage
anotherSprite</options></input></inputs><script><block s="doDeclareVariables"><list><l>target</l><l>property</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>theStage</l></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>thisSprite</l></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a GraphPad?"><block var="target"/></custom-block></block><script><custom-block s="report SciSnap! error %txt"><l>ERROR: target isn't configured as GraphPad</l></custom-block><block s="doStopThis"><l><option>this block</option></l></block></script></block><block s="doAsk"><l>new start vertexwidth (1....20)</l></block><block s="doIf"><block s="reportIsA"><block s="getLastAnswer"></block><l><option>number</option></l></block><script><block s="doIf"><block s="reportAnd"><block s="reportGreaterThan"><block s="getLastAnswer"></block><l>0</l></block><block s="reportLessThan"><block s="getLastAnswer"></block><l>21</l></block></block><script><block s="doSetVar"><l>property</l><custom-block s="GraphPadProperty %txt of %txt"><l>vertexProperties</l><block var="target"/></custom-block></block><block s="doReplaceInList"><l>2</l><block var="property"/><block s="getLastAnswer"></block></block><custom-block s="set GraphPadProperty %txt of %txt to %s"><l>vertexProperties</l><block var="target"/><block var="property"/></custom-block></script></block></script></block></script></block></script></block-definition><block-definition s="content of vertex %'n' of graph on %'sprite'" type="reporter" category="7. GraphPad for graph operations"><header></header><code></code><translations></translations><inputs><input type="%n">1</input><input type="%s">thisSprite<options>thisSprite
theStage
anotherSprite</options></input></inputs><script><block s="doDeclareVariables"><list><l>target</l><l>vertex1</l><l>vertex2</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>theStage</l></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>thisSprite</l></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a GraphPad?"><block var="target"/></custom-block></block><script><block s="doReport"><l>ERROR: target isn't configured as GraphPad!</l></block></script></block><block s="doIfElse"><block s="reportAnd"><block s="reportGreaterThan"><block var="n"/><l>0</l></block><block s="reportLessThanOrEquals"><block var="n"/><block s="reportListAttribute"><l><option>length</option></l><block s="reportAttributeOf"><l>vertexList</l><block var="target"/></block></block></block></block><script><block s="doReport"><block s="reportListItem"><l>4</l><block s="reportListItem"><block var="n"/><block s="reportAttributeOf"><l>vertexList</l><block var="target"/></block></block></block></block></script><script><block s="doReport"><l>ERROR: index out of range!</l></block></script></block></script></block></script></block-definition><block-definition s="change content of vertex %'n1' to %'value' of graph on %'sprite'" type="command" category="7. GraphPad for graph operations"><comment x="0" y="0" w="133.33333333333334" collapsed="false">Sets the content of a vertex.</comment><header></header><code></code><translations></translations><inputs><input type="%n">1</input><input type="%txt"></input><input type="%txt">thisSprite<options>thisSprite
theStage
anotherSprite</options></input></inputs><script><block s="doDeclareVariables"><list><l>target</l><l>vertex</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>theStage</l></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>thisSprite</l></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a GraphPad?"><block var="target"/></custom-block></block><script><custom-block s="report SciSnap! error %txt"><l>ERROR: target isn't configured as GraphPad</l></custom-block><block s="doStopThis"><l><option>this block</option></l></block></script></block><block s="doIfElse"><block s="reportAnd"><block s="reportGreaterThan"><block var="n1"/><l>0</l></block><block s="reportLessThanOrEquals"><block var="n1"/><block s="reportListAttribute"><l><option>length</option></l><block s="reportAttributeOf"><l>vertexList</l><block var="target"/></block></block></block></block><script><block s="doSetVar"><l>vertex</l><block s="reportListItem"><block var="n1"/><block s="reportAttributeOf"><l>vertexList</l><block var="target"/></block></block></block><block s="doReplaceInList"><l>4</l><block s="reportListItem"><block var="n1"/><block s="reportAttributeOf"><l>vertexList</l><block var="target"/></block></block><block var="value"/></block><custom-block s="draw graph on %txt"><block var="target"/></custom-block></script><script><custom-block s="report SciSnap! error %txt"><l>ERROR: index out of range!</l></custom-block></script></block></script></block></script></block-definition><block-definition s="ask for new vertex content in graph on %'sprite'" type="command" category="7. GraphPad for graph operations"><comment x="0" y="0" w="145" collapsed="false">Input for a new vertex content.</comment><header></header><code></code><translations></translations><inputs><input type="%txt">thisSprite<options>thisSprite
theStage
anotherSprite</options></input></inputs><script><block s="doDeclareVariables"><list><l>target</l><l>nr</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>theStage</l></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>thisSprite</l></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a GraphPad?"><block var="target"/></custom-block></block><script><custom-block s="report SciSnap! error %txt"><l>ERROR: target isn't configured as GraphPad</l></custom-block><block s="doStopThis"><l><option>this block</option></l></block></script></block><block s="doAsk"><l>vertex number</l></block><block s="doIf"><block s="reportIsA"><block s="getLastAnswer"></block><l><option>number</option></l></block><script><block s="doSetVar"><l>nr</l><block s="getLastAnswer"></block></block><block s="doAsk"><l>new value</l></block><custom-block s="change content of vertex %n to %txt of graph on %txt"><block var="nr"/><block s="getLastAnswer"></block><block var="target"/></custom-block></script></block></script></block></script></block-definition><block-definition s="set marker of vertex %'n' of graph on %'sprite'" type="command" category="7. GraphPad for graph operations"><comment x="0" y="0" w="131.5491383870445" collapsed="false">Tells a vertex to be marked.</comment><header></header><code></code><translations></translations><inputs><input type="%n">1</input><input type="%txt">thisSprite<options>thisSprite
theStage
anotherSprite</options></input></inputs><script><block s="doDeclareVariables"><list><l>target</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>theStage</l></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>thisSprite</l></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a GraphPad?"><block var="target"/></custom-block></block><script><custom-block s="report SciSnap! error %txt"><l>ERROR: target isn't configured as GraphPad</l></custom-block><block s="doStopThis"><l><option>this block</option></l></block></script></block><block s="doIf"><block s="reportAnd"><block s="reportGreaterThan"><block var="n"/><l>0</l></block><block s="reportLessThanOrEquals"><block var="n"/><block s="reportListAttribute"><l><option>length</option></l><block s="reportAttributeOf"><l>vertexList</l><block var="target"/></block></block></block></block><script><block s="doReplaceInList"><l>5</l><block s="reportListItem"><block var="n"/><block s="reportAttributeOf"><l>vertexList</l><block var="target"/></block></block><block s="reportBoolean"><l><bool>true</bool></l></block></block><custom-block s="draw graph on %txt"><block var="target"/></custom-block></script></block></script></block></script></block-definition><block-definition s="remove marker of vertex %'n' of graph on %'sprite'" type="command" category="7. GraphPad for graph operations"><comment x="0" y="0" w="94.04913838704452" collapsed="false">Deletes a marker.</comment><header></header><code></code><translations></translations><inputs><input type="%n">1</input><input type="%txt">thisSprite<options>thisSprite
theStage
anotherSprite</options></input></inputs><script><block s="doDeclareVariables"><list><l>target</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>theStage</l></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>thisSprite</l></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a GraphPad?"><block var="target"/></custom-block></block><script><custom-block s="report SciSnap! error %txt"><l>ERROR: target isn't configured as GraphPad</l></custom-block><block s="doStopThis"><l><option>this block</option></l></block></script></block><block s="doIf"><block s="reportAnd"><block s="reportGreaterThan"><block var="n"/><l>0</l></block><block s="reportLessThanOrEquals"><block var="n"/><block s="reportListAttribute"><l><option>length</option></l><block s="reportAttributeOf"><l>vertexList</l><block var="target"/></block></block></block></block><script><block s="doReplaceInList"><l>5</l><block s="reportListItem"><block var="n"/><block s="reportAttributeOf"><l>vertexList</l><block var="target"/></block></block><block s="reportBoolean"><l><bool>false</bool></l></block></block><custom-block s="draw graph on %txt"><block var="target"/></custom-block></script></block></script></block></script></block-definition><block-definition s="remove all markers of graph on %'sprite'" type="command" category="7. GraphPad for graph operations"><comment x="0" y="0" w="94.04913838704452" collapsed="false">Deletes all markers.</comment><header></header><code></code><translations></translations><inputs><input type="%txt">thisSprite<options>thisSprite
theStage
anotherSprite</options></input></inputs><script><block s="doDeclareVariables"><list><l>target</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>theStage</l></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>thisSprite</l></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a GraphPad?"><block var="target"/></custom-block></block><script><custom-block s="report SciSnap! error %txt"><l>ERROR: target isn't configured as GraphPad</l></custom-block><block s="doStopThis"><l><option>this block</option></l></block></script></block><block s="doForEach"><l>item</l><block s="reportAttributeOf"><l>vertexList</l><block var="target"/></block><script><block s="doReplaceInList"><l>5</l><block var="item"/><block s="reportBoolean"><l><bool>false</bool></l></block></block></script></block><custom-block s="draw graph on %txt"><block var="target"/></custom-block></script></block></script></block-definition><block-definition s="depth first search of content %'cont' $nl starting at vertex %'nr' of graph on %'sprite'" type="reporter" category="7. GraphPad for graph operations"><comment x="0" y="0" w="132.5" collapsed="false">Depth first search in a graph.</comment><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%n">1</input><input type="%txt">thisSprite<options>thisSprite
theStage
anotherSprite</options></input></inputs><script><block s="doDeclareVariables"><list><l>target</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>theStage</l></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>thisSprite</l></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a GraphPad?"><block var="target"/></custom-block></block><script><block s="doReport"><l>ERROR: target isn't configured as GraphPad!</l></block></script></block><block s="doIfElse"><block s="reportAnd"><block s="reportGreaterThan"><block var="nr"/><l>0</l></block><block s="reportLessThanOrEquals"><block var="nr"/><block s="reportListAttribute"><l><option>length</option></l><block s="reportAttributeOf"><l>vertexList</l><block var="target"/></block></block></block></block><script><block s="doReport"><block s="reportApplyExtension"><l>SciS_depthFirstSearch(amatrix,vlist,cont,n)</l><list><block s="reportAttributeOf"><l>adjacencyMatrix</l><block var="target"/></block><block s="reportAttributeOf"><l>vertexList</l><block var="target"/></block><block var="cont"/><block var="nr"/></list></block></block></script><script><block s="doReport"><l>ERROR: index out of range!</l></block></script></block></script></block></script></block-definition><block-definition s="breadth first search of content %'cont' $nl starting at vertex %'nr' of graph on %'sprite'" type="reporter" category="7. GraphPad for graph operations"><comment x="0" y="0" w="146.66666666666669" collapsed="false">Breadth first search in a graph.</comment><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%n">1</input><input type="%txt">thisSprite<options>thisSprite
theStage
anotherSprite</options></input></inputs><script><block s="doDeclareVariables"><list><l>target</l><l>nextVertices</l><l>vertexNr</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>theStage</l></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>thisSprite</l></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a GraphPad?"><block var="target"/></custom-block></block><script><block s="doReport"><l>ERROR: target isn't configured as GraphPad!</l></block></script></block><block s="doIfElse"><block s="reportAnd"><block s="reportGreaterThan"><block var="nr"/><l>0</l></block><block s="reportLessThanOrEquals"><block var="nr"/><block s="reportListAttribute"><l><option>length</option></l><block s="reportAttributeOf"><l>vertexList</l><block var="target"/></block></block></block></block><script><block s="doReport"><block s="reportApplyExtension"><l>SciS_breadthFirstSearch(amatrix,vlist,cont,n)</l><list><block s="reportAttributeOf"><l>adjacencyMatrix</l><block var="target"/></block><block s="reportAttributeOf"><l>vertexList</l><block var="target"/></block><block var="cont"/><block var="nr"/></list></block></block></script><script><block s="doReport"><l>ERROR: index out of range!</l></block></script></block></script></block></script></block-definition><block-definition s="distance on %'sprite' from vertex %'v1' to vertex %'v2'" type="reporter" category="7. GraphPad for graph operations"><comment x="0" y="0" w="111.66666666666667" collapsed="false">Reports the distance of two vertices.</comment><header></header><code></code><translations></translations><inputs><input type="%txt">thisSprite<options>thisSprite
theStage
anotherSprite</options></input><input type="%n">1</input><input type="%n">2</input></inputs><script><block s="doDeclareVariables"><list><l>target</l><l>vertex1</l><l>vertex2</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>theStage</l></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>thisSprite</l></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a GraphPad?"><block var="target"/></custom-block></block><script><block s="doReport"><l>ERROR: target isn't configured as GraphPad!</l></block></script></block><block s="doIfElse"><block s="reportAnd"><block s="reportAnd"><block s="reportGreaterThan"><block var="v1"/><l>0</l></block><block s="reportLessThanOrEquals"><block var="v1"/><block s="reportListAttribute"><l><option>length</option></l><block s="reportAttributeOf"><l>vertexList</l><block var="target"/></block></block></block></block><block s="reportAnd"><block s="reportGreaterThan"><block var="v2"/><l>0</l></block><block s="reportLessThanOrEquals"><block var="v2"/><block s="reportListAttribute"><l><option>length</option></l><block s="reportAttributeOf"><l>vertexList</l><block var="target"/></block></block></block></block></block><script><block s="doSetVar"><l>vertex1</l><block s="reportListItem"><block var="v1"/><block s="reportAttributeOf"><l>vertexList</l><block var="target"/></block></block></block><block s="doSetVar"><l>vertex2</l><block s="reportListItem"><block var="v2"/><block s="reportAttributeOf"><l>vertexList</l><block var="target"/></block></block></block><block s="doReport"><block s="reportRound"><block s="reportQuotient"><block s="reportMonadic"><l><option>sqrt</option></l><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><block s="reportDifference"><block s="reportListItem"><l>1</l><block var="vertex1"/></block><block s="reportListItem"><l>1</l><block var="vertex2"/></block></block><block s="reportDifference"><block s="reportListItem"><l>1</l><block var="vertex1"/></block><block s="reportListItem"><l>1</l><block var="vertex2"/></block></block></list></block><block s="reportVariadicProduct"><list><block s="reportDifference"><block s="reportListItem"><l>2</l><block var="vertex1"/></block><block s="reportListItem"><l>2</l><block var="vertex2"/></block></block><block s="reportDifference"><block s="reportListItem"><l>2</l><block var="vertex1"/></block><block s="reportListItem"><l>2</l><block var="vertex2"/></block></block></list></block></list></block></block><l>10</l></block></block></block></script><script><block s="doReport"><l>ERROR: index out of range!</l></block></script></block></script></block></script></block-definition><block-definition s="shortest path in graph from vertex %'startVertex' $nl to vertex %'endVertex' on %'sprite'" type="reporter" category="7. GraphPad for graph operations"><comment x="0" y="0" w="147.8313293457031" collapsed="false">Shortes path between two vertices, using Dijkstra-method.</comment><header></header><code></code><translations></translations><inputs><input type="%n">1</input><input type="%n">2</input><input type="%txt">thisSprite<options>thisSprite
theStage
anotherSprite</options></input></inputs><script><block s="doDeclareVariables"><list><l>completedVertices</l><l>distances</l><l>openTuples</l><l>result</l><l>actualTuple</l><l>i</l><l>j</l><l>k</l><l>actualDistance</l><l>target</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>theStage</l></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>thisSprite</l></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a GraphPad?"><block var="target"/></custom-block></block><script><block s="doReport"><l>ERROR: target isn't configured as GraphPad!</l></block></script></block><block s="doIfElse"><block s="reportAnd"><block s="reportAnd"><block s="reportGreaterThan"><block var="startVertex"/><l>0</l></block><block s="reportLessThanOrEquals"><block var="startVertex"/><block s="reportListAttribute"><l><option>length</option></l><block s="reportAttributeOf"><l>vertexList</l><block var="target"/></block></block></block></block><block s="reportAnd"><block s="reportGreaterThan"><block var="endVertex"/><l>0</l></block><block s="reportLessThanOrEquals"><block var="endVertex"/><block s="reportListAttribute"><l><option>length</option></l><block s="reportAttributeOf"><l>vertexList</l><block var="target"/></block></block></block></block></block><script><block s="doReport"><block s="reportApplyExtension"><l>SciS_shortestPath(amatrix,start,end)</l><list><block s="reportAttributeOf"><l>adjacencyMatrix</l><block var="target"/></block><block var="startVertex"/><block var="endVertex"/></list></block></block></script><script><block s="doReport"><l>ERROR: index out of range!</l></block></script></block></script></block></script></block-definition><block-definition s="list of all shortest paths in graph from vertex %'startVertex' $nl to all connected vertices of graph on %'sprite'" type="reporter" category="7. GraphPad for graph operations"><comment x="0" y="0" w="195.11549479166644" collapsed="false">Shortes paths between startVertex and all connected vertices, using Dijkstra-method.</comment><header></header><code></code><translations></translations><inputs><input type="%n">1</input><input type="%txt">thisSprite<options>thisSprite
theStage
anotherSprite</options></input></inputs><script><block s="doDeclareVariables"><list><l>completedVertices</l><l>distances</l><l>openTuples</l><l>result</l><l>actualTuple</l><l>i</l><l>j</l><l>k</l><l>actualDistance</l><l>target</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>theStage</l></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>thisSprite</l></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a GraphPad?"><block var="target"/></custom-block></block><script><block s="doReport"><l>ERROR: target isn't configured as GraphPad!</l></block></script></block><block s="doIfElse"><block s="reportAnd"><block s="reportGreaterThan"><block var="startVertex"/><l>0</l></block><block s="reportLessThanOrEquals"><block var="startVertex"/><block s="reportListAttribute"><l><option>length</option></l><block s="reportAttributeOf"><l>vertexList</l><block var="target"/></block></block></block></block><script><block s="doReport"><block s="reportApplyExtension"><l>SciS_allShortestPaths(amatrix,start)</l><list><block s="reportAttributeOf"><l>adjacencyMatrix</l><block var="target"/></block><block var="startVertex"/></list></block></block></script><script><block s="doReport"><l>ERROR: index out of range!</l></block></script></block></script></block></script></block-definition><block-definition s="vertexnumber at %'x' %'y' of graph on %'sprite'" type="reporter" category="7. GraphPad for graph operations"><comment x="0" y="0" w="155" collapsed="false">Returns the vertexnumber of a vertex near (x|y), if there is one.</comment><header></header><code></code><translations></translations><inputs><input type="%n">100</input><input type="%n">50</input><input type="%txt">thisSprite<options>thisSprite
theStage
anotherSprite</options></input></inputs><script><block s="doDeclareVariables"><list><l>target</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>theStage</l></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>thisSprite</l></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a GraphPad?"><block var="target"/></custom-block></block><script><block s="doReport"><l>ERROR: target isn't configured as GraphPad!</l></block></script></block><block s="doReport"><block s="reportApplyExtension"><l>SciS_vertexnumberAtGraph(vlist,cAttributes,vAttributes,x,y)</l><list><block s="reportAttributeOf"><l>vertexList</l><block var="target"/></block><custom-block s="GraphPadProperty %txt of %txt"><l>costumeProperties</l><block var="target"/></custom-block><custom-block s="GraphPadProperty %txt of %txt"><l>vertexProperties</l><block var="target"/></custom-block><block var="x"/><block var="y"/></list></block></block></script></block></script></block-definition><block-definition s="point %'x' %'y' on sprite/stage $arrowRightOutline point on graph %'sprite'" type="reporter" category="7. GraphPad for graph operations"><header></header><code></code><translations></translations><inputs><input type="%n">0</input><input type="%n">0</input><input type="%s">thisSprite<options>thisSprite
theStage
anotherSprite</options></input></inputs><script><block s="doDeclareVariables"><list><l>target</l><l>targetSize</l><l>targetX</l><l>targetY</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>theStage</l></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>thisSprite</l></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a GraphPad?"><block var="target"/></custom-block></block><script><block s="doReport"><l>ERROR: target isn't configured as GraphPad!</l></block></script></block><block s="doSetVar"><l>targetSize</l><block s="reportAttributeOf"><l><option>size</option></l><block var="target"/></block></block><block s="doReport"><block s="reportNewList"><list><block s="reportRound"><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><l>100</l><block s="reportQuotient"><block s="reportDifference"><block var="x"/><block s="reportAttributeOf"><l><option>x position</option></l><block var="target"/></block></block><block var="targetSize"/></block></list></block><l>1</l></list></block></block><block s="reportRound"><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><l>100</l><block s="reportQuotient"><block s="reportDifference"><block var="y"/><block s="reportAttributeOf"><l><option>y position</option></l><block var="target"/></block></block><block var="targetSize"/></block></list></block><l>1</l></list></block></block></list></block></block></script></block></script></block-definition><block-definition s="vertexnumber of %'content' in graph of %'sprite'" type="reporter" category="7. GraphPad for graph operations"><comment x="0" y="0" w="150.83333333333334" collapsed="false">Reports the vertexnumber of the vertex with the specified content. If not found then reports 0.</comment><header></header><code></code><translations></translations><inputs><input type="%s">Peter</input><input type="%s">thisSprite<options>thisSprite
theStage
anotherSprite</options></input></inputs><script><block s="doDeclareVariables"><list><l>nr</l><l>target</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>theStage</l></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>thisSprite</l></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a GraphPad?"><block var="target"/></custom-block></block><script><block s="doReport"><l>ERROR: target isn't configured as GraphPad!</l></block></script></block><block s="doSetVar"><l>nr</l><l>0</l></block><block s="doForEach"><l>item</l><block s="reportAttributeOf"><l>vertexList</l><l>FamilyTree</l></block><script><block s="doChangeVar"><l>nr</l><l>1</l></block><block s="doIf"><block s="reportEquals"><block s="reportListItem"><l>4</l><block var="item"/></block><block var="content"/></block><script><block s="doReport"><block var="nr"/></block></script></block></script></block><block s="doReport"><block var="nr"/></block></script></block></script></block-definition><block-definition s="Graph example 1: small worlds (needs some seconds)" type="reporter" category="7. GraphPad for graph operations"><header></header><code></code><translations></translations><inputs></inputs><script><custom-block s="configure %s as a GraphPad width: %n %br height: %n color: %n %n %n"><l>thisSprite</l><l>400</l><l>300</l><l>245</l><l>245</l><l>245</l></custom-block><custom-block s="add %n random vertices to graph on %txt"><l>100</l><l>thisSprite</l></custom-block><custom-block s="add %n random edges to graph on %txt"><l>100</l><l>thisSprite</l></custom-block><block s="doSayFor"><l>mean distance between the nodes: ...</l><l>2</l></block><block s="doReport"><custom-block s="%s of vector %l"><l>mean</l><block s="reportMap"><block s="reifyReporter"><autolambda><custom-block s="%s of vector %l"><l>mean</l><custom-block s="%s %s of %s with first item? %b"><l>column</l><l>2</l><custom-block s="list of all shortest paths in graph from vertex %n %br to all connected vertices of graph on %txt"><l></l><l>thisSprite</l></custom-block><l><bool>true</bool></l></custom-block></custom-block></autolambda><list></list></block><block s="reportNumbers"><l>1</l><block s="reportListAttribute"><l><option>length</option></l><block var="vertexList"/></block></block></block></custom-block></block></script></block-definition><block-definition s="Graph example 2: distribution of links" type="command" category="7. GraphPad for graph operations"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doDeclareVariables"><list><l>diagramSprite</l></list></block><custom-block s="configure %s as a GraphPad width: %n %br height: %n color: %n %n %n"><l>thisSprite</l><l>400</l><l>300</l><l>245</l><l>245</l><l>245</l></custom-block><custom-block s="add %n random vertices to graph on %txt"><l>100</l><l>thisSprite</l></custom-block><custom-block s="add %n random edges to graph on %txt"><l>100</l><l>thisSprite</l></custom-block><block s="doWait"><l>1</l></block><block s="doSetVar"><l>SciSnap!Data</l><block s="reportMap"><block s="reifyReporter"><script><block s="doIfElse"><block s="reportIsA"><l></l><l><option>number</option></l></block><script><block s="doReport"><l></l></block></script><script><block s="doReport"><l>0</l></block></script></block></script><list></list></block><block s="reportMap"><block s="reifyReporter"><autolambda><custom-block s="%s of vector %l"><l>number</l><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportNotEquals"><l></l><l>X</l></block></autolambda><list></list></block><l/></block></custom-block></autolambda><list></list></block><block var="adjacencyMatrix"/></block></block></block><block s="doSetVar"><l>diagramSprite</l><custom-block s="create a duplicate of %obj %br with name %txt"><block s="reportGet"><l><option>self</option></l></block><l>DiagramSprite</l></custom-block></block><custom-block s="configure %txt as a PlotPad width: %n %br height: %n color: %n %n %n"><l>DiagramSprite</l><l>400</l><l>300</l><l>245</l><l>245</l><l>245</l></custom-block><custom-block s="set PlotPad labels on %s to %br title: %txt titleheight: %n %br x-label: %txt xLabelheight: %n %br y-label: %txt yLabelheight: %n"><l>DiagramSprite</l><l>Edges per Node</l><l>18</l><l>Number of Edges</l><l>16</l><l>Number of Vertices</l><l>16</l></custom-block><custom-block s="add histogram of %s with %n groups %br pretty formated? %b to PlotPad %txt"><block var="SciSnap!Data"/><l>10</l><l><bool>true</bool></l><l>DiagramSprite</l></custom-block><custom-block s="add axes and scales to PlotPad %txt"><l>DiagramSprite</l></custom-block></script></block-definition><block-definition s="create a duplicate of %'sprite' $nl with name %'spriteName'" type="reporter" category="control" helper="true"><header></header><code></code><translations></translations><inputs><input type="%obj"></input><input type="%txt">spriteName</input></inputs><script><block s="doDeclareVariables"><list><l>existingSprites</l><l>newSprite</l></list></block><block s="doSetVar"><l>existingSprites</l><block s="reportGet"><l><option>other sprites</option></l></block></block><block s="doApplyExtension"><l>SciS_createDuplicate(sprite,spriteName)</l><list><block var="sprite"/><block var="spriteName"/></list></block><block s="doForEach"><l>item</l><block s="reportGet"><l><option>other sprites</option></l></block><script><block s="doIf"><block s="reportNot"><block s="reportListContainsItem"><block var="existingSprites"/><block var="item"/></block></block><script><block s="doSetVar"><l>newSprite</l><block var="item"/></block></script></block></script></block><block s="doReport"><block var="newSprite"/></block></script></block-definition><block-definition s="create a permanent clone of %'sprite' $nl with name %'spriteName'" type="reporter" category="control" helper="true"><header></header><code></code><translations></translations><inputs><input type="%obj"></input><input type="%txt">spriteName</input></inputs><script><block s="doDeclareVariables"><list><l>existingSprites</l><l>newSprite</l></list></block><block s="doSetVar"><l>existingSprites</l><block s="reportGet"><l><option>other sprites</option></l></block></block><block s="doApplyExtension"><l>SciS_createPermanentClone(sprite,spriteName)</l><list><block var="sprite"/><block var="spriteName"/></list></block><block s="doForEach"><l>item</l><block s="reportGet"><l><option>other sprites</option></l></block><script><block s="doIf"><block s="reportNot"><block s="reportListContainsItem"><block var="existingSprites"/><block var="item"/></block></block><script><block s="doSetVar"><l>newSprite</l><block var="item"/></block></script></block></script></block><block s="doReport"><block var="newSprite"/></block></script></block-definition><block-definition s="import Sprite" type="command" category="control"><comment x="0" y="0" w="203.01093750000027" collapsed="false">Imports a stored sprite from a file.</comment><header></header><code></code><translations></translations><inputs></inputs><script><block s="doDeclareVariables"><list><l>ready</l></list></block><block s="doSetVar"><l>ready</l><block s="reportApplyExtension"><l>SciS_importSprite1()</l><list></list></block></block><block s="doWaitUntil"><block s="reportListItem"><l>1</l><block s="evaluate"><block var="ready"/><list></list></block></block></block><block s="doApplyExtension"><l>SciS_importSprite2(data)</l><list><block s="reportListItem"><l>2</l><block s="evaluate"><block var="ready"/><list></list></block></block></list></block></script></block-definition><block-definition s="change SpriteName to %'newName'" type="command" category="control" helper="true"><header></header><code></code><translations></translations><inputs><input type="%txt">new name</input></inputs><script><block s="doApplyExtension"><l>SciS_changeSpritenameTo(newName)</l><list><block var="newName"/></list></block></script></block-definition><block-definition s="import library to category %'category'" type="command" category="1. SciSnap! globals"><comment x="0" y="0" w="402.9591145833335" collapsed="false">Imports stored blocks to another palette. All blocks should be from the same category!</comment><header></header><code></code><translations></translations><inputs><input type="%s">Looks</input></inputs><script><block s="doDeclareVariables"><list><l>library</l><l>oldcat</l><l>begin</l><l>end</l><l>ok</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>category</l><custom-block s="lower case %s"><block var="category"/></custom-block></block><block s="doSetVar"><l>ok</l><block s="reportApplyExtension"><l>SciS_importLibrary1(catName)</l><list><block var="category"/></list></block></block><block s="doIf"><block s="reportNot"><block var="ok"/></block><script><custom-block s="report SciSnap! error %txt"><l>ERROR: unknown category!</l></custom-block><block s="doStopThis"><l><option>this block</option></l></block></script></block><block s="doSetVar"><l>library</l><custom-block s="read file with filepicker"></custom-block></block><block s="doSetVar"><l>begin</l><block s="reportVariadicSum"><list><custom-block s="index of %txt in %txt"><l>category=</l><block var="library"/></custom-block><l>10</l></list></block></block><block s="doSetVar"><l>end</l><custom-block s="index of %txt in %txt"><l>"</l><custom-block s="substring of %txt from %n to %n"><block var="library"/><block var="begin"/><block s="reportVariadicSum"><list><block var="begin"/><l>50</l></list></block></custom-block></custom-block></block><block s="doSetVar"><l>oldcat</l><custom-block s="substring of %txt from %n to %n"><block var="library"/><block var="begin"/><block s="reportDifference"><block s="reportVariadicSum"><list><block var="begin"/><block var="end"/></list></block><l>2</l></block></custom-block></block><block s="doSetVar"><l>library</l><custom-block s="replace %txt %txt with %txt in %txt"><l>all</l><block s="reportJoinWords"><list><l>"</l><block var="oldcat"/><l>"</l></list></block><block s="reportJoinWords"><list><l>"</l><custom-block s="lower case %s"><block var="category"/></custom-block><l>"</l></list></block><block var="library"/></custom-block></block><block s="doApplyExtension"><l>SciS_importLibrary2(src)</l><list><block var="library"/></list></block></script></block></script></block-definition><block-definition s="configure %'sprite' as a NeuralNetPad width: %'width' $nl height: %'height' color: %'r' %'g' %'b'" type="command" category="8. NNPad for neural networks"><comment x="0" y="0" w="178.33333333333334" collapsed="false">Creates a new empty costume of the specified size and color ans sets local properties for a NeuralNet.</comment><header></header><code></code><translations></translations><inputs><input type="%s">thisSprite<options>thisSprite
theStage
anotherSprite</options></input><input type="%n">400</input><input type="%n">300</input><input type="%n">245</input><input type="%n">245</input><input type="%n">245</input></inputs><script><block s="doWarp"><script><block s="doDeclareVariables"><list><l>target</l><l>costumeWidth</l><l>costumeHeight</l></list></block><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>theStage</l></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>thisSprite</l></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIfElse"><block s="reportIsIdentical"><block var="target"/><block s="reportObject"><l>Stage</l></block></block><script><block s="doSetVar"><l>sprite</l><l>theStage</l></block><block s="doSetVar"><l>costumeWidth</l><block s="reportAttributeOf"><l><option>width</option></l><l>Stage</l></block></block><block s="doSetVar"><l>costumeHeight</l><block s="reportAttributeOf"><l><option>height</option></l><l>Stage</l></block></block></script><script><block s="doTellTo"><block var="target"/><block s="reifyScript"><script><block s="gotoXY"><l>0</l><l>0</l></block><block s="setHeading"><l>90</l></block><block s="show"></block></script><list></list></block><list></list></block><block s="doSetVar"><l>costumeWidth</l><block var="width"/></block><block s="doSetVar"><l>costumeHeight</l><block var="height"/></block></script></block><block s="doTellTo"><block var="target"/><block s="reifyScript"><script><block s="doApplyExtension"><l>var_declare(scope, name)</l><list><l>sprite</l><l>myProperties</l></list></block><block s="doApplyExtension"><l>var_declare(scope, name)</l><list><l>sprite</l><l>myData</l></list></block><block s="doSetVar"><l>myProperties</l><block s="reportNewList"><list></list></block></block><block s="doSetVar"><l>myData</l><block s="reportNewList"><list></list></block></block><block s="doSwitchToCostume"><block s="reportApplyExtension"><l>SciS_newcostume(w,h,r,g,b)</l><list><block var="costumeWidth"/><block var="costumeHeight"/><block var="r"/><block var="g"/><block var="b"/></list></block></block><block s="doAddToList"><block s="reportNewList"><list><l>typeOfConfiguration</l><l>NNPad</l></list></block><block var="myProperties"/></block><block s="doAddToList"><block s="reportNewList"><list><l>typeOfData</l><l>weights</l></list></block><block var="myProperties"/></block><block s="doAddToList"><block s="reportNewList"><list><l>netProperties</l><block s="reportNewList"><list><l>0</l><l>0</l><block var="width"/><block var="height"/></list></block></list></block><block var="myProperties"/></block><block s="doAddToList"><block s="reportNewList"><list><l>edgeProperties</l><block s="reportNewList"><list><l>1</l><l>0</l><l>0</l><l>0</l><block s="reportBoolean"><l><bool>false</bool></l></block><block s="reportBoolean"><l><bool>false</bool></l></block><block s="reportBoolean"><l><bool>false</bool></l></block></list></block></list></block><block var="myProperties"/></block></script><list></list></block><list></list></block><block s="doIfElse"><block s="reportIsIdentical"><block var="target"/><block s="reportObject"><l>Stage</l></block></block><script><block s="doTellTo"><l>Stage</l><block s="reifyScript"><script><block s="doAddToList"><block s="reportNewList"><list><l>costumeProperties</l><block s="reportNewList"><list><block s="reportAttributeOf"><l><option>width</option></l><l>Stage</l></block><block s="reportAttributeOf"><l><option>height</option></l><l>Stage</l></block><block var="r"/><block var="g"/><block var="b"/><block s="reportQuotient"><block s="reportDifference"><block s="reportAttributeOf"><l><option>width</option></l><l>Stage</l></block><block var="width"/></block><l>2</l></block><block s="reportQuotient"><block s="reportDifference"><block s="reportAttributeOf"><l><option>height</option></l><l>Stage</l></block><block var="height"/></block><l>2</l></block></list></block></list></block><block var="myProperties"/></block></script><list></list></block><list></list></block></script><script><block s="doTellTo"><block var="target"/><block s="reifyScript"><script><block s="doAddToList"><block s="reportNewList"><list><l>costumeProperties</l><block s="reportNewList"><list><block var="width"/><block var="height"/><block var="r"/><block var="g"/><block var="b"/><l>0</l><l>0</l></list></block></list></block><block var="myProperties"/></block></script><list></list></block><list></list></block></script></block></script></block></script><scripts><comment x="462.61067708333337" y="113.30555555555554" w="192.5" collapsed="false">costume properties:
1: width
2: height
3: back color red
4: back color green
5: back color blue
6: left offset for NN position on stage
7: upper offset for NN position on stage

neural net properties:
1: number of layers
2: layer width
3: width of NN image
4: height of NN image</comment></scripts></block-definition><block-definition s="is %'sprite' a NNPad?" type="predicate" category="8. NNPad for neural networks"><header></header><code></code><translations></translations><inputs><input type="%s">thisSprite<options>thisSprite
theStage
anotherSprite</options></input></inputs><script><block s="doWarp"><script><block s="doIfElse"><block s="reportEquals"><block var="sprite"/><l>thisSprite</l></block><script><block s="doReport"><block s="reportAskFor"><block s="reportObject"><l><option>myself</option></l></block><block s="reifyReporter"><autolambda><custom-block s="is the global %b property %txt %br with value %s present ?"><l><bool>false</bool></l><l>typeOfConfiguration</l><l>NNPad</l></custom-block></autolambda><list></list></block><list></list></block></block></script><script><block s="doIfElse"><block s="reportEquals"><block var="sprite"/><l>theStage</l></block><script><block s="doReport"><block s="reportAskFor"><l>Stage</l><block s="reifyReporter"><autolambda><custom-block s="is the global %b property %txt %br with value %s present ?"><l><bool>false</bool></l><l>typeOfConfiguration</l><l>NNPad</l></custom-block></autolambda><list></list></block><list></list></block></block></script><script><block s="doReport"><block s="reportAskFor"><block s="reportObject"><block var="sprite"/></block><block s="reifyReporter"><autolambda><custom-block s="is the global %b property %txt %br with value %s present ?"><l><bool>false</bool></l><l>typeOfConfiguration</l><l>NNPad</l></custom-block></autolambda><list></list></block><list></list></block></block></script></block></script></block></script></block></script></block-definition><block-definition s="NNPadProperty %'name' of %'sprite'" type="reporter" category="8. NNPad for neural networks"><comment x="0" y="0" w="92.5" collapsed="false">Reads the value of an existing property.</comment><header></header><code></code><translations></translations><inputs><input type="%txt">netProperties<options>typeOfConfiguration
typeOfData
costumeProperties
netProperties</options></input><input type="%txt">thisSprite<options>thisSprite
theStage
anotherSprite</options></input></inputs><script><block s="doDeclareVariables"><list><l>result</l><l>h</l><l>target</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>theStage</l></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>thisSprite</l></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a NNPad?"><block var="target"/></custom-block></block><script><block s="doReport"><l>ERROR: target isn't configured as NNPad!</l></block></script></block><block s="doSetVar"><l>result</l><l>not found</l></block><block s="doSetVar"><l>name</l><block s="reportListItem"><l>1</l><block s="reportTextSplit"><block var="name"/><l> </l></block></block></block><block s="doSetVar"><l>h</l><block s="reportMap"><block s="reifyReporter"><script><block s="doIf"><block s="reportEquals"><block var="name"/><block s="reportListItem"><l>1</l><l/></block></block><script><block s="doSetVar"><l>result</l><block s="reportListItem"><l>2</l><l/></block></block></script></block><block s="doReport"><l></l></block></script><list></list></block><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block></block></block><block s="doReport"><block var="result"/></block></script></block></script></block-definition><block-definition s="set NNPadProperty %'name' of %'sprite' to %'value'" type="command" category="8. NNPad for neural networks"><comment x="0" y="0" w="131.66666666666669" collapsed="false">Sets the value of an existing property or inserts it anew.</comment><header></header><code></code><translations></translations><inputs><input type="%txt">netProperties<options>typeOfConfiguration
typeOfData
costumeProperties
netProperties</options></input><input type="%txt">thisSprite<options>thisSprite
theStage
anotherSprite</options></input><input type="%s"></input></inputs><script><block s="doDeclareVariables"><list><l>done</l><l>h</l><l>target</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>theStage</l></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>thisSprite</l></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a NNPad?"><block var="target"/></custom-block></block><script><custom-block s="report SciSnap! error %txt"><l>ERROR: target isn't configured as NNPad</l></custom-block><block s="doStopThis"><l><option>this block</option></l></block></script></block><block s="doSetVar"><l>name</l><block s="reportListItem"><l>1</l><block s="reportTextSplit"><block var="name"/><l> </l></block></block></block><block s="doSetVar"><l>done</l><block s="reportBoolean"><l><bool>false</bool></l></block></block><block s="doSetVar"><l>h</l><block s="reportMap"><block s="reifyReporter"><script><block s="doIf"><block s="reportEquals"><block var="name"/><block s="reportListItem"><l>1</l><l/></block></block><script><block s="doReplaceInList"><l>2</l><l/><block var="value"/></block><block s="doSetVar"><l>done</l><block s="reportBoolean"><l><bool>true</bool></l></block></block></script></block><block s="doReport"><l></l></block></script><list></list></block><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block></block></block><block s="doIf"><block s="reportNot"><block var="done"/></block><script><block s="doTellTo"><block var="target"/><block s="reifyScript"><script><block s="doAddToList"><l></l><l/></block></script><list></list></block><list><block s="reportNewList"><list><block var="name"/><block var="value"/></list></block><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block></list></block></script></block></script></block></script></block-definition><block-definition s="set NNPad costume properties width: %'width' $nl height: %'height' color: %'r' %'g' %'b' $nl offsets: %'leftOffset' %'upperOffset' on %'sprite'" type="command" category="8. NNPad for neural networks"><comment x="0" y="0" w="214.32706197102902" collapsed="false">a simple way to set some costume attributes:
1: width
2: height
3: back color red
4: back color green
5: back color blue
6: left offset for NN
 position on stage
7: upper offset for NN
 position on stage</comment><header></header><code></code><translations></translations><inputs><input type="%n">400</input><input type="%n">300</input><input type="%n">245</input><input type="%n">245</input><input type="%n">245</input><input type="%n">0</input><input type="%n">0</input><input type="%txt">thisSprite<options>thisSprite
theStage
anotherSprite</options></input></inputs><script><block s="doDeclareVariables"><list><l>target</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>theStage</l></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>thisSprite</l></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a NNPad?"><block var="target"/></custom-block></block><script><custom-block s="report SciSnap! error %txt"><l>ERROR: target isn't configured as NNPad</l></custom-block><block s="doStopThis"><l><option>this block</option></l></block></script></block><custom-block s="set NNPadProperty %txt of %txt to %s"><l>costumeProperties</l><block var="target"/><block s="reportNewList"><list><block var="width"/><block var="height"/><block var="r"/><block var="g"/><block var="b"/><block var="leftOffset"/><block var="upperOffset"/></list></block></custom-block><block s="doTellTo"><block var="target"/><block s="reifyScript"><script><block s="doSwitchToCostume"><block s="reportApplyExtension"><l>SciS_newcostume(w,h,r,g,b)</l><list><block var="width"/><block var="height"/><block var="r"/><block var="g"/><block var="b"/></list></block></block></script><list></list></block><list></list></block></script></block></script></block-definition><block-definition s="set NNPad properties numberOfLayers: %'layers' layerWidth: %'layerWidth' $nl imageWidth: %'netWidth' imageHeight: %'netHeight' on %'sprite'" type="command" category="8. NNPad for neural networks"><comment x="0" y="0" w="196.82706197102902" collapsed="false">a simple way to set some net attributes:
1: number of layers
2: layer width
3: width of NN image
4: height of NN image</comment><header></header><code></code><translations></translations><inputs><input type="%n">2</input><input type="%n">3</input><input type="%n">400</input><input type="%n">300</input><input type="%txt">thisSprite<options>thisSprite
theStage
anotherSprite</options></input></inputs><script><block s="doDeclareVariables"><list><l>target</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>theStage</l></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>thisSprite</l></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a NNPad?"><block var="target"/></custom-block></block><script><custom-block s="report SciSnap! error %txt"><l>ERROR: target isn't configured as NNPad</l></custom-block><block s="doStopThis"><l><option>this block</option></l></block></script></block><custom-block s="set NNPadProperty %txt of %txt to %s"><l>netProperties</l><block var="target"/><block s="reportNewList"><list><block var="layers"/><block var="layerWidth"/><block var="netWidth"/><block var="netHeight"/></list></block></custom-block></script></block></script></block-definition><block-definition s="NN output of %'n' layer with input %'input' on %'sprite'" type="reporter" category="8. NNPad for neural networks"><comment x="0" y="0" w="173.33333333333334" collapsed="false">Reports the output of the nth layer of a neural network with given input.</comment><header></header><code></code><translations></translations><inputs><input type="%s">last<options>1
last</options></input><input type="%l"></input><input type="%txt">thisSprite<options>thisSprite
theStage
anotherSprite</options></input></inputs><script><block s="doDeclareVariables"><list><l>target</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>theStage</l></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>thisSprite</l></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a NNPad?"><block var="target"/></custom-block></block><script><block s="doReport"><l>ERROR: target isn't configured as NNPad!</l></block></script></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a %txt"><block var="input"/><l>vector</l></custom-block></block><script><block s="doReport"><l>ERROR: wrong data format, numerical input required!</l></block></script></block><block s="doIfElse"><block s="reportNot"><block s="reportEquals"><block s="reportListItem"><l>2</l><custom-block s="NNPadProperty %txt of %txt"><l>netProperties</l><block var="target"/></custom-block></block><block s="reportListAttribute"><l><option>length</option></l><block var="input"/></block></block></block><script><block s="doReport"><l>ERROR: the input should match the net width</l></block></script><script><block s="doReport"><block s="reportApplyExtension"><l>SciS_NNoutput(weights,width,depth,n,input)</l><list><block s="reportAttributeOf"><l>myData</l><block var="target"/></block><block s="reportListItem"><l>2</l><custom-block s="NNPadProperty %txt of %txt"><l>netProperties</l><block var="target"/></custom-block></block><block s="reportListItem"><l>1</l><custom-block s="NNPadProperty %txt of %txt"><l>netProperties</l><block var="target"/></custom-block></block><block var="n"/><block var="input"/></list></block></block></script></block></script></block></script></block-definition><block-definition s="NN add new weights for %'depth' layers of width %'width' on %'sprite'" type="command" category="8. NNPad for neural networks"><comment x="0" y="0" w="146.42857142857167" collapsed="false">Creates a fully connected neural network of perceptrons. Inputs should be connected to layer 1, outputs to last layer.</comment><header></header><code></code><translations></translations><inputs><input type="%n">2</input><input type="%n">3</input><input type="%txt">thisSprite<options>thisSprite
theStage
anotherSprite</options></input></inputs><script><block s="doDeclareVariables"><list><l>weights</l><l>row</l><l>matrix</l><l>target</l><l>properties</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>theStage</l></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>thisSprite</l></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a NNPad?"><block var="target"/></custom-block></block><script><custom-block s="report SciSnap! error %txt"><l>ERROR: target isn't configured as NNPad</l></custom-block><block s="doStopThis"><l><option>this block</option></l></block></script></block><block s="doTellTo"><block var="target"/><block s="reifyScript"><script><block s="doSetVar"><l></l><l></l></block></script><list></list></block><list><l>myData</l><block s="reportNewList"><list></list></block></list></block><block s="doRepeat"><block var="depth"><comment w="115.85714185714295" collapsed="false">one matrix for each layer</comment></block><script><block s="doSetVar"><l>matrix</l><block s="reportNewList"><list></list></block></block><block s="doFor"><l>i</l><l>1</l><block var="width"/><script><block s="doSetVar"><l>row</l><block s="reportNewList"><list></list></block></block><block s="doFor"><l>j</l><l>1</l><block var="width"/><script><block s="doAddToList"><custom-block s="random"></custom-block><block var="row"/></block></script></block><block s="doAddToList"><l>1</l><block var="row"/></block><block s="doAddToList"><block var="row"/><block var="matrix"/></block></script></block><block s="doTellTo"><block var="target"/><block s="reifyScript"><script><block s="doAddToList"><l></l><l/></block></script><list></list></block><list><block var="matrix"/><block s="reportAttributeOf"><l>myData</l><block var="target"/></block></list></block></script></block><block s="doSetVar"><l>properties</l><custom-block s="NNPadProperty %txt of %txt"><l>netProperties</l><block var="target"/></custom-block></block><custom-block s="set NNPadProperty %txt of %txt to %s"><l>netProperties</l><block var="target"/><block s="reportNewList"><list><block var="depth"/><block var="width"/><block s="reportListItem"><l>3</l><block var="properties"/></block><block s="reportListItem"><l>4</l><block var="properties"/></block></list></block></custom-block><custom-block s="set NNPadProperty %txt of %txt to %s"><l>typeOfData</l><block var="target"/><l>weights</l></custom-block></script></block></script></block-definition><block-definition s="NN show status with input %'input' on %'sprite'" type="command" category="8. NNPad for neural networks"><comment x="0" y="0" w="133.33333333333334" collapsed="false">Draws the nodes and current status of connections of an NN as new costume.</comment><header></header><code></code><translations></translations><inputs><input type="%l"></input><input type="%txt">thisSprite<options>thisSprite
theStage
anotherSprite</options></input></inputs><script><block s="doDeclareVariables"><list><l>depth</l><l>layerOutputs</l><l>netWidth</l><l>target</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>theStage</l></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>thisSprite</l></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a NNPad?"><block var="target"/></custom-block></block><script><custom-block s="report SciSnap! error %txt"><l>ERROR: target isn't configured as NNPad</l></custom-block><block s="doStopThis"><l><option>this block</option></l></block></script></block><block s="doSetVar"><l>netWidth</l><block s="reportListItem"><l>2</l><custom-block s="NNPadProperty %txt of %txt"><l>netProperties</l><block var="target"/></custom-block></block></block><block s="doIfElse"><block s="reportNot"><block s="reportEquals"><block var="netWidth"/><block s="reportListAttribute"><l><option>length</option></l><block var="input"/></block></block></block><script><custom-block s="report SciSnap! error %txt"><l>ERROR: input doesn't match netwidth!</l></custom-block><block s="doStopThis"><l><option>this block</option></l></block></script><script><block s="doSetVar"><l>depth</l><block s="reportListItem"><l>1</l><custom-block s="NNPadProperty %txt of %txt"><l>netProperties</l><block var="target"/></custom-block></block></block><block s="doSetVar"><l>layerOutputs</l><block s="reportNewList"><list></list></block></block><block s="doAddToList"><block var="input"/><block var="layerOutputs"/></block><block s="doFor"><l>i</l><l>1</l><block var="depth"/><script><block s="doAddToList"><custom-block s="NN output of %s layer with input %l on %txt"><block var="i"/><block var="input"/><block var="target"/></custom-block><block var="layerOutputs"/></block></script></block></script></block><block s="doTellTo"><block var="target"/><block s="reifyScript"><script><block s="doSwitchToCostume"><l></l></block></script><list></list></block><list><block s="reportApplyExtension"><l>SciS_NNshowStatus(cAttributes,nAttributes,weights,outputs,costume,sprite)</l><list><custom-block s="NNPadProperty %txt of %txt"><l>costumeProperties</l><block var="target"/></custom-block><custom-block s="NNPadProperty %txt of %txt"><l>netProperties</l><block var="target"/></custom-block><block s="reportAttributeOf"><l>myData</l><block var="target"/></block><block var="layerOutputs"/><block s="reportAskFor"><block var="target"/><block s="reifyReporter"><autolambda><block s="reportGet"><l><option>costume</option></l></block></autolambda><list></list></block><list></list></block><block var="sprite"/></list></block></list></block></script></block></script></block-definition><block-definition s="teach NN with input %'input' and target output %'output' by back- $nl propagation with learning factor %'eta' on %'sprite'" type="command" category="8. NNPad for neural networks"><comment x="0" y="0" w="154.83333333333331" collapsed="false">A block for teaching a neural net.</comment><header></header><code></code><translations></translations><inputs><input type="%l"></input><input type="%l"></input><input type="%n">0.1</input><input type="%txt">thisSprite<options>thisSprite
theStage
anotherSprite</options></input></inputs><script><block s="doDeclareVariables"><list><l>target</l><l>width</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>theStage</l></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>thisSprite</l></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a NNPad?"><block var="target"/></custom-block></block><script><custom-block s="report SciSnap! error %txt"><l>ERROR: target isn't configured as NNPad</l></custom-block><block s="doStopThis"><l><option>this block</option></l></block></script></block><block s="doSetVar"><l>width</l><block s="reportListItem"><l>2</l><custom-block s="NNPadProperty %txt of %txt"><l>netProperties</l><block var="target"/></custom-block></block></block><block s="doIfElse"><block s="reportNot"><block s="reportAnd"><block s="reportEquals"><block var="width"/><block s="reportListAttribute"><l><option>length</option></l><block var="input"/></block></block><block s="reportEquals"><block var="width"/><block s="reportListAttribute"><l><option>length</option></l><block var="output"/></block></block></block></block><script><custom-block s="report SciSnap! error %txt"><l>ERROR: data don't match netwidth!</l></custom-block><block s="doStopThis"><l><option>this block</option></l></block></script><script><block s="doTellTo"><block var="target"/><block s="reifyScript"><script><block s="doSetVar"><l></l><l></l></block></script><list></list></block><list><l>myData</l><block s="reportApplyExtension"><l>SciS_NNteach(weights,width,depth,input,output,eta)</l><list><block s="reportAttributeOf"><l>myData</l><block var="target"/></block><block var="width"/><block s="reportListItem"><l>1</l><custom-block s="NNPadProperty %txt of %txt"><l>netProperties</l><block var="target"/></custom-block></block><block var="input"/><block var="output"/><block var="eta"/></list></block></list></block></script></block></script></block></script></block-definition><block-definition s="NN Example 1 on %'sprite'" type="command" category="8. NNPad for neural networks"><header></header><code></code><translations></translations><inputs><input type="%txt">thisSprite<options>thisSprite
theStage
anotherSprite</options></input></inputs><script><custom-block s="configure %s as a NeuralNetPad width: %n %br height: %n color: %n %n %n"><block var="sprite"/><l>600</l><l>300</l><l>245</l><l>245</l><l>245</l></custom-block><custom-block s="NN add new weights for %n layers of width %n on %txt"><l>2</l><l>20</l><block var="sprite"/></custom-block><block s="doRepeat"><l>100</l><script><custom-block s="teach NN with input %l and target output %l by back- %br propagation with learning factor %n on %txt"><block s="reportNumbers"><l>1</l><l>20</l></block><block s="reportNewList"><list><l>1</l><l>0</l><l>0</l><l>-1</l><l>0</l><l>0</l><l>0</l><l>1</l><l>0</l><l>0</l><l>0</l><l>0</l><l>0</l><l>1</l><l>-1</l><l>-1</l><l>-1</l><l>0</l><l>0</l><l>0</l></list></block><l>0.1</l><block var="sprite"/></custom-block><custom-block s="NN show status with input %l on %txt"><block s="reportNumbers"><l>1</l><l>20</l></block><block var="sprite"/></custom-block></script></block></script></block-definition><block-definition s="new ( temporary? %'temporary' ) sprite" type="reporter" category="control" helper="true"><comment x="0" y="0" w="165.58447588584482" collapsed="false">creates a temporary or static Sprite.</comment><header></header><code></code><translations></translations><inputs><input type="%b">true</input></inputs><script><block s="doDeclareVariables"><list><l>newSprite</l><l>copy</l></list></block><block s="doWarp"><script><block s="doRun"><block s="reportJSFunction"><list></list><l>this.parent.parent.addNewSprite();</l></block><list></list></block><block s="doSetVar"><l>newSprite</l><block s="reportListItem"><l><option>last</option></l><block s="reportGet"><l><option>other sprites</option></l></block></block></block><block s="doIf"><block var="temporary"/><script><block s="doSetVar"><l>copy</l><block s="newClone"><block var="newSprite"/></block></block><block s="doTellTo"><block var="newSprite"/><block s="reifyScript"><script><block s="doApplyExtension"><l>SciS_removeThisSprite()</l><list></list></block></script><list></list></block><list></list></block><block s="doSetVar"><l>newSprite</l><block var="copy"/></block></script></block><block s="doTellTo"><block var="newSprite"/><block s="reifyScript"><script><block s="gotoXY"><block s="reportRandom"><l>-100</l><l>-50</l></block><block s="reportRandom"><l>100</l><l>150</l></block></block></script><list></list></block><list></list></block><block s="doReport"><block var="newSprite"/></block></script></block></script><scripts><script x="532.0000000000001" y="103.58333333333334"><block s="doApplyExtension"><l>SciS_createNewSprite()</l><list></list></block></script></scripts></block-definition><block-definition s="Example 4: regression line" type="command" category="5. PlotPad for data plots"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doDeclareVariables"><list><l>regressionData</l><l>data</l></list></block><block s="doSetVar"><l>data</l><custom-block s="%n random points near a straight x-range %n %n %br gradient %n y-axis-intercept %n range %n"><l>150</l><l>-5</l><l>5</l><l>1</l><l>0</l><l>4</l></custom-block></block><block s="doSetVar"><l>regressionData</l><custom-block s="regression line parameters of %s"><block var="data"/></custom-block></block><custom-block s="configure %txt as a PlotPad width: %n %br height: %n color: %n %n %n"><l>thisSprite</l><l>400</l><l>300</l><l>245</l><l>245</l><l>245</l></custom-block><custom-block s="set PlotPad labels on %s to %br title: %txt titleheight: %n %br x-label: %txt xLabelheight: %n %br y-label: %txt yLabelheight: %n"><l>thisSprite</l><l>Random data with regression line</l><l>18</l><l>x-values</l><l>16</l><l>y-values</l><l>16</l></custom-block><custom-block s="set PlotPad marker properties style: %txt width: %n %br color: %n %n %n connected? %b on %txt"><l>square</l><l>5</l><l>0</l><l>255</l><l>0</l><l><bool>false</bool></l><l>thisSprite</l></custom-block><custom-block s="set PlotPad ranges for x: %n %n y: %n %n %br with border? %b of %n pretty formatted? %b %br on %txt"><l>-5</l><l>5</l><l>-5</l><l>5</l><l><bool>false</bool></l><l>0.1</l><l><bool>true</bool></l><l>thisSprite</l></custom-block><custom-block s="add dataplot of numeric data: %s to PlotPad %txt"><block var="data"/><l>thisSprite</l></custom-block><custom-block s="set PlotPad line properties style: %txt %br width: %n color: %n %n %n on %txt"><l>continuous</l><l>2</l><l>255</l><l>0</l><l>0</l><l>thisSprite</l></custom-block><custom-block s="add graph %s to PlotPad %txt"><block var="regressionData"/><l>thisSprite</l></custom-block><custom-block s="add axes and scales to PlotPad %txt"><l>thisSprite</l></custom-block></script></block-definition><block-definition s="remove this sprite" type="command" category="control"><comment x="0" y="0" w="142.46510416666678" collapsed="false">Removes the calling sprite.</comment><header></header><code></code><translations></translations><inputs></inputs><script><block s="doApplyExtension"><l>SciS_removeThisSprite()</l><list></list></block></script></block-definition><block-definition s="%'choice' %'name' of %'table' $arrowRightOutline number" type="reporter" category="other" helper="true"><comment x="0" y="0" w="272.1666666666668" collapsed="false">Reports the row or column number of the row or column with the name entered, or reports an error message. If the the name is a number You can mark this with a # (e.g. #123).</comment><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true">column<options>column
row</options></input><input type="%s">name</input><input type="%s">SciSnap!Data</input></inputs><script><block s="doDeclareVariables"><list><l>firstLine</l><l>data</l><l>i</l><l>n</l></list></block><block s="doWarp"><script><block s="doIfElse"><block s="reportEquals"><block var="table"/><l>SciSnap!Data</l></block><script><block s="doSetVar"><l>data</l><block var="SciSnap!Data"/></block></script><script><block s="doSetVar"><l>data</l><block var="table"/></block></script></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a %txt"><block var="data"/><l>table</l></custom-block></block><script><block s="doReport"><l>ERROR: only tables supported!</l></block></script></block><block s="doIf"><block s="reportEquals"><block s="reportListAttribute"><l><option>length</option></l><block var="data"/></block><l>0</l></block><script><block s="doReport"><l>ERROR: table is empty!</l></block></script></block><block s="doIf"><block s="reportEquals"><block s="reportListAttribute"><l><option>length</option></l><block s="reportListItem"><l>1</l><block var="data"/></block></block><l>0</l></block><script><block s="doReport"><l>ERROR: table is empty!</l></block></script></block><block s="doIf"><block s="reportEquals"><block var="choice"/><l>column</l></block><script><block s="doSetVar"><l>firstLine</l><block s="reportListItem"><l>1</l><block var="data"/></block></block><block s="doIf"><block s="reportIsA"><block var="name"/><l><option>number</option></l></block><script><block s="doIfElse"><block s="reportAnd"><block s="reportGreaterThan"><block var="name"/><l>0</l></block><block s="reportLessThanOrEquals"><block var="name"/><block s="reportListAttribute"><l><option>length</option></l><block var="firstLine"/></block></block></block><script><block s="doReport"><block var="name"/></block></script><script><block s="doReport"><l>ERROR: index out of range!</l></block></script></block></script></block><block s="doIf"><block s="reportEquals"><block var="name"/><l>first</l></block><script><block s="doReport"><l>1</l></block></script></block><block s="doIf"><block s="reportEquals"><block var="name"/><l>last</l></block><script><block s="doReport"><block s="reportListAttribute"><l><option>length</option></l><block var="firstLine"/></block></block></script></block><block s="doIf"><block s="reportEquals"><block s="reportLetter"><l>1</l><block var="name"/></block><l>#</l></block><script><block s="doSetVar"><l>name</l><custom-block s="substring of %txt from %n to %n"><block var="name"/><l>2</l><block s="reportStringSize"><block var="name"/></block></custom-block></block></script></block><block s="doSetVar"><l>n</l><l>0</l></block><block s="doSetVar"><l>i</l><l>1</l></block><block s="doUntil"><block s="reportOr"><block s="reportGreaterThan"><block var="n"/><l>0</l></block><block s="reportGreaterThan"><block var="i"/><block s="reportListAttribute"><l><option>length</option></l><block var="firstLine"/></block></block></block><script><block s="doIf"><block s="reportEquals"><block s="reportListItem"><block var="i"/><block var="firstLine"/></block><block var="name"/></block><script><block s="doSetVar"><l>n</l><block var="i"/></block></script></block><block s="doChangeVar"><l>i</l><l>1</l></block></script></block><block s="doIf"><block s="reportEquals"><block var="n"/><l>0</l></block><script><block s="doIf"><block s="reportAnd"><block s="reportEquals"><block s="reportStringSize"><block var="name"/></block><l>1</l></block><block s="reportAnd"><block s="reportGreaterThanOrEquals"><block s="reportUnicode"><block var="name"/></block><block s="reportUnicode"><l>A</l></block></block><block s="reportLessThanOrEquals"><block s="reportUnicode"><block var="name"/></block><block s="reportUnicode"><l>Z</l></block></block></block></block><script><block s="doSetVar"><l>n</l><block s="reportDifference"><block s="reportUnicode"><block var="name"/></block><l>64</l></block></block><block s="doIf"><block s="reportGreaterThan"><block var="n"/><block s="reportListAttribute"><l><option>length</option></l><block var="firstLine"/></block></block><script><block s="doSetVar"><l>n</l><l>0</l></block></script></block></script></block></script></block><block s="doReport"><block s="reportIfElse"><block s="reportGreaterThan"><block var="n"/><l>0</l></block><block var="n"/><l>ERROR: name not found!</l></block></block></script></block><block s="doIf"><block s="reportEquals"><block var="choice"/><l>row</l></block><script><block s="doIf"><block s="reportIsA"><block var="name"/><l><option>number</option></l></block><script><block s="doIfElse"><block s="reportAnd"><block s="reportGreaterThan"><block var="name"/><l>0</l></block><block s="reportLessThanOrEquals"><block var="name"/><block s="reportListAttribute"><l><option>length</option></l><block var="data"/></block></block></block><script><block s="doReport"><block var="name"/></block></script><script><block s="doReport"><l>ERROR: index out of range!</l></block></script></block></script></block><block s="doIf"><block s="reportEquals"><block var="name"/><l>first</l></block><script><block s="doReport"><l>1</l></block></script></block><block s="doIf"><block s="reportEquals"><block var="name"/><l>last</l></block><script><block s="doReport"><block s="reportListAttribute"><l><option>length</option></l><block var="data"/></block></block></script></block><block s="doIf"><block s="reportEquals"><block s="reportLetter"><l>1</l><block var="name"/></block><l>#</l></block><script><block s="doSetVar"><l>name</l><custom-block s="substring of %txt from %n to %n"><block var="name"/><l>2</l><block s="reportStringSize"><block var="name"/></block></custom-block></block></script></block><block s="doSetVar"><l>n</l><l>0</l></block><block s="doSetVar"><l>i</l><l>1</l></block><block s="doUntil"><block s="reportOr"><block s="reportGreaterThan"><block var="n"/><l>0</l></block><block s="reportGreaterThan"><block var="i"/><block s="reportListAttribute"><l><option>length</option></l><block var="data"/></block></block></block><script><block s="doIf"><block s="reportEquals"><block s="reportListItem"><l>1</l><block s="reportListItem"><block var="i"/><block var="data"/></block></block><block var="name"/></block><script><block s="doSetVar"><l>n</l><block var="i"/></block></script></block><block s="doChangeVar"><l>i</l><l>1</l></block></script></block><block s="doReport"><block s="reportIfElse"><block s="reportGreaterThan"><block var="n"/><l>0</l></block><block var="n"/><l>ERROR: name not found!</l></block></block></script></block><block s="doReport"><l>ERROR: something wrong!</l></block></script></block></script></block-definition><block-definition s="input dialog on %'sprite' with title %'title' $nl and items %'items'" type="reporter" category="sensing"><comment x="0" y="0" w="140.83333333333334" collapsed="false">Input dialog for a list of items. Click item by mouse and then ok. Returns the selected item.</comment><header></header><code></code><translations></translations><inputs><input type="%s">thisSprite<options>thisSprite
theStage
anotherSprite</options></input><input type="%txt">title</input><input type="%l"></input></inputs><script><block s="doWarp"><script><block s="doDeclareVariables"><list><l>target</l><l>result</l><l>height</l><l>width</l><l>clickpoint</l><l>ok</l><l>x</l><l>y</l><l>costume</l></list></block><block s="doSetVar"><l>result</l><l>0</l></block><block s="doSetVar"><l>height</l><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><block s="reportListAttribute"><l><option>length</option></l><block var="items"/></block><l>25</l></list></block><l>70</l></list></block></block><block s="doSetVar"><l>width</l><l>0</l></block><block s="doFor"><l>i</l><l>1</l><block s="reportListAttribute"><l><option>length</option></l><block var="items"/></block><script><block s="doIf"><block s="reportGreaterThan"><block s="reportStringSize"><block s="reportListItem"><block var="i"/><block var="items"/></block></block><block var="width"/></block><script><block s="doSetVar"><l>width</l><block s="reportStringSize"><block s="reportListItem"><block var="i"/><block var="items"/></block></block></block></script></block></script></block><block s="doSetVar"><l>width</l><block s="reportVariadicProduct"><list><l>9</l><block var="width"/></list></block></block><block s="doSetVar"><l>costume</l><block s="reportGet"><l><option>costume</option></l></block></block><custom-block s="configure %s as an ImagePad width: %n %br height: %n color: %n %n %n"><block var="sprite"/><l>400</l><block var="height"/><l>245</l><l>245</l><l>245</l></custom-block><custom-block s="set ImagePad line properties style: %txt %br width: %n color: %n %n %n %br fill color: %n %n %n on %txt"><l>continuous</l><l>1</l><l>0</l><l>0</l><l>0</l><l>245</l><l>245</l><l>245</l><block var="sprite"/></custom-block><custom-block s="draw text %txt at %n %n height: %n %br horizontal? %b on %txt"><block s="reportJoinWords"><list><block var="title"/><l> (click on it)</l></list></block><l>10</l><l>20</l><l>18</l><l><bool>true</bool></l><block var="sprite"/></custom-block><block s="doFor"><l>i</l><l>1</l><block s="reportListAttribute"><l><option>length</option></l><block var="items"/></block><script><custom-block s="draw text %txt at %n %n height: %n %br horizontal? %b on %txt"><block s="reportJoinWords"><list><block var="i"/><l>: </l><block s="reportListItem"><block var="i"/><block var="items"/></block></list></block><l>15</l><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><block var="i"/><l>25</l></list></block><l>30</l></list></block><l>16</l><l><bool>true</bool></l><block var="sprite"/></custom-block></script></block><custom-block s="draw rectangle from %n %n to %n %n on %txt"><l>25</l><block s="reportDifference"><block var="height"/><l>30</l></block><l>50</l><block s="reportDifference"><block var="height"/><l>5</l></block><block var="sprite"/></custom-block><custom-block s="draw text %txt at %n %n height: %n %br horizontal? %b on %txt"><block var="result"/><l>28</l><block s="reportDifference"><block var="height"/><l>12</l></block><l>18</l><l><bool>true</bool></l><block var="sprite"/></custom-block><custom-block s="draw rectangle from %n %n to %n %n on %txt"><l>70</l><block s="reportDifference"><block var="height"/><l>30</l></block><l>100</l><block s="reportDifference"><block var="height"/><l>5</l></block><block var="sprite"/></custom-block><custom-block s="draw text %txt at %n %n height: %n %br horizontal? %b on %txt"><l>ok</l><l>75</l><block s="reportDifference"><block var="height"/><l>12</l></block><l>18</l><l><bool>true</bool></l><block var="sprite"/></custom-block><block s="doSetVar"><l>ok</l><block s="reportBoolean"><l><bool>false</bool></l></block></block></script></block><block s="doUntil"><block var="ok"/><script><block s="doIf"><block s="reportMouseDown"></block><script><block s="doSetVar"><l>clickpoint</l><custom-block s="%s on %txt by mouse"><l>costume-coordinates</l><block var="sprite"/></custom-block></block><block s="doWarp"><script><block s="doSetVar"><l>x</l><block s="reportListItem"><l>1</l><block var="clickpoint"/></block></block><block s="doSetVar"><l>y</l><block s="reportListItem"><l>2</l><block var="clickpoint"/></block></block><block s="doIf"><block s="reportAnd"><block s="reportAnd"><block s="reportGreaterThanOrEquals"><block var="x"/><l>15</l></block><block s="reportLessThanOrEquals"><block var="x"/><block s="reportVariadicSum"><list><block var="width"/><l>35</l></list></block></block></block><block s="reportAnd"><block s="reportGreaterThanOrEquals"><block var="y"/><l>38</l></block><block s="reportLessThanOrEquals"><block var="y"/><block s="reportDifference"><block var="height"/><l>35</l></block></block></block></block><script><block s="doSetVar"><l>result</l><block s="reportVariadicSum"><list><block s="reportMonadic"><l><option>floor</option></l><block s="reportQuotient"><block s="reportDifference"><block var="y"/><l>38</l></block><l>25</l></block></block><l>1</l></list></block></block><custom-block s="fill rectangle from %n %n to %n %n on %txt"><l>27</l><block s="reportDifference"><block var="height"/><l>28</l></block><l>48</l><block s="reportDifference"><block var="height"/><l>7</l></block><block var="sprite"/></custom-block><custom-block s="draw text %txt at %n %n height: %n %br horizontal? %b on %txt"><block var="result"/><l>28</l><block s="reportDifference"><block var="height"/><l>12</l></block><l>18</l><l><bool>true</bool></l><block var="sprite"/></custom-block></script></block><block s="doIf"><block s="reportAnd"><block s="reportAnd"><block s="reportGreaterThanOrEquals"><block var="x"/><l>70</l></block><block s="reportLessThanOrEquals"><block var="x"/><l>100</l></block></block><block s="reportAnd"><block s="reportGreaterThanOrEquals"><block var="y"/><block s="reportDifference"><block var="height"/><l>30</l></block></block><block s="reportLessThanOrEquals"><block var="x"/><block s="reportDifference"><block var="height"/><l>5</l></block></block></block></block><script><block s="doSwitchToCostume"><block var="costume"/></block><block s="doIfElse"><block s="reportGreaterThan"><block var="result"/><l>0</l></block><script><block s="doReport"><block s="reportListItem"><block var="result"/><block var="items"/></block></block></script><script><block s="doReport"><l>ERROR: index out of bounds!</l></block></script></block></script></block></script></block></script></block></script></block></script></block-definition><block-definition s="empty table" type="reporter" category="3. Data tools"><comment x="0" y="0" w="114.1666666666667" collapsed="false">Returns an empty table.</comment><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="reportNewList"><list></list></block></block></script></block-definition><block-definition s="%'n' x %'m' table initialized with %'value'" type="reporter" category="3. Data tools"><comment x="0" y="0" w="191.6666666666667" collapsed="false">Reports a new table initialized with value.</comment><header></header><code></code><translations></translations><inputs><input type="%n">2</input><input type="%n">3</input><input type="%s"></input></inputs><script><block s="doDeclareVariables"><list><l>result</l><l>row</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>row</l><block s="reportNewList"><list></list></block></block><block s="doRepeat"><block var="n"/><script><block s="doAddToList"><block var="value"/><block var="row"/></block></script></block><block s="doSetVar"><l>result</l><block s="reportNewList"><list></list></block></block><block s="doRepeat"><block var="m"/><script><block s="doAddToList"><custom-block s="copy of %l"><block var="row"/></custom-block><block var="result"/></block></script></block><block s="doReport"><block var="result"/></block></script></block></script></block-definition><block-definition s="new %'n' by %'m' table with labels: %'labels'" type="reporter" category="3. Data tools"><comment x="0" y="0" w="172.5" collapsed="false">Reports a table with labeled columns.</comment><header></header><code></code><translations></translations><inputs><input type="%n">2</input><input type="%n">0</input><input type="%mult%s"></input></inputs><script><block s="doDeclareVariables"><list><l>result</l><l>row</l><l>i</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>result</l><block s="reportNewList"><list></list></block></block><block s="doSetVar"><l>row</l><block s="reportNewList"><list></list></block></block><block s="doIf"><block s="reportIsA"><block var="labels"/><l><option>list</option></l></block><script><block s="doSetVar"><l>i</l><l>1</l></block><block s="doUntil"><block s="reportGreaterThan"><block var="i"/><block var="n"/></block><script><block s="doIfElse"><block s="reportLessThanOrEquals"><block var="i"/><block s="reportListAttribute"><l><option>length</option></l><block var="labels"/></block></block><script><block s="doAddToList"><block s="reportListItem"><block var="i"/><block var="labels"/></block><block var="row"/></block></script><script><block s="doAddToList"><l>...</l><block var="row"/></block></script></block><block s="doChangeVar"><l>i</l><l>1</l></block></script></block><block s="doAddToList"><block var="row"/><block var="result"/></block><block s="doSetVar"><l>row</l><block s="reportNewList"><list></list></block></block><block s="doRepeat"><block var="n"/><script><block s="doAddToList"><l></l><block var="row"/></block></script></block><block s="doRepeat"><block var="m"/><script><block s="doAddToList"><custom-block s="copy of %l"><block var="row"/></custom-block><block var="result"/></block></script></block><block s="doReport"><block var="result"/></block></script></block><block s="doReport"><l>ERROR: labels required!</l></block></script></block></script></block-definition><block-definition s="copy of %'list'" type="reporter" category="3. Data tools"><comment x="0" y="0" w="198.83333333333326" collapsed="false">Reports the copy of a list or an empty list.</comment><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doReport"><block s="reportApplyExtension"><l>SciS_copyOf(theList)</l><list><block var="list"/></list></block></block></script></block-definition><block-definition s="import %'choice' from $nl %'source' to SciSnap!Data" type="command" category="3. Data tools"><comment x="0" y="0" w="373.6977306547621" collapsed="false">Imports table-CSV-data, costume-data, SQL-data or FITS-data to SciSnap!Data.</comment><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true">costume-(RGB)-data<options>table-(CSV)-data
costume-(RGB)-data
SQL-(query)-data
FITS-data</options></input><input type="%s">current-costume<options>current-costume
filepicker
other-source</options></input></inputs><script><block s="doDeclareVariables"><list><l>header</l><l>imagedata</l><l>h</l><l>min</l><l>max</l><l>w</l><l>h</l><l>copy</l><l>ready</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>choice</l><block s="reportListItem"><l>1</l><block s="reportTextSplit"><block var="choice"/><l> </l></block></block></block><block s="doIf"><block s="reportEquals"><block var="source"/><l>filepicker</l></block><script><block s="doSetVar"><l>ready</l><block s="reportApplyExtension"><l>SciS_readFileWithFilepicker()</l><list></list></block></block><block s="doWaitUntil"><block s="reportListItem"><l>1</l><block s="evaluate"><block var="ready"/><list></list></block></block></block><block s="doSetVar"><l>source</l><block s="reportListItem"><l>2</l><block s="evaluate"><block var="ready"/><list></list></block></block></block></script></block><block s="doIf"><block s="reportEquals"><block var="choice"/><l>FITS-data</l></block><script><block s="doIfElse"><block s="reportNot"><block s="reportIsA"><block var="source"/><l><option>text</option></l></block></block><script><custom-block s="report SciSnap! error %txt"><l>ERROR: FITS data have to be text!</l></custom-block><block s="doStopThis"><l><option>this block</option></l></block></script><script><block s="doSetVar"><l>imagedata</l><block s="reportApplyExtension"><l>SciS_extractFITSdata(FITSdata)</l><list><block var="source"/></list></block></block><custom-block s="set SciSnap! global variables and properties"></custom-block><block s="doSetVar"><l>SciSnap!Data</l><block s="reportListItem"><l>6</l><block var="imagedata"/></block></block><custom-block s="set SciSnap! global property %s to %s"><l>typeOfData</l><l>FITS</l></custom-block><custom-block s="set SciSnap! global property %s to %s"><l>width</l><block s="reportListItem"><l>1</l><block var="imagedata"/></block></custom-block><custom-block s="set SciSnap! global property %s to %s"><l>height</l><block s="reportListItem"><l>2</l><block var="imagedata"/></block></custom-block><custom-block s="set SciSnap! global property %s to %s"><l>minValue</l><block s="reportListItem"><l>3</l><block var="imagedata"/></block></custom-block><custom-block s="set SciSnap! global property %s to %s"><l>maxValue</l><block s="reportListItem"><l>4</l><block var="imagedata"/></block></custom-block><custom-block s="set SciSnap! global property %s to %s"><l>columns</l><l>1</l></custom-block><custom-block s="set SciSnap! global property %s to %s"><l>rows</l><block s="reportListAttribute"><l><option>length</option></l><block var="SciSnap!Data"/></block></custom-block><block s="doSetVar"><l>header</l><block s="reportListItem"><l>5</l><block var="imagedata"/></block></block><block s="doUntil"><block s="reportOr"><block s="reportEquals"><block s="reportListAttribute"><l><option>length</option></l><block var="header"/></block><l>0</l></block><block s="reportEquals"><block s="reportListItem"><l>1</l><block s="reportListItem"><l>1</l><block var="header"/></block></block><l></l></block></block><script><custom-block s="set SciSnap! global property %s to %s"><block s="reportListItem"><l>1</l><block s="reportListItem"><l>1</l><block var="header"/></block></block><block s="reportListItem"><l>2</l><block s="reportListItem"><l>1</l><block var="header"/></block></block></custom-block><block s="doDeleteFromList"><l>1</l><block var="header"/></block></script></block></script></block></script></block><block s="doIf"><block s="reportEquals"><block var="choice"/><l>table-(CSV)-data</l></block><script><block s="doIfElse"><block s="reportNot"><block s="reportIsA"><block var="source"/><l><option>list</option></l></block></block><script><custom-block s="report SciSnap! error %txt"><l>ERROR: only import from tables!</l></custom-block><block s="doStopThis"><l><option>this block</option></l></block></script><script><block s="doSetVar"><l>w</l><custom-block s="SciSnap! global property %s"><l>width</l></custom-block></block><block s="doSetVar"><l>h</l><custom-block s="SciSnap! global property %s"><l>height</l></custom-block></block><custom-block s="set SciSnap! global variables and properties"></custom-block><custom-block s="set SciSnap! global property %s to %s"><l>width</l><block var="w"/></custom-block><custom-block s="set SciSnap! global property %s to %s"><l>height</l><block var="h"/></custom-block><block s="doSetVar"><l>copy</l><custom-block s="copy of %l"><block var="source"/></custom-block></block><block s="doSetVar"><l>SciSnap!Data</l><block s="reportApplyExtension"><l>SciS_importCSVdata(data)</l><list><block var="copy"/></list></block></block><custom-block s="set SciSnap! global property %s to %s"><l>typeOfData</l><l>table</l></custom-block><block s="doIfElse"><block s="reportEquals"><block s="reportListAttribute"><l><option>length</option></l><block var="SciSnap!Data"/></block><l>0</l></block><script><custom-block s="set SciSnap! global property %s to %s"><l>columns</l><l>0</l></custom-block><custom-block s="set SciSnap! global property %s to %s"><l>rows</l><l>0</l></custom-block></script><script><custom-block s="set SciSnap! global property %s to %s"><l>rows</l><block s="reportListAttribute"><l><option>length</option></l><block var="SciSnap!Data"/></block></custom-block><block s="doIfElse"><block s="reportIsA"><block s="reportListItem"><l>1</l><block var="SciSnap!Data"/></block><l><option>list</option></l></block><script><custom-block s="set SciSnap! global property %s to %s"><l>columns</l><block s="reportListAttribute"><l><option>length</option></l><block s="reportListItem"><l>1</l><block var="SciSnap!Data"/></block></block></custom-block></script><script><custom-block s="set SciSnap! global property %s to %s"><l>columns</l><l>1</l></custom-block></script></block></script></block><block s="doIfElse"><block s="reportAnd"><block s="reportLessThan"><custom-block s="SciSnap! global property %s"><l>columns</l></custom-block><l>10</l></block><block s="reportLessThan"><custom-block s="SciSnap! global property %s"><l>rows</l></custom-block><l>1000</l></block></block><script><block s="doSetVar"><l>min</l><custom-block s="%s of vector %l"><l>min</l><custom-block s="%s %s of %s with first item? %b"><l>column</l><l>1</l><l>SciSnap!Data</l><l><bool>true</bool></l></custom-block></custom-block></block><block s="doSetVar"><l>max</l><custom-block s="%s of vector %l"><l>max</l><custom-block s="%s %s of %s with first item? %b"><l>column</l><l>1</l><l>SciSnap!Data</l><l><bool>true</bool></l></custom-block></custom-block></block><block s="doIf"><block s="reportGreaterThan"><custom-block s="SciSnap! global property %s"><l>columns</l></custom-block><l>1</l></block><script><block s="doFor"><l>i</l><l>2</l><custom-block s="SciSnap! global property %s"><l>columns</l></custom-block><script><block s="doSetVar"><l>h</l><custom-block s="%s of vector %l"><l>min</l><custom-block s="%s %s of %s with first item? %b"><l>column</l><block var="i"/><l>SciSnap!Data</l><l><bool>true</bool></l></custom-block></custom-block></block><block s="doIf"><block s="reportLessThan"><block var="h"/><block var="min"/></block><script><block s="doSetVar"><l>min</l><block var="h"/></block></script></block><block s="doSetVar"><l>h</l><custom-block s="%s of vector %l"><l>max</l><custom-block s="%s %s of %s with first item? %b"><l>column</l><block var="i"/><l>SciSnap!Data</l><l><bool>true</bool></l></custom-block></custom-block></block><block s="doIf"><block s="reportGreaterThan"><block var="h"/><block var="max"/></block><script><block s="doSetVar"><l>max</l><block var="h"/></block></script></block></script></block></script></block><custom-block s="set SciSnap! global property %s to %s"><l>minValue</l><block var="min"/></custom-block><custom-block s="set SciSnap! global property %s to %s"><l>maxValue</l><block var="max"/></custom-block></script><script><custom-block s="set SciSnap! global property %s to %s"><l>minValue</l><l>not set</l></custom-block><custom-block s="set SciSnap! global property %s to %s"><l>maxValue</l><l>not set</l></custom-block></script></block></script></block></script></block><block s="doIf"><block s="reportEquals"><block var="choice"/><l>costume-(RGB)-data</l></block><script><block s="doIfElse"><block s="reportEquals"><block var="source"/><l>current-costume</l></block><script><block s="doSetVar"><l>source</l><block s="reportGet"><l><option>costume</option></l></block></block></script><script><block s="doIf"><block s="reportNot"><block s="reportIsA"><block var="source"/><l><option>costume</option></l></block></block><script><custom-block s="report SciSnap! error %txt"><l>ERROR: only import from costumes!</l></custom-block><block s="doStopThis"><l><option>this block</option></l></block></script></block></script></block><block s="doIf"><block s="reportIsA"><block var="source"/><l><option>costume</option></l></block><script><custom-block s="set SciSnap! global variables and properties"></custom-block><block s="doSetVar"><l>SciSnap!Data</l><block s="reportGetImageAttribute"><l><option>pixels</option></l><block var="source"/></block></block><custom-block s="set SciSnap! global property %s to %s"><l>typeOfData</l><l>RGB</l></custom-block><custom-block s="set SciSnap! global property %s to %s"><l>width</l><block s="reportGetImageAttribute"><l><option>width</option></l><block var="source"/></block></custom-block><custom-block s="set SciSnap! global property %s to %s"><l>height</l><block s="reportGetImageAttribute"><l><option>height</option></l><block var="source"/></block></custom-block><custom-block s="set SciSnap! global property %s to %s"><l>rows</l><block s="reportListAttribute"><l><option>length</option></l><block var="SciSnap!Data"/></block></custom-block><custom-block s="set SciSnap! global property %s to %s"><l>columns</l><block s="reportListAttribute"><l><option>length</option></l><block s="reportListItem"><l>1</l><block var="SciSnap!Data"/></block></block></custom-block><block s="doSetVar"><l>min</l><l></l></block><block s="doSetVar"><l>max</l><l></l></block><block s="doFor"><l>i</l><l>2</l><custom-block s="SciSnap! global property %s"><l>columns</l></custom-block><script><block s="doSetVar"><l>h</l><l></l></block><block s="doIf"><block s="reportLessThan"><block var="h"/><block var="min"/></block><script><block s="doSetVar"><l>min</l><block var="h"/></block></script></block><block s="doSetVar"><l>h</l><l></l></block><block s="doIf"><block s="reportGreaterThan"><block var="h"/><block var="max"/></block><script><block s="doSetVar"><l>max</l><block var="h"/></block></script></block></script></block><custom-block s="set SciSnap! global property %s to %s"><l>minValue</l><block var="min"/></custom-block><custom-block s="set SciSnap! global property %s to %s"><l>maxValue</l><block var="max"/></custom-block></script></block></script></block><block s="doIf"><block s="reportEquals"><block var="choice"/><l>SQL-(query)-data</l></block><script><block s="doSetVar"><l>SciSnap!Data</l><block s="reportNewList"><list></list></block></block><block s="doIfElse"><block s="reportIsA"><block var="source"/><l><option>list</option></l></block><script><block s="doFor"><l>i</l><l>1</l><block s="reportListAttribute"><l><option>length</option></l><block var="source"/></block><script><block s="doAddToList"><block s="reportTextSplit"><block s="reportListItem"><block var="i"/><block var="source"/></block><l>,</l></block><block var="SciSnap!Data"/></block></script></block><custom-block s="set SciSnap! global property %s to %s"><l>typeOfData</l><l>table</l></custom-block><block s="doIfElse"><block s="reportEquals"><block s="reportListAttribute"><l><option>length</option></l><block var="SciSnap!Data"/></block><l>0</l></block><script><custom-block s="set SciSnap! global property %s to %s"><l>columns</l><l>0</l></custom-block><custom-block s="set SciSnap! global property %s to %s"><l>rows</l><l>0</l></custom-block></script><script><custom-block s="set SciSnap! global property %s to %s"><l>rows</l><block s="reportListAttribute"><l><option>length</option></l><block var="SciSnap!Data"/></block></custom-block><block s="doIfElse"><block s="reportIsA"><block s="reportListItem"><l>1</l><block var="SciSnap!Data"/></block><l><option>list</option></l></block><script><custom-block s="set SciSnap! global property %s to %s"><l>columns</l><block s="reportListAttribute"><l><option>length</option></l><block s="reportListItem"><l>1</l><block var="SciSnap!Data"/></block></block></custom-block></script><script><custom-block s="set SciSnap! global property %s to %s"><l>columns</l><l>1</l></custom-block></script></block></script></block><block s="doIfElse"><block s="reportAnd"><block s="reportLessThan"><custom-block s="SciSnap! global property %s"><l>columns</l></custom-block><l>10</l></block><block s="reportLessThan"><custom-block s="SciSnap! global property %s"><l>rows</l></custom-block><l>1000</l></block></block><script><block s="doSetVar"><l>min</l><custom-block s="%s of vector %l"><l>min</l><custom-block s="%s %s of %s with first item? %b"><l>column</l><l>1</l><block var="SciSnap!Data"/><l><bool>true</bool></l></custom-block></custom-block></block><block s="doSetVar"><l>max</l><custom-block s="%s of vector %l"><l>max</l><custom-block s="%s %s of %s with first item? %b"><l>column</l><l>1</l><block var="SciSnap!Data"/><l><bool>true</bool></l></custom-block></custom-block></block><block s="doIf"><block s="reportGreaterThan"><custom-block s="SciSnap! global property %s"><l>columns</l></custom-block><l>1</l></block><script><block s="doFor"><l>i</l><l>2</l><custom-block s="SciSnap! global property %s"><l>columns</l></custom-block><script><block s="doSetVar"><l>h</l><custom-block s="%s of vector %l"><l>min</l><custom-block s="%s %s of %s with first item? %b"><l>column</l><block var="i"/><block var="SciSnap!Data"/><l><bool>true</bool></l></custom-block></custom-block></block><block s="doIf"><block s="reportLessThan"><block var="h"/><block var="min"/></block><script><block s="doSetVar"><l>min</l><block var="h"/></block></script></block><block s="doSetVar"><l>h</l><custom-block s="%s of vector %l"><l>max</l><custom-block s="%s %s of %s with first item? %b"><l>column</l><block var="i"/><block var="SciSnap!Data"/><l><bool>true</bool></l></custom-block></custom-block></block><block s="doIf"><block s="reportGreaterThan"><block var="h"/><block var="max"/></block><script><block s="doSetVar"><l>max</l><block var="h"/></block></script></block></script></block></script></block><custom-block s="set SciSnap! global property %s to %s"><l>minValue</l><block var="min"/></custom-block><custom-block s="set SciSnap! global property %s to %s"><l>maxValue</l><block var="max"/></custom-block></script><script><custom-block s="set SciSnap! global property %s to %s"><l>minValue</l><l>not set</l></custom-block><custom-block s="set SciSnap! global property %s to %s"><l>maxValue</l><l>not set</l></custom-block></script></block></script><script><custom-block s="report SciSnap! error %txt"><l>ERROR: only import from tables!</l></custom-block><block s="doStopThis"><l><option>this block</option></l></block></script></block></script></block></script></block></script></block-definition><block-definition s="read file with filepicker" type="reporter" category="3. Data tools" helper="true"><comment x="0" y="0" w="153.5" collapsed="false">Reads a file using the filepicker.</comment><header></header><code></code><translations></translations><inputs></inputs><script><block s="doDeclareVariables"><list><l>ready</l></list></block><block s="doSetVar"><l>ready</l><block s="reportApplyExtension"><l>SciS_readFileWithFilepicker()</l><list></list></block></block><block s="doWaitUntil"><block s="reportListItem"><l>1</l><block s="evaluate"><block var="ready"/><list></list></block></block></block><block s="doReport"><block s="reportListItem"><l>2</l><block s="evaluate"><block var="ready"/><list></list></block></block></block></script></block-definition><block-definition s="write %'data' to CSV-file %'filename'" type="command" category="3. Data tools"><comment x="0" y="0" w="170.1791359325606" collapsed="false">Stores a list in a CSV file.
JS-code copied from Snap!-code.</comment><header></header><code></code><translations></translations><inputs><input type="%s">SciSnap!Data</input><input type="%txt">filename</input></inputs><script><block s="doDeclareVariables"><list><l>source</l></list></block><block s="doIfElse"><block s="reportEquals"><block var="data"/><l>SciSnap!Data</l></block><script><block s="doSetVar"><l>source</l><block var="SciSnap!Data"/></block></script><script><block s="doSetVar"><l>source</l><block var="data"/></block></script></block><block s="doIfElse"><block s="reportNot"><block s="reportIsA"><block var="source"/><l><option>list</option></l></block></block><script><custom-block s="report SciSnap! error %txt"><l>ERROR: only lists supported!</l></custom-block><block s="doStopThis"><l><option>this block</option></l></block></script><script><block s="doApplyExtension"><l>SciS_writetoCSVfile(data,filename)</l><list><block var="source"/><block var="filename"/></list></block></script></block></script></block-definition><block-definition s="%'n' random points with ranges x: %'xmin' %'xmax' $nl y: %'ymin' %'ymax' inside of a %'shape'" type="reporter" category="3. Data tools"><comment x="0" y="0" w="357.75641025641033" collapsed="false">Reports randomly distributed points in the form of a rectangle, circle, or ring.</comment><header></header><code></code><translations></translations><inputs><input type="%n">100</input><input type="%n">-100</input><input type="%n">100</input><input type="%n">-100</input><input type="%n">100</input><input type="%s" readonly="true">square<options>square
circle
ring</options></input></inputs><script><block s="doDeclareVariables"><list><l>result</l><l>r</l><l>alpha</l><l>d</l><l>x0</l><l>y0</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>result</l><block s="reportNewList"><list></list></block></block><block s="doIf"><block s="reportEquals"><block var="shape"/><l>square</l></block><script><block s="doRepeat"><block var="n"/><script><block s="doAddToList"><block s="reportNewList"><list><block s="reportRandom"><block var="xmin"/><block var="xmax"/></block><block s="reportRandom"><block var="ymin"/><block var="ymax"/></block></list></block><block var="result"/></block></script></block><block s="doReport"><block var="result"/></block></script></block><block s="doIf"><block s="reportEquals"><block var="shape"/><l>circle</l></block><script><block s="doSetVar"><l>r</l><block s="reportQuotient"><custom-block s="%s of vector %l"><l>min</l><block s="reportNewList"><list><block s="reportMonadic"><l><option>abs</option></l><block s="reportDifference"><block var="xmax"/><block var="xmin"/></block></block><block s="reportMonadic"><l><option>abs</option></l><block s="reportDifference"><block var="ymax"/><block var="ymin"/></block></block></list></block></custom-block><l>2</l></block></block><block s="doSetVar"><l>x0</l><block s="reportQuotient"><block s="reportVariadicSum"><list><block var="xmin"/><block var="xmax"/></list></block><l>2</l></block></block><block s="doSetVar"><l>y0</l><block s="reportQuotient"><block s="reportVariadicSum"><list><block var="ymin"/><block var="ymax"/></list></block><l>2</l></block></block><block s="doRepeat"><block var="n"/><script><block s="doSetVar"><l>alpha</l><block s="reportVariadicProduct"><list><l>360</l><custom-block s="random"></custom-block></list></block></block><block s="doSetVar"><l>d</l><block s="reportVariadicProduct"><list><block var="r"/><custom-block s="random"></custom-block></list></block></block><block s="doAddToList"><block s="reportNewList"><list><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><block var="d"/><block s="reportMonadic"><l><option>sin</option></l><block var="alpha"/></block></list></block><block var="x0"/></list></block><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><block var="d"/><block s="reportMonadic"><l><option>cos</option></l><block var="alpha"/></block></list></block><block var="y0"/></list></block></list></block><block var="result"/></block></script></block><block s="doReport"><block var="result"/></block></script></block><block s="doIf"><block s="reportEquals"><block var="shape"/><l>ring</l></block><script><block s="doSetVar"><l>r</l><block s="reportQuotient"><custom-block s="%s of vector %l"><l>min</l><block s="reportNewList"><list><block s="reportMonadic"><l><option>abs</option></l><block s="reportDifference"><block var="xmax"/><block var="xmin"/></block></block><block s="reportMonadic"><l><option>abs</option></l><block s="reportDifference"><block var="ymax"/><block var="ymin"/></block></block></list></block></custom-block><l>2</l></block></block><block s="doSetVar"><l>x0</l><block s="reportQuotient"><block s="reportVariadicSum"><list><block var="xmin"/><block var="xmax"/></list></block><l>2</l></block></block><block s="doSetVar"><l>y0</l><block s="reportQuotient"><block s="reportVariadicSum"><list><block var="ymin"/><block var="ymax"/></list></block><l>2</l></block></block><block s="doRepeat"><block var="n"/><script><block s="doSetVar"><l>alpha</l><block s="reportVariadicProduct"><list><l>360</l><custom-block s="random"></custom-block></list></block></block><block s="doSetVar"><l>d</l><block s="reportQuotient"><block s="reportVariadicProduct"><list><block var="r"/><block s="reportVariadicSum"><list><custom-block s="random"></custom-block><l>2</l></list></block></list></block><l>3</l></block></block><block s="doAddToList"><block s="reportNewList"><list><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><block var="d"/><block s="reportMonadic"><l><option>sin</option></l><block var="alpha"/></block></list></block><block var="x0"/></list></block><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><block var="d"/><block s="reportMonadic"><l><option>cos</option></l><block var="alpha"/></block></list></block><block var="y0"/></list></block></list></block><block var="result"/></block></script></block><block s="doReport"><block var="result"/></block></script></block></script></block></script></block-definition><block-definition s="%'n' random points near a straight x-range %'xmin' %'xmax' $nl gradient %'m' y-axis-intercept %'b' range %'delta'" type="reporter" category="3. Data tools"><comment x="0" y="0" w="336.55251141552526" collapsed="false">Creates new random data in the specified ranges swaying by a straight.</comment><header></header><code></code><translations></translations><inputs><input type="%n">10</input><input type="%n">-5</input><input type="%n">5</input><input type="%n">1</input><input type="%n">0</input><input type="%n">2</input></inputs><script><block s="doDeclareVariables"><list><l>data</l><l>x</l><l>y</l><l>diff</l><l>i</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>data</l><block s="reportNewList"><list></list></block></block><block s="doSetVar"><l>diff</l><block s="reportDifference"><block var="xmax"/><block var="xmin"/></block></block><block s="doSetVar"><l>i</l><l>1</l></block><block s="doUntil"><block s="reportGreaterThan"><block var="i"/><block var="n"/></block><script><block s="doSetVar"><l>x</l><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><custom-block s="random"></custom-block><block var="diff"/></list></block><block var="xmin"/></list></block></block><block s="doSetVar"><l>y</l><block s="reportVariadicSum"><list><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><block var="m"/><block var="x"/></list></block><block s="reportVariadicProduct"><list><block var="delta"/><block s="reportDifference"><custom-block s="random"></custom-block><l>0.5</l></block></list></block></list></block><block var="b"/></list></block></block><block s="doAddToList"><block s="reportNewList"><list><block var="x"/><block var="y"/></list></block><block var="data"/></block><block s="doChangeVar"><l>i</l><l>1</l></block></script></block><block s="doReport"><block var="data"/></block></script></block></script></block-definition><block-definition s="%'n' random points near %'f' $nl between %'xmin' and %'xmax' range %'range'" type="reporter" category="3. Data tools"><comment x="0" y="0" w="217.11538461538473" collapsed="false">Generates a list of points "near" a given graph.</comment><header></header><code></code><translations></translations><inputs><input type="%n">20</input><input type="%repRing"></input><input type="%n">-5</input><input type="%n">5</input><input type="%n">2</input></inputs><script><block s="doDeclareVariables"><list><l>x</l><l>y</l><l>data</l><l>random</l></list></block><block s="doWarp"><script><block s="doIfElse"><block s="reportIsA"><block var="f"/><l><option>reporter</option></l></block><script><block s="doSetVar"><l>data</l><block s="reportNewList"><list></list></block></block><block s="doRepeat"><block var="n"/><script><block s="doSetVar"><l>random</l><custom-block s="random"></custom-block></block><block s="doSetVar"><l>x</l><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><block s="reportDifference"><block var="xmax"/><block var="xmin"/></block><block var="random"/></list></block><block var="xmin"/></list></block></block><block s="doSetVar"><l>y</l><block s="evaluate"><block var="f"/><list><block var="x"/></list></block></block><block s="doSetVar"><l>random</l><custom-block s="random"></custom-block></block><block s="doAddToList"><block s="reportNewList"><list><block var="x"/><block s="reportVariadicSum"><list><block var="y"/><block s="reportVariadicProduct"><list><block s="reportDifference"><block var="random"/><l>0.5</l></block><block var="range"/></list></block></list></block></list></block><block var="data"/></block></script></block><block s="doReport"><block var="data"/></block></script><script><block s="doReport"><l>ERROR: reporter with ring required!</l></block></script></block></script></block></script></block-definition><block-definition s="transpose table or list %'data'" type="reporter" category="3. Data tools"><comment x="0" y="0" w="198.0136986301369" collapsed="false">Creates the transpose of a table or a list.</comment><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doDeclareVariables"><list><l>result</l></list></block><block s="doWarp"><script><block s="doIf"><block s="reportNot"><block s="reportIsA"><block var="data"/><l><option>list</option></l></block></block><script><block s="doReport"><l>ERROR: data are not transposable!</l></block></script></block><block s="doIf"><block s="reportEquals"><block s="reportListAttribute"><l><option>length</option></l><block var="data"/></block><l>0</l></block><script><block s="doReport"><block var="data"/></block></script></block><block s="doIfElse"><block s="reportIsA"><block s="reportListItem"><l>1</l><block var="data"/></block><l><option>list</option></l></block><script><block s="doIf"><block s="reportEquals"><block s="reportListAttribute"><l><option>length</option></l><block s="reportListItem"><l>1</l><block var="data"/></block></block><l>1</l></block><script><block s="doReport"><block s="reportMap"><block s="reifyReporter"><script><block s="doReport"><block s="reportListItem"><l>1</l><block var="value"/></block></block></script><list><l>value</l></list></block><block var="data"/></block></block></script></block></script><script><block s="doReport"><block s="reportMap"><block s="reifyReporter"><script><block s="doReport"><block s="reportNewList"><list><block var="value"/></list></block></block></script><list><l>value</l></list></block><block var="data"/></block></block></script></block><block s="doIf"><custom-block s="is %s a %txt"><block var="data"/><l>table</l></custom-block><script><block s="doReport"><block s="reportListAttribute"><l><option>columns</option></l><block var="data"/></block></block></script></block><block s="doReport"><l>ERROR: data are not transposable!</l></block></script></block></script></block-definition><block-definition s="add %'choice' %'newContent' to %'table'" type="command" category="3. Data tools"><comment x="0" y="0" w="256.1904761904763" collapsed="false">Adds a row, a column, or column headers to a table.</comment><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true">row<options>row
column
column-headers</options></input><input type="%l"></input><input type="%s">SciSnap!Data</input></inputs><script><block s="doDeclareVariables"><list><l>tablewidth</l><l>item</l><l>target</l><l>i</l></list></block><block s="doWarp"><script><block s="doIfElse"><block s="reportEquals"><block var="table"/><l>SciSnap!Data</l></block><script><block s="doSetVar"><l>target</l><block var="SciSnap!Data"/></block></script><script><block s="doSetVar"><l>target</l><block var="table"/></block></script></block><block s="doSetVar"><l>choice</l><block s="reportListItem"><l>1</l><block s="reportTextSplit"><block var="choice"/><l> </l></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a %txt"><block var="target"/><l>table</l></custom-block></block><script><custom-block s="report SciSnap! error %txt"><l>ERROR: only tables supported!</l></custom-block><block s="doStopThis"><l><option>this block</option></l></block></script></block><block s="doIf"><block s="reportEquals"><block var="choice"/><l>row</l></block><script><block s="doIfElse"><block s="reportEquals"><block s="reportListAttribute"><l><option>length</option></l><block var="target"/></block><l>0</l></block><script><block s="doIfElse"><block s="reportIsA"><block var="newContent"/><l><option>list</option></l></block><script><block s="doAddToList"><block var="newContent"/><block var="target"/></block></script><script><block s="doAddToList"><block s="reportNewList"><list><block var="newContent"/></list></block><block var="target"/></block></script></block></script><script><block s="doSetVar"><l>tablewidth</l><block s="reportListAttribute"><l><option>length</option></l><block s="reportListItem"><l>1</l><block var="target"/></block></block></block><block s="doIfElse"><block s="reportIsA"><block var="newContent"/><l><option>list</option></l></block><script><block s="doSetVar"><l>item</l><block s="reportNewList"><list></list></block></block><block s="doSetVar"><l>i</l><l>1</l></block><block s="doUntil"><block s="reportGreaterThan"><block var="i"/><block var="tablewidth"/></block><script><block s="doIfElse"><block s="reportGreaterThan"><block var="i"/><block s="reportListAttribute"><l><option>length</option></l><block var="newContent"/></block></block><script><block s="doAddToList"><l></l><block var="item"/></block></script><script><block s="doAddToList"><block s="reportListItem"><block var="i"/><block var="newContent"/></block><block var="item"/></block></script></block><block s="doChangeVar"><l>i</l><l>1</l></block></script></block></script><script><block s="doSetVar"><l>item</l><block s="reportNewList"><list><block var="newContent"/></list></block></block><block s="doSetVar"><l>i</l><l>2</l></block><block s="doUntil"><block s="reportGreaterThan"><block var="i"/><block var="tablewidth"/></block><script><block s="doAddToList"><l></l><block var="item"/></block><block s="doChangeVar"><l>i</l><l>1</l></block></script></block></script></block><block s="doAddToList"><block var="item"/><block var="target"/></block></script></block></script></block><block s="doIf"><block s="reportEquals"><block var="choice"/><l>column</l></block><script><block s="doIf"><block s="reportNot"><block s="reportIsA"><block var="newContent"/><l><option>list</option></l></block></block><script><block s="doSetVar"><l>newContent</l><block s="reportNewList"><list><block var="newContent"/></list></block></block></script></block><block s="doIfElse"><block s="reportEquals"><block s="reportListAttribute"><l><option>length</option></l><block var="target"/></block><l>0</l></block><script><block s="doSetVar"><l>i</l><l>1</l></block><block s="doUntil"><block s="reportGreaterThan"><block var="i"/><block s="reportListAttribute"><l><option>length</option></l><block var="newContent"/></block></block><script><block s="doAddToList"><block s="reportNewList"><list><block s="reportListItem"><block var="i"/><block var="newContent"/></block></list></block><block var="target"/></block><block s="doChangeVar"><l>i</l><l>1</l></block></script></block></script><script><block s="doSetVar"><l>i</l><l>1</l></block><block s="doUntil"><block s="reportGreaterThan"><block var="i"/><block s="reportListAttribute"><l><option>length</option></l><block var="target"/></block></block><script><block s="doIfElse"><block s="reportGreaterThan"><block var="i"/><block s="reportListAttribute"><l><option>length</option></l><block var="newContent"/></block></block><script><block s="doAddToList"><l></l><block s="reportListItem"><block var="i"/><block var="target"/></block></block></script><script><block s="doAddToList"><block s="reportListItem"><block var="i"/><block var="newContent"/></block><block s="reportListItem"><block var="i"/><block var="target"/></block></block></script></block><block s="doChangeVar"><l>i</l><l>1</l></block></script></block></script></block></script></block><block s="doIf"><block s="reportEquals"><block var="choice"/><l>column-headers</l></block><script><block s="doIfElse"><block s="reportEquals"><block s="reportListAttribute"><l><option>length</option></l><block var="target"/></block><l>0</l></block><script><block s="doIfElse"><block s="reportIsA"><block var="newContent"/><l><option>list</option></l></block><script><block s="doIf"><block s="reportGreaterThan"><block s="reportListAttribute"><l><option>length</option></l><block var="newContent"/></block><l>0</l></block><script><block s="doAddToList"><block var="newContent"/><block var="target"/></block></script></block></script><script><block s="doAddToList"><block s="reportNewList"><list><block var="newContent"/></list></block><block var="target"/></block></script></block></script><script><block s="doSetVar"><l>tablewidth</l><block s="reportListAttribute"><l><option>length</option></l><block s="reportListItem"><l>1</l><block var="target"/></block></block></block><block s="doIfElse"><block s="reportIsA"><block var="newContent"/><l><option>list</option></l></block><script><block s="doSetVar"><l>item</l><block s="reportNewList"><list></list></block></block><block s="doSetVar"><l>i</l><l>1</l></block><block s="doUntil"><block s="reportGreaterThan"><block var="i"/><block var="tablewidth"/></block><script><block s="doIfElse"><block s="reportGreaterThan"><block var="i"/><block s="reportListAttribute"><l><option>length</option></l><block var="newContent"/></block></block><script><block s="doAddToList"><l></l><block var="item"/></block></script><script><block s="doAddToList"><block s="reportListItem"><block var="i"/><block var="newContent"/></block><block var="item"/></block></script></block><block s="doChangeVar"><l>i</l><l>1</l></block></script></block></script><script><block s="doSetVar"><l>item</l><block s="reportNewList"><list><block var="newContent"/></list></block></block><block s="doSetVar"><l>i</l><l>2</l></block><block s="doUntil"><block s="reportGreaterThan"><block var="i"/><block var="tablewidth"/></block><script><block s="doAddToList"><l></l><block var="item"/></block><block s="doChangeVar"><l>i</l><l>1</l></block></script></block></script></block><block s="doInsertInList"><block var="item"/><l>1</l><block var="target"/></block></script></block></script></block></script></block></script></block-definition><block-definition s="%'choice' %'name' of %'data' with first item? %'WithFirstItem'" type="reporter" category="3. Data tools"><comment x="0" y="0" w="277.16666666666663" collapsed="false">Reports the row or column of a table identified by number or name, or reports an error message. If the the name is a number You can mark this with a # (e.g. #123).</comment><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true">row<options>row
column</options></input><input type="%s">numberOrName<options>first
last
numberOrName</options></input><input type="%s">SciSnap!Data</input><input type="%b">true</input></inputs><script><block s="doDeclareVariables"><list><l>table</l><l>result</l><l>n</l></list></block><block s="doWarp"><script><block s="doIfElse"><block s="reportEquals"><block var="data"/><l>SciSnap!Data</l></block><script><block s="doSetVar"><l>table</l><block var="SciSnap!Data"/></block></script><script><block s="doSetVar"><l>table</l><block var="data"/></block></script></block><block s="doSetVar"><l>choice</l><block s="reportListItem"><l>1</l><block s="reportTextSplit"><block var="choice"/><l> </l></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a %txt"><block var="table"/><l>table</l></custom-block></block><script><block s="doReport"><l>ERROR: only tables supported!</l></block></script></block><block s="doIf"><block s="reportEquals"><block var="choice"/><l>row</l></block><script><block s="doSetVar"><l>n</l><custom-block s="%s %s of %s $arrowRightOutline number"><l>row</l><block var="name"/><block var="table"/></custom-block></block><block s="doIf"><block s="reportNot"><block s="reportIsA"><block var="n"/><l><option>number</option></l></block></block><script><block s="doIf"><block s="reportEquals"><block var="name"/><l>first</l></block><script><block s="doSetVar"><l>n</l><l>1</l></block></script></block><block s="doIf"><block s="reportEquals"><block var="name"/><l>last</l></block><script><block s="doSetVar"><l>n</l><block s="reportListAttribute"><l><option>length</option></l><block var="table"/></block></block></script></block></script></block><block s="doIf"><block s="reportNot"><block s="reportIsA"><block var="n"/><l><option>number</option></l></block></block><script><block s="doReport"><l>ERROR: unknown row name!</l></block></script></block><block s="doIfElse"><block s="reportOr"><block s="reportLessThan"><block var="n"/><l>1</l></block><block s="reportGreaterThan"><block var="n"/><block s="reportListAttribute"><l><option>length</option></l><block var="table"/></block></block></block><script><block s="doReport"><l>ERROR: row index out of range!</l></block></script><script><block s="doSetVar"><l>result</l><custom-block s="copy of %l"><block s="reportListItem"><block var="n"/><block var="table"/></block></custom-block></block><block s="doIf"><block s="reportNot"><block var="WithFirstItem"/></block><script><block s="doDeleteFromList"><l>1</l><block var="result"/></block></script></block><block s="doReport"><block var="result"/></block></script></block></script></block><block s="doIf"><block s="reportEquals"><block var="choice"/><l>column</l></block><script><block s="doSetVar"><l>n</l><custom-block s="%s %s of %s $arrowRightOutline number"><l>column</l><block var="name"/><block var="table"/></custom-block></block><block s="doIf"><block s="reportNot"><block s="reportIsA"><block var="n"/><l><option>number</option></l></block></block><script><block s="doIf"><block s="reportEquals"><block var="name"/><l>first</l></block><script><block s="doSetVar"><l>n</l><l>1</l></block></script></block><block s="doIf"><block s="reportEquals"><block var="name"/><l>last</l></block><script><block s="doSetVar"><l>n</l><block s="reportListAttribute"><l><option>length</option></l><block s="reportListItem"><l>1</l><block var="table"/></block></block></block></script></block></script></block><block s="doIf"><block s="reportNot"><block s="reportIsA"><block var="n"/><l><option>number</option></l></block></block><script><block s="doReport"><l>ERROR: unknown column name!</l></block></script></block><block s="doIfElse"><block s="reportOr"><block s="reportLessThan"><block var="n"/><l>1</l></block><block s="reportGreaterThan"><block var="n"/><block s="reportListAttribute"><l><option>length</option></l><block s="reportListItem"><l>1</l><block var="table"/></block></block></block></block><script><block s="doReport"><l>ERROR: column index out of range!</l></block></script><script><block s="doSetVar"><l>result</l><block s="reportMap"><block s="reifyReporter"><script><block s="doReport"><block s="reportListItem"><block var="n"/><l/></block></block></script><list></list></block><block var="table"/></block></block><block s="doIf"><block s="reportNot"><block var="WithFirstItem"/></block><script><block s="doDeleteFromList"><l>1</l><block var="result"/></block></script></block><block s="doReport"><block var="result"/></block></script></block></script></block><block s="doReport"><l>ERROR: something wrong!</l></block></script></block></script></block-definition><block-definition s="delete %'choice' %'name' of %'data'" type="command" category="3. Data tools"><comment x="0" y="0" w="159.6666666666666" collapsed="false">Deletes a row or column of a table. identified by number or name, or reports an error message. If the the name is a number You can mark this with a # (e.g. #123).</comment><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true">row<options>row
column</options></input><input type="%s">numberOrName<options>first
last
numberOrName</options></input><input type="%s">SciSnap!Data</input></inputs><script><block s="doDeclareVariables"><list><l>table</l><l>result</l><l>n</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>choice</l><block s="reportListItem"><l>1</l><block s="reportTextSplit"><block var="choice"/><l> </l></block></block></block><block s="doIfElse"><block s="reportEquals"><block var="data"/><l>SciSnap!Data</l></block><script><block s="doSetVar"><l>table</l><block var="SciSnap!Data"/></block></script><script><block s="doSetVar"><l>table</l><block var="data"/></block></script></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a %txt"><block var="table"/><l>table</l></custom-block></block><script><custom-block s="report SciSnap! error %txt"><l>ERROR: only data in tables are deletable!</l></custom-block><block s="doStopThis"><l><option>this block</option></l></block></script></block><block s="doIf"><block s="reportEquals"><block var="choice"/><l>row</l></block><script><block s="doSetVar"><l>n</l><custom-block s="%s %s of %s $arrowRightOutline number"><l>row</l><block var="name"/><block var="table"/></custom-block></block><block s="doIf"><block s="reportNot"><block s="reportIsA"><block var="n"/><l><option>number</option></l></block></block><script><block s="doIf"><block s="reportEquals"><block var="name"/><l>first</l></block><script><block s="doSetVar"><l>n</l><l>1</l></block></script></block><block s="doIf"><block s="reportEquals"><block var="name"/><l>last</l></block><script><block s="doSetVar"><l>n</l><block s="reportListAttribute"><l><option>length</option></l><block var="table"/></block></block></script></block></script></block><block s="doIf"><block s="reportIsA"><block var="n"/><l><option>number</option></l></block><script><block s="doDeleteFromList"><block var="n"/><block var="table"/></block></script></block></script></block><block s="doIf"><block s="reportEquals"><block var="choice"/><l>column</l></block><script><block s="doSetVar"><l>n</l><custom-block s="%s %s of %s $arrowRightOutline number"><l>column</l><block var="name"/><block var="table"/></custom-block></block><block s="doIf"><block s="reportNot"><block s="reportIsA"><block var="n"/><l><option>number</option></l></block></block><script><block s="doIf"><block s="reportEquals"><block var="name"/><l>first</l></block><script><block s="doSetVar"><l>n</l><l>1</l></block></script></block><block s="doIf"><block s="reportEquals"><block var="name"/><l>last</l></block><script><block s="doSetVar"><l>n</l><block s="reportListAttribute"><l><option>length</option></l><block s="reportListItem"><l>1</l><block var="table"/></block></block></block></script></block></script></block><block s="doIf"><block s="reportNot"><block s="reportIsA"><block var="n"/><l><option>number</option></l></block></block><script><custom-block s="report SciSnap! error %txt"><l>ERROR: unknown column name!</l></custom-block><block s="doStopThis"><l><option>this block</option></l></block></script></block><block s="doIfElse"><block s="reportOr"><block s="reportLessThan"><block var="n"/><l>1</l></block><block s="reportGreaterThan"><block var="n"/><block s="reportListAttribute"><l><option>length</option></l><block s="reportListItem"><l>1</l><block var="table"/></block></block></block></block><script><custom-block s="report SciSnap! error %txt"><l>ERROR: column index out of range!</l></custom-block><block s="doStopThis"><l><option>this block</option></l></block></script><script><block s="doIfElse"><block s="reportAnd"><block s="reportEquals"><block s="reportListAttribute"><l><option>length</option></l><block s="reportListItem"><l>1</l><block var="table"/></block></block><l>1</l></block><block s="reportEquals"><block var="n"/><l>1</l></block></block><script><block s="doDeleteFromList"><l><option>all</option></l><block var="table"/></block></script><script><block s="doSetVar"><l>result</l><block s="reportMap"><block s="reifyReporter"><script><block s="doDeleteFromList"><block var="n"/><block var="item"/></block><block s="doReport"><l></l></block></script><list><l>item</l></list></block><block var="table"/></block></block></script></block></script></block></script></block></script></block></script></block-definition><block-definition s="element %'xName' %'yName' of %'table'" type="reporter" category="3. Data tools"><comment x="0" y="0" w="175.83333333333334" collapsed="false">Reports the element a position x|y of a table, identified by numbers or names.</comment><header></header><code></code><translations></translations><inputs><input type="%s">numberOrName</input><input type="%s">numberOrName</input><input type="%s">SciSnap!Data</input></inputs><script><block s="doDeclareVariables"><list><l>source</l><l>x</l><l>y</l></list></block><block s="doWarp"><script><block s="doIfElse"><block s="reportEquals"><block var="table"/><l>SciSnap!Data</l></block><script><block s="doSetVar"><l>source</l><block var="SciSnap!Data"/></block></script><script><block s="doSetVar"><l>source</l><block var="table"/></block></script></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a %txt"><block var="source"/><l>table</l></custom-block></block><script><block s="doReport"><l>ERROR: only tables supported!</l></block></script></block><block s="doSetVar"><l>x</l><custom-block s="%s %s of %s $arrowRightOutline number"><l>column</l><block var="xName"/><block var="source"/></custom-block></block><block s="doIf"><block s="reportNot"><block s="reportIsA"><block var="x"/><l><option>number</option></l></block></block><script><block s="doReport"><l>ERROR: unknown column name!</l></block></script></block><block s="doSetVar"><l>y</l><custom-block s="%s %s of %s $arrowRightOutline number"><l>row</l><block var="yName"/><block var="source"/></custom-block></block><block s="doIf"><block s="reportNot"><block s="reportIsA"><block var="y"/><l><option>number</option></l></block></block><script><block s="doReport"><l>ERROR: unknown row name!</l></block></script></block><block s="doIfElse"><block s="reportNot"><block s="reportAnd"><block s="reportAnd"><block s="reportGreaterThan"><block var="y"/><l>0</l></block><block s="reportLessThanOrEquals"><block var="y"/><block s="reportListAttribute"><l><option>length</option></l><block var="source"/></block></block></block><block s="reportAnd"><block s="reportGreaterThan"><block var="x"/><l>0</l></block><block s="reportLessThanOrEquals"><block var="x"/><block s="reportListAttribute"><l><option>length</option></l><block s="reportListItem"><l>1</l><block var="source"/></block></block></block></block></block></block><script><block s="doReport"><l>ERROR: coordinates out of range!</l></block></script><script><block s="doReport"><block s="reportListItem"><block var="x"/><block s="reportListItem"><block var="y"/><block var="source"/></block></block></block></script></block></script></block></script></block-definition><block-definition s="set element %'xName' %'yName' of %'table' to %'value'" type="command" category="3. Data tools"><comment x="0" y="0" w="205.83333333333314" collapsed="false">Replaces the value at position x|y of a table.</comment><header></header><code></code><translations></translations><inputs><input type="%s">numberOrName</input><input type="%s">numberOrName</input><input type="%s">SciSnap!Data</input><input type="%s"></input></inputs><script><block s="doDeclareVariables"><list><l>source</l><l>x</l><l>y</l></list></block><block s="doWarp"><script><block s="doIfElse"><block s="reportEquals"><block var="table"/><l>SciSnap!Data</l></block><script><block s="doSetVar"><l>source</l><block var="SciSnap!Data"/></block></script><script><block s="doSetVar"><l>source</l><block var="table"/></block></script></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a %txt"><block var="source"/><l>table</l></custom-block></block><script><custom-block s="report SciSnap! error %txt"><l>ERROR: operation only defined for tables!</l></custom-block><block s="doStopThis"><l><option>this block</option></l></block></script></block><block s="doSetVar"><l>x</l><custom-block s="%s %s of %s $arrowRightOutline number"><l>column</l><block var="xName"/><block var="source"/></custom-block></block><block s="doIf"><block s="reportNot"><block s="reportIsA"><block var="x"/><l><option>number</option></l></block></block><script><custom-block s="report SciSnap! error %txt"><l>ERROR: unknown column name!</l></custom-block><block s="doStopThis"><l><option>this block</option></l></block></script></block><block s="doSetVar"><l>y</l><custom-block s="%s %s of %s $arrowRightOutline number"><l>row</l><block var="yName"/><block var="source"/></custom-block></block><block s="doIf"><block s="reportNot"><block s="reportIsA"><block var="y"/><l><option>number</option></l></block></block><script><custom-block s="report SciSnap! error %txt"><l>ERROR: unknown row name!</l></custom-block><block s="doStopThis"><l><option>this block</option></l></block></script></block><block s="doIfElse"><block s="reportNot"><block s="reportAnd"><block s="reportAnd"><block s="reportGreaterThan"><block var="y"/><l>0</l></block><block s="reportLessThanOrEquals"><block var="y"/><block s="reportListAttribute"><l><option>length</option></l><block var="source"/></block></block></block><block s="reportAnd"><block s="reportGreaterThan"><block var="x"/><l>0</l></block><block s="reportLessThanOrEquals"><block var="x"/><block s="reportListAttribute"><l><option>length</option></l><block s="reportListItem"><l>1</l><block var="source"/></block></block></block></block></block></block><script><custom-block s="report SciSnap! error %txt"><l>ERROR: coordinates out of range!</l></custom-block><block s="doStopThis"><l><option>this block</option></l></block></script><script><block s="doReplaceInList"><block var="x"/><block s="reportListItem"><block var="y"/><block var="source"/></block><block var="value"/></block></script></block></script></block></script></block-definition><block-definition s="columns %'columns' of %'table' $nl from row %'startnr' to %'endnr'" type="reporter" category="3. Data tools"><comment x="0" y="0" w="118.99999999999933" collapsed="false">Reports the columns from row startnr to row endnr.</comment><header></header><code></code><translations></translations><inputs><input type="%mult%s"></input><input type="%s">SciSnap!Data</input><input type="%s">numberOrName</input><input type="%s">last<options>last
numberOrName</options></input></inputs><script><block s="doDeclareVariables"><list><l>source</l><l>colNumbers</l><l>n</l><l>result</l></list></block><block s="doWarp"><script><block s="doIfElse"><block s="reportEquals"><block var="table"/><l>SciSnap!Data</l></block><script><block s="doSetVar"><l>source</l><block var="SciSnap!Data"/></block></script><script><block s="doSetVar"><l>source</l><block var="table"/></block></script></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a %txt"><block var="source"/><l>table</l></custom-block></block><script><block s="doReport"><l>ERROR: only tables supported!</l></block></script></block><block s="doIf"><block s="reportEquals"><block var="endnr"/><l>last</l></block><script><block s="doSetVar"><l>endnr</l><block s="reportListAttribute"><l><option>length</option></l><block var="source"/></block></block></script></block><block s="doSetVar"><l>startnr</l><custom-block s="%s %s of %s $arrowRightOutline number"><l>row</l><block var="startnr"/><block var="source"/></custom-block></block><block s="doIf"><block s="reportNot"><block s="reportIsA"><block var="startnr"/><l><option>number</option></l></block></block><script><block s="doReport"><l>ERROR: unknown row name!</l></block></script></block><block s="doSetVar"><l>endnr</l><custom-block s="%s %s of %s $arrowRightOutline number"><l>row</l><block var="endnr"/><block var="source"/></custom-block></block><block s="doIf"><block s="reportNot"><block s="reportIsA"><block var="endnr"/><l><option>number</option></l></block></block><script><block s="doReport"><l>ERROR: unknown row name!</l></block></script></block><block s="doSetVar"><l>colNumbers</l><block s="reportNewList"><list></list></block></block><block s="doForEach"><l>item</l><block var="columns"/><script><block s="doIfElse"><block s="reportIsA"><block var="item"/><l><option>number</option></l></block><script><block s="doAddToList"><block var="item"/><block var="colNumbers"/></block></script><script><block s="doSetVar"><l>n</l><custom-block s="%s %s of %s $arrowRightOutline number"><l>column</l><block var="item"/><block var="source"/></custom-block></block><block s="doIf"><block s="reportNot"><block s="reportIsA"><block var="n"/><l><option>number</option></l></block></block><script><block s="doReport"><l>ERROR: unknown column name!</l></block></script></block><block s="doAddToList"><block var="n"/><block var="colNumbers"/></block></script></block></script></block><block s="doReport"><block s="reportApplyExtension"><l>SciS_columncopy(data,cols,start,stop)</l><list><block var="source"/><block var="colNumbers"/><block var="startnr"/><block var="endnr"/></list></block></block></script></block></script></block-definition><block-definition s="subsection of %'choice' in %'data' from $nl %'b1Name' %'b2Name' to %'e1Name' %'e2Name'" type="reporter" category="3. Data tools"><comment x="0" y="0" w="196" collapsed="false">Reports a subsection of an image or table.</comment><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true">RGB-data<options>table-data
matrix-data
list-data
RGB-data
FITS-data</options></input><input type="%s">SciSnap!Data</input><input type="%s">numberOrName</input><input type="%s">numberOrName</input><input type="%s">numberOrName</input><input type="%s">numberOrName</input></inputs><script><block s="doDeclareVariables"><list><l>source</l><l>width</l><l>height</l><l>begin</l><l>end</l><l>b1</l><l>b2</l><l>e1</l><l>e2</l><l>result</l><l>dummy</l></list></block><block s="doWarp"><script><block s="doIfElse"><block s="reportEquals"><block var="data"/><l>SciSnap!Data</l></block><script><block s="doSetVar"><l>source</l><block var="SciSnap!Data"/></block></script><script><block s="doSetVar"><l>source</l><block var="data"/></block></script></block><block s="doIf"><block s="reportEquals"><block var="choice"/><l>list-data</l></block><script><block s="doIf"><block s="reportNot"><block s="reportIsA"><block var="b1Name"/><l><option>number</option></l></block></block><script><block s="doReport"><l>ERROR: unknown start number!</l></block></script></block><block s="doIf"><block s="reportNot"><block s="reportIsA"><block var="e1Name"/><l><option>number</option></l></block></block><script><block s="doReport"><l>ERROR: unknown end number!</l></block></script></block><block s="doIf"><block s="reportNot"><block s="reportIsA"><block var="source"/><l><option>list</option></l></block></block><script><block s="doReport"><l>ERROR: list required</l></block></script></block><block s="doSetVar"><l>result</l><block s="reportNewList"><list></list></block></block><block s="doSetVar"><l>dummy</l><block s="reportMap"><block s="reifyReporter"><script><block s="doIf"><block s="reportAnd"><block s="reportGreaterThanOrEquals"><block var="index"/><block var="b1Name"/></block><block s="reportLessThanOrEquals"><block var="index"/><block var="e1Name"/></block></block><script><block s="doAddToList"><block var="value"/><block var="result"/></block></script></block><block s="doReport"><l></l></block></script><list><l>value</l><l>index</l></list></block><block var="source"/></block></block><block s="doReport"><block var="result"/></block></script></block><block s="doIf"><block s="reportOr"><block s="reportEquals"><block var="choice"/><l>table-data</l></block><block s="reportEquals"><block var="choice"/><l>matrix-data</l></block></block><script><block s="doIf"><block s="reportNot"><block s="reportOr"><custom-block s="is %s a %txt"><block var="source"/><l>table</l></custom-block><custom-block s="is %s a %txt"><block var="source"/><l>matrix</l></custom-block></block></block><script><block s="doReport"><l>ERROR: table or matrix required</l></block></script></block><block s="doSetVar"><l>b1</l><custom-block s="%s %s of %s $arrowRightOutline number"><l>column</l><block var="b1Name"/><block var="source"/></custom-block></block><block s="doIf"><block s="reportNot"><block s="reportIsA"><block var="b1"/><l><option>number</option></l></block></block><script><block s="doReport"><l>ERROR: unknown column name!</l></block></script></block><block s="doSetVar"><l>b2</l><custom-block s="%s %s of %s $arrowRightOutline number"><l>row</l><block var="b2Name"/><block var="source"/></custom-block></block><block s="doIf"><block s="reportNot"><block s="reportIsA"><block var="b2"/><l><option>number</option></l></block></block><script><block s="doReport"><l>ERROR: unknown row name!</l></block></script></block><block s="doSetVar"><l>e1</l><custom-block s="%s %s of %s $arrowRightOutline number"><l>column</l><block var="e1Name"/><block var="source"/></custom-block></block><block s="doIf"><block s="reportNot"><block s="reportIsA"><block var="e1"/><l><option>number</option></l></block></block><script><block s="doReport"><l>XXXERROR: unknown column name!</l></block></script></block><block s="doSetVar"><l>e2</l><custom-block s="%s %s of %s $arrowRightOutline number"><l>row</l><block var="e2Name"/><block var="source"/></custom-block></block><block s="doIf"><block s="reportNot"><block s="reportIsA"><block var="e2"/><l><option>number</option></l></block></block><script><block s="doReport"><l>ERROR: unknown row name!</l></block></script></block><block s="doSetVar"><l>begin</l><block s="reportNewList"><list><block var="b1"/><block var="b2"/></list></block></block><block s="doSetVar"><l>end</l><block s="reportNewList"><list><block var="e1"/><block var="e2"/></list></block></block><block s="doReport"><block s="reportApplyExtension"><l>SciS_subsection(data,begin,end)</l><list><block var="source"/><block var="begin"/><block var="end"/></list></block></block></script></block><block s="doIf"><block s="reportOr"><block s="reportEquals"><block var="choice"/><l>RGB-data</l></block><block s="reportEquals"><block var="choice"/><l>FITS-data</l></block></block><script><block s="doIf"><block s="reportNot"><block s="reportEquals"><block var="data"/><l>SciSnap!Data</l></block></block><script><block s="doReport"><l>ERROR: please import image-data to SciSnap!Data first!</l></block></script></block><block s="doIf"><block s="reportEquals"><block var="choice"/><l>RGB-data</l></block><script><block s="doIf"><block s="reportNot"><block s="reportAnd"><block s="reportEquals"><custom-block s="SciSnap! global property %s"><l>typeOfData</l></custom-block><l>RGB</l></block><custom-block s="is %s a %txt"><block var="SciSnap!Data"/><l>matrix</l></custom-block></block></block><script><block s="doReport"><l>ERROR: wrong data!</l></block></script></block><block s="doSetVar"><l>width</l><custom-block s="SciSnap! global property %s"><l>width</l></custom-block></block><block s="doSetVar"><l>height</l><custom-block s="SciSnap! global property %s"><l>height</l></custom-block></block></script></block><block s="doIf"><block s="reportEquals"><block var="choice"/><l>FITS-data</l></block><script><block s="doIf"><block s="reportNot"><block s="reportAnd"><block s="reportEquals"><custom-block s="SciSnap! global property %s"><l>typeOfData</l></custom-block><l>FITS</l></block><custom-block s="is %s a %txt"><block var="SciSnap!Data"/><l>vector</l></custom-block></block></block><script><block s="doReport"><l>ERROR: wrong data!</l></block></script></block><block s="doSetVar"><l>width</l><custom-block s="SciSnap! global property %s"><l>width</l></custom-block></block><block s="doSetVar"><l>height</l><custom-block s="SciSnap! global property %s"><l>height</l></custom-block></block></script></block><block s="doIf"><block s="reportNot"><block s="reportIsA"><block var="source"/><l><option>list</option></l></block></block><script><block s="doReport"><l>ERROR: list required</l></block></script></block><block s="doIf"><block s="reportNot"><block s="reportIsA"><block var="b1Name"/><l><option>number</option></l></block></block><script><block s="doReport"><l>ERROR: unknown start number!</l></block></script></block><block s="doIf"><block s="reportNot"><block s="reportIsA"><block var="b2Name"/><l><option>number</option></l></block></block><script><block s="doReport"><l>ERROR: unknown start number!</l></block></script></block><block s="doIf"><block s="reportNot"><block s="reportIsA"><block var="e1Name"/><l><option>number</option></l></block></block><script><block s="doReport"><l>ERROR: unknown end number!</l></block></script></block><block s="doIf"><block s="reportNot"><block s="reportIsA"><block var="e2Name"/><l><option>number</option></l></block></block><script><block s="doReport"><l>ERROR: unknown end number!</l></block></script></block><block s="doSetVar"><l>begin</l><block s="reportNewList"><list><block var="b1Name"/><block var="b2Name"/></list></block></block><block s="doSetVar"><l>end</l><block s="reportNewList"><list><block var="e1Name"/><block var="e2Name"/></list></block></block><block s="doReport"><block s="reportApplyExtension"><l>SciS_subsectionImage(data,begin,end,width,height)</l><list><block var="source"/><block var="begin"/><block var="end"/><block var="width"/><block var="height"/></list></block></block></script></block></script></block></script></block-definition><block-definition s="select rows of %'table' where $nl column %'name' is %'op' %'value'" type="reporter" category="3. Data tools"><comment x="0" y="0" w="138.33333333333334" collapsed="false">Determines the rows of a table with certain properties.</comment><header></header><code></code><translations></translations><inputs><input type="%s">SciSnap!Data</input><input type="%s">numberOrName</input><input type="%s" readonly="true">less-than<options>less-than
greater-than
equal-to
different-from</options></input><input type="%s"></input></inputs><script><block s="doDeclareVariables"><list><l>source</l><l>n</l></list></block><block s="doWarp"><script><block s="doIfElse"><block s="reportEquals"><block var="table"/><l>SciSnap!Data</l></block><script><block s="doSetVar"><l>source</l><custom-block s="copy of %l"><block var="SciSnap!Data"/></custom-block></block></script><script><block s="doSetVar"><l>source</l><custom-block s="copy of %l"><block var="table"/></custom-block></block></script></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a %txt"><block var="source"/><l>table</l></custom-block></block><script><block s="doReport"><l>ERROR: only tables supported!</l></block></script></block><block s="doSetVar"><l>n</l><custom-block s="%s %s of %s $arrowRightOutline number"><l>column</l><block var="name"/><block var="source"/></custom-block></block><block s="doIf"><block s="reportNot"><block s="reportIsA"><block var="n"/><l><option>number</option></l></block></block><script><block s="doReport"><l>ERROR: unknown column name!</l></block></script></block><block s="doIf"><block s="reportOr"><block s="reportLessThan"><block var="n"/><l>1</l></block><block s="reportGreaterThan"><block var="n"/><block s="reportListAttribute"><l><option>length</option></l><block s="reportListItem"><l>1</l><block var="source"/></block></block></block></block><script><block s="doReport"><l>ERROR: column index out of range!</l></block></script></block><block s="doSetVar"><l>op</l><block s="reportListItem"><l>1</l><block s="reportTextSplit"><block var="op"/><l><option>whitespace</option></l></block></block></block><block s="doIf"><block s="reportEquals"><block var="op"/><l>less-than</l></block><script><block s="doReport"><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportLessThan"><block s="reportListItem"><block var="n"/><l/></block><block var="value"/></block></autolambda><list></list></block><block var="source"/></block></block></script></block><block s="doIf"><block s="reportEquals"><block var="op"/><l>greater-than</l></block><script><block s="doReport"><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportGreaterThan"><block s="reportListItem"><block var="n"/><l/></block><block var="value"/></block></autolambda><list></list></block><block var="source"/></block></block></script></block><block s="doIf"><block s="reportEquals"><block var="op"/><l>equal-to</l></block><script><block s="doReport"><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportEquals"><block s="reportListItem"><block var="n"/><l/></block><block var="value"/></block></autolambda><list></list></block><block var="source"/></block></block></script></block><block s="doIf"><block s="reportEquals"><block var="op"/><l>different-from</l></block><script><block s="doReport"><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportNot"><block s="reportEquals"><block s="reportListItem"><block var="n"/><l/></block><block var="value"/></block></block></autolambda><list></list></block><block var="source"/></block></block></script></block></script></block></script></block-definition><block-definition s="count values in %'data'" type="reporter" category="3. Data tools"><comment x="0" y="0" w="220" collapsed="false">counts the appearances of the values of a list.</comment><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doDeclareVariables"><list><l>sortedData</l><l>countedValues</l><l>value</l><l>n</l></list></block><block s="doWarp"><script><block s="doIf"><block s="reportNotEquals"><block s="reportFindFirst"><block s="reifyPredicate"><autolambda><block s="reportIsA"><l></l><l><option>list</option></l></block></autolambda><list></list></block><block s="reportNewList"><list><l>A</l><l>B</l><l>C</l></list></block></block><l></l></block><script><block s="doReport"><l>ERROR: simple list required!</l></block></script></block><block s="doSetVar"><l>sortedData</l><custom-block s="sort %l with predicate %predRing"><block var="data"/><block s="reifyPredicate"><autolambda><block s="reportLessThan"><l></l><l></l></block></autolambda><list></list></block></custom-block></block><block s="doSetVar"><l>countedValues</l><block s="reportNewList"><list></list></block></block><block s="doSetVar"><l>value</l><block s="reportListItem"><l>1</l><block var="sortedData"/></block></block><block s="doSetVar"><l>n</l><l>0</l></block><block s="doForEach"><l>item</l><block var="sortedData"/><script><block s="doIfElse"><block s="reportEquals"><block var="item"/><block var="value"/></block><script><block s="doChangeVar"><l>n</l><l>1</l></block></script><script><block s="doAddToList"><block s="reportNewList"><list><block var="value"/><block var="n"/></list></block><block var="countedValues"/></block><block s="doSetVar"><l>value</l><block var="item"/></block><block s="doSetVar"><l>n</l><l>1</l></block></script></block></script></block><block s="doAddToList"><block s="reportNewList"><list><block var="value"/><block var="n"/></list></block><block var="countedValues"/></block><block s="doReport"><block var="countedValues"/></block></script></block></script></block-definition><block-definition s="entropy of %'data'" type="reporter" category="3. Data tools"><comment x="0" y="0" w="168" collapsed="false">returns the entropy of a list of data</comment><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doDeclareVariables"><list><l>result</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>result</l><l>0</l></block><block s="doForEach"><l>item</l><custom-block s="count values in %l"><block var="data"/></custom-block><script><block s="doIf"><block s="reportGreaterThan"><block s="reportListItem"><l>2</l><block var="item"/></block><l>0</l></block><script><block s="doChangeVar"><l>result</l><block s="reportMonadic"><l><option>neg</option></l><block s="reportVariadicProduct"><list><block s="reportQuotient"><block s="reportListItem"><l>2</l><block var="item"/></block><block s="reportListAttribute"><l><option>length</option></l><block var="data"/></block></block><block s="reportMonadic"><l><option>ln</option></l><block s="reportQuotient"><block s="reportListItem"><l>2</l><block var="item"/></block><block s="reportListAttribute"><l><option>length</option></l><block var="data"/></block></block></block></list></block></block></block></script></block></script></block><block s="doReport"><block var="result"/></block></script></block></script></block-definition><block-definition s="%'data' without duplicates" type="reporter" category="3. Data tools"><comment x="0" y="0" w="222.33333333333348" collapsed="false">Copy of corresponding Snap!-library-block: 
Reports a new list whose items are the same as in the input list, except that if two or more equal items appear in the input list, only the last one is kept in the result.</comment><header></header><code></code><translations></translations><inputs><input type="%s">SciSnap!Data</input></inputs><script><block s="doDeclareVariables"><list><l>source</l></list></block><block s="doWarp"><script><block s="doIfElse"><block s="reportEquals"><block var="data"/><l>SciSnap!Data</l></block><script><block s="doSetVar"><l>source</l><block var="SciSnap!Data"/></block></script><script><block s="doSetVar"><l>source</l><block var="data"/></block></script></block><block s="doIfElse"><block s="reportNot"><block s="reportOr"><custom-block s="is %s a %txt"><block var="source"/><l>table</l></custom-block><block s="reportIsA"><block var="source"/><l><option>list</option></l></block></block></block><script><block s="doReport"><l>ERROR: only tables supported!</l></block></script><script><block s="doReport"><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportEquals"><block s="reportListIndex"><block var="value"/><block var="list"/></block><block var="index"/></block></autolambda><list><l>value</l><l>index</l><l>list</l></list></block><block var="source"/></block></block></script></block></script></block></script></block-definition><block-definition s="%'data' normalized by %'choice'" type="reporter" category="3. Data tools"><comment x="0" y="0" w="142.5" collapsed="false">Normalizes a table by dividing it by the specified value.</comment><header></header><code></code><translations></translations><inputs><input type="%s">SciSnap!Data</input><input type="%s">mean<options>mean
max
number
sum
median
softmax</options></input></inputs><script><block s="doDeclareVariables"><list><l>divisor</l><l>source</l><l>n</l><l>sum</l></list></block><block s="doWarp"><script><block s="doIfElse"><block s="reportEquals"><block var="data"/><l>SciSnap!Data</l></block><script><block s="doSetVar"><l>source</l><block var="SciSnap!Data"/></block></script><script><block s="doSetVar"><l>source</l><block var="data"/></block></script></block><block s="doSetVar"><l>choice</l><block s="reportListItem"><l>1</l><block s="reportTextSplit"><block var="choice"/><l> </l></block></block></block><block s="doIfElse"><block s="reportNot"><custom-block s="is %s a %txt"><block var="source"/><l>vector</l></custom-block></block><script><block s="doReport"><l>ERROR: only vectors supported!</l></block></script><script><block s="doIfElse"><block s="reportEquals"><block var="choice"/><l>mean</l></block><script><block s="doSetVar"><l>divisor</l><custom-block s="%s of vector %l"><l>mean</l><block var="source"/></custom-block></block></script><script><block s="doIfElse"><block s="reportEquals"><block var="choice"/><l>max</l></block><script><block s="doSetVar"><l>divisor</l><custom-block s="%s of vector %l"><l>max</l><block var="source"/></custom-block></block></script><script><block s="doIfElse"><block s="reportEquals"><block var="choice"/><l>number</l></block><script><block s="doSetVar"><l>divisor</l><custom-block s="%s of vector %l"><l>number</l><block var="source"/></custom-block></block></script><script><block s="doIfElse"><block s="reportEquals"><block var="choice"/><l>sum</l></block><script><block s="doSetVar"><l>divisor</l><custom-block s="%s of vector %l"><l>sum</l><block var="source"/></custom-block></block></script><script><block s="doIfElse"><block s="reportEquals"><block var="choice"/><l>median</l></block><script><block s="doSetVar"><l>divisor</l><custom-block s="%s of vector %l"><l>median</l><block var="source"/></custom-block></block></script><script><block s="doIfElse"><block s="reportEquals"><block var="choice"/><l>softmax</l></block><script><block s="doReport"><custom-block s="%s of vector %l"><l>softmax</l><block var="source"/></custom-block></block></script><script><block s="doIfElse"><block s="reportIsA"><block var="choice"/><l><option>number</option></l></block><script><block s="doSetVar"><l>divisor</l><block var="choice"/></block></script><script><block s="doReport"><l>ERROR: illegal operation!</l></block></script></block></script></block></script></block></script></block></script></block></script></block></script></block><block s="doIfElse"><block s="reportNot"><block s="reportEquals"><block var="divisor"/><l>0</l></block></block><script><block s="doReport"><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportQuotient"><l></l><block var="divisor"/></block></autolambda><list></list></block><block var="source"/></block></block></script><script><block s="doReport"><l>ERROR: divisor is 0!</l></block></script></block></script></block></script></block></script></block-definition><block-definition s="%'data' compressed with $nl factor %'n' by averaging" type="reporter" category="3. Data tools"><comment x="0" y="0" w="137.85714285714297" collapsed="false">Reports a compressed version of a vector or matrix.</comment><header></header><code></code><translations></translations><inputs><input type="%s">SciSnap!Data</input><input type="%n">2</input></inputs><script><block s="doDeclareVariables"><list><l>result</l><l>h</l><l>source</l><l>i</l><l>j</l><l>isMatrix</l><l>columnNr</l></list></block><block s="doWarp"><script><block s="doIfElse"><block s="reportEquals"><block var="data"/><l>SciSnap!Data</l></block><script><block s="doSetVar"><l>source</l><block var="SciSnap!Data"/></block></script><script><block s="doSetVar"><l>source</l><block var="data"/></block></script></block><block s="doSetVar"><l>isMatrix</l><custom-block s="is %s a %txt"><block var="source"/><l>matrix</l></custom-block></block><block s="doIf"><block s="reportNot"><block s="reportOr"><custom-block s="is %s a %txt"><block var="source"/><l>vector</l></custom-block><block var="isMatrix"/></block></block><script><block s="doReport"><l>ERROR: vector required!</l></block></script></block><block s="doIf"><block s="reportOr"><block s="reportLessThan"><block s="reportListAttribute"><l><option>length</option></l><block var="source"/></block><l>1</l></block><block s="reportLessThan"><block var="n"/><l>1</l></block></block><script><block s="doReport"><l>ERROR: impossible operation!</l></block></script></block><block s="doIf"><block s="reportNot"><block var="isMatrix"/></block><script><block s="doIf"><block s="reportIsA"><block s="reportListItem"><l>1</l><block var="source"/></block><l><option>list</option></l></block><script><block s="doSetVar"><l>source</l><custom-block s="transpose table or list %l"><block var="source"/></custom-block></block></script></block><block s="doSetVar"><l>result</l><block s="reportNewList"><list></list></block></block><block s="doSetVar"><l>i</l><l>1</l></block><block s="doUntil"><block s="reportGreaterThan"><block var="i"/><block s="reportVariadicSum"><list><block s="reportDifference"><block s="reportListAttribute"><l><option>length</option></l><block var="source"/></block><block var="n"/></block><l>1</l></list></block></block><script><block s="doSetVar"><l>h</l><block s="reportListItem"><block var="i"/><block var="source"/></block></block><block s="doSetVar"><l>j</l><l>1</l></block><block s="doUntil"><block s="reportGreaterThanOrEquals"><block var="j"/><block var="n"/></block><script><block s="doSetVar"><l>h</l><block s="reportVariadicSum"><list><block var="h"/><block s="reportListItem"><block s="reportVariadicSum"><list><block var="i"/><block var="j"/></list></block><block var="source"/></block></list></block></block><block s="doChangeVar"><l>j</l><l>1</l></block></script></block><block s="doAddToList"><block s="reportQuotient"><block var="h"/><block var="n"/></block><block var="result"/></block><block s="doChangeVar"><l>i</l><block var="n"/></block></script></block><block s="doReport"><block var="result"/></block></script></block><block s="doSetVar"><l>result</l><custom-block s="empty table"></custom-block></block><block s="doSetVar"><l>columnNr</l><l>1</l></block><block s="doUntil"><block s="reportGreaterThan"><block var="columnNr"/><block s="reportListAttribute"><l><option>length</option></l><block s="reportListItem"><l>1</l><block var="source"/></block></block></block><script><custom-block s="add %s %l to %s"><l>column</l><custom-block s="%s compressed with %br factor %n by averaging"><custom-block s="%s %s of %s with first item? %b"><l>column</l><block var="columnNr"/><block var="source"/><l><bool>true</bool></l></custom-block><block var="n"/></custom-block><block var="result"/></custom-block><block s="doChangeVar"><l>columnNr</l><l>1</l></block></script></block><block s="doReport"><block var="result"/></block></script></block></script></block-definition><block-definition s="%'typeOfPooling' pooling of %'data' $nl with stride %'stride'" type="reporter" category="3. Data tools"><comment x="0" y="0" w="141" collapsed="false">Pooling operation with matrices, images and vectors.</comment><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true">max<options>max
mean</options></input><input type="%s">SciSnap!Data</input><input type="%n">2</input></inputs><script><block s="doDeclareVariables"><list><l>source</l><l>typeOfData</l><l>width</l><l>height</l></list></block><block s="doWarp"><script><block s="doIfElse"><block s="reportEquals"><block var="data"/><l>SciSnap!Data</l></block><script><block s="doSetVar"><l>source</l><block var="SciSnap!Data"/></block><block s="doSetVar"><l>typeOfData</l><custom-block s="SciSnap! global property %s"><l>typeOfData</l></custom-block></block></script><script><block s="doSetVar"><l>source</l><block var="data"/></block><block s="doIfElse"><custom-block s="is %s a %txt"><block var="source"/><l>vector</l></custom-block><script><block s="doSetVar"><l>typeOfData</l><l>vector</l></block></script><script><block s="doIfElse"><custom-block s="is %s a %txt"><block var="source"/><l>matrix</l></custom-block><script><block s="doSetVar"><l>typeOfData</l><l>matrix</l></block></script><script><block s="doReport"><l>ERROR: only defined for matrices, images, and vectors!</l></block></script></block></script></block></script></block><block s="doIf"><block s="reportLessThan"><block var="stride"/><l>1</l></block><script><block s="doReport"><l>ERROR: stride is too small!</l></block></script></block><block s="doSetVar"><l>typeOfPooling</l><block s="reportListItem"><l>1</l><block s="reportTextSplit"><block var="typeOfPooling"/><l> </l></block></block></block><block s="doIfElse"><block s="reportNot"><block s="reportOr"><block s="reportOr"><block s="reportEquals"><block var="typeOfData"/><l>matrix</l></block><block s="reportEquals"><block var="typeOfData"/><l>vector</l></block></block><block s="reportOr"><block s="reportEquals"><block var="typeOfData"/><l>FITS</l></block><block s="reportEquals"><block var="typeOfData"/><l>RGB</l></block></block></block></block><script><block s="doReport"><l>ERROR: only defined for images, tables, and lists!</l></block></script><script><block s="doIf"><block s="reportEquals"><block var="typeOfData"/><l>vector</l></block><script><block s="doIfElse"><block s="reportEquals"><block s="reportListAttribute"><l><option>length</option></l><block var="source"/></block><l>0</l></block><script><block s="doReport"><l>ERROR: no data found!</l></block></script><script><block s="doSetVar"><l>width</l><block s="reportListAttribute"><l><option>length</option></l><block var="source"/></block></block><block s="doSetVar"><l>height</l><l>1</l></block></script></block></script></block><block s="doIf"><block s="reportEquals"><block var="typeOfData"/><l>matrix</l></block><script><block s="doIfElse"><block s="reportEquals"><block s="reportListAttribute"><l><option>length</option></l><block var="source"/></block><l>0</l></block><script><block s="doReport"><l>ERROR: no data found!</l></block></script><script><block s="doSetVar"><l>width</l><block s="reportListAttribute"><l><option>length</option></l><block s="reportListItem"><l>1</l><block var="source"/></block></block></block><block s="doSetVar"><l>height</l><block s="reportListAttribute"><l><option>length</option></l><block var="source"/></block></block></script></block></script></block><block s="doIf"><block s="reportEquals"><block var="typeOfData"/><l>FITS</l></block><script><block s="doIfElse"><block s="reportEquals"><block s="reportListAttribute"><l><option>length</option></l><block var="source"/></block><l>0</l></block><script><block s="doReport"><l>ERROR: no data found!</l></block></script><script><block s="doSetVar"><l>width</l><l>1</l></block><block s="doSetVar"><l>height</l><block s="reportListAttribute"><l><option>length</option></l><block var="source"/></block></block></script></block></script></block><block s="doIf"><block s="reportEquals"><block var="typeOfData"/><l>RGB</l></block><script><block s="doIfElse"><block s="reportEquals"><block s="reportListAttribute"><l><option>length</option></l><block var="source"/></block><l>0</l></block><script><block s="doReport"><l>ERROR: no data found!</l></block></script><script><block s="doSetVar"><l>width</l><custom-block s="SciSnap! global property %s"><l>width</l></custom-block></block><block s="doSetVar"><l>height</l><custom-block s="SciSnap! global property %s"><l>height</l></custom-block></block></script></block></script></block><block s="doReport"><block s="reportApplyExtension"><l>SciS_pooling(data,width,height,typeOfPooling,stride,typeOfData)</l><list><block var="source"/><block var="width"/><block var="height"/><block var="typeOfPooling"/><block var="stride"/><block var="typeOfData"/></list></block></block></script></block></script></block></script></block-definition><block-definition s="sort %'data' with predicate %'fn'" type="reporter" category="3. Data tools"><comment x="0" y="0" w="107.5" collapsed="false">Reports a sorted list.</comment><header></header><code></code><translations></translations><inputs><input type="%l"></input><input type="%predRing"></input></inputs><script><block s="doIfElse"><block s="reportAnd"><block s="reportIsA"><block var="data"/><l><option>list</option></l></block><block s="reportIsA"><block var="fn"/><l><option>predicate</option></l></block></block><script><block s="doReport"><block s="reportApplyExtension"><l>lst_sort(list, fn)</l><list><block var="data"/><block var="fn"/></list></block></block></script><script><block s="doReport"><l>ERROR: list and predicate required!</l></block></script></block></script></block-definition><block-definition s="%'table' sorted by column %'name' $nl ascending %'ascending' considering headline? %'withHeadline'" type="reporter" category="3. Data tools"><comment x="0" y="0" w="101.66666666666667" collapsed="false">Sorts a list or table.</comment><header></header><code></code><translations></translations><inputs><input type="%s">SciSnap!Data</input><input type="%s">numberOrName</input><input type="%b">true</input><input type="%b">true</input></inputs><script><block s="doDeclareVariables"><list><l>source</l><l>result</l><l>headline</l><l>n</l><l>isTable</l></list></block><block s="doWarp"><script><block s="doIfElse"><block s="reportEquals"><block var="table"/><l>SciSnap!Data</l></block><script><block s="doSetVar"><l>source</l><block var="SciSnap!Data"/></block></script><script><block s="doSetVar"><l>source</l><block var="table"/></block></script></block><block s="doSetVar"><l>isTable</l><custom-block s="is %s a %txt"><block var="source"/><l>table</l></custom-block></block><block s="doIf"><block s="reportNot"><block s="reportOr"><block var="isTable"/><block s="reportIsA"><block var="source"/><l><option>list</option></l></block></block></block><script><block s="doReport"><l>ERROR: only tables and lists supported!</l></block></script></block><block s="doIfElse"><block var="isTable"/><script><block s="doSetVar"><l>n</l><custom-block s="%s %s of %s $arrowRightOutline number"><l>column</l><block var="name"/><block var="source"/></custom-block></block></script><script><block s="doSetVar"><l>n</l><l>1</l></block></script></block><block s="doIf"><block s="reportNot"><block s="reportIsA"><block var="n"/><l><option>number</option></l></block></block><script><block s="doReport"><l>ERROR: unknown column name!</l></block></script></block><block s="doSetVar"><l>result</l><custom-block s="copy of %l"><block var="source"/></custom-block></block><block s="doIf"><block s="reportNot"><block var="withHeadline"/></block><script><block s="doSetVar"><l>headline</l><block s="reportListItem"><l>1</l><block var="result"/></block></block><block s="doDeleteFromList"><l>1</l><block var="result"/></block></script></block><block s="doIfElse"><block s="reportIsA"><block s="reportListItem"><l>1</l><block var="result"/></block><l><option>list</option></l></block><script><block s="doIf"><block s="reportOr"><block s="reportLessThan"><block var="n"/><l>1</l></block><block s="reportGreaterThan"><block var="n"/><block s="reportListAttribute"><l><option>length</option></l><block s="reportListItem"><l>1</l><block var="result"/></block></block></block></block><script><block s="doReport"><l>ERROR: index out of range!</l></block></script></block><block s="doIfElse"><block var="ascending"/><script><block s="doSetVar"><l>result</l><block s="evaluate"><block s="reifyReporter"><autolambda><custom-block s="sort %l with predicate %predRing"><block var="result"/><block s="reifyPredicate"><autolambda><block s="reportLessThan"><block s="reportListItem"><block var="column"/><l/></block><block s="reportListItem"><block var="column"/><l/></block></block></autolambda><list></list></block></custom-block></autolambda><list><l>column</l></list></block><list><block var="n"/></list></block></block></script><script><block s="doSetVar"><l>result</l><block s="evaluate"><block s="reifyReporter"><autolambda><custom-block s="sort %l with predicate %predRing"><block var="result"/><block s="reifyPredicate"><autolambda><block s="reportGreaterThan"><block s="reportListItem"><block var="column"/><l/></block><block s="reportListItem"><block var="column"/><l/></block></block></autolambda><list></list></block></custom-block></autolambda><list><l>column</l></list></block><list><block var="n"/></list></block></block></script></block></script><script><block s="doIfElse"><block var="ascending"/><script><block s="doSetVar"><l>result</l><block s="evaluate"><block s="reifyReporter"><autolambda><custom-block s="sort %l with predicate %predRing"><block var="result"/><block s="reifyPredicate"><autolambda><block s="reportLessThan"><l></l><l></l></block></autolambda><list></list></block></custom-block></autolambda><list><l>column</l></list></block><list><block var="n"/></list></block></block></script><script><block s="doSetVar"><l>result</l><block s="evaluate"><block s="reifyReporter"><autolambda><custom-block s="sort %l with predicate %predRing"><block var="result"/><block s="reifyPredicate"><autolambda><block s="reportGreaterThan"><l></l><l></l></block></autolambda><list></list></block></custom-block></autolambda><list><l>column</l></list></block><list><block var="n"/></list></block></block></script></block></script></block><block s="doIf"><block s="reportNot"><block var="withHeadline"/></block><script><block s="doIfElse"><block s="reportIsA"><block s="reportListItem"><l>1</l><block var="result"/></block><l><option>list</option></l></block><script><custom-block s="add %s %l to %s"><l>column-headers</l><block var="headline"/><block var="result"/></custom-block></script><script><block s="doInsertInList"><block var="headline"/><l>1</l><block var="result"/></block></script></block></script></block><block s="doReport"><block var="result"/></block></script></block></script></block-definition><block-definition s="%'choice' of column %'kName' of %'table' $nl grouped by column %'name' considering headline? %'withHeadline'" type="reporter" category="3. Data tools"><comment x="0" y="0" w="201.66666666666669" collapsed="false">Determines a group of properties of a table.</comment><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true">mean<options>min
max
number
sum
mean</options></input><input type="%s">numberOrName</input><input type="%s">SciSnap!Data</input><input type="%s">numberOrName</input><input type="%b">true</input></inputs><script><block s="doDeclareVariables"><list><l>copy</l><l>source</l><l>groupcolumn</l><l>valuecolumn</l></list></block><block s="doWarp"><script><block s="doIfElse"><block s="reportEquals"><block var="table"/><l>SciSnap!Data</l></block><script><block s="doSetVar"><l>source</l><block var="SciSnap!Data"/></block></script><script><block s="doSetVar"><l>source</l><block var="table"/></block></script></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a %txt"><block var="source"/><l>table</l></custom-block></block><script><block s="doReport"><l>ERROR: only tables supported!</l></block></script></block><block s="doSetVar"><l>groupcolumn</l><custom-block s="%s %s of %s $arrowRightOutline number"><l>column</l><block var="name"/><block var="source"/></custom-block></block><block s="doIf"><block s="reportNot"><block s="reportIsA"><block var="groupcolumn"/><l><option>number</option></l></block></block><script><block s="doReport"><l>ERROR: unknown column name!</l></block></script></block><block s="doIf"><block s="reportOr"><block s="reportLessThan"><block var="groupcolumn"/><l>1</l></block><block s="reportGreaterThan"><block var="groupcolumn"/><block s="reportListAttribute"><l><option>length</option></l><block s="reportListItem"><l>1</l><block var="source"/></block></block></block></block><script><block s="doReport"><l>ERROR: column index out of range!</l></block></script></block><block s="doSetVar"><l>valuecolumn</l><custom-block s="%s %s of %s $arrowRightOutline number"><l>column</l><block var="kName"/><block var="source"/></custom-block></block><block s="doIf"><block s="reportNot"><block s="reportIsA"><block var="valuecolumn"/><l><option>number</option></l></block></block><script><block s="doReport"><l>ERROR: unknown column name!</l></block></script></block><block s="doIf"><block s="reportOr"><block s="reportLessThan"><block var="valuecolumn"/><l>1</l></block><block s="reportGreaterThan"><block var="valuecolumn"/><block s="reportListAttribute"><l><option>length</option></l><block s="reportListItem"><l>1</l><block var="source"/></block></block></block></block><script><block s="doReport"><l>ERROR: column index out of range!</l></block></script></block><block s="doSetVar"><l>choice</l><block s="reportListItem"><l>1</l><block s="reportTextSplit"><block var="choice"/><l> </l></block></block></block><block s="doSetVar"><l>copy</l><block s="evaluate"><block s="reifyReporter"><autolambda><custom-block s="%s sorted by column %s %br ascending %b considering headline? %b"><block var="source"/><block var="column"/><l><bool>true</bool></l><block var="withHeadline"/></custom-block></autolambda><list><l>column</l></list></block><list><block var="groupcolumn"/></list></block></block><block s="doIf"><block s="reportNot"><block var="withHeadline"/></block><script><block s="doDeleteFromList"><l>1</l><block var="copy"/></block></script></block><block s="doIf"><block s="reportEquals"><block s="reportListAttribute"><l><option>length</option></l><block var="copy"/></block><l>0</l></block><script><block s="doReport"><block s="reportNewList"><list></list></block></block></script></block><block s="doReport"><block s="reportApplyExtension"><l>SciS_groupeddata(aTable,compaircolumn,operation,groupcolumn)</l><list><block var="copy"/><block var="valuecolumn"/><block var="choice"/><block var="groupcolumn"/></list></block></block></script></block></script></block-definition><block-definition s="%'choice' of column %'xName' and %'yName' $nl of %'table' considering headline? %'withHeadline'" type="reporter" category="3. Data tools"><comment x="0" y="0" w="199.4230769230769" collapsed="false">Calculates the ranges, the covariance or the correlation between two columns of a table.
</comment><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true">ranges<options>ranges
covariance
correlation</options></input><input type="%s">numberOrName</input><input type="%s">numberOrName</input><input type="%s">SciSnap!Data</input><input type="%b">true</input></inputs><script><block s="doDeclareVariables"><list><l>source</l><l>copy</l><l>n</l><l>m</l></list></block><block s="doWarp"><script><block s="doIfElse"><block s="reportEquals"><block var="table"/><l>SciSnap!Data</l></block><script><block s="doSetVar"><l>source</l><block var="SciSnap!Data"/></block></script><script><block s="doSetVar"><l>source</l><block var="table"/></block></script></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a %txt"><block var="source"/><l>table</l></custom-block></block><script><block s="doReport"><l>ERROR: only tables supported!</l></block></script></block><block s="doSetVar"><l>n</l><custom-block s="%s %s of %s $arrowRightOutline number"><l>column</l><block var="xName"/><block var="source"/></custom-block></block><block s="doIf"><block s="reportNot"><block s="reportIsA"><block var="n"/><l><option>number</option></l></block></block><script><block s="doReport"><l>ERROR: unknown column name!</l></block></script></block><block s="doIf"><block s="reportOr"><block s="reportLessThan"><block var="n"/><l>1</l></block><block s="reportGreaterThan"><block var="n"/><block s="reportListAttribute"><l><option>length</option></l><block s="reportListItem"><l>1</l><block var="source"/></block></block></block></block><script><block s="doReport"><l>ERROR: column index out of range!</l></block></script></block><block s="doSetVar"><l>m</l><custom-block s="%s %s of %s $arrowRightOutline number"><l>column</l><block var="yName"/><block var="source"/></custom-block></block><block s="doIf"><block s="reportNot"><block s="reportIsA"><block var="m"/><l><option>number</option></l></block></block><script><block s="doReport"><l>ERROR: unknown column name!</l></block></script></block><block s="doIf"><block s="reportOr"><block s="reportLessThan"><block var="m"/><l>1</l></block><block s="reportGreaterThan"><block var="m"/><block s="reportListAttribute"><l><option>length</option></l><block s="reportListItem"><l>1</l><block var="source"/></block></block></block></block><script><block s="doReport"><l>ERROR: column index out of range!</l></block></script></block><block s="doSetVar"><l>copy</l><custom-block s="copy of %l"><block var="source"/></custom-block></block><block s="doSetVar"><l>choice</l><block s="reportListItem"><l>1</l><block s="reportTextSplit"><block var="choice"/><l> </l></block></block></block><block s="doIf"><block s="reportNot"><block var="withHeadline"/></block><script><block s="doDeleteFromList"><l>1</l><block var="copy"/></block></script></block><block s="doIf"><block s="reportLessThan"><block s="reportListAttribute"><l><option>length</option></l><block var="copy"/></block><l>1</l></block><script><block s="doReport"><l>ERROR: bad data!</l></block></script></block><block s="doReport"><block s="reportApplyExtension"><l>SciS_propertiesoftable(selection,table,x,y)</l><list><block s="reportListItem"><l>1</l><block s="reportTextSplit"><block var="choice"/><l> </l></block></block><block var="copy"/><block var="n"/><block var="m"/></list></block></block></script></block></script></block-definition><block-definition s="regression line parameters of %'data'" type="reporter" category="3. Data tools"><comment x="0" y="0" w="220.66666666666674" collapsed="false">Calculates the parameters of a regression line.</comment><header></header><code></code><translations></translations><inputs><input type="%s">SciSnap!Data</input></inputs><script><block s="doDeclareVariables"><list><l>meanX</l><l>meanY</l><l>denominator</l><l>numerator</l><l>m</l><l>b</l><l>source</l><l>sumX</l><l>sumY</l><l>dummy</l></list></block><block s="doWarp"><script><block s="doIfElse"><block s="reportEquals"><block var="data"/><l>SciSnap!Data</l></block><script><block s="doSetVar"><l>source</l><block var="SciSnap!Data"/></block></script><script><block s="doSetVar"><l>source</l><block var="data"/></block></script></block><block s="doIfElse"><block s="reportNot"><custom-block s="is %s a %txt"><block var="source"/><l>matrix</l></custom-block></block><script><block s="doReport"><l>ERROR: matrix required!</l></block></script><script><block s="doIf"><block s="reportNot"><block s="reportAnd"><block s="reportGreaterThan"><block s="reportListAttribute"><l><option>length</option></l><block var="source"/></block><l>0</l></block><block s="reportEquals"><block s="reportListAttribute"><l><option>length</option></l><block s="reportListItem"><l>1</l><block var="source"/></block></block><l>2</l></block></block></block><script><block s="doReport"><l>ERROR: wrong data format!</l></block></script></block></script></block><block s="doSetVar"><l>sumX</l><l>0</l></block><block s="doSetVar"><l>sumY</l><l>0</l></block><block s="doSetVar"><l>numerator</l><l>0</l></block><block s="doSetVar"><l>denominator</l><l>0</l></block><block s="doSetVar"><l>dummy</l><block s="reportMap"><block s="reifyReporter"><script><block s="doChangeVar"><l>sumX</l><block s="reportListItem"><l>1</l><l/></block></block><block s="doChangeVar"><l>sumY</l><block s="reportListItem"><l>2</l><l/></block></block><block s="doReport"><l></l></block></script><list></list></block><block var="source"/></block></block><block s="doSetVar"><l>meanX</l><block s="reportQuotient"><block var="sumX"/><block s="reportListAttribute"><l><option>length</option></l><block var="source"/></block></block></block><block s="doSetVar"><l>meanY</l><block s="reportQuotient"><block var="sumY"/><block s="reportListAttribute"><l><option>length</option></l><block var="source"/></block></block></block><block s="doSetVar"><l>dummy</l><block s="reportMap"><block s="reifyReporter"><script><block s="doChangeVar"><l>numerator</l><block s="reportVariadicProduct"><list><block s="reportDifference"><block s="reportListItem"><l>1</l><l/></block><block var="meanX"/></block><block s="reportDifference"><block s="reportListItem"><l>2</l><l/></block><block var="meanY"/></block></list></block></block><block s="doChangeVar"><l>denominator</l><block s="reportVariadicProduct"><list><block s="reportDifference"><block s="reportListItem"><l>1</l><l/></block><block var="meanX"/></block><block s="reportDifference"><block s="reportListItem"><l>1</l><l/></block><block var="meanX"/></block></list></block></block><block s="doReport"><l></l></block></script><list></list></block><block var="source"/></block></block><block s="doSetVar"><l>m</l><block s="reportQuotient"><block var="numerator"/><block var="denominator"/></block></block><block s="doSetVar"><l>b</l><block s="reportDifference"><block var="meanY"/><block s="reportVariadicProduct"><list><block var="m"/><block var="meanX"/></list></block></block></block><block s="doReport"><block s="reportNewList"><list><block var="m"/><block var="b"/></list></block></block></script></block></script></block-definition><block-definition s="%'k' next neighbors of %'point' $nl in %'data'" type="reporter" category="3. Data tools"><comment x="0" y="0" w="229.00000000000003" collapsed="false">Determines the next k neighbours of a point in data. The class of the point has to be in column 3.</comment><header></header><code></code><translations></translations><inputs><input type="%n">5</input><input type="%l"></input><input type="%s">SciSnap!Data</input></inputs><script><block s="doDeclareVariables"><list><l>neighbors</l><l>points</l><l>result</l><l>dummy</l><l>x1</l><l>y1</l><l>x2</l><l>y2</l><l>class</l></list></block><block s="doWarp"><script><block s="doIfElse"><block s="reportEquals"><block var="data"/><l>SciSnap!Data</l></block><script><block s="doSetVar"><l>points</l><block var="SciSnap!Data"/></block></script><script><block s="doSetVar"><l>points</l><block var="data"/></block></script></block><block s="doIfElse"><block s="reportNot"><custom-block s="is %s a %txt"><block var="points"/><l>table</l></custom-block></block><script><block s="doReport"><l>ERROR: table requested!</l></block></script><script><block s="doIfElse"><block s="reportNot"><custom-block s="is %s a %txt"><block var="point"/><l>vector</l></custom-block></block><script><block s="doReport"><l>ERROR: vector requested!</l></block></script><script><block s="doIfElse"><block s="reportLessThan"><block var="k"/><l>2</l></block><script><block s="doReport"><l>ERROR: number of neighbors too small!</l></block></script><script><block s="doSetVar"><l>neighbors</l><block s="reportNewList"><list></list></block></block><block s="doSetVar"><l>x1</l><block s="reportListItem"><l>1</l><block var="point"/></block></block><block s="doSetVar"><l>y1</l><block s="reportListItem"><l>2</l><block var="point"/></block></block><block s="doSetVar"><l>dummy</l><block s="reportMap"><block s="reifyReporter"><script><block s="doSetVar"><l>x2</l><block s="reportListItem"><l>1</l><block var="point2"/></block></block><block s="doSetVar"><l>y2</l><block s="reportListItem"><l>2</l><block var="point2"/></block></block><block s="doSetVar"><l>class</l><block s="reportListItem"><l><option>last</option></l><block var="point2"/></block></block><block s="doAddToList"><block s="reportNewList"><list><block var="x2"/><block var="y2"/><block s="reportMonadic"><l><option>sqrt</option></l><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><block s="reportDifference"><block var="x1"/><block var="x2"/></block><block s="reportDifference"><block var="x1"/><block var="x2"/></block></list></block><block s="reportVariadicProduct"><list><block s="reportDifference"><block var="y1"/><block var="y2"/></block><block s="reportDifference"><block var="y1"/><block var="y2"/></block></list></block></list></block></block><block var="class"/></list></block><block var="neighbors"/></block><block s="doReport"><l></l></block></script><list><l>point2</l></list></block><block var="points"/></block></block><block s="doSetVar"><l>neighbors</l><custom-block s="%s sorted by column %s %br ascending %b considering headline? %b"><block var="neighbors"/><l>3</l><l><bool>true</bool></l><l><bool>true</bool></l></custom-block></block><block s="doReport"><custom-block s="subsection of %s in %s from %br %s %s to %s %s"><l>table-data</l><block var="neighbors"/><l>1</l><l>1</l><l>4</l><block var="k"/></custom-block></block></script></block></script></block></script></block></script></block></script></block-definition><block-definition s="convolution kernel %'kernel' applied $nl to %'typeOfData' %'data' width %'width' height %'height'" type="reporter" category="3. Data tools"><comment x="0" y="0" w="107.33333333333348" collapsed="false">Applies a convolution to a table with FITS, RGB, or table values.</comment><header></header><code></code><translations></translations><inputs><input type="%l"></input><input type="%s" readonly="true">table<options>image
table</options></input><input type="%s">SciSnap!Data</input><input type="%n">100</input><input type="%n">100</input></inputs><script><block s="doDeclareVariables"><list><l>w</l><l>h</l><l>t</l><l>m</l><l>source</l></list></block><block s="doWarp"><script><block s="doIfElse"><block s="reportEquals"><block var="data"/><l>SciSnap!Data</l></block><script><block s="doSetVar"><l>source</l><block var="SciSnap!Data"/></block></script><script><block s="doIfElse"><custom-block s="is %s a %txt"><block var="data"/><l>matrix</l></custom-block><script><block s="doSetVar"><l>source</l><block var="data"/></block></script><script><block s="doReport"><l>ERROR: wrong data type!</l></block></script></block></script></block><block s="doIfElse"><block s="reportNot"><block s="reportAnd"><block s="reportIsA"><block var="source"/><l><option>list</option></l></block><custom-block s="is %s a %txt"><block var="kernel"/><l>matrix</l></custom-block></block></block><script><block s="doReport"><l>ERROR: wrong data format!</l></block></script><script><block s="doSetVar"><l>h</l><block s="reportListAttribute"><l><option>length</option></l><block var="kernel"/></block></block><block s="doSetVar"><l>w</l><block s="reportListAttribute"><l><option>length</option></l><block s="reportListItem"><l>1</l><block var="kernel"/></block></block></block><block s="doIfElse"><block s="reportOr"><block s="reportNot"><block s="reportEquals"><block var="w"/><block var="h"/></block></block><block s="reportOr"><block s="reportEquals"><block s="reportVariadicProduct"><list><l>2</l><block s="reportRound"><block s="reportQuotient"><block var="w"/><l>2</l></block></block></list></block><block var="w"/></block><block s="reportEquals"><block s="reportVariadicProduct"><list><l>2</l><block s="reportRound"><block s="reportQuotient"><block var="h"/><l>2</l></block></block></list></block><block var="h"/></block></block></block><script><block s="doReport"><l>ERROR: wrong kernel!</l></block></script><script><block s="doSetVar"><l>typeOfData</l><block s="reportListItem"><l>1</l><block s="reportTextSplit"><block var="typeOfData"/><l> </l></block></block></block><block s="doSetVar"><l>m</l><block s="reportRound"><block s="reportQuotient"><block var="w"/><l>2</l></block></block></block><block s="doIfElse"><block s="reportEquals"><block var="typeOfData"/><l>image</l></block><script><block s="doIfElse"><block s="reportIsA"><block s="reportListItem"><l>1</l><block var="source"/></block><l><option>number</option></l></block><script><block s="doSetVar"><l>t</l><l>FITS</l></block></script><script><block s="doIfElse"><block s="reportIsA"><block s="reportListItem"><l>1</l><block var="source"/></block><l><option>list</option></l></block><script><block s="doSetVar"><l>t</l><l>RGB</l></block></script><script><block s="doReport"><l>ERROR wrong data format!</l></block></script></block></script></block></script><script><block s="doSetVar"><l>t</l><l>table</l></block><block s="doSetVar"><l>width</l><block s="reportListAttribute"><l><option>length</option></l><block s="reportListItem"><l>1</l><block var="source"/></block></block></block><block s="doSetVar"><l>height</l><block s="reportListAttribute"><l><option>length</option></l><block var="source"/></block></block></script></block><block s="doReport"><block s="reportApplyExtension"><l>SciS_convolution(kernel,data,width,height,typeOfData,mIndex,kWidth)</l><list><block var="kernel"/><block var="source"/><block var="width"/><block var="height"/><block var="t"/><block var="m"/><block var="w"/></list></block></block></script></block></script></block></script></block></script></block-definition><block-definition s="%'k' -means clustering for %'data' $nl with Euclidean metrics" type="reporter" category="3. Data tools"><comment x="0" y="0" w="167.33333333333348" collapsed="false">Custering of n-dimensional data with k-means-method. Cluster numbers are attached to the data.</comment><header></header><code></code><translations></translations><inputs><input type="%n">3</input><input type="%s">SciSnap!Data</input></inputs><script><block s="doDeclareVariables"><list><l>source</l></list></block><block s="doWarp"><script><block s="doIfElse"><block s="reportEquals"><block var="data"/><l>SciSnap!Data</l></block><script><block s="doSetVar"><l>source</l><custom-block s="copy of %l"><block var="SciSnap!Data"/></custom-block></block></script><script><block s="doSetVar"><l>source</l><custom-block s="copy of %l"><block var="data"/></custom-block></block></script></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a %txt"><block var="source"/><l>matrix</l></custom-block></block><script><block s="doReport"><l>ERROR: only defined for matrices!</l></block></script></block><block s="doIf"><block s="reportLessThanOrEquals"><block s="reportListAttribute"><l><option>length</option></l><block var="source"/></block><block var="k"/></block><script><block s="doReport"><l>ERROR: too few data!</l></block></script></block><block s="doReport"><block s="reportApplyExtension"><l>SciS_k-means-clustering(k,data)</l><list><block var="k"/><block var="source"/></list></block></block></script></block></script></block-definition><block-definition s="%'k' -means clustering for %'data' with metric %'metric'" type="reporter" category="3. Data tools"><comment x="0" y="0" w="185.33333333333348" collapsed="false">Custering of n-dimensional data with k-means-method. A metric has to be delivered as a ringified term. Cluster numbers are attached to the data.</comment><header></header><code></code><translations></translations><inputs><input type="%n">3</input><input type="%s">SciSnap!Data</input><input type="%repRing">ringified operator</input></inputs><script><block s="doDeclareVariables"><list><l>source</l><l>result</l><l>minmax</l><l>dimension</l><l>centers</l><l>center</l><l>anyChanges</l><l>minDistance</l><l>distance</l><l>nearestCenter</l><l>dummy</l><l>dummy2</l><l>n</l></list></block><block s="doWarp"><script><block s="doIfElse"><block s="reportEquals"><block var="data"/><l>SciSnap!Data</l></block><script><block s="doSetVar"><l>source</l><block var="SciSnap!Data"/></block></script><script><block s="doSetVar"><l>source</l><block var="data"/></block></script></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a %txt"><block var="source"/><l>matrix</l></custom-block></block><script><block s="doReport"><l>ERROR: only defined for matrices!</l></block></script></block><block s="doIf"><block s="reportLessThanOrEquals"><block s="reportListAttribute"><l><option>length</option></l><block var="source"/></block><block var="k"/></block><script><block s="doReport"><l>ERROR: too few data!</l></block></script></block><block s="doIf"><block s="reportNot"><block s="reportIsA"><block var="metric"/><l><option>reporter</option></l></block></block><script><block s="doReport"><l>ERROR: ringified operator for metric required!</l></block></script></block><block s="doSetVar"><l>result</l><block s="reportMap"><block s="reifyReporter"><script><block s="doReport"><block s="reportConcatenatedLists"><list><l/><block s="reportNewList"><list><l>0</l></list></block></list></block></block></script><list></list></block><block var="source"/><comment w="161.66666666666669" collapsed="false">add cluster number 0 to data</comment></block></block><block s="doSetVar"><l>dimension</l><block s="reportListAttribute"><l><option>length</option></l><block s="reportListItem"><l>1</l><block var="source"/></block></block></block><block s="doSetVar"><l>minmax</l><block s="reportNewList"><list></list></block></block><block s="doFor"><l>i</l><l>1</l><block var="dimension"/><script><block s="doAddToList"><block s="reportNewList"><list><custom-block s="%s of vector %l"><l>min</l><custom-block s="%s %s of %s with first item? %b"><l>column</l><block var="i"/><block var="source"/><l><bool>true</bool></l></custom-block></custom-block><custom-block s="%s of vector %l"><l>max</l><custom-block s="%s %s of %s with first item? %b"><l>column</l><block var="i"/><block var="source"/><l><bool>true</bool></l></custom-block></custom-block></list></block><block var="minmax"/></block></script><comment w="175" collapsed="false">calculate min and max for all columns</comment></block><block s="doSetVar"><l>centers</l><block s="reportNewList"><list></list></block></block><block s="doFor"><l>i</l><l>1</l><block var="k"/><script><block s="doSetVar"><l>center</l><block s="reportNewList"><list></list></block></block><block s="doFor"><l>m</l><l>1</l><block var="dimension"/><script><block s="doAddToList"><block s="reportRandom"><block s="reportListItem"><l>1</l><block s="reportListItem"><block var="m"/><block var="minmax"/></block></block><block s="reportListItem"><l>2</l><block s="reportListItem"><block var="m"/><block var="minmax"/></block></block></block><block var="center"/></block></script><comment w="133.33333333333334" collapsed="false">choose k random centers</comment></block><block s="doAddToList"><block var="i"/><block var="center"/></block><block s="doAddToList"><block var="center"/><block var="centers"/></block></script><comment w="189.55696614583346" collapsed="false">calculate min and max for all columns</comment></block><block s="doSetVar"><l>anyChanges</l><block s="reportBoolean"><l><bool>true</bool></l></block></block><block s="doSetVar"><l>n</l><l>0</l></block><block s="doUntil"><block s="reportNot"><block var="anyChanges"/></block><script><block s="doChangeVar"><l>n</l><l>1</l></block><block s="doIf"><block s="reportGreaterThan"><block var="n"/><l>2000</l></block><script><block s="doReport"><block var="result"/></block></script></block><block s="doSetVar"><l>anyChanges</l><block s="reportBoolean"><l><bool>false</bool></l></block></block><block s="doSetVar"><l>dummy</l><block s="reportAtomicMap"><block s="reifyReporter"><script><block s="doSetVar"><l>minDistance</l><l>100000000</l></block><block s="doSetVar"><l>nearestCenter</l><l>0</l></block><block s="doSetVar"><l>dummy2</l><block s="reportMap"><block s="reifyReporter"><script><block s="doSetVar"><l>distance</l><block s="evaluate"><block var="metric"/><list><block var="point"/><block var="center"/></list></block></block><block s="doIf"><block s="reportLessThan"><block var="distance"/><block var="minDistance"/></block><script><block s="doSetVar"><l>nearestCenter</l><block s="reportListItem"><block s="reportVariadicSum"><list><block var="dimension"/><l>1</l></list></block><block var="center"/></block></block><block s="doSetVar"><l>minDistance</l><block var="distance"/></block></script></block><block s="doReport"><l></l></block></script><list><l>center</l></list></block><block var="centers"/></block></block><block s="doIf"><block s="reportNotEquals"><block var="nearestCenter"/><block s="reportListItem"><block s="reportVariadicSum"><list><block var="dimension"/><l>1</l></list></block><block var="point"/></block></block><script><block s="doReplaceInList"><block s="reportVariadicSum"><list><block var="dimension"/><l>1</l></list></block><block var="point"/><block var="nearestCenter"/></block><block s="doSetVar"><l>anyChanges</l><block s="reportBoolean"><l><bool>true</bool></l></block></block></script></block><block s="doReport"><l></l></block></script><list><l>point</l></list></block><block var="result"/></block><comment w="90" collapsed="false">build clusters</comment></block><block s="doIf"><block var="anyChanges"/><script><block s="doFor"><l>i</l><l>1</l><block var="k"/><script><block s="doSetVar"><l>dummy</l><custom-block s="select rows of %s where %br column %s is %s %s"><block var="result"/><block s="reportVariadicSum"><list><block var="dimension"/><l>1</l></list></block><l>equal-to</l><block var="i"/></custom-block></block><block s="doIf"><block s="reportGreaterThan"><block s="reportListAttribute"><l><option>length</option></l><block var="dummy"/></block><l>0</l></block><script><block s="doFor"><l>m</l><l>1</l><block var="dimension"/><script><block s="doReplaceInList"><block var="m"/><block s="reportListItem"><block var="i"/><block var="centers"/></block><custom-block s="%s of vector %l"><l>mean</l><custom-block s="%s %s of %s with first item? %b"><l>column</l><block var="m"/><block var="dummy"/><l><bool>true</bool></l></custom-block></custom-block></block></script></block></script></block></script><comment w="90" collapsed="false">adjust centers</comment></block></script></block></script></block><block s="doReport"><block var="result"/></block></script></block></script></block-definition><block-definition s="Levenshtein-distance of %'s1' and %'s2'" type="reporter" category="3. Data tools"><comment x="0" y="0" w="90" collapsed="false">Metric for Strtings.</comment><header></header><code></code><translations></translations><inputs><input type="%txt">Saturday</input><input type="%txt">Sunday</input></inputs><script><block s="doReport"><block s="reportApplyExtension"><l>SciS_LevenshteinDistance(s1,s2)</l><list><block var="s1"/><block var="s2"/></list></block></block></script></block-definition><block-definition s="DBSCAN clustering for %'data' radius %'r' minMembers %'minMembers'" type="reporter" category="3. Data tools"><comment x="0" y="0" w="177.66666666666674" collapsed="false">labels of data: -1 not visited, 0 visited, -2 noise, >0 clusternr</comment><header></header><code></code><translations></translations><inputs><input type="%s">SciSnap!Data</input><input type="%n">50</input><input type="%n">5</input></inputs><script><block s="doDeclareVariables"><list><l>source</l></list></block><block s="doWarp"><script><block s="doIfElse"><block s="reportEquals"><block var="data"/><l>SciSnap!Data</l></block><script><block s="doSetVar"><l>source</l><custom-block s="copy of %l"><block var="SciSnap!Data"/></custom-block></block></script><script><block s="doSetVar"><l>source</l><custom-block s="copy of %l"><block var="data"/></custom-block></block></script></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a %txt"><block var="source"/><l>matrix</l></custom-block></block><script><block s="doReport"><l>ERROR: only defined for matrices!</l></block></script></block><block s="doIf"><block s="reportLessThanOrEquals"><block s="reportListAttribute"><l><option>length</option></l><block var="source"/></block><l>2</l></block><script><block s="doReport"><l>ERROR: too few data!</l></block></script></block><block s="doReport"><block s="reportApplyExtension"><l>SciS_DBSCAN(data,r,minMembers)</l><list><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportConcatenatedLists"><list><l/><block s="reportNewList"><list><l>-1</l></list></block></list></block></autolambda><list></list></block><block var="source"/></block><block var="r"/><block var="minMembers"/></list></block></block></script></block></script></block-definition><block-definition s="decision tree ID3 for %'data' $nl with labeled data in last column" type="reporter" category="3. Data tools"><comment x="0" y="0" w="306" collapsed="false">reports a ID3 decision tree constructed on the base of labeled data</comment><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doDeclareVariables"><list><l>countedValues</l><l>information gains</l><l>newData</l><l>links</l><l>compareColumn</l><l>values</l><l>nTotal</l><l>result</l></list></block><block s="doWarp"><script><block s="doIf"><block s="reportNot"><custom-block s="is %s a %txt"><block var="data"/><l>table</l></custom-block><comment w="90" collapsed="false">wrong data</comment></block><script><block s="doReport"><l>ERROR: table required!</l></block></script></block><block s="doIf"><block s="reportEquals"><block s="reportListAttribute"><l><option>length</option></l><block var="data"/></block><l>0</l><comment w="90" collapsed="false">empty dataset</comment></block><script><block s="doReport"><l>empty dataset</l></block></script></block><block s="doSetVar"><l>countedValues</l><custom-block s="count values in %l"><custom-block s="%s %s of %s with first item? %b"><l>column</l><l>last</l><block var="data"/><l><bool>true</bool></l></custom-block></custom-block></block><block s="doIf"><block s="reportEquals"><block s="reportListAttribute"><l><option>length</option></l><block var="countedValues"/></block><l>1</l></block><script><block s="doReport"><block s="reportNewList"><list><l>leaf</l><block s="reportListItem"><l>1</l><block s="reportListItem"><l>1</l><block var="countedValues"/></block></block></list></block></block></script><comment w="122.00000000000001" collapsed="false">only one result --> ready</comment></block><block s="doIf"><block s="reportEquals"><block s="reportListAttribute"><l><option>length</option></l><block s="reportListItem"><l>1</l><block var="data"/></block></block><l>1</l></block><script><block s="doReport"><block s="reportNewList"><list><l>leaf (unambiguous)</l><block s="reportListItem"><l>1</l><block s="reportListItem"><block s="reportRandom"><l>1</l><block s="reportListAttribute"><l><option>length</option></l><block var="countedValues"/></block></block><block var="countedValues"/></block></block></list></block></block></script><comment w="122.00000000000001" collapsed="false">only one attribut left --> ready</comment></block><block s="doSetVar"><l>information gains</l><block s="reportNewList"><list></list></block></block><block s="doFor"><l>i</l><l>1</l><block s="reportDifference"><block s="reportListAttribute"><l><option>length</option></l><block s="reportListItem"><l>1</l><block var="data"/></block></block><l>1</l></block><script><block s="doSetVar"><l>nTotal</l><block s="reportListAttribute"><l><option>length</option></l><block var="data"/></block></block><block s="doSetVar"><l>result</l><custom-block s="entropy of %l"><custom-block s="%s %s of %s with first item? %b"><l>column</l><l>last</l><block var="data"/><l><bool>true</bool></l></custom-block></custom-block></block><block s="doSetVar"><l>values</l><custom-block s="count values in %l"><custom-block s="%s %s of %s with first item? %b"><l>column</l><block var="i"/><block var="data"/><l><bool>true</bool></l></custom-block></custom-block></block><block s="doForEach"><l>item</l><block var="values"/><script><block s="doSetVar"><l>result</l><block s="reportDifference"><block var="result"/><block s="reportVariadicProduct"><list><block s="reportQuotient"><block s="reportListItem"><l>2</l><block var="item"/></block><block var="nTotal"/></block><custom-block s="entropy of %l"><custom-block s="%s %s of %s with first item? %b"><l>column</l><l>last</l><custom-block s="select rows of %s where %br column %s is %s %s"><block var="data"/><block var="i"/><l>equal-to</l><block s="reportListItem"><l>1</l><block var="item"/></block></custom-block><l><bool>true</bool></l></custom-block></custom-block></list></block></block></block></script></block><block s="doAddToList"><block s="reportNewList"><list><block var="i"/><block var="result"/></list></block><block var="information gains"/></block></script><comment w="209" collapsed="false">calculate information gains for all attributes</comment></block><block s="doSetVar"><l>information gains</l><custom-block s="%s sorted by column %s %br ascending %b considering headline? %b"><block var="information gains"/><l>2</l><l><bool>false</bool></l><l><bool>true</bool></l></custom-block></block><block s="doSetVar"><l>compareColumn</l><block s="reportListItem"><l>1</l><block s="reportListItem"><l>1</l><block var="information gains"/></block></block><comment w="165" collapsed="false">take attribute with max information gain as compare criterion</comment></block><block s="doSetVar"><l>countedValues</l><custom-block s="count values in %l"><custom-block s="%s %s of %s with first item? %b"><l>column</l><block var="compareColumn"/><block var="data"/><l><bool>true</bool></l></custom-block></custom-block></block><block s="doSetVar"><l>links</l><block s="reportNewList"><list></list></block></block><block s="doForEach"><l>item</l><block var="countedValues"/><script><block s="doSetVar"><l>newData</l><custom-block s="select rows of %s where %br column %s is %s %s"><block var="data"/><block var="compareColumn"/><l>equal-to</l><block s="reportListItem"><l>1</l><block var="item"/></block></custom-block></block><custom-block s="delete %s %s of %s"><l>column</l><block var="compareColumn"/><block var="newData"/></custom-block><block s="doAddToList"><block s="reportNewList"><list><block s="reportListItem"><l>1</l><block var="item"/></block><custom-block s="decision tree ID3 for %l %br with labeled data in last column"><block var="newData"/></custom-block></list></block><block var="links"/></block></script><comment w="257" collapsed="false">recursive construction of ID3 trees for all other attributes</comment></block><block s="doReport"><block s="reportNewList"><list><l>node</l><block s="reportListItem"><l>1</l><block s="reportListItem"><l>1</l><block var="information gains"/></block></block><block var="links"/></list></block></block></script></block></script></block-definition><block-definition s="SQL-Example 1: simple query" type="command" category="4. SQL tools"><header></header><code></code><translations></translations><inputs></inputs><script><custom-block s="configure SQL"></custom-block><block s="doShowVar"><l>SQLData</l></block><custom-block s="connect to database server"></custom-block><custom-block s="choose database no. %n"><l>2</l></custom-block><custom-block s="import SQL-data from %l to SQLData"><custom-block s="exec SQL-command %txt"><custom-block s="SELECT %s %mult%txt FROM %mult%txt WHERE %b"><l>*</l><list></list><list><l>schueler</l></list><l/></custom-block></custom-block></custom-block></script></block-definition><block-definition s="empty" type="command" category="0. My own blocks"><header></header><code></code><translations></translations><inputs></inputs></block-definition><block-definition s="copy current costume of %'sprite' to sprite costumes" type="command" category="looks"><header></header><code></code><translations></translations><inputs><input type="%s">thisSprite<options>thisSprite
theStage
anotherSprite</options></input></inputs><script><block s="doDeclareVariables"><list><l>target</l></list></block><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>theStage</l></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>thisSprite</l></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIfElse"><block s="reportIsA"><block s="reportAskFor"><block var="target"/><block s="reifyReporter"><autolambda><block s="reportGet"><l><option>costume</option></l></block></autolambda><list></list></block><list></list></block><l><option>costume</option></l></block><script><block s="doTellTo"><block var="target"/><block s="reifyScript"><script><block s="doAddToList"><block s="reportGet"><l><option>costume</option></l></block><block s="reportGet"><l><option>costumes</option></l></block></block></script><list></list></block><list></list></block></script><script><custom-block s="report SciSnap! error %txt"><l>ERROR: no costume there!</l></custom-block></script></block></script></block-definition><block-definition s="vertexnumber of graph on %'sprite' at mouse position" type="reporter" category="7. GraphPad for graph operations"><comment x="0" y="0" w="188" collapsed="false">Returns the vertexnumber of a vertex near mouse position, if there is one.</comment><header></header><code></code><translations></translations><inputs><input type="%txt">thisSprite<options>thisSprite
theStage
anotherSprite</options></input></inputs><script><block s="doDeclareVariables"><list><l>target</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>theStage</l></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>thisSprite</l></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a GraphPad?"><block var="target"/></custom-block></block><script><block s="doReport"><l>ERROR: target isn't configured as GraphPad!</l></block></script></block><block s="doReport"><block s="reportApplyExtension"><l>SciS_vertexnumberAtGraph(vlist,cAttributes,vAttributes,x,y)</l><list><block s="reportAttributeOf"><l>vertexList</l><block var="target"/></block><custom-block s="GraphPadProperty %txt of %txt"><l>costumeProperties</l><block var="target"/></custom-block><custom-block s="GraphPadProperty %txt of %txt"><l>vertexProperties</l><block var="target"/></custom-block><block s="reportDifference"><block s="reportMouseX"></block><block s="reportAttributeOf"><l><option>x position</option></l><block var="target"/></block></block><block s="reportDifference"><block s="reportMouseY"></block><block s="reportAttributeOf"><l><option>y position</option></l><block var="target"/></block></block></list></block></block></script></block></script></block-definition><block-definition s="classify %'data' with ID3-tree %'tree'" type="reporter" category="3. Data tools"><comment x="0" y="0" w="269" collapsed="false">returns the class of a dataset using an ID3-decision-tree</comment><header></header><code></code><translations></translations><inputs><input type="%l"></input><input type="%l"></input></inputs><script><block s="doDeclareVariables"><list><l>colNumber</l><l>compareData</l><l>ready</l><l>i</l><l>item</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>compareData</l><custom-block s="copy of %l"><block var="data"/></custom-block></block><block s="doIf"><block s="reportEquals"><block s="reportListItem"><l>1</l><block var="tree"/></block><l>leaf</l></block><script><block s="doReport"><block s="reportJoinWords"><list><l>result: </l><block s="reportListItem"><l>2</l><block var="tree"/></block></list></block></block></script></block><block s="doIf"><block s="reportEquals"><block s="reportListItem"><l>1</l><block var="tree"/></block><l>leaf (unambiguous)</l></block><script><block s="doReport"><block s="reportJoinWords"><list><l>result (unambiguous): </l><block s="reportListItem"><l>2</l><block var="tree"/></block></list></block></block></script></block><block s="doIf"><block s="reportEquals"><block s="reportListItem"><l>1</l><block var="tree"/></block><l>node</l></block><script><block s="doSetVar"><l>colNumber</l><block s="reportListItem"><l>2</l><block var="tree"/></block></block><block s="doSetVar"><l>ready</l><block s="reportBoolean"><l><bool>false</bool></l></block></block><block s="doSetVar"><l>i</l><l>1</l></block><block s="doUntil"><block s="reportOr"><block s="reportGreaterThan"><block var="i"/><block s="reportListAttribute"><l><option>length</option></l><block s="reportListItem"><l>3</l><block var="tree"/></block></block></block><block var="ready"/></block><script><block s="doSetVar"><l>item</l><block s="reportListItem"><block var="i"/><block s="reportListItem"><l>3</l><block var="tree"/></block></block></block><block s="doIf"><block s="reportEquals"><block s="reportListItem"><block var="colNumber"/><block var="compareData"/></block><block s="reportListItem"><l>1</l><block var="item"/></block></block><script><block s="doSetVar"><l>ready</l><block s="reportBoolean"><l><bool>true</bool></l></block></block><block s="doDeleteFromList"><block var="colNumber"/><block var="compareData"/></block><block s="doReport"><custom-block s="classify %l with ID3-tree %l"><block var="compareData"/><block s="reportListItem"><l>2</l><block var="item"/></block></custom-block></block></script></block><block s="doChangeVar"><l>i</l><l>1</l></block></script></block></script></block><block s="doReport"><l>ERROR: no sensefull data to compare found!</l></block></script></block></script></block-definition><block-definition s="vector %'items'" type="reporter" category="2. Math tools"><comment x="0" y="0" w="172.5" collapsed="false">Reports a vector, built by the items.</comment><header></header><code></code><translations></translations><inputs><input type="%mult%n"></input></inputs><script><block s="doIfElse"><custom-block s="is %s a %txt"><block var="items"/><l>vector</l></custom-block><script><block s="doReport"><block var="items"/></block></script><script><block s="doReport"><l>ERROR: only numbers are allowed in vectors!</l></block></script></block></script></block-definition><block-definition s="vector dim %'n' with random $nl components range %'min' to %'max'" type="reporter" category="2. Math tools"><comment x="0" y="0" w="291.42857142857144" collapsed="false">Returns a new vector of dimension n with random elements.</comment><header></header><code></code><translations></translations><inputs><input type="%n">3</input><input type="%n">1</input><input type="%n">10</input></inputs><script><block s="doDeclareVariables"><list><l>result</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>result</l><block s="reportNewList"><list></list></block></block><block s="doFor"><l>j</l><l>1</l><block var="n"/><script><block s="doAddToList"><block s="reportRandom"><block var="min"/><block var="max"/></block><block var="result"/></block></script></block><block s="doReport"><block var="result"/></block></script></block></script></block-definition><block-definition s="matrix of vectors %'vectors'" type="reporter" category="2. Math tools"><comment x="0" y="0" w="220.8333333333337" collapsed="false">Returns a matrix formed from the input vectors.</comment><header></header><code></code><translations></translations><inputs><input type="%mult%l"></input></inputs><script><block s="doDeclareVariables"><list><l>result</l><l>length</l></list></block><block s="doWarp"><script><block s="doIf"><block s="reportLessThan"><block s="reportListAttribute"><l><option>length</option></l><block var="vectors"/></block><l>2</l></block><script><block s="doReport"><l>ERROR: more vectors necessary!</l></block></script></block><block s="doSetVar"><l>length</l><block s="reportListAttribute"><l><option>length</option></l><block s="reportListItem"><l>1</l><block var="vectors"/></block></block></block><block s="doSetVar"><l>result</l><block s="reportNewList"><list></list></block></block><block s="doForEach"><l>item</l><block var="vectors"/><script><block s="doIfElse"><block s="reportAnd"><custom-block s="is %s a %txt"><block var="item"/><l>vector</l></custom-block><block s="reportEquals"><block s="reportListAttribute"><l><option>length</option></l><block var="item"/></block><block var="length"/></block></block><script><block s="doAddToList"><block var="item"/><block var="result"/></block></script><script><block s="doReport"><l>ERROR: different types of vectors!</l></block></script></block></script></block><block s="doReport"><block var="result"/></block></script></block></script></block-definition><block-definition s="%'n' x %'m' matrix with random $nl components range %'min' to %'max'" type="reporter" category="2. Math tools"><comment x="0" y="0" w="245.0000000000001" collapsed="false">Returns a new nxm-matrix with random elements.</comment><header></header><code></code><translations></translations><inputs><input type="%n">3</input><input type="%n">2</input><input type="%n">1</input><input type="%n">10</input></inputs><script><block s="doDeclareVariables"><list><l>result</l><l>row</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>result</l><block s="reportNewList"><list></list></block></block><block s="doIf"><custom-block s="any of %mult%boolUE"><list><block s="reportLessThan"><block var="n"/><l>1</l></block><block s="reportLessThan"><block var="m"/><l>1</l></block></list></custom-block><script><block s="doReport"><block var="result"/></block></script></block><block s="doFor"><l>i</l><l>1</l><block var="m"/><script><block s="doSetVar"><l>row</l><block s="reportNewList"><list></list></block></block><block s="doFor"><l>j</l><l>1</l><block var="n"/><script><block s="doAddToList"><block s="reportRandom"><block var="min"/><block var="max"/></block><block var="row"/></block></script></block><block s="doAddToList"><block var="row"/><block var="result"/></block></script></block><block s="doReport"><block var="result"/></block></script></block></script></block-definition><block-definition s="transpose %'data'" type="reporter" category="2. Math tools"><comment x="0" y="0" w="213.7279843444227" collapsed="false">Creates the transpose of a vector or a matrix.</comment><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doWarp"><script><block s="doDeclareVariables"><list><l>result</l></list></block><block s="doIfElse"><block s="reportNot"><block s="reportIsA"><block var="data"/><l><option>list</option></l></block></block><script><block s="doReport"><l>ERROR: data are not transposable!</l></block></script><script><block s="doIfElse"><block s="reportEquals"><block s="reportListAttribute"><l><option>length</option></l><block var="data"/></block><l>0</l></block><script><block s="doReport"><block var="data"/></block></script><script><block s="doIfElse"><custom-block s="is %s a %txt"><block var="data"/><l>vector</l></custom-block><script><block s="doIfElse"><block s="reportIsA"><block s="reportListItem"><l>1</l><block var="data"/></block><l><option>list</option></l></block><script><block s="doReport"><block s="reportAtomicMap"><block s="reifyReporter"><script><block s="doReport"><block s="reportListItem"><l>1</l><block var="value"/></block></block></script><list><l>value</l></list></block><block var="data"/></block></block></script><script><block s="doReport"><block s="reportAtomicMap"><block s="reifyReporter"><script><block s="doReport"><block s="reportNewList"><list><block var="value"/></list></block></block></script><list><l>value</l></list></block><block var="data"/></block></block></script></block></script><script><block s="doIfElse"><custom-block s="is %s a %txt"><block var="data"/><l>matrix</l></custom-block><script><block s="doReport"><block s="reportListAttribute"><l><option>columns</option></l><block var="data"/></block></block></script><script><block s="doReport"><l>ERROR: data are not transposable!</l></block></script></block></script></block></script></block></script></block></script></block></script></block-definition><block-definition s="%'choice' of vector %'data'" type="reporter" category="2. Math tools"><comment x="0" y="0" w="211.4285714285715" collapsed="false">Determines a property of a vector.</comment><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true">min<options>min
max
minpos
maxpos
number
sum
mean
median
variance
standard-deviation
softmax</options></input><input type="%l"></input></inputs><script><block s="doDeclareVariables"><list><l>result</l><l>help</l><l>n</l><l>sum</l></list></block><block s="doWarp"><script><block s="doIf"><block s="reportNot"><custom-block s="is %s a %txt"><block var="data"/><l>vector</l></custom-block></block><script><block s="doReport"><l>ERROR: only vectors supported!</l></block></script></block><block s="doSetVar"><l>data</l><custom-block s="copy of %l"><block var="data"/></custom-block></block><block s="doIf"><custom-block s="is %s a %txt"><block var="data"/><l>transposed-vector</l></custom-block><script><block s="doSetVar"><l>data</l><custom-block s="transpose %l"><block var="data"/></custom-block></block></script></block><block s="doIf"><block s="reportLessThan"><block s="reportListAttribute"><l><option>length</option></l><block var="data"/></block><l>1</l></block><script><block s="doReport"><l></l></block></script></block><block s="doSetVar"><l>choice</l><block s="reportListItem"><l>1</l><block s="reportTextSplit"><block var="choice"/><l> </l></block></block></block><block s="doIf"><block s="reportEquals"><block var="choice"/><l>softmax</l></block><script><block s="doSetVar"><l>n</l><block s="reportListAttribute"><l><option>length</option></l><block var="data"/></block></block><block s="doSetVar"><l>sum</l><l>0</l></block><block s="doFor"><l>i</l><l>1</l><block var="n"/><script><block s="doChangeVar"><l>sum</l><block s="reportMonadic"><l><option>e^</option></l><block s="reportListItem"><block var="i"/><block var="data"/></block></block></block></script></block><block s="doReport"><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportQuotient"><block s="reportMonadic"><l><option>e^</option></l><l></l></block><block var="sum"/></block></autolambda><list></list></block><block var="data"/></block></block></script></block><block s="doIf"><block s="reportEquals"><block var="choice"/><l>median</l></block><script><block s="doSetVar"><l>result</l><custom-block s="sort %l with predicate %predRing"><block var="data"/><block s="reifyPredicate"><autolambda><block s="reportLessThan"><l></l><l></l></block></autolambda><list></list></block></custom-block></block><block s="doIfElse"><block s="reportEquals"><block s="reportModulus"><block s="reportListAttribute"><l><option>length</option></l><block var="result"/></block><l>2</l></block><l>1</l></block><script><block s="doReport"><block s="reportListItem"><block s="reportRound"><block s="reportQuotient"><block s="reportListAttribute"><l><option>length</option></l><block var="result"/></block><l>2</l></block></block><block var="result"/></block></block></script><script><block s="doReport"><block s="reportQuotient"><block s="reportVariadicSum"><list><block s="reportListItem"><block s="reportQuotient"><block s="reportListAttribute"><l><option>length</option></l><block var="result"/></block><l>2</l></block><block var="result"/></block><block s="reportListItem"><block s="reportVariadicSum"><list><block s="reportQuotient"><block s="reportListAttribute"><l><option>length</option></l><block var="result"/></block><l>2</l></block><l>1</l></list></block><block var="result"/></block></list></block><l>2</l></block></block></script></block></script></block><block s="doIf"><block s="reportEquals"><block var="choice"/><l>min</l></block><script><block s="doReport"><block s="reportCombine"><block var="data"/><block s="reifyReporter"><autolambda><block s="reportVariadicMin"><list><l></l><l></l></list></block></autolambda><list></list></block></block></block></script></block><block s="doIf"><block s="reportEquals"><block var="choice"/><l>max</l></block><script><block s="doReport"><block s="reportCombine"><block var="data"/><block s="reifyReporter"><autolambda><block s="reportVariadicMax"><list><l></l><l></l></list></block></autolambda><list></list></block></block></block></script></block><block s="doIf"><block s="reportEquals"><block var="choice"/><l>number</l></block><script><block s="doReport"><block s="reportListAttribute"><l><option>length</option></l><block var="data"/></block></block></script></block><block s="doIf"><block s="reportEquals"><block var="choice"/><l>sum</l></block><script><block s="doReport"><block s="reportCombine"><block var="data"/><block s="reifyReporter"><autolambda><block s="reportVariadicSum"><list><l></l><l></l></list></block></autolambda><list></list></block></block></block></script></block><block s="doIf"><block s="reportEquals"><block var="choice"/><l>mean</l></block><script><block s="doReport"><block s="reportQuotient"><block s="reportCombine"><block var="data"/><block s="reifyReporter"><autolambda><block s="reportVariadicSum"><list><l></l><l></l></list></block></autolambda><list></list></block></block><block s="reportListAttribute"><l><option>length</option></l><block var="data"/></block></block></block></script></block><block s="doIf"><block s="reportEquals"><block var="choice"/><l>minpos</l></block><script><block s="doReport"><block s="reportListIndex"><block s="reportCombine"><block var="data"/><block s="reifyReporter"><autolambda><block s="reportVariadicMin"><list><l></l><l></l></list></block></autolambda><list></list></block></block><block var="data"/></block></block></script></block><block s="doIf"><block s="reportEquals"><block var="choice"/><l>maxpos</l></block><script><block s="doReport"><block s="reportListIndex"><block s="reportCombine"><block var="data"/><block s="reifyReporter"><autolambda><block s="reportVariadicMax"><list><l></l><l></l></list></block></autolambda><list></list></block></block><block var="data"/></block></block></script></block><block s="doIf"><block s="reportOr"><block s="reportEquals"><block var="choice"/><l>variance</l></block><block s="reportEquals"><block var="choice"/><l>standard-deviation</l></block></block><script><block s="doSetVar"><l>result</l><block s="reportApplyExtension"><l>SciS_variance(aList,mean)</l><list><block var="data"/><block s="reportQuotient"><block s="reportCombine"><block var="data"/><block s="reifyReporter"><autolambda><block s="reportVariadicSum"><list><l></l><l></l></list></block></autolambda><list></list></block></block><block s="reportListAttribute"><l><option>length</option></l><block var="data"/></block></block></list></block></block></script></block><block s="doIf"><block s="reportEquals"><block var="choice"/><l>variance</l></block><script><block s="doReport"><block var="result"/></block></script></block><block s="doIf"><block s="reportEquals"><block var="choice"/><l>standard-deviation</l></block><script><block s="doIfElse"><block s="reportNotEquals"><block var="result"/><l>NaN</l></block><script><block s="doReport"><block s="reportMonadic"><l><option>sqrt</option></l><block var="result"/></block></block></script><script><block s="doReport"><l>NaN</l></block></script></block></script></block><block s="doReport"><l>ERROR: unknown option!</l></block></script></block></script></block-definition><block-definition s="linear operation %'a' %'op' %'b'" type="reporter" category="2. Math tools"><comment x="0" y="0" w="261.90476190476187" collapsed="false">Linear operations with scalars, vectors and matrices.</comment><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s" readonly="true">*<options>+
-
*
X</options></input><input type="%s"></input></inputs><script><block s="doDeclareVariables"><list><l>result</l><l>rowsA</l><l>rowsB</l><l>colsA</l><l>colsB</l><l>transposed</l><l>row</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>op</l><block s="reportListItem"><l>1</l><block s="reportTextSplit"><block var="op"/><l> </l></block></block></block><block s="doIf"><block s="reportIsA"><block var="a"/><l><option>number</option></l></block><script><block s="doIf"><block s="reportIsA"><block var="b"/><l><option>number</option></l><comment w="119.45205479452062" collapsed="false">number number operation</comment></block><script><block s="doIf"><block s="reportEquals"><block var="op"/><l>+</l></block><script><block s="doReport"><block s="reportVariadicSum"><list><block var="a"/><block var="b"/></list></block></block></script></block><block s="doIf"><block s="reportEquals"><block var="op"/><l>-</l></block><script><block s="doReport"><block s="reportDifference"><block var="a"/><block var="b"/></block></block></script></block><block s="doIf"><block s="reportEquals"><block var="op"/><l>*</l></block><script><block s="doReport"><block s="reportVariadicProduct"><list><block var="a"/><block var="b"/></list></block></block></script></block><block s="doReport"><l>ERROR: illegal operation between numbers!</l></block></script></block><block s="doIf"><custom-block s="is %s a %txt"><block var="b"/><l>vector</l></custom-block><script><block s="doIfElse"><block s="reportEquals"><block var="op"/><l>*</l></block><script><block s="doIfElse"><block s="reportIsA"><block s="reportListItem"><l>1</l><block var="b"/></block><l><option>list</option></l></block><script><block s="doReport"><custom-block s="transpose %l"><block s="reportVariadicProduct"><list><block var="a"/><custom-block s="transpose %l"><block var="b"/></custom-block></list></block></custom-block></block></script><script><block s="doReport"><block s="reportVariadicProduct"><list><block var="a"/><block var="b"/></list></block></block></script></block></script><script><block s="doReport"><l>ERROR: illegal operation between number and vector!</l></block></script></block></script></block><block s="doIf"><custom-block s="is %s a %txt"><block var="b"/><l>matrix</l></custom-block><script><block s="doIfElse"><block s="reportEquals"><block var="op"/><l>*</l></block><script><block s="doReport"><block s="reportVariadicProduct"><list><block var="a"/><block var="b"/></list></block></block></script><script><block s="doReport"><l>ERROR: illegal operation between number and matrix!</l></block></script></block></script></block><block s="doReport"><l>ERROR: illegal operation with numbers!</l></block></script></block><block s="doIf"><custom-block s="is %s a %txt"><block var="a"/><l>vector</l></custom-block><script><block s="doIf"><block s="reportIsA"><block var="b"/><l><option>number</option></l></block><script><block s="doReport"><custom-block s="linear operation %s %s %s"><block var="b"/><block var="op"/><block var="a"/></custom-block><comment w="125.59523809523816" collapsed="false">vector number operation.</comment></block></script></block><block s="doIf"><custom-block s="is %s a %txt"><block var="b"/><l>vector</l></custom-block><script><block s="doIfElse"><block s="reportEquals"><block s="reportListAttribute"><l><option>length</option></l><block var="a"/></block><block s="reportListAttribute"><l><option>length</option></l><block var="b"/></block></block><script><block s="doIfElse"><block s="reportIsA"><block s="reportListItem"><l>1</l><block var="a"/></block><l><option>list</option></l></block><script><block s="doSetVar"><l>a</l><custom-block s="transpose %l"><block var="a"/></custom-block></block><block s="doSetVar"><l>transposed</l><block s="reportBoolean"><l><bool>true</bool></l></block></block></script><script><block s="doSetVar"><l>transposed</l><block s="reportBoolean"><l><bool>false</bool></l></block></block></script></block><block s="doIf"><block s="reportEquals"><block var="op"/><l>+</l></block><script><block s="doSetVar"><l>result</l><block s="reportVariadicSum"><list><block var="a"/><block var="b"/></list></block></block><block s="doIf"><block var="transposed"/><script><block s="doSetVar"><l>result</l><custom-block s="transpose %l"><block var="result"/></custom-block></block></script></block><block s="doReport"><block var="result"/></block></script></block><block s="doIf"><block s="reportEquals"><block var="op"/><l>-</l></block><script><block s="doSetVar"><l>result</l><block s="reportDifference"><block var="a"/><block var="b"/></block></block><block s="doIf"><block var="transposed"/><script><block s="doSetVar"><l>result</l><custom-block s="transpose %l"><block var="result"/></custom-block></block></script></block><block s="doReport"><block var="result"/></block></script></block><block s="doIf"><block s="reportEquals"><block var="op"/><l>*</l></block><script><block s="doReport"><block s="reportCombine"><block s="reportVariadicProduct"><list><block var="a"/><block var="b"/></list></block><block s="reifyReporter"><autolambda><block s="reportVariadicSum"><list><l></l><l></l></list></block></autolambda><list></list></block></block></block></script></block><block s="doIfElse"><block s="reportEquals"><block var="op"/><l>X</l></block><script><block s="doIfElse"><block s="reportAnd"><block s="reportEquals"><block s="reportListAttribute"><l><option>length</option></l><block var="a"/></block><l>3</l></block><block s="reportEquals"><block s="reportListAttribute"><l><option>length</option></l><block var="b"/></block><l>3</l></block></block><script><block s="doSetVar"><l>result</l><block s="reportNewList"><list><block s="reportDifference"><block s="reportVariadicProduct"><list><block s="reportListItem"><l>2</l><block var="a"/></block><block s="reportListItem"><l>3</l><block var="b"/></block></list></block><block s="reportVariadicProduct"><list><block s="reportListItem"><l>3</l><block var="a"/></block><block s="reportListItem"><l>2</l><block var="b"/></block></list></block></block><block s="reportDifference"><block s="reportVariadicProduct"><list><block s="reportListItem"><l>3</l><block var="a"/></block><block s="reportListItem"><l>1</l><block var="b"/></block></list></block><block s="reportVariadicProduct"><list><block s="reportListItem"><l>1</l><block var="a"/></block><block s="reportListItem"><l>3</l><block var="b"/></block></list></block></block><block s="reportDifference"><block s="reportVariadicProduct"><list><block s="reportListItem"><l>1</l><block var="a"/></block><block s="reportListItem"><l>2</l><block var="b"/></block></list></block><block s="reportVariadicProduct"><list><block s="reportListItem"><l>2</l><block var="a"/></block><block s="reportListItem"><l>1</l><block var="b"/></block></list></block></block></list></block></block><block s="doIf"><block var="transposed"/><script><block s="doSetVar"><l>result</l><custom-block s="transpose %l"><block var="result"/></custom-block></block></script></block><block s="doReport"><block var="result"/></block></script><script><block s="doReport"><l>ERROR: wrong dimension of vectors!</l></block></script></block></script><script><block s="doReport"><l>ERROR: wrong dimension of vectors!</l></block></script></block></script><script><block s="doReport"><l>ERROR: different length of vectors!</l></block></script></block></script></block><block s="doIf"><custom-block s="is %s a %txt"><block var="b"/><l>matrix</l></custom-block><script><block s="doIfElse"><block s="reportAnd"><block s="reportAnd"><block s="reportIsA"><block s="reportListItem"><l>1</l><block var="a"/></block><l><option>number</option></l></block><block s="reportEquals"><block var="op"/><l>*</l></block></block><block s="reportEquals"><block s="reportListAttribute"><l><option>length</option></l><block var="a"/></block><block s="reportListAttribute"><l><option>length</option></l><block var="b"/></block></block></block><script><block s="doReport"><custom-block s="linear operation %s %s %s"><custom-block s="transpose %l"><block var="b"/></custom-block><l>*</l><custom-block s="transpose %l"><block var="a"/></custom-block></custom-block></block></script><script><block s="doReport"><l>ERROR: illegal operation between vector and matrix!</l></block></script></block></script><comment w="119.45205479452062" collapsed="false">vector matrix operation</comment></block><block s="doReport"><l>ERROR: illegal operation with vectors!</l></block></script></block><block s="doIf"><custom-block s="is %s a %txt"><block var="a"/><l>matrix</l></custom-block><script><block s="doIf"><block s="reportIsA"><block var="b"/><l><option>number</option></l><comment w="119.45205479452062" collapsed="false">matrix number operation</comment></block><script><block s="doIfElse"><block s="reportEquals"><block var="op"/><l>*</l></block><script><block s="doReport"><block s="reportVariadicProduct"><list><block var="a"/><block var="b"/></list></block></block></script><script><block s="doReport"><l>ERROR: illegal operation between number and matrix!</l></block></script></block></script></block><block s="doIf"><custom-block s="is %s a %txt"><block var="b"/><l>vector</l></custom-block><script><block s="doIfElse"><block s="reportAnd"><block s="reportAnd"><block s="reportIsA"><block s="reportListItem"><l>1</l><block var="a"/></block><l><option>list</option></l></block><block s="reportEquals"><block var="op"/><l>*</l></block></block><block s="reportEquals"><block s="reportListAttribute"><l><option>length</option></l><block s="reportListItem"><l>1</l><block var="a"/></block></block><block s="reportListAttribute"><l><option>length</option></l><block var="b"/></block></block></block><script><block s="doSetVar"><l>result</l><block s="reportNewList"><list></list></block></block><block s="doForEach"><l>row</l><block var="a"/><script><block s="doAddToList"><block s="reportCombine"><block s="reportVariadicProduct"><list><block var="row"/><custom-block s="transpose %l"><block var="b"/></custom-block></list></block><block s="reifyReporter"><autolambda><block s="reportVariadicSum"><list><l></l><l></l></list></block></autolambda><list></list></block></block><block var="result"/></block></script></block><block s="doReport"><custom-block s="transpose %l"><block var="result"/></custom-block></block></script><script><block s="doReport"><l>ERROR: illegal operation between matrix and vector!</l></block></script></block></script><comment w="119.45205479452062" collapsed="false">matrix vector operation</comment></block><block s="doIfElse"><custom-block s="is %s a %txt"><block var="b"/><l>matrix</l><comment w="119.45205479452062" collapsed="false">matrix matrix operation</comment></custom-block><script><block s="doSetVar"><l>rowsA</l><block s="reportListAttribute"><l><option>length</option></l><block var="a"/></block></block><block s="doSetVar"><l>rowsB</l><block s="reportListAttribute"><l><option>length</option></l><block var="b"/></block></block><block s="doSetVar"><l>colsA</l><block s="reportListAttribute"><l><option>length</option></l><block s="reportListItem"><l>1</l><block var="a"/></block></block></block><block s="doSetVar"><l>colsB</l><block s="reportListAttribute"><l><option>length</option></l><block s="reportListItem"><l>1</l><block var="b"/></block></block></block><block s="doIf"><block s="reportEquals"><block var="op"/><l>+</l></block><script><block s="doIfElse"><custom-block s="all of %mult%boolUE"><list><block s="reportEquals"><block var="rowsA"/><block var="rowsB"/></block><block s="reportEquals"><block var="colsA"/><block var="colsB"/></block></list></custom-block><script><block s="doReport"><block s="reportVariadicSum"><list><block var="a"/><block var="b"/></list></block></block></script><script><block s="doReport"><l>ERROR: different dimensions!</l></block></script></block></script></block><block s="doIf"><block s="reportEquals"><block var="op"/><l>-</l></block><script><block s="doIfElse"><custom-block s="all of %mult%boolUE"><list><block s="reportEquals"><block var="rowsA"/><block var="rowsB"/></block><block s="reportEquals"><block var="colsA"/><block var="colsB"/></block></list></custom-block><script><block s="doReport"><block s="reportDifference"><block var="a"/><block var="b"/></block></block></script><script><block s="doReport"><l>ERROR: different dimensions!</l></block></script></block></script></block><block s="doIf"><block s="reportEquals"><block var="op"/><l>*</l></block><script><block s="doIf"><custom-block s="any of %mult%boolUE"><list><block s="reportEquals"><block var="rowsA"/><l>0</l></block><block s="reportEquals"><block var="rowsB"/><l>0</l></block><block s="reportEquals"><block var="colsA"/><l>0</l></block><block s="reportEquals"><block var="colsB"/><l>0</l></block></list></custom-block><script><block s="doReport"><block s="reportNewList"><list></list></block></block></script></block><block s="doIfElse"><block s="reportEquals"><block var="colsA"/><block var="rowsB"/></block><script><block s="doSetVar"><l>result</l><block s="reportNewList"><list></list></block></block><block s="doSetVar"><l>b</l><custom-block s="transpose %l"><block var="b"/></custom-block></block><block s="doForEach"><l>rowA</l><block var="a"/><script><block s="doSetVar"><l>row</l><block s="reportNewList"><list></list></block></block><block s="doForEach"><l>columnB</l><block var="b"/><script><block s="doAddToList"><block s="reportCombine"><block s="reportVariadicProduct"><list><block var="rowA"/><block var="columnB"/></list></block><block s="reifyReporter"><autolambda><block s="reportVariadicSum"><list><l></l><l></l></list></block></autolambda><list></list></block></block><block var="row"/></block></script></block><block s="doAddToList"><block var="row"/><block var="result"/></block></script></block><block s="doReport"><block var="result"/></block></script><script><block s="doReport"><l>ERROR: wrong dimensions!</l></block></script></block><block s="doReport"><l>ERROR: wrong operation!</l></block></script></block></script><script><block s="doReport"><l>ERROR: illegal operation between matrices</l></block></script></block></script></block><block s="doReport"><l>ERROR: illegal operation</l></block></script></block></script></block-definition><block-definition s="apply %'matrix' to points %'points'" type="reporter" category="2. Math tools"><comment x="0" y="0" w="179.47619047619048" collapsed="false">Applies a mapping matrix to an object that is given as a matrix of points.</comment><header></header><code></code><translations></translations><inputs><input type="%l"></input><input type="%l"></input></inputs><script><block s="doDeclareVariables"><list><l>i</l><l>result</l></list></block><block s="doWarp"><script><block s="doIfElse"><block s="reportNot"><custom-block s="is %s a %txt"><block var="points"/><l>matrix</l></custom-block></block><script><block s="doSetVar"><l>result</l><l>matrix of points required!</l></block></script><script><block s="doIfElse"><block s="reportNot"><block s="reportGreaterThan"><block s="reportListAttribute"><l><option>length</option></l><block var="points"/></block><l>1</l></block></block><script><block s="doSetVar"><l>result</l><l>too few points!</l></block></script><script><block s="doIfElse"><custom-block s="is %s a %txt"><block var="matrix"/><l>matrix</l></custom-block><script><block s="doIfElse"><block s="reportEquals"><block s="reportListAttribute"><l><option>length</option></l><block s="reportListItem"><l>1</l><block var="matrix"/></block></block><block s="reportListAttribute"><l><option>length</option></l><block s="reportListItem"><l>1</l><block var="points"/></block></block></block><script><block s="doSetVar"><l>result</l><block s="reportNewList"><list></list></block></block><block s="doSetVar"><l>i</l><l>1</l></block><block s="doUntil"><block s="reportGreaterThan"><block var="i"/><block s="reportListAttribute"><l><option>length</option></l><block var="points"/></block></block><script><block s="doAddToList"><custom-block s="transpose %l"><custom-block s="linear operation %s %s %s"><block var="matrix"/><l>*</l><custom-block s="transpose %l"><block s="reportListItem"><block var="i"/><block var="points"/></block></custom-block></custom-block></custom-block><block var="result"/></block><block s="doChangeVar"><l>i</l><l>1</l></block></script></block></script><script><block s="doSetVar"><l>result</l><l>wrong dimension of mapping matrix!</l></block></script></block></script><script><block s="doSetVar"><l>result</l><l>mapping matrix required!</l></block></script></block></script></block></script></block><block s="doReport"><block var="result"/></block></script></block></script></block-definition><block-definition s="solve %'A' *x= %'b'" type="reporter" category="2. Math tools"><comment x="0" y="0" w="219.04761904761926" collapsed="false">Soves a linear system of max. 50 equations.</comment><header></header><code></code><translations></translations><inputs><input type="%l"></input><input type="%l"></input></inputs><script><block s="doWarp"><script><block s="doDeclareVariables"><list><l>matrix</l><l>found</l><l>x</l><l>nonzero</l><l>help</l><l>n</l><l>solved</l><l>j</l><l>k</l><l>d</l><l>r</l><l>nonzero</l></list></block><block s="doIf"><block s="reportNot"><block s="reportAnd"><custom-block s="is %s a %txt"><block var="A"/><l>matrix</l></custom-block><custom-block s="is %s a %txt"><block var="b"/><l>vector</l></custom-block></block></block><script><block s="doReport"><l>ERROR: wrong data types!</l></block></script><comment w="137.85714285714286" collapsed="false">some tests for correct data</comment></block><block s="doIf"><block s="reportEquals"><block s="reportListAttribute"><l><option>length</option></l><block var="A"/></block><l>0</l></block><script><block s="doReport"><l>ERROR: matrix is empty!</l></block></script></block><block s="doIf"><block s="reportNot"><block s="reportEquals"><block s="reportListAttribute"><l><option>length</option></l><block s="reportListItem"><l>1</l><block var="A"/></block></block><block s="reportListAttribute"><l><option>length</option></l><block var="b"/></block></block></block><script><block s="doReport"><l>ERROR: wrong dimension of vector!</l></block></script></block><block s="doIf"><custom-block s="is %s a %txt"><block var="b"/><l>transposed-vector</l></custom-block><script><block s="doSetVar"><l>b</l><custom-block s="transpose %l"><block var="b"/></custom-block></block></script></block><block s="doSetVar"><l>matrix</l><block s="reportMap"><block s="reifyReporter"><script></script><list></list></block><block var="A"/></block><comment w="191.5707465277778" collapsed="false">creates matrix with attached column b</comment></block><block s="doSetVar"><l>solved</l><block s="reportBoolean"><l><bool>true</bool></l></block></block><block s="doSetVar"><l>n</l><block s="reportListAttribute"><l><option>length</option></l><block var="A"/></block></block><block s="doIf"><block s="reportGreaterThan"><block var="n"/><l>50</l></block><script><block s="doReport"><l>ERROR: matrix too large!</l></block></script></block><block s="doFor"><l>i</l><l>1</l><block var="n"/><script><block s="doAddToList"><block s="reportListItem"><block var="i"/><block var="b"/></block><block s="reportListItem"><block var="i"/><block var="matrix"/></block></block></script></block><block s="doSetVar"><l>d</l><block s="reportListAttribute"><l><option>length</option></l><block var="matrix"/></block><comment w="106.71245659722217" collapsed="false">Try to solve matrix</comment></block><block s="doSetVar"><l>r</l><l>1</l></block><block s="doUntil"><block s="reportOr"><block s="reportGreaterThan"><block var="r"/><block var="d"/></block><block s="reportNot"><block var="solved"/></block></block><script><block s="doIf"><block s="reportEquals"><block s="reportListItem"><block var="r"/><block s="reportListItem"><block var="r"/><block var="matrix"/></block></block><l>0</l></block><script><block s="doSetVar"><l>nonzero</l><block s="reportVariadicSum"><list><block var="r"/><l>1</l></list></block><comment w="137.82649739583348" collapsed="false">find nonzero element</comment></block><block s="doSetVar"><l>found</l><block s="reportBoolean"><l><bool>false</bool></l></block></block><block s="doUntil"><block s="reportOr"><block var="found"/><block s="reportGreaterThan"><block var="nonzero"/><block var="d"/></block></block><script><block s="doIfElse"><block s="reportNotEquals"><block s="reportListItem"><block var="r"/><block s="reportListItem"><block var="nonzero"/><block var="matrix"/></block></block><l>0</l></block><script><block s="doSetVar"><l>found</l><block s="reportBoolean"><l><bool>true</bool></l></block></block></script><script><block s="doChangeVar"><l>nonzero</l><l>1</l></block></script></block></script></block><block s="doIfElse"><block s="reportNot"><block var="found"/></block><script><block s="doReport"><l>ERROR: no solution found!</l></block></script><script><block s="doSetVar"><l>matrix</l><block s="reportMap"><block s="reifyReporter"><script><block s="doSetVar"><l>help</l><block s="reportListItem"><block var="r"/><block var="row"/></block></block><block s="doReplaceInList"><block var="r"/><block var="row"/><block s="reportListItem"><block var="nonzero"/><block var="row"/></block></block><block s="doReplaceInList"><block var="nonzero"/><block var="row"/><block var="help"/></block><block s="doReport"><block var="row"/></block></script><list><l>row</l></list></block><block var="matrix"/></block><comment w="90" collapsed="false">swap rows</comment></block></script></block></script></block><block s="doSetVar"><l>help</l><block s="reportListItem"><block var="r"/><block s="reportListItem"><block var="r"/><block var="matrix"/></block></block><comment w="90" collapsed="false">normalize row</comment></block><block s="doReplaceInList"><block var="r"/><block s="reportListItem"><block var="r"/><block var="matrix"/></block><l>1</l></block><block s="doSetVar"><l>k</l><block s="reportVariadicSum"><list><block var="r"/><l>1</l></list></block></block><block s="doUntil"><block s="reportGreaterThan"><block var="k"/><block s="reportVariadicSum"><list><block var="d"/><l>1</l></list></block></block><script><block s="doReplaceInList"><block var="k"/><block s="reportListItem"><block var="r"/><block var="matrix"/></block><block s="reportQuotient"><block s="reportListItem"><block var="k"/><block s="reportListItem"><block var="r"/><block var="matrix"/></block></block><block var="help"/></block></block><block s="doChangeVar"><l>k</l><l>1</l></block></script></block><block s="doSetVar"><l>k</l><l>1</l></block><block s="doUntil"><block s="reportGreaterThan"><block var="k"/><block var="d"/></block><script><block s="doIf"><block s="reportNotEquals"><block var="k"/><block var="r"/></block><script><block s="doSetVar"><l>help</l><block s="reportListItem"><block var="r"/><block s="reportListItem"><block var="k"/><block var="matrix"/></block></block></block><block s="doIf"><block s="reportNotEquals"><block var="help"/><l>0</l></block><script><block s="doReplaceInList"><block var="r"/><block s="reportListItem"><block var="k"/><block var="matrix"/></block><l>0</l></block><block s="doSetVar"><l>j</l><block s="reportVariadicSum"><list><block var="r"/><l>1</l></list></block></block><block s="doUntil"><block s="reportGreaterThan"><block var="j"/><block s="reportVariadicSum"><list><block var="d"/><l>1</l></list></block></block><script><block s="doReplaceInList"><block var="j"/><block s="reportListItem"><block var="k"/><block var="matrix"/></block><block s="reportDifference"><block s="reportListItem"><block var="j"/><block s="reportListItem"><block var="k"/><block var="matrix"/></block></block><block s="reportVariadicProduct"><list><block var="help"/><block s="reportListItem"><block var="j"/><block s="reportListItem"><block var="r"/><block var="matrix"/></block></block></list></block></block></block><block s="doChangeVar"><l>j</l><l>1</l></block></script></block></script></block></script></block><block s="doChangeVar"><l>k</l><l>1</l></block></script><comment w="90" collapsed="false">diagonalize</comment></block><block s="doChangeVar"><l>r</l><l>1</l></block></script></block><block s="doReport"><block s="reportMap"><block s="reifyReporter"><script><block s="doReport"><block s="reportListItem"><l><option>last</option></l><l/></block></block></script><list></list></block><block var="matrix"/></block></block></script></block></script></block-definition><block-definition s="apply Gauss method to matrix %'A'" type="reporter" category="2. Math tools"><comment x="0" y="0" w="228.14285714285737" collapsed="false">Reports a list of matrix A in triangle form, the rank of A, column change and column positions.</comment><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doDeclareVariables"><list><l>Ab</l><l>rank</l><l>row</l><l>found</l><l>help</l><l>i</l><l>c</l><l>columchange</l><l>column positions</l><l>j</l></list></block><block s="doWarp"><script><block s="doIf"><block s="reportNot"><custom-block s="is %s a %txt"><block var="A"/><l>matrix</l></custom-block><comment w="137.85714285714286" collapsed="false">some tests for correct data</comment></block><script><block s="doReport"><l>ERROR: this is not a matrix!</l></block></script></block><block s="doIf"><block s="reportEquals"><block s="reportListAttribute"><l><option>length</option></l><block var="A"/></block><l>0</l></block><script><block s="doReport"><l>ERROR: matrix is empty!</l></block></script></block><block s="doSetVar"><l>Ab</l><block s="reportMap"><block s="reifyReporter"><script></script><list></list></block><block var="A"/></block><comment w="186.6028794642858" collapsed="false">a copy of A is used to let A unchanged</comment></block><block s="doSetVar"><l>rank</l><block s="reportListAttribute"><l><option>length</option></l><block var="Ab"/></block></block><block s="doSetVar"><l>row</l><l>1</l></block><block s="doSetVar"><l>columchange</l><block s="reportBoolean"><l><bool>false</bool></l></block></block><block s="doSetVar"><l>column positions</l><block s="reportNumbers"><l>1</l><block s="reportListAttribute"><l><option>length</option></l><block s="reportListItem"><l>1</l><block var="Ab"/></block></block></block></block><block s="doUntil"><block s="reportOr"><block s="reportGreaterThan"><block var="row"/><block s="reportListAttribute"><l><option>length</option></l><block var="Ab"/></block></block><block s="reportLessThan"><block var="rank"/><block s="reportListAttribute"><l><option>length</option></l><block var="Ab"/></block></block></block><script><block s="doIf"><block s="reportEquals"><block s="reportListItem"><block var="row"/><block s="reportListItem"><block var="row"/><block var="Ab"/></block></block><l>0</l><comment w="155" collapsed="false">find a non zero pivot element</comment></block><script><block s="doSetVar"><l>found</l><block s="reportBoolean"><l><bool>false</bool></l></block></block><block s="doSetVar"><l>i</l><block s="reportVariadicSum"><list><block var="row"/><l>1</l></list></block></block><block s="doUntil"><block s="reportOr"><block s="reportGreaterThan"><block var="i"/><block s="reportListAttribute"><l><option>length</option></l><block var="Ab"/></block></block><block var="found"/></block><script><block s="doIf"><block s="reportNot"><block s="reportEquals"><block s="reportListItem"><block var="row"/><block s="reportListItem"><block var="i"/><block var="Ab"/></block></block><l>0</l></block></block><script><block s="doSetVar"><l>found</l><block s="reportBoolean"><l><bool>true</bool></l></block></block><block s="doSetVar"><l>help</l><block s="reportListItem"><block var="i"/><block var="Ab"/></block></block><block s="doReplaceInList"><block var="i"/><block var="Ab"/><block s="reportListItem"><block var="row"/><block var="Ab"/></block></block><block s="doReplaceInList"><block var="row"/><block var="Ab"/><block var="help"/></block></script></block><block s="doChangeVar"><l>i</l><l>1</l></block></script><comment w="90" collapsed="false">search downwards</comment></block><block s="doIf"><block s="reportNot"><block var="found"/></block><script><block s="doSetVar"><l>i</l><block s="reportVariadicSum"><list><block var="row"/><l>1</l></list></block></block><block s="doUntil"><block s="reportOr"><block s="reportGreaterThan"><block var="i"/><block s="reportDifference"><block s="reportListAttribute"><l><option>length</option></l><block s="reportListItem"><l>1</l><block var="Ab"/></block></block><l>1</l></block></block><block var="found"/></block><script><block s="doIf"><block s="reportNot"><block s="reportEquals"><block s="reportListItem"><block var="i"/><block s="reportListItem"><block var="row"/><block var="Ab"/></block></block><l>0</l></block></block><script><block s="doSetVar"><l>found</l><block s="reportBoolean"><l><bool>true</bool></l></block></block><block s="doFor"><l>column</l><l>1</l><block s="reportListAttribute"><l><option>length</option></l><block var="Ab"/></block><script><block s="doSetVar"><l>help</l><block s="reportListItem"><block var="i"/><block s="reportListItem"><block var="column"/><block var="Ab"/></block></block></block><block s="doReplaceInList"><block var="i"/><block s="reportListItem"><block var="column"/><block var="Ab"/></block><block s="reportListItem"><block var="row"/><block s="reportListItem"><block var="column"/><block var="Ab"/></block></block></block><block s="doReplaceInList"><block var="row"/><block s="reportListItem"><block var="column"/><block var="Ab"/></block><block var="help"/></block><block s="doSetVar"><l>columchange</l><block s="reportBoolean"><l><bool>true</bool></l></block></block><block s="doSetVar"><l>help</l><block s="reportListItem"><block var="row"/><block var="column positions"/></block></block><block s="doReplaceInList"><block var="row"/><block var="column positions"/><block s="reportListItem"><block var="i"/><block var="column positions"/></block></block><block s="doReplaceInList"><block var="i"/><block var="column positions"/><block var="help"/></block></script></block></script></block><block s="doChangeVar"><l>i</l><l>1</l></block></script><comment w="90" collapsed="false">search to the right</comment></block></script></block></script></block><block s="doSetVar"><l>c</l><block s="reportListItem"><block var="row"/><block s="reportListItem"><block var="row"/><block var="Ab"/></block></block></block><block s="doIfElse"><block s="reportNot"><block s="reportEquals"><block var="c"/><l>0</l></block></block><script><block s="doReplaceInList"><block var="row"/><block var="Ab"/><block s="reportQuotient"><block s="reportListItem"><block var="row"/><block var="Ab"/></block><block var="c"/></block></block><block s="doSetVar"><l>i</l><block s="reportVariadicSum"><list><block var="row"/><l>1</l></list></block></block><block s="doUntil"><block s="reportGreaterThan"><block var="i"/><block s="reportListAttribute"><l><option>length</option></l><block var="Ab"/></block></block><script><block s="doSetVar"><l>c</l><block s="reportListItem"><block var="row"/><block s="reportListItem"><block var="i"/><block var="Ab"/></block></block></block><block s="doReplaceInList"><block var="i"/><block var="Ab"/><block s="reportDifference"><block s="reportListItem"><block var="i"/><block var="Ab"/></block><block s="reportVariadicProduct"><list><block var="c"/><block s="reportListItem"><block var="row"/><block var="Ab"/></block></list></block></block></block><block s="doChangeVar"><l>i</l><l>1</l></block></script></block></script><script><block s="doSetVar"><l>rank</l><block s="reportDifference"><block var="row"/><l>1</l></block></block></script></block><block s="doChangeVar"><l>row</l><l>1</l></block></script></block><block s="doSetVar"><l>row</l><block var="rank"/></block><block s="doUntil"><block s="reportLessThan"><block var="row"/><l>1</l></block><script><block s="doSetVar"><l>i</l><block s="reportDifference"><block var="row"/><l>1</l></block></block><block s="doUntil"><block s="reportLessThan"><block var="i"/><l>1</l></block><script><block s="doSetVar"><l>c</l><block s="reportListItem"><block var="row"/><block s="reportListItem"><block var="i"/><block var="Ab"/></block></block></block><block s="doReplaceInList"><block var="i"/><block var="Ab"/><block s="reportDifference"><block s="reportListItem"><block var="i"/><block var="Ab"/></block><block s="reportVariadicProduct"><list><block var="c"/><block s="reportListItem"><block var="row"/><block var="Ab"/></block></list></block></block></block><block s="doChangeVar"><l>i</l><l>-1</l></block></script></block><block s="doChangeVar"><l>row</l><l>-1</l></block></script><comment w="137.85714285714286" collapsed="false">transform to diagonal form E</comment></block><block s="doReport"><block s="reportNewList"><list><block var="Ab"/><block var="rank"/><block var="columchange"/><block var="column positions"/></list></block></block></script></block></script></block-definition><block-definition s="polynomial interpolation for points %'data'" type="reporter" category="2. Math tools"><comment x="0" y="0" w="386.0812133072408" collapsed="false">Calculates the coefficients of the interpolation polynomial for a 2xn-matrix of points.</comment><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doDeclareVariables"><list><l>matrix</l><l>found</l><l>x</l><l>row</l><l>help</l><l>n</l><l>solved</l><l>j</l><l>k</l><l>d</l><l>r</l><l>nonzero</l></list></block><block s="doWarp"><script><block s="doIf"><block s="reportNot"><custom-block s="is %s a %txt"><block var="data"/><l>matrix</l></custom-block></block><script><block s="doReport"><l>ERROR: matrix required!</l></block></script></block><block s="doIf"><block s="reportLessThan"><block s="reportListAttribute"><l><option>length</option></l><block var="data"/></block><l>2</l></block><script><block s="doReport"><l>ERROR: not enough points!</l></block></script></block><block s="doIf"><block s="reportNot"><block s="reportEquals"><block s="reportListAttribute"><l><option>length</option></l><block s="reportListItem"><l>1</l><block var="data"/></block></block><l>2</l></block></block><script><block s="doReport"><l>ERROR: 2-dimensional points required!</l></block></script></block><block s="doSetVar"><l>matrix</l><block s="reportNewList"><list></list></block><comment w="191.5707465277778" collapsed="false">create matrix of powers of x and y-value</comment></block><block s="doSetVar"><l>solved</l><block s="reportBoolean"><l><bool>true</bool></l></block></block><block s="doSetVar"><l>n</l><block s="reportListAttribute"><l><option>length</option></l><block var="data"/></block></block><block s="doIf"><block s="reportGreaterThan"><block var="n"/><l>50</l></block><script><block s="doReport"><l>ERROR: matrix too large!</l></block></script></block><block s="doFor"><l>i</l><l>1</l><block var="n"/><script><block s="doSetVar"><l>row</l><block s="reportNewList"><list></list></block></block><block s="doSetVar"><l>j</l><block s="reportDifference"><block var="n"/><l>1</l></block></block><block s="doUntil"><block s="reportLessThan"><block var="j"/><l>0</l></block><script><block s="doSetVar"><l>x</l><l>1</l></block><block s="doSetVar"><l>k</l><block var="j"/></block><block s="doUntil"><block s="reportLessThanOrEquals"><block var="k"/><l>0</l></block><script><block s="doSetVar"><l>x</l><block s="reportVariadicProduct"><list><block var="x"/><block s="reportListItem"><l>1</l><block s="reportListItem"><block var="i"/><block var="data"/></block></block></list></block></block><block s="doChangeVar"><l>k</l><l>-1</l></block></script></block><block s="doAddToList"><block var="x"/><block var="row"/></block><block s="doChangeVar"><l>j</l><l>-1</l></block></script></block><block s="doAddToList"><block s="reportListItem"><l>2</l><block s="reportListItem"><block var="i"/><block var="data"/></block></block><block var="row"/></block><block s="doAddToList"><block var="row"/><block var="matrix"/></block></script></block><block s="doSetVar"><l>d</l><block s="reportListAttribute"><l><option>length</option></l><block var="matrix"/></block><comment w="106.71245659722217" collapsed="false">Try to solve matrix</comment></block><block s="doSetVar"><l>r</l><l>1</l></block><block s="doUntil"><block s="reportOr"><block s="reportGreaterThan"><block var="r"/><block var="d"/></block><block s="reportNot"><block var="solved"/></block></block><script><block s="doIf"><block s="reportEquals"><block s="reportListItem"><block var="r"/><block s="reportListItem"><block var="r"/><block var="matrix"/></block></block><l>0</l></block><script><block s="doSetVar"><l>nonzero</l><block s="reportVariadicSum"><list><block var="r"/><l>1</l></list></block><comment w="137.82649739583348" collapsed="false">find nonzero element</comment></block><block s="doSetVar"><l>found</l><block s="reportBoolean"><l><bool>false</bool></l></block></block><block s="doUntil"><block s="reportOr"><block var="found"/><block s="reportGreaterThan"><block var="nonzero"/><block var="d"/></block></block><script><block s="doIfElse"><block s="reportNotEquals"><block s="reportListItem"><block var="r"/><block s="reportListItem"><block var="nonzero"/><block var="matrix"/></block></block><l>0</l></block><script><block s="doSetVar"><l>found</l><block s="reportBoolean"><l><bool>true</bool></l></block></block></script><script><block s="doChangeVar"><l>nonzero</l><l>1</l></block></script></block></script></block><block s="doIfElse"><block s="reportNot"><block var="found"/></block><script><block s="doReport"><l>ERROR: no solution found!</l></block></script><script><block s="doSetVar"><l>matrix</l><block s="reportMap"><block s="reifyReporter"><script><block s="doSetVar"><l>help</l><block s="reportListItem"><block var="r"/><block var="row"/></block></block><block s="doReplaceInList"><block var="r"/><block var="row"/><block s="reportListItem"><block var="nonzero"/><block var="row"/></block></block><block s="doReplaceInList"><block var="nonzero"/><block var="row"/><block var="help"/></block><block s="doReport"><block var="row"/></block></script><list><l>row</l></list></block><block var="matrix"/></block><comment w="90" collapsed="false">swap rows</comment></block></script></block></script></block><block s="doSetVar"><l>help</l><block s="reportListItem"><block var="r"/><block s="reportListItem"><block var="r"/><block var="matrix"/></block></block><comment w="90" collapsed="false">normalize row</comment></block><block s="doReplaceInList"><block var="r"/><block s="reportListItem"><block var="r"/><block var="matrix"/></block><l>1</l></block><block s="doSetVar"><l>k</l><block s="reportVariadicSum"><list><block var="r"/><l>1</l></list></block></block><block s="doUntil"><block s="reportGreaterThan"><block var="k"/><block s="reportVariadicSum"><list><block var="d"/><l>1</l></list></block></block><script><block s="doReplaceInList"><block var="k"/><block s="reportListItem"><block var="r"/><block var="matrix"/></block><block s="reportQuotient"><block s="reportListItem"><block var="k"/><block s="reportListItem"><block var="r"/><block var="matrix"/></block></block><block var="help"/></block></block><block s="doChangeVar"><l>k</l><l>1</l></block></script></block><block s="doSetVar"><l>k</l><l>1</l></block><block s="doUntil"><block s="reportGreaterThan"><block var="k"/><block var="d"/></block><script><block s="doIf"><block s="reportNotEquals"><block var="k"/><block var="r"/></block><script><block s="doSetVar"><l>help</l><block s="reportListItem"><block var="r"/><block s="reportListItem"><block var="k"/><block var="matrix"/></block></block></block><block s="doIf"><block s="reportNotEquals"><block var="help"/><l>0</l></block><script><block s="doReplaceInList"><block var="r"/><block s="reportListItem"><block var="k"/><block var="matrix"/></block><l>0</l></block><block s="doSetVar"><l>j</l><block s="reportVariadicSum"><list><block var="r"/><l>1</l></list></block></block><block s="doUntil"><block s="reportGreaterThan"><block var="j"/><block s="reportVariadicSum"><list><block var="d"/><l>1</l></list></block></block><script><block s="doReplaceInList"><block var="j"/><block s="reportListItem"><block var="k"/><block var="matrix"/></block><block s="reportDifference"><block s="reportListItem"><block var="j"/><block s="reportListItem"><block var="k"/><block var="matrix"/></block></block><block s="reportVariadicProduct"><list><block var="help"/><block s="reportListItem"><block var="j"/><block s="reportListItem"><block var="r"/><block var="matrix"/></block></block></list></block></block></block><block s="doChangeVar"><l>j</l><l>1</l></block></script></block></script></block></script></block><block s="doChangeVar"><l>k</l><l>1</l></block></script><comment w="90" collapsed="false">diagonaize</comment></block><block s="doChangeVar"><l>r</l><l>1</l></block></script></block><block s="doReport"><block s="reportMap"><block s="reifyReporter"><script><block s="doReport"><block s="reportListItem"><l><option>last</option></l><l/></block></block></script><list></list></block><block var="matrix"/></block></block></script></block></script></block-definition><block-definition s="%'p' ( %'x' )" type="reporter" category="2. Math tools"><comment x="0" y="0" w="244.41780821917828" collapsed="false">Calculates the value of a polynomial for input x.</comment><header></header><code></code><translations></translations><inputs><input type="%s">polynomial as list of coefficients</input><input type="%n">1</input></inputs><script><block s="doWarp"><script><block s="doDeclareVariables"><list><l>grade</l><l>result</l><l>i</l></list></block><block s="doIfElse"><block s="reportNot"><custom-block s="is %s a %txt"><block var="p"/><l>vector</l></custom-block></block><script><block s="doReport"><l>ERROR: no polynomial found!</l></block></script><script><block s="doSetVar"><l>grade</l><block s="reportListAttribute"><l><option>length</option></l><block var="p"/></block></block><block s="doIf"><block s="reportEquals"><block var="grade"/><l>0</l></block><script><block s="doReport"><l>0</l></block></script></block></script></block><block s="doIf"><block s="reportEquals"><block var="grade"/><l>1</l></block><script><block s="doReport"><block s="reportListItem"><l>1</l><block var="p"/></block></block></script></block><block s="doSetVar"><l>result</l><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><block s="reportListItem"><l>1</l><block var="p"/></block><block var="x"/></list></block><block s="reportListItem"><l>2</l><block var="p"/></block></list></block></block><block s="doSetVar"><l>i</l><l>3</l></block><block s="doUntil"><block s="reportGreaterThan"><block var="i"/><block var="grade"/></block><script><block s="doSetVar"><l>result</l><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><block var="result"/><block var="x"/></list></block><block s="reportListItem"><block var="i"/><block var="p"/></block></list></block></block><block s="doChangeVar"><l>i</l><l>1</l></block></script></block><block s="doReport"><block var="result"/></block></script></block></script></block-definition><block-definition s="affine transformation of %'data' $nl by %'originalPoints' --> %'targetPoints' for MathPad" type="reporter" category="2. Math tools"><comment x="0" y="0" w="225" collapsed="false">Applies an affine transformation to a list of points.
</comment><header></header><code></code><translations></translations><inputs><input type="%l">SciSnap!Data</input><input type="%l"></input><input type="%l"></input></inputs><script><block s="doDeclareVariables"><list><l>a11</l><l>a12</l><l>a13</l><l>a21</l><l>a22</l><l>a23</l><l>S</l><l>P1</l><l>P2</l><l>P3</l><l>Q1</l><l>Q2</l><l>Q3</l><l>ok</l><l>result</l><l>i</l></list></block><block s="doWarp"><script><block s="doIfElse"><block s="reportIsA"><block var="data"/><l><option>list</option></l></block><script><block s="doIfElse"><block s="reportEquals"><block s="reportListAttribute"><l><option>length</option></l><block var="data"/></block><l>0</l></block><script><block s="doReport"><l>ERROR: at least one point required!</l></block></script><script><block s="doIf"><block s="reportNot"><block s="reportAnd"><block s="reportIsA"><block s="reportListItem"><l>1</l><block var="data"/></block><l><option>list</option></l></block><block s="reportEquals"><block s="reportListAttribute"><l><option>length</option></l><block s="reportListItem"><l>1</l><block var="data"/></block></block><l>2</l></block></block></block><script><block s="doReport"><l>ERROR: dimension should be 2!</l></block></script></block></script></block></script><script><block s="doReport"><l>ERROR: list of points as data required!</l></block></script></block><block s="doSetVar"><l>ok</l><block s="reportBoolean"><l><bool>true</bool></l></block></block><block s="doIfElse"><block s="reportIsA"><block var="originalPoints"/><l><option>list</option></l></block><script><block s="doIfElse"><block s="reportNotEquals"><block s="reportListAttribute"><l><option>length</option></l><block var="originalPoints"/></block><l>3</l></block><script><block s="doReport"><l>ERROR: 3 original points required!</l></block></script><script><block s="doFor"><l>i</l><l>1</l><l>3</l><script><block s="doIf"><block s="reportNot"><block s="reportAnd"><block s="reportIsA"><block s="reportListItem"><block var="i"/><block var="originalPoints"/></block><l><option>list</option></l></block><block s="reportEquals"><block s="reportListAttribute"><l><option>length</option></l><block s="reportListItem"><block var="i"/><block var="originalPoints"/></block></block><l>2</l></block></block></block><script><block s="doSetVar"><l>ok</l><block s="reportBoolean"><l><bool>false</bool></l></block></block></script></block></script></block></script></block></script><script><block s="doReport"><l>ERROR: list of original points required!</l></block></script></block><block s="doIfElse"><block s="reportIsA"><block var="targetPoints"/><l><option>list</option></l></block><script><block s="doIfElse"><block s="reportNotEquals"><block s="reportListAttribute"><l><option>length</option></l><block var="targetPoints"/></block><l>3</l></block><script><block s="doReport"><l>ERROR: 3 target points required!</l></block></script><script><block s="doFor"><l>i</l><l>1</l><l>3</l><script><block s="doIf"><block s="reportNot"><block s="reportAnd"><block s="reportIsA"><block s="reportListItem"><block var="i"/><block var="targetPoints"/></block><l><option>list</option></l></block><block s="reportEquals"><block s="reportListAttribute"><l><option>length</option></l><block s="reportListItem"><block var="i"/><block var="targetPoints"/></block></block><l>2</l></block></block></block><script><block s="doSetVar"><l>ok</l><block s="reportBoolean"><l><bool>false</bool></l></block></block></script></block></script></block></script></block></script><script><block s="doReport"><l>ERROR: list of target points required!</l></block></script></block><block s="doIf"><block s="reportNot"><block var="ok"/></block><script><block s="doReport"><l>ERROR: dimensions should be 2!</l></block></script></block><block s="doSetVar"><l>P1</l><block s="reportListItem"><l>1</l><block var="originalPoints"/></block></block><block s="doSetVar"><l>P2</l><block s="reportListItem"><l>2</l><block var="originalPoints"/></block></block><block s="doSetVar"><l>P3</l><block s="reportListItem"><l>3</l><block var="originalPoints"/></block></block><block s="doSetVar"><l>Q1</l><block s="reportListItem"><l>1</l><block var="targetPoints"/></block></block><block s="doSetVar"><l>Q2</l><block s="reportListItem"><l>2</l><block var="targetPoints"/></block></block><block s="doSetVar"><l>Q3</l><block s="reportListItem"><l>3</l><block var="targetPoints"/></block></block><block s="doSetVar"><l>S</l><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><block s="reportListItem"><l>1</l><block var="P1"/></block><block s="reportDifference"><block s="reportListItem"><l>2</l><block var="P3"/></block><block s="reportListItem"><l>2</l><block var="P2"/></block></block></list></block><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><block s="reportListItem"><l>1</l><block var="P2"/></block><block s="reportDifference"><block s="reportListItem"><l>2</l><block var="P1"/></block><block s="reportListItem"><l>2</l><block var="P3"/></block></block></list></block><block s="reportVariadicProduct"><list><block s="reportListItem"><l>1</l><block var="P3"/></block><block s="reportDifference"><block s="reportListItem"><l>2</l><block var="P2"/></block><block s="reportListItem"><l>2</l><block var="P1"/></block></block></list></block></list></block></list></block></block><block s="doIf"><block s="reportNot"><block s="reportEquals"><block var="S"/><l>0</l></block></block><script><block s="doSetVar"><l>a11</l><block s="reportQuotient"><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><block s="reportListItem"><l>2</l><block var="P1"/></block><block s="reportDifference"><block s="reportListItem"><l>1</l><block var="Q2"/></block><block s="reportListItem"><l>1</l><block var="Q3"/></block></block></list></block><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><block s="reportListItem"><l>2</l><block var="P2"/></block><block s="reportDifference"><block s="reportListItem"><l>1</l><block var="Q3"/></block><block s="reportListItem"><l>1</l><block var="Q1"/></block></block></list></block><block s="reportVariadicProduct"><list><block s="reportListItem"><l>2</l><block var="P3"/></block><block s="reportDifference"><block s="reportListItem"><l>1</l><block var="Q1"/></block><block s="reportListItem"><l>1</l><block var="Q2"/></block></block></list></block></list></block></list></block><block var="S"/></block></block><block s="doSetVar"><l>a12</l><block s="reportQuotient"><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><block s="reportListItem"><l>1</l><block var="P1"/></block><block s="reportDifference"><block s="reportListItem"><l>1</l><block var="Q3"/></block><block s="reportListItem"><l>1</l><block var="Q2"/></block></block></list></block><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><block s="reportListItem"><l>1</l><block var="P2"/></block><block s="reportDifference"><block s="reportListItem"><l>1</l><block var="Q1"/></block><block s="reportListItem"><l>1</l><block var="Q3"/></block></block></list></block><block s="reportVariadicProduct"><list><block s="reportListItem"><l>1</l><block var="P3"/></block><block s="reportDifference"><block s="reportListItem"><l>1</l><block var="Q2"/></block><block s="reportListItem"><l>1</l><block var="Q1"/></block></block></list></block></list></block></list></block><block var="S"/></block></block><block s="doSetVar"><l>a21</l><block s="reportQuotient"><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><block s="reportListItem"><l>2</l><block var="P1"/></block><block s="reportDifference"><block s="reportListItem"><l>2</l><block var="Q2"/></block><block s="reportListItem"><l>2</l><block var="Q3"/></block></block></list></block><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><block s="reportListItem"><l>2</l><block var="P2"/></block><block s="reportDifference"><block s="reportListItem"><l>2</l><block var="Q3"/></block><block s="reportListItem"><l>2</l><block var="Q1"/></block></block></list></block><block s="reportVariadicProduct"><list><block s="reportListItem"><l>2</l><block var="P3"/></block><block s="reportDifference"><block s="reportListItem"><l>2</l><block var="Q1"/></block><block s="reportListItem"><l>2</l><block var="Q2"/></block></block></list></block></list></block></list></block><block var="S"/></block></block><block s="doSetVar"><l>a22</l><block s="reportQuotient"><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><block s="reportListItem"><l>1</l><block var="P1"/></block><block s="reportDifference"><block s="reportListItem"><l>2</l><block var="Q3"/></block><block s="reportListItem"><l>2</l><block var="Q2"/></block></block></list></block><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><block s="reportListItem"><l>1</l><block var="P2"/></block><block s="reportDifference"><block s="reportListItem"><l>2</l><block var="Q1"/></block><block s="reportListItem"><l>2</l><block var="Q3"/></block></block></list></block><block s="reportVariadicProduct"><list><block s="reportListItem"><l>1</l><block var="P3"/></block><block s="reportDifference"><block s="reportListItem"><l>2</l><block var="Q2"/></block><block s="reportListItem"><l>2</l><block var="Q1"/></block></block></list></block></list></block></list></block><block var="S"/></block></block><block s="doSetVar"><l>a13</l><block s="reportQuotient"><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><block s="reportListItem"><l>1</l><block var="P1"/></block><block s="reportDifference"><block s="reportVariadicProduct"><list><block s="reportListItem"><l>2</l><block var="P3"/></block><block s="reportListItem"><l>1</l><block var="Q2"/></block></list></block><block s="reportVariadicProduct"><list><block s="reportListItem"><l>2</l><block var="P2"/></block><block s="reportListItem"><l>1</l><block var="Q3"/></block></list></block></block></list></block><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><block s="reportListItem"><l>1</l><block var="P2"/></block><block s="reportDifference"><block s="reportVariadicProduct"><list><block s="reportListItem"><l>2</l><block var="P1"/></block><block s="reportListItem"><l>1</l><block var="Q3"/></block></list></block><block s="reportVariadicProduct"><list><block s="reportListItem"><l>2</l><block var="P3"/></block><block s="reportListItem"><l>1</l><block var="Q1"/></block></list></block></block></list></block><block s="reportVariadicProduct"><list><block s="reportListItem"><l>1</l><block var="P3"/></block><block s="reportDifference"><block s="reportVariadicProduct"><list><block s="reportListItem"><l>2</l><block var="P2"/></block><block s="reportListItem"><l>1</l><block var="Q1"/></block></list></block><block s="reportVariadicProduct"><list><block s="reportListItem"><l>2</l><block var="P1"/></block><block s="reportListItem"><l>1</l><block var="Q2"/></block></list></block></block></list></block></list></block></list></block><block var="S"/></block></block><block s="doSetVar"><l>a23</l><block s="reportQuotient"><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><block s="reportListItem"><l>1</l><block var="P1"/></block><block s="reportDifference"><block s="reportVariadicProduct"><list><block s="reportListItem"><l>2</l><block var="P3"/></block><block s="reportListItem"><l>2</l><block var="Q2"/></block></list></block><block s="reportVariadicProduct"><list><block s="reportListItem"><l>2</l><block var="P2"/></block><block s="reportListItem"><l>2</l><block var="Q3"/></block></list></block></block></list></block><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><block s="reportListItem"><l>1</l><block var="P2"/></block><block s="reportDifference"><block s="reportVariadicProduct"><list><block s="reportListItem"><l>2</l><block var="P1"/></block><block s="reportListItem"><l>2</l><block var="Q3"/></block></list></block><block s="reportVariadicProduct"><list><block s="reportListItem"><l>2</l><block var="P3"/></block><block s="reportListItem"><l>2</l><block var="Q1"/></block></list></block></block></list></block><block s="reportVariadicProduct"><list><block s="reportListItem"><l>1</l><block var="P3"/></block><block s="reportDifference"><block s="reportVariadicProduct"><list><block s="reportListItem"><l>2</l><block var="P2"/></block><block s="reportListItem"><l>2</l><block var="Q1"/></block></list></block><block s="reportVariadicProduct"><list><block s="reportListItem"><l>2</l><block var="P1"/></block><block s="reportListItem"><l>2</l><block var="Q2"/></block></list></block></block></list></block></list></block></list></block><block var="S"/></block></block><block s="doSetVar"><l>result</l><block s="reportNewList"><list></list></block></block><block s="doSetVar"><l>i</l><l>1</l></block><block s="doUntil"><block s="reportGreaterThan"><block var="i"/><block s="reportListAttribute"><l><option>length</option></l><block var="data"/></block></block><script><block s="doAddToList"><block s="reportNewList"><list><block s="reportVariadicSum"><list><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><block s="reportListItem"><l>1</l><block s="reportListItem"><block var="i"/><block var="data"/></block></block><block var="a11"/></list></block><block s="reportVariadicProduct"><list><block s="reportListItem"><l>2</l><block s="reportListItem"><block var="i"/><block var="data"/></block></block><block var="a12"/></list></block></list></block><block var="a13"/></list></block><block s="reportVariadicSum"><list><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><block s="reportListItem"><l>1</l><block s="reportListItem"><block var="i"/><block var="data"/></block></block><block var="a21"/></list></block><block s="reportVariadicProduct"><list><block s="reportListItem"><l>2</l><block s="reportListItem"><block var="i"/><block var="data"/></block></block><block var="a22"/></list></block></list></block><block var="a23"/></list></block></list></block><block var="result"/></block><block s="doChangeVar"><l>i</l><l>1</l></block></script></block><block s="doReport"><block var="result"/></block></script></block><block s="doReport"><l>ERROR: denominator is zero</l></block></script></block></script></block-definition><block-definition s="complex %'re' + %'im' * i" type="reporter" category="2. Math tools"><comment x="0" y="0" w="224.2857142857143" collapsed="false">Reports a complex number in Cartesian style.</comment><header></header><code></code><translations></translations><inputs><input type="%n">2</input><input type="%n">3</input></inputs><script><block s="doReport"><block s="reportNewList"><list><l>complexNumberCartesianStyle</l><block var="re"/><block var="im"/></list></block></block></script></block-definition><block-definition s="complex %'r' * e^i %'phi'" type="reporter" category="2. Math tools"><comment x="0" y="0" w="196.42857142857127" collapsed="false">Reports a complex number in polar style.</comment><header></header><code></code><translations></translations><inputs><input type="%n">2</input><input type="%n">30</input></inputs><script><block s="doReport"><block s="reportNewList"><list><l>complexNumberPolarStyle</l><block var="r"/><block var="phi"/></list></block></block></script></block-definition><block-definition s="complex %'z' polar style" type="reporter" category="2. Math tools"><comment x="0" y="0" w="200.71428571428572" collapsed="false">Reports a complex number in polar style.</comment><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doWarp"><script><block s="doIfElse"><custom-block s="is %s a %txt"><block var="z"/><l>complex-number</l></custom-block><script><block s="doIfElse"><custom-block s="is %s a %txt"><block var="z"/><l>complex-number-polar-style</l></custom-block><script><block s="doReport"><block var="z"/></block></script><script><block s="doReport"><block s="reportNewList"><list><l>complexNumberPolarStyle</l><block s="reportMonadic"><l><option>sqrt</option></l><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><block s="reportListItem"><l>2</l><block var="z"/></block><block s="reportListItem"><l>2</l><block var="z"/></block></list></block><block s="reportVariadicProduct"><list><block s="reportListItem"><l>3</l><block var="z"/></block><block s="reportListItem"><l>3</l><block var="z"/></block></list></block></list></block></block><block s="reportMonadic"><l><option>atan</option></l><block s="reportQuotient"><block s="reportListItem"><l>3</l><block var="z"/></block><block s="reportListItem"><l>2</l><block var="z"/></block></block></block></list></block></block></script></block></script><script><block s="doReport"><l>ERROR: complex number expected!</l></block></script></block></script></block></script></block-definition><block-definition s="complex %'z' Cartesian style" type="reporter" category="2. Math tools"><comment x="0" y="0" w="224.2857142857143" collapsed="false">Reports a complex number in Cartesian style.</comment><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doWarp"><script><block s="doIfElse"><custom-block s="is %s a %txt"><block var="z"/><l>complex-number</l></custom-block><script><block s="doIfElse"><custom-block s="is %s a %txt"><block var="z"/><l>complex-number-Cartesian-style</l></custom-block><script><block s="doReport"><block var="z"/></block></script><script><block s="doReport"><block s="reportNewList"><list><l>complexNumberCartesianStyle</l><block s="reportVariadicProduct"><list><block s="reportListItem"><l>2</l><block var="z"/></block><block s="reportMonadic"><l><option>cos</option></l><block s="reportListItem"><l>3</l><block var="z"/></block></block></list></block><block s="reportVariadicProduct"><list><block s="reportListItem"><l>2</l><block var="z"/></block><block s="reportMonadic"><l><option>sin</option></l><block s="reportListItem"><l>3</l><block var="z"/></block></block></list></block></list></block></block></script></block></script><script><block s="doReport"><l>ERROR: complex number expected!</l></block></script></block></script></block></script></block-definition><block-definition s="complex %'choice' of %'z'" type="reporter" category="2. Math tools"><comment x="0" y="0" w="191.42857142857127" collapsed="false">Reports properties of complex numbers.</comment><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true">real-part<options>absolute-value
real-part
imaginary-part
phase
conjugate</options></input><input type="%l"></input></inputs><script><block s="doWarp"><script><block s="doIfElse"><custom-block s="is %s a %txt"><block var="z"/><l>complex-number</l></custom-block><script><block s="doIf"><block s="reportEquals"><block var="choice"/><l>absolute-value</l></block><script><block s="doIfElse"><custom-block s="is %s a %txt"><block var="z"/><l>complex-number-polar-style</l></custom-block><script><block s="doReport"><block s="reportListItem"><l>2</l><block var="z"/></block></block></script><script><block s="doReport"><block s="reportMonadic"><l><option>sqrt</option></l><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><block s="reportListItem"><l>2</l><block var="z"/></block><block s="reportListItem"><l>2</l><block var="z"/></block></list></block><block s="reportVariadicProduct"><list><block s="reportListItem"><l>3</l><block var="z"/></block><block s="reportListItem"><l>3</l><block var="z"/></block></list></block></list></block></block></block></script></block></script></block><block s="doIf"><block s="reportEquals"><block var="choice"/><l>real-part</l></block><script><block s="doIfElse"><custom-block s="is %s a %txt"><block var="z"/><l>complex-number-Cartesian-style</l></custom-block><script><block s="doReport"><block s="reportListItem"><l>2</l><block var="z"/></block></block></script><script><block s="doReport"><block s="reportVariadicProduct"><list><block s="reportListItem"><l>2</l><block var="z"/></block><block s="reportMonadic"><l><option>cos</option></l><block s="reportListItem"><l>3</l><block var="z"/></block></block></list></block></block></script></block></script></block><block s="doIf"><block s="reportEquals"><block var="choice"/><l>imaginary-part</l></block><script><block s="doIfElse"><custom-block s="is %s a %txt"><block var="z"/><l>complex-number-Cartesian-style</l></custom-block><script><block s="doReport"><block s="reportListItem"><l>3</l><block var="z"/></block></block></script><script><block s="doReport"><block s="reportVariadicProduct"><list><block s="reportListItem"><l>2</l><block var="z"/></block><block s="reportMonadic"><l><option>sin</option></l><block s="reportListItem"><l>3</l><block var="z"/></block></block></list></block></block></script></block></script></block><block s="doIf"><block s="reportEquals"><block var="choice"/><l>phase</l></block><script><block s="doIfElse"><custom-block s="is %s a %txt"><block var="z"/><l>complex-number-polar-style</l></custom-block><script><block s="doReport"><block s="reportListItem"><l>3</l><block var="z"/></block></block></script><script><block s="doReport"><block s="reportMonadic"><l><option>atan</option></l><block s="reportQuotient"><block s="reportListItem"><l>3</l><block var="z"/></block><block s="reportListItem"><l>2</l><block var="z"/></block></block></block></block></script></block></script></block><block s="doIf"><block s="reportEquals"><block var="choice"/><l>conjugate</l></block><script><block s="doIfElse"><custom-block s="is %s a %txt"><block var="z"/><l>complex-number-polar-style</l></custom-block><script><block s="doReport"><block s="reportNewList"><list><l>complexNumberPolarStyle</l><block s="reportListItem"><l>2</l><block var="z"/></block><block s="reportMonadic"><l><option>neg</option></l><block s="reportListItem"><l>3</l><block var="z"/></block></block></list></block></block></script><script><block s="doReport"><block s="reportNewList"><list><l>complexNumberCartesianStyle</l><block s="reportListItem"><l>2</l><block var="z"/></block><block s="reportMonadic"><l><option>neg</option></l><block s="reportListItem"><l>3</l><block var="z"/></block></block></list></block></block></script></block></script></block><block s="doReport"><l>ERROR: unknown operator!</l></block></script><script><block s="doReport"><l>ERROR: complex number expected!</l></block></script></block></script></block></script></block-definition><block-definition s="complex %'z1' %'op' %'z2'" type="reporter" category="2. Math tools"><comment x="0" y="0" w="240" collapsed="false">Reports arithmetic results of two complex numbers.</comment><header></header><code></code><translations></translations><inputs><input type="%l"></input><input type="%s" readonly="true">+<options>+
-
*
/</options></input><input type="%l"></input></inputs><script><block s="doWarp"><script><block s="doDeclareVariables"><list><l>denominator</l></list></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a %txt"><block var="z1"/><l>complex-number</l></custom-block></block><script><block s="doReport"><l>ERROR: first argument is not a complex number</l></block></script></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a %txt"><block var="z2"/><l>complex-number</l></custom-block></block><script><block s="doReport"><l>ERROR: second argument is not a complex number</l></block></script></block><block s="doIf"><custom-block s="is %s a %txt"><block var="z1"/><l>complex-number-polar-style</l></custom-block><script><block s="doSetVar"><l>z1</l><block s="reportNewList"><list><l>complexNumberCartesianStyle</l><block s="reportVariadicProduct"><list><block s="reportListItem"><l>2</l><block var="z1"/></block><block s="reportMonadic"><l><option>cos</option></l><block s="reportListItem"><l>3</l><block var="z1"/></block></block></list></block><block s="reportVariadicProduct"><list><block s="reportListItem"><l>2</l><block var="z1"/></block><block s="reportMonadic"><l><option>sin</option></l><block s="reportListItem"><l>3</l><block var="z1"/></block></block></list></block></list></block></block></script></block><block s="doIf"><custom-block s="is %s a %txt"><block var="z2"/><l>complex-number-polar-style</l></custom-block><script><block s="doSetVar"><l>z2</l><block s="reportNewList"><list><l>complexNumberCartesianStyle</l><block s="reportVariadicProduct"><list><block s="reportListItem"><l>2</l><block var="z2"/></block><block s="reportMonadic"><l><option>cos</option></l><block s="reportListItem"><l>3</l><block var="z2"/></block></block></list></block><block s="reportVariadicProduct"><list><block s="reportListItem"><l>2</l><block var="z2"/></block><block s="reportMonadic"><l><option>sin</option></l><block s="reportListItem"><l>3</l><block var="z2"/></block></block></list></block></list></block></block></script></block><block s="doIf"><block s="reportEquals"><block var="op"/><l>+</l></block><script><block s="doReport"><block s="reportNewList"><list><l>complexNumberCartesianStyle</l><block s="reportVariadicSum"><list><block s="reportListItem"><l>2</l><block var="z1"/></block><block s="reportListItem"><l>2</l><block var="z2"/></block></list></block><block s="reportVariadicSum"><list><block s="reportListItem"><l>3</l><block var="z1"/></block><block s="reportListItem"><l>3</l><block var="z2"/></block></list></block></list></block></block></script></block><block s="doIf"><block s="reportEquals"><block var="op"/><l>-</l></block><script><block s="doReport"><block s="reportNewList"><list><l>complexNumberCartesianStyle</l><block s="reportDifference"><block s="reportListItem"><l>2</l><block var="z1"/></block><block s="reportListItem"><l>2</l><block var="z2"/></block></block><block s="reportDifference"><block s="reportListItem"><l>3</l><block var="z1"/></block><block s="reportListItem"><l>3</l><block var="z2"/></block></block></list></block></block></script></block><block s="doIf"><block s="reportEquals"><block var="op"/><l>*</l></block><script><block s="doReport"><block s="reportNewList"><list><l>complexNumberCartesianStyle</l><block s="reportDifference"><block s="reportVariadicProduct"><list><block s="reportListItem"><l>2</l><block var="z1"/></block><block s="reportListItem"><l>2</l><block var="z2"/></block></list></block><block s="reportVariadicProduct"><list><block s="reportListItem"><l>3</l><block var="z1"/></block><block s="reportListItem"><l>3</l><block var="z2"/></block></list></block></block><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><block s="reportListItem"><l>2</l><block var="z1"/></block><block s="reportListItem"><l>3</l><block var="z2"/></block></list></block><block s="reportVariadicProduct"><list><block s="reportListItem"><l>3</l><block var="z1"/></block><block s="reportListItem"><l>2</l><block var="z2"/></block></list></block></list></block></list></block></block></script></block><block s="doIf"><block s="reportEquals"><block var="op"/><l>/</l></block><script><block s="doSetVar"><l>denominator</l><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><block s="reportListItem"><l>2</l><block var="z2"/></block><block s="reportListItem"><l>2</l><block var="z2"/></block></list></block><block s="reportVariadicProduct"><list><block s="reportListItem"><l>3</l><block var="z2"/></block><block s="reportListItem"><l>3</l><block var="z2"/></block></list></block></list></block></block><block s="doIf"><block s="reportEquals"><block var="denominator"/><l>0</l></block><script><block s="doReport"><l>ERROR: denominator is zero!</l></block></script></block><block s="doReport"><block s="reportNewList"><list><l>complexNumberCartesianStyle</l><block s="reportQuotient"><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><block s="reportListItem"><l>2</l><block var="z1"/></block><block s="reportListItem"><l>2</l><block var="z2"/></block></list></block><block s="reportVariadicProduct"><list><block s="reportListItem"><l>3</l><block var="z1"/></block><block s="reportListItem"><l>3</l><block var="z2"/></block></list></block></list></block><block var="denominator"/></block><block s="reportQuotient"><block s="reportDifference"><block s="reportVariadicProduct"><list><block s="reportListItem"><l>3</l><block var="z1"/></block><block s="reportListItem"><l>2</l><block var="z2"/></block></list></block><block s="reportVariadicProduct"><list><block s="reportListItem"><l>2</l><block var="z1"/></block><block s="reportListItem"><l>3</l><block var="z2"/></block></list></block></block><block var="denominator"/></block></list></block></block></script></block></script></block></script></block-definition><block-definition s="configure sprite %'sprite' as a MathPad $nl width: %'width' height: %'height' color: %'r' %'g' %'b'" type="command" category="2. Math tools"><comment x="0" y="0" w="142.5" collapsed="false">Creates a new empty costume of the specified size and color and sets local properties</comment><header></header><code></code><translations></translations><inputs><input type="%s">thisSprite<options>thisSprite
theStage
anotherSprite</options></input><input type="%n">400</input><input type="%n">300</input><input type="%n">245</input><input type="%n">245</input><input type="%n">245</input></inputs><script><block s="doWarp"><script><block s="doDeclareVariables"><list><l>target</l><l>costumeWidth</l><l>costumeHeight</l></list></block><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>theStage</l></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>thisSprite</l></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportIsIdentical"><block var="target"/><block s="reportObject"><l>Stage</l></block></block><script><block s="doSetVar"><l>sprite</l><l>theStage</l></block><block s="doSetVar"><l>target</l><block s="reportObject"><l>Stage</l></block></block></script></block><block s="doIfElse"><block s="reportEquals"><block var="sprite"/><l>theStage</l></block><script><block s="doSetVar"><l>costumeWidth</l><block s="reportAttributeOf"><l><option>width</option></l><l>Stage</l></block></block><block s="doSetVar"><l>costumeHeight</l><block s="reportAttributeOf"><l><option>height</option></l><l>Stage</l></block></block></script><script><block s="doTellTo"><block var="target"/><block s="reifyScript"><script><block s="gotoXY"><l>0</l><l>0</l></block><block s="setHeading"><l>90</l></block><block s="show"></block></script><list></list></block><list></list></block><block s="doSetVar"><l>costumeWidth</l><block var="width"/></block><block s="doSetVar"><l>costumeHeight</l><block var="height"/></block></script></block><block s="doTellTo"><block var="target"/><block s="reifyScript"><script><block s="doApplyExtension"><l>var_declare(scope, name)</l><list><l>sprite</l><l>myProperties</l></list></block><block s="doApplyExtension"><l>var_declare(scope, name)</l><list><l>sprite</l><l>myData</l></list></block><block s="doSetVar"><l>myProperties</l><block s="reportNewList"><list></list></block></block><block s="doSetVar"><l>myData</l><block s="reportNewList"><list></list></block></block><block s="doSwitchToCostume"><custom-block s="new costume %n %n %n %n %n"><block var="costumeWidth"/><block var="costumeHeight"/><block var="r"/><block var="g"/><block var="b"/></custom-block></block><block s="doAddToList"><block s="reportNewList"><list><l>typeOfConfiguration</l><l>MathPad</l></list></block><block var="myProperties"/></block><block s="doAddToList"><block s="reportNewList"><list><l>typeOfData</l><l>none</l></list></block><block var="myProperties"/></block><block s="doAddToList"><block s="reportNewList"><list><l>lineProperties</l><block s="reportNewList"><list><l>1</l><block s="reportBoolean"><l><bool>false</bool></l></block></list></block></list></block><block var="myProperties"/></block><block s="doAddToList"><block s="reportNewList"><list><l>dimension</l><l>3</l></list></block><block var="myProperties"/></block><block s="doAddToList"><block s="reportNewList"><list><l>maxValue</l><l>10</l></list></block><block var="myProperties"/></block><block s="doAddToList"><block s="reportNewList"><list><l>startPoint</l><block s="reportNewList"><list><l>0</l><l>0</l><l>0</l></list></block></list></block><block var="myProperties"/></block></script><list></list></block><list></list></block><block s="doIfElse"><block s="reportEquals"><block var="sprite"/><l>theStage</l></block><script><block s="doTellTo"><l>Stage</l><block s="reifyScript"><script><block s="doAddToList"><block s="reportNewList"><list><l>costumeProperties</l><block s="reportNewList"><list><block s="reportAttributeOf"><l><option>width</option></l><l>Stage</l></block><block s="reportAttributeOf"><l><option>height</option></l><l>Stage</l></block><block var="r"/><block var="g"/><block var="b"/><block s="reportQuotient"><block s="reportDifference"><block s="reportAttributeOf"><l><option>width</option></l><l>Stage</l></block><block var="width"/></block><l>2</l></block><block s="reportQuotient"><block s="reportDifference"><block s="reportAttributeOf"><l><option>height</option></l><l>Stage</l></block><block var="height"/></block><l>2</l></block><block var="width"/><block var="height"/></list></block></list></block><block var="myProperties"/></block></script><list></list></block><list></list></block></script><script><block s="doTellTo"><block var="target"/><block s="reifyScript"><script><block s="doAddToList"><block s="reportNewList"><list><l>costumeProperties</l><block s="reportNewList"><list><block var="width"/><block var="height"/><block var="r"/><block var="g"/><block var="b"/><l>0</l><l>0</l><block var="width"/><block var="height"/></list></block></list></block><block var="myProperties"/></block></script><list></list></block><list></list></block></script></block><custom-block s="add centered axes to a MathPad on %txt"><block var="target"/></custom-block></script></block></script><scripts><comment x="474.1666666666667" y="108.5" w="220.16039530436274" collapsed="false">costume attributes:
1: width
2: height
3: back color red
4: back color green
5: back color blue
6: left offset for MathPad
 position on stage
7: upper offset for MathPad
 position on stage

other attributes:
1: line width
2: draw only ponts, not arrows
3: dimension of coordinate system
4: max. value on scales
5: start point of arrows</comment></scripts></block-definition><block-definition s="is %'sprite' a MathPad?" type="predicate" category="2. Math tools"><header></header><code></code><translations></translations><inputs><input type="%s">thisSprite<options>thisSprite
theStage
anotherSprite</options></input></inputs><script><block s="doWarp"><script><block s="doIfElse"><block s="reportEquals"><block var="sprite"/><l>thisSprite</l></block><script><block s="doReport"><block s="reportAskFor"><block s="reportObject"><l><option>myself</option></l></block><block s="reifyPredicate"><autolambda><custom-block s="is the global %b property %txt %br with value %s present ?"><l><bool>false</bool></l><l>typeOfConfiguration</l><l>MathPad</l></custom-block></autolambda><list></list></block><list></list></block></block></script><script><block s="doIfElse"><block s="reportEquals"><block var="sprite"/><l>theStage</l></block><script><block s="doReport"><block s="reportAskFor"><l>Stage</l><block s="reifyPredicate"><autolambda><custom-block s="is the global %b property %txt %br with value %s present ?"><l><bool>false</bool></l><l>typeOfConfiguration</l><l>MathPad</l></custom-block></autolambda><list></list></block><list></list></block></block></script><script><block s="doReport"><block s="reportAskFor"><block s="reportObject"><block var="sprite"/></block><block s="reifyPredicate"><autolambda><custom-block s="is the global %b property %txt %br with value %s present ?"><l><bool>false</bool></l><l>typeOfConfiguration</l><l>MathPad</l></custom-block></autolambda><list></list></block><list></list></block></block></script></block></script></block></script></block></script></block-definition><block-definition s="MathPadProperty %'name' of %'sprite'" type="reporter" category="2. Math tools"><comment x="0" y="0" w="212.5" collapsed="false">Reads the value of an existing property.</comment><header></header><code></code><translations></translations><inputs><input type="%txt">costumeProperties<options>typeOfConfiguration
typeOfData
costumeProperties
lineProperties
dimension
maxValue
startPoint</options></input><input type="%txt">thisSprite<options>thisSprite
theStage
anotherSprite</options></input></inputs><script><block s="doDeclareVariables"><list><l>result</l><l>h</l><l>target</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>theStage</l></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>thisSprite</l></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a MathPad?"><block var="target"/></custom-block></block><script><block s="doReport"><l>ERROR: target isn't configured as MathPad!</l></block></script></block><block s="doSetVar"><l>result</l><l>not found</l></block><block s="doSetVar"><l>name</l><block s="reportListItem"><l>1</l><block s="reportTextSplit"><block var="name"/><l> </l></block></block></block><block s="doSetVar"><l>h</l><block s="reportMap"><block s="reifyReporter"><script><block s="doIf"><block s="reportEquals"><block var="name"/><block s="reportListItem"><l>1</l><l/></block></block><script><block s="doSetVar"><l>result</l><block s="reportListItem"><l>2</l><l/></block></block></script></block><block s="doReport"><l></l></block></script><list></list></block><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block></block></block><block s="doReport"><block var="result"/></block></script></block></script></block-definition><block-definition s="set MathPadProperty %'name' of %'sprite' to %'value'" type="command" category="2. Math tools"><comment x="0" y="0" w="272.5" collapsed="false">Sets the value of an existing property or inserts it anew.</comment><header></header><code></code><translations></translations><inputs><input type="%txt">costumeProperties<options>typeOfConfiguration
typeOfData
costumeProperties
lineProperties
dimension
maxValue
startPoint</options></input><input type="%txt">thisSprite<options>thisSprite
theStage
anotherSprite</options></input><input type="%s"></input></inputs><script><block s="doDeclareVariables"><list><l>done</l><l>h</l><l>target</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>theStage</l></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>thisSprite</l></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a MathPad?"><block var="target"/></custom-block></block><script><custom-block s="report SciSnap! error %txt"><l>ERROR: target isn't configured as MathPad!</l></custom-block><block s="doStopThis"><l><option>this block</option></l></block></script></block><block s="doSetVar"><l>name</l><block s="reportListItem"><l>1</l><block s="reportTextSplit"><block var="name"/><l> </l></block></block></block><block s="doSetVar"><l>done</l><block s="reportBoolean"><l><bool>false</bool></l></block></block><block s="doSetVar"><l>h</l><block s="reportMap"><block s="reifyReporter"><script><block s="doIf"><block s="reportEquals"><block var="name"/><block s="reportListItem"><l>1</l><l/></block></block><script><block s="doReplaceInList"><l>2</l><l/><block var="value"/></block><block s="doSetVar"><l>done</l><block s="reportBoolean"><l><bool>true</bool></l></block></block></script></block><block s="doReport"><l></l></block></script><list></list></block><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block></block></block><block s="doIf"><block s="reportNot"><block var="done"/></block><script><block s="doAddToList"><block s="reportNewList"><list><block var="name"/><block var="value"/></list></block><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block></block></script></block></script></block></script></block-definition><block-definition s="set MathPad costume properties width: %'width' $nl height: %'height' color: %'r' %'g' %'b' $nl offsets: %'leftOffset' %'upperOffset' on %'sprite'" type="command" category="2. Math tools"><comment x="0" y="0" w="124.32706197102944" collapsed="false">a simple way to set some costume attributes:
1: width
2: height
3: back color red
4: back color green
5: back color blue
6: left offset for MathPad
 position on stage
7: upper offset for MathPad
 position on stage</comment><header></header><code></code><translations></translations><inputs><input type="%n">400</input><input type="%n">300</input><input type="%n">245</input><input type="%n">245</input><input type="%n">245</input><input type="%n">0</input><input type="%n">0</input><input type="%txt">thisSprite<options>thisSprite
theStage
anotherSprite</options></input></inputs><script><block s="doDeclareVariables"><list><l>target</l></list></block><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>theStage</l></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>thisSprite</l></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a MathPad?"><block var="target"/></custom-block></block><script><custom-block s="report SciSnap! error %txt"><l>ERROR: target isn't configured as MathPad!</l></custom-block><block s="doStopThis"><l><option>this block</option></l></block></script></block><custom-block s="configure sprite %s as a MathPad %br width: %n height: %n color: %n %n %n"><block var="target"/><block var="width"/><block var="height"/><block var="r"/><block var="g"/><block var="b"/></custom-block><custom-block s="set MathPadProperty %txt of %txt to %s"><l>costumeProperties</l><block var="target"/><block s="reportNewList"><list><block var="width"/><block var="height"/><block var="r"/><block var="g"/><block var="b"/><block var="leftOffset"/><block var="upperOffset"/></list></block></custom-block></script></block-definition><block-definition s="set MathPad properties lineWidth: %'lineWidth' onlyPoints? %'onlyPoints' $nl dimension: %'dimension' maxValue: %'maxValue' startPoint: %'x' %'y' %'z' $nl on %'sprite'" type="command" category="2. Math tools"><comment x="0" y="0" w="160.9937286376957" collapsed="false">a simple way to set some MathPad attributes:
1: line width
2: draw only ponts, not arrows
3: dimension of coordinate system
4: max. value on scales
5: start point of arrows</comment><header></header><code></code><translations></translations><inputs><input type="%n">1</input><input type="%b">false</input><input type="%n">3</input><input type="%n">10</input><input type="%n">0</input><input type="%n">0</input><input type="%n">0</input><input type="%txt">thisSprite<options>thisSprite
theStage
anotherSprite</options></input></inputs><script><block s="doDeclareVariables"><list><l>target</l><l>oldDimension</l><l>oldMaxValue</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>theStage</l></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>thisSprite</l></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a MathPad?"><block var="target"/></custom-block></block><script><custom-block s="report SciSnap! error %txt"><l>ERROR: target isn't configured as MathPad!</l></custom-block><block s="doStopThis"><l><option>this block</option></l></block></script></block><block s="doSetVar"><l>oldDimension</l><custom-block s="MathPadProperty %txt of %txt"><l>dimension</l><block var="target"/></custom-block></block><block s="doSetVar"><l>oldMaxValue</l><custom-block s="MathPadProperty %txt of %txt"><l>maxValue</l><block var="target"/></custom-block></block><custom-block s="set MathPadProperty %txt of %txt to %s"><l>lineProperties</l><block var="target"/><block s="reportNewList"><list><block var="lineWidth"/><block var="onlyPoints"/></list></block></custom-block><custom-block s="set MathPadProperty %txt of %txt to %s"><l>dimension</l><block var="target"/><block var="dimension"/></custom-block><custom-block s="set MathPadProperty %txt of %txt to %s"><l>maxValue</l><block var="target"/><block var="maxValue"/></custom-block><custom-block s="set MathPadProperty %txt of %txt to %s"><l>startPoint</l><block var="target"/><block s="reportNewList"><list><block var="x"/><block var="y"/><block var="z"/></list></block></custom-block><block s="doIf"><block s="reportOr"><block s="reportNotEquals"><block var="oldDimension"/><block var="dimension"/></block><block s="reportNotEquals"><block var="oldMaxValue"/><block var="maxValue"/></block></block><script><block s="doTellTo"><block var="target"/><block s="reifyScript"><script><block s="doSwitchToCostume"><custom-block s="new costume %n %n %n %n %n"><block s="reportListItem"><l>1</l><custom-block s="MathPadProperty %txt of %txt"><l>costumeProperties</l><block var="target"/></custom-block></block><block s="reportListItem"><l>2</l><custom-block s="MathPadProperty %txt of %txt"><l>costumeProperties</l><block var="target"/></custom-block></block><block s="reportListItem"><l>3</l><custom-block s="MathPadProperty %txt of %txt"><l>costumeProperties</l><block var="target"/></custom-block></block><block s="reportListItem"><l>4</l><custom-block s="MathPadProperty %txt of %txt"><l>costumeProperties</l><block var="target"/></custom-block></block><block s="reportListItem"><l>5</l><custom-block s="MathPadProperty %txt of %txt"><l>costumeProperties</l><block var="target"/></custom-block></block></custom-block></block></script><list></list></block><list></list></block><custom-block s="add centered axes to a MathPad on %txt"><block var="target"/></custom-block></script></block></script></block></script></block-definition><block-definition s="add centered axes to a MathPad on %'sprite'" type="command" category="2. Math tools"><comment x="0" y="0" w="158.49372863769608" collapsed="false">Draws axes on a MathPad in 2 or 3 dimensions.</comment><header></header><code></code><translations></translations><inputs><input type="%txt">thisSprite<options>thisSprite
theStage
anotherSprite</options></input></inputs><script><block s="doDeclareVariables"><list><l>target</l></list></block><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>theStage</l></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>thisSprite</l></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a MathPad?"><block var="target"/></custom-block></block><script><custom-block s="report SciSnap! error %txt"><l>ERROR: target isn't configured as MathPad!</l></custom-block><block s="doStopThis"><l><option>this block</option></l></block></script></block><block s="doApplyExtension"><l>SciS_mathpadaddaxes(cAttributes,type,maxValue,dimension,costume)</l><list><custom-block s="MathPadProperty %txt of %txt"><l>costumeProperties</l><block var="target"/></custom-block><custom-block s="MathPadProperty %txt of %txt"><l>typeOfData</l><block var="target"/></custom-block><custom-block s="MathPadProperty %txt of %txt"><l>maxValue</l><block var="target"/></custom-block><custom-block s="MathPadProperty %txt of %txt"><l>dimension</l><block var="target"/></custom-block><block s="reportAskFor"><block var="target"/><block s="reifyReporter"><autolambda><block s="reportGet"><l><option>costume</option></l></block></autolambda><list></list></block><list></list></block></list></block></script></block-definition><block-definition s="plot %'choice' %'data' color: %'r' %'g' %'b' $nl on MathPad %'sprite' Change startpoint? %'changeStartpoint'" type="command" category="2. Math tools"><comment x="0" y="0" w="439.1666666666663" collapsed="false">Draws a vector, complex number or object of points from the start point stored in the properties.</comment><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true">vector<options>vector
complex-number
line-to
object-of</options></input><input type="%l"></input><input type="%n">255</input><input type="%n">0</input><input type="%n">0</input><input type="%txt">thisSprite<options>thisSprite
theStage
anotherSprite</options></input><input type="%b">false</input></inputs><script><block s="doWarp"><script><block s="doDeclareVariables"><list><l>oldStartPoint</l><l>i</l><l>target</l></list></block><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>theStage</l></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>thisSprite</l></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a MathPad?"><block var="target"/></custom-block></block><script><custom-block s="report SciSnap! error %txt"><l>ERROR: target isn't configured as MathPad!</l></custom-block><block s="doStopThis"><l><option>this block</option></l></block></script></block><block s="doIf"><block s="reportNot"><block s="reportIsA"><block var="data"/><l><option>list</option></l></block></block><script><custom-block s="report SciSnap! error %txt"><l>ERROR: pointlist required!</l></custom-block><block s="doStopThis"><l><option>this block</option></l></block></script></block><block s="doSetVar"><l>data</l><custom-block s="copy of %l"><block var="data"/></custom-block></block><block s="doIf"><block s="reportEquals"><block var="choice"/><l>object-of</l></block><script><block s="doIf"><block s="reportLessThanOrEquals"><block s="reportListAttribute"><l><option>length</option></l><block var="data"/></block><l>1</l></block><script><custom-block s="report SciSnap! error %txt"><l>ERROR: at least two points necessary!</l></custom-block><block s="doStopThis"><l><option>this block</option></l></block></script></block><block s="doIf"><block s="reportNot"><block s="reportEquals"><custom-block s="MathPadProperty %txt of %txt"><l>dimension</l><block var="target"/></custom-block><block s="reportListAttribute"><l><option>length</option></l><block s="reportListItem"><l>1</l><block var="data"/></block></block></block></block><script><custom-block s="report SciSnap! error %txt"><l>ERROR: wrong dimension!</l></custom-block><block s="doStopThis"><l><option>this block</option></l></block></script></block><block s="doTellTo"><block var="target"/><block s="reifyScript"><script><block s="doSwitchToCostume"><l></l></block></script><list></list></block><list><block s="reportApplyExtension"><l>SciS_mathpadplot(costume,data,r,g,b,maxValue,linewidth,dimension,onlypoints,cAttributes,startpoint,choice)</l><list><block s="reportAskFor"><block var="target"/><block s="reifyReporter"><autolambda><block s="reportGet"><l><option>costume</option></l></block></autolambda><list></list></block><list></list></block><block var="data"/><block var="r"/><block var="g"/><block var="b"/><custom-block s="MathPadProperty %txt of %txt"><l>maxValue</l><block var="target"/></custom-block><block s="reportListItem"><l>1</l><custom-block s="MathPadProperty %txt of %txt"><l>lineProperties</l><block var="target"/></custom-block></block><custom-block s="MathPadProperty %txt of %txt"><l>dimension</l><block var="target"/></custom-block><block s="reportListItem"><l>2</l><custom-block s="MathPadProperty %txt of %txt"><l>lineProperties</l><block var="target"/></custom-block></block><custom-block s="MathPadProperty %txt of %txt"><l>costumeProperties</l><block var="target"/></custom-block><custom-block s="MathPadProperty %txt of %txt"><l>startPoint</l><block var="target"/></custom-block><block var="choice"/></list></block></list></block><block s="doStopThis"><l><option>this block</option></l></block></script></block><block s="doIf"><block s="reportEquals"><block var="choice"/><l>complex-number</l></block><script><block s="doIfElse"><block s="reportNot"><block s="reportOr"><block s="reportEquals"><block s="reportListItem"><l>1</l><block var="data"/></block><l>complexNumberCartesianStyle</l></block><block s="reportEquals"><block s="reportListItem"><l>1</l><block var="data"/></block><l>complexNumberPolarStyle</l></block></block></block><script><custom-block s="report SciSnap! error %txt"><l>ERROR: complex number required!</l></custom-block><block s="doStopThis"><l><option>this block</option></l></block></script><script><block s="doIf"><block s="reportEquals"><block s="reportListItem"><l>1</l><block var="data"/></block><l>complexNumberPolarStyle</l></block><script><block s="doSetVar"><l>data</l><block s="reportNewList"><list><l>complexNumberCartesianStyle</l><block s="reportVariadicProduct"><list><block s="reportListItem"><l>2</l><block var="data"/></block><block s="reportMonadic"><l><option>cos</option></l><block s="reportListItem"><l>3</l><block var="data"/></block></block></list></block><block s="reportVariadicProduct"><list><block s="reportListItem"><l>2</l><block var="data"/></block><block s="reportMonadic"><l><option>sin</option></l><block s="reportListItem"><l>3</l><block var="data"/></block></block></list></block></list></block></block></script></block><block s="doSetVar"><l>data</l><block s="reportNewList"><list><block s="reportListItem"><l>2</l><block var="data"/></block><block s="reportListItem"><l>3</l><block var="data"/></block></list></block></block></script></block></script></block><block s="doIf"><block s="reportNot"><block s="reportEquals"><custom-block s="MathPadProperty %txt of %txt"><l>dimension</l><block var="target"/></custom-block><block s="reportListAttribute"><l><option>length</option></l><block var="data"/></block></block></block><script><custom-block s="report SciSnap! error %txt"><l>ERROR: wrong dimension!ROR: complex number required!</l></custom-block><block s="doStopThis"><l><option>this block</option></l></block></script></block><block s="doTellTo"><block var="target"/><block s="reifyScript"><script><block s="doSwitchToCostume"><l></l></block></script><list></list></block><list><block s="reportApplyExtension"><l>SciS_mathpadplot(costume,data,r,g,b,maxValue,linewidth,dimension,onlypoints,cAttributes,startpoint,choice)</l><list><block s="reportAskFor"><block var="target"/><block s="reifyReporter"><autolambda><block s="reportGet"><l><option>costume</option></l></block></autolambda><list></list></block><list></list></block><block var="data"/><block var="r"/><block var="g"/><block var="b"/><custom-block s="MathPadProperty %txt of %txt"><l>maxValue</l><block var="target"/></custom-block><block s="reportListItem"><l>1</l><custom-block s="MathPadProperty %txt of %txt"><l>lineProperties</l><block var="target"/></custom-block></block><custom-block s="MathPadProperty %txt of %txt"><l>dimension</l><block var="target"/></custom-block><block s="reportListItem"><l>2</l><custom-block s="MathPadProperty %txt of %txt"><l>lineProperties</l><block var="target"/></custom-block></block><custom-block s="MathPadProperty %txt of %txt"><l>costumeProperties</l><block var="target"/></custom-block><custom-block s="MathPadProperty %txt of %txt"><l>startPoint</l><block var="target"/></custom-block><block var="choice"/></list></block></list></block><block s="doIf"><block var="changeStartpoint"/><script><custom-block s="set MathPadProperty %txt of %txt to %s"><l>startPoint</l><block var="target"/><block var="data"/></custom-block></script></block></script></block></script></block-definition><block-definition s="MathPad Example 1: vektor addition" type="command" category="2. Math tools"><header></header><code></code><translations></translations><inputs></inputs><script><custom-block s="configure sprite %s as a MathPad %br width: %n height: %n color: %n %n %n"><l>thisSprite</l><l>400</l><l>300</l><l>245</l><l>245</l><l>245</l></custom-block><custom-block s="plot %s %l color: %n %n %n %br on MathPad %txt Change startpoint? %b"><l>vector</l><custom-block s="linear operation %s %s %s"><custom-block s="vector %mult%n"><list><l>3</l><l>4</l><l>0</l></list></custom-block><l>+</l><custom-block s="vector %mult%n"><list><l>-5</l><l>0</l><l>4</l></list></custom-block></custom-block><l>255</l><l>0</l><l>0</l><l>thisSprite</l><l><bool>false</bool></l></custom-block><custom-block s="plot %s %l color: %n %n %n %br on MathPad %txt Change startpoint? %b"><l>vector</l><custom-block s="vector %mult%n"><list><l>3</l><l>4</l><l>0</l></list></custom-block><l>0</l><l>0</l><l>255</l><l>thisSprite</l><l><bool>true</bool></l></custom-block><custom-block s="plot %s %l color: %n %n %n %br on MathPad %txt Change startpoint? %b"><l>vector</l><custom-block s="vector %mult%n"><list><l>-5</l><l>0</l><l>4</l></list></custom-block><l>0</l><l>255</l><l>0</l><l>thisSprite</l><l><bool>true</bool></l></custom-block></script></block-definition><block-definition s="MathPad Example 2: affine transformation" type="command" category="2. Math tools"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doDeclareVariables"><list><l>triangle</l><l>image</l><l>sourcePoints</l><l>targetPoints</l></list></block><block s="doSetVar"><l>triangle</l><block s="reportNewList"><list><block s="reportNewList"><list><l>0</l><l>0</l></list></block><block s="reportNewList"><list><l>8</l><l>1</l></list></block><block s="reportNewList"><list><l>2</l><l>5</l></list></block></list></block></block><block s="doSetVar"><l>sourcePoints</l><block s="reportNewList"><list><block s="reportNewList"><list><l>0</l><l>0</l></list></block><block s="reportNewList"><list><l>0</l><l>1</l></list></block><block s="reportNewList"><list><l>1</l><l>0</l></list></block></list></block></block><block s="doSetVar"><l>targetPoints</l><block s="reportNewList"><list><block s="reportNewList"><list><l>0</l><l>0</l></list></block><block s="reportNewList"><list><l>0</l><l>-1</l></list></block><block s="reportNewList"><list><l>-1</l><l>0</l></list></block></list></block></block><custom-block s="configure sprite %s as a MathPad %br width: %n height: %n color: %n %n %n"><l>thisSprite</l><l>500</l><l>400</l><l>245</l><l>245</l><l>245</l></custom-block><custom-block s="set MathPad properties lineWidth: %n onlyPoints? %b %br dimension: %n maxValue: %n startPoint: %n %n %n %br on %txt"><l>2</l><l><bool>false</bool></l><l>2</l><l>10</l><l>0</l><l>0</l><l>0</l><l>thisSprite</l></custom-block><custom-block s="plot %s %l color: %n %n %n %br on MathPad %txt Change startpoint? %b"><l>object-of</l><block var="triangle"/><l>255</l><l>0</l><l>0</l><l>thisSprite</l><l><bool>false</bool></l></custom-block><block s="doSetVar"><l>image</l><custom-block s="affine transformation of %l %br by %l --> %l for MathPad"><block var="triangle"/><block var="sourcePoints"/><block var="targetPoints"/></custom-block></block><custom-block s="plot %s %l color: %n %n %n %br on MathPad %txt Change startpoint? %b"><l>object-of</l><block var="image"/><l>0</l><l>0</l><l>255</l><l>thisSprite</l><l><bool>false</bool></l></custom-block></script></block-definition><block-definition s="root of %'term' $nl starting at %'x0' by Newton´s method" type="reporter" category="2. Math tools"><comment x="0" y="0" w="170.16666666666697" collapsed="false">Returns a root of an equation calculated with Newton's method.</comment><header></header><code></code><translations></translations><inputs><input type="%repRing">ringified term</input><input type="%n">1</input></inputs><script><block s="doDeclareVariables"><list><l>epsilon</l><l>i</l><l>f</l></list></block><block s="doWarp"><script><block s="doIf"><block s="reportNot"><block s="reportIsA"><block var="term"/><l><option>reporter</option></l></block></block><script><block s="doReport"><l>ERROR: ringified term required!</l></block></script></block><block s="doSetVar"><l>epsilon</l><l>0.00001</l></block><block s="doSetVar"><l>f</l><block s="evaluate"><block var="term"/><list><block var="x0"/></list></block></block><block s="doSetVar"><l>i</l><l>1</l></block><block s="doUntil"><block s="reportOr"><block s="reportGreaterThan"><block var="i"/><l>1000</l></block><block s="reportLessThan"><block s="reportMonadic"><l><option>abs</option></l><block var="f"/></block><block s="reportVariadicProduct"><list><block var="epsilon"/><block var="epsilon"/></list></block></block></block><script><block s="doChangeVar"><l>x0</l><block s="reportQuotient"><block s="reportVariadicProduct"><list><block var="f"/><block var="epsilon"/></list></block><block s="reportDifference"><block var="f"/><block s="evaluate"><block var="term"/><list><block s="reportVariadicSum"><list><block var="x0"/><block var="epsilon"/></list></block></list></block></block></block></block><block s="doSetVar"><l>f</l><block s="evaluate"><block var="term"/><list><block var="x0"/></list></block></block><block s="doChangeVar"><l>i</l><l>1</l></block></script></block><block s="doIfElse"><block s="reportGreaterThan"><block var="i"/><l>1000</l></block><script><block s="doReport"><l>ERROR: no root found!</l></block></script><script><block s="doReport"><block var="x0"/></block></script></block></script></block></script></block-definition><block-definition s="sequence element %'term' ( %'n' )" type="reporter" category="2. Math tools"><comment x="0" y="0" w="170" collapsed="false">Reports an element of a sequence.</comment><header></header><code></code><translations></translations><inputs><input type="%repRing">ringified term</input><input type="%n">1</input></inputs><script><block s="doIf"><block s="reportNot"><block s="reportIsA"><block var="term"/><l><option>reporter</option></l></block></block><script><block s="doReport"><l>ERROR: ringified term required!</l></block></script></block><block s="doReport"><block s="evaluate"><block var="term"/><list><block var="n"/></list></block></block></script></block-definition><block-definition s="first %'n' elements of sequence %'term'" type="reporter" category="2. Math tools"><comment x="0" y="0" w="236.66666666666669" collapsed="false">Returns a list of the n first elements of a sequence.</comment><header></header><code></code><translations></translations><inputs><input type="%n">1</input><input type="%repRing">ringified term</input></inputs><script><block s="doDeclareVariables"><list><l>result</l><l>i</l></list></block><block s="doWarp"><script><block s="doIf"><block s="reportNot"><block s="reportIsA"><block var="term"/><l><option>reporter</option></l></block></block><script><block s="doReport"><l>ERROR: ringified term required!</l></block></script></block><block s="doSetVar"><l>result</l><block s="reportNewList"><list></list></block></block><block s="doSetVar"><l>i</l><l>1</l></block><block s="doUntil"><block s="reportGreaterThan"><block var="i"/><block var="n"/></block><script><block s="doAddToList"><block s="evaluate"><block var="term"/><list><block var="i"/></list></block><block var="result"/></block><block s="doChangeVar"><l>i</l><l>1</l></block></script></block><block s="doReport"><block var="result"/></block></script></block></script></block-definition><block-definition s="sequence of secant slopes for %'term' $nl at %'x0' calculated with sequence %'sequence'" type="reporter" category="2. Math tools"><comment x="0" y="0" w="315" collapsed="false">Returns a list of secant slopes calculated with the given sequence.</comment><header></header><code></code><translations></translations><inputs><input type="%repRing">ringified term</input><input type="%n">2</input><input type="%s">1/n</input></inputs><script><block s="doDeclareVariables"><list><l>result</l><l>i</l></list></block><block s="doWarp"><script><block s="doIf"><block s="reportNot"><block s="reportIsA"><block var="term"/><l><option>reporter</option></l></block></block><script><block s="doReport"><l>ERROR: ringified term required!</l></block></script></block><block s="doIf"><block s="reportIsA"><block var="sequence"/><l><option>text</option></l></block><script><block s="doSetVar"><l>sequence</l><custom-block s="first %n elements of sequence %repRing"><l>100</l><block s="reifyReporter"><autolambda><block s="reportQuotient"><l>1</l><l></l></block></autolambda><list></list></block></custom-block></block></script></block><block s="doSetVar"><l>result</l><block s="reportNewList"><list></list></block></block><block s="doSetVar"><l>i</l><l>1</l></block><block s="doUntil"><block s="reportGreaterThan"><block var="i"/><block s="reportListAttribute"><l><option>length</option></l><block var="sequence"/></block></block><script><block s="doAddToList"><block s="reportQuotient"><block s="reportDifference"><block s="evaluate"><block var="term"/><list><block s="reportVariadicSum"><list><block var="x0"/><block s="reportListItem"><block var="i"/><block var="sequence"/></block></list></block></list></block><block s="evaluate"><block var="term"/><list><block var="x0"/></list></block></block><block s="reportListItem"><block var="i"/><block var="sequence"/></block></block><block var="result"/></block><block s="doChangeVar"><l>i</l><l>1</l></block></script></block><block s="doReport"><block var="result"/></block></script></block></script></block-definition><block-definition s="derivative %'term' ´( %'x' )" type="reporter" category="2. Math tools"><comment x="0" y="0" w="232.5" collapsed="false">Reports the secant slope "nearby" the given point.</comment><header></header><code></code><translations></translations><inputs><input type="%repRing">ringified term</input><input type="%n">1</input></inputs><script><block s="doDeclareVariables"><list><l>epsilon</l></list></block><block s="doWarp"><script><block s="doIf"><block s="reportNot"><block s="reportIsA"><block var="term"/><l><option>reporter</option></l></block></block><script><block s="doReport"><l>ERROR: ringified term required!</l></block></script></block><block s="doSetVar"><l>epsilon</l><l>0.00001</l></block><block s="doReport"><block s="reportQuotient"><block s="reportDifference"><block s="evaluate"><block var="term"/><list><block s="reportVariadicSum"><list><block var="x"/><block var="epsilon"/></list></block></list></block><block s="evaluate"><block var="term"/><list><block var="x"/></list></block></block><block var="epsilon"/></block></block></script></block></script></block-definition><block-definition s="%'n' $nl ∑ %'term' $nl %'i' = %'i0'" type="reporter" category="2. Math tools"><comment x="0" y="0" w="106.6666666666667" collapsed="false">Returns a finite sum.</comment><header></header><code></code><translations></translations><inputs><input type="%n">10</input><input type="%repRing">ringified term</input><input type="%upvar">1</input><input type="%n">0</input></inputs><script><block s="doDeclareVariables"><list><l>result</l></list></block><block s="doWarp"><script><block s="doIf"><block s="reportNot"><block s="reportIsA"><block var="term"/><l><option>reporter</option></l></block></block><script><block s="doReport"><l>ERROR: ringified term required!</l></block></script></block><block s="doSetVar"><l>result</l><l>0</l></block><block s="doSetVar"><l>i</l><block var="i0"/></block><block s="doUntil"><block s="reportGreaterThan"><block var="i"/><block var="n"/></block><script><block s="doSetVar"><l>result</l><block s="reportVariadicSum"><list><block var="result"/><block s="evaluate"><block var="term"/><list><block var="i"/></list></block></list></block></block><block s="doChangeVar"><l>i</l><l>1</l></block></script></block><block s="doReport"><block var="result"/></block></script></block></script></block-definition><block-definition s="%'b' $nl ∫ %'term' dx $nl %'a' $nl calculated with %'n' intervals" type="reporter" category="2. Math tools"><comment x="0" y="0" w="160.5" collapsed="false">Returns the integral of a term calculated with n trapezoids.</comment><header></header><code></code><translations></translations><inputs><input type="%n">2</input><input type="%repRing">ringified term</input><input type="%n">1</input><input type="%n">100</input></inputs><script><block s="doDeclareVariables"><list><l>result</l><l>dx</l><l>x1</l><l>x2</l></list></block><block s="doWarp"><script><block s="doIf"><block s="reportNot"><block s="reportIsA"><block var="term"/><l><option>reporter</option></l></block></block><script><block s="doReport"><l>ERROR: ringified term required!</l></block></script></block><block s="doIf"><block s="reportEquals"><block var="a"/><block var="b"/></block><script><block s="doReport"><l>0</l></block></script></block><block s="doIf"><block s="reportEquals"><block var="n"/><l>0</l></block><script><block s="doReport"><l>ERROR: impossible!</l></block></script></block><block s="doSetVar"><l>result</l><l>0</l></block><block s="doSetVar"><l>dx</l><block s="reportQuotient"><block s="reportDifference"><block var="b"/><block var="a"/></block><block var="n"/></block></block><block s="doSetVar"><l>x1</l><block var="a"/></block><block s="doRepeat"><block var="n"/><script><block s="doSetVar"><l>x2</l><block s="reportVariadicSum"><list><block var="x1"/><block var="dx"/></list></block></block><block s="doChangeVar"><l>result</l><block s="reportVariadicProduct"><list><block s="reportQuotient"><block s="reportVariadicSum"><list><block s="evaluate"><block var="term"/><list><block var="x2"/></list></block><block s="evaluate"><block var="term"/><list><block var="x1"/></list></block></list></block><l>2</l></block><block var="dx"/></list></block></block><block s="doSetVar"><l>x1</l><block var="x2"/></block></script></block><block s="doReport"><block var="result"/></block></script></block></script></block-definition><block-definition s="%'function' of %'data' sampled with %'f' Hz" type="reporter" category="2. Math tools"><comment x="0" y="0" w="398" collapsed="false">Reports either 
- data Fourier transformed to frequency-space
- "raw" FFT (Fast Forier Transformation)data formatted as SciSnap! complex numbers
- or iFFT real data</comment><header></header><code></code><translations></translations><inputs><input type="%txt" readonly="true">frequency_spectrum<options>frequency_spectrum
complex_FFTdata
iFFT_of_FFTdata</options></input><input type="%l"></input><input type="%n">100</input></inputs><script><block s="doIf"><block s="reportLessThan"><block s="reportListAttribute"><l><option>length</option></l><block var="data"/></block><l>1</l></block><script><block s="doReport"><l>ERROR: no data available!</l></block></script></block><block s="doIfElse"><block s="reportEquals"><block var="function"/><l>iFFT_of_FFTdata</l></block><script><block s="doIf"><block s="reportNot"><custom-block s="is %s a %txt"><block var="data"/><l>matrix</l></custom-block></block><script><block s="doReport"><l>ERROR: complex data required!</l></block></script></block></script><script><block s="doIf"><block s="reportNot"><custom-block s="is %s a %txt"><block var="data"/><l>vector</l></custom-block></block><script><block s="doReport"><l>ERROR: vector required!</l></block></script></block></script></block><block s="doReport"><block s="evaluate"><block s="reifyReporter"><autolambda><block s="reportApplyExtension"><l>SciS_FFTops(data,freq,choice)</l><list></list></block></autolambda><list></list></block><list><custom-block s="copy of %l"><block var="data"/></custom-block><block var="f"/><block var="function"/></list></block></block></script></block-definition><block-definition s="b(N= %'N' p= %'p' k= %'k' )" type="reporter" category="2. Math tools"><comment x="0" y="0" w="400.46899739583336" collapsed="false">Reports coefficient of the binomial distribution b(N,p,k)=(N choose k)*p^k(1-p)^(N-k)</comment><header></header><code></code><translations></translations><inputs><input type="%n">10</input><input type="%n">0.1</input><input type="%n">2</input></inputs><script><block s="doWarp"><script><block s="doIf"><block s="reportAnd"><block s="reportAnd"><block s="reportLessThanOrEquals"><l>0</l><block var="k"/></block><block s="reportLessThanOrEquals"><block var="k"/><block var="N"/></block></block><block s="reportAnd"><block s="reportLessThanOrEquals"><l>0</l><block var="p"/></block><block s="reportLessThanOrEquals"><block var="p"/><l>1</l></block></block></block><script><block s="doReport"><block s="reportVariadicProduct"><list><custom-block s="( %n ) %br ( %n )"><block var="N"/><block var="k"/></custom-block><block s="reportVariadicProduct"><list><block s="reportPower"><block var="p"/><block var="k"/></block><block s="reportPower"><block s="reportDifference"><l>1</l><block var="p"/></block><block s="reportDifference"><block var="N"/><block var="k"/></block></block></list></block></list></block></block></script></block><block s="doReport"><l>ERROR: wrong parameter!</l></block></script></block></script></block-definition><block-definition s="B x= %'x' (N= %'N' p= %'p' )" type="reporter" category="2. Math tools"><comment x="0" y="0" w="189.1666666666667" collapsed="false">Reports binomial distribution B(N,p,k).</comment><header></header><code></code><translations></translations><inputs><input type="%n">1</input><input type="%n">10</input><input type="%n">0.1</input></inputs><script><block s="doDeclareVariables"><list><l>result</l><l>k</l></list></block><block s="doWarp"><script><block s="doIf"><block s="reportAnd"><block s="reportAnd"><block s="reportLessThanOrEquals"><l>0</l><block var="x"/></block><block s="reportLessThanOrEquals"><block var="x"/><block var="N"/></block></block><block s="reportAnd"><block s="reportLessThanOrEquals"><l>0</l><block var="p"/></block><block s="reportLessThanOrEquals"><block var="p"/><l>1</l></block></block></block><script><block s="doSetVar"><l>result</l><l>0</l></block><block s="doSetVar"><l>k</l><l>0</l></block><block s="doUntil"><block s="reportGreaterThan"><block var="k"/><block var="x"/></block><script><block s="doChangeVar"><l>result</l><block s="reportVariadicProduct"><list><custom-block s="( %n ) %br ( %n )"><block var="N"/><block var="k"/></custom-block><block s="reportVariadicProduct"><list><block s="reportPower"><block var="p"/><block var="k"/></block><block s="reportPower"><block s="reportDifference"><l>1</l><block var="p"/></block><block s="reportDifference"><block var="N"/><block var="k"/></block></block></list></block></list></block></block><block s="doChangeVar"><l>k</l><l>1</l></block></script></block><block s="doReport"><block var="result"/></block></script></block><block s="doReport"><l>ERROR: wrong parameter!</l></block></script></block></script></block-definition><block-definition s="h(N= %'N' M= %'M' n= %'n' k= %'k' )" type="reporter" category="2. Math tools"><comment x="0" y="0" w="254.6356640624998" collapsed="false">Reports coefficient of the hypergeometric distribution.</comment><header></header><code></code><translations></translations><inputs><input type="%n">10</input><input type="%n">3</input><input type="%n">5</input><input type="%n">2</input></inputs><script><block s="doWarp"><script><block s="doIf"><block s="reportAnd"><block s="reportAnd"><block s="reportAnd"><block s="reportLessThanOrEquals"><l>0</l><block var="M"/></block><block s="reportLessThanOrEquals"><block var="M"/><block var="N"/></block></block><block s="reportAnd"><block s="reportLessThanOrEquals"><l>0</l><block var="n"/></block><block s="reportLessThanOrEquals"><block var="n"/><block var="N"/></block></block></block><block s="reportAnd"><block s="reportLessThanOrEquals"><l>0</l><block var="k"/></block><block s="reportLessThanOrEquals"><block var="k"/><block var="n"/></block></block></block><script><block s="doReport"><block s="reportQuotient"><block s="reportVariadicProduct"><list><custom-block s="( %n ) %br ( %n )"><block var="M"/><block var="k"/></custom-block><custom-block s="( %n ) %br ( %n )"><block s="reportDifference"><block var="N"/><block var="M"/></block><block s="reportDifference"><block var="n"/><block var="k"/></block></custom-block></list></block><custom-block s="( %n ) %br ( %n )"><block var="N"/><block var="n"/></custom-block></block></block></script></block><block s="doReport"><l>ERROR: wrong parameter!</l></block></script></block></script></block-definition><block-definition s="H x= %'x' (N= %'N' M= %'M' n= %'n' )" type="reporter" category="2. Math tools"><comment x="0" y="0" w="170.83333333333334" collapsed="false">Reports hypergeometric distribution.</comment><header></header><code></code><translations></translations><inputs><input type="%n">1</input><input type="%n">10</input><input type="%n">3</input><input type="%n">5</input></inputs><script><block s="doDeclareVariables"><list><l>result</l><l>k</l></list></block><block s="doWarp"><script><block s="doIf"><block s="reportAnd"><block s="reportAnd"><block s="reportAnd"><block s="reportLessThanOrEquals"><l>0</l><block var="x"/></block><block s="reportLessThanOrEquals"><block var="x"/><block var="N"/></block></block><block s="reportAnd"><block s="reportLessThanOrEquals"><l>0</l><block var="M"/></block><block s="reportLessThanOrEquals"><block var="M"/><block var="N"/></block></block></block><block s="reportAnd"><block s="reportLessThanOrEquals"><l>0</l><block var="n"/></block><block s="reportLessThanOrEquals"><block var="n"/><block var="N"/></block></block></block><script><block s="doSetVar"><l>result</l><l>0</l></block><block s="doSetVar"><l>k</l><l>0</l></block><block s="doUntil"><block s="reportGreaterThan"><block var="k"/><block var="x"/></block><script><block s="doChangeVar"><l>result</l><block s="reportQuotient"><block s="reportVariadicProduct"><list><custom-block s="( %n ) %br ( %n )"><block var="M"/><block var="k"/></custom-block><custom-block s="( %n ) %br ( %n )"><block s="reportDifference"><block var="N"/><block var="M"/></block><block s="reportDifference"><block var="n"/><block var="k"/></block></custom-block></list></block><custom-block s="( %n ) %br ( %n )"><block var="N"/><block var="n"/></custom-block></block></block><block s="doChangeVar"><l>k</l><l>1</l></block></script></block><block s="doReport"><block var="result"/></block></script></block><block s="doReport"><l>ERROR: wrong parameter!</l></block></script></block></script></block-definition><block-definition s="p(θ= %'theta' k= %'k' )" type="reporter" category="2. Math tools"><comment x="0" y="0" w="212.96899739583327" collapsed="false">Reports coefficient of the Poisson distribution.</comment><header></header><code></code><translations></translations><inputs><input type="%n">0.05</input><input type="%n">2</input></inputs><script><block s="doWarp"><script><block s="doIf"><block s="reportAnd"><block s="reportLessThanOrEquals"><l>0</l><block var="theta"/></block><block s="reportLessThanOrEquals"><l>0</l><block var="k"/></block></block><script><block s="doReport"><block s="reportQuotient"><block s="reportVariadicProduct"><list><block s="reportPower"><block var="theta"/><block var="k"/></block><block s="reportMonadic"><l><option>e^</option></l><block s="reportMonadic"><l><option>neg</option></l><block var="theta"/></block></block></list></block><custom-block s="%n !"><block var="k"/></custom-block></block></block></script></block><block s="doReport"><l>ERROR: wrong parameter!</l></block></script></block></script></block-definition><block-definition s="P x= %'x' p(θ= %'theta' )" type="reporter" category="2. Math tools"><comment x="0" y="0" w="140.83333333333334" collapsed="false">Reports Poisson distribution.</comment><header></header><code></code><translations></translations><inputs><input type="%n">2</input><input type="%n">0.05</input></inputs><script><block s="doDeclareVariables"><list><l>result</l><l>k</l></list></block><block s="doWarp"><script><block s="doIf"><block s="reportAnd"><block s="reportLessThanOrEquals"><l>0</l><block var="x"/></block><block s="reportLessThanOrEquals"><l>0</l><block var="theta"/></block></block><script><block s="doSetVar"><l>result</l><l>0</l></block><block s="doSetVar"><l>k</l><l>0</l></block><block s="doUntil"><block s="reportGreaterThan"><block var="k"/><block var="x"/></block><script><block s="doChangeVar"><l>result</l><block s="reportQuotient"><block s="reportVariadicProduct"><list><block s="reportPower"><block var="theta"/><block var="k"/></block><block s="reportMonadic"><l><option>e^</option></l><block s="reportMonadic"><l><option>neg</option></l><block var="theta"/></block></block></list></block><custom-block s="%n !"><block var="k"/></custom-block></block></block><block s="doChangeVar"><l>k</l><l>1</l></block></script></block><block s="doReport"><block var="result"/></block></script></block><block s="doReport"><l>ERROR: wrong parameter!</l></block></script></block></script></block-definition><block-definition s="pareto (xmin= %'xmin' k= %'k' x= %'x' )" type="reporter" category="2. Math tools"><comment x="0" y="0" w="205.63566406250004" collapsed="false">Reports coefficient of the Pareto distribution.</comment><header></header><code></code><translations></translations><inputs><input type="%n">1</input><input type="%n">3</input><input type="%n">2</input></inputs><script><block s="doIfElse"><block s="reportLessThan"><block var="x"/><block var="xmin"/></block><script><block s="doReport"><l>0</l></block></script><script><block s="doReport"><block s="reportQuotient"><block s="reportVariadicProduct"><list><block var="k"/><block s="reportPower"><block var="xmin"/><block var="k"/></block></list></block><block s="reportPower"><block var="x"/><block s="reportVariadicSum"><list><block var="k"/><l>1</l></list></block></block></block></block></script></block></script></block-definition><block-definition s="n (x= %'x' μ= %'mue' σ= %'sigma' )" type="reporter" category="2. Math tools"><comment x="0" y="0" w="214.16666666666669" collapsed="false">Reports coefficient of the normal distribution.</comment><header></header><code></code><translations></translations><inputs><input type="%n">1</input><input type="%n">0</input><input type="%n">1</input></inputs><script><block s="doReport"><block s="reportQuotient"><block s="reportMonadic"><l><option>e^</option></l><block s="reportVariadicProduct"><list><l>-0.5</l><block s="reportPower"><block s="reportQuotient"><block s="reportDifference"><block var="x"/><block var="mue"/></block><block var="sigma"/></block><l>2</l></block></list></block></block><block s="reportVariadicProduct"><list><block s="reportMonadic"><l><option>sqrt</option></l><block s="reportVariadicProduct"><list><l>2</l><custom-block s="π"></custom-block></list></block></block><block var="sigma"/></list></block></block></block></script></block-definition><block-definition s="𝜙" type="reporter" category="2. Math tools"><comment x="0" y="0" w="90" collapsed="false">The empty set.</comment><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><custom-block s="set of { %mult%s }"><list></list></custom-block></block></script></block-definition><block-definition s="|R" type="reporter" category="2. Math tools"><comment x="0" y="0" w="148.0769230769232" collapsed="false">The real (computer-) numbers.</comment><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><custom-block s="set of {x| %n %txt x %s %s }"><l>-Infinity</l><l>≤</l><l>≤</l><l>Infinity</l></custom-block></block></script></block-definition><block-definition s="set of { %'elements' }" type="reporter" category="2. Math tools"><comment x="0" y="0" w="176.6738932291671" collapsed="false">Returns a set by listing the elements, predicates, and defined intervals. 
The sequence is: 
set
isNumerical
list of elements
list of intervals
predicate.</comment><header></header><code></code><translations></translations><inputs><input type="%mult%s"></input></inputs><script><block s="doWarp"><script><block s="doIfElse"><block s="reportIsA"><block var="elements"/><l><option>list</option></l></block><script><block s="doReport"><block s="reportNewList"><list><l>set</l><custom-block s="is %s a %txt"><block var="elements"/><l>numericalList</l></custom-block><custom-block s="%s without duplicates"><block var="elements"/></custom-block><block s="reportNewList"><list></list></block><l></l></list></block></block></script><script><block s="doReport"><l>ERROR: a list of elements required!</l></block></script></block></script></block></script></block-definition><block-definition s="set of {x| %'predicate' }" type="reporter" category="2. Math tools"><comment x="0" y="0" w="203.64402043269226" collapsed="false">Creation of a set by a predicate. 
Intervals and elements should be defined by another block. If possible the predicate is translated to a list of intervals.
The sequence is: 
set
isNumerical
list of elements
list of intervals
predicate.</comment><header></header><code></code><translations></translations><inputs><input type="%repRing">ringified predicate</input></inputs><script><block s="doWarp"><script><block s="doDeclareVariables"><list><l>predicateTree</l></list></block><block s="doIf"><block s="reportNot"><block s="reportIsA"><block var="predicate"/><l><option>predicate</option></l></block></block><script><block s="doReport"><l>ERROR: parameter is not a predicate!</l></block></script></block><block s="doSetVar"><l>predicateTree</l><block s="reportTextSplit"><block var="predicate"/><l><option>blocks</option></l></block></block><block s="doIf"><custom-block s="is %l translatable to intervals?"><block var="predicateTree"/></custom-block><script><block s="doReport"><block s="reportNewList"><list><l>set</l><block s="reportBoolean"><l><bool>true</bool></l></block><block s="reportNewList"><list></list></block><custom-block s="predicate tree %l $arrowRightThin list of intervals"><block var="predicateTree"/></custom-block><l></l></list></block></block></script></block><block s="doReport"><l>ERROR: pure predicate sets are not supported yet.</l></block></script></block></script></block-definition><block-definition s="set of {x| %'leftLimit' %'op1' x %'op2' %'rightLimit' }" type="reporter" category="2. Math tools"><comment x="0" y="0" w="188.05427684294867" collapsed="false">Returns a set with one numerical interval.
The sequence is: 
set
isNumerical
list of elements
list of intervals
predicate.</comment><header></header><code></code><translations></translations><inputs><input type="%n">-Infinity<options>-Infinity</options></input><input type="%txt" readonly="true">≤<options>≤
<</options></input><input type="%s" readonly="true">≤<options>≤
<</options></input><input type="%s">Infinity<options>Infinity</options></input></inputs><script><block s="doWarp"><script><block s="doIf"><block s="reportNot"><block s="reportAnd"><block s="reportAnd"><block s="reportIsA"><block var="leftLimit"/><l><option>number</option></l></block><block s="reportIsA"><block var="rightLimit"/><l><option>number</option></l></block></block><block s="reportLessThanOrEquals"><block var="leftLimit"/><block var="rightLimit"/></block></block></block><script><block s="doReport"><l>ERROR: that defines no interval!</l></block></script></block><block s="doReport"><block s="reportNewList"><list><l>set</l><block s="reportBoolean"><l><bool>true</bool></l></block><block s="reportNewList"><list></list></block><block s="reportNewList"><list><block s="reportNewList"><list><block var="leftLimit"/><block var="op1"/><block var="op2"/><block var="rightLimit"/></list></block></list></block><l></l></list></block></block></script></block></script></block-definition><block-definition s="%'element' ε %'set' ?" type="predicate" category="2. Math tools"><comment x="0" y="0" w="223.57142857142858" collapsed="false">Reports whether "element" is element of "set".</comment><header></header><code></code><translations></translations><inputs><input type="%s">element</input><input type="%s">set</input></inputs><script><block s="doWarp"><script><block s="doIf"><block s="reportNot"><custom-block s="is %s a %txt"><block var="set"/><l>set</l></custom-block></block><script><block s="doReport"><l>ERROR: second parameter is not a set!</l></block></script></block><block s="doIf"><block s="reportNot"><block s="reportEquals"><block s="reportListItem"><l>4</l><block var="set"/></block><block s="reportNewList"><list></list></block></block></block><script><block s="doIf"><custom-block s="evaluate intervals %l with %s"><block s="reportListItem"><l>4</l><block var="set"/></block><block var="element"/></custom-block><script><block s="doReport"><block s="reportBoolean"><l><bool>true</bool></l></block></block></script></block></script></block><block s="doReport"><block s="reportListContainsItem"><block s="reportListItem"><l>3</l><block var="set"/></block><block var="element"/></block></block></script></block></script></block-definition><block-definition s="%'set1' %'op' %'set2'" type="reporter" category="2. Math tools"><comment x="0" y="0" w="194.40476190476184" collapsed="false">Reports the intersection, union, difference, or cross product of two sets.</comment><header></header><code></code><translations></translations><inputs><input type="%s">set1</input><input type="%s" readonly="true">∩<options>∩
∪
\
X</options></input><input type="%s">set2</input></inputs><script><block s="doWarp"><script><block s="doDeclareVariables"><list><l>result</l><l>n</l><l>m</l><l>interval2</l><l>difference</l><l>term1</l><l>term2</l><l>interval1</l></list></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a %txt"><block var="set1"/><l>set</l></custom-block></block><script><block s="doReport"><l>ERROR: first parameter is not a set!</l></block></script><comment w="107.14285714285722" collapsed="false">are these two sets?</comment></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a %txt"><block var="set2"/><l>set</l></custom-block></block><script><block s="doReport"><l>ERROR: second parameter is not a set!</l></block></script></block><block s="doIf"><block s="reportEquals"><block var="op"/><l>∩</l></block><script><block s="doSetVar"><l>result</l><block s="reportNewList"><list><l>set</l><block s="reportAnd"><block s="reportListItem"><l>2</l><block var="set1"/></block><block s="reportListItem"><l>2</l><block var="set2"/></block></block><block s="reportConcatenatedLists"><list><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportOr"><block s="reportListContainsItem"><block s="reportListItem"><l>3</l><block var="set1"/></block><block var="element"/></block><custom-block s="evaluate intervals %l with %s"><block s="reportListItem"><l>4</l><block var="set1"/></block><block var="element"/></custom-block></block></autolambda><list><l>element</l></list></block><block s="reportListItem"><l>3</l><block var="set2"/></block></block><block s="reportKeep"><block s="reifyPredicate"><autolambda><custom-block s="evaluate intervals %l with %s"><block s="reportListItem"><l>4</l><block var="set2"/></block><block var="element"/></custom-block></autolambda><list><l>element</l></list></block><block s="reportListItem"><l>3</l><block var="set1"/></block></block></list></block><custom-block s="intersect interval lists %l and %l"><block s="reportListItem"><l>4</l><block var="set1"/></block><block s="reportListItem"><l>4</l><block var="set2"/></block></custom-block><l></l></list></block></block><block s="doReport"><custom-block s="cleaned up set %l"><block var="result"/></custom-block></block></script></block><block s="doIf"><block s="reportEquals"><block var="op"/><l>∪</l></block><script><block s="doSetVar"><l>result</l><block s="reportNewList"><list><l>set</l><block s="reportAnd"><block s="reportListItem"><l>2</l><block var="set1"/></block><block s="reportListItem"><l>2</l><block var="set2"/></block></block><block s="reportConcatenatedLists"><list><block s="reportListItem"><l>3</l><block var="set1"/></block><block s="reportListItem"><l>3</l><block var="set2"/></block></list></block><custom-block s="merge intervals %l"><block s="reportConcatenatedLists"><list><block s="reportListItem"><l>4</l><block var="set1"/></block><block s="reportListItem"><l>4</l><block var="set2"/></block></list></block></custom-block><l></l></list></block></block><block s="doReport"><custom-block s="cleaned up set %l"><block var="result"/></custom-block></block></script></block><block s="doIf"><block s="reportEquals"><block var="op"/><l>\</l></block><script><block s="doSetVar"><l>result</l><block s="reportNewList"><list><l>set</l><block s="reportAnd"><block s="reportListItem"><l>2</l><block var="set1"/></block><block s="reportListItem"><l>2</l><block var="set2"/></block></block><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportNot"><block s="reportOr"><block s="reportListContainsItem"><block s="reportListItem"><l>3</l><block var="set2"/></block><block var="element"/></block><custom-block s="evaluate intervals %l with %s"><block s="reportListItem"><l>4</l><block var="set2"/></block><block var="element"/></custom-block></block></block></autolambda><list><l>element</l></list></block><block s="reportListItem"><l>3</l><block var="set1"/></block></block><block s="reportNewList"><list></list></block><l></l></list></block></block><block s="doIf"><block s="reportNot"><block s="reportListItem"><l>2</l><block var="result"/></block></block><script><block s="doIfElse"><block s="reportOr"><block s="reportGreaterThan"><block s="reportListAttribute"><l><option>length</option></l><block s="reportListItem"><l>4</l><block var="set1"/></block></block><l>0</l></block><block s="reportGreaterThan"><block s="reportListAttribute"><l><option>length</option></l><block s="reportListItem"><l>4</l><block var="set2"/></block></block><l>0</l></block></block><script><block s="doReport"><l>ERROR: impossible operation for not numerical sets.</l></block></script><script><block s="doReport"><block s="reportNewList"><list><l>set</l><block s="reportListItem"><l>2</l><block var="result"/></block><block s="reportListItem"><l>3</l><block var="result"/></block><block s="reportListItem"><l>4</l><block var="set1"/></block><l></l></list></block></block></script></block></script></block><block s="doSetVar"><l>set1</l><custom-block s="copy of %l"><block var="set1"/></custom-block></block><block s="doSetVar"><l>set2</l><custom-block s="copy of %l"><block var="set2"/></custom-block></block><block s="doReplaceInList"><l>4</l><block var="set2"/><block s="reportConcatenatedLists"><list><block s="reportListItem"><l>4</l><block var="set2"/></block><custom-block s="list of numbers %l $arrowRightOutline list of intervals"><block s="reportListItem"><l>3</l><block var="set2"/></block></custom-block></list></block></block><block s="doReplaceInList"><l>3</l><block var="set2"/><block s="reportNewList"><list></list></block></block><block s="doSetVar"><l>m</l><l>1</l></block><block s="doUntil"><block s="reportGreaterThan"><block var="m"/><block s="reportListAttribute"><l><option>length</option></l><block s="reportListItem"><l>4</l><block var="set2"/></block></block></block><script><block s="doSetVar"><l>interval2</l><block s="reportListItem"><block var="m"/><block s="reportListItem"><l>4</l><block var="set2"/></block></block></block><block s="doSetVar"><l>n</l><l>1</l></block><block s="doUntil"><block s="reportGreaterThan"><block var="n"/><block s="reportListAttribute"><l><option>length</option></l><block s="reportListItem"><l>4</l><block var="set1"/></block></block></block><script><block s="doSetVar"><l>interval1</l><block s="reportListItem"><block var="n"/><block s="reportListItem"><l>4</l><block var="set1"/></block></block></block><block s="doSetVar"><l>difference</l><custom-block s="difference of interval %l and %l"><block var="interval1"/><block var="interval2"/></custom-block></block><block s="doIf"><block s="reportAnd"><block s="reportGreaterThan"><block s="reportListAttribute"><l><option>length</option></l><block var="difference"/></block><l>0</l></block><block s="reportGreaterThan"><block s="reportListAttribute"><l><option>length</option></l><custom-block s="intersect two intervals %l %l"><block var="interval1"/><block var="interval2"/></custom-block></block><l>0</l></block></block><script><block s="doReplaceInList"><l>4</l><block var="set1"/><block s="reportConcatenatedLists"><list><block s="reportListItem"><l>4</l><block var="set1"/></block><block var="difference"/></list></block></block><block s="doDeleteFromList"><block var="n"/><block s="reportListItem"><l>4</l><block var="set1"/></block></block></script></block><block s="doChangeVar"><l>n</l><l>1</l></block></script></block><block s="doChangeVar"><l>m</l><l>1</l></block></script><comment w="120" collapsed="false">compare the mth interval with all intervals of set1</comment></block><block s="doReplaceInList"><l>4</l><block var="result"/><custom-block s="merge intervals %l"><block s="reportListItem"><l>4</l><block var="set1"/></block></custom-block></block><block s="doReport"><custom-block s="cleaned up set %l"><block var="result"/></custom-block></block></script></block><block s="doIf"><block s="reportEquals"><block var="op"/><l>X</l></block><script><block s="doIf"><block s="reportOr"><block s="reportGreaterThan"><block s="reportListAttribute"><l><option>length</option></l><block s="reportListItem"><l>4</l><block var="set1"/></block></block><l>0</l></block><block s="reportGreaterThan"><block s="reportListAttribute"><l><option>length</option></l><block s="reportListItem"><l>4</l><block var="set2"/></block></block><l>0</l></block></block><script><block s="doReport"><l>ERROR: impossible operation with infinite sets!</l></block></script></block><block s="doSetVar"><l>result</l><block s="reportNewList"><list><l>set</l><block s="reportAnd"><block s="reportListItem"><l>2</l><block var="set1"/></block><block s="reportListItem"><l>2</l><block var="set2"/></block></block><block s="reportNewList"><list></list></block><block s="reportNewList"><list></list></block><l></l></list></block></block><block s="doForEach"><l>item_1</l><block s="reportListItem"><l>3</l><block var="set1"/></block><script><block s="doForEach"><l>item_2</l><block s="reportListItem"><l>3</l><block var="set2"/></block><script><block s="doIfElse"><block s="reportIsA"><block var="item_1"/><l><option>list</option></l></block><script><block s="doSetVar"><l>term1</l><block var="item_1"/></block></script><script><block s="doSetVar"><l>term1</l><block s="reportNewList"><list><block var="item_1"/></list></block></block></script></block><block s="doIfElse"><block s="reportIsA"><block var="item_2"/><l><option>list</option></l></block><script><block s="doSetVar"><l>term2</l><block var="item_2"/></block></script><script><block s="doSetVar"><l>term2</l><block s="reportNewList"><list><block var="item_2"/></list></block></block></script></block><block s="doAddToList"><block s="reportConcatenatedLists"><list><block var="term1"/><block var="term2"/></list></block><block s="reportListItem"><l>3</l><block var="result"/></block></block></script></block></script></block><block s="doReport"><block var="result"/></block></script></block></script></block></script></block-definition><block-definition s="is %'set1' ⊆ %'set2' ?" type="predicate" category="2. Math tools"><comment x="0" y="0" w="108.57142857142861" collapsed="false">Is set1 subset of set2?</comment><header></header><code></code><translations></translations><inputs><input type="%s">set1</input><input type="%s">set2</input></inputs><script><block s="doWarp"><script><block s="doIf"><block s="reportNot"><custom-block s="is %s a %txt"><block var="set1"/><l>set</l></custom-block></block><script><block s="doReport"><l>ERROR: first parameter is not a set!</l></block></script><comment w="107.14285714285722" collapsed="false">are these two sets?</comment></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a %txt"><block var="set2"/><l>set</l></custom-block></block><script><block s="doReport"><l>ERROR: second parameter is not a set!</l></block></script></block><block s="doForEach"><l>interval</l><block s="reportListItem"><l>4</l><block var="set1"/></block><script><block s="doIf"><block s="reportNot"><custom-block s="is interval %l subinterval of interval list %l ?"><block var="interval"/><block s="reportListItem"><l>4</l><block var="set2"/></block></custom-block></block><script><block s="doReport"><block s="reportBoolean"><l><bool>false</bool></l></block></block></script></block></script></block><block s="doForEach"><l>element</l><block s="reportListItem"><l>3</l><block var="set1"/></block><script><block s="doIf"><block s="reportNot"><block s="reportOr"><custom-block s="evaluate intervals %l with %s"><block s="reportListItem"><l>4</l><block var="set2"/></block><block var="element"/></custom-block><block s="reportListContainsItem"><block s="reportListItem"><l>3</l><block var="set2"/></block><block var="element"/></block></block></block><script><block s="doReport"><block s="reportBoolean"><l><bool>false</bool></l></block><comment w="144.2857142857143" collapsed="false">item is not element of set2</comment></block></script></block></script><comment w="116.16666666666674" collapsed="false">Compare elements</comment></block><block s="doReport"><block s="reportBoolean"><l><bool>true</bool></l></block></block></script></block></script></block-definition><block-definition s="is %'set1' = %'set2' ?" type="predicate" category="2. Math tools"><comment x="0" y="0" w="142.3076923076923" collapsed="false">Are theses two sets equal?</comment><header></header><code></code><translations></translations><inputs><input type="%s">set1</input><input type="%s">set2</input></inputs><script><block s="doWarp"><script><block s="doIf"><block s="reportNot"><custom-block s="is %s a %txt"><block var="set1"/><l>set</l></custom-block></block><script><block s="doReport"><l>ERROR: first parameter is not a set!</l></block></script></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a %txt"><block var="set2"/><l>set</l></custom-block></block><script><block s="doReport"><l>ERROR: second parameter is not a set!</l></block></script></block><block s="doReport"><block s="reportAnd"><custom-block s="is %s ⊆ %s ?"><block var="set1"/><block var="set2"/></custom-block><custom-block s="is %s ⊆ %s ?"><block var="set2"/><block var="set1"/></custom-block></block></block></script></block></script></block-definition><block-definition s="%'n' elements of %'set' (numbers ε |N)" type="reporter" category="2. Math tools"><comment x="0" y="0" w="187.91208791208803" collapsed="false">Reports up to n elements of a set. Numers are natural numbers smaller than maxSetValue in SciSnap!-properties.</comment><header></header><code></code><translations></translations><inputs><input type="%n">10</input><input type="%s">set</input></inputs><script><block s="doWarp"><script><block s="doDeclareVariables"><list><l>result</l><l>i</l></list></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a %txt"><block var="set"/><l>set</l></custom-block></block><script><block s="doReport"><l>ERROR: second parameter is not a set!</l></block></script></block><block s="doSetVar"><l>result</l><block s="reportListItem"><l>3</l><block var="set"/></block></block><block s="doIf"><block s="reportGreaterThan"><block s="reportListAttribute"><l><option>length</option></l><block s="reportListItem"><l>4</l><block var="set"/></block></block><l>0</l></block><script><block s="doSetVar"><l>i</l><l>0</l></block><block s="doUntil"><block s="reportOr"><block s="reportGreaterThan"><block var="i"/><custom-block s="SciSnap! global property %s"><l>maxSetValue</l></custom-block></block><block s="reportGreaterThan"><block s="reportListAttribute"><l><option>length</option></l><block var="result"/></block><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><l>2</l><block var="n"/></list></block><block s="reportListAttribute"><l><option>length</option></l><block s="reportListItem"><l>3</l><block var="set"/></block></block></list></block></block></block><script><block s="doIf"><custom-block s="evaluate intervals %l with %s"><block s="reportListItem"><l>4</l><block var="set"/></block><block var="i"/></custom-block><script><block s="doAddToList"><block var="i"/><block var="result"/></block></script></block><block s="doChangeVar"><l>i</l><l>1</l></block></script><comment w="135.71428571428572" collapsed="false">maxSetValue should be close to infinity ;-)</comment></block></script></block><block s="doSetVar"><l>result</l><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportEquals"><block s="reportListIndex"><block var="value"/><block var="list"/></block><block var="index"/></block></autolambda><list><l>value</l><l>index</l><l>list</l></list></block><block var="result"/></block><comment w="57.142857142857146" collapsed="false">clean up</comment></block><block s="doUntil"><block s="reportLessThanOrEquals"><block s="reportListAttribute"><l><option>length</option></l><block var="result"/></block><block var="n"/></block><script><block s="doDeleteFromList"><l><option>last</option></l><block var="result"/></block></script></block><block s="doIfElse"><block s="reportIsA"><block s="reportListItem"><l>1</l><block var="result"/></block><l><option>list</option></l></block><script><block s="doReport"><block s="reportApplyExtension"><l>lst_sort(list, fn)</l><list><block var="result"/><block s="reifyPredicate"><autolambda><block s="reportLessThan"><block s="reportListItem"><l>1</l><l/></block><block s="reportListItem"><l>1</l><l/></block></block></autolambda><list></list></block></list></block></block></script><script><block s="doReport"><block s="reportApplyExtension"><l>lst_sort(list, fn)</l><list><block var="result"/><block s="reifyPredicate"><autolambda><block s="reportLessThan"><l></l><l></l></block></autolambda><list></list></block></list></block></block></script></block></script></block></script></block-definition><block-definition s="element %'element' $arrowRightOutline text" type="reporter" category="2. Math tools"><comment x="0" y="0" w="116.10256410256414" collapsed="false">Reports simple types, sets and lists as string.</comment><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doDeclareVariables"><list><l>result</l><l>is first element</l><l>elements</l><l>i</l></list></block><block s="doWarp"><script><block s="doIf"><block s="reportIsA"><block var="element"/><l><option>number</option></l></block><script><block s="doReport"><block s="reportJoinWords"><list><l></l><block var="element"/></list></block></block></script></block><block s="doIf"><block s="reportIsA"><block var="element"/><l><option>Boolean</option></l></block><script><block s="doIfElse"><block var="element"/><script><block s="doReport"><l>true</l></block></script><script><block s="doReport"><l>false</l></block></script></block></script></block><block s="doIf"><block s="reportIsA"><block var="element"/><l><option>text</option></l></block><script><block s="doReport"><block var="element"/></block></script></block><block s="doIf"><block s="reportIsA"><block var="element"/><l><option>list</option></l></block><script><block s="doIfElse"><custom-block s="is %s a %txt"><block var="element"/><l>set</l></custom-block><script><block s="doSetVar"><l>result</l><l>{</l></block><block s="doSetVar"><l>is first element</l><block s="reportBoolean"><l><bool>true</bool></l></block></block><block s="doSetVar"><l>elements</l><block s="reportListItem"><l>3</l><block var="element"/></block></block><block s="doIf"><block s="reportGreaterThan"><block s="reportListAttribute"><l><option>length</option></l><block s="reportListItem"><l>4</l><block var="element"/></block></block><l>0</l></block><script><block s="doSetVar"><l>i</l><l>0</l></block><block s="doUntil"><block s="reportOr"><block s="reportGreaterThan"><block var="i"/><custom-block s="SciSnap! global property %s"><l>maxSetValue</l></custom-block></block><block s="reportGreaterThan"><block s="reportListAttribute"><l><option>length</option></l><block var="elements"/></block><block s="reportVariadicSum"><list><l>40</l><block s="reportListAttribute"><l><option>length</option></l><block s="reportListItem"><l>3</l><block var="element"/></block></block></list></block></block></block><script><block s="doIf"><custom-block s="evaluate intervals %l with %s"><block s="reportListItem"><l>4</l><block var="element"/></block><block var="i"/></custom-block><script><block s="doAddToList"><block var="i"/><block var="elements"/></block></script></block><block s="doChangeVar"><l>i</l><l>1</l></block></script><comment w="135.71428571428572" collapsed="false">maxSetValue should be close to infinity ;-)</comment></block></script></block><block s="doSetVar"><l>elements</l><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportEquals"><block s="reportListIndex"><block var="value"/><block var="list"/></block><block var="index"/></block></autolambda><list><l>value</l><l>index</l><l>list</l></list></block><block var="elements"/></block></block><block s="doUntil"><block s="reportLessThan"><block s="reportListAttribute"><l><option>length</option></l><block var="elements"/></block><l>20</l></block><script><block s="doDeleteFromList"><l><option>last</option></l><block var="elements"/></block></script></block><block s="doForEach"><l>item</l><block var="elements"/><script><block s="doIfElse"><block var="is first element"/><script><block s="doSetVar"><l>result</l><block s="reportJoinWords"><list><block var="result"/><custom-block s="element %s $arrowRightOutline text"><block var="item"/></custom-block></list></block></block><block s="doSetVar"><l>is first element</l><block s="reportBoolean"><l><bool>false</bool></l></block></block></script><script><block s="doSetVar"><l>result</l><block s="reportJoinWords"><list><block var="result"/><l>,</l><custom-block s="element %s $arrowRightOutline text"><block var="item"/></custom-block></list></block></block></script></block></script></block><block s="doIfElse"><block s="reportGreaterThan"><block s="reportListAttribute"><l><option>length</option></l><block var="elements"/></block><l>18</l></block><script><block s="doReport"><block s="reportJoinWords"><list><block var="result"/><l>,...}</l></list></block></block></script><script><block s="doReport"><block s="reportJoinWords"><list><block var="result"/><l>}</l></list></block></block></script></block></script><script><block s="doSetVar"><l>result</l><l>[</l></block><block s="doUntil"><block s="reportLessThan"><block s="reportListAttribute"><l><option>length</option></l><block var="element"/></block><l>20</l></block><script><block s="doDeleteFromList"><l><option>last</option></l><block var="element"/></block></script></block><block s="doSetVar"><l>is first element</l><block s="reportBoolean"><l><bool>true</bool></l></block></block><block s="doForEach"><l>item</l><block var="element"/><script><block s="doIfElse"><block var="is first element"/><script><block s="doSetVar"><l>result</l><block s="reportJoinWords"><list><block var="result"/><custom-block s="element %s $arrowRightOutline text"><block var="item"/></custom-block></list></block></block><block s="doSetVar"><l>is first element</l><block s="reportBoolean"><l><bool>false</bool></l></block></block></script><script><block s="doSetVar"><l>result</l><block s="reportJoinWords"><list><block var="result"/><l>,</l><custom-block s="element %s $arrowRightOutline text"><block var="item"/></custom-block></list></block></block></script></block></script></block><block s="doIfElse"><block s="reportGreaterThan"><block s="reportListAttribute"><l><option>length</option></l><block var="element"/></block><l>18</l></block><script><block s="doReport"><block s="reportJoinWords"><list><block var="result"/><l>,...]</l></list></block></block></script><script><block s="doReport"><block s="reportJoinWords"><list><block var="result"/><l>]</l></list></block></block></script></block></script></block></script></block><block s="doReport"><block s="reportJoinWords"><list><l>ERROR: no simple type!</l></list></block></block></script></block></script></block-definition><block-definition s="text %'text' $arrowRightOutline elements" type="reporter" category="2. Math tools"><comment x="0" y="0" w="124.00000000000006" collapsed="false">Converts a string to a list of elements.</comment><header></header><code></code><translations></translations><inputs><input type="%txt">1,2,[3,4],{6,7,8..12}</input></inputs><script><block s="doDeclareVariables"><list><l>result</l><l>inputlist</l><l>element</l><l>substring</l><l>i</l><l>element1</l><l>element2</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>result</l><block s="reportNewList"><list></list></block></block><block s="doSetVar"><l>text</l><block s="reportTextSplit"><block var="text"/><l>,</l></block></block><block s="doUntil"><block s="reportLessThan"><block s="reportListAttribute"><l><option>length</option></l><block var="text"/></block><l>1</l></block><script><block s="doSetVar"><l>element</l><custom-block s="replace %txt %txt with %txt in %txt"><l>all</l><l> </l><l></l><block s="reportListItem"><l>1</l><block var="text"/></block></custom-block></block><block s="doDeleteFromList"><l>1</l><block var="text"/></block><block s="doIf"><block s="reportGreaterThan"><block s="reportStringSize"><block var="element"/></block><l>0</l></block><script><block s="doIfElse"><block s="reportIsA"><block var="element"/><l><option>number</option></l><comment w="90" collapsed="false">find numbers</comment></block><script><block s="doAddToList"><block var="element"/><block var="result"/></block></script><script><block s="doIfElse"><block s="reportEquals"><block var="element"/><l>true</l><comment w="90" collapsed="false">find booleans</comment></block><script><block s="doAddToList"><block s="reportBoolean"><l><bool>true</bool></l></block><block var="result"/></block></script><script><block s="doIfElse"><block s="reportEquals"><block var="element"/><l>false</l></block><script><block s="doAddToList"><block s="reportBoolean"><l><bool>false</bool></l></block><block var="result"/></block></script><script><block s="doSetVar"><l>i</l><custom-block s="index of %txt in %txt"><l>.</l><block var="element"/></custom-block><comment w="110.66666666666669" collapsed="false">find number intervals</comment></block><block s="doIfElse"><block s="reportGreaterThan"><block var="i"/><l>0</l></block><script><block s="doSetVar"><l>element1</l><custom-block s="substring of %txt from %n to %n"><block var="element"/><l>1</l><block s="reportDifference"><block var="i"/><l>1</l></block></custom-block></block><block s="doIfElse"><block s="reportEquals"><block s="reportLetter"><block s="reportVariadicSum"><list><block var="i"/><l>1</l></list></block><block var="element"/></block><l>.</l></block><script><block s="doSetVar"><l>element2</l><custom-block s="substring of %txt from %n to %n"><block var="element"/><block s="reportVariadicSum"><list><block var="i"/><l>2</l></list></block><block s="reportStringSize"><block var="element"/></block></custom-block></block><block s="doIfElse"><block s="reportAnd"><block s="reportIsA"><block var="element1"/><l><option>number</option></l></block><block s="reportIsA"><block var="element2"/><l><option>number</option></l></block></block><script><block s="doSetVar"><l>i</l><block var="element1"/></block><block s="doUntil"><block s="reportGreaterThan"><block var="i"/><block var="element2"/></block><script><block s="doAddToList"><block var="i"/><block var="result"/></block><block s="doChangeVar"><l>i</l><l>1</l></block></script></block></script><script><block s="doReport"><l>ERROR: missing number close to ".."</l></block></script></block></script><script><block s="doReport"><l>ERROR: missing "."</l></block></script></block></script><script><block s="doIfElse"><block s="reportEquals"><block s="reportLetter"><l>1</l><block var="element"/></block><l>[</l></block><script><block s="doIf"><block s="reportEquals"><custom-block s="index of %txt in %txt"><l>]</l><block var="element"/></custom-block><l>0</l></block><script><block s="doUntil"><block s="reportOr"><block s="reportEquals"><block s="reportListAttribute"><l><option>length</option></l><block var="text"/></block><l>0</l></block><block s="reportGreaterThan"><custom-block s="index of %txt in %txt"><l>]</l><block s="reportListItem"><l>1</l><block var="text"/></block></custom-block><l>0</l></block></block><script><block s="doSetVar"><l>element</l><block s="reportJoinWords"><list><block var="element"/><l>,</l><block s="reportListItem"><l>1</l><block var="text"/></block></list></block></block><block s="doDeleteFromList"><l>1</l><block var="text"/></block></script></block></script></block><block s="doIf"><block s="reportAnd"><block s="reportGreaterThan"><custom-block s="index of %txt in %txt"><l>]</l><block s="reportListItem"><l>1</l><block var="text"/></block></custom-block><l>0</l></block><block s="reportEquals"><custom-block s="index of %txt in %txt"><l>]</l><block var="element"/></custom-block><l>0</l></block></block><script><block s="doSetVar"><l>element</l><block s="reportJoinWords"><list><block var="element"/><l>,</l><block s="reportListItem"><l>1</l><block var="text"/></block></list></block></block><block s="doDeleteFromList"><l>1</l><block var="text"/></block></script></block><block s="doIfElse"><block s="reportGreaterThan"><custom-block s="index of %txt in %txt"><l>]</l><block var="element"/></custom-block><l>0</l></block><script><block s="doSetVar"><l>i</l><custom-block s="index of %txt in %txt"><l>]</l><block var="element"/></custom-block></block><block s="doIfElse"><block s="reportGreaterThan"><block var="i"/><l>2</l></block><script><block s="doAddToList"><custom-block s="text %txt $arrowRightOutline elements"><custom-block s="substring of %txt from %n to %n"><block var="element"/><l>2</l><block s="reportDifference"><block var="i"/><l>1</l></block></custom-block></custom-block><block var="result"/></block></script><script><block s="doReport"><l>ERROR: missing "]"</l></block></script></block></script><script><block s="doReport"><l>ERROR: missing "]"</l></block></script></block></script><script><block s="doIfElse"><block s="reportEquals"><block s="reportLetter"><l>1</l><block var="element"/></block><l>{</l><comment w="90" collapsed="false">find sets</comment></block><script><block s="doIf"><block s="reportEquals"><custom-block s="index of %txt in %txt"><l>}</l><block var="element"/></custom-block><l>0</l></block><script><block s="doUntil"><block s="reportOr"><block s="reportEquals"><block s="reportListAttribute"><l><option>length</option></l><block var="text"/></block><l>0</l></block><block s="reportGreaterThan"><custom-block s="index of %txt in %txt"><l>}</l><block s="reportListItem"><l>1</l><block var="text"/></block></custom-block><l>0</l></block></block><script><block s="doSetVar"><l>element</l><block s="reportJoinWords"><list><block var="element"/><l>,</l><block s="reportListItem"><l>1</l><block var="text"/></block></list></block></block><block s="doDeleteFromList"><l>1</l><block var="text"/></block></script></block></script></block><block s="doIf"><block s="reportAnd"><block s="reportGreaterThan"><custom-block s="index of %txt in %txt"><l>}</l><block s="reportListItem"><l>1</l><block var="text"/></block></custom-block><l>0</l></block><block s="reportEquals"><custom-block s="index of %txt in %txt"><l>}</l><block var="element"/></custom-block><l>0</l></block></block><script><block s="doSetVar"><l>element</l><block s="reportJoinWords"><list><block var="element"/><l>,</l><block s="reportListItem"><l>1</l><block var="text"/></block></list></block></block><block s="doDeleteFromList"><l>1</l><block var="text"/></block></script></block><block s="doIfElse"><block s="reportGreaterThan"><custom-block s="index of %txt in %txt"><l>}</l><block var="element"/></custom-block><l>0</l></block><script><block s="doSetVar"><l>i</l><custom-block s="index of %txt in %txt"><l>}</l><block var="element"/></custom-block></block><block s="doIfElse"><block s="reportGreaterThan"><block var="i"/><l>2</l></block><script><block s="doSetVar"><l>element1</l><block s="reportNewList"><list><l>set</l><l></l><block s="reportNewList"><list></list></block><block s="reportNewList"><list></list></block><l></l></list></block></block><block s="doReplaceInList"><l>3</l><block var="element1"/><custom-block s="text %txt $arrowRightOutline elements"><custom-block s="substring of %txt from %n to %n"><block var="element"/><l>2</l><block s="reportDifference"><block var="i"/><l>1</l></block></custom-block></custom-block></block><block s="doReplaceInList"><l>2</l><block var="element1"/><custom-block s="is %s a %txt"><block s="reportListItem"><l>3</l><block var="element1"/></block><l>numericalList</l></custom-block></block><block s="doAddToList"><block var="element1"/><block var="result"/></block></script><script><block s="doReport"><l>ERROR: missing "}"</l></block></script></block></script><script><block s="doReport"><l>ERROR: missing "}"</l></block></script></block></script><script><block s="doAddToList"><block var="element"/><block var="result"/><comment w="172" collapsed="false">other elements interpreted as string</comment></block></script></block></script><comment w="90" collapsed="false">find lists</comment></block></script></block></script></block></script></block></script></block></script></block></script></block><block s="doReport"><block var="result"/></block></script></block></script></block-definition><block-definition s="configure %'sprite' as an ImagePad width: %'width' $nl height: %'height' color: %'r' %'g' %'b'" type="command" category="6. ImagePad for image operations"><comment x="0" y="0" w="142.5" collapsed="false">Creates a new empty costume of the specified size and color and sets local properties</comment><header></header><code></code><translations></translations><inputs><input type="%s">thisSprite<options>thisSprite
theStage
anotherSprite</options></input><input type="%n">400</input><input type="%n">300</input><input type="%n">245</input><input type="%n">245</input><input type="%n">245</input></inputs><script><block s="doWarp"><script><block s="doDeclareVariables"><list><l>target</l><l>costumeWidth</l><l>costumeHeight</l></list></block><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>theStage</l></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>thisSprite</l></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIfElse"><block s="reportIsIdentical"><block var="target"/><block s="reportObject"><l>Stage</l></block></block><script><block s="doSetVar"><l>sprite</l><l>theStage</l></block><block s="doSetVar"><l>costumeWidth</l><block s="reportAttributeOf"><l><option>width</option></l><l>Stage</l></block></block><block s="doSetVar"><l>costumeHeight</l><block s="reportAttributeOf"><l><option>height</option></l><l>Stage</l></block></block></script><script><block s="doTellTo"><block var="target"/><block s="reifyScript"><script><block s="gotoXY"><l>0</l><l>0</l></block><block s="setHeading"><l>90</l></block><block s="show"></block></script><list></list></block><list></list></block><block s="doSetVar"><l>costumeWidth</l><block var="width"/></block><block s="doSetVar"><l>costumeHeight</l><block var="height"/></block></script></block><block s="doTellTo"><block var="target"/><block s="reifyScript"><script><block s="doApplyExtension"><l>var_declare(scope, name)</l><list><l>sprite</l><l>myProperties</l></list></block><block s="doApplyExtension"><l>var_declare(scope, name)</l><list><l>sprite</l><l>myData</l></list></block><block s="doSetVar"><l>myProperties</l><block s="reportNewList"><list></list></block></block><block s="doSetVar"><l>myData</l><block s="reportNewList"><list></list></block></block><block s="doSwitchToCostume"><block s="reportApplyExtension"><l>SciS_newcostume(w,h,r,g,b)</l><list><block var="costumeWidth"/><block var="costumeHeight"/><block var="r"/><block var="g"/><block var="b"/></list></block></block><block s="doAddToList"><block s="reportNewList"><list><l>typeOfConfiguration</l><l>ImagePad</l></list></block><block var="myProperties"/></block><block s="doAddToList"><block s="reportNewList"><list><l>typeOfData</l><l>none</l></list></block><block var="myProperties"/></block><block s="doAddToList"><block s="reportNewList"><list><l>lineProperties</l><block s="reportNewList"><list><l>continuous</l><l>1</l><l>0</l><l>0</l><l>0</l><l>180</l><l>180</l><l>180</l></list></block></list></block><block var="myProperties"/></block><block s="doAddToList"><block s="reportNewList"><list><l>dataProperties</l><block s="reportNewList"><list><l>notSet</l><l>notSet</l><l>0</l><l>0</l></list></block></list></block><block var="myProperties"/></block><block s="doAddToList"><block s="reportNewList"><list><l>imageProperties</l><block s="reportNewList"><list><l>notSet</l><l>0</l><l>0</l></list></block></list></block><block var="myProperties"/></block><block s="doAddToList"><block s="reportNewList"><list><l>gridProperties</l><block s="reportNewList"><list><l>40</l><l>40</l><block s="reportMonadic"><l><option>floor</option></l><block s="reportQuotient"><block var="costumeWidth"/><l>40</l></block></block><block s="reportMonadic"><l><option>floor</option></l><block s="reportQuotient"><block var="costumeHeight"/><l>40</l></block></block></list></block></list></block><block var="myProperties"/></block><block s="doAddToList"><block s="reportNewList"><list><l>gridColors</l><block s="reportNewList"><list><block s="reportNewList"><list><l>0</l><l>0</l><l>0</l><l>black</l></list></block><block s="reportNewList"><list><l>150</l><l>150</l><l>150</l><l>gray</l></list></block><block s="reportNewList"><list><l>255</l><l>255</l><l>255</l><l>white</l></list></block><block s="reportNewList"><list><l>255</l><l>0</l><l>0</l><l>red</l></list></block><block s="reportNewList"><list><l>255</l><l>255</l><l>0</l><l>yellow</l></list></block><block s="reportNewList"><list><l>255</l><l>0</l><l>255</l><l>magenta</l></list></block><block s="reportNewList"><list><l>0</l><l>255</l><l>0</l><l>green</l></list></block><block s="reportNewList"><list><l>0</l><l>255</l><l>255</l><l>cyan</l></list></block><block s="reportNewList"><list><l>0</l><l>0</l><l>255</l><l>blue</l></list></block></list></block></list></block><block var="myProperties"/></block></script><list></list></block><list></list></block><block s="doIfElse"><block s="reportIsIdentical"><block var="target"/><block s="reportObject"><l>Stage</l></block></block><script><block s="doTellTo"><l>Stage</l><block s="reifyScript"><script><block s="doAddToList"><block s="reportNewList"><list><l>costumeProperties</l><block s="reportNewList"><list><block s="reportAttributeOf"><l><option>width</option></l><l>Stage</l></block><block s="reportAttributeOf"><l><option>height</option></l><l>Stage</l></block><block var="r"/><block var="g"/><block var="b"/><block s="reportQuotient"><block s="reportDifference"><block s="reportAttributeOf"><l><option>width</option></l><l>Stage</l></block><block var="width"/></block><l>2</l></block><block s="reportQuotient"><block s="reportDifference"><block s="reportAttributeOf"><l><option>height</option></l><l>Stage</l></block><block var="height"/></block><l>2</l></block></list></block></list></block><block var="myProperties"/></block></script><list></list></block><list></list></block></script><script><block s="doTellTo"><block var="target"/><block s="reifyScript"><script><block s="doAddToList"><block s="reportNewList"><list><l>costumeProperties</l><block s="reportNewList"><list><block var="width"/><block var="height"/><block var="r"/><block var="g"/><block var="b"/><l>0</l><l>0</l></list></block></list></block><block var="myProperties"/></block></script><list></list></block><list></list></block></script></block></script></block></script><scripts><comment x="520.8333333333335" y="80.16666666666669" w="192.5" collapsed="false">costume properties:
1: width
2: height
3: back color red
4: back color green
5: back color blue
6: left offset for Image position on stage
7: upper offset for Image position on stage

line properties:
1: lineWidth
2: line color red
3: line color green
4: lineColor blue

data properties:
1: minValue
2: maxValue
3: columns
4: rows

image properties:
1: type (RGB,FITS)
2: imageWidth
3: imageHeight

grid colors: 
list of usable colors:
1:black 2:gray 3:white
4: red 5:yellow 6:magenta
7:green 8:cyan 9:blue
</comment></scripts></block-definition><block-definition s="is %'sprite' an ImagePad?" type="predicate" category="6. ImagePad for image operations"><header></header><code></code><translations></translations><inputs><input type="%s">thisSprite<options>thisSprite
theStage
anotherSprite</options></input></inputs><script><block s="doWarp"><script><block s="doIfElse"><block s="reportEquals"><block var="sprite"/><l>thisSprite</l></block><script><block s="doReport"><block s="reportAskFor"><block s="reportObject"><l><option>myself</option></l></block><block s="reifyReporter"><autolambda><custom-block s="is the global %b property %txt %br with value %s present ?"><l><bool>false</bool></l><l>typeOfConfiguration</l><l>ImagePad</l></custom-block></autolambda><list></list></block><list></list></block></block></script><script><block s="doIfElse"><block s="reportEquals"><block var="sprite"/><l>theStage</l></block><script><block s="doReport"><block s="reportAskFor"><l>Stage</l><block s="reifyReporter"><autolambda><custom-block s="is the global %b property %txt %br with value %s present ?"><l><bool>false</bool></l><l>typeOfConfiguration</l><l>ImagePad</l></custom-block></autolambda><list></list></block><list></list></block></block></script><script><block s="doReport"><block s="reportAskFor"><block s="reportObject"><block var="sprite"/></block><block s="reifyReporter"><autolambda><custom-block s="is the global %b property %txt %br with value %s present ?"><l><bool>false</bool></l><l>typeOfConfiguration</l><l>ImagePad</l></custom-block></autolambda><list></list></block><list></list></block></block></script></block></script></block></script></block></script></block-definition><block-definition s="ImagePadProperty %'name' of %'sprite'" type="reporter" category="6. ImagePad for image operations"><comment x="0" y="0" w="95" collapsed="false">Reads the value of an existing property.</comment><header></header><code></code><translations></translations><inputs><input type="%txt">costumeProperties<options>typeOfConfiguration
typeOfData
costumeProperties
lineProperties
dataProperties
imageProperties
gridProperties
gridColors</options></input><input type="%txt">thisSprite<options>thisSprite
theStage
anotherSprite</options></input></inputs><script><block s="doDeclareVariables"><list><l>result</l><l>h</l><l>target</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>theStage</l></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>thisSprite</l></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s an ImagePad?"><block var="target"/></custom-block></block><script><block s="doReport"><l>ERROR: target isn't configured as ImagePad!</l></block></script></block><block s="doSetVar"><l>result</l><l>not found</l></block><block s="doSetVar"><l>name</l><block s="reportListItem"><l>1</l><block s="reportTextSplit"><block var="name"/><l> </l></block></block></block><block s="doSetVar"><l>h</l><block s="reportMap"><block s="reifyReporter"><script><block s="doIf"><block s="reportEquals"><block var="name"/><block s="reportListItem"><l>1</l><l/></block></block><script><block s="doSetVar"><l>result</l><block s="reportListItem"><l>2</l><l/></block></block></script></block><block s="doReport"><l></l></block></script><list></list></block><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block></block></block><block s="doReport"><block var="result"/></block></script></block></script></block-definition><block-definition s="set ImagePadProperty %'name' of %'sprite' to %'value'" type="command" category="6. ImagePad for image operations"><comment x="0" y="0" w="66.66666666666667" collapsed="false">Sets the value of an existing property or inserts it anew.</comment><header></header><code></code><translations></translations><inputs><input type="%txt">costumeProperties<options>typeOfConfiguration
typeOfData
costumeProperties
lineProperties
dataProperties
imageProperties
gridProperties
gridColors</options></input><input type="%txt">thisSprite<options>thisSprite
theStage
anotherSprite</options></input><input type="%s"></input></inputs><script><block s="doDeclareVariables"><list><l>done</l><l>h</l><l>target</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>theStage</l></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>thisSprite</l></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s an ImagePad?"><block var="target"/></custom-block></block><script><custom-block s="report SciSnap! error %txt"><l>ERROR: target isn't configured as ImagePad</l></custom-block><block s="doStopThis"><l><option>this block</option></l></block></script></block><block s="doSetVar"><l>name</l><block s="reportListItem"><l>1</l><block s="reportTextSplit"><block var="name"/><l> </l></block></block></block><block s="doSetVar"><l>done</l><block s="reportBoolean"><l><bool>false</bool></l></block></block><block s="doSetVar"><l>h</l><block s="reportMap"><block s="reifyReporter"><script><block s="doIf"><block s="reportEquals"><block var="name"/><block s="reportListItem"><l>1</l><l/></block></block><script><block s="doReplaceInList"><l>2</l><l/><block var="value"/></block><block s="doSetVar"><l>done</l><block s="reportBoolean"><l><bool>true</bool></l></block></block></script></block><block s="doReport"><l></l></block></script><list></list></block><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block></block></block><block s="doIf"><block s="reportNot"><block var="done"/></block><script><block s="doTellTo"><block var="target"/><block s="reifyScript"><script><block s="doAddToList"><l></l><l/></block></script><list></list></block><list><block s="reportNewList"><list><block var="name"/><block var="value"/></list></block><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block></list></block></script></block></script></block></script></block-definition><block-definition s="set ImagePad costume properties width: %'width' $nl height: %'height' back color: %'r' %'g' %'b' $nl offsets: %'leftOffset' %'upperOffset' on %'sprite'" type="command" category="6. ImagePad for image operations"><comment x="0" y="0" w="117.66039530436237" collapsed="false">a simple way to set some costume attributes:
1: width
2: height
3: back color red
4: back color green
5: back color blue
6: left offset for Image
 position on stage
7: upper offset for Image
 position on stage</comment><header></header><code></code><translations></translations><inputs><input type="%n">400</input><input type="%n">300</input><input type="%n">245</input><input type="%n">245</input><input type="%n">245</input><input type="%n">0</input><input type="%n">0</input><input type="%txt">thisSprite<options>thisSprite
theStage
anotherSprite</options></input></inputs><script><block s="doDeclareVariables"><list><l>target</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>theStage</l></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>thisSprite</l></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s an ImagePad?"><block var="target"/></custom-block></block><script><custom-block s="report SciSnap! error %txt"><l>ERROR: target isn't configured as ImagePad</l></custom-block><block s="doStopThis"><l><option>this block</option></l></block></script></block><block s="doIfElse"><block s="reportIsIdentical"><block var="target"/><block s="reportObject"><l>Stage</l></block></block><script><custom-block s="set ImagePadProperty %txt of %txt to %s"><l>costumeProperties</l><l>theStage</l><block s="reportNewList"><list><block s="reportAttributeOf"><l><option>width</option></l><l>Stage</l></block><block s="reportAttributeOf"><l><option>height</option></l><l>Stage</l></block><block var="r"/><block var="g"/><block var="b"/><block var="leftOffset"/><block var="upperOffset"/></list></block></custom-block></script><script><custom-block s="set ImagePadProperty %txt of %txt to %s"><l>costumeProperties</l><block var="target"/><block s="reportNewList"><list><block var="width"/><block var="height"/><block var="r"/><block var="g"/><block var="b"/><block var="leftOffset"/><block var="upperOffset"/></list></block></custom-block></script></block><block s="doTellTo"><block var="target"/><block s="reifyScript"><script><block s="doSwitchToCostume"><block s="reportApplyExtension"><l>SciS_newcostume(w,h,r,g,b)</l><list><block var="width"/><block var="height"/><block var="r"/><block var="g"/><block var="b"/></list></block></block></script><list></list></block><list></list></block></script></block></script></block-definition><block-definition s="set ImagePad line properties style: %'style' $nl width: %'lineWidth' color: %'r' %'g' %'b' $nl fill color: %'rfill' %'gfill' %'bfill' on %'sprite'" type="command" category="6. ImagePad for image operations"><comment x="0" y="0" w="105.68386840820364" collapsed="false">a simple way to set some net attributes:
line properties:
1: line style
2: lineWidth
3: line color red
4: line color green
5: lineColor blue
6: fill color red
6: fill color green
8: fill color blue</comment><header></header><code></code><translations></translations><inputs><input type="%txt" readonly="true">continuous<options>continuous
dashed
dash-dot
dot-dot</options></input><input type="%n">1</input><input type="%n">0</input><input type="%n">0</input><input type="%n">0</input><input type="%n">180</input><input type="%n">180</input><input type="%n">180</input><input type="%txt">thisSprite<options>thisSprite
theStage
anotherSprite</options></input></inputs><script><block s="doDeclareVariables"><list><l>target</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>theStage</l></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>thisSprite</l></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s an ImagePad?"><block var="target"/></custom-block></block><script><custom-block s="report SciSnap! error %txt"><l>ERROR: target isn't configured as ImagePad</l></custom-block><block s="doStopThis"><l><option>this block</option></l></block></script></block><custom-block s="set ImagePadProperty %txt of %txt to %s"><l>lineProperties</l><block var="target"/><block s="reportNewList"><list><block var="style"/><block var="lineWidth"/><block var="r"/><block var="g"/><block var="b"/><block var="rfill"/><block var="gfill"/><block var="bfill"/></list></block></custom-block></script></block></script></block-definition><block-definition s="set ImagePad grid properties on %'sprite' $nl horizontal cells: %'hNumber' vertical cells: %'vNumber'" type="command" category="6. ImagePad for image operations"><comment x="0" y="0" w="140.9937286376957" collapsed="false">a simple way to set some grid attributes:
1: number of horizontal cells
2: number of vertical cells
3: cell width
4: cell height

grid data are stored in myData</comment><header></header><code></code><translations></translations><inputs><input type="%s">thisSprite<options>thisSprite
theStage
anotherSprite</options></input><input type="%n">400</input><input type="%n">400</input></inputs><script><block s="doDeclareVariables"><list><l>target</l><l>wh</l><l>ws</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>theStage</l></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>thisSprite</l></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s an ImagePad?"><block var="target"/></custom-block></block><script><custom-block s="report SciSnap! error %txt"><l>ERROR: target isn't configured as GridPad</l></custom-block><block s="doStopThis"><l><option>this block</option></l></block></script></block><block s="doSetVar"><l>wh</l><block s="reportMonadic"><l><option>floor</option></l><block s="reportQuotient"><block s="reportListItem"><l>1</l><custom-block s="ImagePadProperty %txt of %txt"><l>costumeProperties</l><block var="target"/></custom-block></block><block var="hNumber"/></block></block></block><block s="doSetVar"><l>ws</l><block s="reportMonadic"><l><option>floor</option></l><block s="reportQuotient"><block s="reportListItem"><l>2</l><custom-block s="ImagePadProperty %txt of %txt"><l>costumeProperties</l><block var="target"/></custom-block></block><block var="vNumber"/></block></block></block><block s="doIf"><block s="reportOr"><block s="reportLessThan"><block var="wh"/><l>1</l></block><block s="reportLessThan"><block var="ws"/><l>1</l></block></block><script><custom-block s="report SciSnap! error %txt"><l>ERROR: cell size is too small!</l></custom-block></script></block><custom-block s="set ImagePadProperty %txt of %txt to %s"><l>gridProperties</l><block var="target"/><block s="reportNewList"><list><block var="hNumber"/><block var="vNumber"/><block var="wh"/><block var="ws"/></list></block></custom-block><block s="doTellTo"><block var="target"/><block s="reifyScript"><script><block s="doSetVar"><l></l><l></l></block></script><list></list></block><list><l>myData</l><custom-block s="%n x %n table initialized with %s"><block var="hNumber"/><block var="vNumber"/><l>2</l></custom-block></list></block></script></block></script></block-definition><block-definition s="import %'choice' from %'source' $nl to myData on %'sprite'" type="command" category="6. ImagePad for image operations"><comment x="0" y="0" w="118.57142857142861" collapsed="false">Imports costume-data or FITS-data to a data list.</comment><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true">costume(RGB)data<options>costume(RGB)data
FITSData</options></input><input type="%s" readonly="true">currentCostume<options>currentCostume
filepicker
list with dimensions at top</options></input><input type="%txt">thisSprite<options>thisSprite
theStage
anotherSprite</options></input></inputs><script><block s="doDeclareVariables"><list><l>header</l><l>imagedata</l><l>costumeData</l><l>min</l><l>max</l><l>w</l><l>h</l><l>target</l><l>input</l><l>costumeData</l><l>ready</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>theStage</l></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>thisSprite</l></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s an ImagePad?"><block var="target"/></custom-block></block><script><custom-block s="report SciSnap! error %txt"><l>ERROR: target isn't configured as ImagePad</l></custom-block><block s="doStopThis"><l><option>this block</option></l></block></script></block><block s="doSetVar"><l>choice</l><block s="reportListItem"><l>1</l><block s="reportTextSplit"><block var="choice"/><l> </l></block></block></block><block s="doIf"><block s="reportEquals"><block var="source"/><l>filepicker</l></block><script><block s="doSetVar"><l>ready</l><block s="reportApplyExtension"><l>SciS_readFileWithFilepicker()</l><list></list></block></block><block s="doWaitUntil"><block s="reportListItem"><l>1</l><block s="evaluate"><block var="ready"/><list></list></block></block></block><block s="doSetVar"><l>source</l><block s="reportListItem"><l>2</l><block s="evaluate"><block var="ready"/><list></list></block></block></block></script></block><block s="doIf"><block s="reportEquals"><block var="choice"/><l>FITSData</l></block><script><block s="doIfElse"><block s="reportNot"><block s="reportIsA"><block var="source"/><l><option>text</option></l></block></block><script><custom-block s="report SciSnap! error %txt"><l>ERROR: FITS data have to be text!</l></custom-block><block s="doStopThis"><l><option>this block</option></l></block></script><script><block s="doSetVar"><l>imagedata</l><block s="reportApplyExtension"><l>SciS_extractFITSdata(FITSdata)</l><list><block var="source"/></list></block></block><block s="doSetVar"><l>w</l><block s="reportListItem"><l>1</l><block var="imagedata"/></block></block><block s="doSetVar"><l>h</l><block s="reportListItem"><l>2</l><block var="imagedata"/></block></block><block s="doSetVar"><l>min</l><block s="reportListItem"><l>3</l><block var="imagedata"/></block></block><block s="doSetVar"><l>max</l><block s="reportListItem"><l>4</l><block var="imagedata"/></block></block><block s="doSetVar"><l>costumeData</l><custom-block s="ImagePadProperty %txt of %txt"><l>costumeProperties</l><block var="target"/></custom-block></block><block s="doTellTo"><block var="target"/><block s="reifyScript"><script><block s="doSetVar"><l>myProperties</l><block s="reportNewList"><list></list></block></block><block s="doSetVar"><l>myData</l><l></l></block></script><list></list></block><list><block s="reportListItem"><l>6</l><block var="imagedata"/></block></list></block><block s="doAddToList"><block s="reportNewList"><list><l>typeOfConfiguration</l><l>ImagePad</l></list></block><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block></block><block s="doAddToList"><block s="reportNewList"><list><l>typeOfData</l><l>FITS</l></list></block><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block></block><block s="doAddToList"><block s="reportNewList"><list><l>lineProperties</l><block s="reportNewList"><list><l>1</l><l>0</l><l>0</l><l>0</l></list></block></list></block><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block></block><block s="doAddToList"><block s="reportNewList"><list><l>dataProperties</l><block s="reportNewList"><list><block var="min"/><block var="max"/><l>1</l><block s="reportListAttribute"><l><option>length</option></l><block s="reportListItem"><l>6</l><block var="imagedata"/></block></block></list></block></list></block><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block></block><block s="doAddToList"><block s="reportNewList"><list><l>imageProperties</l><block s="reportNewList"><list><l>FITS</l><block var="w"/><block var="h"/></list></block></list></block><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block></block><block s="doAddToList"><block s="reportNewList"><list><l>gridProperties</l><block s="reportNewList"><list><l>40</l><l>40</l><block s="reportMonadic"><l><option>floor</option></l><block s="reportQuotient"><block var="w"/><l>40</l></block></block><block s="reportMonadic"><l><option>floor</option></l><block s="reportQuotient"><block var="h"/><l>40</l></block></block></list></block></list></block><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block></block><block s="doAddToList"><block s="reportNewList"><list><l>gridColors</l><block s="reportNewList"><list><block s="reportNewList"><list><l>0</l><l>0</l><l>0</l><l>black</l></list></block><block s="reportNewList"><list><l>150</l><l>150</l><l>150</l><l>gray</l></list></block><block s="reportNewList"><list><l>255</l><l>255</l><l>255</l><l>white</l></list></block><block s="reportNewList"><list><l>255</l><l>0</l><l>0</l><l>red</l></list></block><block s="reportNewList"><list><l>255</l><l>255</l><l>0</l><l>yellow</l></list></block><block s="reportNewList"><list><l>255</l><l>0</l><l>255</l><l>magenta</l></list></block><block s="reportNewList"><list><l>0</l><l>255</l><l>0</l><l>green</l></list></block><block s="reportNewList"><list><l>0</l><l>255</l><l>255</l><l>cyan</l></list></block><block s="reportNewList"><list><l>0</l><l>0</l><l>255</l><l>blue</l></list></block></list></block></list></block><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block></block><block s="doSetVar"><l>header</l><block s="reportListItem"><l>5</l><block var="imagedata"/></block></block><block s="doUntil"><block s="reportOr"><block s="reportEquals"><block s="reportListAttribute"><l><option>length</option></l><block var="header"/></block><l>0</l></block><block s="reportEquals"><block s="reportListItem"><l>1</l><block s="reportListItem"><l>1</l><block var="header"/></block></block><l></l></block></block><script><custom-block s="set ImagePadProperty %txt of %txt to %s"><block s="reportListItem"><l>1</l><block s="reportListItem"><l>1</l><block var="header"/></block></block><block var="target"/><block s="reportListItem"><l>2</l><block s="reportListItem"><l>1</l><block var="header"/></block></block></custom-block><block s="doDeleteFromList"><l>1</l><block var="header"/></block></script></block><block s="doIfElse"><block s="reportIsIdentical"><block var="target"/><block s="reportObject"><l>Stage</l></block></block><script><block s="doReplaceInList"><l>6</l><block var="costumeData"/><block s="reportQuotient"><block s="reportDifference"><block s="reportAttributeOf"><l><option>width</option></l><l>Stage</l></block><block var="w"/></block><l>2</l></block></block><block s="doReplaceInList"><l>7</l><block var="costumeData"/><block s="reportQuotient"><block s="reportDifference"><block s="reportAttributeOf"><l><option>height</option></l><l>Stage</l></block><block var="h"/></block><l>2</l></block></block><custom-block s="set ImagePadProperty %txt of %txt to %s"><l>costumeProperties</l><block var="target"/><block var="costumeData"/></custom-block></script><script><block s="doReplaceInList"><l>1</l><block var="costumeData"/><block var="w"/></block><block s="doReplaceInList"><l>2</l><block var="costumeData"/><block var="h"/></block><block s="doReplaceInList"><l>6</l><block var="costumeData"/><l>0</l></block><block s="doReplaceInList"><l>7</l><block var="costumeData"/><l>0</l></block><custom-block s="set ImagePadProperty %txt of %txt to %s"><l>costumeProperties</l><block var="target"/><block var="costumeData"/></custom-block></script></block></script></block></script></block><block s="doIf"><block s="reportEquals"><block var="choice"/><l>costume(RGB)data</l></block><script><block s="doSetVar"><l>input</l><block s="reportIfElse"><block s="reportEquals"><block var="source"/><l>currentCostume</l></block><block s="reportAskFor"><block var="target"/><block s="reifyReporter"><autolambda><block s="reportGet"><l><option>costume</option></l></block></autolambda><list></list></block><list></list></block><block var="source"/></block></block><block s="doIfElse"><block s="reportIsA"><block var="input"/><l><option>costume</option></l></block><script><block s="doSetVar"><l>w</l><block s="reportGetImageAttribute"><l><option>width</option></l><block var="input"/></block></block><block s="doSetVar"><l>h</l><block s="reportGetImageAttribute"><l><option>height</option></l><block var="input"/></block></block><block s="doSetVar"><l>input</l><block s="reportGetImageAttribute"><l><option>pixels</option></l><block var="input"/></block></block></script><script><block s="doIfElse"><block s="reportIsA"><block var="input"/><l><option>list</option></l></block><script><block s="doIf"><block s="reportLessThan"><block s="reportListAttribute"><l><option>length</option></l><block var="input"/></block><l>3</l></block><script><custom-block s="report SciSnap! error %txt"><l>ERROR: too few data!</l></custom-block><block s="doStopThis"><l><option>this block</option></l></block></script></block><block s="doSetVar"><l>w</l><block s="reportListItem"><l>1</l><block var="input"/></block></block><block s="doSetVar"><l>h</l><block s="reportListItem"><l>2</l><block var="input"/></block></block><block s="doDeleteFromList"><l>1</l><block var="input"/></block><block s="doDeleteFromList"><l>1</l><block var="input"/></block></script><script><custom-block s="report SciSnap! error %txt"><l>ERROR: costume or costume data required!</l></custom-block><block s="doStopThis"><l><option>this block</option></l></block></script></block></script></block><block s="doSetVar"><l>costumeData</l><custom-block s="ImagePadProperty %txt of %txt"><l>costumeProperties</l><block var="target"/></custom-block></block><block s="doSetVar"><l>min</l><block s="reportCombine"><block var="input"/><block s="reifyReporter"><autolambda><block s="reportVariadicMin"><list><l></l><l></l></list></block></autolambda><list></list></block></block></block><block s="doSetVar"><l>min</l><block s="reportVariadicMin"><list><block s="reportListItem"><l>1</l><block var="min"/></block><block s="reportVariadicMin"><list><block s="reportListItem"><l>2</l><block var="min"/></block><block s="reportListItem"><l>3</l><block var="min"/></block></list></block></list></block></block><block s="doSetVar"><l>max</l><block s="reportCombine"><block var="input"/><block s="reifyReporter"><autolambda><block s="reportVariadicMax"><list><l></l><l></l></list></block></autolambda><list></list></block></block></block><block s="doSetVar"><l>max</l><block s="reportVariadicMax"><list><block s="reportListItem"><l>1</l><block var="max"/></block><block s="reportVariadicMax"><list><block s="reportListItem"><l>2</l><block var="max"/></block><block s="reportListItem"><l>3</l><block var="max"/></block></list></block></list></block></block><block s="doTellTo"><block var="target"/><block s="reifyScript"><script><block s="doSetVar"><l>myProperties</l><block s="reportNewList"><list></list></block></block><block s="doSetVar"><l>myData</l><l></l></block></script><list></list></block><list><block var="input"/></list></block><block s="doAddToList"><block s="reportNewList"><list><l>typeOfConfiguration</l><l>ImagePad</l></list></block><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block></block><block s="doAddToList"><block s="reportNewList"><list><l>typeOfData</l><l>RGB</l></list></block><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block></block><block s="doAddToList"><block s="reportNewList"><list><l>lineProperties</l><block s="reportNewList"><list><l>1</l><l>0</l><l>0</l><l>0</l></list></block></list></block><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block></block><block s="doAddToList"><block s="reportNewList"><list><l>dataProperties</l><block s="reportNewList"><list><block var="min"/><block var="max"/><block s="reportListAttribute"><l><option>length</option></l><block s="reportListItem"><l>1</l><block var="input"/></block></block><block s="reportListAttribute"><l><option>length</option></l><block var="input"/></block></list></block></list></block><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block></block><block s="doAddToList"><block s="reportNewList"><list><l>imageProperties</l><block s="reportNewList"><list><l>RGB</l><block var="w"/><block var="h"/></list></block></list></block><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block></block><block s="doAddToList"><block s="reportNewList"><list><l>gridProperties</l><block s="reportNewList"><list><l>40</l><l>40</l><block s="reportMonadic"><l><option>floor</option></l><block s="reportQuotient"><block var="w"/><l>40</l></block></block><block s="reportMonadic"><l><option>floor</option></l><block s="reportQuotient"><block var="h"/><l>40</l></block></block></list></block></list></block><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block></block><block s="doAddToList"><block s="reportNewList"><list><l>gridColors</l><block s="reportNewList"><list><block s="reportNewList"><list><l>0</l><l>0</l><l>0</l><l>black</l></list></block><block s="reportNewList"><list><l>150</l><l>150</l><l>150</l><l>gray</l></list></block><block s="reportNewList"><list><l>255</l><l>255</l><l>255</l><l>white</l></list></block><block s="reportNewList"><list><l>255</l><l>0</l><l>0</l><l>red</l></list></block><block s="reportNewList"><list><l>255</l><l>255</l><l>0</l><l>yellow</l></list></block><block s="reportNewList"><list><l>255</l><l>0</l><l>255</l><l>magenta</l></list></block><block s="reportNewList"><list><l>0</l><l>255</l><l>0</l><l>green</l></list></block><block s="reportNewList"><list><l>0</l><l>255</l><l>255</l><l>cyan</l></list></block><block s="reportNewList"><list><l>0</l><l>0</l><l>255</l><l>blue</l></list></block></list></block></list></block><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block></block><block s="doIfElse"><block s="reportIsIdentical"><block var="target"/><block s="reportObject"><l>Stage</l></block></block><script><block s="doReplaceInList"><l>6</l><block var="costumeData"/><block s="reportQuotient"><block s="reportDifference"><block s="reportAttributeOf"><l><option>width</option></l><l>Stage</l></block><block var="w"/></block><l>2</l></block></block><block s="doReplaceInList"><l>7</l><block var="costumeData"/><block s="reportQuotient"><block s="reportDifference"><block s="reportAttributeOf"><l><option>height</option></l><l>Stage</l></block><block var="h"/></block><l>2</l></block></block><custom-block s="set ImagePadProperty %txt of %txt to %s"><l>costumeProperties</l><block var="target"/><block var="costumeData"/></custom-block></script><script><block s="doReplaceInList"><l>1</l><block var="costumeData"/><block var="w"/></block><block s="doReplaceInList"><l>2</l><block var="costumeData"/><block var="h"/></block><block s="doReplaceInList"><l>6</l><block var="costumeData"/><l>0</l></block><block s="doReplaceInList"><l>7</l><block var="costumeData"/><l>0</l></block><custom-block s="set ImagePadProperty %txt of %txt to %s"><l>costumeProperties</l><block var="target"/><block var="costumeData"/></custom-block></script></block></script></block></script></block></script></block-definition><block-definition s="add %'color' image of %'data' to ImagePad $nl min/max: %'min' %'max' log? %'log' on %'sprite'" type="command" category="6. ImagePad for image operations"><comment x="0" y="0" w="143.16666666666666" collapsed="false">Generates an image from the FITS or RGB data of the DataSprite in gray or false colors</comment><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true">gray<options>gray
false-color
RGB</options></input><input type="%s">myData</input><input type="%n">0</input><input type="%n">255</input><input type="%b">false</input><input type="%txt">thisSprite<options>thisSprite
theStage
anotherSprite</options></input></inputs><script><block s="doWarp"><script><block s="doDeclareVariables"><list><l>pixels</l><l>source</l><l>gray</l><l>target</l></list></block><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>theStage</l></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>thisSprite</l></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s an ImagePad?"><block var="target"/></custom-block></block><script><custom-block s="report SciSnap! error %txt"><l>ERROR: target isn't configured as ImagePad</l></custom-block><block s="doStopThis"><l><option>this block</option></l></block></script></block><block s="doSetVar"><l>color</l><block s="reportListItem"><l>1</l><block s="reportTextSplit"><block var="color"/><l> </l></block></block></block><block s="doSetVar"><l>source</l><block s="reportIfElse"><block s="reportEquals"><block var="data"/><l>myData</l></block><block s="reportAttributeOf"><l>myData</l><block var="target"/></block><block var="data"/></block></block><block s="doIfElse"><block s="reportEquals"><custom-block s="ImagePadProperty %txt of %txt"><l>typeOfData</l><block var="target"/></custom-block><l>FITS</l></block><script><block s="doSetVar"><l>gray</l><block s="reportIfElse"><block s="reportEquals"><block var="color"/><l>gray</l></block><block s="reportBoolean"><l><bool>true</bool></l></block><block s="reportBoolean"><l><bool>false</bool></l></block></block></block><block s="doIfElse"><block s="reportIsIdentical"><block var="target"/><block s="reportObject"><l>Stage</l></block></block><script><block s="doSetVar"><l>pixels</l><block s="reportApplyExtension"><l>SciS_FITSpixelsOnStageForImagePad(data,min,max,gray,log,pixels,cAttributes,iAttributes)</l><list><block var="source"/><block var="min"/><block var="max"/><block var="gray"/><block var="log"/><block s="reportAskFor"><l>Stage</l><block s="reifyReporter"><autolambda><block s="reportGetImageAttribute"><l><option>pixels</option></l><l><option>current</option></l></block></autolambda><list></list></block><list></list></block><custom-block s="ImagePadProperty %txt of %txt"><l>costumeProperties</l><l>theStage</l></custom-block><custom-block s="ImagePadProperty %txt of %txt"><l>imageProperties</l><l>theStage</l></custom-block></list></block></block><block s="doTellTo"><l>Stage</l><block s="reifyScript"><script><block s="doSwitchToCostume"><l></l></block></script><list></list></block><list><block s="reportNewCostume"><block var="pixels"/><block s="reportListItem"><l>1</l><custom-block s="ImagePadProperty %txt of %txt"><l>costumeProperties</l><l>theStage</l></custom-block></block><block s="reportListItem"><l>2</l><custom-block s="ImagePadProperty %txt of %txt"><l>costumeProperties</l><l>theStage</l></custom-block></block></block></list></block></script><script><block s="doSetVar"><l>pixels</l><block s="reportApplyExtension"><l>SciS_FITSpixelsOnSpriteForImagePad(data,min,max,gray,log,iAttributes)</l><list><block var="source"/><block var="min"/><block var="max"/><block var="gray"/><block var="log"/><custom-block s="ImagePadProperty %txt of %txt"><l>imageProperties</l><block var="target"/></custom-block></list></block></block><block s="doTellTo"><block var="target"/><block s="reifyReporter"><script><block s="doSwitchToCostume"><l></l></block></script><list></list></block><list><block s="reportNewCostume"><block var="pixels"/><block s="reportListItem"><l>1</l><custom-block s="ImagePadProperty %txt of %txt"><l>costumeProperties</l><block var="target"/></custom-block></block><block s="reportListItem"><l>2</l><custom-block s="ImagePadProperty %txt of %txt"><l>costumeProperties</l><block var="target"/></custom-block></block></block></list></block></script></block></script><script><block s="doIfElse"><block s="reportEquals"><custom-block s="ImagePadProperty %txt of %txt"><l>typeOfData</l><block var="target"/></custom-block><l>RGB</l></block><script><block s="doIfElse"><block s="reportEquals"><block var="color"/><l>RGB</l></block><script><block s="doTellTo"><block var="target"/><block s="reifyScript"><script><block s="doSwitchToCostume"><l></l></block></script><list></list></block><list><block s="reportNewCostume"><block var="source"/><block s="reportListItem"><l>1</l><custom-block s="ImagePadProperty %txt of %txt"><l>costumeProperties</l><block var="target"/></custom-block></block><block s="reportListItem"><l>2</l><custom-block s="ImagePadProperty %txt of %txt"><l>costumeProperties</l><block var="target"/></custom-block></block></block></list></block></script><script><block s="doSetVar"><l>gray</l><block s="reportIfElse"><block s="reportEquals"><block var="color"/><l>gray</l></block><block s="reportBoolean"><l><bool>true</bool></l></block><block s="reportBoolean"><l><bool>false</bool></l></block></block></block><block s="doIfElse"><block s="reportIsIdentical"><block var="target"/><block s="reportObject"><l>Stage</l></block></block><script><block s="doSetVar"><l>pixels</l><block s="reportApplyExtension"><l>SciS_RGBpixelsOnStageForImagePad(data,min,max,gray,log,pixels,cAttributes,iAttributes)</l><list><block var="source"/><block var="min"/><block var="max"/><block var="gray"/><block var="log"/><block s="reportAskFor"><l>Stage</l><block s="reifyReporter"><autolambda><block s="reportGetImageAttribute"><l><option>pixels</option></l><l><option>current</option></l></block></autolambda><list></list></block><list></list></block><custom-block s="ImagePadProperty %txt of %txt"><l>costumeProperties</l><l>theStage</l></custom-block><custom-block s="ImagePadProperty %txt of %txt"><l>imageProperties</l><l>theStage</l></custom-block></list></block></block><block s="doTellTo"><l>Stage</l><block s="reifyScript"><script><block s="doSwitchToCostume"><l></l></block></script><list></list></block><list><block s="reportNewCostume"><block var="pixels"/><block s="reportListItem"><l>1</l><custom-block s="ImagePadProperty %txt of %txt"><l>costumeProperties</l><l>theStage</l></custom-block></block><block s="reportListItem"><l>2</l><custom-block s="ImagePadProperty %txt of %txt"><l>costumeProperties</l><l>theStage</l></custom-block></block></block></list></block></script><script><block s="doSetVar"><l>pixels</l><block s="reportApplyExtension"><l>SciS_RGBpixelsOnSpriteForImagePad(data,min,max,gray,log)</l><list><block var="source"/><block var="min"/><block var="max"/><block var="gray"/><block var="log"/></list></block></block><block s="doTellTo"><block var="target"/><block s="reifyScript"><script><block s="doSwitchToCostume"><l></l></block></script><list></list></block><list><block s="reportNewCostume"><block var="pixels"/><block s="reportListItem"><l>1</l><custom-block s="ImagePadProperty %txt of %txt"><l>costumeProperties</l><block var="target"/></custom-block></block><block s="reportListItem"><l>2</l><custom-block s="ImagePadProperty %txt of %txt"><l>costumeProperties</l><block var="target"/></custom-block></block></block></list></block></script></block></script></block></script><script><custom-block s="report SciSnap! error %txt"><l>ERROR: only RGB- and FITS-images supported!</l></custom-block></script></block></script></block></script></block></script></block-definition><block-definition s="add grid %'theGrid' on %'sprite' with grid lines? %'withLines'" type="command" category="6. ImagePad for image operations"><comment x="0" y="0" w="163" collapsed="false">Draws a grid on an ImagePad.</comment><header></header><code></code><translations></translations><inputs><input type="%s">myData</input><input type="%s">thisSprite<options>thisSprite
theStage
anotherSprite</options></input><input type="%b">true</input></inputs><script><block s="doDeclareVariables"><list><l>target</l><l>data</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>theStage</l></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>thisSprite</l></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s an ImagePad?"><block var="target"/></custom-block></block><script><custom-block s="report SciSnap! error %txt"><l>ERROR: target isn't configured as GridPad</l></custom-block><block s="doStopThis"><l><option>this block</option></l></block></script></block><block s="doIfElse"><block s="reportEquals"><block var="theGrid"/><l>myData</l></block><script><block s="doSetVar"><l>data</l><block s="reportAttributeOf"><l>myData</l><block var="target"/></block></block></script><script><block s="doSetVar"><l>data</l><block var="theGrid"/></block></script></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a %txt"><block var="data"/><l>matrix</l></custom-block></block><script><custom-block s="report SciSnap! error %txt"><l>ERROR: matrix data required!</l></custom-block><block s="doStopThis"><l><option>this block</option></l></block></script></block><block s="doIf"><block s="reportNot"><block s="reportAnd"><block s="reportEquals"><block s="reportListItem"><l>1</l><custom-block s="ImagePadProperty %txt of %txt"><l>gridProperties</l><block var="target"/></custom-block></block><block s="reportListAttribute"><l><option>length</option></l><block s="reportListItem"><l>1</l><block var="data"/></block></block></block><block s="reportEquals"><block s="reportListItem"><l>2</l><custom-block s="ImagePadProperty %txt of %txt"><l>gridProperties</l><block var="target"/></custom-block></block><block s="reportListAttribute"><l><option>length</option></l><block var="data"/></block></block></block></block><script><custom-block s="report SciSnap! error %txt"><l>ERROR: wrong grid dimensions!</l></custom-block><block s="doStopThis"><l><option>this block</option></l></block></script></block></script></block><block s="doTellTo"><block var="target"/><block s="reifyScript"><script><block s="doSwitchToCostume"><block s="reportApplyExtension"><l>SciS_addGridToImagePad(costume,gridProperties,colors,withLines,data)</l><list><block s="reportAskFor"><block var="target"/><block s="reifyReporter"><autolambda><block s="reportGet"><l><option>costume</option></l></block></autolambda><list></list></block><list></list></block><custom-block s="ImagePadProperty %txt of %txt"><l>gridProperties</l><block var="target"/></custom-block><custom-block s="ImagePadProperty %txt of %txt"><l>gridColors</l><block var="target"/></custom-block><block var="withLines"/><block var="data"/></list></block></block></script><list></list></block><list></list></block></script></block-definition><block-definition s="draw line from %'x1' %'y1' to %'x2' %'y2' on %'sprite'" type="command" category="6. ImagePad for image operations"><comment x="0" y="0" w="153.10468750000004" collapsed="false">Draws a line on present costume using line properties. Attention: JS coordinates are used. </comment><header></header><code></code><translations></translations><inputs><input type="%n">10</input><input type="%n">10</input><input type="%n">100</input><input type="%n">100</input><input type="%txt">thisSprite<options>thisSprite
theStage
anotherSprite</options></input></inputs><script><block s="doWarp"><script><block s="doDeclareVariables"><list><l>target</l></list></block><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>theStage</l></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>thisSprite</l></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s an ImagePad?"><block var="target"/></custom-block></block><script><custom-block s="report SciSnap! error %txt"><l>ERROR: target isn't configured as ImagePad</l></custom-block><block s="doStopThis"><l><option>this block</option></l></block></script></block><block s="doTellTo"><block var="target"/><block s="reifyScript"><script><block s="doSwitchToCostume"><block s="reportApplyExtension"><l>SciS_drawLineOnImagepad(costume,x1,y1,x2,y2,lineAttributes)</l><list><block s="reportAskFor"><block var="target"/><block s="reifyReporter"><autolambda><block s="reportGet"><l><option>costume</option></l></block></autolambda><list></list></block><list></list></block><block var="x1"/><block var="y1"/><block var="x2"/><block var="y2"/><custom-block s="ImagePadProperty %txt of %txt"><l>lineProperties</l><block var="target"/></custom-block></list></block></block></script><list></list></block><list></list></block></script></block></script></block-definition><block-definition s="draw rectangle from %'x1' %'y1' to %'x2' %'y2' on %'sprite'" type="command" category="6. ImagePad for image operations"><comment x="0" y="0" w="130.83333333333334" collapsed="false">Draws a rectangle on present costume using line properties. Attention: JS coordinates are used. </comment><header></header><code></code><translations></translations><inputs><input type="%n">10</input><input type="%n">10</input><input type="%n">100</input><input type="%n">100</input><input type="%txt">thisSprite<options>thisSprite
theStage
anotherSprite</options></input></inputs><script><block s="doDeclareVariables"><list><l>x</l><l>y</l><l>w</l><l>h</l><l>target</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>theStage</l></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>thisSprite</l></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s an ImagePad?"><block var="target"/></custom-block></block><script><custom-block s="report SciSnap! error %txt"><l>ERROR: target isn't configured as ImagePad</l></custom-block><block s="doStopThis"><l><option>this block</option></l></block></script></block><block s="doIfElse"><block s="reportGreaterThan"><block var="x1"/><block var="x2"/></block><script><block s="doSetVar"><l>x</l><block var="x2"/></block><block s="doSetVar"><l>w</l><block s="reportDifference"><block var="x1"/><block var="x2"/></block></block></script><script><block s="doSetVar"><l>x</l><block var="x1"/></block><block s="doSetVar"><l>w</l><block s="reportDifference"><block var="x2"/><block var="x1"/></block></block></script></block><block s="doIfElse"><block s="reportGreaterThan"><block var="y1"/><block var="y2"/></block><script><block s="doSetVar"><l>y</l><block var="y2"/></block><block s="doSetVar"><l>h</l><block s="reportDifference"><block var="y1"/><block var="y2"/></block></block></script><script><block s="doSetVar"><l>y</l><block var="y1"/></block><block s="doSetVar"><l>h</l><block s="reportDifference"><block var="y2"/><block var="y1"/></block></block></script></block><block s="doTellTo"><block var="target"/><block s="reifyScript"><script><block s="doSwitchToCostume"><l></l></block></script><list></list></block><list><block s="reportApplyExtension"><l>SciS_drawRectangleOnImagepad(costume,x1,y1,width,height,lineAttributes)</l><list><block s="reportAskFor"><block var="target"/><block s="reifyReporter"><autolambda><block s="reportGet"><l><option>costume</option></l></block></autolambda><list></list></block><list></list></block><block var="x"/><block var="y"/><block var="w"/><block var="h"/><custom-block s="ImagePadProperty %txt of %txt"><l>lineProperties</l><block var="target"/></custom-block></list></block></list></block></script></block></script></block-definition><block-definition s="fill rectangle from %'x1' %'y1' to %'x2' %'y2' on %'sprite'" type="command" category="6. ImagePad for image operations"><comment x="0" y="0" w="164.6575342465754" collapsed="false">Fills a rectangle on present costume using surface properties. Attention: JS coordinates are used.</comment><header></header><code></code><translations></translations><inputs><input type="%n">10</input><input type="%n">10</input><input type="%n">100</input><input type="%n">100</input><input type="%txt">thisSprite<options>thisSprite
theStage
anotherSprite</options></input></inputs><script><block s="doDeclareVariables"><list><l>x</l><l>y</l><l>w</l><l>h</l><l>target</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>theStage</l></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>thisSprite</l></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s an ImagePad?"><block var="target"/></custom-block></block><script><custom-block s="report SciSnap! error %txt"><l>ERROR: target isn't configured as ImagePad</l></custom-block><block s="doStopThis"><l><option>this block</option></l></block></script></block><block s="doIfElse"><block s="reportGreaterThan"><block var="x1"/><block var="x2"/></block><script><block s="doSetVar"><l>x</l><block var="x2"/></block><block s="doSetVar"><l>w</l><block s="reportDifference"><block var="x1"/><block var="x2"/></block></block></script><script><block s="doSetVar"><l>x</l><block var="x1"/></block><block s="doSetVar"><l>w</l><block s="reportDifference"><block var="x2"/><block var="x1"/></block></block></script></block><block s="doIfElse"><block s="reportGreaterThan"><block var="y1"/><block var="y2"/></block><script><block s="doSetVar"><l>y</l><block var="y2"/></block><block s="doSetVar"><l>h</l><block s="reportDifference"><block var="y1"/><block var="y2"/></block></block></script><script><block s="doSetVar"><l>y</l><block var="y1"/></block><block s="doSetVar"><l>h</l><block s="reportDifference"><block var="y2"/><block var="y1"/></block></block></script></block><block s="doTellTo"><block var="target"/><block s="reifyScript"><script><block s="doSwitchToCostume"><l></l></block></script><list></list></block><list><block s="reportApplyExtension"><l>SciS_fillRectangleOnImagepad(costume,x1,y1,width,height,lineAttributes)</l><list><block s="reportAskFor"><block var="target"/><block s="reifyReporter"><autolambda><block s="reportGet"><l><option>costume</option></l></block></autolambda><list></list></block><list></list></block><block var="x"/><block var="y"/><block var="w"/><block var="h"/><custom-block s="ImagePadProperty %txt of %txt"><l>lineProperties</l><block var="target"/></custom-block></list></block></list></block></script></block></script></block-definition><block-definition s="draw circle center: %'x' %'y' radius: %'radius' on %'sprite'" type="command" category="6. ImagePad for image operations"><comment x="0" y="0" w="215.6098307291664" collapsed="false">Draws a circle on present costume using line properties. Attention: JS coordinates are used.</comment><header></header><code></code><translations></translations><inputs><input type="%n">100</input><input type="%n">100</input><input type="%n">20</input><input type="%txt">thisSprite<options>thisSprite
theStage
anotherSprite</options></input></inputs><script><block s="doDeclareVariables"><list><l>target</l></list></block><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>theStage</l></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>thisSprite</l></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s an ImagePad?"><block var="target"/></custom-block></block><script><custom-block s="report SciSnap! error %txt"><l>ERROR: target isn't configured as ImagePad</l></custom-block><block s="doStopThis"><l><option>this block</option></l></block></script></block><block s="doTellTo"><block var="target"/><block s="reifyScript"><script><block s="doSwitchToCostume"><l></l></block></script><list></list></block><list><block s="reportApplyExtension"><l>SciS_drawCircleOnImagepad(costume,x,y,radius,lineAttributes)</l><list><block s="reportAskFor"><block var="target"/><block s="reifyReporter"><autolambda><block s="reportGet"><l><option>costume</option></l></block></autolambda><list></list></block><list></list></block><block var="x"/><block var="y"/><block var="radius"/><custom-block s="ImagePadProperty %txt of %txt"><l>lineProperties</l><block var="target"/></custom-block></list></block></list></block></script></block-definition><block-definition s="fill circle center: %'x' %'y' radius: %'radius' on %'sprite'" type="command" category="6. ImagePad for image operations"><comment x="0" y="0" w="160.5251141552513" collapsed="false">Fills a circle on present costume using surface properties. Attention: JS coordinates are used.</comment><header></header><code></code><translations></translations><inputs><input type="%n">100</input><input type="%n">100</input><input type="%n">20</input><input type="%txt">thisSprite<options>thisSprite
theStage
anotherSprite</options></input></inputs><script><block s="doDeclareVariables"><list><l>target</l></list></block><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>theStage</l></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>thisSprite</l></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s an ImagePad?"><block var="target"/></custom-block></block><script><custom-block s="report SciSnap! error %txt"><l>ERROR: target isn't configured as ImagePad</l></custom-block><block s="doStopThis"><l><option>this block</option></l></block></script></block><block s="doTellTo"><block var="target"/><block s="reifyScript"><script><block s="doSwitchToCostume"><l></l></block></script><list></list></block><list><block s="reportApplyExtension"><l>SciS_fillCircleOnImagepad(costume,x,y,radius,lineAttributes)</l><list><block s="reportAskFor"><block var="target"/><block s="reifyReporter"><autolambda><block s="reportGet"><l><option>costume</option></l></block></autolambda><list></list></block><list></list></block><block var="x"/><block var="y"/><block var="radius"/><custom-block s="ImagePadProperty %txt of %txt"><l>lineProperties</l><block var="target"/></custom-block></list></block></list></block></script></block-definition><block-definition s="draw text %'text' at %'x' %'y' height: %'height' $nl horizontal? %'horizontal' on %'sprite'" type="command" category="6. ImagePad for image operations"><comment x="0" y="0" w="158.33333333333334" collapsed="false">Draws a text on present costume using line properties. Attention: JS coordinates are used.</comment><header></header><code></code><translations></translations><inputs><input type="%txt">my text</input><input type="%n">100</input><input type="%n">50</input><input type="%n">12</input><input type="%b">true</input><input type="%txt">thisSprite<options>thisSprite
theStage
anotherSprite</options></input></inputs><script><block s="doDeclareVariables"><list><l>target</l></list></block><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>theStage</l></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>thisSprite</l></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s an ImagePad?"><block var="target"/></custom-block></block><script><custom-block s="report SciSnap! error %txt"><l>ERROR: target isn't configured as ImagePad</l></custom-block><block s="doStopThis"><l><option>this block</option></l></block></script></block><block s="doTellTo"><block var="target"/><block s="reifyScript"><script><block s="doSwitchToCostume"><l></l></block></script><list></list></block><list><block s="reportApplyExtension"><l>SciS_drawTextOnImagepad(costume,x,y,text,height,horizontal,lineAttributes)</l><list><block s="reportAskFor"><block var="target"/><block s="reifyReporter"><autolambda><block s="reportGet"><l><option>costume</option></l></block></autolambda><list></list></block><list></list></block><block var="x"/><block var="y"/><block var="text"/><block var="height"/><block var="horizontal"/><custom-block s="ImagePadProperty %txt of %txt"><l>lineProperties</l><block var="target"/></custom-block></list></block></list></block></script></block-definition><block-definition s="draw list of points %'data' as %'shape' size: %'size' on %'sprite'" type="command" category="6. ImagePad for image operations"><comment x="0" y="0" w="321.8186688427511" collapsed="false">Draws a list of "point" as "balls". Attention: JS-coordinates are used!</comment><header></header><code></code><translations></translations><inputs><input type="%s">myData</input><input type="%s" readonly="true">circles<options>circles
squares</options></input><input type="%n">5</input><input type="%txt">thisSprite<options>thisSprite
theStage
anotherSprite</options></input></inputs><script><block s="doDeclareVariables"><list><l>target</l><l>source</l></list></block><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>theStage</l></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>thisSprite</l></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s an ImagePad?"><block var="target"/></custom-block></block><script><custom-block s="report SciSnap! error %txt"><l>ERROR: target isn't configured as ImagePad</l></custom-block><block s="doStopThis"><l><option>this block</option></l></block></script></block><block s="doSetVar"><l>source</l><block s="reportIfElse"><block s="reportEquals"><block var="data"/><l>myData</l></block><block var="myData"/><block var="data"/></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a %txt"><block var="source"/><l>matrix</l></custom-block></block><script><custom-block s="report SciSnap! error %txt"><l>ERROR: only definied for matrices!</l></custom-block><block s="doStopThis"><l><option>this block</option></l></block></script></block><block s="doIf"><block s="reportNot"><block s="reportGreaterThan"><block s="reportListAttribute"><l><option>length</option></l><block var="source"/></block><l>0</l></block></block><script><custom-block s="report SciSnap! error %txt"><l>ERROR: missing data!</l></custom-block><block s="doStopThis"><l><option>this block</option></l></block></script></block><block s="doIf"><block s="reportNot"><block s="reportGreaterThanOrEquals"><block s="reportListAttribute"><l><option>length</option></l><block s="reportListItem"><l>1</l><block var="source"/></block></block><l>2</l></block></block><script><custom-block s="report SciSnap! error %txt"><l>ERROR: coordinates in a plane needed!</l></custom-block><block s="doStopThis"><l><option>this block</option></l></block></script></block><block s="doTellTo"><block var="target"/><block s="reifyScript"><script><block s="doSwitchToCostume"><l></l></block></script><list></list></block><list><block s="reportApplyExtension"><l>SciS_drawListOfPoints(costume,data,shape,size,lineAttributes)</l><list><block s="reportAskFor"><block var="target"/><block s="reifyReporter"><autolambda><block s="reportGet"><l><option>costume</option></l></block></autolambda><list></list></block><list></list></block><custom-block s="columns %mult%s of %s %br from row %s to %s"><list><l>1</l><l>2</l></list><block var="source"/><l>1</l><l>last</l></custom-block><block var="shape"/><block var="size"/><custom-block s="ImagePadProperty %txt of %txt"><l>lineProperties</l><block var="target"/></custom-block></list></block></list></block></script></block-definition><block-definition s="set RGB at %'x' %'y' on %'sprite' to %'r' %'g' %'b'" type="command" category="6. ImagePad for image operations"><comment x="0" y="0" w="186.66666666666669" collapsed="false">Sets the RGB value at (x|y) on costume. Attention: JS-coordinates are used!</comment><header></header><code></code><translations></translations><inputs><input type="%n">1</input><input type="%n">1</input><input type="%txt">thisSprite<options>thisSprite
theStage
anotherSprite</options></input><input type="%n">255</input><input type="%n">100</input><input type="%n">30</input></inputs><script><block s="doWarp"><script><block s="doDeclareVariables"><list><l>target</l><l>props</l></list></block><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>theStage</l></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>thisSprite</l></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s an ImagePad?"><block var="target"/></custom-block></block><script><custom-block s="report SciSnap! error %txt"><l>ERROR: target isn't configured as ImagePad</l></custom-block><block s="doStopThis"><l><option>this block</option></l></block></script></block><block s="doIfElse"><block s="reportOr"><block s="reportOr"><block s="reportGreaterThan"><block var="x"/><block s="reportListItem"><l>1</l><custom-block s="ImagePadProperty %txt of %txt"><l>costumeProperties</l><block var="target"/></custom-block></block></block><block s="reportGreaterThan"><block var="y"/><block s="reportListItem"><l>2</l><custom-block s="ImagePadProperty %txt of %txt"><l>costumeProperties</l><block var="target"/></custom-block></block></block></block><block s="reportOr"><block s="reportLessThan"><block var="x"/><l>1</l></block><block s="reportLessThan"><block var="y"/><l>1</l></block></block></block><script><custom-block s="report SciSnap! error %txt"><l>ERROR: coordinates out of range!</l></custom-block></script><script><block s="doSetVar"><l>props</l><custom-block s="ImagePadProperty %txt of %txt"><l>lineProperties</l><block var="target"/></custom-block></block><block s="doReplaceInList"><l>3</l><block var="props"/><block var="r"/></block><block s="doReplaceInList"><l>4</l><block var="props"/><block var="g"/></block><block s="doReplaceInList"><l>5</l><block var="props"/><block var="b"/></block><custom-block s="set ImagePadProperty %txt of %txt to %s"><l>lineProperties</l><block var="target"/><block var="props"/></custom-block><custom-block s="draw line from %n %n to %n %n on %txt"><block s="reportDifference"><block var="x"/><l>1</l></block><block var="y"/><block var="x"/><block var="y"/><block var="target"/></custom-block></script></block></script></block></script></block-definition><block-definition s="RGB at %'x' %'y' on %'sprite'" type="reporter" category="6. ImagePad for image operations"><comment x="0" y="0" w="263.41324200913243" collapsed="false">Reports the RGB value at the position (x|y) of the costume. JS-code-snippets copied from Snap!-code. Attention: JS-coordinates are used!</comment><header></header><code></code><translations></translations><inputs><input type="%n">1</input><input type="%n">1</input><input type="%txt">thisSprite<options>thisSprite
theStage
anotherSprite</options></input></inputs><script><block s="doWarp"><script><block s="doDeclareVariables"><list><l>target</l><l>b</l></list></block><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>theStage</l></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>thisSprite</l></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s an ImagePad?"><block var="target"/></custom-block></block><script><block s="doReport"><l>ERROR: target isn't configured as ImagePad!</l></block></script></block><block s="doIfElse"><block s="reportOr"><block s="reportOr"><block s="reportGreaterThan"><block var="x"/><block s="reportListItem"><l>1</l><custom-block s="ImagePadProperty %txt of %txt"><l>costumeProperties</l><block var="target"/></custom-block></block></block><block s="reportGreaterThan"><block var="y"/><block s="reportListItem"><l>2</l><custom-block s="ImagePadProperty %txt of %txt"><l>costumeProperties</l><block var="target"/></custom-block></block></block></block><block s="reportOr"><block s="reportLessThan"><block var="x"/><l>1</l></block><block s="reportLessThan"><block var="y"/><l>1</l></block></block></block><script><block s="doReport"><l>ERROR: coordinates out of range!</l></block></script><script><block s="doReport"><block s="reportListItem"><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><block s="reportDifference"><block var="y"/><l>1</l></block><block s="reportAskFor"><block var="target"/><block s="reifyReporter"><autolambda><block s="reportGetImageAttribute"><l><option>width</option></l><l><option>current</option></l></block></autolambda><list></list></block><list></list></block></list></block><block var="x"/></list></block><block s="reportAskFor"><block var="target"/><block s="reifyReporter"><autolambda><block s="reportGetImageAttribute"><l><option>pixels</option></l><l><option>current</option></l></block></autolambda><list></list></block><list></list></block></block></block></script></block></script></block></script></block-definition><block-definition s="set image value of myData at %'x' %'y' $nl on %'sprite' to %'value'" type="command" category="6. ImagePad for image operations"><comment x="0" y="0" w="163.3333333333337" collapsed="false">Sets the value at (x|y) in myData. Attention: JS-coordinates are used!</comment><header></header><code></code><translations></translations><inputs><input type="%n">1</input><input type="%n">1</input><input type="%txt">thisSprite<options>thisSprite
theStage
anotherSprite</options></input><input type="%s"></input></inputs><script><block s="doWarp"><script><block s="doDeclareVariables"><list><l>target</l></list></block><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>theStage</l></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>thisSprite</l></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s an ImagePad?"><block var="target"/></custom-block></block><script><custom-block s="report SciSnap! error %txt"><l>ERROR: target isn't configured as ImagePad</l></custom-block><block s="doStopThis"><l><option>this block</option></l></block></script></block><block s="doIfElse"><block s="reportOr"><block s="reportEquals"><custom-block s="ImagePadProperty %txt of %txt"><l>typeOfData</l><block var="target"/></custom-block><l>RGB</l></block><block s="reportEquals"><custom-block s="ImagePadProperty %txt of %txt"><l>typeOfData</l><block var="target"/></custom-block><l>FITS</l></block></block><script><block s="doSetVar"><l>x</l><block s="reportRound"><block var="x"/></block></block><block s="doSetVar"><l>y</l><block s="reportRound"><block var="y"/></block></block><block s="doIfElse"><block s="reportOr"><block s="reportOr"><block s="reportGreaterThan"><block var="x"/><block s="reportListItem"><l>2</l><custom-block s="ImagePadProperty %txt of %txt"><l>imageProperties</l><block var="target"/></custom-block></block></block><block s="reportGreaterThan"><block var="y"/><block s="reportListItem"><l>3</l><custom-block s="ImagePadProperty %txt of %txt"><l>imageProperties</l><block var="target"/></custom-block></block></block></block><block s="reportOr"><block s="reportLessThan"><block var="x"/><l>1</l></block><block s="reportLessThan"><block var="y"/><l>1</l></block></block></block><script><custom-block s="report SciSnap! error %txt"><l>ERROR: coordinates out of range!</l></custom-block><block s="doStopThis"><l><option>this block</option></l></block></script><script><block s="doIfElse"><block s="reportNot"><block s="reportOr"><block s="reportAnd"><block s="reportIsA"><block s="reportListItem"><l>1</l><block s="reportAttributeOf"><l>myData</l><block var="target"/></block></block><l><option>list</option></l></block><block s="reportIsA"><block var="value"/><l><option>list</option></l></block></block><block s="reportAnd"><block s="reportIsA"><block s="reportListItem"><l>1</l><block s="reportAttributeOf"><l>myData</l><block var="target"/></block></block><l><option>number</option></l></block><block s="reportIsA"><block var="value"/><l><option>number</option></l></block></block></block></block><script><custom-block s="report SciSnap! error %txt"><l>ERROR: wrong data format!</l></custom-block><block s="doStopThis"><l><option>this block</option></l></block></script><script><block s="doReplaceInList"><block s="reportVariadicSum"><list><block var="x"/><block s="reportVariadicProduct"><list><block s="reportDifference"><block var="y"/><l>1</l></block><block s="reportListItem"><l>2</l><custom-block s="ImagePadProperty %txt of %txt"><l>imageProperties</l><block var="target"/></custom-block></block></list></block></list></block><block s="reportAttributeOf"><l>myData</l><block var="target"/></block><block var="value"/></block></script></block></script></block></script><script><custom-block s="report SciSnap! error %txt"><l>ERROR: only RGB- and FITS-data supported!</l></custom-block></script></block></script></block></script></block-definition><block-definition s="image value of myData at %'x' %'y' on %'sprite'" type="reporter" category="6. ImagePad for image operations"><comment x="0" y="0" w="170" collapsed="false">Reads the data value at the position (x/y) of an image stored in myData.
Attention: JS-coordinates are used!</comment><header></header><code></code><translations></translations><inputs><input type="%n">1</input><input type="%n">1</input><input type="%txt">thisSprite<options>thisSprite
theStage
anotherSprite</options></input></inputs><script><block s="doWarp"><script><block s="doDeclareVariables"><list><l>target</l></list></block><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>theStage</l></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>thisSprite</l></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s an ImagePad?"><block var="target"/></custom-block></block><script><block s="doReport"><l>ERROR: target isn't configured as ImagePad!</l></block></script></block><block s="doIfElse"><block s="reportOr"><block s="reportEquals"><custom-block s="ImagePadProperty %txt of %txt"><l>typeOfData</l><block var="target"/></custom-block><l>RGB</l></block><block s="reportEquals"><custom-block s="ImagePadProperty %txt of %txt"><l>typeOfData</l><block var="target"/></custom-block><l>FITS</l></block></block><script><block s="doSetVar"><l>x</l><block s="reportRound"><block var="x"/></block></block><block s="doSetVar"><l>y</l><block s="reportRound"><block var="y"/></block></block><block s="doIfElse"><block s="reportOr"><block s="reportOr"><block s="reportGreaterThan"><block var="x"/><block s="reportListItem"><l>2</l><custom-block s="ImagePadProperty %txt of %txt"><l>imageProperties</l><block var="target"/></custom-block></block></block><block s="reportGreaterThan"><block var="y"/><block s="reportListItem"><l>3</l><custom-block s="ImagePadProperty %txt of %txt"><l>imageProperties</l><block var="target"/></custom-block></block></block></block><block s="reportOr"><block s="reportLessThan"><block var="x"/><l>1</l></block><block s="reportLessThan"><block var="y"/><l>1</l></block></block></block><script><block s="doReport"><l>ERROR: coordinates out of range!</l></block></script><script><block s="doReport"><block s="reportListItem"><block s="reportVariadicSum"><list><block var="x"/><block s="reportVariadicProduct"><list><block s="reportDifference"><block var="y"/><l>1</l></block><block s="reportListItem"><l>2</l><custom-block s="ImagePadProperty %txt of %txt"><l>imageProperties</l><block var="target"/></custom-block></block></list></block></list></block><block s="reportAttributeOf"><l>myData</l><block var="target"/></block></block></block></script></block></script><script><block s="doReport"><l>ERROR: only defined for image data!</l></block></script></block></script></block></script></block-definition><block-definition s="%'selection' on %'sprite' by mouse" type="reporter" category="6. ImagePad for image operations"><comment x="0" y="0" w="168.33333333333334" collapsed="false">Obtaining data with the mouse from an image or grid stored in myData.</comment><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true">image-value<options>image-value
costume-coordinates
slice-data
line-data
circle-data
brightness
cell-value</options></input><input type="%txt">thisSprite<options>thisSprite
theStage
anotherSprite</options></input></inputs><script><block s="doDeclareVariables"><list><l>h</l><l>result</l><l>i</l><l>m</l><l>pixel</l><l>dist</l><l>dx</l><l>dy</l><l>points</l><l>x1</l><l>y1</l><l>x2</l><l>y2</l><l>x</l><l>y</l><l>p1</l><l>p2</l><l>w</l><l>h</l><l>secondCostume</l><l>ok</l><l>xold</l><l>yold</l><l>radius</l><l>sumOfValues</l><l>value</l><l>center</l><l>costume</l><l>target</l><l>targetCostume</l><l>targetCostumeWidth</l><l>targetCostumeHeight</l><l>targetXPosition</l><l>targetYPosition</l><l>targetSize</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>theStage</l></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>thisSprite</l></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s an ImagePad?"><block var="target"/></custom-block></block><script><block s="doReport"><l>ERROR: target isn't configured as ImagePad!</l></block></script></block><block s="doSetVar"><l>selection</l><block s="reportListItem"><l>1</l><block s="reportTextSplit"><block var="selection"/><l> </l></block></block></block><block s="doSetVar"><l>targetCostume</l><block s="reportAskFor"><block var="target"/><block s="reifyReporter"><autolambda><block s="reportGet"><l><option>costume</option></l></block></autolambda><list></list></block><list></list></block></block><block s="doSetVar"><l>targetCostumeWidth</l><block s="reportGetImageAttribute"><l><option>width</option></l><block var="targetCostume"/></block></block><block s="doSetVar"><l>targetCostumeHeight</l><block s="reportGetImageAttribute"><l><option>height</option></l><block var="targetCostume"/></block></block><block s="doIfElse"><block s="reportIsIdentical"><block var="target"/><block s="reportObject"><l>Stage</l></block></block><script><block s="doSetVar"><l>targetXPosition</l><block s="reportMonadic"><l><option>neg</option></l><block s="reportRound"><block s="reportQuotient"><block var="targetCostumeWidth"/><l>2</l></block></block></block></block><block s="doSetVar"><l>targetYPosition</l><block s="reportRound"><block s="reportQuotient"><block var="targetCostumeHeight"/><l>2</l></block></block></block><block s="doSetVar"><l>targetSize</l><l>100</l></block><block s="doSetVar"><l>x</l><block s="reportDifference"><block s="reportMouseX"></block><block var="targetXPosition"/></block></block><block s="doSetVar"><l>y</l><block s="reportDifference"><block var="targetYPosition"/><block s="reportMouseY"></block></block></block></script><script><block s="doSetVar"><l>targetXPosition</l><block s="reportAttributeOf"><l><option>x position</option></l><block var="target"/></block></block><block s="doSetVar"><l>targetYPosition</l><block s="reportAttributeOf"><l><option>y position</option></l><block var="target"/></block></block><block s="doSetVar"><l>targetSize</l><block s="reportAttributeOf"><l><option>size</option></l><block var="target"/></block></block><block s="doSetVar"><l>x</l><block s="reportRound"><block s="reportVariadicSum"><list><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><l>100</l><block s="reportQuotient"><block s="reportDifference"><block s="reportMouseX"></block><block var="targetXPosition"/></block><block var="targetSize"/></block></list></block><block s="reportQuotient"><block var="targetCostumeWidth"/><l>2</l></block></list></block><l>1</l></list></block></block></block><block s="doSetVar"><l>y</l><block s="reportRound"><block s="reportVariadicSum"><list><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><l>100</l><block s="reportQuotient"><block s="reportDifference"><block var="targetYPosition"/><block s="reportMouseY"></block></block><block var="targetSize"/></block></list></block><block s="reportQuotient"><block var="targetCostumeHeight"/><l>2</l></block></list></block><l>1</l></list></block></block></block></script></block></script></block><block s="doIf"><block s="reportEquals"><block var="selection"/><l>costume-coordinates</l><comment w="121.68283420138891" collapsed="false">costume coordinates.</comment></block><script><block s="doIfElse"><block s="reportOr"><block s="reportOr"><block s="reportGreaterThan"><block var="x"/><block var="targetCostumeWidth"/></block><block s="reportGreaterThan"><block var="y"/><block var="targetCostumeHeight"/></block></block><block s="reportOr"><block s="reportLessThan"><block var="x"/><l>1</l></block><block s="reportLessThan"><block var="y"/><l>1</l></block></block></block><script><block s="doReport"><block s="reportNewList"><list></list></block></block></script><script><block s="doReport"><block s="reportNewList"><list><block var="x"/><block var="y"/></list></block></block></script></block></script></block><block s="doIf"><block s="reportEquals"><block var="selection"/><l>line-data</l></block><script><block s="doWarp"><script><block s="doSetVar"><l>w</l><block var="targetCostumeWidth"/></block><block s="doSetVar"><l>h</l><block var="targetCostumeHeight"/></block><block s="doSetVar"><l>secondCostume</l><block s="reportNewCostume"><block s="reportGetImageAttribute"><l><option>pixels</option></l><block var="targetCostume"/></block><block var="targetCostumeWidth"/><block var="targetCostumeHeight"/></block></block><custom-block s="set ImagePad line properties style: %txt %br width: %n color: %n %n %n %br fill color: %n %n %n on %txt"><l>continuous</l><l>1</l><l>255</l><l>200</l><l>0</l><l>180</l><l>180</l><l>180</l><block var="target"/></custom-block><block s="doIf"><block s="reportNot"><block s="reportIsIdentical"><block var="target"/><block s="reportObject"><l>Stage</l></block></block></block><script><block s="doTellTo"><block var="target"/><block s="reifyScript"><script><block s="doRun"><block s="reifyScript"><script><block s="doSetVar"><l></l><block s="reportBoolean"><l><bool>false</bool></l></block></block></script><list></list></block><list><block s="reifyReporter"><autolambda><block s="reportGet"><l><option>draggable?</option></l></block></autolambda><list></list></block></list></block></script><list></list></block><list></list></block></script></block><block s="doSetVar"><l>ok</l><block s="reportBoolean"><l><bool>false</bool></l></block></block></script></block><block s="doUntil"><block var="ok"/><script><block s="doIf"><block s="reportMouseDown"></block><script><block s="doSetVar"><l>p1</l><custom-block s="%s on %txt by mouse"><l>costume-coordinates</l><block var="target"/></custom-block></block><block s="doIf"><block s="reportAnd"><block s="reportGreaterThanOrEquals"><block s="reportListItem"><l>1</l><block var="p1"/></block><l>1</l></block><block s="reportAnd"><block s="reportLessThanOrEquals"><block s="reportListItem"><l>1</l><block var="p1"/></block><block var="w"/></block><block s="reportAnd"><block s="reportGreaterThanOrEquals"><block s="reportListItem"><l>2</l><block var="p1"/></block><l>1</l></block><block s="reportLessThanOrEquals"><block s="reportListItem"><l>2</l><block var="p1"/></block><block var="h"/></block></block></block></block><script><block s="doSetVar"><l>xold</l><block s="reportListItem"><l>1</l><block var="p1"/></block></block><block s="doSetVar"><l>yold</l><block s="reportListItem"><l>2</l><block var="p1"/></block></block><block s="doSetVar"><l>ok</l><block s="reportBoolean"><l><bool>true</bool></l></block></block></script></block></script></block></script></block><block s="doSetVar"><l>ok</l><block s="reportBoolean"><l><bool>false</bool></l></block></block><block s="doUntil"><block var="ok"/><script><block s="doSetVar"><l>p2</l><custom-block s="%s on %txt by mouse"><l>costume-coordinates</l><block var="target"/></custom-block></block><block s="doIf"><block s="reportOr"><block s="reportNot"><block s="reportEquals"><block s="reportListItem"><l>1</l><block var="p2"/></block><block var="xold"/></block></block><block s="reportNot"><block s="reportEquals"><block s="reportListItem"><l>2</l><block var="p2"/></block><block var="yold"/></block></block></block><script><block s="doTellTo"><block var="target"/><block s="reifyScript"><script><block s="doSwitchToCostume"><l></l></block></script><list></list></block><list><block s="reportNewCostume"><block s="reportGetImageAttribute"><l><option>pixels</option></l><block var="secondCostume"/></block><block var="targetCostumeWidth"/><block var="targetCostumeHeight"/></block></list></block><block s="doSetVar"><l>xold</l><block s="reportListItem"><l>1</l><block var="p2"/></block></block><block s="doSetVar"><l>yold</l><block s="reportListItem"><l>2</l><block var="p2"/></block></block><custom-block s="draw line from %n %n to %n %n on %txt"><block s="reportListItem"><l>1</l><block var="p1"/></block><block s="reportListItem"><l>2</l><block var="p1"/></block><block s="reportListItem"><l>1</l><block var="p2"/></block><block s="reportListItem"><l>2</l><block var="p2"/></block><block var="target"/></custom-block></script></block><block s="doIf"><block s="reportNot"><block s="reportMouseDown"></block></block><script><block s="doIf"><block s="reportAnd"><block s="reportGreaterThanOrEquals"><block s="reportListItem"><l>1</l><block var="p2"/></block><l>1</l></block><block s="reportAnd"><block s="reportLessThanOrEquals"><block s="reportListItem"><l>1</l><block var="p2"/></block><block var="w"/></block><block s="reportAnd"><block s="reportGreaterThanOrEquals"><block s="reportListItem"><l>2</l><block var="p2"/></block><l>1</l></block><block s="reportLessThanOrEquals"><block s="reportListItem"><l>2</l><block var="p2"/></block><block var="h"/></block></block></block></block><script><block s="doSetVar"><l>ok</l><block s="reportBoolean"><l><bool>true</bool></l></block></block></script></block></script></block></script></block><block s="doIf"><block s="reportNot"><block s="reportIsIdentical"><block var="target"/><block s="reportObject"><l>Stage</l></block></block></block><script><block s="doTellTo"><block var="target"/><block s="reifyScript"><script><block s="doRun"><block s="reifyScript"><script><block s="doSetVar"><l></l><block s="reportBoolean"><l><bool>true</bool></l></block></block></script><list></list></block><list><block s="reifyReporter"><autolambda><block s="reportGet"><l><option>draggable?</option></l></block></autolambda><list></list></block></list></block></script><list></list></block><list></list></block></script></block><block s="doTellTo"><block var="target"/><block s="reifyScript"><script><block s="doSwitchToCostume"><l></l></block></script><list></list></block><list><block var="secondCostume"/></list></block><block s="doReport"><block s="reportNewList"><list><block var="p1"/><block var="p2"/></list></block></block></script><comment w="90" collapsed="false">line data</comment></block><block s="doIf"><block s="reportEquals"><block var="selection"/><l>image-value</l></block><script><block s="doWarp"><script><block s="doIf"><block s="reportNot"><block s="reportOr"><block s="reportEquals"><custom-block s="ImagePadProperty %txt of %txt"><l>typeOfData</l><block var="target"/></custom-block><l>RGB</l></block><block s="reportEquals"><custom-block s="ImagePadProperty %txt of %txt"><l>typeOfData</l><block var="target"/></custom-block><l>FITS</l></block></block></block><script><block s="doReport"><l>ERROR: only defined for image data in FITS or RGB format!</l></block></script></block><block s="doIfElse"><block s="reportOr"><block s="reportOr"><block s="reportGreaterThan"><block var="x"/><block var="targetCostumeWidth"/></block><block s="reportGreaterThan"><block var="y"/><block var="targetCostumeHeight"/></block></block><block s="reportOr"><block s="reportLessThan"><block var="x"/><l>1</l></block><block s="reportLessThan"><block var="y"/><l>1</l></block></block></block><script><block s="doReport"><l>ERROR: coordinates out of range!</l></block></script><script><block s="doReport"><block s="reportListItem"><block s="reportVariadicSum"><list><block var="x"/><block s="reportVariadicProduct"><list><block s="reportDifference"><block var="y"/><l>1</l></block><block var="targetCostumeWidth"/></list></block></list></block><block s="reportAttributeOf"><l>myData</l><block var="target"/></block></block></block></script></block></script></block></script><comment w="90" collapsed="false">image value</comment></block><block s="doIf"><block s="reportEquals"><block var="selection"/><l>slice-data</l></block><script><block s="doSetVar"><l>costume</l><block s="reportNewCostume"><block s="reportGetImageAttribute"><l><option>pixels</option></l><block var="targetCostume"/></block><block var="targetCostumeWidth"/><block var="targetCostumeHeight"/></block></block><block s="doSetVar"><l>points</l><custom-block s="%s on %txt by mouse"><l>line-data</l><block var="target"/></custom-block></block><block s="doWarp"><script><block s="doSetVar"><l>x1</l><block s="reportListItem"><l>1</l><block s="reportListItem"><l>1</l><block var="points"/></block></block></block><block s="doSetVar"><l>y1</l><block s="reportListItem"><l>2</l><block s="reportListItem"><l>1</l><block var="points"/></block></block></block><block s="doSetVar"><l>x2</l><block s="reportListItem"><l>1</l><block s="reportListItem"><l>2</l><block var="points"/></block></block></block><block s="doSetVar"><l>y2</l><block s="reportListItem"><l>2</l><block s="reportListItem"><l>2</l><block var="points"/></block></block></block><block s="doSetVar"><l>result</l><block s="reportNewList"><list></list></block></block><block s="doSetVar"><l>dist</l><block s="reportRound"><block s="reportMonadic"><l><option>sqrt</option></l><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><block s="reportDifference"><block var="x1"/><block var="x2"/></block><block s="reportDifference"><block var="x1"/><block var="x2"/></block></list></block><block s="reportVariadicProduct"><list><block s="reportDifference"><block var="y1"/><block var="y2"/></block><block s="reportDifference"><block var="y1"/><block var="y2"/></block></list></block></list></block></block></block></block><block s="doSetVar"><l>dx</l><block s="reportQuotient"><block s="reportDifference"><block var="x2"/><block var="x1"/></block><block var="dist"/></block></block><block s="doSetVar"><l>dy</l><block s="reportQuotient"><block s="reportDifference"><block var="y2"/><block var="y1"/></block><block var="dist"/></block></block><block s="doSetVar"><l>i</l><l>0</l></block><block s="doUntil"><block s="reportGreaterThan"><block var="i"/><block var="dist"/></block><script><block s="doAddToList"><block s="reportNewList"><list><block var="i"/><custom-block s="image value of myData at %n %n on %txt"><block s="reportVariadicSum"><list><block var="x1"/><block s="reportVariadicProduct"><list><block var="i"/><block var="dx"/></list></block></list></block><block s="reportVariadicSum"><list><block var="y1"/><block s="reportVariadicProduct"><list><block var="i"/><block var="dy"/></list></block></list></block><block var="target"/></custom-block></list></block><block var="result"/></block><block s="doChangeVar"><l>i</l><l>1</l></block></script></block><block s="doTellTo"><block var="target"/><block s="reifyScript"><script><block s="doSwitchToCostume"><l></l></block></script><list></list></block><list><block var="costume"/></list></block><block s="doReport"><block var="result"/></block></script></block></script><comment w="90" collapsed="false">slice data</comment></block><block s="doIf"><block s="reportEquals"><block var="selection"/><l>circle-data</l><comment w="90" collapsed="false">circle data</comment></block><script><block s="doWarp"><script><block s="doSetVar"><l>w</l><block var="targetCostumeWidth"/></block><block s="doSetVar"><l>h</l><block var="targetCostumeHeight"/></block><block s="doSetVar"><l>secondCostume</l><block s="reportNewCostume"><block s="reportGetImageAttribute"><l><option>pixels</option></l><block var="targetCostume"/></block><block var="targetCostumeWidth"/><block var="targetCostumeHeight"/></block></block><block s="doSetVar"><l>costume</l><block s="reportNewCostume"><block s="reportGetImageAttribute"><l><option>pixels</option></l><block var="targetCostume"/></block><block var="targetCostumeWidth"/><block var="targetCostumeHeight"/></block></block><block s="doIf"><block s="reportNot"><block s="reportIsIdentical"><block var="target"/><block s="reportObject"><l>Stage</l></block></block></block><script><block s="doTellTo"><block var="target"/><block s="reifyScript"><script><block s="doRun"><block s="reifyScript"><script><block s="doSetVar"><l></l><block s="reportBoolean"><l><bool>false</bool></l></block></block></script><list></list></block><list><block s="reifyReporter"><autolambda><block s="reportGet"><l><option>draggable?</option></l></block></autolambda><list></list></block></list></block></script><list></list></block><list></list></block></script></block><block s="doSetVar"><l>ok</l><block s="reportBoolean"><l><bool>false</bool></l></block></block></script></block><block s="doUntil"><block var="ok"/><script><block s="doIf"><block s="reportMouseDown"></block><script><block s="doSetVar"><l>p1</l><custom-block s="%s on %txt by mouse"><l>costume-coordinates</l><block var="target"/></custom-block></block><block s="doIf"><block s="reportAnd"><block s="reportGreaterThanOrEquals"><block s="reportListItem"><l>1</l><block var="p1"/></block><l>1</l></block><block s="reportAnd"><block s="reportLessThanOrEquals"><block s="reportListItem"><l>1</l><block var="p1"/></block><block var="w"/></block><block s="reportAnd"><block s="reportGreaterThanOrEquals"><block s="reportListItem"><l>2</l><block var="p1"/></block><l>1</l></block><block s="reportLessThanOrEquals"><block s="reportListItem"><l>2</l><block var="p1"/></block><block var="h"/></block></block></block></block><script><block s="doSetVar"><l>xold</l><block s="reportListItem"><l>1</l><block var="p1"/></block></block><block s="doSetVar"><l>yold</l><block s="reportListItem"><l>2</l><block var="p1"/></block></block><block s="doSetVar"><l>ok</l><block s="reportBoolean"><l><bool>true</bool></l></block></block></script></block></script></block></script></block><block s="doSetVar"><l>ok</l><block s="reportBoolean"><l><bool>false</bool></l></block></block><block s="doUntil"><block var="ok"/><script><block s="doSetVar"><l>p2</l><custom-block s="%s on %txt by mouse"><l>costume-coordinates</l><block var="target"/></custom-block></block><block s="doSetVar"><l>radius</l><block s="reportRound"><block s="reportMonadic"><l><option>sqrt</option></l><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><block s="reportDifference"><block s="reportListItem"><l>1</l><block var="p1"/></block><block s="reportListItem"><l>1</l><block var="p2"/></block></block><block s="reportDifference"><block s="reportListItem"><l>1</l><block var="p1"/></block><block s="reportListItem"><l>1</l><block var="p2"/></block></block></list></block><block s="reportVariadicProduct"><list><block s="reportDifference"><block s="reportListItem"><l>2</l><block var="p1"/></block><block s="reportListItem"><l>2</l><block var="p2"/></block></block><block s="reportDifference"><block s="reportListItem"><l>2</l><block var="p1"/></block><block s="reportListItem"><l>2</l><block var="p2"/></block></block></list></block></list></block></block></block></block><block s="doTellTo"><block var="target"/><block s="reifyScript"><script><block s="doSwitchToCostume"><l></l></block></script><list></list></block><list><block s="reportNewCostume"><block s="reportGetImageAttribute"><l><option>pixels</option></l><block var="secondCostume"/></block><block var="targetCostumeWidth"/><block var="targetCostumeHeight"/></block></list></block><custom-block s="set ImagePad line properties style: %txt %br width: %n color: %n %n %n %br fill color: %n %n %n on %txt"><l>continuous</l><l>3</l><l>255</l><l>200</l><l>0</l><l>180</l><l>180</l><l>180</l><block var="target"/></custom-block><custom-block s="draw line from %n %n to %n %n on %txt"><block s="reportDifference"><block s="reportListItem"><l>1</l><block var="p1"/></block><l>1</l></block><block s="reportDifference"><block s="reportListItem"><l>2</l><block var="p1"/></block><l>1</l></block><block s="reportListItem"><l>1</l><block var="p1"/></block><block s="reportListItem"><l>2</l><block var="p1"/></block><block var="target"/></custom-block><custom-block s="set ImagePad line properties style: %txt %br width: %n color: %n %n %n %br fill color: %n %n %n on %txt"><l>continuous</l><l>1</l><l>255</l><l>200</l><l>0</l><l>180</l><l>180</l><l>180</l><block var="target"/></custom-block><custom-block s="draw circle center: %n %n radius: %n on %txt"><block s="reportListItem"><l>1</l><block var="p1"/></block><block s="reportListItem"><l>2</l><block var="p1"/></block><block var="radius"/><block var="target"/></custom-block><block s="doIf"><block s="reportNot"><block s="reportMouseDown"></block></block><script><block s="doIf"><block s="reportAnd"><block s="reportGreaterThanOrEquals"><block s="reportListItem"><l>1</l><block var="p2"/></block><l>1</l></block><block s="reportAnd"><block s="reportLessThanOrEquals"><block s="reportListItem"><l>1</l><block var="p2"/></block><block var="w"/></block><block s="reportAnd"><block s="reportGreaterThanOrEquals"><block s="reportListItem"><l>2</l><block var="p2"/></block><l>1</l></block><block s="reportLessThanOrEquals"><block s="reportListItem"><l>2</l><block var="p2"/></block><block var="h"/></block></block></block></block><script><block s="doSetVar"><l>ok</l><block s="reportBoolean"><l><bool>true</bool></l></block></block></script></block></script></block></script></block><block s="doIf"><block s="reportNot"><block s="reportIsIdentical"><block var="target"/><block s="reportObject"><l>Stage</l></block></block></block><script><block s="doTellTo"><block var="target"/><block s="reifyScript"><script><block s="doRun"><block s="reifyScript"><script><block s="doSetVar"><l></l><block s="reportBoolean"><l><bool>true</bool></l></block></block></script><list></list></block><list><block s="reifyReporter"><autolambda><block s="reportGet"><l><option>draggable?</option></l></block></autolambda><list></list></block></list></block></script><list></list></block><list></list></block></script></block><block s="doTellTo"><block var="target"/><block s="reifyScript"><script><block s="doSwitchToCostume"><l></l></block></script><list></list></block><list><block var="secondCostume"/></list></block><block s="doReport"><block s="reportNewList"><list><block var="p1"/><block var="radius"/></list></block></block></script></block><block s="doIf"><block s="reportEquals"><block var="selection"/><l>brightness</l></block><script><block s="doSetVar"><l>h</l><custom-block s="%s on %txt by mouse"><l>circle-data</l><block var="target"/></custom-block></block><block s="doReport"><block s="reportApplyExtension"><l>SciS_brightness(data,xpos,ypos,r,width,height,typeOfData)</l><list><block s="reportAttributeOf"><l>myData</l><block var="target"/></block><block s="reportListItem"><l>1</l><block s="reportListItem"><l>1</l><block var="h"/></block></block><block s="reportListItem"><l>2</l><block s="reportListItem"><l>1</l><block var="h"/></block></block><block s="reportListItem"><l>2</l><block var="h"/></block><block var="targetCostumeWidth"/><block var="targetCostumeHeight"/><custom-block s="ImagePadProperty %txt of %txt"><l>typeOfData</l><block var="target"/></custom-block></list></block></block></script><comment w="90" collapsed="false">brightness</comment></block><block s="doIf"><block s="reportEquals"><block var="selection"/><l>cell-value</l></block><script><block s="doIfElse"><block s="reportOr"><block s="reportOr"><block s="reportGreaterThan"><block var="x"/><block var="targetCostumeWidth"/></block><block s="reportGreaterThan"><block var="y"/><block var="targetCostumeHeight"/></block></block><block s="reportOr"><block s="reportLessThan"><block var="x"/><l>1</l></block><block s="reportLessThan"><block var="y"/><l>1</l></block></block></block><script><block s="doReport"><block s="reportNewList"><list></list></block></block></script><script><block s="doReport"><block s="reportListItem"><block s="reportMonadic"><l><option>ceiling</option></l><block s="reportQuotient"><block var="x"/><block s="reportListItem"><l>3</l><custom-block s="ImagePadProperty %txt of %txt"><l>gridProperties</l><block var="target"/></custom-block></block></block></block><block s="reportListItem"><block s="reportMonadic"><l><option>ceiling</option></l><block s="reportQuotient"><block var="y"/><block s="reportListItem"><l>4</l><custom-block s="ImagePadProperty %txt of %txt"><l>gridProperties</l><block var="target"/></custom-block></block></block></block><block var="myData"/></block></block></block></script></block></script><comment w="90" collapsed="false">value of a grid cell</comment></block></script></block-definition><block-definition s="affine transformation of costume %'costume' $nl by %'originalPoints' --> %'targetPoints'" type="reporter" category="6. ImagePad for image operations"><comment x="0" y="0" w="210.83333333333334" collapsed="false">Applies an affine transformation to a costume.
</comment><header></header><code></code><translations></translations><inputs><input type="%s">currentCostume</input><input type="%l"></input><input type="%l"></input></inputs><script><block s="doWarp"><script><block s="doDeclareVariables"><list><l>a11</l><l>a12</l><l>a13</l><l>a21</l><l>a22</l><l>a23</l><l>S</l><l>P1</l><l>P2</l><l>P3</l><l>Q1</l><l>Q2</l><l>Q3</l><l>target</l><l>imagetype</l><l>width</l><l>height</l><l>data</l><l>ok</l></list></block><block s="doSetVar"><l>costume</l><block s="reportIfElse"><block s="reportEquals"><block var="costume"/><l>currentCostume</l></block><block s="reportGet"><l><option>costume</option></l></block><block var="costume"/></block></block><block s="doIf"><block s="reportNot"><block s="reportIsA"><block var="costume"/><l><option>costume</option></l></block></block><script><block s="doReport"><l>ERROR: costume required!</l></block></script></block><block s="doSetVar"><l>ok</l><block s="reportBoolean"><l><bool>true</bool></l></block></block><block s="doIfElse"><block s="reportIsA"><block var="originalPoints"/><l><option>list</option></l></block><script><block s="doIfElse"><block s="reportNotEquals"><block s="reportListAttribute"><l><option>length</option></l><block var="originalPoints"/></block><l>3</l></block><script><block s="doReport"><l>ERROR: 3 original points required!</l></block></script><script><block s="doFor"><l>i</l><l>1</l><l>3</l><script><block s="doIf"><block s="reportNot"><block s="reportAnd"><block s="reportIsA"><block s="reportListItem"><block var="i"/><block var="originalPoints"/></block><l><option>list</option></l></block><block s="reportEquals"><block s="reportListAttribute"><l><option>length</option></l><block s="reportListItem"><block var="i"/><block var="originalPoints"/></block></block><l>2</l></block></block></block><script><block s="doSetVar"><l>ok</l><block s="reportBoolean"><l><bool>false</bool></l></block></block></script></block></script></block></script></block></script><script><block s="doReport"><l>ERROR: list of original points required!</l></block></script></block><block s="doIfElse"><block s="reportIsA"><block var="targetPoints"/><l><option>list</option></l></block><script><block s="doIfElse"><block s="reportNotEquals"><block s="reportListAttribute"><l><option>length</option></l><block var="targetPoints"/></block><l>3</l></block><script><block s="doReport"><l>ERROR: 3 target points required!</l></block></script><script><block s="doFor"><l>i</l><l>1</l><l>3</l><script><block s="doIf"><block s="reportNot"><block s="reportAnd"><block s="reportIsA"><block s="reportListItem"><block var="i"/><block var="targetPoints"/></block><l><option>list</option></l></block><block s="reportEquals"><block s="reportListAttribute"><l><option>length</option></l><block s="reportListItem"><block var="i"/><block var="targetPoints"/></block></block><l>2</l></block></block></block><script><block s="doSetVar"><l>ok</l><block s="reportBoolean"><l><bool>false</bool></l></block></block></script></block></script></block></script></block></script><script><block s="doReport"><l>ERROR: list of target points required!</l></block></script></block><block s="doIf"><block s="reportNot"><block var="ok"/></block><script><block s="doReport"><l>ERROR: dimensions should be 2!</l></block></script></block><block s="doSetVar"><l>P1</l><block s="reportListItem"><l>1</l><block var="originalPoints"/></block></block><block s="doSetVar"><l>P2</l><block s="reportListItem"><l>2</l><block var="originalPoints"/></block></block><block s="doSetVar"><l>P3</l><block s="reportListItem"><l>3</l><block var="originalPoints"/></block></block><block s="doSetVar"><l>Q1</l><block s="reportListItem"><l>1</l><block var="targetPoints"/></block></block><block s="doSetVar"><l>Q2</l><block s="reportListItem"><l>2</l><block var="targetPoints"/></block></block><block s="doSetVar"><l>Q3</l><block s="reportListItem"><l>3</l><block var="targetPoints"/></block></block><block s="doSetVar"><l>S</l><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><block s="reportListItem"><l>1</l><block var="P1"/></block><block s="reportDifference"><block s="reportListItem"><l>2</l><block var="P3"/></block><block s="reportListItem"><l>2</l><block var="P2"/></block></block></list></block><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><block s="reportListItem"><l>1</l><block var="P2"/></block><block s="reportDifference"><block s="reportListItem"><l>2</l><block var="P1"/></block><block s="reportListItem"><l>2</l><block var="P3"/></block></block></list></block><block s="reportVariadicProduct"><list><block s="reportListItem"><l>1</l><block var="P3"/></block><block s="reportDifference"><block s="reportListItem"><l>2</l><block var="P2"/></block><block s="reportListItem"><l>2</l><block var="P1"/></block></block></list></block></list></block></list></block></block><block s="doIf"><block s="reportNot"><block s="reportEquals"><block var="S"/><l>0</l></block></block><script><block s="doSetVar"><l>a11</l><block s="reportQuotient"><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><block s="reportListItem"><l>2</l><block var="P1"/></block><block s="reportDifference"><block s="reportListItem"><l>1</l><block var="Q2"/></block><block s="reportListItem"><l>1</l><block var="Q3"/></block></block></list></block><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><block s="reportListItem"><l>2</l><block var="P2"/></block><block s="reportDifference"><block s="reportListItem"><l>1</l><block var="Q3"/></block><block s="reportListItem"><l>1</l><block var="Q1"/></block></block></list></block><block s="reportVariadicProduct"><list><block s="reportListItem"><l>2</l><block var="P3"/></block><block s="reportDifference"><block s="reportListItem"><l>1</l><block var="Q1"/></block><block s="reportListItem"><l>1</l><block var="Q2"/></block></block></list></block></list></block></list></block><block var="S"/></block></block><block s="doSetVar"><l>a12</l><block s="reportQuotient"><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><block s="reportListItem"><l>1</l><block var="P1"/></block><block s="reportDifference"><block s="reportListItem"><l>1</l><block var="Q3"/></block><block s="reportListItem"><l>1</l><block var="Q2"/></block></block></list></block><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><block s="reportListItem"><l>1</l><block var="P2"/></block><block s="reportDifference"><block s="reportListItem"><l>1</l><block var="Q1"/></block><block s="reportListItem"><l>1</l><block var="Q3"/></block></block></list></block><block s="reportVariadicProduct"><list><block s="reportListItem"><l>1</l><block var="P3"/></block><block s="reportDifference"><block s="reportListItem"><l>1</l><block var="Q2"/></block><block s="reportListItem"><l>1</l><block var="Q1"/></block></block></list></block></list></block></list></block><block var="S"/></block></block><block s="doSetVar"><l>a21</l><block s="reportQuotient"><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><block s="reportListItem"><l>2</l><block var="P1"/></block><block s="reportDifference"><block s="reportListItem"><l>2</l><block var="Q2"/></block><block s="reportListItem"><l>2</l><block var="Q3"/></block></block></list></block><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><block s="reportListItem"><l>2</l><block var="P2"/></block><block s="reportDifference"><block s="reportListItem"><l>2</l><block var="Q3"/></block><block s="reportListItem"><l>2</l><block var="Q1"/></block></block></list></block><block s="reportVariadicProduct"><list><block s="reportListItem"><l>2</l><block var="P3"/></block><block s="reportDifference"><block s="reportListItem"><l>2</l><block var="Q1"/></block><block s="reportListItem"><l>2</l><block var="Q2"/></block></block></list></block></list></block></list></block><block var="S"/></block></block><block s="doSetVar"><l>a22</l><block s="reportQuotient"><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><block s="reportListItem"><l>1</l><block var="P1"/></block><block s="reportDifference"><block s="reportListItem"><l>2</l><block var="Q3"/></block><block s="reportListItem"><l>2</l><block var="Q2"/></block></block></list></block><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><block s="reportListItem"><l>1</l><block var="P2"/></block><block s="reportDifference"><block s="reportListItem"><l>2</l><block var="Q1"/></block><block s="reportListItem"><l>2</l><block var="Q3"/></block></block></list></block><block s="reportVariadicProduct"><list><block s="reportListItem"><l>1</l><block var="P3"/></block><block s="reportDifference"><block s="reportListItem"><l>2</l><block var="Q2"/></block><block s="reportListItem"><l>2</l><block var="Q1"/></block></block></list></block></list></block></list></block><block var="S"/></block></block><block s="doSetVar"><l>a13</l><block s="reportQuotient"><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><block s="reportListItem"><l>1</l><block var="P1"/></block><block s="reportDifference"><block s="reportVariadicProduct"><list><block s="reportListItem"><l>2</l><block var="P3"/></block><block s="reportListItem"><l>1</l><block var="Q2"/></block></list></block><block s="reportVariadicProduct"><list><block s="reportListItem"><l>2</l><block var="P2"/></block><block s="reportListItem"><l>1</l><block var="Q3"/></block></list></block></block></list></block><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><block s="reportListItem"><l>1</l><block var="P2"/></block><block s="reportDifference"><block s="reportVariadicProduct"><list><block s="reportListItem"><l>2</l><block var="P1"/></block><block s="reportListItem"><l>1</l><block var="Q3"/></block></list></block><block s="reportVariadicProduct"><list><block s="reportListItem"><l>2</l><block var="P3"/></block><block s="reportListItem"><l>1</l><block var="Q1"/></block></list></block></block></list></block><block s="reportVariadicProduct"><list><block s="reportListItem"><l>1</l><block var="P3"/></block><block s="reportDifference"><block s="reportVariadicProduct"><list><block s="reportListItem"><l>2</l><block var="P2"/></block><block s="reportListItem"><l>1</l><block var="Q1"/></block></list></block><block s="reportVariadicProduct"><list><block s="reportListItem"><l>2</l><block var="P1"/></block><block s="reportListItem"><l>1</l><block var="Q2"/></block></list></block></block></list></block></list></block></list></block><block var="S"/></block></block><block s="doSetVar"><l>a23</l><block s="reportQuotient"><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><block s="reportListItem"><l>1</l><block var="P1"/></block><block s="reportDifference"><block s="reportVariadicProduct"><list><block s="reportListItem"><l>2</l><block var="P3"/></block><block s="reportListItem"><l>2</l><block var="Q2"/></block></list></block><block s="reportVariadicProduct"><list><block s="reportListItem"><l>2</l><block var="P2"/></block><block s="reportListItem"><l>2</l><block var="Q3"/></block></list></block></block></list></block><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><block s="reportListItem"><l>1</l><block var="P2"/></block><block s="reportDifference"><block s="reportVariadicProduct"><list><block s="reportListItem"><l>2</l><block var="P1"/></block><block s="reportListItem"><l>2</l><block var="Q3"/></block></list></block><block s="reportVariadicProduct"><list><block s="reportListItem"><l>2</l><block var="P3"/></block><block s="reportListItem"><l>2</l><block var="Q1"/></block></list></block></block></list></block><block s="reportVariadicProduct"><list><block s="reportListItem"><l>1</l><block var="P3"/></block><block s="reportDifference"><block s="reportVariadicProduct"><list><block s="reportListItem"><l>2</l><block var="P2"/></block><block s="reportListItem"><l>2</l><block var="Q1"/></block></list></block><block s="reportVariadicProduct"><list><block s="reportListItem"><l>2</l><block var="P1"/></block><block s="reportListItem"><l>2</l><block var="Q2"/></block></list></block></block></list></block></list></block></list></block><block var="S"/></block></block><block s="doReport"><block s="reportApplyExtension"><l>SciS_affineTransformation(a11,a12,a13,a21,a22,a23,w,h,data,typeOfData)</l><list><block var="a11"/><block var="a12"/><block var="a13"/><block var="a21"/><block var="a22"/><block var="a23"/><block s="reportGetImageAttribute"><l><option>width</option></l><block var="costume"/></block><block s="reportGetImageAttribute"><l><option>height</option></l><block var="costume"/></block><block s="reportGetImageAttribute"><l><option>pixels</option></l><block var="costume"/></block><l>RGB</l></list></block></block></script></block><block s="doReport"><l>ERROR: denominator is zero</l></block></script></block></script></block-definition><block-definition s="brightness around %'x' %'y' within radius %'r' $nl of myData of ImagePad %'sprite'" type="reporter" category="6. ImagePad for image operations"><comment x="0" y="0" w="192.61904761904816" collapsed="false">Reports the brightness of a FITS or RGB image around x|y in a circle with radius r.
Attention: JS-coordinates are used!</comment><header></header><code></code><translations></translations><inputs><input type="%n">100</input><input type="%n">100</input><input type="%n">10</input><input type="%txt">thisSprite<options>thisSprite
theStage
anotherSprite</options></input></inputs><script><block s="doWarp"><script><block s="doDeclareVariables"><list><l>target</l><l>data</l></list></block><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>theStage</l></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>thisSprite</l></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s an ImagePad?"><block var="target"/></custom-block></block><script><block s="doReport"><l>ERROR: target isn't configured as ImagePad!</l></block></script></block><block s="doSetVar"><l>data</l><block s="reportAttributeOf"><l>myData</l><block var="target"/></block></block><block s="doIfElse"><block s="reportNot"><block s="reportAnd"><block s="reportIsA"><block var="data"/><l><option>list</option></l></block><block s="reportOr"><block s="reportEquals"><custom-block s="ImagePadProperty %txt of %txt"><l>typeOfData</l><block var="target"/></custom-block><l>FITS</l></block><block s="reportEquals"><custom-block s="ImagePadProperty %txt of %txt"><l>typeOfData</l><block var="target"/></custom-block><l>RGB</l></block></block></block></block><script><block s="doReport"><l>ERROR: only FITS or RGB data supported!</l></block></script><script><block s="doReport"><block s="reportApplyExtension"><l>SciS_brightnessAround(data,xpos,ypos,r,width,height,typeOfData)</l><list><block var="data"/><block var="x"/><block var="y"/><block var="r"/><block s="reportAskFor"><block var="target"/><block s="reifyReporter"><autolambda><block s="reportGetImageAttribute"><l><option>width</option></l><l><option>current</option></l></block></autolambda><list></list></block><list></list></block><block s="reportAskFor"><block var="target"/><block s="reifyReporter"><autolambda><block s="reportGetImageAttribute"><l><option>height</option></l><l><option>current</option></l></block></autolambda><list></list></block><list></list></block><custom-block s="ImagePadProperty %txt of %txt"><l>typeOfData</l><block var="target"/></custom-block></list></block></block></script></block></script></block></script></block-definition><block-definition s="fill all cells on %'sprite' range x: %'xmin' %'xmax' y: %'ymin' %'ymax' $nl randomly with numbers %'numbers'" type="command" category="6. ImagePad for image operations"><comment x="0" y="0" w="281" collapsed="false">Fills a grid or a part of a grid with one of the specified values.</comment><header></header><code></code><translations></translations><inputs><input type="%s">thisSprite<options>thisSprite
theStage
anotherSprite</options></input><input type="%n">1</input><input type="%s">xMax</input><input type="%n">1</input><input type="%s">yMax</input><input type="%mult%n"></input></inputs><script><block s="doDeclareVariables"><list><l>target</l><l>gridProps</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>theStage</l></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>thisSprite</l></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s an ImagePad?"><block var="target"/></custom-block></block><script><block s="doReport"><l>ERROR: target isn't configured as GridPad</l></block></script></block><block s="doSetVar"><l>gridProps</l><custom-block s="ImagePadProperty %txt of %txt"><l>gridProperties</l><block var="target"/></custom-block></block><block s="doIf"><block s="reportEquals"><block var="xmax"/><l>xMax</l></block><script><block s="doSetVar"><l>xmax</l><block s="reportListItem"><l>1</l><block var="gridProps"/></block></block></script></block><block s="doIf"><block s="reportEquals"><block var="ymax"/><l>yMax</l></block><script><block s="doSetVar"><l>ymax</l><block s="reportListItem"><l>2</l><block var="gridProps"/></block></block></script></block><block s="doTellTo"><block var="target"/><block s="reifyScript"><script><block s="doSetVar"><l></l><l></l></block></script><list></list></block><list><l>myData</l><block s="reportApplyExtension"><l>SciS_fillOnImagePadGridRandomlyOnImagePad(xMin,xMax,yMin,yMax,numbers,data)</l><list><block var="xmin"/><block var="xmax"/><block var="ymin"/><block var="ymax"/><block var="numbers"/><block s="reportAttributeOf"><l>myData</l><block var="target"/></block></list></block></list></block></script></block></script></block-definition><block-definition s="set cell value on %'sprite' to %'value' by mouse" type="command" category="6. ImagePad for image operations"><comment x="0" y="0" w="145.83333333333334" collapsed="false">sets the value of a grid cell</comment><header></header><code></code><translations></translations><inputs><input type="%s">thisSprite<options>thisSprite
theStage
anotherSprite</options></input><input type="%n">1</input></inputs><script><block s="doDeclareVariables"><list><l>target</l><l>targetCostume</l><l>targetCostumeWidth</l><l>targetCostumeHeight</l><l>targetXPosition</l><l>targetYPosition</l><l>targetSize</l><l>x</l><l>y</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>theStage</l></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>thisSprite</l></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s an ImagePad?"><block var="target"/></custom-block></block><script><block s="doReport"><l>ERROR: target isn't configured as ImagePad!</l></block></script></block><block s="doSetVar"><l>targetCostume</l><block s="reportAskFor"><block var="target"/><block s="reifyReporter"><autolambda><block s="reportGet"><l><option>costume</option></l></block></autolambda><list></list></block><list></list></block></block><block s="doSetVar"><l>targetCostumeWidth</l><block s="reportGetImageAttribute"><l><option>width</option></l><block var="targetCostume"/></block></block><block s="doSetVar"><l>targetCostumeHeight</l><block s="reportGetImageAttribute"><l><option>height</option></l><block var="targetCostume"/></block></block><block s="doIfElse"><block s="reportIsIdentical"><block var="target"/><block s="reportObject"><l>Stage</l></block></block><script><block s="doSetVar"><l>targetXPosition</l><block s="reportMonadic"><l><option>neg</option></l><block s="reportRound"><block s="reportQuotient"><block var="targetCostumeWidth"/><l>2</l></block></block></block></block><block s="doSetVar"><l>targetYPosition</l><block s="reportRound"><block s="reportQuotient"><block var="targetCostumeHeight"/><l>2</l></block></block></block><block s="doSetVar"><l>targetSize</l><l>100</l></block><block s="doSetVar"><l>x</l><block s="reportDifference"><block s="reportMouseX"></block><block var="targetXPosition"/></block></block><block s="doSetVar"><l>y</l><block s="reportDifference"><block var="targetYPosition"/><block s="reportMouseY"></block></block></block></script><script><block s="doSetVar"><l>targetXPosition</l><block s="reportAttributeOf"><l><option>x position</option></l><block var="target"/></block></block><block s="doSetVar"><l>targetYPosition</l><block s="reportAttributeOf"><l><option>y position</option></l><block var="target"/></block></block><block s="doSetVar"><l>targetSize</l><block s="reportAttributeOf"><l><option>size</option></l><block var="target"/></block></block><block s="doSetVar"><l>x</l><block s="reportRound"><block s="reportVariadicSum"><list><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><l>100</l><block s="reportQuotient"><block s="reportDifference"><block s="reportMouseX"></block><block var="targetXPosition"/></block><block var="targetSize"/></block></list></block><block s="reportQuotient"><block var="targetCostumeWidth"/><l>2</l></block></list></block><l>1</l></list></block></block></block><block s="doSetVar"><l>y</l><block s="reportRound"><block s="reportVariadicSum"><list><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><l>100</l><block s="reportQuotient"><block s="reportDifference"><block var="targetYPosition"/><block s="reportMouseY"></block></block><block var="targetSize"/></block></list></block><block s="reportQuotient"><block var="targetCostumeHeight"/><l>2</l></block></list></block><l>1</l></list></block></block></block></script></block><block s="doIf"><block s="reportAnd"><block s="reportAnd"><block s="reportLessThanOrEquals"><block var="x"/><block var="targetCostumeWidth"/></block><block s="reportLessThanOrEquals"><block var="y"/><block var="targetCostumeHeight"/></block></block><block s="reportAnd"><block s="reportGreaterThanOrEquals"><block var="x"/><l>1</l></block><block s="reportGreaterThanOrEquals"><block var="y"/><l>1</l></block></block></block><script><block s="doReplaceInList"><block s="reportMonadic"><l><option>ceiling</option></l><block s="reportQuotient"><block var="x"/><block s="reportListItem"><l>3</l><custom-block s="ImagePadProperty %txt of %txt"><l>gridProperties</l><block var="target"/></custom-block></block></block></block><block s="reportListItem"><block s="reportMonadic"><l><option>ceiling</option></l><block s="reportQuotient"><block var="y"/><block s="reportListItem"><l>4</l><custom-block s="ImagePadProperty %txt of %txt"><l>gridProperties</l><block var="target"/></custom-block></block></block></block><block s="reportAttributeOf"><l>myData</l><block var="target"/></block></block><block var="value"/></block></script></block><custom-block s="add grid %s on %s with grid lines? %b"><l>myData</l><block var="target"/><l><bool>true</bool></l></custom-block></script></block></script></block-definition><block-definition s="set cell value on %'sprite' at %'x' %'y' to %'value' with grid lines? %'withLines'" type="command" category="6. ImagePad for image operations"><comment x="0" y="0" w="227" collapsed="false">Sets the value of a grid cell an shows the result.</comment><header></header><code></code><translations></translations><inputs><input type="%s">thisSprite<options>thisSprite
theStage
anotherSprite</options></input><input type="%n">1</input><input type="%n">1</input><input type="%n">2</input><input type="%b">true</input></inputs><script><block s="doDeclareVariables"><list><l>target</l><l>gridProps</l><l>grid</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>theStage</l></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>thisSprite</l></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s an ImagePad?"><block var="target"/></custom-block></block><script><custom-block s="report SciSnap! error %txt"><l>ERROR: target isn't configured as GridPad</l></custom-block><block s="doStopThis"><l><option>this block</option></l></block></script></block><block s="doSetVar"><l>gridProps</l><custom-block s="ImagePadProperty %txt of %txt"><l>gridProperties</l><block var="target"/></custom-block></block><block s="doIfElse"><block s="reportAnd"><block s="reportGreaterThanOrEquals"><block var="x"/><l>1</l></block><block s="reportAnd"><block s="reportGreaterThanOrEquals"><block var="y"/><l>1</l></block><block s="reportAnd"><block s="reportLessThanOrEquals"><block var="x"/><block s="reportListItem"><l>1</l><block var="gridProps"/></block></block><block s="reportLessThanOrEquals"><block var="y"/><block s="reportListItem"><l>2</l><block var="gridProps"/></block></block></block></block></block><script><block s="doReplaceInList"><block var="x"/><block s="reportListItem"><block var="y"/><block s="reportAttributeOf"><l>myData</l><block var="target"/></block></block><block var="value"/></block><custom-block s="add grid %s on %s with grid lines? %b"><l>myData</l><block var="target"/><block var="withLines"/></custom-block></script><script><custom-block s="report SciSnap! error %txt"><l>ERROR: indices out of bounds!</l></custom-block></script></block></script></block></script></block-definition><block-definition s="%'typeOfNeighborhood' -neighborhood as torus? %'asTorus' of %'x' %'y' on %'sprite'" type="reporter" category="6. ImagePad for image operations"><comment x="0" y="0" w="355.83333333333337" collapsed="false">Reports the Moore- or v.-Neumann-neighborhood of a cell. Order: north,east,south,west</comment><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true">Moore<options>Moore
vonNeumann</options></input><input type="%b">false</input><input type="%n">1</input><input type="%n">1</input><input type="%s">thisSprite<options>thisSprite
theStage
anotherSprite</options></input></inputs><script><block s="doDeclareVariables"><list><l>target</l></list></block><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>theStage</l></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>thisSprite</l></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s an ImagePad?"><block var="target"/></custom-block></block><script><block s="doReport"><l>ERROR: target isn't configured as GridPad</l></block></script></block><block s="doReport"><block s="reportApplyExtension"><l>SciS_neighborhoodInGridOnImagePad(data,gridProperties,x,y,isTorus,typeOfNeighborhood)</l><list><block s="reportAttributeOf"><l>myData</l><block var="target"/></block><custom-block s="ImagePadProperty %txt of %txt"><l>gridProperties</l><block var="target"/></custom-block><block var="x"/><block var="y"/><block var="asTorus"/><block var="typeOfNeighborhood"/></list></block></block></script></block-definition><block-definition s="all cells on %'sprite' as torus? %'isTorus' swapped %'n' times $nl randomly inside radius %'range' range x: %'xmin' %'xmax' y: %'ymin' %'ymax'" type="reporter" category="6. ImagePad for image operations"><comment x="0" y="0" w="194.99999999999977" collapsed="false">Swaps the cell values of a grid randomly.</comment><header></header><code></code><translations></translations><inputs><input type="%s">thisSprite<options>thisSprite
theStage
anotherSprite</options></input><input type="%b">true</input><input type="%n">1</input><input type="%n">1</input><input type="%n">1</input><input type="%s">xMax</input><input type="%n">1</input><input type="%s">yMax</input></inputs><script><block s="doDeclareVariables"><list><l>target</l><l>gridProps</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>theStage</l></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>thisSprite</l></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s an ImagePad?"><block var="target"/></custom-block></block><script><block s="doReport"><l>ERROR: target isn't configured as GridPad</l></block></script></block><block s="doSetVar"><l>gridProps</l><custom-block s="ImagePadProperty %txt of %txt"><l>gridProperties</l><block var="target"/></custom-block></block><block s="doIf"><block s="reportEquals"><block var="xmax"/><l>xMax</l></block><script><block s="doSetVar"><l>xmax</l><block s="reportListItem"><l>1</l><block var="gridProps"/></block></block></script></block><block s="doIf"><block s="reportEquals"><block var="ymax"/><l>yMax</l></block><script><block s="doSetVar"><l>ymax</l><block s="reportListItem"><l>2</l><block var="gridProps"/></block></block></script></block><block s="doReport"><block s="reportApplyExtension"><l>SciS_swapCellsOfGridOnImagePad(data,gridProperties,n,isTorus,range,xMin,xMax,yMin,yMax)</l><list><block s="reportAttributeOf"><l>myData</l><block var="target"/></block><custom-block s="ImagePadProperty %txt of %txt"><l>gridProperties</l><block var="target"/></custom-block><block var="n"/><block var="isTorus"/><block s="reportMonadic"><l><option>abs</option></l><block var="range"/></block><block var="xmin"/><block var="xmax"/><block var="ymin"/><block var="ymax"/></list></block></block></script></block></script></block-definition><block-definition s="all cells on %'sprite' as torus? %'isTorus' with value %'oldValue' $nl take value %'ifValue' if number of surrounding value %'surrValue' is %'operator' %'n' $nl else take value %'elseValue' with noise? %'withNoise' of %'noise' % $nl range x: %'xmin' %'xmax' y: %'ymin' %'ymax'" type="reporter" category="6. ImagePad for image operations"><comment x="0" y="0" w="299" collapsed="false">Counts the surrounding values and changes it if necessary.</comment><header></header><code></code><translations></translations><inputs><input type="%s">thisSprite<options>thisSprite
theStage
anotherSprite</options></input><input type="%b">true</input><input type="%s">any or number<options>any</options></input><input type="%n">2</input><input type="%n">2</input><input type="%s" readonly="true">greater-than<options>greater-than
equal-to
smaller-than
different-from</options></input><input type="%n">4</input><input type="%n">1</input><input type="%b">false</input><input type="%n">5</input><input type="%n">1</input><input type="%s">xMax</input><input type="%n">1</input><input type="%s">yMax</input></inputs><script><block s="doDeclareVariables"><list><l>target</l><l>gridProps</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>theStage</l></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>thisSprite</l></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s an ImagePad?"><block var="target"/></custom-block></block><script><block s="doReport"><l>ERROR: target isn't configured as GridPad</l></block></script></block><block s="doSetVar"><l>gridProps</l><custom-block s="ImagePadProperty %txt of %txt"><l>gridProperties</l><block var="target"/></custom-block></block><block s="doIf"><block s="reportEquals"><block var="xmax"/><l>xMax</l></block><script><block s="doSetVar"><l>xmax</l><block s="reportListItem"><l>1</l><block var="gridProps"/></block></block></script></block><block s="doIf"><block s="reportEquals"><block var="ymax"/><l>yMax</l></block><script><block s="doSetVar"><l>ymax</l><block s="reportListItem"><l>2</l><block var="gridProps"/></block></block></script></block><block s="doReport"><block s="reportApplyExtension"><l>SciS_changeSurroundingValuesOfGridOnImagePag(data,gridProperties,ifValue,elseValue,surrValue,op,n,isTorus,withNoise,noise,xMin,xMax,yMin,yMax,oldValue)</l><list><block s="reportAttributeOf"><l>myData</l><block var="target"/></block><custom-block s="ImagePadProperty %txt of %txt"><l>gridProperties</l><block var="target"/></custom-block><block var="ifValue"/><block var="elseValue"/><block var="surrValue"/><block s="reportListItem"><l>1</l><block s="reportTextSplit"><block var="operator"/><l> </l></block></block><block var="n"/><block var="isTorus"/><block var="withNoise"/><block var="noise"/><block var="xmin"/><block var="xmax"/><block var="ymin"/><block var="ymax"/><block s="reportListItem"><l>1</l><block s="reportTextSplit"><block var="oldValue"/><l> </l></block></block></list></block></block></script></block></script><scripts><script x="692" y="455.7499999999999"><block s="evaluate"><block s="reportJSFunction"><list><l>data</l><l>gridProperties</l><l>ifValue</l><l>elseValue</l><l>surrValue</l><l>op</l><l>n</l><l>isTorus</l><l>withNoise</l><l>noise</l><l>xMin</l><l>xMax</l><l>yMin</l><l>yMax</l><l>oldValue</l></list><l> var result;

 function listCopy(item) {
 var theCopy;
 if (item instanceof List) {
 theCopy = new List();
 for (var i = 1; i <= item.length(); i++)
 theCopy.add(listCopy(item.at(i)));
 } else
 theCopy = item;
 return theCopy;
 }

 function actWith(x, y) {
 var xg, yg, res = 0, ok;
 if ((oldValue === 0) || (data.at(y).at(x) === oldValue)) {
 for (var xp = x - 1; xp <= x + 1; xp++) {
 for (var yp = y - 1; yp <= y + 1; yp++) {
 xg = xp;
 yg = yp;
 if (xp < 1) {
 if (isTorus) {
 xg = xMax;
 } else {
 xg = 0;
 }
 }
 if (xp > xMax) {
 if (isTorus) {
 xg = 1;
 } else {
 xg = 0;
 }
 }
 if (yp < 1) {
 if (isTorus) {
 yg = yMax;
 } else {
 yg = 0;
 }
 }
 if (yp > yMax) {
 if (isTorus) {
 yg = 1;
 } else {
 yg = 0;
 }
 }
 if ((xg > 0) && (yg > 0) && (data.at(yg).at(xg) === surrValue))
 res++;
 }
 }
// if (data.at(y).at(x) === surrValue)
// res--;
 ok = false;
 if ((op === "greater-than") && (res > n))
 ok = true;
 if ((op === "equal-to") && (res == n))
 ok = true;
 if ((op === "smaller-than") && (res < n))
 ok = true;
 if ((op === "different-from") && (res !== n))
 ok = true;
 if (ok)
 result.at(y).put(ifValue, x);
 else
 result.at(y).put(elseValue, x);
 if (withNoise) {
 if (Math.random() * 100 <= noise)
 if (Math.random() <= 0.5)
 result.at(y).put(ifValue, x);
 else
 result.at(y).put(elseValue, x);
 }
 }
 }

 result = listCopy(data);
 xMin = Math.abs(xMin);
 xMax = Math.abs(xMax);
 yMin = Math.abs(yMin);
 yMax = Math.abs(yMax);
 if (xMin > xMax) {
 h = xMin;
 xMin = xMax;
 xMax = h;
 }
 if (yMin > yMax) {
 h = yMin;
 yMin = yMax;
 yMax = h;
 }
 if (oldValue === "any")
 oldValue = 0;
 oldValue = Number(oldValue);
 for (var x = xMin; x <= xMax; x++)
 for (var y = yMin; y <= yMax; y++)
 actWith(x, y);
 return result;
</l></block><list><block s="reportAttributeOf"><l>myData</l><block var="target"/></block><custom-block s="ImagePadProperty %txt of %txt"><l>gridProperties</l><block var="target"/></custom-block><block var="ifValue"/><block var="elseValue"/><block var="surrValue"/><block s="reportListItem"><l>1</l><block s="reportTextSplit"><block var="operator"/><l> </l></block></block><block var="n"/><block var="isTorus"/><block var="withNoise"/><block var="noise"/><block var="xmin"/><block var="xmax"/><block var="ymin"/><block var="ymax"/><block s="reportListItem"><l>1</l><block s="reportTextSplit"><block var="oldValue"/><l> </l></block></block></list></block></script></scripts></block-definition><block-definition s="all cells on %'sprite' as torus? %'isTorus' take %'operation' $nl of surrounding cells x: %'xmin' %'xmax' y: %'ymin' %'ymax' range: %'range'" type="reporter" category="6. ImagePad for image operations"><comment x="0" y="0" w="197" collapsed="false">Replaces the cell values of a grid depending on the features of the neighbors.</comment><header></header><code></code><translations></translations><inputs><input type="%s">thisSprite<options>thisSprite
theStage
anotherSprite</options></input><input type="%b">true</input><input type="%s" readonly="true">sum<options>sum
min
max
mean</options></input><input type="%n">1</input><input type="%s">xMax</input><input type="%n">1</input><input type="%s">yMax</input><input type="%n">1</input></inputs><script><block s="doDeclareVariables"><list><l>target</l><l>gridProps</l></list></block><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>theStage</l></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportEquals"><block var="sprite"/><l>thisSprite</l></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s an ImagePad?"><block var="target"/></custom-block></block><script><block s="doReport"><l>ERROR: target isn't configured as GridPad</l></block></script></block><block s="doSetVar"><l>gridProps</l><custom-block s="ImagePadProperty %txt of %txt"><l>gridProperties</l><block var="target"/></custom-block></block><block s="doIf"><block s="reportEquals"><block var="xmax"/><l>xMax</l></block><script><block s="doSetVar"><l>xmax</l><block s="reportListItem"><l>1</l><block var="gridProps"/></block></block></script></block><block s="doIf"><block s="reportEquals"><block var="ymax"/><l>yMax</l></block><script><block s="doSetVar"><l>ymax</l><block s="reportListItem"><l>2</l><block var="gridProps"/></block></block></script></block><block s="doReport"><block s="reportApplyExtension"><l>SciS_replaceValuesOfGridOnImagePad(data,gridProperties,operation,isTorus,xMin,xMax,yMin,yMax,range)</l><list><block s="reportAttributeOf"><l>myData</l><block var="target"/></block><custom-block s="ImagePadProperty %txt of %txt"><l>gridProperties</l><block var="target"/></custom-block><block s="reportListItem"><l>1</l><block s="reportTextSplit"><block var="operation"/><l> </l></block></block><block var="isTorus"/><block var="xmin"/><block var="xmax"/><block var="ymin"/><block var="ymax"/><block s="reportMonadic"><l><option>abs</option></l><block var="range"/></block></list></block></block></script></block-definition><block-definition s="combine grid1 %'grid1' and grid2 %'grid2' by value1= %'value1' %'operator' value2= %'value2' to %'ifValue' else %'elseValue'" type="reporter" category="6. ImagePad for image operations"><comment x="0" y="0" w="113" collapsed="false">Combines two grids.</comment><header></header><code></code><translations></translations><inputs><input type="%l"></input><input type="%l"></input><input type="%n">1</input><input type="%s" readonly="true">or<options>and
or
xor
not-and
not-or
not-xor
minus</options></input><input type="%n">2</input><input type="%n">1</input><input type="%n">2</input></inputs><script><block s="doDeclareVariables"><list><l>xMax</l><l>yMax</l></list></block><block s="doWarp"><script><block s="doIf"><block s="reportNot"><block s="reportAnd"><custom-block s="is %s a %txt"><block var="grid1"/><l>matrix</l></custom-block><custom-block s="is %s a %txt"><block var="grid2"/><l>matrix</l></custom-block></block></block><script><block s="doReport"><l>ERROR: matrices required!</l></block></script></block><block s="doSetVar"><l>xMax</l><block s="reportIfElse"><block s="reportGreaterThanOrEquals"><block s="reportListAttribute"><l><option>length</option></l><block s="reportListItem"><l>1</l><block var="grid1"/></block></block><block s="reportListAttribute"><l><option>length</option></l><block s="reportListItem"><l>1</l><block var="grid2"/></block></block></block><block s="reportListAttribute"><l><option>length</option></l><block s="reportListItem"><l>1</l><block var="grid1"/></block></block><block s="reportListAttribute"><l><option>length</option></l><block s="reportListItem"><l>1</l><block var="grid2"/></block></block></block></block><block s="doSetVar"><l>yMax</l><block s="reportIfElse"><block s="reportGreaterThanOrEquals"><block s="reportListAttribute"><l><option>length</option></l><block var="grid1"/></block><block s="reportListAttribute"><l><option>length</option></l><block var="grid2"/></block></block><block s="reportListAttribute"><l><option>length</option></l><block var="grid1"/></block><block s="reportListAttribute"><l><option>length</option></l><block var="grid2"/></block></block></block></script></block><block s="doReport"><block s="reportApplyExtension"><l>SciS_combineGridsOnImagePad(grid1,grid2,value1,operator,value2,ifValue,elseValue,xMax,yMax)</l><list><block var="grid1"/><block var="grid2"/><block var="value1"/><block var="operator"/><block var="value2"/><block var="ifValue"/><block var="elseValue"/><block var="xMax"/><block var="yMax"/></list></block></block></script></block-definition><block-definition s="apply Wolfram automaton no %'no' to grid %'grid' $nl with colors for 0: %'color0' and 1: %'color1'" type="reporter" category="6. ImagePad for image operations"><comment x="0" y="0" w="237" collapsed="false">Applies a Wolfram Cellular Automaton to a grid.</comment><header></header><code></code><translations></translations><inputs><input type="%n">30</input><input type="%l"></input><input type="%n">3</input><input type="%n">1</input></inputs><script><block s="doIf"><block s="reportNot"><custom-block s="is %s a %txt"><block var="grid"/><l>matrix</l></custom-block></block><script><block s="doReport"><l>ERROR: grid expected!</l></block></script></block><block s="doReport"><block s="reportApplyExtension"><l>SciS_applyWolframAutomatonToAgridOnImagePad(no,grid,color0,color1)</l><list><block var="no"/><block var="grid"/><block var="color0"/><block var="color1"/></list></block></block></script></block-definition><block-definition s="Example 1: slice data of FITS-image" type="command" category="6. ImagePad for image operations"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doDeclareVariables"><list><l>sliceData</l><l>diagram</l></list></block><custom-block s="configure %s as an ImagePad width: %n %br height: %n color: %n %n %n"><l>thisSprite</l><l>400</l><l>300</l><l>245</l><l>245</l><l>245</l></custom-block><custom-block s="import %s from %s %br to myData on %txt"><l>FITSData</l><l>currentCostume</l><l>myData</l></custom-block><custom-block s="add %s image of %s to ImagePad %br min/max: %n %n log? %b on %txt"><l>gray</l><l>myData</l><l>0</l><custom-block s="%s of vector %l"><l>max</l><block var="myData"/></custom-block><l><bool>false</bool></l><l>thisSprite</l></custom-block><block s="setScale"><l>200</l></block><block s="doSetVar"><l>sliceData</l><custom-block s="%s on %txt by mouse"><l>slice-data</l><l>thisSprite</l></custom-block></block><block s="doSetVar"><l>diagram</l><block s="newClone"><l><option>myself</option></l></block></block><block s="doTellTo"><block var="diagram"/><block s="reifyScript"><script><block s="setScale"><l>100</l></block><custom-block s="configure %txt as a PlotPad width: %n %br height: %n color: %n %n %n"><l>thisSprite</l><l>400</l><l>300</l><l>245</l><l>245</l><l>245</l></custom-block><custom-block s="get ranges for PlotPad %txt %br from %s with border %n"><l>thisSprite</l><block var="sliceData"/><l>0.1</l></custom-block><custom-block s="set PlotPad line properties style: %txt %br width: %n color: %n %n %n on %txt"><l>continuous</l><l>1</l><l>0</l><l>0</l><l>0</l><l>thisSprite</l></custom-block><custom-block s="set PlotPad marker properties style: %txt width: %n %br color: %n %n %n connected? %b on %txt"><l>square</l><l>5</l><l>0</l><l>0</l><l>0</l><l><bool>true</bool></l><l>thisSprite</l></custom-block><custom-block s="add dataplot of numeric data: %s to PlotPad %txt"><block var="sliceData"/><l>thisSprite</l></custom-block><custom-block s="add axes and scales to PlotPad %txt"><l>thisSprite</l></custom-block></script><list></list></block><list></list></block></script></block-definition><block-definition s="Example 2: false color image of moon crater albertarius" type="command" category="6. ImagePad for image operations"><header></header><code></code><translations></translations><inputs></inputs><script><custom-block s="configure %s as an ImagePad width: %n %br height: %n color: %n %n %n"><l>thisSprite</l><l>400</l><l>300</l><l>245</l><l>245</l><l>245</l></custom-block><block s="doSwitchToCostume"><l>albategnius</l></block><block s="setScale"><l>100</l></block><block s="doWait"><l>1</l></block><custom-block s="import %s from %s %br to myData on %txt"><l>costume(RGB)data</l><l>currentCostume</l><l>myData</l></custom-block><custom-block s="add %s image of %s to ImagePad %br min/max: %n %n log? %b on %txt"><l>false-color</l><l>myData</l><l>0</l><l>255</l><l><bool>true</bool></l><l>thisSprite</l></custom-block></script></block-definition><block-definition s="Example 3: Wolfram Automaton No. 30" type="command" category="6. ImagePad for image operations"><header></header><code></code><translations></translations><inputs></inputs><script><custom-block s="configure %s as an ImagePad width: %n %br height: %n color: %n %n %n"><l>thisSprite</l><l>400</l><l>300</l><l>245</l><l>245</l><l>245</l></custom-block><custom-block s="set ImagePad grid properties on %s %br horizontal cells: %n vertical cells: %n"><l>thisSprite</l><l>400</l><l>300</l></custom-block><custom-block s="fill all cells on %s range x: %n %s y: %n %s %br randomly with numbers %mult%n"><l>thisSprite</l><l>1</l><l>xMax</l><l>1</l><l>yMax</l><list><l>3</l></list></custom-block><custom-block s="set cell value on %s at %n %n to %n with grid lines? %b"><l>thisSprite</l><l>200</l><l>1</l><l>1</l><l><bool>false</bool></l></custom-block><block s="doSetVar"><l>myData</l><custom-block s="apply Wolfram automaton no %n to grid %l %br with colors for 0: %n and 1: %n"><l>30</l><block var="myData"/><l>3</l><l>1</l></custom-block></block><custom-block s="add grid %s on %s with grid lines? %b"><l>myData</l><l>thisSprite</l><l><bool>false</bool></l></custom-block></script></block-definition></blocks> |