#!/bin/sh /usr/local/bin/XGraph
*ARGUMENTS* -detach
*ARGUMENTS* -progress -stats -bb -tk -m -T distr3 -t distributions -m -show_overlap1 -legend_ul 0.121505,51.8561 -overwrite_legend -error_region -process_bounds0 -transform_axes1

*PARAM_RANGE* 0,1,15

*PARAM_NOW* comment[DCL[Mean,add[mul[setNumber,4],100]],DCL[\s\,50],DCL[Polls,5000],randomise,\n
                    DCL[CurVal],DCL[Timer,0],DCL[TTimer,0],DCL[TCounter,0]\n
            ]
*N* Polls

# *PARAM_FUNCTIONS* self,add[Mean,mul[\s\,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
Mean and width \s\, determined over Polls polls.
Counter the counter. CurVal stores the
current point from the distribution. 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.

*PARAM_BEFORE* \n
     for-to[progn[SS_Add[0],DCL[Counter,0],elapsed[1]],\n
          <[Counter,Polls],\n
          CurVal[add[Mean,mul[\s\,ran[-0.5,0.5]]]],\n
#           CurVal[normal[Mean,\s\,ran[-0.5,0.5]]],\n
          SS_Add[0,CurVal],\n
          Counter[add[Counter,1]]\n
     ]
*PARAM_AFTER* progn[Timer[add[Timer,elapsed[1]]]]

*N*Polls

*LEGEND* av,stdv over Mean+ \s\* ran[-0.5,0.5], N=Polls
*PARAM_NOW*Timer[0]
*PARAM_FUNCTIONS* self,SS_Mean[0],SS_Stdev[0]
*PARAM_NOW*progn[comment[verbose[div[Timer,Counter]]],TTimer[add[TTimer,Timer]],TCounter[add[TCounter,Counter]]]

*PARAM_BEFORE* progn[SS_Add[0],Counter[0],elapsed[1]],\n
     dowhile[\n
          CurVal[div[1,add[Mean,mul[\s\,ran[-0.5,0.5]]]]],\n
          SS_Add[0,CurVal],\n
          Counter[add[Counter,1]],\n
          <[Counter,Polls]\n
     ]

*LEGEND* av,stdv over 1/(Mean+ \s\* ran[-0.5,0.5]), N=Polls
*PARAM_NOW*Timer[0]
*PARAM_FUNCTIONS* self,SS_Mean[0],SS_Stdev[0]
*PARAM_NOW*progn[comment[verbose[div[Timer,Counter]]],TTimer[add[TTimer,Timer]],TCounter[add[TCounter,Counter]]]

*PARAM_BEFORE* progn[SS_Add[0],Counter[0],elapsed[1]],\n
     dowhile[\n
          CurVal[normal[Mean,\s\]],\n
          SS_Add[0,CurVal],\n
          Counter[add[Counter,1]],\n
          <[Counter,Polls]\n
     ],\n

*LEGEND* av,stdv over normal[Mean,\s\], N=Polls
*PARAM_NOW*Timer[0]
*PARAM_FUNCTIONS* self,SS_Mean[0],SS_Stdev[0]
*PARAM_NOW*progn[comment[verbose[div[Timer,Counter]]],TTimer[add[TTimer,Timer]],TCounter[add[TCounter,Counter]]]

*PARAM_BEFORE* \n
     for-to[progn[SS_Add[0],Counter[0],elapsed[1]],\n
          <[Counter,Polls],\n
          CurVal[div[1,normal[Mean,\s\]]],\n
          SS_Add[0,CurVal],\n
          Counter[add[Counter,1]]\n
     ],\n

*LEGEND* av,stdv over 1/normal[Mean,\s\], N=Polls
*PARAM_NOW*Timer[0]
*PARAM_FUNCTIONS* self,SS_Mean[0],SS_Stdev[0]
*PARAM_NOW*progn[comment[verbose[div[Timer,Counter]]],TTimer[add[TTimer,Timer]],TCounter[add[TCounter,Counter]]]


*PARAM_NOW*comment[verbose[div[TTimer,TCounter]]]
