#!/bin/sh /usr/local/bin/XGraph
*ARGUMENTS* -progress -stats -bb -tk -m -detach -T distr2 -m -show_overlap -legend_ul 0.496113,101.956 -overwrite_legend

*PARAM_RANGE* 0,1,15

*PARAM_NOW* comment[MEM[0,add[mul[setNumber,4],100]],MEM[1,10],MEM[2,1000],randomise]
*N* MEM[2]

# *PARAM_FUNCTIONS* self,add[MEM[0],mul[MEM[1],ran[-0.5,0.5]]],elapsed[1]

*EXTRATEXT*
The following code takes a number of samples of average
and standard deviation of a random distribution with average
MEM[0] and width MEM[1], determined over MEM[2] polls.
MEM[10] and MEM[11] contain the sum and sum-squared of
the ran[] polls; MEM[12] the counter. MEM[3] stores the
current point from the distribution; MEM[13] and MEM[14]
resp. the average and the standard deviation. This is
an example of code that executes mainly in the PARAM_BEFORE
call, and takes a lot of computing time for relatively little
datapoints.

# *LEGEND* the standard deviation over MEM[2] ran[] samples
*LEGEND* av,stdv over MEM[0]+ MEM[1]* ran[-0.5,0.5], N=MEM[2]
*PARAM_NOW* MEM[10,0],MEM[11,0],MEM[12,0],elapsed[1]
*PARAM_BEFORE* MEM[10,0],MEM[11,0],MEM[12,0],elapsed[1],\n
     dowhile[\n
          MEM[3,add[MEM[0],mul[MEM[1],ran[-0.5,0.5]]]],\n
#           MEM[3,normal[MEM[0],MEM[1],ran[-0.5,0.5]]],\n
          MEM[10,add[MEM[10],MEM[3]]],\n
          MEM[11,add[MEM[11],pow[MEM[3],2]]],\n
          MEM[12,add[MEM[12],1]],\n
          <[MEM[12],MEM[2]]\n
     ],\n
     progn[MEM[13,div[MEM[10],MEM[2]]],\n
          MEM[14,pow[div[sub[MEM[11],div[pow[MEM[10],2],MEM[2]]],sub[MEM[2],1]],0.5]]\n
     ]
*PARAM_AFTER* progn[MEM[100,add[MEM[100],elapsed[1]]],MEM[101,add[MEM[101],1]]]

*N*MEM[2]

# *PARAM_FUNCTIONS* self,MEM[14],elapsed[1]
*PARAM_NOW*MEM[100,0]
*PARAM_FUNCTIONS* self,MEM[13],MEM[14]
*PARAM_NOW* comment[verbose[ div[MEM[100],MEM[12]]]]

*LEGEND* idem
*PARAM_FUNCTIONS* self,MEM[13],MEM[14]

*PARAM_NOW* comment[MEM[2,floor[div[MEM[2],3]]]]
*N*MEM[2]

*LEGEND* av,stdv over MEM[0]+ MEM[1]* ran[-0.5,0.5], N=MEM[2]
*PARAM_FUNCTIONS* self,MEM[13],MEM[14]

*LEGEND* idem
*PARAM_FUNCTIONS* self,MEM[13],MEM[14]

*PARAM_NOW* verbose[div[MEM[100],MEM[101]]]

# *PARAM_FUNCTIONS* self,normal[MEM[0],0.145246],elapsed[1]

# *READ_FILE*distr2
