Six turns in four stages. Use this shape for every comparison.
Written to the structural rules of ASD-STE100 · runshape.mjs
About the language of this page
This page is a test. It follows the structural rules of ASD-STE100 Simplified Technical
English. It does not follow the dictionary rule. Part 2 of that specification has a licence,
and we do not hold one.
This page is therefore not in Simplified Technical English. It satisfies a subset.
Section 6 gives the measurement.
1Purpose
This procedure gives the standard run. Use it for each comparison that this programme
publishes. A fixed shape makes two runs comparable. It also makes the cost countable before
you spend it.
2The shape
Table 1. The four stages.
Stage
Name
Agents
Turns
Role
1
Setup
1
1
Block. Prepares the state.
2
Wave A
2
2
Treatment. A matched pair.
3
Wave B
2
2
Treatment. A matched pair.
4
Cleanup
1
1
Block. Collects the result.
The run has six turns. It has four stages. No stage uses more than two agents.
3The reason for two agents in a wave
Give the two agents in a wave the same state. Then the wave is a matched pair. A matched
pair removes the task difficulty from the difference between the two conditions. This cuts the
runs you need by a factor of (1 − ρ).
The saving is not automatic. It depends on how you dispatch the wave. Give the two agents
different state. The wave then becomes two independent draws. The saving is then lost.
Warning
Do not vary the brief between the two agents in one wave. Vary only the condition under
test. If you vary both, you cannot separate them.
4Procedure
4.1 Before the run
Write the scorer. Write it before the brief.
Score the current code with the scorer. Confirm that it fails.
Score a minimal correct answer. Confirm that it scores full marks.
Set the number of runs. Use costInRuns() in runshape.mjs.
Fix the stopping rule. Write it down before the first turn.
Name the person who does the human tier. Give a date.
Simulate the design. Report what the simulation gives.
4.2 During the run
Run stage 1. Record the state that it produces.
Dispatch wave A. Give both agents the same state.
Record which agent got which condition.
Wait for both agents. Do not start stage 3 early.
Dispatch wave B. Give both agents the same state again.
Run stage 4. Collect every output.
4.3 After the run
Report the score variance across cells.
Report the number of distinct score values.
Report the share of cells at the maximum.
Stop here if more than 70% of cells sit at the maximum. The run did not discriminate.
Report the spread within a cell next to the difference between cells.
Name each signal that did not fire. Put the names in the report header.
Check each field that orders the report. Report a field that failed.
5The plan is a graph
The shape above is a graph. We write it as rewrite rules, not as a list of
stages. The laws come from morph, which takes them
from MorphoHDL.
A cell is a rewrite rule. A stage expands into sub-stages and wires them.
The bus sets the width. A wave is as wide as the condition bus. One definition
covers two conditions and six.
The only control flow is failure. A wave on a one-condition bus fails. A run past
the budget fails. The planner unwinds to the fallback of that cell.
Probe and build are one interpreter. A flag switches them. The cost estimate
therefore cannot drift from the plan it estimates.
Law 4 is the reason to do this. A cost table kept beside a runner drifts from it. One
interpreter does not drift. The selftest checks that the two agree over six designs.
Law 3 replaces the stopping rule with the same mechanism that ends the recursion. Give the
planner a budget of 20 turns. Then ask it for ten runs. It builds three and records why.
Figure 1. Three standard runs over two conditions. 18 turns, depth
3. Each condition is a lane. The vertical axis is depth, computed by a Kahn pass, so height
means elapsed time. No coordinate in this figure was written by hand.
Figure 2. The same cell over a four-condition bus. The wave widened
because the bus did. The depth did not change, and neither did any geometry.
Figure 3. A bus of one cannot split. Each wave fails and falls back
to a single degraded arm, drawn dashed. The run still completes, at 8 turns instead of 12,
and the failure is on the record.
The layout is a force relaxation. It uses repulsion between nodes, springs along the edges
weighted by endpoint degree, and a weak centring pull. Only x relaxes. We pin y to depth.
The layout settles to the same place from any seed, to about one part in ten million. The
picture is therefore a function of the graph. It is not a function of a lucky start.
6Cost
One run costs six turns. The table gives the cost of one comparison. It uses ρ = 0.413.
That is the only value this programme has measured. Its 95% interval is [0.00, 0.88]. Read
each row as an order of magnitude.
Table 2. Cost of one two-condition comparison at 5% significance and
80% power. Computed by costInRuns().
Effect d
Unpaired runs
Paired runs
Paired turns
0.3
350
206
1236
0.5
126
74
444
0.8
50
30
180
1.2
22
14
84
Table 3. What a turn budget reaches. Computed by
budgetLadder().
Turns
Runs
Detectable d
24
4
2.15
48
8
1.52
96
16
1.07
144
24
0.88
288
48
0.62
480
80
0.48
Read Table 3 first. A large effect costs 180 turns. A medium effect costs 444 turns. Decide
which effect is worth the price. Decide it before the first turn.
7Result of the language test
We wrote this page to the rules. We did not write the other pages to them. The lint counts violations
per 100 sentences.
Table 4. Structural violations per 100 sentences. Lower is closer to
the standard.
Page
Sentences
Longest
Per 100
This page
127
18
0
/methods
221
50
31
/lab
90
37
32
/log
797
47
28
/wp1
109
39
23
/wp2
319
53
33
8Limits
This lint does not apply the dictionary rule. Part 2 of the specification has a licence.
The lint approximates the noun cluster rule. It misses a cluster that holds an -ing noun.
The numeric limits are the commonly cited ones. The specification is the authority.
ρ = 0.413 rests on one judging pass over twelve entries. Its interval is very wide.
This shape has never been run. The cost table is a forecast.
The planner has never dispatched an agent. It builds plans and prices them.
ken · procedure · the standard run
Table 2 and Table 3 are recomputed from ken/lab/runshape.mjs on each build.
Table 4 is recomputed by ken/lab/ste-lint.mjs.