Skip to content

Latest commit

 

History

History
701 lines (532 loc) · 22.4 KB

File metadata and controls

701 lines (532 loc) · 22.4 KB

Gallery

This page is generated by running tools/gallery/main.cpp, which builds each formula below with the library's own operators and asks the library to render and evaluate it. Do not edit it by hand -- change the generator and regenerate instead; gallery.is-current fails CI when the two disagree.

Every formula and citation on this page is invented -- generic physics with fictional Example Standard citations, exactly as every test and example elsewhere in this repository is. See the home page.

Bulk density of a compacted specimen

m / V

$$ \frac{m}{V} $$

Symbol Description Unit
m specimen mass kg
V specimen volume m3
  • Reference: Example Standard 1:2020
  • Section: 4.2
  • Equation: (3)

Bulk density is the specimen's mass divided by its volume, both measured under standard conditions.

Circular cross-sectional area

pi * d^2 / 4

$$ \frac{\pi \cdot d^{2}}{4} $$

Symbol Description Unit
d specimen diameter mm
  • Reference: Example Standard 2:2020
  • Section: 5.1

The area of a circular cross-section computed from its diameter.

Maximum specimen diameter

require d <= 139 mm

$$ \text{require } d \leq 139,\mathrm{mm} $$

Symbol Description Unit
d specimen diameter mm
  • Reference: Example Standard 6:2020
  • Section: 4.1

A specimen wider than the die diameter cannot be tested and is rejected outright.

Volumetric flow rate

V / t

$$ \frac{V}{t} $$

Symbol Description Unit
V volume discharged l
t elapsed time s
  • Reference: Example Standard 3:2020

Flow rate is the volume discharged divided by the time taken to discharge it.

Water/cement ratio

V_w / V_c

$$ \frac{V_w}{V_c} $$

Symbol Description Unit
V_w effective water content l
V_c cement content l
  • Reference: Example Standard 4:2020
  • Section: 6.3
  • Equation: (2)

Ratio of the effective water content to the cement content of a batch.

Compaction-adjusted bulk density

if rho_m < 1737 kg/m3 then rho_m * 1127/1000 else rho_m

$$ \begin{cases} rho_m \cdot 1127/1000 & \text{if } rho_m < 1737,\mathrm{kg/m3} \ rho_m & \text{otherwise} \end{cases} $$

Symbol Description Unit
rho_m measured bulk density kg/m3
  • Reference: Example Standard 5:2020
  • Section: 4.5

A specimen compacted below the reference density is corrected upward by a fixed factor; one at or above it is reported as measured.

Size allowance by specimen diameter

lookup(d, 0 to under 103 mm gives 237/100 MPa, 103 to under 163 mm gives 113/100 MPa, 163 to under 197 mm gives 41/100 MPa)

$$ \operatorname{lookup}(d,\allowbreak \mathrm{0\ to\ under\ 103\ mm\ gives\ 237/100\ MPa},\allowbreak \mathrm{103\ to\ under\ 163\ mm\ gives\ 113/100\ MPa},\allowbreak \mathrm{163\ to\ under\ 197\ mm\ gives\ 41/100\ MPa}) $$

Symbol Description Unit
d specimen diameter mm
  • Reference: Example Standard 7:2020
  • Section: 8.2

The allowance deducted from a measured crushing strength, selected by the band the specimen's diameter falls in. A diameter in no band is not a value: the method defined no allowance there and this library reports that rather than inventing one.

Mould factor by specimen mould

lookup(key Cylinder, key Cube gives 1061/1000, key Cylinder gives 863/1000, key Prism gives 781/1000)

$$ \operatorname{lookup}(\mathrm{key\ Cylinder},\allowbreak \mathrm{key\ Cube\ gives\ 1061/1000},\allowbreak \mathrm{key\ Cylinder\ gives\ 863/1000},\allowbreak \mathrm{key\ Prism\ gives\ 781/1000}) $$

  • Reference: Example Standard 7:2020
  • Section: 8.3

A category key names a row directly, and renders under its enumerator's name. An author whose published table words a row differently spells it once, for the whole enumeration, through formula::EnumeratorName.

Maturity factor by curing age

interpolate(t, at 31 h gives 613/1000, at 83 h gives 857/1000, at 197 h gives 1031/1000)

$$ \operatorname{interpolate}(t,\allowbreak \mathrm{at\ 31\ h\ gives\ 613/1000},\allowbreak \mathrm{at\ 83\ h\ gives\ 857/1000},\allowbreak \mathrm{at\ 197\ h\ gives\ 1031/1000}) $$

Symbol Description Unit
t curing age at test h
  • Reference: Example Standard 7:2020
  • Section: 8.4
  • Equation: (7)

A curve stated at three ages. A specimen tested between two of them gets the value those two rows imply at that age -- a number appearing in no row of the table. A specimen younger or older than the curve gets nothing at all: there is no extrapolation.

Size- and age-corrected crushing strength

(f - lookup(d, 0 to under 103 mm gives 237/100 MPa, 103 to under 163 mm gives 113/100 MPa, 163 to under 197 mm gives 41/100 MPa)) * lookup(key Cylinder, key Cube gives 1061/1000, key Cylinder gives 863/1000, key Prism gives 781/1000) * interpolate(t, at 31 h gives 613/1000, at 83 h gives 857/1000, at 197 h gives 1031/1000)

$$ (f - \operatorname{lookup}(d,\allowbreak \mathrm{0\ to\ under\ 103\ mm\ gives\ 237/100\ MPa},\allowbreak \mathrm{103\ to\ under\ 163\ mm\ gives\ 113/100\ MPa},\allowbreak \mathrm{163\ to\ under\ 197\ mm\ gives\ 41/100\ MPa})) \cdot \operatorname{lookup}(\mathrm{key\ Cylinder},\allowbreak \mathrm{key\ Cube\ gives\ 1061/1000},\allowbreak \mathrm{key\ Cylinder\ gives\ 863/1000},\allowbreak \mathrm{key\ Prism\ gives\ 781/1000}) \cdot \operatorname{interpolate}(t,\allowbreak \mathrm{at\ 31\ h\ gives\ 613/1000},\allowbreak \mathrm{at\ 83\ h\ gives\ 857/1000},\allowbreak \mathrm{at\ 197\ h\ gives\ 1031/1000}) $$

Symbol Description Unit
f measured crushing strength MPa
d specimen diameter mm
t curing age at test h
  • Reference: Example Standard 7:2020
  • Section: 8.5
  • Equation: (8)

The measured strength less its size allowance, scaled by the mould factor and by the maturity factor -- one banded, one exact and one interpolating table inside a single expression.

Spread of repeated determinations

round(sqrt(sample_variance(m(i))), to 2 dp of g)

$$ \operatorname{round}_{2,\mathrm{g}}(\sqrt{s^{2}({m}_{i})}) $$

Symbol Description Unit
m mass of a determination g
  • Reference: Example Standard 5:2022
  • Section: 7.2

The square root of the sample variance, rounded exactly to 0.01 g: never a rounded floating-point root.

Logarithmic reduction

round(log10(N_0 / N), to 2 dp)

$$ \operatorname{round}_{2}(\log_{10}\left(\frac{N_0}{N}\right)) $$

Symbol Description Unit
N_0 count before treatment dimensionless
N count after treatment dimensionless
  • Reference: Example Standard 8:2023
  • Section: 6.1

The decimal logarithm of the count before over the count after, rounded exactly to 0.01: the decimal the true logarithm rounds to, never a rounded floating-point one.

Mean after rejecting outliers

sample_mean(without outliers(m(i); abs(x - pass mean) > 3/50 * pass mean; most extreme per pass; keep on limit; at most 2; keep at least 4))

$$ \overline{\operatorname{without\ outliers}({m}_{i};\allowbreak \left\lvert x - \bar{x}_{\text{pass}}\right\rvert &gt; 3/50 \cdot \bar{x}_{\text{pass}};\allowbreak \text{most extreme per pass};\allowbreak \text{keep on limit};\allowbreak \text{at most }2;\allowbreak \text{keep at least }4)} $$

Symbol Description Unit
m mass of a determination g
  • Reference: Example Standard 5:2022
  • Section: 7.4

A determination more than 6 % of the mean from it is rejected, and the mean is taken again, until nothing more is rejected; a third rejection, or fewer than four left, is the author's verdict.

Repeatability of two determinations

require abs(x_A - x_B) <= r(1/10 g + 1/50 * level; level = (x_A + x_B) / 2)

$$ \text{require } \left\lvert x_A - x_B\right\rvert \leq r\left(1/10,\mathrm{g} + 1/50 \cdot \text{level}\right)\Big\vert_{\text{level} = \frac{x_A + x_B}{2}} $$

Symbol Description Unit
x_A first determination g
x_B second determination g
  • Reference: Example Standard 5:2022
  • Section: 8.1

The two determinations agree when they differ by no more than r = 0.1 g + level / 50, the level being their mean.

Worked evaluation: water/cement ratio

V_w = 180 l, V_c = 300 l:

V_w / V_c
with V_w = 180 l and V_c = 300 l: 3/5 = 0.6

Worked derivation: bulk density

m = 1200 kg, V = 0.5 m3, formula::explain() and formula::render_trace():

m / V
1. m = 1200 kg
2. V = 1/2 m3
3. #1 / #2 = 2400
4. #3 = 2400 [Bulk density of a compacted specimen, Example Standard 1:2020, 4.2, (3)]

Worked derivation: compaction-adjusted bulk density

rho_m = 1523 kg/m3 -- below the 1737 kg/m3 reference density, so the predicate holds and the correction factor is applied:

if rho_m < 1737 kg/m3 then rho_m * 1127/1000 else rho_m
1. rho_m = 1523 kg/m3
2. 1737 kg/m3
3. rho_m = 1523 kg/m3
4. 1127/1000
5. #3 * #4 = 1716421/1000
6. if #1 < #2 then #5 = 1716421/1000
7. #6 = 1716421/1000 [Compaction-adjusted bulk density, Example Standard 5:2020, 4.5]

Worked derivation: maximum specimen diameter, alongside the circular area it validates

d = 173 mm -- above the 139 mm tolerance, so the constraint is violated and its verdict appears in the trace, formula::check() and formula::render_trace():

require d <= 139 mm
pi * d^2 / 4
1. d = 173 mm
2. 139 mm
3. require #1 <= #2 [specimen exceeds diameter tolerance]

Worked derivation: size- and age-corrected crushing strength

f = 33 MPa, d = 127 mm, t = 57 h, mould key Cylinder. Each table names the row it answered from: the banded one its interval, the interpolating one the two rows it drew on. The exact lookup adds nothing there -- its key is already the subject of its own line.

(f - lookup(d, 0 to under 103 mm gives 237/100 MPa, 103 to under 163 mm gives 113/100 MPa, 163 to under 197 mm gives 41/100 MPa)) * lookup(key Cylinder, key Cube gives 1061/1000, key Cylinder gives 863/1000, key Prism gives 781/1000) * interpolate(t, at 31 h gives 613/1000, at 83 h gives 857/1000, at 197 h gives 1031/1000)
1. f = 33 MPa
2. d = 127 mm
3. lookup(#2) = 113/100 MPa [103 to under 163 mm]
4. #1 - #3 = 31870000
5. lookup(key Cylinder) = 863/1000
6. #4 * #5 = 27503810
7. t = 57 h
8. interpolate(#7) = 147/200 [between 31 and 83 h]
9. #6 * #8 = 404306007/20
10. #9 = 404306007/20 [Size- and age-corrected crushing strength, Example Standard 7:2020, 8.5, (8)]

Worked derivation: a lookup that found nothing

The same size-allowance table at d = 241 mm. The table's last band stops below 197 mm, so 241 mm falls in no band -- and a miss is not a value: not zero, not the nearest band, not the last one. The bracketed clause is what keeps the line from being read as a failure relayed up from somewhere below it.

lookup(d, 0 to under 103 mm gives 237/100 MPa, 103 to under 163 mm gives 113/100 MPa, 163 to under 197 mm gives 41/100 MPa)
1. d = 241 mm
2. lookup(#1) = argument outside the domain of the operation [in no band; the bands cover 0 to under 197 mm]
3. #2 = argument outside the domain of the operation [Size allowance by specimen diameter, Example Standard 7:2020, 8.2]

Worked derivation: a method's selected variant, and the same method overlaid

F = 226 kN, a = 150 mm, k_s = 1043/1000, the cube variant selected by tag. The method rounds by its own rule, and the trace says which variant ran and whose rule rounded it:

k_s * F / a^2
1. k_s = 1043/1000
2. F = 226000 N
3. #1 * #2 = 235718
4. a = 150 mm
5. #4^2 = 9/400
6. #3 / #5 = 94287200/9
7. round(#6, in MPa) = 21/2 MPa [rounded to 1 dp (method default); nearest, ties away from zero]
8. #7 = 21/2 MPa [variant Cube (1st of 2), selected by tag]

The same specimen under a jurisdiction's overlay, which fixes the shape factor and reports in N/mm2 to two decimals:

k_s * F / a^2
1. k_s = 887/1000 [fixed by jurisdiction overlay: Shape factor, Example Standard 7:2020 NA, NA.2]
2. F = 226000 N
3. #1 * #2 = 200462
4. a = 150 mm
5. #4^2 = 9/400
6. #3 / #5 = 80184800/9
7. round(#6, in N/mm2) = 891/100 N/mm2 [rounded to 2 dp (jurisdiction overlay: Example Standard 7:2020 NA, NA.4); nearest, ties away from zero]
8. #7 = 891/100 N/mm2 [variant Cube (1st of 2), selected by tag]

Worked acceptance: the method's own checks, and a jurisdiction's

The same specimen checked by the method's own acceptance check:

1. F = 226000 N
2. 163 kN
3. require #1 >= #2 [satisfied; the method's own constraint]
4. acceptance(#3) [the method's own constraints]

And by the overlay's two checks in its place. The overlay lists the shape factor's constant after its checks, so the constant reaches inside them:

1. F = 226000 N
2. 277 kN
3. require #1 >= #2 [the load at failure is below 277 kN; jurisdiction overlay: Acceptance, Example Standard 7:2020 NA, NA.6]
4. k_s = 887/1000 [fixed by jurisdiction overlay: Shape factor, Example Standard 7:2020 NA, NA.2]
5. 913/1000
6. require #4 <= #5 [satisfied; jurisdiction overlay: Acceptance, Example Standard 7:2020 NA, NA.6]
7. acceptance(#3, #6) [jurisdiction overlay: Acceptance, Example Standard 7:2020 NA, NA.6]

Worked derivation: the percentage passing each screen

m_r = 130, 210, 95, 340 and 28 g retained on five screens, m_t = 1250 g. The series is marked (i) in the formula, and each step of its derivation carries every element:

100 % - cumulative(m_r(i), from last) / m_t
1. 100 %
2. m_r = 130 g; 210 g; 95 g; 340 g; 28 g
3. cumulative(#2, from last) = 803 g; 673 g; 463 g; 368 g; 28 g
4. m_t = 1250 g
5. #3 / #4 = 803/1250; 673/1250; 463/1250; 184/625; 14/625
6. #1 - #5 = 447/1250; 577/1250; 787/1250; 441/625; 611/625

Worked derivation: a grading curve read between two screens

The same percentages paired with the declared screens as a curve, and read at 173 m. The last step names the two screens the answer lay between. Its value, like every computed step's, reads in the coherent unit, a plain fraction for a percentage: 6927/10625 is about 65.2 %.

interpolate(curve(domain(103, 127, 163, 197, 241 m), 100 % - cumulative(m_r(i), from last) / m_t), at 173 m)
1. 103 m; 127 m; 163 m; 197 m; 241 m
2. 100 %
3. m_r = 130 g; 210 g; 95 g; 340 g; 28 g
4. cumulative(#3, from last) = 803 g; 673 g; 463 g; 368 g; 28 g
5. m_t = 1250 g
6. #4 / #5 = 803/1250; 673/1250; 463/1250; 184/625; 14/625
7. #2 - #6 = 447/1250; 577/1250; 787/1250; 441/625; 611/625
8. curve(#1, #7) = 103 m: 447/1250; 127 m: 577/1250; 163 m: 787/1250; 197 m: 441/625; 241 m: 611/625
9. 173 m
10. interpolate(#8, at #9) = 6927/10625 [between 163 and 197 m]

Worked derivation: particles counted into classes, and one in no class

Seven particles, counted into three half-open classes and divided by their total. 127 and 197 m sit on class boundaries and count in the upper class. The formula names the binning twice -- once counted, once summed -- and each is evaluated where it stands, so the observations are read, and binned, twice:

bin(s(i), 0 to under 127 m, 127 to under 197 m, 197 to under 331 m) / sum(bin(s(i), 0 to under 127 m, 127 to under 197 m, 197 to under 331 m))
1. s = 103 m; 127 m; 163 m; 277 m; 113 m; 197 m; 241 m
2. bin(#1) = 2; 2; 3
3. s = 103 m; 127 m; 163 m; 277 m; 113 m; 197 m; 241 m
4. bin(#3) = 2; 2; 3
5. sum(#4) = 7
6. #2 / #5 = 2/7; 2/7; 3/7

The fourth particle measured 331 m instead: the last class's high bound, in no class. A miss is not dropped, and the step names the observation. The division then relays the failure without a position. Its divisor was never reached, so the line names the counts it evaluated and says so in the divisor's place, #2 / (not evaluated):

1. s = 103 m; 127 m; 163 m; 331 m; 113 m; 197 m; 241 m
2. bin(#1) = argument outside the domain of the operation at observation 4 [331 m in no class; the classes cover 0 to under 331 m]
3. #2 / (not evaluated) = argument outside the domain of the operation

Worked statistics: a mean with its spread, and the mean after rejecting outliers

Six determinations, 40.2, 39.8, 40.5, 44.0, 40.0 and 43.3 g. Their mean:

sample_mean(m(i))
1. m = 201/5 g; 199/5 g; 81/2 g; 44 g; 40 g; 433/10 g
2. sample_mean(#1) = 413/10 g

Their spread, reported exactly:

round(sqrt(sample_variance(m(i))), to 2 dp of g)
1. m = 201/5 g; 199/5 g; 81/2 g; 44 g; 40 g; 433/10 g
2. sample_variance(#1) = 427/125000000
3. round(sqrt(#2), to 2 dp of g) = 37/20 g [nearest, ties away from zero]
4. #3 = 37/20 g [Spread of repeated determinations, Example Standard 5:2022, 7.2]

Their mean after rejecting outliers: 44.0 g goes in pass 1, 43.3 g in pass 2, and pass 3 settles:

sample_mean(without outliers(m(i); abs(x - pass mean) > 3/50 * pass mean; most extreme per pass; keep on limit; at most 2; keep at least 4))
1. m = 201/5 g; 199/5 g; 81/2 g; 44 g; 40 g; 433/10 g
2. 3/50
3. pass mean = 413/10 g
4. #2 * #3 = 1239/500000
5. pass 1: 6 values, mean 413/10 g
6. rejected element 4 of 6 (44 g) in pass 1: abs(x - mean) = 27/10 g > 1239/500 g (deviation from mean)
7. 3/50
8. pass mean = 1019/25 g
9. #7 * #8 = 3057/1250000
10. pass 2: 5 values, mean 1019/25 g
11. rejected element 6 of 6 (433/10 g) in pass 2: abs(x - mean) = 127/50 g > 3057/1250 g (deviation from mean)
12. 3/50
13. pass mean = 321/8 g
14. #12 * #13 = 963/400000
15. pass 3: 4 values, mean 321/8 g
16. settled: 2 rejected, 4 remain
17. sample_mean(#16) = 321/8 g
18. #17 = 321/8 g [Mean after rejecting outliers, Example Standard 5:2022, 7.4]

The same rule allowed one rejection: the second is one too many, and the author's verdict stands in place of a mean:

sample_mean(without outliers(m(i); abs(x - pass mean) > 3/50 * pass mean; most extreme per pass; keep on limit; at most 1; keep at least 4))
1. m = 201/5 g; 199/5 g; 81/2 g; 44 g; 40 g; 433/10 g
2. 3/50
3. pass mean = 413/10 g
4. #2 * #3 = 1239/500000
5. pass 1: 6 values, mean 413/10 g
6. rejected element 4 of 6 (44 g) in pass 1: abs(x - mean) = 27/10 g > 1239/500 g (deviation from mean)
7. 3/50
8. pass mean = 1019/25 g
9. #7 * #8 = 3057/1250000
10. pass 2: 5 values, mean 1019/25 g
11. element 6 of 6 would be rejection 2 of at most 1: discard the determinations and repeat the test [Outliers, Example Standard 5:2022, 7.4]
12. sample_mean(#11) = argument outside the domain of the operation

Worked precision check: two determinations at their own level

x_A = 40.0 g and x_B = 40.905 g, 0.905 g apart. The limit is evaluated at the level it checks -- their mean, 40.4525 g -- in two declared passes:

require abs(x_A - x_B) <= r(1/10 g + 1/50 * level; level = (x_A + x_B) / 2)
1. x_A = 40 g
2. x_B = 8181/200 g
3. #1 - #2 = -181/200000
4. abs(#3) = 181/200000
5. x_A = 40 g
6. x_B = 8181/200 g
7. #5 + #6 = 16181/200000
8. 2
9. #7 / #8 = 16181/400000
10. level (pass 1 of 2) = #9 = 16181/400 g
11. 1/10 g
12. 1/50
13. level = 16181/400 g [bound by #16]
14. #12 * #13 = 16181/20000000
15. #11 + #14 = 18181/20000000
16. r at level #10 (pass 2 of 2) = #15 = 18181/20000000
17. require #4 <= #16 [satisfied]

Worked derivation: a strength relative to a reference specimen

This specimen's f = 36 MPa over the reference specimen's strength, computed from the reference's own F = 579 630 N and a = 139 mm. Every step read from the reference says so, with its sample and test:

f / ((F / (a * a)) of ReferenceSpecimen)
1. f = 36 MPa
2. F = 579630 N, from record ReferenceSpecimen (sample 23, test 3)
3. a = 139 mm, from record ReferenceSpecimen (sample 23, test 3)
4. a = 139 mm, from record ReferenceSpecimen (sample 23, test 3)
5. #3 * #4 = 19321/1000000
6. #2 / #5 = 30000000
7. #6 from record ReferenceSpecimen (sample 23, test 3) = 30000000
8. #1 / #7 = 6/5

The same read, gated on the two specimens sharing a curing batch. The reference was cured in another batch, so the read is refused before the reference's values are used, and the trace says which attribute refused it, with both keys. The requirement does not change the formula on the page; the trace records every attribute it compared:

f / ((F / (a * a)) of ReferenceSpecimen)
1. f = 36 MPa
2. same CuringBatch as this record: 4411 for this record, 4412 for ReferenceSpecimen, violated
3. from record ReferenceSpecimen (sample 23, test 3) = argument outside the domain of the operation
4. #1 / #3 = argument outside the domain of the operation

Worked derivation: a straight line fitted by least squares

Settlement read at t = 1, 2, 4 and 7 s: L = 10.2, 10.9, 12.1 and 14.3 mm. The fit is an opaque operation: its step lists the intercept and the slope it produced, exactly, and says its inside is not shown:

linear least squares(t(i), L(i)).slope
1. t = 1 s; 2 s; 4 s; 7 s
2. L = 51/5 mm; 109/10 mm; 121/10 mm; 143/10 mm
3. curve(#1, #2) = 1 s: 51/5 mm; 2 s: 109/10 mm; 4 s: 121/10 mm; 7 s: 143/10 mm
4. linear least squares(#3) = intercept = 19/2 mm; slope = 19/28 mm/s [inside not shown] [Rate of settlement, Example Standard 12, 5.1]
5. slope of #4 = 19/28 mm/s

Worked retry: an estimate repeated until it settles

Each attempt halves the previous estimate and adds 6.08 g, from 0 g, and is accepted once it rose by at most 0.76 g; after four attempts without that, the method's verdict. It settles at the fourth:

up to 4 attempts: w(k) = 152/25 g + w(k-1) / 2, starting from w(0) = 0 g; accept when w(k-1) - w(k) >= -19/25 g; otherwise: repeat the determination
1. 0 g
2. 152/25 g
3. w(k-1) = 0 g
4. 2
5. #3 / #4 = 0
6. #2 + #5 = 19/3125
7. w(k-1) = 0 g
8. w(k) = 152/25 g
9. #7 - #8 = -19/3125
10. -19/25 g
11. attempt 1: w(k) = #6 = 152/25 g; judged #9 >= #10: rejected
12. 152/25 g
13. w(k-1) = 152/25 g
14. 2
15. #13 / #14 = 19/6250
16. #12 + #15 = 57/6250
17. w(k-1) = 152/25 g
18. w(k) = 228/25 g
19. #17 - #18 = -19/6250
20. -19/25 g
21. attempt 2: w(k) = #16 = 228/25 g; judged #19 >= #20: rejected
22. 152/25 g
23. w(k-1) = 228/25 g
24. 2
25. #23 / #24 = 57/12500
26. #22 + #25 = 133/12500
27. w(k-1) = 228/25 g
28. w(k) = 266/25 g
29. #27 - #28 = -19/12500
30. -19/25 g
31. attempt 3: w(k) = #26 = 266/25 g; judged #29 >= #30: rejected
32. 152/25 g
33. w(k-1) = 266/25 g
34. 2
35. #33 / #34 = 133/25000
36. #32 + #35 = 57/5000
37. w(k-1) = 266/25 g
38. w(k) = 57/5 g
39. #37 - #38 = -19/25000
40. -19/25 g
41. attempt 4: w(k) = #36 = 57/5 g; judged #39 >= #40: accepted
42. w = retry: accepted at attempt 4 of 4 = 57/5 g [Settled estimate, Example Standard 12, 6]