diff --git a/docs/DECISIONS.md b/docs/DECISIONS.md index 77613ef..3bc1df7 100644 --- a/docs/DECISIONS.md +++ b/docs/DECISIONS.md @@ -1028,3 +1028,18 @@ Consequences: no rate-change delay (latency = the oversampler's: 49 samples FIR `harness/reports/M6/20261017_plugin_cpu.md`: default knobs 26.4 % (Half 18.9 %), every knob 10 50.2 % (33.2 %), knob automation 32–35 % (≈ 24 %); at the owner's NAM-matched settings 47.3 % (Half 31.5 %). Null test 26 / 26; automation (96 kHz, Full, exact J4, 1e-4 V) 0 non-finite, 20 rescued first-solve failures. The null test and the CPU tool default to Full. + +## D-061 EL34: no plate current below the cathode (5 V softplus of the plate voltage; reference model change) +Date: 2026-10-17 · Status: accepted (owner: "approve the tubes.lib change") +Context: with the speaker load (D-059) the power amp at HOT had 37–56 first-solve Newton failures per DI clip at 384 kHz +(more at 768 kHz, 43 unrescued) and the b56 / b6 SPICE references stopped with "timestep too small". Diagnosis +(PROGRESS 2026-10-17): every failure at pair B's plate port during a flyback (pair A +1100 … +3400 V, pair B −700 … +−2600 V), where Koren's unclamped atan(Vpk/kvb) gives a reverse plate current and the screen knee switches at Vpk = 0; +not the iteration budget, tolerance, matrix precision, halvings or the half-step code (every-sample half-steps at fs +reproduce 2·fs to −67.6 dB). +Decision: in `tubes.lib` (EL34 Bp, Bs) and `devices::Pentode`, Vpk enters atan through P = max(Vpk, 0) + 5·ln(1 + +exp(−|Vpk|/5)): the plate current vanishes below the cathode, the cut-off current goes to the screen, and both are smooth +at 0 V. Above +20 V, P = Vpk within 0.1 V (DC operating point unchanged). +Consequences: engine diagnostic: HOT DI 0 power-amp failures at 8x and 16x; CRUNCH / DRIVE unchanged (−218 … −224 dB vs +the previous engine), HOT differs by −35 … −37 dB. tests/data EL34 sweeps regenerated; the pentode test asserts the new +below-cathode behaviour. SPICE references with the power amp are re-rendered. diff --git a/docs/PROGRESS.md b/docs/PROGRESS.md index 99570e4..994b714 100644 --- a/docs/PROGRESS.md +++ b/docs/PROGRESS.md @@ -826,6 +826,22 @@ Notes: - Owner listening 2026-10-17 (NAM-matched settings, same IR): Power Amp Rate Full vs Half, "can't hear any real audible difference". The earlier NAM comparison ("pretty accurate") was made at Half (the restored instance setting). - Owner 2026-10-17: keep Full as the default (D-060 confirmed after the listening test); Half stays selectable per instance. +- Owner 2026-10-17: fix the HOT convergence with the speaker load. Plan: (1) check the half-step handling of the speaker + inductors (every-sample half-steps at fs must reproduce 2·fs without half-steps, D-043); (2) characterise the failing + power-amp solves (ports, residuals, iterations); (3) fix (Newton step control / fallback / discretisation) and re-verify + HOT, the plugin model check and the acceptance. +- Diagnosis: every-sample half-steps at 8x reproduce 16x to −67.6 dB (half-step code correct); failures grow with the step + rate (384 kHz: 1, 768 kHz: 34–37) and are unchanged by maxIter 64, tolerances 1e-6 … 1e-8, double-double matrices or 4 / 8 + halvings (8: stall). All at pair B's plate in flybacks below the cathode (−700 … −2600 V): Koren's unclamped + atan(Vpk/kvb) gives reverse plate current there. Hard clamp: mixed; 5 V softplus with a matching screen knee: 0 failures + at 8x and 16x. Owner approved the tubes.lib change (D-061). +- D-061 verification (new references): M4 full acceptance (768 kHz) 107 PASS; 384 kHz exact J4 107 PASS; HOT 20 PASS / 1 FAIL: + DI ESR −40.3 … −41.3 dB (D-059 alone −33.5 … −35.7), Newton failures 0 / 0 / 0 / 2 (rescued; the FAIL); b56 106 PASS; b6 + 96 PASS / 1 FAIL (the known 5 kHz 20 V Newton median, D-043); b5open 88 PASS. The b56 / b6 SWP-lo-0.1V references still stop + with "timestep too small" at RELTOL 1e-8 (node y / the recorded nScr source, same times as before D-061: not the tube + model) and are now rendered once more at RELTOL 1e-7 by `render_spice` (as the M3 cascade), noted in the reports. Plugin + model check: Full 2x HOT −24.2 dB (PASS), unseen −20.8 dB, 94 first-solve failures (2 unrescued) over 28 runs, nearly all in + the extreme validation settings (presets: 0 / 0 / 2); Half 2x HOT −18.9 dB. Presence knob jump −62.9 dB; null test 26 / 26. ## Questions for the owner _(Claude Code: add questions here and also ask them in the session.)_ diff --git a/docs/WDF_DESIGN.md b/docs/WDF_DESIGN.md index 684e3b2..3a4f490 100644 --- a/docs/WDF_DESIGN.md +++ b/docs/WDF_DESIGN.md @@ -80,17 +80,21 @@ Vs' = max(Vsk, 1e−3) u = kp · (1/mu + Vgk / Vs') E1 = Vs' · softplus(u) / kp F = E1 > 0 ? 2 · E1^ex : 0 -Ip = (F / kg1) · atan(Vpk / kvb) -Is = F · ( 1/kg2 + (1.5707963 − atan(max(Vpk, 0) / kvb)) / kg1 ) (tubes.lib's literal for π/2) +P = max(Vpk, 0) + 5 · ln(1 + exp(−|Vpk| / 5)) (5 V softplus of Vpk, D-061) +Ip = (F / kg1) · atan(P / kvb) +Is = F · ( 1/kg2 + (1.5707963 − atan(P / kvb)) / kg1 ) (tubes.lib's literal for π/2) Ig = diode as in 3.1 with Rs = 1000 Ω + 1 Ω ∂E1/∂Vgk = sigmoid(u) ∂E1/∂Vsk = softplus(u)/kp − sigmoid(u) · Vgk / Vs' (0 when Vsk < 1e−3) ∂F/∂x = 2 · ex · E1^(ex−1) · ∂E1/∂x -∂atan(Vpk/kvb)/∂Vpk = (1/kvb) / (1 + (Vpk/kvb)²) +∂P/∂Vpk = logistic(Vpk / 5) +∂atan(P/kvb)/∂Vpk = (∂P/∂Vpk / kvb) / (1 + (P/kvb)²) ``` -Note: as in SPICE, `atan(Vpk/kvb)` is not clamped in the plate equation, so Ip would go negative if the -plate fell below the cathode. Replicate SPICE exactly; log it if it ever happens in the harness. +Note (D-061): Koren's form used atan(Vpk/kvb) unclamped, so Ip went negative below the cathode, and the screen knee +switched at Vpk = 0. With the speaker load (D-059) the plates fly far below the cathode at high Master and the power-amp +Newton failed there; the 5 V softplus gives no plate current below the cathode, smooth through 0 V, and is equal to +Vpk within 0.1 V above +20 V. SPICE (tubes.lib) uses the same expression. Matched-pair equivalent (B6): multiply Ip, Is, Ig and all their derivatives by 2. diff --git a/engine/src/devices/Pentode.h b/engine/src/devices/Pentode.h index 84cba25..078530e 100644 --- a/engine/src/devices/Pentode.h +++ b/engine/src/devices/Pentode.h @@ -19,12 +19,14 @@ struct PentodeCurrents { /// Koren pentode with this repository's screen-current modification, as in reference/spice/tubes.lib /// (subckt EL34, WDF_DESIGN §3.2): /// Vs' = max(Vsk, 1 mV), u = kp·(1/mu + Vgk/Vs'), E1 = Vs'·softplus(u)/kp, F = 2·E1^ex, -/// Ip = (F/kg1)·atan(Vpk/kvb), Is = F·(1/kg2 + (1.5707963 − atan(max(Vpk, 0)/kvb))/kg1), +/// P = s(Vpk) = max(Vpk, 0) + 5·ln(1 + exp(−|Vpk|/5)) (5 V softplus, D-061), +/// Ip = (F/kg1)·atan(P/kvb), Is = F·(1/kg2 + (1.5707963 − atan(P/kvb))/kg1), /// Ig = grid diode (Rs = rgi + 1 Ω). -/// As in SPICE, atan(Vpk/kvb) in Ip is not clamped (Ip < 0 below the cathode). The 1 GΩ Re1 / Rcp +/// No plate current below the cathode (it goes to the screen), smooth at Vpk = 0 (D-061). The 1 GΩ Re1 / Rcp /// helpers, the diode's CJO / TT and the inter-electrode capacitances are not part of the device. /// `count` scales every current and derivative: 2 = a matched pair with identical drive (SPEC §4.2 B6). struct Pentode { + static constexpr double kPlateSoft = 5.0; // V, plate softplus scale (D-061) double mu = 14.77, ex = 1.046, kg1 = 194.3, kg2 = 2243.0, kp = 53.82, kvb = 40.43; // D-058 (was Koren 11 / 1.35 / 650 / 4200 / 60 / 24) GridDiode grid{1e-9, 1.0, 1000.0 + 1.0}; double count = 1.0; @@ -45,20 +47,23 @@ struct Pentode { const double df_dvgk = df_de1 * sg; const double df_dvsk = clamped ? 0.0 : df_de1 * (sp / kp - sg * vgk / vs); - const double x = vpk / kvb; + // P = 5 V softplus of Vpk (overflow-free form), dP/dVpk = logistic(Vpk/5) (D-061) + const double e = std::exp(-std::fabs(vpk) / kPlateSoft); + const double pv = std::fmax(vpk, 0.0) + kPlateSoft * std::log1p(e); + const double dpv = vpk >= 0.0 ? 1.0 / (1.0 + e) : e / (1.0 + e); + const double x = pv / kvb; const double a = std::atan(x); - const double da = 1.0 / (kvb * (1.0 + x * x)); + const double da = dpv / (kvb * (1.0 + x * x)); c.ip = f / kg1 * a; c.dip_dvgk = df_dvgk / kg1 * a; c.dip_dvsk = df_dvsk / kg1 * a; c.dip_dvpk = f / kg1 * da; - const double knee = vpk > 0.0 ? a : 0.0; - const double sfac = 1.0 / kg2 + (1.5707963 - knee) / kg1; + const double sfac = 1.0 / kg2 + (1.5707963 - a) / kg1; c.is = f * sfac; c.dis_dvgk = df_dvgk * sfac; c.dis_dvsk = df_dvsk * sfac; - c.dis_dvpk = vpk > 0.0 ? -f * da / kg1 : 0.0; + c.dis_dvpk = -f * da / kg1; } if (count != 1.0) { for (double* p : {&c.ig, &c.is, &c.ip, &c.dig_dvgk, &c.dis_dvgk, &c.dis_dvsk, &c.dis_dvpk, &c.dip_dvgk, diff --git a/harness/render_spice.py b/harness/render_spice.py index 58be4f5..2c12a63 100644 --- a/harness/render_spice.py +++ b/harness/render_spice.py @@ -29,6 +29,9 @@ def select_signals(block, preset, pattern=None): return [s for s in sigs if pattern is None or pattern in s.id] +RETRY_RELTOL = 1e-7 # one retry after "timestep too small" (the M3 cascade's P56_RETRY_RELTOL) + + def render(block, preset, signals, jobs=None, log=print): """Returns {'op': {...}, 'ac': (f, h) or None, 'tran': {signal id: {node: array}}, 'recorded': {signal id: {name: array}}, 'notes': [...]}. Blocks driven by recordings (b5open, b6) get them from their source runs @@ -46,7 +49,13 @@ def one(sig): t0 = time.time() rec, notes = recordings.recordings(block, knobs, sig) x = block_input(block, sig) if block.input_node else None - res = spice.tran(text, knobs, x, nodes, recorded=rec or None) + try: + res = spice.tran(text, knobs, x, nodes, recorded=rec or None) + except spice.SpiceError as e: # as the M3 cascade (render_p56): one retry at RELTOL 1e-7, noted in the report + if 'Timestep too small' not in str(e): + raise + res = spice.tran(text, knobs, x, nodes, recorded=rec or None, reltol=RETRY_RELTOL) + notes = list(notes) + [f'rendered at RELTOL {RETRY_RELTOL:g} (ngspice: timestep too small at {config.SPICE_RELTOL:g})'] if block.engine_supplies: # the engine block runs on this run's own supply waveforms (b56) rec = {n: res[n] for n in block.engine_supplies} log(f' spice {block.id}/{preset.id}/{sig.id}: {len(sig.x) / config.FS:.3f} s signal, {time.time() - t0:.1f} s') diff --git a/harness/reports/M4/20261018_b56_DEFAULT.md b/harness/reports/M4/20261018_b56_DEFAULT.md new file mode 100644 index 0000000..42775b3 --- /dev/null +++ b/harness/reports/M4/20261018_b56_DEFAULT.md @@ -0,0 +1,230 @@ +# M4 report: b56 / DEFAULT + +- Block: B56 PowerAmp (phase inverter + power stage + OT in one tree, D-041); SPICE with B7 +- Preset: DEFAULT — Default knobs; standard signal set at the block levels +- Knobs: preampVolume=0.6, treble=0.5, middle=0.5, bass=0.5, master=0.3, presence=0.5 +- Date: 2026-10-18 +- Engine commit: `9a422dd (dirty)` +- Testbench: `harness/testbenches/b56.cir` sha256 `6ab5e743770ccb18`; netlist sha256 `83f01b6fd8b64a06`; tubes.lib sha256 `c9c9c88346c69010` +- ngspice 47, fs = 768000 Hz, SPICE reltol 1e-08 + +> SWP-lo-0.1V rendered at RELTOL 1e-07 (ngspice: timestep too small at 1e-08) + +## Summary + +PASS 106 · FAIL 0 · INFO 27 (INFO = measured, not scored in M4) + +| Check | Item | Measured | Tolerance | Status | +|---|---|---|---|---| +| dc_rel_error | v(bpx) | 6.632e-13 | ≤ 0.005 | PASS | +| dc_rel_error | v(ct) | 3.008e-15 | ≤ 0.005 | PASS | +| dc_rel_error | v(g3a) | 2.529e-05 | ≤ 0.005 | PASS | +| dc_rel_error | v(g3b) | 2.529e-05 | ≤ 0.005 | PASS | +| dc_rel_error | v(g4) | 4.919e-07 | ≤ 0.005 | PASS | +| dc_rel_error | v(g5) | 4.919e-07 | ≤ 0.005 | PASS | +| dc_rel_error | v(g6) | 4.919e-07 | ≤ 0.005 | PASS | +| dc_rel_error | v(g7) | 4.919e-07 | ≤ 0.005 | PASS | +| dc_rel_error | v(k3) | 2.526e-05 | ≤ 0.005 | PASS | +| dc_rel_error | v(nbias) | 4.636e-08 | ≤ 0.005 | PASS | +| dc_rel_error | v(nf) | 2.526e-05 | ≤ 0.005 | PASS | +| dc_rel_error | v(ng) | 2.526e-05 | ≤ 0.005 | PASS | +| dc_rel_error | v(ngn) | 4.863e-07 | ≤ 0.005 | PASS | +| dc_rel_error | v(nor) | 4.863e-07 | ≤ 0.005 | PASS | +| dc_rel_error | v(nscr) | 9.186e-15 | ≤ 0.005 | PASS | +| dc_rel_error | v(out) | 7.715e-08 | ≤ 0.005 | PASS | +| dc_rel_error | v(p3a) | 1.223e-05 | ≤ 0.005 | PASS | +| dc_rel_error | v(p3b) | 1.353e-05 | ≤ 0.005 | PASS | +| dc_rel_error | v(pa) | 3.49e-08 | ≤ 0.005 | PASS | +| dc_rel_error | v(pa1) | 3.618e-11 | ≤ 0.005 | PASS | +| dc_rel_error | v(pb) | 3.756e-08 | ≤ 0.005 | PASS | +| dc_rel_error | v(pb1) | 2.991e-11 | ≤ 0.005 | PASS | +| dc_rel_error | v(s4) | 1.558e-08 | ≤ 0.005 | PASS | +| dc_rel_error | v(s6) | 1.559e-08 | ≤ 0.005 | PASS | +| dc_rel_error | v(sl) | 1.079e-06 | ≤ 0.005 | PASS | +| dc_rel_error | v(y) | 1.287e-07 | ≤ 0.005 | PASS | +| nonlinear_esr_db | SIN-100Hz-0.1V | -91.75 dB | ≤ -20 | PASS | +| harmonics_2_5_db | SIN-100Hz-0.1V | 0.001428 dB | ≤ 0.5 | PASS | +| thd_pp | SIN-100Hz-0.1V | 1.72e-06 pp | — | INFO | +| total_power_rel | SIN-100Hz-0.1V | 5.011e-05 | ≤ 0.05 | INFO | +| newton_failures | SIN-100Hz-0.1V | 0 | ≤ 0 | PASS | +| newton_median_iterations | SIN-100Hz-0.1V | 1 | ≤ 3 | PASS | +| newton_max_iterations | SIN-100Hz-0.1V | 2 | ≤ 32 | PASS | +| nonlinear_esr_db | SIN-1000Hz-0.1V | -80.96 dB | ≤ -20 | PASS | +| harmonics_2_5_db | SIN-1000Hz-0.1V | 0.002868 dB | ≤ 0.5 | PASS | +| thd_pp | SIN-1000Hz-0.1V | 2.06e-05 pp | — | INFO | +| total_power_rel | SIN-1000Hz-0.1V | 0.0001214 | ≤ 0.05 | INFO | +| newton_failures | SIN-1000Hz-0.1V | 0 | ≤ 0 | PASS | +| newton_median_iterations | SIN-1000Hz-0.1V | 2 | ≤ 3 | PASS | +| newton_max_iterations | SIN-1000Hz-0.1V | 2 | ≤ 32 | PASS | +| nonlinear_esr_db | SIN-5000Hz-0.1V | -69.65 dB | ≤ -20 | PASS | +| harmonics_2_5_db | SIN-5000Hz-0.1V | 0.003285 dB | ≤ 0.5 | PASS | +| thd_pp | SIN-5000Hz-0.1V | 1.375e-05 pp | — | INFO | +| total_power_rel | SIN-5000Hz-0.1V | 0.0005555 | ≤ 0.05 | INFO | +| newton_failures | SIN-5000Hz-0.1V | 0 | ≤ 0 | PASS | +| newton_median_iterations | SIN-5000Hz-0.1V | 2 | ≤ 3 | PASS | +| newton_max_iterations | SIN-5000Hz-0.1V | 2 | ≤ 32 | PASS | +| nonlinear_esr_db | SIN-100Hz-1V | -91.73 dB | ≤ -20 | PASS | +| harmonics_2_5_db | SIN-100Hz-1V | 0.001392 dB | ≤ 0.5 | PASS | +| thd_pp | SIN-100Hz-1V | 1.04e-05 pp | — | INFO | +| total_power_rel | SIN-100Hz-1V | 5.01e-05 | ≤ 0.05 | INFO | +| newton_failures | SIN-100Hz-1V | 0 | ≤ 0 | PASS | +| newton_median_iterations | SIN-100Hz-1V | 1 | ≤ 3 | PASS | +| newton_max_iterations | SIN-100Hz-1V | 2 | ≤ 32 | PASS | +| nonlinear_esr_db | SIN-1000Hz-1V | -80.58 dB | ≤ -20 | PASS | +| harmonics_2_5_db | SIN-1000Hz-1V | 0.002813 dB | ≤ 0.5 | PASS | +| thd_pp | SIN-1000Hz-1V | 0.000276 pp | — | INFO | +| total_power_rel | SIN-1000Hz-1V | 0.0001334 | ≤ 0.05 | INFO | +| newton_failures | SIN-1000Hz-1V | 0 | ≤ 0 | PASS | +| newton_median_iterations | SIN-1000Hz-1V | 2 | ≤ 3 | PASS | +| newton_max_iterations | SIN-1000Hz-1V | 2 | ≤ 32 | PASS | +| nonlinear_esr_db | SIN-5000Hz-1V | -69.55 dB | ≤ -20 | PASS | +| harmonics_2_5_db | SIN-5000Hz-1V | 0.01431 dB | ≤ 0.5 | PASS | +| thd_pp | SIN-5000Hz-1V | 9.148e-06 pp | — | INFO | +| total_power_rel | SIN-5000Hz-1V | 0.0005667 | ≤ 0.05 | INFO | +| newton_failures | SIN-5000Hz-1V | 0 | ≤ 0 | PASS | +| newton_median_iterations | SIN-5000Hz-1V | 2 | ≤ 3 | PASS | +| newton_max_iterations | SIN-5000Hz-1V | 3 | ≤ 32 | PASS | +| nonlinear_esr_db | SIN-100Hz-5V | -94.19 dB | ≤ -20 | PASS | +| harmonics_2_5_db | SIN-100Hz-5V | 0.001922 dB | ≤ 0.5 | PASS | +| thd_pp | SIN-100Hz-5V | 0.0003959 pp | — | INFO | +| total_power_rel | SIN-100Hz-5V | 3.615e-05 | ≤ 0.05 | INFO | +| newton_failures | SIN-100Hz-5V | 0 | ≤ 0 | PASS | +| newton_median_iterations | SIN-100Hz-5V | 2 | ≤ 3 | PASS | +| newton_max_iterations | SIN-100Hz-5V | 3 | ≤ 32 | PASS | +| nonlinear_esr_db | SIN-1000Hz-5V | -78.07 dB | ≤ -20 | PASS | +| harmonics_2_5_db | SIN-1000Hz-5V | 0.003837 dB | ≤ 0.5 | PASS | +| thd_pp | SIN-1000Hz-5V | 0.001507 pp | — | INFO | +| total_power_rel | SIN-1000Hz-5V | 2.732e-05 | ≤ 0.05 | INFO | +| newton_failures | SIN-1000Hz-5V | 0 | ≤ 0 | PASS | +| newton_median_iterations | SIN-1000Hz-5V | 2 | ≤ 3 | PASS | +| newton_max_iterations | SIN-1000Hz-5V | 5 | ≤ 32 | PASS | +| nonlinear_esr_db | SIN-5000Hz-5V | -68.63 dB | ≤ -20 | PASS | +| harmonics_2_5_db | SIN-5000Hz-5V | 0.02699 dB | ≤ 0.5 | PASS | +| thd_pp | SIN-5000Hz-5V | 0.002248 pp | — | INFO | +| total_power_rel | SIN-5000Hz-5V | 0.0001378 | ≤ 0.05 | INFO | +| newton_failures | SIN-5000Hz-5V | 0 | ≤ 0 | PASS | +| newton_median_iterations | SIN-5000Hz-5V | 3 | ≤ 3 | PASS | +| newton_max_iterations | SIN-5000Hz-5V | 6 | ≤ 32 | PASS | +| nonlinear_esr_db_overdrive | SIN-100Hz-20V | -84.66 dB | ≤ -20 | PASS | +| harmonics_2_5_db | SIN-100Hz-20V | 0.004908 dB | ≤ 0.5 | PASS | +| thd_pp | SIN-100Hz-20V | 1.303e-05 pp | — | INFO | +| total_power_rel | SIN-100Hz-20V | 3.482e-05 | ≤ 0.05 | INFO | +| newton_failures | SIN-100Hz-20V | 0 | ≤ 0 | PASS | +| newton_median_iterations | SIN-100Hz-20V | 2 | ≤ 3 | PASS | +| newton_max_iterations | SIN-100Hz-20V | 6 | ≤ 32 | PASS | +| nonlinear_esr_db_overdrive | SIN-1000Hz-20V | -70.1 dB | ≤ -20 | PASS | +| harmonics_2_5_db | SIN-1000Hz-20V | 0.03295 dB | ≤ 0.5 | PASS | +| thd_pp | SIN-1000Hz-20V | 0.0004306 pp | — | INFO | +| total_power_rel | SIN-1000Hz-20V | 4.339e-05 | ≤ 0.05 | INFO | +| newton_failures | SIN-1000Hz-20V | 0 | ≤ 0 | PASS | +| newton_median_iterations | SIN-1000Hz-20V | 2 | ≤ 3 | PASS | +| newton_max_iterations | SIN-1000Hz-20V | 6 | ≤ 32 | PASS | +| nonlinear_esr_db_overdrive | SIN-5000Hz-20V | -50.21 dB | ≤ -20 | PASS | +| harmonics_2_5_db | SIN-5000Hz-20V | 0.01262 dB | ≤ 0.5 | PASS | +| thd_pp | SIN-5000Hz-20V | 0.02265 pp | — | INFO | +| total_power_rel | SIN-5000Hz-20V | 0.000384 | ≤ 0.05 | INFO | +| newton_failures | SIN-5000Hz-20V | 0 | ≤ 0 | PASS | +| newton_median_iterations | SIN-5000Hz-20V | 3 | ≤ 3 | PASS | +| newton_max_iterations | SIN-5000Hz-20V | 9 | ≤ 32 | PASS | +| nonlinear_esr_db | SWP-lo-0.1V | -63.49 dB | ≤ -20 | PASS | +| linear_mag_db_20_10k | SWP-lo-0.1V | 0.01309 dB | ≤ 0.1 | INFO | +| linear_mag_db_10k_20k | SWP-lo-0.1V | 0.004612 dB | ≤ 0.3 | INFO | +| method_mag_db_spice_tran_vs_ac | SWP-lo-0.1V | 0.02452 dB | — | INFO | +| newton_failures | SWP-lo-0.1V | 0 | ≤ 0 | PASS | +| newton_median_iterations | SWP-lo-0.1V | 1 | ≤ 3 | PASS | +| newton_max_iterations | SWP-lo-0.1V | 3 | ≤ 32 | PASS | +| nonlinear_esr_db | SWP-hi-1V | -63.43 dB | ≤ -20 | PASS | +| newton_failures | SWP-hi-1V | 0 | ≤ 0 | PASS | +| newton_median_iterations | SWP-hi-1V | 2 | ≤ 3 | PASS | +| newton_max_iterations | SWP-hi-1V | 4 | ≤ 32 | PASS | +| nonlinear_esr_db | TT-0.5V | -86.26 dB | ≤ -20 | PASS | +| newton_failures | TT-0.5V | 0 | ≤ 0 | PASS | +| newton_median_iterations | TT-0.5V | 2 | ≤ 3 | PASS | +| newton_max_iterations | TT-0.5V | 2 | ≤ 32 | PASS | +| nonlinear_esr_db | BURST-5V | -78.02 dB | ≤ -20 | PASS | +| newton_failures | BURST-5V | 0 | ≤ 0 | PASS | +| newton_median_iterations | BURST-5V | 2 | ≤ 3 | PASS | +| newton_max_iterations | BURST-5V | 5 | ≤ 32 | PASS | +| nonlinear_esr_db | STEP-1V | -79.13 dB | ≤ -20 | PASS | +| newton_failures | STEP-1V | 0 | ≤ 0 | PASS | +| newton_median_iterations | STEP-1V | 1 | ≤ 3 | PASS | +| newton_max_iterations | STEP-1V | 3 | ≤ 32 | PASS | + +## Signals + +| Signal | Peak F [V] | ESR [dB] | Best lag | ESR at lag [dB] | THD F / E [%] | Power F / E [W] | ns/sample | Newton fail / median / max it | +|---|---|---|---|---|---|---|---|---| +| SIN-100Hz-0.1V | 1.9 | -91.75 | 0 | -91.75 | 0.0126 / 0.0126 | 0.1087 / 0.1087 | 873.0 | 0 / 1 / 2 | +| SIN-1000Hz-0.1V | 1.309 | -80.96 | 0 | -80.96 | 0.0852 / 0.0852 | 0.04968 / 0.04969 | 1201.3 | 0 / 2 / 2 | +| SIN-5000Hz-0.1V | 1.982 | -69.65 | 0 | -69.65 | 0.0359 / 0.0359 | 0.12 / 0.1201 | 1294.8 | 0 / 2 / 2 | +| SIN-100Hz-1V | 19.26 | -91.73 | 0 | -91.73 | 0.19 / 0.19 | 10.94 / 10.94 | 850.2 | 0 / 1 / 2 | +| SIN-1000Hz-1V | 14.04 | -80.58 | 0 | -80.58 | 2.88 / 2.88 | 5.416 / 5.417 | 1319.2 | 0 / 2 / 2 | +| SIN-5000Hz-1V | 20.15 | -69.55 | 0 | -69.55 | 0.881 / 0.881 | 12.28 / 12.28 | 1300.5 | 0 / 2 / 3 | +| SIN-100Hz-5V | 84.02 | -94.19 | 0 | -94.19 | 3.68 / 3.69 | 229.8 / 229.8 | 1152.9 | 0 / 2 / 3 | +| SIN-1000Hz-5V | 69.71 | -78.07 | 0 | -78.07 | 13.3 / 13.3 | 109.3 / 109.3 | 1477.4 | 0 / 2 / 5 | +| SIN-5000Hz-5V | 81.96 | -68.63 | 0 | -68.63 | 12.8 / 12.8 | 222.1 / 222.1 | 1889.1 | 0 / 3 / 6 | +| SIN-100Hz-20V | 86.97 | -84.66 | 0 | -84.66 | 23 / 23 | 273.2 / 273.2 | 1157.1 | 0 / 2 / 6 | +| SIN-1000Hz-20V | 79.87 | -70.10 | 0 | -70.10 | 57.5 / 57.5 | 146.2 / 146.2 | 1517.2 | 0 / 2 / 6 | +| SIN-5000Hz-20V | 127.7 | -50.21 | 0 | -50.21 | 45.1 / 45 | 298 / 297.9 | 2227.3 | 0 / 3 / 9 | +| SWP-lo-0.1V | 2.143 | -63.49 | 0 | -63.49 | — | — | 1032.0 | 0 / 1 / 3 | +| SWP-hi-1V | 21.65 | -63.43 | 0 | -63.43 | — | — | 1159.3 | 0 / 2 / 4 | +| TT-0.5V | 13.52 | -86.26 | 0 | -86.26 | — | — | 1100.0 | 0 / 2 / 2 | +| BURST-5V | 69.64 | -78.02 | 0 | -78.02 | — | — | 1339.0 | 0 / 2 / 5 | +| STEP-1V | 23.89 | -79.13 | 0 | -79.13 | — | — | 884.8 | 0 / 1 / 3 | + +## DC operating point + +| Node | SPICE [V] | Engine [V] | Rel. error | +|---|---|---|---| +| bpa | 391.9215 | — | — | +| bpx | 404.9982 | 404.9982 | 6.632e-13 | +| c20 | -60.0000 | — | — | +| ct | 491.3466 | 491.3466 | 3.008e-15 | +| g3a | 43.8295 | 43.8284 | 2.529e-05 | +| g3b | 43.8295 | 43.8284 | 2.529e-05 | +| g4 | -46.3631 | -46.3631 | 4.919e-07 | +| g5 | -46.3631 | -46.3631 | 4.919e-07 | +| g6 | -46.3631 | -46.3631 | 4.919e-07 | +| g7 | -46.3631 | -46.3631 | 4.919e-07 | +| k3 | 45.2502 | 45.2491 | 2.526e-05 | +| nbias | -46.3636 | -46.3636 | 4.636e-08 | +| nch | 491.3466 | — | — | +| nf | 43.8285 | 43.8274 | 2.526e-05 | +| ng | 13.5790 | 13.5787 | 2.526e-05 | +| ngn | -46.3631 | -46.3631 | 4.863e-07 | +| nor | -46.3631 | -46.3631 | 4.863e-07 | +| npr | 0.0000 | — | — | +| nrv | -3.6364 | — | — | +| nscr | 488.8805 | 488.8805 | 9.186e-15 | +| out | 0.0000 | 0.0000 | 7.715e-08 | +| p3a | 272.6113 | 272.6146 | 1.223e-05 | +| p3b | 263.9512 | 263.9548 | 1.353e-05 | +| pa | 490.4628 | 490.4628 | 3.49e-08 | +| pa1 | 491.3466 | 491.3466 | 3.618e-11 | +| pb | 490.3937 | 490.3937 | 3.756e-08 | +| pb1 | 491.3466 | 491.3466 | 2.991e-11 | +| raw | 505.0000 | — | — | +| s4 | 485.6164 | 485.6164 | 1.558e-08 | +| s5 | 485.6164 | — | — | +| s6 | 485.6162 | 485.6162 | 1.559e-08 | +| s7 | 485.6162 | — | — | +| sl | 0.0000 | 0.0000 | 1.079e-06 | +| spk1 | -0.0000 | — | — | +| spk2 | -0.0000 | — | — | +| y | 0.0000 | 0.0000 | 1.287e-07 | + +Engine values are the probe values after the first sample (zero input) following `reset()`. Nodes the engine does not probe yet show —. + +## Figures + +### Waveform overlay and error (most demanding signal) + +![Waveform overlay and error (most demanding signal)](20261018_b56_DEFAULT/waveform.png) + +### Harmonics + +![Harmonics](20261018_b56_DEFAULT/harmonics.png) + +### Magnitude response + +![Magnitude response](20261018_b56_DEFAULT/magnitude.png) diff --git a/harness/reports/M4/20261018_b56_DEFAULT/harmonics.png b/harness/reports/M4/20261018_b56_DEFAULT/harmonics.png new file mode 100644 index 0000000..3001fd5 Binary files /dev/null and b/harness/reports/M4/20261018_b56_DEFAULT/harmonics.png differ diff --git a/harness/reports/M4/20261018_b56_DEFAULT/magnitude.png b/harness/reports/M4/20261018_b56_DEFAULT/magnitude.png new file mode 100644 index 0000000..6ec5dc7 Binary files /dev/null and b/harness/reports/M4/20261018_b56_DEFAULT/magnitude.png differ diff --git a/harness/reports/M4/20261018_b56_DEFAULT/waveform.png b/harness/reports/M4/20261018_b56_DEFAULT/waveform.png new file mode 100644 index 0000000..8a92a71 Binary files /dev/null and b/harness/reports/M4/20261018_b56_DEFAULT/waveform.png differ diff --git a/harness/reports/M4/20261018_b5open_DEFAULT.md b/harness/reports/M4/20261018_b5open_DEFAULT.md new file mode 100644 index 0000000..ecdfe3d --- /dev/null +++ b/harness/reports/M4/20261018_b5open_DEFAULT.md @@ -0,0 +1,166 @@ +# M4 report: b5open / DEFAULT + +- Block: B5-open phase inverter, R22 driven by recorded speaker voltage +- Preset: DEFAULT — Default knobs; standard signal set at the block levels +- Knobs: preampVolume=0.6, treble=0.5, middle=0.5, bass=0.5, master=0.3, presence=0.5 +- Date: 2026-10-18 +- Engine commit: `9a422dd (dirty)` +- Testbench: `harness/testbenches/b5open.cir` sha256 `44543f92cde2a435`; netlist sha256 `83f01b6fd8b64a06`; tubes.lib sha256 `c9c9c88346c69010` +- ngspice 47, fs = 768000 Hz, SPICE reltol 1e-08 + +> SWP-lo-0.1V b56: source run rendered at RELTOL 1e-07 (timestep too small at 1e-08) + +## Summary + +PASS 88 · FAIL 0 · INFO 12 (INFO = measured, not scored in M4) + +| Check | Item | Measured | Tolerance | Status | +|---|---|---|---|---| +| dc_rel_error | v(g3a) | 2.529e-05 | ≤ 0.005 | PASS | +| dc_rel_error | v(g3b) | 2.529e-05 | ≤ 0.005 | PASS | +| dc_rel_error | v(k3) | 2.526e-05 | ≤ 0.005 | PASS | +| dc_rel_error | v(nf) | 2.526e-05 | ≤ 0.005 | PASS | +| dc_rel_error | v(ng) | 2.526e-05 | ≤ 0.005 | PASS | +| dc_rel_error | v(p3a) | 1.223e-05 | ≤ 0.005 | PASS | +| dc_rel_error | v(p3b) | 1.353e-05 | ≤ 0.005 | PASS | +| dc_rel_error | v(y) | 3.553e-12 | ≤ 0.005 | PASS | +| nonlinear_esr_db | SIN-100Hz-0.1V | -84.14 dB | ≤ -20 | PASS | +| harmonics_2_5_db | SIN-100Hz-0.1V | 0.0004405 dB | ≤ 0.5 | PASS | +| thd_pp | SIN-100Hz-0.1V | 3.15e-07 pp | — | INFO | +| newton_failures | SIN-100Hz-0.1V | 0 | ≤ 0 | PASS | +| newton_median_iterations | SIN-100Hz-0.1V | 1 | ≤ 3 | PASS | +| newton_max_iterations | SIN-100Hz-0.1V | 1 | ≤ 12 | PASS | +| nonlinear_esr_db | SIN-1000Hz-0.1V | -80.61 dB | ≤ -20 | PASS | +| harmonics_2_5_db | SIN-1000Hz-0.1V | 0.0009776 dB | ≤ 0.5 | PASS | +| thd_pp | SIN-1000Hz-0.1V | 7.277e-07 pp | — | INFO | +| newton_failures | SIN-1000Hz-0.1V | 0 | ≤ 0 | PASS | +| newton_median_iterations | SIN-1000Hz-0.1V | 1 | ≤ 3 | PASS | +| newton_max_iterations | SIN-1000Hz-0.1V | 2 | ≤ 12 | PASS | +| nonlinear_esr_db | SIN-5000Hz-0.1V | -68.37 dB | ≤ -20 | PASS | +| harmonics_2_5_db | SIN-5000Hz-0.1V | 0.01189 dB | ≤ 0.5 | PASS | +| thd_pp | SIN-5000Hz-0.1V | 3.277e-05 pp | — | INFO | +| newton_failures | SIN-5000Hz-0.1V | 0 | ≤ 0 | PASS | +| newton_median_iterations | SIN-5000Hz-0.1V | 2 | ≤ 3 | PASS | +| newton_max_iterations | SIN-5000Hz-0.1V | 2 | ≤ 12 | PASS | +| nonlinear_esr_db | SIN-100Hz-1V | -84.13 dB | ≤ -20 | PASS | +| harmonics_2_5_db | SIN-100Hz-1V | 0.0004838 dB | ≤ 0.5 | PASS | +| thd_pp | SIN-100Hz-1V | 3.29e-06 pp | — | INFO | +| newton_failures | SIN-100Hz-1V | 0 | ≤ 0 | PASS | +| newton_median_iterations | SIN-100Hz-1V | 1 | ≤ 3 | PASS | +| newton_max_iterations | SIN-100Hz-1V | 2 | ≤ 12 | PASS | +| nonlinear_esr_db | SIN-1000Hz-1V | -80.59 dB | ≤ -20 | PASS | +| harmonics_2_5_db | SIN-1000Hz-1V | 0.001843 dB | ≤ 0.5 | PASS | +| thd_pp | SIN-1000Hz-1V | 8.536e-05 pp | — | INFO | +| newton_failures | SIN-1000Hz-1V | 0 | ≤ 0 | PASS | +| newton_median_iterations | SIN-1000Hz-1V | 2 | ≤ 3 | PASS | +| newton_max_iterations | SIN-1000Hz-1V | 2 | ≤ 12 | PASS | +| nonlinear_esr_db | SIN-5000Hz-1V | -68.4 dB | ≤ -20 | PASS | +| harmonics_2_5_db | SIN-5000Hz-1V | 0.03292 dB | ≤ 0.5 | PASS | +| thd_pp | SIN-5000Hz-1V | 0.001451 pp | — | INFO | +| newton_failures | SIN-5000Hz-1V | 0 | ≤ 0 | PASS | +| newton_median_iterations | SIN-5000Hz-1V | 2 | ≤ 3 | PASS | +| newton_max_iterations | SIN-5000Hz-1V | 2 | ≤ 12 | PASS | +| nonlinear_esr_db | SIN-100Hz-5V | -83.88 dB | ≤ -20 | PASS | +| harmonics_2_5_db | SIN-100Hz-5V | 0.000628 dB | ≤ 0.5 | PASS | +| thd_pp | SIN-100Hz-5V | 3.143e-05 pp | — | INFO | +| newton_failures | SIN-100Hz-5V | 0 | ≤ 0 | PASS | +| newton_median_iterations | SIN-100Hz-5V | 1 | ≤ 3 | PASS | +| newton_max_iterations | SIN-100Hz-5V | 2 | ≤ 12 | PASS | +| nonlinear_esr_db | SIN-1000Hz-5V | -79.54 dB | ≤ -20 | PASS | +| harmonics_2_5_db | SIN-1000Hz-5V | 0.01625 dB | ≤ 0.5 | PASS | +| thd_pp | SIN-1000Hz-5V | 0.001227 pp | — | INFO | +| newton_failures | SIN-1000Hz-5V | 0 | ≤ 0 | PASS | +| newton_median_iterations | SIN-1000Hz-5V | 2 | ≤ 3 | PASS | +| newton_max_iterations | SIN-1000Hz-5V | 2 | ≤ 12 | PASS | +| nonlinear_esr_db | SIN-5000Hz-5V | -66.53 dB | ≤ -20 | PASS | +| harmonics_2_5_db | SIN-5000Hz-5V | 0.02992 dB | ≤ 0.5 | PASS | +| thd_pp | SIN-5000Hz-5V | 0.02042 pp | — | INFO | +| newton_failures | SIN-5000Hz-5V | 0 | ≤ 0 | PASS | +| newton_median_iterations | SIN-5000Hz-5V | 2 | ≤ 3 | PASS | +| newton_max_iterations | SIN-5000Hz-5V | 3 | ≤ 12 | PASS | +| nonlinear_esr_db_overdrive | SIN-100Hz-20V | -75.04 dB | ≤ -20 | PASS | +| harmonics_2_5_db | SIN-100Hz-20V | 0.003229 dB | ≤ 0.5 | PASS | +| thd_pp | SIN-100Hz-20V | 0.002833 pp | — | INFO | +| newton_failures | SIN-100Hz-20V | 0 | ≤ 0 | PASS | +| newton_median_iterations | SIN-100Hz-20V | 1 | ≤ 3 | PASS | +| newton_max_iterations | SIN-100Hz-20V | 2 | ≤ 12 | PASS | +| nonlinear_esr_db_overdrive | SIN-1000Hz-20V | -73.74 dB | ≤ -20 | PASS | +| harmonics_2_5_db | SIN-1000Hz-20V | 0.002388 dB | ≤ 0.5 | PASS | +| thd_pp | SIN-1000Hz-20V | 0.002133 pp | — | INFO | +| newton_failures | SIN-1000Hz-20V | 0 | ≤ 0 | PASS | +| newton_median_iterations | SIN-1000Hz-20V | 2 | ≤ 3 | PASS | +| newton_max_iterations | SIN-1000Hz-20V | 3 | ≤ 12 | PASS | +| nonlinear_esr_db_overdrive | SIN-5000Hz-20V | -61.76 dB | ≤ -20 | PASS | +| harmonics_2_5_db | SIN-5000Hz-20V | 0.03531 dB | ≤ 0.5 | PASS | +| thd_pp | SIN-5000Hz-20V | 0.01606 pp | — | INFO | +| newton_failures | SIN-5000Hz-20V | 0 | ≤ 0 | PASS | +| newton_median_iterations | SIN-5000Hz-20V | 2 | ≤ 3 | PASS | +| newton_max_iterations | SIN-5000Hz-20V | 4 | ≤ 12 | PASS | +| nonlinear_esr_db | SWP-lo-0.1V | -69.19 dB | ≤ -20 | PASS | +| newton_failures | SWP-lo-0.1V | 0 | ≤ 0 | PASS | +| newton_median_iterations | SWP-lo-0.1V | 1 | ≤ 3 | PASS | +| newton_max_iterations | SWP-lo-0.1V | 3 | ≤ 12 | PASS | +| nonlinear_esr_db | SWP-hi-1V | -69.04 dB | ≤ -20 | PASS | +| newton_failures | SWP-hi-1V | 0 | ≤ 0 | PASS | +| newton_median_iterations | SWP-hi-1V | 1 | ≤ 3 | PASS | +| newton_max_iterations | SWP-hi-1V | 3 | ≤ 12 | PASS | +| nonlinear_esr_db | TT-0.5V | -83.65 dB | ≤ -20 | PASS | +| newton_failures | TT-0.5V | 0 | ≤ 0 | PASS | +| newton_median_iterations | TT-0.5V | 1 | ≤ 3 | PASS | +| newton_max_iterations | TT-0.5V | 2 | ≤ 12 | PASS | +| nonlinear_esr_db | BURST-5V | -79.75 dB | ≤ -20 | PASS | +| newton_failures | BURST-5V | 0 | ≤ 0 | PASS | +| newton_median_iterations | BURST-5V | 1 | ≤ 3 | PASS | +| newton_max_iterations | BURST-5V | 2 | ≤ 12 | PASS | +| nonlinear_esr_db | STEP-1V | -82.54 dB | ≤ -20 | PASS | +| newton_failures | STEP-1V | 0 | ≤ 0 | PASS | +| newton_median_iterations | STEP-1V | 1 | ≤ 3 | PASS | +| newton_max_iterations | STEP-1V | 2 | ≤ 12 | PASS | + +## Signals + +| Signal | Peak F [V] | ESR [dB] | Best lag | ESR at lag [dB] | THD F / E [%] | Power F / E [W] | ns/sample | Newton fail / median / max it | +|---|---|---|---|---|---|---|---|---| +| SIN-100Hz-0.1V | 1.309 | -84.14 | 0 | -84.14 | 0.0292 / 0.0292 | — | 277.8 | 0 / 1 / 1 | +| SIN-1000Hz-0.1V | 1.642 | -80.61 | 0 | -80.61 | 0.0599 / 0.0599 | — | 282.7 | 0 / 1 / 2 | +| SIN-5000Hz-0.1V | 1.172 | -68.37 | 0 | -68.37 | 0.0573 / 0.0573 | — | 391.3 | 0 / 2 / 2 | +| SIN-100Hz-1V | 12.67 | -84.13 | 0 | -84.13 | 0.428 / 0.428 | — | 282.2 | 0 / 1 / 2 | +| SIN-1000Hz-1V | 16.11 | -80.59 | 0 | -80.59 | 2.09 / 2.09 | — | 390.7 | 0 / 2 / 2 | +| SIN-5000Hz-1V | 11.1 | -68.40 | 0 | -68.40 | 1.4 / 1.4 | — | 420.0 | 0 / 2 / 2 | +| SIN-100Hz-5V | 56.7 | -83.88 | 0 | -83.88 | 6.05 / 6.05 | — | 279.9 | 0 / 1 / 2 | +| SIN-1000Hz-5V | 97.08 | -79.54 | 0 | -79.54 | 7.71 / 7.71 | — | 463.8 | 0 / 2 / 2 | +| SIN-5000Hz-5V | 77.43 | -66.53 | 0 | -66.53 | 13.6 / 13.6 | — | 445.6 | 0 / 2 / 3 | +| SIN-100Hz-20V | 132.2 | -75.04 | 0 | -75.04 | 47.4 / 47.4 | — | 384.7 | 0 / 1 / 2 | +| SIN-1000Hz-20V | 140.8 | -73.74 | 0 | -73.74 | 50.7 / 50.7 | — | 456.1 | 0 / 2 / 3 | +| SIN-5000Hz-20V | 142 | -61.76 | 0 | -61.76 | 53.4 / 53.4 | — | 611.9 | 0 / 2 / 4 | +| SWP-lo-0.1V | 2.693 | -69.19 | 0 | -69.19 | — | — | 312.8 | 0 / 1 / 3 | +| SWP-hi-1V | 26.97 | -69.04 | 0 | -69.04 | — | — | 340.7 | 0 / 1 / 3 | +| TT-0.5V | 14.38 | -83.65 | 0 | -83.65 | — | — | 279.9 | 0 / 1 / 2 | +| BURST-5V | 102.3 | -79.75 | 0 | -79.75 | — | — | 368.8 | 0 / 1 / 2 | +| STEP-1V | 19.85 | -82.54 | 0 | -82.54 | — | — | 284.5 | 0 / 1 / 2 | + +## DC operating point + +| Node | SPICE [V] | Engine [V] | Rel. error | +|---|---|---|---| +| g3a | 43.8295 | 43.8284 | 2.529e-05 | +| g3b | 43.8295 | 43.8284 | 2.529e-05 | +| k3 | 45.2502 | 45.2491 | 2.526e-05 | +| nf | 43.8285 | 43.8274 | 2.526e-05 | +| ng | 13.5790 | 13.5787 | 2.526e-05 | +| npr | 0.0000 | — | — | +| p3a | 272.6113 | 272.6146 | 1.223e-05 | +| p3b | 263.9512 | 263.9548 | 1.353e-05 | +| y | 0.0000 | -0.0000 | 3.553e-12 | + +Engine values are the probe values after the first sample (zero input) following `reset()`. Nodes the engine does not probe yet show —. + +## Figures + +### Waveform overlay and error (most demanding signal) + +![Waveform overlay and error (most demanding signal)](20261018_b5open_DEFAULT/waveform.png) + +### Harmonics + +![Harmonics](20261018_b5open_DEFAULT/harmonics.png) diff --git a/harness/reports/M4/20261018_b5open_DEFAULT/harmonics.png b/harness/reports/M4/20261018_b5open_DEFAULT/harmonics.png new file mode 100644 index 0000000..24a8550 Binary files /dev/null and b/harness/reports/M4/20261018_b5open_DEFAULT/harmonics.png differ diff --git a/harness/reports/M4/20261018_b5open_DEFAULT/waveform.png b/harness/reports/M4/20261018_b5open_DEFAULT/waveform.png new file mode 100644 index 0000000..15ee21b Binary files /dev/null and b/harness/reports/M4/20261018_b5open_DEFAULT/waveform.png differ diff --git a/harness/reports/M4/20261018_b6_DEFAULT.md b/harness/reports/M4/20261018_b6_DEFAULT.md new file mode 100644 index 0000000..ff6d654 --- /dev/null +++ b/harness/reports/M4/20261018_b6_DEFAULT.md @@ -0,0 +1,202 @@ +# M4 report: b6 / DEFAULT + +- Block: B6 PowerStage, driven by recorded PI outputs +- Preset: DEFAULT — Default knobs; standard signal set at the block levels +- Knobs: preampVolume=0.6, treble=0.5, middle=0.5, bass=0.5, master=0.3, presence=0.5 +- Date: 2026-10-18 +- Engine commit: `9a422dd (dirty)` +- Testbench: `harness/testbenches/b6.cir` sha256 `3ad8a8a2d929b0d8`; netlist sha256 `83f01b6fd8b64a06`; tubes.lib sha256 `c9c9c88346c69010` +- ngspice 47, fs = 768000 Hz, SPICE reltol 1e-08 + +> SWP-lo-0.1V b56: source run rendered at RELTOL 1e-07 (timestep too small at 1e-08) +> SWP-lo-0.1V rendered at RELTOL 1e-07 (ngspice: timestep too small at 1e-08) + +## Summary + +PASS 96 · FAIL 1 · INFO 24 (INFO = measured, not scored in M4) + +| Check | Item | Measured | Tolerance | Status | +|---|---|---|---|---| +| dc_rel_error | v(g4) | 4.919e-07 | ≤ 0.005 | PASS | +| dc_rel_error | v(g5) | 4.919e-07 | ≤ 0.005 | PASS | +| dc_rel_error | v(g6) | 4.919e-07 | ≤ 0.005 | PASS | +| dc_rel_error | v(g7) | 4.919e-07 | ≤ 0.005 | PASS | +| dc_rel_error | v(nbias) | 4.636e-08 | ≤ 0.005 | PASS | +| dc_rel_error | v(ngn) | 4.863e-07 | ≤ 0.005 | PASS | +| dc_rel_error | v(nor) | 4.863e-07 | ≤ 0.005 | PASS | +| dc_rel_error | v(out) | 3.067e-09 | ≤ 0.005 | PASS | +| dc_rel_error | v(p3a) | 1.345e-09 | ≤ 0.005 | PASS | +| dc_rel_error | v(p3b) | 7.844e-10 | ≤ 0.005 | PASS | +| dc_rel_error | v(pa) | 3.492e-08 | ≤ 0.005 | PASS | +| dc_rel_error | v(pa1) | 4.634e-11 | ≤ 0.005 | PASS | +| dc_rel_error | v(pb) | 3.764e-08 | ≤ 0.005 | PASS | +| dc_rel_error | v(pb1) | 4.633e-11 | ≤ 0.005 | PASS | +| dc_rel_error | v(s4) | 1.509e-08 | ≤ 0.005 | PASS | +| dc_rel_error | v(s6) | 1.51e-08 | ≤ 0.005 | PASS | +| dc_rel_error | v(sl) | 1.729e-11 | ≤ 0.005 | PASS | +| nonlinear_esr_db | SIN-100Hz-0.1V | -93.97 dB | ≤ -20 | PASS | +| harmonics_2_5_db | SIN-100Hz-0.1V | 0.0001923 dB | ≤ 0.5 | PASS | +| thd_pp | SIN-100Hz-0.1V | 2.066e-07 pp | — | INFO | +| total_power_rel | SIN-100Hz-0.1V | 3.047e-05 | ≤ 0.05 | INFO | +| newton_failures | SIN-100Hz-0.1V | 0 | ≤ 0 | PASS | +| newton_median_iterations | SIN-100Hz-0.1V | 1 | ≤ 3 | PASS | +| newton_max_iterations | SIN-100Hz-0.1V | 2 | ≤ 12 | PASS | +| nonlinear_esr_db | SIN-1000Hz-0.1V | -80.69 dB | ≤ -20 | PASS | +| harmonics_2_5_db | SIN-1000Hz-0.1V | 0.0005399 dB | ≤ 0.5 | PASS | +| thd_pp | SIN-1000Hz-0.1V | 8.409e-06 pp | — | INFO | +| total_power_rel | SIN-1000Hz-0.1V | 3.543e-05 | ≤ 0.05 | INFO | +| newton_failures | SIN-1000Hz-0.1V | 0 | ≤ 0 | PASS | +| newton_median_iterations | SIN-1000Hz-0.1V | 2 | ≤ 3 | PASS | +| newton_max_iterations | SIN-1000Hz-0.1V | 2 | ≤ 12 | PASS | +| nonlinear_esr_db | SIN-5000Hz-0.1V | -66.19 dB | ≤ -20 | PASS | +| harmonics_2_5_db | SIN-5000Hz-0.1V | 0.004325 dB | ≤ 0.5 | PASS | +| thd_pp | SIN-5000Hz-0.1V | 2.394e-05 pp | — | INFO | +| total_power_rel | SIN-5000Hz-0.1V | 0.0006316 | ≤ 0.05 | INFO | +| newton_failures | SIN-5000Hz-0.1V | 0 | ≤ 0 | PASS | +| newton_median_iterations | SIN-5000Hz-0.1V | 2 | ≤ 3 | PASS | +| newton_max_iterations | SIN-5000Hz-0.1V | 2 | ≤ 12 | PASS | +| nonlinear_esr_db | SIN-100Hz-1V | -93.84 dB | ≤ -20 | PASS | +| harmonics_2_5_db | SIN-100Hz-1V | 0.0004289 dB | ≤ 0.5 | PASS | +| thd_pp | SIN-100Hz-1V | 2.908e-06 pp | — | INFO | +| total_power_rel | SIN-100Hz-1V | 3.114e-05 | ≤ 0.05 | INFO | +| newton_failures | SIN-100Hz-1V | 0 | ≤ 0 | PASS | +| newton_median_iterations | SIN-100Hz-1V | 1 | ≤ 3 | PASS | +| newton_max_iterations | SIN-100Hz-1V | 2 | ≤ 12 | PASS | +| nonlinear_esr_db | SIN-1000Hz-1V | -80.25 dB | ≤ -20 | PASS | +| harmonics_2_5_db | SIN-1000Hz-1V | 0.004216 dB | ≤ 0.5 | PASS | +| thd_pp | SIN-1000Hz-1V | 0.0001549 pp | — | INFO | +| total_power_rel | SIN-1000Hz-1V | 4.199e-05 | ≤ 0.05 | INFO | +| newton_failures | SIN-1000Hz-1V | 0 | ≤ 0 | PASS | +| newton_median_iterations | SIN-1000Hz-1V | 2 | ≤ 3 | PASS | +| newton_max_iterations | SIN-1000Hz-1V | 2 | ≤ 12 | PASS | +| nonlinear_esr_db | SIN-5000Hz-1V | -65.87 dB | ≤ -20 | PASS | +| harmonics_2_5_db | SIN-5000Hz-1V | 0.01796 dB | ≤ 0.5 | PASS | +| thd_pp | SIN-5000Hz-1V | 7.348e-05 pp | — | INFO | +| total_power_rel | SIN-5000Hz-1V | 0.0006695 | ≤ 0.05 | INFO | +| newton_failures | SIN-5000Hz-1V | 0 | ≤ 0 | PASS | +| newton_median_iterations | SIN-5000Hz-1V | 2 | ≤ 3 | PASS | +| newton_max_iterations | SIN-5000Hz-1V | 3 | ≤ 12 | PASS | +| nonlinear_esr_db | SIN-100Hz-5V | -96.77 dB | ≤ -20 | PASS | +| harmonics_2_5_db | SIN-100Hz-5V | 0.0004405 dB | ≤ 0.5 | PASS | +| thd_pp | SIN-100Hz-5V | 9.023e-05 pp | — | INFO | +| total_power_rel | SIN-100Hz-5V | 1.316e-05 | ≤ 0.05 | INFO | +| newton_failures | SIN-100Hz-5V | 0 | ≤ 0 | PASS | +| newton_median_iterations | SIN-100Hz-5V | 1 | ≤ 3 | PASS | +| newton_max_iterations | SIN-100Hz-5V | 2 | ≤ 12 | PASS | +| nonlinear_esr_db | SIN-1000Hz-5V | -72.5 dB | ≤ -20 | PASS | +| harmonics_2_5_db | SIN-1000Hz-5V | 0.005786 dB | ≤ 0.5 | PASS | +| thd_pp | SIN-1000Hz-5V | 0.003782 pp | — | INFO | +| total_power_rel | SIN-1000Hz-5V | 2.637e-05 | ≤ 0.05 | INFO | +| newton_failures | SIN-1000Hz-5V | 0 | ≤ 0 | PASS | +| newton_median_iterations | SIN-1000Hz-5V | 2 | ≤ 3 | PASS | +| newton_max_iterations | SIN-1000Hz-5V | 5 | ≤ 12 | PASS | +| nonlinear_esr_db | SIN-5000Hz-5V | -61.44 dB | ≤ -20 | PASS | +| harmonics_2_5_db | SIN-5000Hz-5V | 0.02523 dB | ≤ 0.5 | PASS | +| thd_pp | SIN-5000Hz-5V | 0.02407 pp | — | INFO | +| total_power_rel | SIN-5000Hz-5V | 0.0003556 | ≤ 0.05 | INFO | +| newton_failures | SIN-5000Hz-5V | 0 | ≤ 0 | PASS | +| newton_median_iterations | SIN-5000Hz-5V | 3 | ≤ 3 | PASS | +| newton_max_iterations | SIN-5000Hz-5V | 6 | ≤ 12 | PASS | +| nonlinear_esr_db_overdrive | SIN-100Hz-20V | -92.04 dB | ≤ -20 | PASS | +| harmonics_2_5_db | SIN-100Hz-20V | 0.0007905 dB | ≤ 0.5 | PASS | +| thd_pp | SIN-100Hz-20V | 5.421e-05 pp | — | INFO | +| total_power_rel | SIN-100Hz-20V | 9.873e-07 | ≤ 0.05 | INFO | +| newton_failures | SIN-100Hz-20V | 0 | ≤ 0 | PASS | +| newton_median_iterations | SIN-100Hz-20V | 2 | ≤ 3 | PASS | +| newton_max_iterations | SIN-100Hz-20V | 5 | ≤ 12 | PASS | +| nonlinear_esr_db_overdrive | SIN-1000Hz-20V | -66.93 dB | ≤ -20 | PASS | +| harmonics_2_5_db | SIN-1000Hz-20V | 0.002626 dB | ≤ 0.5 | PASS | +| thd_pp | SIN-1000Hz-20V | 0.001563 pp | — | INFO | +| total_power_rel | SIN-1000Hz-20V | 2.063e-05 | ≤ 0.05 | INFO | +| newton_failures | SIN-1000Hz-20V | 0 | ≤ 0 | PASS | +| newton_median_iterations | SIN-1000Hz-20V | 2 | ≤ 3 | PASS | +| newton_max_iterations | SIN-1000Hz-20V | 6 | ≤ 12 | PASS | +| nonlinear_esr_db_overdrive | SIN-5000Hz-20V | -44.21 dB | ≤ -20 | PASS | +| harmonics_2_5_db | SIN-5000Hz-20V | 0.05041 dB | ≤ 0.5 | PASS | +| thd_pp | SIN-5000Hz-20V | 0.06374 pp | — | INFO | +| total_power_rel | SIN-5000Hz-20V | 0.0004657 | ≤ 0.05 | INFO | +| newton_failures | SIN-5000Hz-20V | 0 | ≤ 0 | PASS | +| newton_median_iterations | SIN-5000Hz-20V | 4 | ≤ 3 | FAIL | +| newton_max_iterations | SIN-5000Hz-20V | 9 | ≤ 12 | PASS | +| nonlinear_esr_db | SWP-lo-0.1V | -62.33 dB | ≤ -20 | PASS | +| newton_failures | SWP-lo-0.1V | 0 | ≤ 0 | PASS | +| newton_median_iterations | SWP-lo-0.1V | 1 | ≤ 3 | PASS | +| newton_max_iterations | SWP-lo-0.1V | 3 | ≤ 12 | PASS | +| nonlinear_esr_db | SWP-hi-1V | -62.11 dB | ≤ -20 | PASS | +| newton_failures | SWP-hi-1V | 0 | ≤ 0 | PASS | +| newton_median_iterations | SWP-hi-1V | 2 | ≤ 3 | PASS | +| newton_max_iterations | SWP-hi-1V | 3 | ≤ 12 | PASS | +| nonlinear_esr_db | TT-0.5V | -91.95 dB | ≤ -20 | PASS | +| newton_failures | TT-0.5V | 0 | ≤ 0 | PASS | +| newton_median_iterations | TT-0.5V | 2 | ≤ 3 | PASS | +| newton_max_iterations | TT-0.5V | 2 | ≤ 12 | PASS | +| nonlinear_esr_db | BURST-5V | -72.49 dB | ≤ -20 | PASS | +| newton_failures | BURST-5V | 0 | ≤ 0 | PASS | +| newton_median_iterations | BURST-5V | 2 | ≤ 3 | PASS | +| newton_max_iterations | BURST-5V | 5 | ≤ 12 | PASS | +| nonlinear_esr_db | STEP-1V | -79.95 dB | ≤ -20 | PASS | +| newton_failures | STEP-1V | 0 | ≤ 0 | PASS | +| newton_median_iterations | STEP-1V | 1 | ≤ 3 | PASS | +| newton_max_iterations | STEP-1V | 3 | ≤ 12 | PASS | + +## Signals + +| Signal | Peak F [V] | ESR [dB] | Best lag | ESR at lag [dB] | THD F / E [%] | Power F / E [W] | ns/sample | Newton fail / median / max it | +|---|---|---|---|---|---|---|---|---| +| SIN-100Hz-0.1V | 1.725 | -93.97 | 0 | -93.97 | 0.03 / 0.03 | 0.08881 / 0.08881 | 443.5 | 0 / 1 / 2 | +| SIN-1000Hz-0.1V | 1.171 | -80.69 | 0 | -80.69 | 0.194 / 0.194 | 0.03997 / 0.03997 | 587.2 | 0 / 2 / 2 | +| SIN-5000Hz-0.1V | 1.777 | -66.19 | 0 | -66.19 | 0.13 / 0.13 | 0.09674 / 0.0968 | 653.3 | 0 / 2 / 2 | +| SIN-100Hz-1V | 17.31 | -93.84 | 0 | -93.84 | 0.308 / 0.308 | 8.87 / 8.87 | 438.2 | 0 / 1 / 2 | +| SIN-1000Hz-1V | 12.53 | -80.25 | 0 | -80.25 | 2.58 / 2.58 | 4.184 / 4.184 | 632.3 | 0 / 2 / 2 | +| SIN-5000Hz-1V | 18.07 | -65.87 | 0 | -65.87 | 1.27 / 1.27 | 9.717 / 9.723 | 637.1 | 0 / 2 / 3 | +| SIN-100Hz-5V | 82.21 | -96.77 | 0 | -96.77 | 2.37 / 2.37 | 211.1 / 211.1 | 528.6 | 0 / 1 / 2 | +| SIN-1000Hz-5V | 69.47 | -72.50 | 0 | -72.50 | 12 / 12 | 100.7 / 100.7 | 676.9 | 0 / 2 / 5 | +| SIN-5000Hz-5V | 81 | -61.44 | 0 | -61.44 | 11.2 / 11.2 | 213.2 / 213.1 | 876.9 | 0 / 3 / 6 | +| SIN-100Hz-20V | 86.47 | -92.04 | 0 | -92.04 | 21.2 / 21.2 | 251.6 / 251.6 | 566.6 | 0 / 2 / 5 | +| SIN-1000Hz-20V | 106.1 | -66.93 | 0 | -66.93 | 58.7 / 58.7 | 137.5 / 137.5 | 749.0 | 0 / 2 / 6 | +| SIN-5000Hz-20V | 144.7 | -44.21 | 0 | -44.21 | 46.1 / 46.1 | 286.2 / 286.1 | 1085.5 | 0 / 4 / 9 | +| SWP-lo-0.1V | 1.865 | -62.33 | 0 | -62.33 | — | — | 521.5 | 0 / 1 / 3 | +| SWP-hi-1V | 18.83 | -62.11 | 0 | -62.11 | — | — | 571.6 | 0 / 2 / 3 | +| TT-0.5V | 11.82 | -91.95 | 0 | -91.95 | — | — | 540.4 | 0 / 2 / 2 | +| BURST-5V | 69.4 | -72.49 | 0 | -72.49 | — | — | 639.0 | 0 / 2 / 5 | +| STEP-1V | 20.76 | -79.95 | 0 | -79.95 | — | — | 448.5 | 0 / 1 / 3 | + +## DC operating point + +| Node | SPICE [V] | Engine [V] | Rel. error | +|---|---|---|---| +| c20 | -60.0000 | — | — | +| g4 | -46.3631 | -46.3631 | 4.919e-07 | +| g5 | -46.3631 | -46.3631 | 4.919e-07 | +| g6 | -46.3631 | -46.3631 | 4.919e-07 | +| g7 | -46.3631 | -46.3631 | 4.919e-07 | +| nbias | -46.3636 | -46.3636 | 4.636e-08 | +| ngn | -46.3631 | -46.3631 | 4.863e-07 | +| nor | -46.3631 | -46.3631 | 4.863e-07 | +| nrv | -3.6364 | — | — | +| out | 0.0000 | -0.0000 | 3.067e-09 | +| p3a | 272.6113 | 272.6113 | 1.345e-09 | +| p3b | 263.9512 | 263.9512 | 7.844e-10 | +| pa | 490.4628 | 490.4628 | 3.492e-08 | +| pa1 | 491.3466 | 491.3466 | 4.634e-11 | +| pb | 490.3937 | 490.3937 | 3.764e-08 | +| pb1 | 491.3466 | 491.3466 | 4.633e-11 | +| s4 | 485.6164 | 485.6164 | 1.509e-08 | +| s5 | 485.6164 | — | — | +| s6 | 485.6162 | 485.6162 | 1.51e-08 | +| s7 | 485.6162 | — | — | +| sl | 0.0000 | 0.0000 | 1.729e-11 | +| spk1 | 0.0000 | — | — | +| spk2 | 0.0000 | — | — | + +Engine values are the probe values after the first sample (zero input) following `reset()`. Nodes the engine does not probe yet show —. + +## Figures + +### Waveform overlay and error (most demanding signal) + +![Waveform overlay and error (most demanding signal)](20261018_b6_DEFAULT/waveform.png) + +### Harmonics + +![Harmonics](20261018_b6_DEFAULT/harmonics.png) diff --git a/harness/reports/M4/20261018_b6_DEFAULT/harmonics.png b/harness/reports/M4/20261018_b6_DEFAULT/harmonics.png new file mode 100644 index 0000000..e01db91 Binary files /dev/null and b/harness/reports/M4/20261018_b6_DEFAULT/harmonics.png differ diff --git a/harness/reports/M4/20261018_b6_DEFAULT/waveform.png b/harness/reports/M4/20261018_b6_DEFAULT/waveform.png new file mode 100644 index 0000000..57cf92a Binary files /dev/null and b/harness/reports/M4/20261018_b6_DEFAULT/waveform.png differ diff --git a/harness/reports/M4/20261018_full_acceptance.md b/harness/reports/M4/20261018_full_acceptance.md new file mode 100644 index 0000000..2a5e713 --- /dev/null +++ b/harness/reports/M4/20261018_full_acceptance.md @@ -0,0 +1,197 @@ +# M4 acceptance: full amplifier vs the full netlist + +- Date: 2026-10-18, engine commit `9a422dd (dirty)`, ngspice 47, fs = 768000 Hz, SPICE reltol 1e-08 +- Netlist sha256 `83f01b6fd8b64a06`, tubes.lib sha256 `c9c9c88346c69010` +- Engine: `ampwav --block full` (volts at the jack and across the 16 Ω load), the checks of SPEC §7 M4. + +## Summary + +PASS 107 · FAIL 0 + +| Section | Check | Item | Measured | Tolerance | Status | +|---|---|---|---|---|---| +| dc | dc_rel_error | v(ct) | 4.176e-07 | ≤ 0.005 | PASS | +| dc | dc_rel_error | v(nscr) | 4.492e-07 | ≤ 0.005 | PASS | +| dc | dc_rel_error | v(bpx) | 3.649e-06 | ≤ 0.005 | PASS | +| dc | dc_rel_error | v(bpa) | 5.679e-06 | ≤ 0.005 | PASS | +| dc | dc_rel_error | v(nbias) | 4.636e-08 | ≤ 0.005 | PASS | +| dc | dc_rel_error | v(p1a) | 1.994e-05 | ≤ 0.005 | PASS | +| dc | dc_rel_error | v(k1a) | 3.976e-05 | ≤ 0.005 | PASS | +| dc | dc_rel_error | v(p1b) | 1.686e-05 | ≤ 0.005 | PASS | +| dc | dc_rel_error | v(k1b) | 0.0001011 | ≤ 0.005 | PASS | +| dc | dc_rel_error | v(p2a) | 2.195e-05 | ≤ 0.005 | PASS | +| dc | dc_rel_error | v(k2a) | 2.104e-05 | ≤ 0.005 | PASS | +| dc | dc_rel_error | v(k2b) | 2.14e-05 | ≤ 0.005 | PASS | +| dc | dc_rel_error | v(p3a) | 1.576e-05 | ≤ 0.005 | PASS | +| dc | dc_rel_error | v(p3b) | 1.707e-05 | ≤ 0.005 | PASS | +| dc | dc_rel_error | v(k3) | 2.137e-05 | ≤ 0.005 | PASS | +| dc | dc_rel_error | v(nf) | 2.137e-05 | ≤ 0.005 | PASS | +| dc | dc_rel_error | v(ng) | 2.137e-05 | ≤ 0.005 | PASS | +| dc | el34_plate_ma | ip_tube_a | 8.688e-06 mA | ≤ 1 | PASS | +| dc | el34_plate_ma | ip_tube_b | 8.695e-06 mA | ≤ 1 | PASS | +| dc | el34_screen_ma | is_tube_a | 1.951e-07 mA | ≤ 0.3 | PASS | +| dc | el34_screen_ma | is_tube_b | 1.918e-07 mA | ≤ 0.3 | PASS | +| dc | ct_rel | v(ct) | 4.176e-07 | ≤ 0.01 | PASS | +| dc | nbias_v | v(nbias) | 2.15e-06 V | ≤ 0.2 | PASS | +| nfb | nfb_gain_db | closed 100 Hz | 0.001766 dB | ≤ 0.5 | PASS | +| nfb | newton_failures | closed 100 Hz | 0 | ≤ 0 | PASS | +| nfb | newton_unrescued | closed 100 Hz | 0 | — | INFO | +| nfb | newton_median_iterations | closed 100 Hz | 1 | ≤ 3 | PASS | +| nfb | newton_max_iterations | closed 100 Hz | 2 | ≤ 32 | PASS | +| nfb | nfb_gain_db | closed 1000 Hz | 0.005358 dB | ≤ 0.5 | PASS | +| nfb | newton_failures | closed 1000 Hz | 0 | ≤ 0 | PASS | +| nfb | newton_unrescued | closed 1000 Hz | 0 | — | INFO | +| nfb | newton_median_iterations | closed 1000 Hz | 1 | ≤ 3 | PASS | +| nfb | newton_max_iterations | closed 1000 Hz | 2 | ≤ 32 | PASS | +| nfb | nfb_gain_db | closed 5000 Hz | 0.01505 dB | ≤ 0.5 | PASS | +| nfb | newton_failures | closed 5000 Hz | 0 | ≤ 0 | PASS | +| nfb | newton_unrescued | closed 5000 Hz | 0 | — | INFO | +| nfb | newton_median_iterations | closed 5000 Hz | 2 | ≤ 3 | PASS | +| nfb | newton_max_iterations | closed 5000 Hz | 2 | ≤ 32 | PASS | +| nfb | nfb_gain_db | open 100 Hz | 0.002271 dB | ≤ 0.5 | PASS | +| nfb | newton_failures | open 100 Hz | 0 | ≤ 0 | PASS | +| nfb | newton_unrescued | open 100 Hz | 0 | — | INFO | +| nfb | newton_median_iterations | open 100 Hz | 1 | ≤ 3 | PASS | +| nfb | newton_max_iterations | open 100 Hz | 2 | ≤ 32 | PASS | +| nfb | nfb_gain_db | open 1000 Hz | 0.007852 dB | ≤ 0.5 | PASS | +| nfb | newton_failures | open 1000 Hz | 0 | ≤ 0 | PASS | +| nfb | newton_unrescued | open 1000 Hz | 0 | — | INFO | +| nfb | newton_median_iterations | open 1000 Hz | 1 | ≤ 3 | PASS | +| nfb | newton_max_iterations | open 1000 Hz | 2 | ≤ 32 | PASS | +| nfb | nfb_gain_db | open 5000 Hz | 0.0599 dB | ≤ 0.5 | PASS | +| nfb | newton_failures | open 5000 Hz | 0 | ≤ 0 | PASS | +| nfb | newton_unrescued | open 5000 Hz | 0 | — | INFO | +| nfb | newton_median_iterations | open 5000 Hz | 2 | ≤ 3 | PASS | +| nfb | newton_max_iterations | open 5000 Hz | 2 | ≤ 32 | PASS | +| clean | total_esr_db | CLEAN SIN-1000Hz-0.025V | -30.3 dB | ≤ -20 | PASS | +| clean | total_harmonics_2_9_db | CLEAN SIN-1000Hz-0.025V | 0.8439 dB | ≤ 1.5 | PASS | +| clean | newton_failures | CLEAN SIN-1000Hz-0.025V | 0 | ≤ 0 | PASS | +| clean | newton_unrescued | CLEAN SIN-1000Hz-0.025V | 0 | — | INFO | +| clean | newton_median_iterations | CLEAN SIN-1000Hz-0.025V | 2 | ≤ 3 | PASS | +| clean | newton_max_iterations | CLEAN SIN-1000Hz-0.025V | 5 | ≤ 32 | PASS | +| clean | total_power_rel | CLEAN SIN-1000Hz-0.025V | 0.03926 | ≤ 0.05 | PASS | +| clean | total_thd_pp | CLEAN SIN-1000Hz-0.025V | 0.2177 pp | ≤ 0.5 | PASS | +| stability | stability_out_v | max |out| | 4.355e-05 V | ≤ 0.001 | PASS | +| stability | stability_growth | RMS last 10 s − first 10 s | 4.006e-13 V | ≤ 1e-06 | PASS | +| stability | newton_failures | 60 s silence | 0 | ≤ 0 | PASS | +| stability | newton_unrescued | 60 s silence | 0 | — | INFO | +| stability | newton_median_iterations | 60 s silence | 1 | ≤ 3 | PASS | +| stability | newton_max_iterations | 60 s silence | 1 | ≤ 32 | PASS | +| overdrive | total_esr_db | OVERDRIVE SIN-220Hz-0.3V | -68.01 dB | ≤ -20 | PASS | +| overdrive | total_harmonics_2_9_db | OVERDRIVE SIN-220Hz-0.3V | 0.008618 dB | ≤ 1.5 | PASS | +| overdrive | sag_min_v | OVERDRIVE SIN-220Hz-0.3V | 0.003538 V | ≤ 2 | PASS | +| overdrive | newton_failures | OVERDRIVE SIN-220Hz-0.3V | 0 | ≤ 0 | PASS | +| overdrive | newton_unrescued | OVERDRIVE SIN-220Hz-0.3V | 0 | — | INFO | +| overdrive | newton_median_iterations | OVERDRIVE SIN-220Hz-0.3V | 1 | ≤ 3 | PASS | +| overdrive | newton_max_iterations | OVERDRIVE SIN-220Hz-0.3V | 5 | ≤ 32 | PASS | +| crunch_drive | total_esr_db | CRUNCH SIN-220Hz-0.3V | -70.27 dB | ≤ -20 | PASS | +| crunch_drive | total_harmonics_2_9_db | CRUNCH SIN-220Hz-0.3V | 0.00792 dB | ≤ 1.5 | PASS | +| crunch_drive | newton_failures | CRUNCH SIN-220Hz-0.3V | 0 | ≤ 0 | PASS | +| crunch_drive | newton_unrescued | CRUNCH SIN-220Hz-0.3V | 0 | — | INFO | +| crunch_drive | newton_median_iterations | CRUNCH SIN-220Hz-0.3V | 2 | ≤ 3 | PASS | +| crunch_drive | newton_max_iterations | CRUNCH SIN-220Hz-0.3V | 5 | ≤ 32 | PASS | +| crunch_drive | total_esr_db | CRUNCH DI-GTR L | -60.76 dB | ≤ -20 | PASS | +| crunch_drive | newton_failures | CRUNCH DI-GTR L | 0 | ≤ 0 | PASS | +| crunch_drive | newton_unrescued | CRUNCH DI-GTR L | 0 | — | INFO | +| crunch_drive | newton_median_iterations | CRUNCH DI-GTR L | 2 | ≤ 3 | PASS | +| crunch_drive | newton_max_iterations | CRUNCH DI-GTR L | 7 | ≤ 32 | PASS | +| crunch_drive | total_esr_db | CRUNCH DI-GTR LL | -61.31 dB | ≤ -20 | PASS | +| crunch_drive | newton_failures | CRUNCH DI-GTR LL | 0 | ≤ 0 | PASS | +| crunch_drive | newton_unrescued | CRUNCH DI-GTR LL | 0 | — | INFO | +| crunch_drive | newton_median_iterations | CRUNCH DI-GTR LL | 2 | ≤ 3 | PASS | +| crunch_drive | newton_max_iterations | CRUNCH DI-GTR LL | 7 | ≤ 32 | PASS | +| crunch_drive | total_esr_db | CRUNCH DI-GTR R | -62.06 dB | ≤ -20 | PASS | +| crunch_drive | newton_failures | CRUNCH DI-GTR R | 0 | ≤ 0 | PASS | +| crunch_drive | newton_unrescued | CRUNCH DI-GTR R | 0 | — | INFO | +| crunch_drive | newton_median_iterations | CRUNCH DI-GTR R | 2 | ≤ 3 | PASS | +| crunch_drive | newton_max_iterations | CRUNCH DI-GTR R | 7 | ≤ 32 | PASS | +| crunch_drive | total_esr_db | CRUNCH DI-GTR RR | -60.9 dB | ≤ -20 | PASS | +| crunch_drive | newton_failures | CRUNCH DI-GTR RR | 0 | ≤ 0 | PASS | +| crunch_drive | newton_unrescued | CRUNCH DI-GTR RR | 0 | — | INFO | +| crunch_drive | newton_median_iterations | CRUNCH DI-GTR RR | 2 | ≤ 3 | PASS | +| crunch_drive | newton_max_iterations | CRUNCH DI-GTR RR | 9 | ≤ 32 | PASS | +| crunch_drive | total_esr_db | DRIVE SIN-220Hz-0.3V | -63.51 dB | ≤ -20 | PASS | +| crunch_drive | total_harmonics_2_9_db | DRIVE SIN-220Hz-0.3V | 0.03181 dB | ≤ 1.5 | PASS | +| crunch_drive | newton_failures | DRIVE SIN-220Hz-0.3V | 0 | ≤ 0 | PASS | +| crunch_drive | newton_unrescued | DRIVE SIN-220Hz-0.3V | 0 | — | INFO | +| crunch_drive | newton_median_iterations | DRIVE SIN-220Hz-0.3V | 1 | ≤ 3 | PASS | +| crunch_drive | newton_max_iterations | DRIVE SIN-220Hz-0.3V | 5 | ≤ 32 | PASS | +| crunch_drive | total_esr_db | DRIVE DI-GTR L | -60.26 dB | ≤ -20 | PASS | +| crunch_drive | newton_failures | DRIVE DI-GTR L | 0 | ≤ 0 | PASS | +| crunch_drive | newton_unrescued | DRIVE DI-GTR L | 0 | — | INFO | +| crunch_drive | newton_median_iterations | DRIVE DI-GTR L | 2 | ≤ 3 | PASS | +| crunch_drive | newton_max_iterations | DRIVE DI-GTR L | 7 | ≤ 32 | PASS | +| crunch_drive | total_esr_db | DRIVE DI-GTR LL | -61.53 dB | ≤ -20 | PASS | +| crunch_drive | newton_failures | DRIVE DI-GTR LL | 0 | ≤ 0 | PASS | +| crunch_drive | newton_unrescued | DRIVE DI-GTR LL | 0 | — | INFO | +| crunch_drive | newton_median_iterations | DRIVE DI-GTR LL | 2 | ≤ 3 | PASS | +| crunch_drive | newton_max_iterations | DRIVE DI-GTR LL | 7 | ≤ 32 | PASS | +| crunch_drive | total_esr_db | DRIVE DI-GTR R | -61.01 dB | ≤ -20 | PASS | +| crunch_drive | newton_failures | DRIVE DI-GTR R | 0 | ≤ 0 | PASS | +| crunch_drive | newton_unrescued | DRIVE DI-GTR R | 0 | — | INFO | +| crunch_drive | newton_median_iterations | DRIVE DI-GTR R | 2 | ≤ 3 | PASS | +| crunch_drive | newton_max_iterations | DRIVE DI-GTR R | 7 | ≤ 32 | PASS | +| crunch_drive | total_esr_db | DRIVE DI-GTR RR | -60.29 dB | ≤ -20 | PASS | +| crunch_drive | newton_failures | DRIVE DI-GTR RR | 0 | ≤ 0 | PASS | +| crunch_drive | newton_unrescued | DRIVE DI-GTR RR | 0 | — | INFO | +| crunch_drive | newton_median_iterations | DRIVE DI-GTR RR | 2 | ≤ 3 | PASS | +| crunch_drive | newton_max_iterations | DRIVE DI-GTR RR | 7 | ≤ 32 | PASS | + +## DC operating point + +| Node / current | SPICE | Engine | +|---|---|---| +| ct | 491.3466 V | 491.3468 V | +| nscr | 488.8805 V | 488.8807 V | +| bpx | 404.9982 V | 404.9997 V | +| bpa | 391.9215 V | 391.9237 V | +| nbias | -46.3636 V | -46.3636 V | +| p1a | 298.3260 V | 298.3319 V | +| k1a | 2.5271 V | 2.5270 V | +| p1b | 354.7502 V | 354.7562 V | +| k1b | 3.7171 V | 3.7167 V | +| p2a | 232.5771 V | 232.5822 V | +| k2a | 1.4139 V | 1.4138 V | +| k2b | 233.1404 V | 233.1454 V | +| p3a | 272.6113 V | 272.6156 V | +| p3b | 263.9512 V | 263.9557 V | +| k3 | 45.2502 V | 45.2492 V | +| nf | 43.8285 V | 43.8275 V | +| ng | 13.5790 V | 13.5787 V | +| ip_tube_a | 28.7718 mA | 28.7718 mA | +| ip_tube_b | 28.7715 mA | 28.7715 mA | +| is_tube_a | 3.2641 mA | 3.2641 mA | +| is_tube_b | 3.2643 mA | 3.2643 mA | + +## NFB (gain in → out, dB) + +| f | SPICE closed | engine closed | SPICE open | engine open | NFB SPICE | NFB engine | +|---|---|---|---|---|---|---| +| 100 Hz | 45.92 | 45.92 | 56.34 | 56.34 | 10.42 | 10.42 | +| 1000 Hz | 53.54 | 53.54 | 57.85 | 57.86 | 4.32 | 4.32 | +| 5000 Hz | 69.86 | 69.88 | 77.77 | 77.83 | 7.91 | 7.95 | + +## Signals + +| Preset | Signal | ESR | best lag | harm. 2–9 | THD F / E | Power F / E | min v(ct) F / E | +|---|---|---|---|---|---|---|---| +| CLEAN | SIN-1000Hz-0.025V | -30.3 dB | 2 | 0.84 dB | 7.37 / 7.59 % | 81.1 / 78.0 W | — | +| OVERDRIVE | SIN-220Hz-0.3V | -68.0 dB | 0 | 0.01 dB | 19.61 / 19.61 % | 32.2 / 32.2 W | 474.38 / 474.37 V | +| CRUNCH | SIN-220Hz-0.3V | -70.3 dB | 0 | 0.01 dB | 12.00 / 12.00 % | 31.6 / 31.6 W | — | +| CRUNCH | DI-GTR L | -60.8 dB | 0 | — | — | — | — | +| CRUNCH | DI-GTR LL | -61.3 dB | 0 | — | — | — | — | +| CRUNCH | DI-GTR R | -62.1 dB | 0 | — | — | — | — | +| CRUNCH | DI-GTR RR | -60.9 dB | 0 | — | — | — | — | +| DRIVE | SIN-220Hz-0.3V | -63.5 dB | 0 | 0.03 dB | 22.53 / 22.53 % | 34.5 / 34.5 W | — | +| DRIVE | DI-GTR L | -60.3 dB | 0 | — | — | — | — | +| DRIVE | DI-GTR LL | -61.5 dB | 0 | — | — | — | — | +| DRIVE | DI-GTR R | -61.0 dB | 0 | — | — | — | — | +| DRIVE | DI-GTR RR | -60.3 dB | 0 | — | — | — | — | + +## Stability + +60 s silence at Preamp / Master / Presence 1.0: max |out| 4.36e-05 V, RMS first / last 10 s 4.24e-05 / 4.24e-05 V. + +## Delayed-NFB break + +Not applicable: since D-041 the global NFB (R22) is part of the B56 tree and has no delay (SPEC §7 M4 asked for a 1- vs 2-sample comparison of the delayed design). diff --git a/harness/reports/M5/20261018_b56_knob_jump.md b/harness/reports/M5/20261018_b56_knob_jump.md new file mode 100644 index 0000000..cd1ad08 --- /dev/null +++ b/harness/reports/M5/20261018_b56_knob_jump.md @@ -0,0 +1,9 @@ +# M5 report: B56 knob-jump test + +- Date: 2026-10-18, engine commit `9a422dd (dirty)`, ngspice 47, fs = 768000 Hz, SPICE reltol 1e-08 +- Knob targets 0 → 1 in 10 ms from t = 20 ms during a 1000 Hz, 1 V tone on the J4 DC level (DC 0.0000 V); other knobs at their defaults. Engine: smoothing 20 ms, matrix update every 32 samples. SPICE: pot resistances follow the same smoothed trajectory continuously. +- Window: the ramp and the 20 ms after it. Pass (D-025): no NaN/Inf, ESR ≤ -20 dB. + +| Case | Finite | ESR | Status | Peak error / ref peak | Error energy > 5 kHz vs tone | +|---|---|---|---|---|---| +| presence | yes | -62.9 dB | PASS | 1.74e-03 | -67.2 dB | diff --git a/harness/reports/M6/20261018_auval.log b/harness/reports/M6/20261018_auval.log new file mode 100644 index 0000000..78ae3db --- /dev/null +++ b/harness/reports/M6/20261018_auval.log @@ -0,0 +1,281 @@ + + AU Validation Tool + Version: 1.10.0 + Copyright 2003-2019, Apple Inc. All Rights Reserved. + Specify -h (-help) for command options + +-------------------------------------------------- +VALIDATING AUDIO UNIT: 'aufx' - 'A223' - 'Ctcd' +-------------------------------------------------- +Manufacturer String: CatastrophicCoder +AudioUnit Name: Amp2203 +Component Version: 0.0.1 (0x1) + +* * PASS +-------------------------------------------------- +TESTING OPEN TIMES: +COLD: +Time to open AudioUnit: 10.250 ms +WARM: +Time to open AudioUnit: 5.935 ms +This AudioUnit is a version 2 implementation. +FIRST TIME: +Time for initialization: 9.994 ms + +* * PASS +-------------------------------------------------- +VERIFYING DEFAULT SCOPE FORMATS: +Input Scope Bus Configuration: + Default Bus Count:1 + Bus Name: Input + Default Format: AudioStreamBasicDescription: 2 ch, 44100 Hz, Float32, deinterleaved + Has Channel Layouts: 0x640001 0x650002 0x660002 0x670002 0x6A0002 + Default Layout: + Tag=0x650002, Num Chan Descs=0 + +Output Scope Bus Configuration: + Default Bus Count:1 + Bus Name: Output + Default Format: AudioStreamBasicDescription: 2 ch, 44100 Hz, Float32, deinterleaved + Has Channel Layouts: 0x640001 0x650002 0x660002 0x670002 0x6A0002 + Default Layout: + Tag=0x650002, Num Chan Descs=0 + +* * PASS +-------------------------------------------------- +VERIFYING REQUIRED PROPERTIES: + +* * PASS +-------------------------------------------------- +VERIFYING RECOMMENDED PROPERTIES: + VERIFYING PROPERTY: Latency + PASS + VERIFYING PROPERTY: Tail Time + PASS + VERIFYING PROPERTY: Bypass Effect + PASS + +* * PASS +-------------------------------------------------- +VERIFYING OPTIONAL PROPERTIES: + +* * PASS +-------------------------------------------------- +VERIFYING SPECIAL PROPERTIES: + +VERIFYING CUSTOM UI +Cocoa Views Available: 1 + JUCE_AUCocoaViewClass_387eba94ef07be2a + PASS + +HAS FACTORY PRESETS + ID: 0 Name: Untitled + +VERIFYING CLASS INFO + PASS + +TESTING HOST CALLBACKS + PASS + +* * PASS +-------------------------------------------------- +PUBLISHED PARAMETER INFO: + +# # # 12 Global Scope Parameters: +Parameter ID:3016415 +Name: Bass +Parameter Type: Generic +Values: Minimum = 0.0, Default = 5.0, Maximum = 10.0 +Flags: Values Have Strings, High Resolution, Can Ramp, Readable, Writable + -parameter PASS + +Parameter ID:857833147 +Name: Preamp Volume +Parameter Type: Generic +Values: Minimum = 0.0, Default = 6.0, Maximum = 10.0 +Flags: Values Have Strings, High Resolution, Can Ramp, Readable, Writable + -parameter PASS + +Parameter ID:870817019 +Name: Presence +Parameter Type: Generic +Values: Minimum = 0.0, Default = 5.0, Maximum = 10.0 +Flags: Values Have Strings, High Resolution, Can Ramp, Readable, Writable + -parameter PASS + +Parameter ID:956930507 +Name: Interface Level +Parameter Type: Generic +Values: Minimum = 0.0, Default = 12.0, Maximum = 24.0 +Flags: Values Have Strings, High Resolution, Can Ramp, Readable, Writable + -parameter PASS + +Parameter ID:1066216034 +Name: Master +Parameter Type: Generic +Values: Minimum = 0.0, Default = 3.0, Maximum = 10.0 +Flags: Values Have Strings, High Resolution, Can Ramp, Readable, Writable + -parameter PASS + +Parameter ID:1073142165 +Name: Middle +Parameter Type: Generic +Values: Minimum = 0.0, Default = 5.0, Maximum = 10.0 +Flags: Values Have Strings, High Resolution, Can Ramp, Readable, Writable + -parameter PASS + +Parameter ID:1281885780 +Name: Treble +Parameter Type: Generic +Values: Minimum = 0.0, Default = 5.0, Maximum = 10.0 +Flags: Values Have Strings, High Resolution, Can Ramp, Readable, Writable + -parameter PASS + +Parameter ID:1305086723 +Name: Output Level +Parameter Type: Generic +Values: Minimum = -48.0, Default = 0.0, Maximum = 12.0 +Flags: Values Have Strings, High Resolution, Can Ramp, Readable, Writable + -parameter PASS + +Parameter ID:1420097723 +Name: Oversampling +Parameter Type: Indexed +Values: Minimum = 2x, Default = 2x, Maximum = 16x +Flags: Values Have Strings, High Resolution, Readable, Writable +Parameter has Value Strings +Num Strings = 4 +Value: 0, String: 2x +Value: 1, String: 4x +Value: 2, String: 8x +Value: 3, String: 16x + -parameter PASS + +Parameter ID:1706969868 +Name: Input Trim +Parameter Type: Generic +Values: Minimum = -24.0, Default = 0.0, Maximum = 24.0 +Flags: Values Have Strings, High Resolution, Can Ramp, Readable, Writable + -parameter PASS + +Parameter ID:1796311039 +Name: Power Amp Rate +Parameter Type: Indexed +Values: Minimum = Full, Default = Full, Maximum = Half +Flags: Values Have Strings, High Resolution, Readable, Writable +Parameter has Value Strings +Num Strings = 2 +Value: 0, String: Full +Value: 1, String: Half + -parameter PASS + +Parameter ID:1957034003 +Name: Oversampling Filter +Parameter Type: Indexed +Values: Minimum = Linear phase (FIR), Default = Linear phase (FIR), Maximum = Low latency (IIR) +Flags: Values Have Strings, High Resolution, Readable, Writable +Parameter has Value Strings +Num Strings = 2 +Value: 0, String: Linear phase (FIR) +Value: 1, String: Low latency (IIR) + -parameter PASS + +Testing that parameters retain value across reset and initialization + PASS + +* * PASS +-------------------------------------------------- +FORMAT TESTS: + +Reported Channel Capabilities (explicit): + [1, 1] [1, 2] [2, 1] [2, 2] + +Input/Output Channel Handling: +1-1 1-2 1-4 1-5 1-6 1-7 1-8 2-2 2-4 2-5 2-6 2-7 2-8 4-4 4-5 5-5 6-6 7-7 8-8 +X X X + +# # AudioChannelLayouts (5), Input Scope: +ChannelLayout is Writable: T +The Unit publishes the following Channel Layouts: + 0x640001, 0x650002, 0x660002, 0x670002, 0x6A0002, + +Is Audio Channel Layout Available: +Mono Stereo Binau. AU_4 Ambi. AU_5 AU_5_0 AU_6 AU_6_0 AU_7_0 AU_7_0F AU_8 AU_5_1 AU_6_1 AU_7_1 AU_7_1F +X X X + +Current Format:AudioStreamBasicDescription: 2 ch, 44100 Hz, Float32, deinterleaved +Current Format Tag = 0x650002, New Format Tag = 0x640001, Success - did not reset format with mis-matched layout + +Current Format:AudioStreamBasicDescription: 2 ch, 44100 Hz, Float32, deinterleaved +Current Format Tag = 0x650002, New Format Tag = 0x650002, Successsful + +Current Format:AudioStreamBasicDescription: 2 ch, 44100 Hz, Float32, deinterleaved +Current Format Tag = 0x650002, New Format Tag = 0x6A0002, Successsful + +# # AudioChannelLayouts (5), Output Scope: +ChannelLayout is Writable: T +The Unit publishes the following Channel Layouts: + 0x640001, 0x650002, 0x660002, 0x670002, 0x6A0002, + +Is Audio Channel Layout Available: +Mono Stereo Binau. AU_4 Ambi. AU_5 AU_5_0 AU_6 AU_6_0 AU_7_0 AU_7_0F AU_8 AU_5_1 AU_6_1 AU_7_1 AU_7_1F +X X X + +Current Format:AudioStreamBasicDescription: 2 ch, 44100 Hz, Float32, deinterleaved +Current Format Tag = 0x650002, New Format Tag = 0x640001, Success - did not reset format with mis-matched layout + +Current Format:AudioStreamBasicDescription: 2 ch, 44100 Hz, Float32, deinterleaved +Current Format Tag = 0x650002, New Format Tag = 0x650002, Successsful + +Current Format:AudioStreamBasicDescription: 2 ch, 44100 Hz, Float32, deinterleaved +Current Format Tag = 0x650002, New Format Tag = 0x6A0002, Successsful + +* * PASS +-------------------------------------------------- +RENDER TESTS: + +Input Format: AudioStreamBasicDescription: 2 ch, 44100 Hz, Float32, deinterleaved +Output Format: AudioStreamBasicDescription: 2 ch, 44100 Hz, Float32, deinterleaved +Render Test at 512 frames +Slicing Render Test at 64 frames + PASS + + +Render Test at 64 frames, sample rate: 22050 Hz +Render Test at 137 frames, sample rate: 96000 Hz +Render Test at 4096 frames, sample rate: 48000 Hz +Render Test at 4096 frames, sample rate: 192000 Hz +Render Test at 4096 frames, sample rate: 11025 Hz +Render Test at 512 frames, sample rate: 44100 Hz + PASS + +1 Channel Test: +Render Test at 512 frames + PASS + +1 to 2 Channel Render Test at 256 frames + PASS + +Checking connection semantics: +Connection format: +AudioStreamBasicDescription: 2 ch, 44100 Hz, Float32, deinterleaved + PASS + +Bad Max Frames - Render should fail + PASS + +Checking parameter setting +Using AudioUnitSetParameter +Using AudioUnitScheduleParameter + PASS + +Checking ramped parameter scheduling + PASS + +Test MIDI + PASS + +* * PASS +-------------------------------------------------- +AU VALIDATION SUCCEEDED. +-------------------------------------------------- diff --git a/harness/reports/M6/20261018_full_acceptance_fs384000_j4exact.md b/harness/reports/M6/20261018_full_acceptance_fs384000_j4exact.md new file mode 100644 index 0000000..b37c301 --- /dev/null +++ b/harness/reports/M6/20261018_full_acceptance_fs384000_j4exact.md @@ -0,0 +1,197 @@ +# M4 acceptance: full amplifier vs the full netlist + +- Date: 2026-10-18, engine commit `9a422dd (dirty)`, ngspice 47, fs = 384000 Hz, J4 exact, SPICE reltol 1e-08 +- Netlist sha256 `83f01b6fd8b64a06`, tubes.lib sha256 `c9c9c88346c69010` +- Engine: `ampwav --block full` (volts at the jack and across the 16 Ω load), the checks of SPEC §7 M4. + +## Summary + +PASS 107 · FAIL 0 + +| Section | Check | Item | Measured | Tolerance | Status | +|---|---|---|---|---|---| +| dc | dc_rel_error | v(ct) | 4.176e-07 | ≤ 0.005 | PASS | +| dc | dc_rel_error | v(nscr) | 4.492e-07 | ≤ 0.005 | PASS | +| dc | dc_rel_error | v(bpx) | 3.649e-06 | ≤ 0.005 | PASS | +| dc | dc_rel_error | v(bpa) | 5.679e-06 | ≤ 0.005 | PASS | +| dc | dc_rel_error | v(nbias) | 4.636e-08 | ≤ 0.005 | PASS | +| dc | dc_rel_error | v(p1a) | 1.994e-05 | ≤ 0.005 | PASS | +| dc | dc_rel_error | v(k1a) | 3.976e-05 | ≤ 0.005 | PASS | +| dc | dc_rel_error | v(p1b) | 1.686e-05 | ≤ 0.005 | PASS | +| dc | dc_rel_error | v(k1b) | 0.0001011 | ≤ 0.005 | PASS | +| dc | dc_rel_error | v(p2a) | 2.195e-05 | ≤ 0.005 | PASS | +| dc | dc_rel_error | v(k2a) | 2.104e-05 | ≤ 0.005 | PASS | +| dc | dc_rel_error | v(k2b) | 2.14e-05 | ≤ 0.005 | PASS | +| dc | dc_rel_error | v(p3a) | 1.576e-05 | ≤ 0.005 | PASS | +| dc | dc_rel_error | v(p3b) | 1.707e-05 | ≤ 0.005 | PASS | +| dc | dc_rel_error | v(k3) | 2.137e-05 | ≤ 0.005 | PASS | +| dc | dc_rel_error | v(nf) | 2.137e-05 | ≤ 0.005 | PASS | +| dc | dc_rel_error | v(ng) | 2.137e-05 | ≤ 0.005 | PASS | +| dc | el34_plate_ma | ip_tube_a | 8.687e-06 mA | ≤ 1 | PASS | +| dc | el34_plate_ma | ip_tube_b | 8.694e-06 mA | ≤ 1 | PASS | +| dc | el34_screen_ma | is_tube_a | 1.95e-07 mA | ≤ 0.3 | PASS | +| dc | el34_screen_ma | is_tube_b | 1.916e-07 mA | ≤ 0.3 | PASS | +| dc | ct_rel | v(ct) | 4.176e-07 | ≤ 0.01 | PASS | +| dc | nbias_v | v(nbias) | 2.15e-06 V | ≤ 0.2 | PASS | +| nfb | nfb_gain_db | closed 100 Hz | 0.001855 dB | ≤ 0.5 | PASS | +| nfb | newton_failures | closed 100 Hz | 0 | ≤ 0 | PASS | +| nfb | newton_unrescued | closed 100 Hz | 0 | — | INFO | +| nfb | newton_median_iterations | closed 100 Hz | 1 | ≤ 3 | PASS | +| nfb | newton_max_iterations | closed 100 Hz | 2 | ≤ 32 | PASS | +| nfb | nfb_gain_db | closed 1000 Hz | 0.00581 dB | ≤ 0.5 | PASS | +| nfb | newton_failures | closed 1000 Hz | 0 | ≤ 0 | PASS | +| nfb | newton_unrescued | closed 1000 Hz | 0 | — | INFO | +| nfb | newton_median_iterations | closed 1000 Hz | 1 | ≤ 3 | PASS | +| nfb | newton_max_iterations | closed 1000 Hz | 2 | ≤ 32 | PASS | +| nfb | nfb_gain_db | closed 5000 Hz | 0.01713 dB | ≤ 0.5 | PASS | +| nfb | newton_failures | closed 5000 Hz | 0 | ≤ 0 | PASS | +| nfb | newton_unrescued | closed 5000 Hz | 0 | — | INFO | +| nfb | newton_median_iterations | closed 5000 Hz | 2 | ≤ 3 | PASS | +| nfb | newton_max_iterations | closed 5000 Hz | 2 | ≤ 32 | PASS | +| nfb | nfb_gain_db | open 100 Hz | 0.002491 dB | ≤ 0.5 | PASS | +| nfb | newton_failures | open 100 Hz | 0 | ≤ 0 | PASS | +| nfb | newton_unrescued | open 100 Hz | 0 | — | INFO | +| nfb | newton_median_iterations | open 100 Hz | 1 | ≤ 3 | PASS | +| nfb | newton_max_iterations | open 100 Hz | 2 | ≤ 32 | PASS | +| nfb | nfb_gain_db | open 1000 Hz | 0.008418 dB | ≤ 0.5 | PASS | +| nfb | newton_failures | open 1000 Hz | 0 | ≤ 0 | PASS | +| nfb | newton_unrescued | open 1000 Hz | 0 | — | INFO | +| nfb | newton_median_iterations | open 1000 Hz | 1 | ≤ 3 | PASS | +| nfb | newton_max_iterations | open 1000 Hz | 2 | ≤ 32 | PASS | +| nfb | nfb_gain_db | open 5000 Hz | 0.06358 dB | ≤ 0.5 | PASS | +| nfb | newton_failures | open 5000 Hz | 0 | ≤ 0 | PASS | +| nfb | newton_unrescued | open 5000 Hz | 0 | — | INFO | +| nfb | newton_median_iterations | open 5000 Hz | 2 | ≤ 3 | PASS | +| nfb | newton_max_iterations | open 5000 Hz | 2 | ≤ 32 | PASS | +| clean | total_esr_db | CLEAN SIN-1000Hz-0.025V | -59.66 dB | ≤ -20 | PASS | +| clean | total_harmonics_2_9_db | CLEAN SIN-1000Hz-0.025V | 0.02005 dB | ≤ 1.5 | PASS | +| clean | newton_failures | CLEAN SIN-1000Hz-0.025V | 0 | ≤ 0 | PASS | +| clean | newton_unrescued | CLEAN SIN-1000Hz-0.025V | 0 | — | INFO | +| clean | newton_median_iterations | CLEAN SIN-1000Hz-0.025V | 2 | ≤ 3 | PASS | +| clean | newton_max_iterations | CLEAN SIN-1000Hz-0.025V | 5 | ≤ 32 | PASS | +| clean | total_power_rel | CLEAN SIN-1000Hz-0.025V | 0.001223 | ≤ 0.05 | PASS | +| clean | total_thd_pp | CLEAN SIN-1000Hz-0.025V | 0.0004268 pp | ≤ 0.5 | PASS | +| stability | stability_out_v | max |out| | 4.853e-05 V | ≤ 0.001 | PASS | +| stability | stability_growth | RMS last 10 s − first 10 s | 5.72e-12 V | ≤ 1e-06 | PASS | +| stability | newton_failures | 60 s silence | 0 | ≤ 0 | PASS | +| stability | newton_unrescued | 60 s silence | 0 | — | INFO | +| stability | newton_median_iterations | 60 s silence | 1 | ≤ 3 | PASS | +| stability | newton_max_iterations | 60 s silence | 1 | ≤ 32 | PASS | +| overdrive | total_esr_db | OVERDRIVE SIN-220Hz-0.3V | -67.51 dB | ≤ -20 | PASS | +| overdrive | total_harmonics_2_9_db | OVERDRIVE SIN-220Hz-0.3V | 0.009061 dB | ≤ 1.5 | PASS | +| overdrive | sag_min_v | OVERDRIVE SIN-220Hz-0.3V | 0.003903 V | ≤ 2 | PASS | +| overdrive | newton_failures | OVERDRIVE SIN-220Hz-0.3V | 0 | ≤ 0 | PASS | +| overdrive | newton_unrescued | OVERDRIVE SIN-220Hz-0.3V | 0 | — | INFO | +| overdrive | newton_median_iterations | OVERDRIVE SIN-220Hz-0.3V | 2 | ≤ 3 | PASS | +| overdrive | newton_max_iterations | OVERDRIVE SIN-220Hz-0.3V | 6 | ≤ 32 | PASS | +| crunch_drive | total_esr_db | CRUNCH SIN-220Hz-0.3V | -69.67 dB | ≤ -20 | PASS | +| crunch_drive | total_harmonics_2_9_db | CRUNCH SIN-220Hz-0.3V | 0.008084 dB | ≤ 1.5 | PASS | +| crunch_drive | newton_failures | CRUNCH SIN-220Hz-0.3V | 0 | ≤ 0 | PASS | +| crunch_drive | newton_unrescued | CRUNCH SIN-220Hz-0.3V | 0 | — | INFO | +| crunch_drive | newton_median_iterations | CRUNCH SIN-220Hz-0.3V | 1 | ≤ 3 | PASS | +| crunch_drive | newton_max_iterations | CRUNCH SIN-220Hz-0.3V | 5 | ≤ 32 | PASS | +| crunch_drive | total_esr_db | CRUNCH DI-GTR L | -59.59 dB | ≤ -20 | PASS | +| crunch_drive | newton_failures | CRUNCH DI-GTR L | 0 | ≤ 0 | PASS | +| crunch_drive | newton_unrescued | CRUNCH DI-GTR L | 0 | — | INFO | +| crunch_drive | newton_median_iterations | CRUNCH DI-GTR L | 2 | ≤ 3 | PASS | +| crunch_drive | newton_max_iterations | CRUNCH DI-GTR L | 8 | ≤ 32 | PASS | +| crunch_drive | total_esr_db | CRUNCH DI-GTR LL | -59.82 dB | ≤ -20 | PASS | +| crunch_drive | newton_failures | CRUNCH DI-GTR LL | 0 | ≤ 0 | PASS | +| crunch_drive | newton_unrescued | CRUNCH DI-GTR LL | 0 | — | INFO | +| crunch_drive | newton_median_iterations | CRUNCH DI-GTR LL | 2 | ≤ 3 | PASS | +| crunch_drive | newton_max_iterations | CRUNCH DI-GTR LL | 8 | ≤ 32 | PASS | +| crunch_drive | total_esr_db | CRUNCH DI-GTR R | -60.79 dB | ≤ -20 | PASS | +| crunch_drive | newton_failures | CRUNCH DI-GTR R | 0 | ≤ 0 | PASS | +| crunch_drive | newton_unrescued | CRUNCH DI-GTR R | 0 | — | INFO | +| crunch_drive | newton_median_iterations | CRUNCH DI-GTR R | 2 | ≤ 3 | PASS | +| crunch_drive | newton_max_iterations | CRUNCH DI-GTR R | 8 | ≤ 32 | PASS | +| crunch_drive | total_esr_db | CRUNCH DI-GTR RR | -59.38 dB | ≤ -20 | PASS | +| crunch_drive | newton_failures | CRUNCH DI-GTR RR | 0 | ≤ 0 | PASS | +| crunch_drive | newton_unrescued | CRUNCH DI-GTR RR | 0 | — | INFO | +| crunch_drive | newton_median_iterations | CRUNCH DI-GTR RR | 2 | ≤ 3 | PASS | +| crunch_drive | newton_max_iterations | CRUNCH DI-GTR RR | 11 | ≤ 32 | PASS | +| crunch_drive | total_esr_db | DRIVE SIN-220Hz-0.3V | -63.13 dB | ≤ -20 | PASS | +| crunch_drive | total_harmonics_2_9_db | DRIVE SIN-220Hz-0.3V | 0.03227 dB | ≤ 1.5 | PASS | +| crunch_drive | newton_failures | DRIVE SIN-220Hz-0.3V | 0 | ≤ 0 | PASS | +| crunch_drive | newton_unrescued | DRIVE SIN-220Hz-0.3V | 0 | — | INFO | +| crunch_drive | newton_median_iterations | DRIVE SIN-220Hz-0.3V | 2 | ≤ 3 | PASS | +| crunch_drive | newton_max_iterations | DRIVE SIN-220Hz-0.3V | 6 | ≤ 32 | PASS | +| crunch_drive | total_esr_db | DRIVE DI-GTR L | -59.39 dB | ≤ -20 | PASS | +| crunch_drive | newton_failures | DRIVE DI-GTR L | 0 | ≤ 0 | PASS | +| crunch_drive | newton_unrescued | DRIVE DI-GTR L | 0 | — | INFO | +| crunch_drive | newton_median_iterations | DRIVE DI-GTR L | 2 | ≤ 3 | PASS | +| crunch_drive | newton_max_iterations | DRIVE DI-GTR L | 9 | ≤ 32 | PASS | +| crunch_drive | total_esr_db | DRIVE DI-GTR LL | -60.32 dB | ≤ -20 | PASS | +| crunch_drive | newton_failures | DRIVE DI-GTR LL | 0 | ≤ 0 | PASS | +| crunch_drive | newton_unrescued | DRIVE DI-GTR LL | 0 | — | INFO | +| crunch_drive | newton_median_iterations | DRIVE DI-GTR LL | 2 | ≤ 3 | PASS | +| crunch_drive | newton_max_iterations | DRIVE DI-GTR LL | 10 | ≤ 32 | PASS | +| crunch_drive | total_esr_db | DRIVE DI-GTR R | -60.22 dB | ≤ -20 | PASS | +| crunch_drive | newton_failures | DRIVE DI-GTR R | 0 | ≤ 0 | PASS | +| crunch_drive | newton_unrescued | DRIVE DI-GTR R | 0 | — | INFO | +| crunch_drive | newton_median_iterations | DRIVE DI-GTR R | 2 | ≤ 3 | PASS | +| crunch_drive | newton_max_iterations | DRIVE DI-GTR R | 9 | ≤ 32 | PASS | +| crunch_drive | total_esr_db | DRIVE DI-GTR RR | -59.42 dB | ≤ -20 | PASS | +| crunch_drive | newton_failures | DRIVE DI-GTR RR | 0 | ≤ 0 | PASS | +| crunch_drive | newton_unrescued | DRIVE DI-GTR RR | 0 | — | INFO | +| crunch_drive | newton_median_iterations | DRIVE DI-GTR RR | 2 | ≤ 3 | PASS | +| crunch_drive | newton_max_iterations | DRIVE DI-GTR RR | 8 | ≤ 32 | PASS | + +## DC operating point + +| Node / current | SPICE | Engine | +|---|---|---| +| ct | 491.3466 V | 491.3468 V | +| nscr | 488.8805 V | 488.8807 V | +| bpx | 404.9982 V | 404.9997 V | +| bpa | 391.9215 V | 391.9237 V | +| nbias | -46.3636 V | -46.3636 V | +| p1a | 298.3260 V | 298.3319 V | +| k1a | 2.5271 V | 2.5270 V | +| p1b | 354.7502 V | 354.7562 V | +| k1b | 3.7171 V | 3.7167 V | +| p2a | 232.5771 V | 232.5822 V | +| k2a | 1.4139 V | 1.4138 V | +| k2b | 233.1404 V | 233.1454 V | +| p3a | 272.6113 V | 272.6156 V | +| p3b | 263.9512 V | 263.9557 V | +| k3 | 45.2502 V | 45.2492 V | +| nf | 43.8285 V | 43.8275 V | +| ng | 13.5790 V | 13.5787 V | +| ip_tube_a | 28.7718 mA | 28.7718 mA | +| ip_tube_b | 28.7715 mA | 28.7715 mA | +| is_tube_a | 3.2641 mA | 3.2641 mA | +| is_tube_b | 3.2643 mA | 3.2643 mA | + +## NFB (gain in → out, dB) + +| f | SPICE closed | engine closed | SPICE open | engine open | NFB SPICE | NFB engine | +|---|---|---|---|---|---|---| +| 100 Hz | 45.92 | 45.92 | 56.34 | 56.34 | 10.42 | 10.42 | +| 1000 Hz | 53.54 | 53.54 | 57.85 | 57.86 | 4.32 | 4.32 | +| 5000 Hz | 69.86 | 69.88 | 77.77 | 77.83 | 7.91 | 7.95 | + +## Signals + +| Preset | Signal | ESR | best lag | harm. 2–9 | THD F / E | Power F / E | min v(ct) F / E | +|---|---|---|---|---|---|---|---| +| CLEAN | SIN-1000Hz-0.025V | -59.7 dB | 0 | 0.02 dB | 7.37 / 7.37 % | 81.1 / 81.2 W | — | +| OVERDRIVE | SIN-220Hz-0.3V | -67.5 dB | 0 | 0.01 dB | 19.61 / 19.61 % | 32.2 / 32.2 W | 474.38 / 474.37 V | +| CRUNCH | SIN-220Hz-0.3V | -69.7 dB | 0 | 0.01 dB | 12.00 / 12.00 % | 31.6 / 31.6 W | — | +| CRUNCH | DI-GTR L | -59.6 dB | 0 | — | — | — | — | +| CRUNCH | DI-GTR LL | -59.8 dB | 0 | — | — | — | — | +| CRUNCH | DI-GTR R | -60.8 dB | 0 | — | — | — | — | +| CRUNCH | DI-GTR RR | -59.4 dB | 0 | — | — | — | — | +| DRIVE | SIN-220Hz-0.3V | -63.1 dB | 0 | 0.03 dB | 22.53 / 22.53 % | 34.5 / 34.5 W | — | +| DRIVE | DI-GTR L | -59.4 dB | 0 | — | — | — | — | +| DRIVE | DI-GTR LL | -60.3 dB | 0 | — | — | — | — | +| DRIVE | DI-GTR R | -60.2 dB | 0 | — | — | — | — | +| DRIVE | DI-GTR RR | -59.4 dB | 0 | — | — | — | — | + +## Stability + +60 s silence at Preamp / Master / Presence 1.0: max |out| 4.85e-05 V, RMS first / last 10 s 4.24e-05 / 4.24e-05 V. + +## Delayed-NFB break + +Not applicable: since D-041 the global NFB (R22) is part of the B56 tree and has no delay (SPEC §7 M4 asked for a 1- vs 2-sample comparison of the delayed design). diff --git a/harness/reports/M6/20261018_full_acceptance_fs384000_j4exact_hot.md b/harness/reports/M6/20261018_full_acceptance_fs384000_j4exact_hot.md new file mode 100644 index 0000000..69dc4fe --- /dev/null +++ b/harness/reports/M6/20261018_full_acceptance_fs384000_j4exact_hot.md @@ -0,0 +1,52 @@ +# M4 acceptance: full amplifier vs the full netlist + +- Date: 2026-10-18, engine commit `9a422dd (dirty)`, ngspice 47, fs = 384000 Hz, J4 exact, SPICE reltol 1e-08 +- Netlist sha256 `83f01b6fd8b64a06`, tubes.lib sha256 `c9c9c88346c69010` +- Engine: `ampwav --block full` (volts at the jack and across the 16 Ω load), the checks of SPEC §7 M4. + +## Summary + +PASS 20 · FAIL 1 + +| Section | Check | Item | Measured | Tolerance | Status | +|---|---|---|---|---|---| +| hot | total_esr_db | HOT SIN-220Hz-0.3V | -54.54 dB | ≤ -20 | PASS | +| hot | total_harmonics_2_9_db | HOT SIN-220Hz-0.3V | 0.008907 dB | ≤ 1.5 | PASS | +| hot | newton_failures | HOT SIN-220Hz-0.3V | 0 | ≤ 0 | PASS | +| hot | newton_unrescued | HOT SIN-220Hz-0.3V | 0 | — | INFO | +| hot | newton_median_iterations | HOT SIN-220Hz-0.3V | 2 | ≤ 3 | PASS | +| hot | newton_max_iterations | HOT SIN-220Hz-0.3V | 7 | ≤ 32 | PASS | +| hot | total_esr_db | HOT DI-GTR L | -40.32 dB | ≤ -20 | PASS | +| hot | newton_failures | HOT DI-GTR L | 0 | ≤ 0 | PASS | +| hot | newton_unrescued | HOT DI-GTR L | 0 | — | INFO | +| hot | newton_median_iterations | HOT DI-GTR L | 2 | ≤ 3 | PASS | +| hot | newton_max_iterations | HOT DI-GTR L | 12 | ≤ 32 | PASS | +| hot | total_esr_db | HOT DI-GTR LL | -40.87 dB | ≤ -20 | PASS | +| hot | newton_failures | HOT DI-GTR LL | 0 | ≤ 0 | PASS | +| hot | newton_unrescued | HOT DI-GTR LL | 0 | — | INFO | +| hot | newton_median_iterations | HOT DI-GTR LL | 2 | ≤ 3 | PASS | +| hot | newton_max_iterations | HOT DI-GTR LL | 19 | ≤ 32 | PASS | +| hot | total_esr_db | HOT DI-GTR R | -41.26 dB | ≤ -20 | PASS | +| hot | newton_failures | HOT DI-GTR R | 0 | ≤ 0 | PASS | +| hot | newton_unrescued | HOT DI-GTR R | 0 | — | INFO | +| hot | newton_median_iterations | HOT DI-GTR R | 2 | ≤ 3 | PASS | +| hot | newton_max_iterations | HOT DI-GTR R | 13 | ≤ 32 | PASS | +| hot | total_esr_db | HOT DI-GTR RR | -40.91 dB | ≤ -20 | PASS | +| hot | newton_failures | HOT DI-GTR RR | 2 | ≤ 0 | FAIL | +| hot | newton_unrescued | HOT DI-GTR RR | 0 | — | INFO | +| hot | newton_median_iterations | HOT DI-GTR RR | 2 | ≤ 3 | PASS | +| hot | newton_max_iterations | HOT DI-GTR RR | 32 | ≤ 32 | PASS | + +## Signals + +| Preset | Signal | ESR | best lag | harm. 2–9 | THD F / E | Power F / E | min v(ct) F / E | +|---|---|---|---|---|---|---|---| +| HOT | SIN-220Hz-0.3V | -54.5 dB | 0 | 0.01 dB | 37.87 / 37.87 % | 178.4 / 178.4 W | — | +| HOT | DI-GTR L | -40.3 dB | 0 | — | — | — | — | +| HOT | DI-GTR LL | -40.9 dB | 0 | — | — | — | — | +| HOT | DI-GTR R | -41.3 dB | 0 | — | — | — | — | +| HOT | DI-GTR RR | -40.9 dB | 0 | — | — | — | — | + +## Delayed-NFB break + +Not applicable: since D-041 the global NFB (R22) is part of the B56 tree and has no delay (SPEC §7 M4 asked for a 1- vs 2-sample comparison of the delayed design). diff --git a/harness/reports/M6/20261018_plugin_cpu.md b/harness/reports/M6/20261018_plugin_cpu.md new file mode 100644 index 0000000..ddff5ee --- /dev/null +++ b/harness/reports/M6/20261018_plugin_cpu.md @@ -0,0 +1,39 @@ +# M6 plugin CPU under knob automation + +- Date 2026-10-18, commit `9a422dd (dirty)`; `amp2203_render plugin` at the plugin defaults (2x, Power Amp Rate Full, exact J4, Newton tol 1e-4 V, half-steps on; D-054 – D-056, D-060), FIR oversampling, 20 s of DI GTR L at 48000 Hz; processBlock time only. +- Automation between host blocks: lfo = 10 Hz triangle 0 → 10 → 0, jump = 0 ↔ 10 every 50 ms; "all" moves the six knobs together. One render at a time. + +| Base | Knob(s) | Modulation | Host block | CPU (% of one core) | Newton failures (rescued) | +|---|---|---|---|---|---| +| default | — | static | 512 | 27.4 | 0 (0) | +| every knob 10 | — | static | 512 | 50.8 | 32 (32) | +| default | preampVolume | lfo | 512 | 26.3 | 0 (0) | +| default | preampVolume | jump | 512 | 25.9 | 0 (0) | +| default | treble | lfo | 512 | 27.6 | 0 (0) | +| default | treble | jump | 512 | 27.7 | 0 (0) | +| default | middle | lfo | 512 | 27.4 | 0 (0) | +| default | middle | jump | 512 | 27.4 | 0 (0) | +| default | bass | lfo | 512 | 27.3 | 0 (0) | +| default | bass | jump | 512 | 27.3 | 0 (0) | +| default | master | lfo | 512 | 31.6 | 2 (2) | +| default | master | jump | 512 | 31.9 | 2 (2) | +| default | presence | lfo | 512 | 28.8 | 0 (0) | +| default | presence | jump | 512 | 28.7 | 0 (0) | +| default | all | lfo | 512 | 32.5 | 4 (4) | +| default | all | jump | 512 | 34.7 | 4 (4) | +| every knob 10 | preampVolume | lfo | 512 | 43.7 | 18 (18) | +| every knob 10 | preampVolume | jump | 512 | 43.6 | 19 (19) | +| every knob 10 | treble | lfo | 512 | 48.6 | 27 (27) | +| every knob 10 | treble | jump | 512 | 47.8 | 32 (32) | +| every knob 10 | middle | lfo | 512 | 48.6 | 31 (31) | +| every knob 10 | middle | jump | 512 | 48.9 | 23 (23) | +| every knob 10 | bass | lfo | 512 | 52.8 | 32 (32) | +| every knob 10 | bass | jump | 512 | 52.2 | 31 (31) | +| every knob 10 | master | lfo | 512 | 38.2 | 6 (6) | +| every knob 10 | master | jump | 512 | 38.5 | 5 (5) | +| every knob 10 | presence | lfo | 512 | 47.3 | 34 (34) | +| every knob 10 | presence | jump | 512 | 47.8 | 26 (26) | +| every knob 10 | all | lfo | 512 | 33.2 | 3 (3) | +| every knob 10 | all | jump | 512 | 34.7 | 1 (1) | +| default | all | jump | 64 | 34.3 | 5 (5) | +| every knob 10 | all | jump | 64 | 34.7 | 4 (4) | diff --git a/harness/reports/M6/20261018_plugin_null_2x_full.md b/harness/reports/M6/20261018_plugin_null_2x_full.md new file mode 100644 index 0000000..01fc0d2 --- /dev/null +++ b/harness/reports/M6/20261018_plugin_null_2x_full.md @@ -0,0 +1,62 @@ +# M5 wrapper null test: plugin vs ampwav at 96 kHz with the same resampling + +- Date: 2026-10-18, commit `9a422dd (dirty)`; host rate 48000 Hz, 2x, Power Amp Rate full, exact J4 +- Plugin: `amp2203_render plugin` (the Amp2203Processor offline). Reference: the processor's oversampler up stage, `ampwav --block full --units fs --j4 exact` at 96000 Hz, the down stage. Default knobs and levels. +- Tolerance (SPEC §7 M5): ESR ≤ -60 dB. + +PASS 26 · FAIL 0 + +| Filter | Signal | Peak out [FS] | ESR | Status | Render log | +|---|---|---|---|---|---| +| fir | SIN-100Hz--40dBFS | 0.145 | -138.5 dB | PASS | processBlock 0.043 s for 0.200 s of audio: 21.5 % of one core, real-time factor 4.64 +latency 49 samples, Newton failures 0 (rescued 0), max iterations 3 | +| fir | SIN-100Hz--20dBFS | 0.869 | -138.5 dB | PASS | processBlock 0.049 s for 0.200 s of audio: 24.6 % of one core, real-time factor 4.06 +latency 49 samples, Newton failures 0 (rescued 0), max iterations 4 | +| fir | SIN-100Hz--6dBFS | 0.915 | -138.5 dB | PASS | processBlock 0.049 s for 0.200 s of audio: 24.5 % of one core, real-time factor 4.08 +latency 49 samples, Newton failures 0 (rescued 0), max iterations 9 | +| fir | SIN-1000Hz--40dBFS | 0.374 | -138.5 dB | PASS | processBlock 0.072 s for 0.200 s of audio: 35.9 % of one core, real-time factor 2.78 +latency 49 samples, Newton failures 0 (rescued 0), max iterations 6 | +| fir | SIN-1000Hz--20dBFS | 0.828 | -138.5 dB | PASS | processBlock 0.071 s for 0.200 s of audio: 35.4 % of one core, real-time factor 2.83 +latency 49 samples, Newton failures 0 (rescued 0), max iterations 9 | +| fir | SIN-1000Hz--6dBFS | 0.972 | -138.5 dB | PASS | processBlock 0.076 s for 0.200 s of audio: 38.2 % of one core, real-time factor 2.62 +latency 49 samples, Newton failures 0 (rescued 0), max iterations 12 | +| fir | SIN-5000Hz--40dBFS | 0.864 | -138.5 dB | PASS | processBlock 0.090 s for 0.200 s of audio: 44.9 % of one core, real-time factor 2.22 +latency 49 samples, Newton failures 0 (rescued 0), max iterations 19 | +| fir | SIN-5000Hz--20dBFS | 0.889 | -138.5 dB | PASS | processBlock 0.102 s for 0.200 s of audio: 50.9 % of one core, real-time factor 1.96 +latency 49 samples, Newton failures 0 (rescued 0), max iterations 19 | +| fir | SIN-5000Hz--6dBFS | 0.930 | -138.5 dB | PASS | processBlock 0.235 s for 0.200 s of audio: 117.3 % of one core, real-time factor 0.85 +latency 49 samples, Newton failures 1009 (rescued 68), max iterations 32 | +| fir | DI-GTR L | 0.977 | -138.5 dB | PASS | processBlock 1.242 s for 5.000 s of audio: 24.8 % of one core, real-time factor 4.03 +latency 49 samples, Newton failures 0 (rescued 0), max iterations 19 | +| fir | DI-GTR LL | 0.857 | -138.5 dB | PASS | processBlock 1.202 s for 5.000 s of audio: 24.0 % of one core, real-time factor 4.16 +latency 49 samples, Newton failures 0 (rescued 0), max iterations 17 | +| fir | DI-GTR R | 0.945 | -138.5 dB | PASS | processBlock 1.215 s for 5.000 s of audio: 24.3 % of one core, real-time factor 4.12 +latency 49 samples, Newton failures 0 (rescued 0), max iterations 20 | +| fir | DI-GTR RR | 0.979 | -138.5 dB | PASS | processBlock 1.252 s for 5.000 s of audio: 25.0 % of one core, real-time factor 3.99 +latency 49 samples, Newton failures 0 (rescued 0), max iterations 17 | +| iir | SIN-100Hz--40dBFS | 0.145 | -138.5 dB | PASS | processBlock 0.041 s for 0.200 s of audio: 20.7 % of one core, real-time factor 4.82 +latency 4 samples, Newton failures 0 (rescued 0), max iterations 2 | +| iir | SIN-100Hz--20dBFS | 0.870 | -138.5 dB | PASS | processBlock 0.044 s for 0.200 s of audio: 22.2 % of one core, real-time factor 4.51 +latency 4 samples, Newton failures 0 (rescued 0), max iterations 6 | +| iir | SIN-100Hz--6dBFS | 0.915 | -138.5 dB | PASS | processBlock 0.046 s for 0.200 s of audio: 22.8 % of one core, real-time factor 4.39 +latency 4 samples, Newton failures 0 (rescued 0), max iterations 6 | +| iir | SIN-1000Hz--40dBFS | 0.414 | -138.5 dB | PASS | processBlock 0.067 s for 0.200 s of audio: 33.4 % of one core, real-time factor 3.00 +latency 4 samples, Newton failures 0 (rescued 0), max iterations 7 | +| iir | SIN-1000Hz--20dBFS | 0.928 | -138.5 dB | PASS | processBlock 0.071 s for 0.200 s of audio: 35.3 % of one core, real-time factor 2.84 +latency 4 samples, Newton failures 0 (rescued 0), max iterations 9 | +| iir | SIN-1000Hz--6dBFS | 1.044 | -138.5 dB | PASS | processBlock 0.075 s for 0.200 s of audio: 37.4 % of one core, real-time factor 2.67 +latency 4 samples, Newton failures 0 (rescued 0), max iterations 22 | +| iir | SIN-5000Hz--40dBFS | 0.982 | -138.5 dB | PASS | processBlock 0.090 s for 0.200 s of audio: 44.9 % of one core, real-time factor 2.23 +latency 4 samples, Newton failures 0 (rescued 0), max iterations 16 | +| iir | SIN-5000Hz--20dBFS | 1.015 | -138.5 dB | PASS | processBlock 0.101 s for 0.200 s of audio: 50.6 % of one core, real-time factor 1.98 +latency 4 samples, Newton failures 0 (rescued 0), max iterations 22 | +| iir | SIN-5000Hz--6dBFS | 1.020 | -138.5 dB | PASS | processBlock 0.139 s for 0.200 s of audio: 69.3 % of one core, real-time factor 1.44 +latency 4 samples, Newton failures 268 (rescued 184), max iterations 32 | +| iir | DI-GTR L | 0.985 | -138.5 dB | PASS | processBlock 1.250 s for 5.000 s of audio: 25.0 % of one core, real-time factor 4.00 +latency 4 samples, Newton failures 0 (rescued 0), max iterations 18 | +| iir | DI-GTR LL | 0.985 | -138.5 dB | PASS | processBlock 1.217 s for 5.000 s of audio: 24.3 % of one core, real-time factor 4.11 +latency 4 samples, Newton failures 0 (rescued 0), max iterations 22 | +| iir | DI-GTR R | 1.027 | -138.5 dB | PASS | processBlock 1.216 s for 5.000 s of audio: 24.3 % of one core, real-time factor 4.11 +latency 4 samples, Newton failures 0 (rescued 0), max iterations 18 | +| iir | DI-GTR RR | 1.036 | -138.5 dB | PASS | processBlock 1.250 s for 5.000 s of audio: 25.0 % of one core, real-time factor 4.00 +latency 4 samples, Newton failures 0 (rescued 0), max iterations 21 | diff --git a/harness/reports/M6/20261018_pluginval_au.log b/harness/reports/M6/20261018_pluginval_au.log new file mode 100644 index 0000000..277776b --- /dev/null +++ b/harness/reports/M6/20261018_pluginval_au.log @@ -0,0 +1,119 @@ +Started validating: /Users/kimmo/Library/Audio/Plug-Ins/Components/Amp2203.component +Random seed: 0xe186bf +Validation started +Strictness level: 5 +----------------------------------------------------------------- +Starting tests in: pluginval / Scan for plugins located in: /Users/kimmo/Library/Audio/Plug-Ins/Components/Amp2203.component... +Num plugins found: 1 + +Testing plugin: AudioUnit-Amp2203-f5dabfd3-6333372f +CatastrophicCoder: Amp2203 v0.0.1 +Completed tests in pluginval / Scan for plugins located in: /Users/kimmo/Library/Audio/Plug-Ins/Components/Amp2203.component +----------------------------------------------------------------- +Starting tests in: pluginval / Open plugin (cold)... +Completed tests in pluginval / Open plugin (cold) +----------------------------------------------------------------- +Starting tests in: pluginval / Open plugin (warm)... +Running tests 1 times +Completed tests in pluginval / Open plugin (warm) +----------------------------------------------------------------- +Starting tests in: pluginval / Plugin info... + +Plugin name: Amp2203 +Alternative names: Amp2203 +SupportsDoublePrecision: no +Reported latency: 0 +Reported taillength: 0 +Completed tests in pluginval / Plugin info +----------------------------------------------------------------- +Starting tests in: pluginval / Plugin programs... +Num programs: 1 +All program names checked + +Changing program +!!! WARNING: Current program is -1... Is this correct? +Completed tests in pluginval / Plugin programs +----------------------------------------------------------------- +Starting tests in: pluginval / Editor... +Completed tests in pluginval / Editor +----------------------------------------------------------------- +Starting tests in: pluginval / Open editor whilst processing... +Completed tests in pluginval / Open editor whilst processing +----------------------------------------------------------------- +Starting tests in: pluginval / Audio processing... +Testing with sample rate [44100] and block size [64] +Testing with sample rate [44100] and block size [128] +Testing with sample rate [44100] and block size [256] +Testing with sample rate [44100] and block size [512] +Testing with sample rate [44100] and block size [1024] +Testing with sample rate [48000] and block size [64] +Testing with sample rate [48000] and block size [128] +Testing with sample rate [48000] and block size [256] +Testing with sample rate [48000] and block size [512] +Testing with sample rate [48000] and block size [1024] +Testing with sample rate [96000] and block size [64] +Testing with sample rate [96000] and block size [128] +Testing with sample rate [96000] and block size [256] +Testing with sample rate [96000] and block size [512] +Testing with sample rate [96000] and block size [1024] +Completed tests in pluginval / Audio processing +----------------------------------------------------------------- +Starting tests in: pluginval / Plugin state... +Completed tests in pluginval / Plugin state +----------------------------------------------------------------- +Starting tests in: pluginval / Automation... +Testing with sample rate [44100] and block size [64] and sub-block size [32] +Testing with sample rate [44100] and block size [128] and sub-block size [32] +Testing with sample rate [44100] and block size [256] and sub-block size [32] +Testing with sample rate [44100] and block size [512] and sub-block size [32] +Testing with sample rate [44100] and block size [1024] and sub-block size [32] +Testing with sample rate [48000] and block size [64] and sub-block size [32] +Testing with sample rate [48000] and block size [128] and sub-block size [32] +Testing with sample rate [48000] and block size [256] and sub-block size [32] +Testing with sample rate [48000] and block size [512] and sub-block size [32] +Testing with sample rate [48000] and block size [1024] and sub-block size [32] +Testing with sample rate [96000] and block size [64] and sub-block size [32] +Testing with sample rate [96000] and block size [128] and sub-block size [32] +Testing with sample rate [96000] and block size [256] and sub-block size [32] +Testing with sample rate [96000] and block size [512] and sub-block size [32] +Testing with sample rate [96000] and block size [1024] and sub-block size [32] +Completed tests in pluginval / Automation +----------------------------------------------------------------- +Starting tests in: pluginval / Editor Automation... +Completed tests in pluginval / Editor Automation +----------------------------------------------------------------- +Starting tests in: pluginval / Automatable Parameters... +Completed tests in pluginval / Automatable Parameters +----------------------------------------------------------------- +Starting tests in: pluginval / auval... +auval exited with code: 0 +Completed tests in pluginval / auval +----------------------------------------------------------------- +Starting tests in: pluginval / vst3 validator... +Completed tests in pluginval / vst3 validator +----------------------------------------------------------------- +Starting tests in: pluginval / Basic bus... +Completed tests in pluginval / Basic bus +----------------------------------------------------------------- +Starting tests in: pluginval / Listing available buses... +Inputs: + Named layouts: Mono, Stereo + Discrete layouts: None +Outputs: + Named layouts: Mono, Stereo + Discrete layouts: None +Main bus num input channels: 2 +Main bus num output channels: 2 +Completed tests in pluginval / Listing available buses +----------------------------------------------------------------- +Starting tests in: pluginval / Enabling all buses... +Completed tests in pluginval / Enabling all buses +----------------------------------------------------------------- +Starting tests in: pluginval / Disabling non-main busses... +Completed tests in pluginval / Disabling non-main busses +----------------------------------------------------------------- +Starting tests in: pluginval / Restoring default layout... +Main bus num input channels: 2 +Main bus num output channels: 2 +Completed tests in pluginval / Restoring default layout +SUCCESS diff --git a/harness/reports/M6/20261018_pluginval_vst3.log b/harness/reports/M6/20261018_pluginval_vst3.log new file mode 100644 index 0000000..7f785b4 --- /dev/null +++ b/harness/reports/M6/20261018_pluginval_vst3.log @@ -0,0 +1,116 @@ +Started validating: /Users/kimmo/Library/Audio/Plug-Ins/VST3/Amp2203.vst3 +Random seed: 0x39def85 +Validation started +Strictness level: 5 +----------------------------------------------------------------- +Starting tests in: pluginval / Scan for plugins located in: /Users/kimmo/Library/Audio/Plug-Ins/VST3/Amp2203.vst3... +Num plugins found: 1 + +Testing plugin: VST3-Amp2203-81e3417-bab24cd9 +CatastrophicCoder: Amp2203 v0.0.1 +Completed tests in pluginval / Scan for plugins located in: /Users/kimmo/Library/Audio/Plug-Ins/VST3/Amp2203.vst3 +----------------------------------------------------------------- +Starting tests in: pluginval / Open plugin (cold)... +Completed tests in pluginval / Open plugin (cold) +----------------------------------------------------------------- +Starting tests in: pluginval / Open plugin (warm)... +Running tests 1 times +Completed tests in pluginval / Open plugin (warm) +----------------------------------------------------------------- +Starting tests in: pluginval / Plugin info... + +Plugin name: Amp2203 +Alternative names: Amp2203 +SupportsDoublePrecision: yes +Reported latency: 0 +Reported taillength: 0 +Completed tests in pluginval / Plugin info +----------------------------------------------------------------- +Starting tests in: pluginval / Plugin programs... +Num programs: 0 +All program names checked +Completed tests in pluginval / Plugin programs +----------------------------------------------------------------- +Starting tests in: pluginval / Editor... +Completed tests in pluginval / Editor +----------------------------------------------------------------- +Starting tests in: pluginval / Open editor whilst processing... +Completed tests in pluginval / Open editor whilst processing +----------------------------------------------------------------- +Starting tests in: pluginval / Audio processing... +Testing with sample rate [44100] and block size [64] +Testing with sample rate [44100] and block size [128] +Testing with sample rate [44100] and block size [256] +Testing with sample rate [44100] and block size [512] +Testing with sample rate [44100] and block size [1024] +Testing with sample rate [48000] and block size [64] +Testing with sample rate [48000] and block size [128] +Testing with sample rate [48000] and block size [256] +Testing with sample rate [48000] and block size [512] +Testing with sample rate [48000] and block size [1024] +Testing with sample rate [96000] and block size [64] +Testing with sample rate [96000] and block size [128] +Testing with sample rate [96000] and block size [256] +Testing with sample rate [96000] and block size [512] +Testing with sample rate [96000] and block size [1024] +Completed tests in pluginval / Audio processing +----------------------------------------------------------------- +Starting tests in: pluginval / Plugin state... +Completed tests in pluginval / Plugin state +----------------------------------------------------------------- +Starting tests in: pluginval / Automation... +Testing with sample rate [44100] and block size [64] and sub-block size [32] +Testing with sample rate [44100] and block size [128] and sub-block size [32] +Testing with sample rate [44100] and block size [256] and sub-block size [32] +Testing with sample rate [44100] and block size [512] and sub-block size [32] +Testing with sample rate [44100] and block size [1024] and sub-block size [32] +Testing with sample rate [48000] and block size [64] and sub-block size [32] +Testing with sample rate [48000] and block size [128] and sub-block size [32] +Testing with sample rate [48000] and block size [256] and sub-block size [32] +Testing with sample rate [48000] and block size [512] and sub-block size [32] +Testing with sample rate [48000] and block size [1024] and sub-block size [32] +Testing with sample rate [96000] and block size [64] and sub-block size [32] +Testing with sample rate [96000] and block size [128] and sub-block size [32] +Testing with sample rate [96000] and block size [256] and sub-block size [32] +Testing with sample rate [96000] and block size [512] and sub-block size [32] +Testing with sample rate [96000] and block size [1024] and sub-block size [32] +Completed tests in pluginval / Automation +----------------------------------------------------------------- +Starting tests in: pluginval / Editor Automation... +Completed tests in pluginval / Editor Automation +----------------------------------------------------------------- +Starting tests in: pluginval / Automatable Parameters... +Completed tests in pluginval / Automatable Parameters +----------------------------------------------------------------- +Starting tests in: pluginval / auval... +Completed tests in pluginval / auval +----------------------------------------------------------------- +Starting tests in: pluginval / vst3 validator... +INFO: Skipping vst3 validator as validator path hasn't been set +Completed tests in pluginval / vst3 validator +----------------------------------------------------------------- +Starting tests in: pluginval / Basic bus... +Completed tests in pluginval / Basic bus +----------------------------------------------------------------- +Starting tests in: pluginval / Listing available buses... +Inputs: + Named layouts: Mono, Stereo + Discrete layouts: Discrete #1 +Outputs: + Named layouts: Mono, Stereo + Discrete layouts: Discrete #1 +Main bus num input channels: 2 +Main bus num output channels: 2 +Completed tests in pluginval / Listing available buses +----------------------------------------------------------------- +Starting tests in: pluginval / Enabling all buses... +Completed tests in pluginval / Enabling all buses +----------------------------------------------------------------- +Starting tests in: pluginval / Disabling non-main busses... +Completed tests in pluginval / Disabling non-main busses +----------------------------------------------------------------- +Starting tests in: pluginval / Restoring default layout... +Main bus num input channels: 2 +Main bus num output channels: 2 +Completed tests in pluginval / Restoring default layout +SUCCESS diff --git a/harness/reports/M6/20261018_x2_rates_d061_full2x.md b/harness/reports/M6/20261018_x2_rates_d061_full2x.md new file mode 100644 index 0000000..ec351f4 --- /dev/null +++ b/harness/reports/M6/20261018_x2_rates_d061_full2x.md @@ -0,0 +1,48 @@ +# M6 A1: full engine (exact J4) at lower internal rates, plugin model check + +- Date 2026-10-18; options: tol 0.0001; rates 48 kHz × [2]. +- Plugin model check (D-051): ESR ≤ -20 dB vs SPICE (cached 384000 Hz references, 48 kHz band, first 5 s of every DI track, first 0.1 s excluded). Unseen settings: the 16 X4 validation settings, 10 s, vs the engine at 16x (first 1 s excluded). Cost: ampwav --stats on 10 s of DI GTR L, one run at a time; oversampling filters not included. + +## Summary + +| Rate | vs SPICE worst (CRUNCH / DRIVE / HOT) | Check | Unseen settings vs 16x (worst / median) | Newton failures (not rescued) / runs, max iterations | Cost default / HOT (% of one core) | +|---|---|---|---|---|---| +| 2x (96 kHz) | -44.8 / -48.3 / -24.2 dB | PASS | -20.8 / -39.0 dB | 94 (2) / 28, 32 | 27.4 / 42.4 | + +## vs SPICE per clip + +| Clip | 2x | +|---|---| +| CRUNCH GTR L | -45.6 dB | +| CRUNCH GTR LL | -44.8 dB | +| CRUNCH GTR R | -45.9 dB | +| CRUNCH GTR RR | -45.4 dB | +| DRIVE GTR L | -48.3 dB | +| DRIVE GTR LL | -49.4 dB | +| DRIVE GTR R | -49.4 dB | +| DRIVE GTR RR | -48.9 dB | +| HOT GTR L | -24.2 dB | +| HOT GTR LL | -25.3 dB | +| HOT GTR R | -25.4 dB | +| HOT GTR RR | -24.3 dB | + +## Aliasing (power outside the harmonics of f0, relative to the total; 16x for reference) + +Each cell: non-harmonic power, then Newton failures (not rescued) in that 2 s run. Non-converged samples add non-harmonic power, so a cell with many failures measures solver error as well as aliasing. + +| Preset | f0 | amplitude (FS) | 16x | 2x | +|---|---|---|---|---| +| CRUNCH | 5000 Hz | 0.1 | -25.0 dB, 0 (0) | -19.9 dB, 0 (0) | +| CRUNCH | 5000 Hz | 0.4 | -24.7 dB, 0 (0) | -17.9 dB, 1926 (1925) | +| CRUNCH | 9000 Hz | 0.1 | -39.4 dB, 0 (0) | -15.3 dB, 0 (0) | +| CRUNCH | 9000 Hz | 0.4 | -38.5 dB, 0 (0) | -7.1 dB, 31091 (29063) | +| HOT | 5000 Hz | 0.1 | -24.9 dB, 0 (0) | -16.2 dB, 274 (0) | +| HOT | 5000 Hz | 0.4 | -25.3 dB, 1 (0) | -15.7 dB, 1136 (751) | +| HOT | 9000 Hz | 0.1 | -37.4 dB, 24 (0) | -14.5 dB, 273 (0) | +| HOT | 9000 Hz | 0.4 | -34.6 dB, 14 (0) | -6.6 dB, 25692 (22211) | + +## Cost + +| Rate | ns per engine sample (default / HOT) | % of one core at 48 kHz | +|---|---|---| +| 2x | 2857 / 4419 | 27.4 / 42.4 | diff --git a/harness/reports/M6/20261018_x2_rates_d061_half2x.md b/harness/reports/M6/20261018_x2_rates_d061_half2x.md new file mode 100644 index 0000000..196b76a --- /dev/null +++ b/harness/reports/M6/20261018_x2_rates_d061_half2x.md @@ -0,0 +1,48 @@ +# M6 A1: full engine (exact J4) at lower internal rates, plugin model check + +- Date 2026-10-18; options: divisor 2, tol 0.0001; rates 48 kHz × [2]. +- Plugin model check (D-051): ESR ≤ -20 dB vs SPICE (cached 384000 Hz references, 48 kHz band, first 5 s of every DI track, first 0.1 s excluded). Unseen settings: the 16 X4 validation settings, 10 s, vs the engine at 16x (first 1 s excluded). Cost: ampwav --stats on 10 s of DI GTR L, one run at a time; oversampling filters not included. + +## Summary + +| Rate | vs SPICE worst (CRUNCH / DRIVE / HOT) | Check | Unseen settings vs 16x (worst / median) | Newton failures (not rescued) / runs, max iterations | Cost default / HOT (% of one core) | +|---|---|---|---|---|---| +| 2x (96 kHz) | -37.5 / -37.3 / -18.9 dB | FAIL | -16.7 / -28.0 dB | 12 (1) / 28, 32 | 19.5 / 29.1 | + +## vs SPICE per clip + +| Clip | 2x | +|---|---| +| CRUNCH GTR L | -37.9 dB | +| CRUNCH GTR LL | -37.5 dB | +| CRUNCH GTR R | -38.8 dB | +| CRUNCH GTR RR | -37.9 dB | +| DRIVE GTR L | -37.3 dB | +| DRIVE GTR LL | -38.4 dB | +| DRIVE GTR R | -38.5 dB | +| DRIVE GTR RR | -37.5 dB | +| HOT GTR L | -19.1 dB | +| HOT GTR LL | -19.7 dB | +| HOT GTR R | -20.0 dB | +| HOT GTR RR | -18.9 dB | + +## Aliasing (power outside the harmonics of f0, relative to the total; 16x for reference) + +Each cell: non-harmonic power, then Newton failures (not rescued) in that 2 s run. Non-converged samples add non-harmonic power, so a cell with many failures measures solver error as well as aliasing. + +| Preset | f0 | amplitude (FS) | 16x | 2x | +|---|---|---|---|---| +| CRUNCH | 5000 Hz | 0.1 | -25.0 dB, 0 (0) | -14.0 dB, 0 (0) | +| CRUNCH | 5000 Hz | 0.4 | -24.7 dB, 0 (0) | -11.5 dB, 1928 (1927) | +| CRUNCH | 9000 Hz | 0.1 | -39.4 dB, 0 (0) | -8.6 dB, 0 (0) | +| CRUNCH | 9000 Hz | 0.4 | -38.5 dB, 0 (0) | -5.6 dB, 27696 (25460) | +| HOT | 5000 Hz | 0.1 | -24.9 dB, 0 (0) | -10.2 dB, 0 (0) | +| HOT | 5000 Hz | 0.4 | -25.3 dB, 1 (0) | -9.8 dB, 764 (762) | +| HOT | 9000 Hz | 0.1 | -37.4 dB, 24 (0) | -8.6 dB, 0 (0) | +| HOT | 9000 Hz | 0.4 | -34.6 dB, 14 (0) | -6.8 dB, 17869 (14696) | + +## Cost + +| Rate | ns per engine sample (default / HOT) | % of one core at 48 kHz | +|---|---|---| +| 2x | 2032 / 3034 | 19.5 / 29.1 | diff --git a/harness/tests/test_device_sweeps.py b/harness/tests/test_device_sweeps.py index 9d22081..93ecead 100644 --- a/harness/tests/test_device_sweeps.py +++ b/harness/tests/test_device_sweeps.py @@ -35,8 +35,9 @@ def triode(vgk, vpk, mu=100, ex=1.4, kg1=1060, kp=600, kvb=300): def pentode(vsk, vgk, vpk, mu=14.77, ex=1.046, kg1=194.3, kg2=2243, kp=53.82, kvb=40.43): # tubes.lib EL34 (D-058) vs = np.maximum(vsk, 1e-3) f = 2 * np.maximum(vs * softplus(kp * (1 / mu + vgk / vs)) / kp, 0) ** ex - ip = f / kg1 * np.arctan(vpk / kvb) - is_ = f * (1 / kg2 + (1.5707963 - np.arctan(np.maximum(vpk, 0) / kvb)) / kg1) # tubes.lib's π/2 + p = np.maximum(vpk, 0) + 5 * np.log1p(np.exp(-np.abs(vpk) / 5)) # 5 V softplus of the plate voltage (D-061) + ip = f / kg1 * np.arctan(p / kvb) + is_ = f * (1 / kg2 + (1.5707963 - np.arctan(p / kvb)) / kg1) # tubes.lib's π/2 return ip, is_, grid_current(vgk, 1001.0) diff --git a/reference/README.md b/reference/README.md index 3ec2d02..78e04ee 100644 --- a/reference/README.md +++ b/reference/README.md @@ -61,4 +61,5 @@ No rectifier/ripple or mains-transformer dynamics, no OT core saturation or hyst representative (not measured) speaker impedance with no cone breakup or acoustic output (the cab IR follows the speaker voltage). The Koren pentode screen equation gives ~0 screen current at this bias, so `tubes.lib` computes screen current from the same E1 term as the plate current, plus diversion -of plate current to the screen when the plate swings low. +of plate current to the screen when the plate swings low. The plate voltage enters the plate and screen equations through a 5 V softplus (D-061): no +plate current below the cathode, smooth through 0 V. diff --git a/reference/spice/tubes.lib b/reference/spice/tubes.lib index 36d5854..590451e 100644 --- a/reference/spice/tubes.lib +++ b/reference/spice/tubes.lib @@ -18,10 +18,11 @@ Dg gx k DGRID .subckt EL34 p s g k params: mu=14.77 ex=1.046 kg1=194.3 kg2=2243 kp=53.82 kvb=40.43 rgi=1000 ccg=15p cpg=1p ccp=8p Be1 e1 0 V = max(V(s,k),1m)/kp*ln(1+exp(kp*(1/mu+V(g,k)/max(V(s,k),1m)))) Re1 e1 0 1G -Bp p k I = 2*pwr(max(V(e1),0),ex)/kg1*atan(V(p,k)/kvb) +* Plate voltage through a 5 V softplus (D-061): no plate current below the cathode, smooth at 0 V +Bp p k I = 2*pwr(max(V(e1),0),ex)/kg1*atan((max(V(p,k),0)+5*ln(1+exp(-abs(V(p,k))/5)))/kvb) * Screen: same E1 term as plate (Koren form gives ~0 near bias), plus cathode-current * conservation: plate current lost to the atan knee is diverted to the screen (modification) -Bs s k I = 2*pwr(max(V(e1),0),ex)*(1/kg2 + (1.5707963-atan(max(V(p,k),0)/kvb))/kg1) +Bs s k I = 2*pwr(max(V(e1),0),ex)*(1/kg2 + (1.5707963-atan((max(V(p,k),0)+5*ln(1+exp(-abs(V(p,k))/5)))/kvb))/kg1) Rcp p k 1G Cg g k {ccg} Cgp g p {cpg} diff --git a/tests/data/12ax7_grid.csv b/tests/data/12ax7_grid.csv index e89e997..39d7c52 100644 --- a/tests/data/12ax7_grid.csv +++ b/tests/data/12ax7_grid.csv @@ -1,6 +1,6 @@ # 12AX7 grid current at Vpk = 200 V # GENERATED by harness/device_sweeps.py (VERIFICATION §5.1), do not edit -# source: reference/spice/tubes.lib (sha256 5767afe208240bfa), ngspice 47 +# source: reference/spice/tubes.lib (sha256 c9c9c88346c69010), ngspice 47 # ip = device plate current without the 1 GOhm Rcp (engine model); ip_terminal = SPICE terminal # currents in A into plate / screen / grid; voltages in V vs cathode vgk,vpk,ip,ig,ip_terminal diff --git a/tests/data/12ax7_plate.csv b/tests/data/12ax7_plate.csv index 675ff46..15e5c8d 100644 --- a/tests/data/12ax7_plate.csv +++ b/tests/data/12ax7_plate.csv @@ -1,6 +1,6 @@ # 12AX7 plate curves: Vpk 0–400 V (5 V) for each Vgk # GENERATED by harness/device_sweeps.py (VERIFICATION §5.1), do not edit -# source: reference/spice/tubes.lib (sha256 5767afe208240bfa), ngspice 47 +# source: reference/spice/tubes.lib (sha256 c9c9c88346c69010), ngspice 47 # ip = device plate current without the 1 GOhm Rcp (engine model); ip_terminal = SPICE terminal # currents in A into plate / screen / grid; voltages in V vs cathode vgk,vpk,ip,ig,ip_terminal diff --git a/tests/data/el34_grid.csv b/tests/data/el34_grid.csv index cd5c1a9..3519e8c 100644 --- a/tests/data/el34_grid.csv +++ b/tests/data/el34_grid.csv @@ -1,6 +1,6 @@ # EL34 grid current at Vpk = Vsk = 400 V # GENERATED by harness/device_sweeps.py (VERIFICATION §5.1), do not edit -# source: reference/spice/tubes.lib (sha256 5767afe208240bfa), ngspice 47 +# source: reference/spice/tubes.lib (sha256 c9c9c88346c69010), ngspice 47 # ip = device plate current without the 1 GOhm Rcp (engine model); ip_terminal = SPICE terminal # currents in A into plate / screen / grid; voltages in V vs cathode vsk,vgk,vpk,ip,is,ig,ip_terminal diff --git a/tests/data/el34_plate.csv b/tests/data/el34_plate.csv index 2202cb9..824c0b5 100644 --- a/tests/data/el34_plate.csv +++ b/tests/data/el34_plate.csv @@ -1,26 +1,26 @@ # EL34 plate curves: Vpk 0–600 V (10 V) for each Vsk and Vgk # GENERATED by harness/device_sweeps.py (VERIFICATION §5.1), do not edit -# source: reference/spice/tubes.lib (sha256 5767afe208240bfa), ngspice 47 +# source: reference/spice/tubes.lib (sha256 c9c9c88346c69010), ngspice 47 # ip = device plate current without the 1 GOhm Rcp (engine model); ip_terminal = SPICE terminal # currents in A into plate / screen / grid; voltages in V vs cathode vsk,vgk,vpk,ip,is,ig,ip_terminal -250,0,0,0,0.331337271508696,2.4382835194612e-30,0 -250,0,10,0.0484734128902095,0.282863858618487,3.65171239030557e-39,0.0484734228902095 -250,0,20,0.0918361162953016,0.239501155213395,-3.65171237936754e-39,0.0918361362953016 -250,0,30,0.127618663640721,0.203718607867975,-1.64070378794541e-47,0.127618693640721 -250,0,40,0.155941205910464,0.175396065598232,5.46901257187999e-48,0.155941245910464 -250,0,50,0.178087677705153,0.153249593803544,4.0953525157576e-56,0.178087727705153 -250,0,60,0.195482989323353,0.135854282185343,-8.19070485977906e-57,0.195483049323353 -250,0,70,0.209313476412284,0.122023795096413,-8.58680667843167e-65,0.209313546412284 -250,0,80,0.220473779430736,0.11086349207796,1.22668662425564e-65,0.220473859430736 -250,0,90,0.229616007477928,0.101721264030769,1.65344027914067e-73,0.229616097477928 -250,0,100,0.237212471023913,0.0941248004847833,-1.83715576482612e-74,0.237212571023913 -250,0,110,0.243607344495059,0.0877299270136369,-3.02657225418411e-82,0.243607454495059 -250,0,120,0.249054354978882,0.0822829165298141,2.75142910770929e-83,0.249054474978882 -250,0,130,0.253743143320552,0.0775941281881438,5.35690654890671e-91,0.253743273320552 -250,0,140,0.257817488774319,0.0735197827343773,-4.12069691331547e-92,0.257817628774319 -250,0,150,0.261387934099413,0.0699493374092837,-9.25708673056568e-100,0.261388084099413 -250,0,160,0.26454060622926,0.0667966652794362,6.17139031571224e-101,0.26454076622926 +250,0,0,0.0170949836746689,0.314242287834027,2.4382835194612e-30,0.0170949836746689 +250,0,10,0.0514195673029072,0.279917704205789,3.65171239030557e-39,0.0514195773029072 +250,0,20,0.0921962986857238,0.239140972822973,-3.65171237936754e-39,0.0921963186857238 +250,0,30,0.127658130815765,0.203679140692932,-1.64070378794541e-47,0.127658160815765 +250,0,40,0.155945396304428,0.175391875204268,5.46901257187999e-48,0.155945436304428 +250,0,50,0.178088121439782,0.153249150068914,4.0953525157576e-56,0.178088171439782 +250,0,60,0.195483036757773,0.135854234750924,-8.19070485977906e-57,0.195483096757773 +250,0,70,0.209313481554734,0.122023789953962,-8.58680667843167e-65,0.209313551554734 +250,0,80,0.220473779996761,0.110863491511935,1.22668662425564e-65,0.220473859996762 +250,0,90,0.229616007541153,0.101721263967543,1.65344027914067e-73,0.229616097541153 +250,0,100,0.237212471031072,0.094124800477624,-1.83715576482612e-74,0.237212571031072 +250,0,110,0.24360734449588,0.0877299270128162,-3.02657225418411e-82,0.24360745449588 +250,0,120,0.249054354978977,0.0822829165297189,2.75142910770929e-83,0.249054474978977 +250,0,130,0.253743143320564,0.0775941281881326,5.35690654890671e-91,0.253743273320564 +250,0,140,0.25781748877432,0.073519782734376,-4.12069691331547e-92,0.25781762877432 +250,0,150,0.261387934099413,0.0699493374092835,-9.25708673056568e-100,0.261388084099413 +250,0,160,0.26454060622926,0.0667966652794361,6.17139031571224e-101,0.26454076622926 250,0,170,0.267343450320411,0.0639938211882853,1.57124659632959e-108,0.267343620320411 250,0,180,0.269850692288952,0.0614865792197447,-9.24262545921235e-110,0.269850872288952 250,0,190,0.272106075265174,0.0592311962435219,-2.6300341248365e-117,0.272106265265174 @@ -65,24 +65,24 @@ vsk,vgk,vpk,ip,is,ig,ip_terminal 250,0,580,0.300107256804275,0.0312300147044213,-2.97880176463542e-286,0.300107836804275 250,0,590,0.300342323630638,0.0309949478780579,-2.63212610639224e-293,0.300342913630638 250,0,600,0.300569590917143,0.0307676805915536,4.46122253749779e-295,0.300570190917143 -250,-10,0,0,0.147619595129978,-9.99998805539803e-10,0 -250,-10,10,0.0215961988002101,0.126023396329768,-9.99998805539803e-10,0.0215962088002101 -250,-10,20,0.0409154401619021,0.106704154968076,-9.99998805539803e-10,0.0409154601619021 -250,-10,30,0.0568575197468468,0.090762075383131,-9.99998805539803e-10,0.0568575497468468 -250,-10,40,0.0694759680242583,0.0781436271057195,-9.99998805539803e-10,0.0694760080242583 -250,-10,50,0.0793428121163925,0.0682767830135854,-9.99998805539803e-10,0.0793428621163925 -250,-10,60,0.0870928875804236,0.0605267075495542,-9.99998805539803e-10,0.0870929475804236 -250,-10,70,0.0932547386007508,0.0543648565292271,-9.99998805539803e-10,0.0932548086007508 -250,-10,80,0.0982269513723786,0.0493926437575993,-9.99998805539803e-10,0.0982270313723786 -250,-10,90,0.102300057898449,0.0453195372315291,-9.99998805539803e-10,0.102300147898449 -250,-10,100,0.105684485095461,0.0419351100345166,-9.99998805539803e-10,0.105684585095461 -250,-10,110,0.108533571853554,0.0390860232764236,-9.99998805539803e-10,0.108533681853554 -250,-10,120,0.110960360360109,0.0366592347698684,-9.99998805539803e-10,0.110960480360109 -250,-10,130,0.113049340671609,0.0345702544583692,-9.99998805539803e-10,0.113049470671609 -250,-10,140,0.114864570282108,0.0327550248478698,-9.99998805539803e-10,0.114864710282108 -250,-10,150,0.116455298940324,0.0311642961896536,-9.99998805539803e-10,0.116455448940324 +250,-10,0,0.00761627135189941,0.140003323778078,-9.99998805539803e-10,0.00761627135189941 +250,-10,10,0.0229087891997523,0.124710805930226,-9.99998805539803e-10,0.0229087991997523 +250,-10,20,0.0410759110271476,0.10654368410283,-9.99998805539803e-10,0.0410759310271476 +250,-10,30,0.0568751034263839,0.090744491703594,-9.99998805539803e-10,0.0568751334263839 +250,-10,40,0.0694778349565767,0.0781417601734012,-9.99998805539803e-10,0.0694778749565767 +250,-10,50,0.0793430098120097,0.0682765853179681,-9.99998805539803e-10,0.0793430598120097 +250,-10,60,0.0870929087137231,0.0605266864162548,-9.99998805539803e-10,0.0870929687137231 +250,-10,70,0.0932547408918499,0.054364854238128,-9.99998805539803e-10,0.0932548108918499 +250,-10,80,0.098226951624558,0.0493926435054199,-9.99998805539803e-10,0.098227031624558 +250,-10,90,0.102300057926617,0.0453195372033604,-9.99998805539803e-10,0.102300147926617 +250,-10,100,0.105684485098651,0.0419351100313269,-9.99998805539803e-10,0.105684585098651 +250,-10,110,0.10853357185392,0.0390860232760579,-9.99998805539803e-10,0.10853368185392 +250,-10,120,0.110960360360152,0.036659234769826,-9.99998805539803e-10,0.110960480360152 +250,-10,130,0.113049340671614,0.0345702544583642,-9.99998805539803e-10,0.113049470671614 +250,-10,140,0.114864570282109,0.0327550248478692,-9.99998805539803e-10,0.114864710282109 +250,-10,150,0.116455298940324,0.0311642961896535,-9.99998805539803e-10,0.116455448940324 250,-10,160,0.11785989849312,0.0297596966368579,-9.99998805539803e-10,0.11786005849312 -250,-10,170,0.119108640320637,0.0285109548093413,-9.99998805539803e-10,0.119108810320637 +250,-10,170,0.119108640320637,0.0285109548093412,-9.99998805539803e-10,0.119108810320637 250,-10,180,0.120225683515335,0.0273939116146425,-9.99998805539803e-10,0.120225863515335 250,-10,190,0.121230516808907,0.0263890783210711,-9.99998805539803e-10,0.121230706808907 250,-10,200,0.12213901788075,0.0254805772492276,-9.99998805539803e-10,0.12213921788075 @@ -126,22 +126,22 @@ vsk,vgk,vpk,ip,is,ig,ip_terminal 250,-10,580,0.133705790306336,0.0139138048236416,-9.99998805539803e-10,0.133706370306336 250,-10,590,0.133810518849486,0.013809076280492,-9.99998805539803e-10,0.133811108849486 250,-10,600,0.133911772489522,0.0137078226404554,-9.99998805539803e-10,0.133912372489522 -250,-20,0,0,0.0339854346243019,-9.99997784134621e-10,0 -250,-20,10,0.00497194293082652,0.0290134916934754,-9.99997784134621e-10,0.00497195293082652 -250,-20,20,0.00941967775702482,0.0245657568672771,-9.99997784134621e-10,0.00941969775702482 -250,-20,30,0.0130899120713278,0.0208955225529741,-9.99997784134621e-10,0.0130899420713278 -250,-20,40,0.0159949698220587,0.0179904648022432,-9.99997784134621e-10,0.0159950098220587 -250,-20,50,0.0182665448426117,0.0157188897816902,-9.99997784134621e-10,0.0182665948426117 -250,-20,60,0.0200507909163414,0.0139346437079605,-9.99997784134621e-10,0.0200508509163414 -250,-20,70,0.0214693911017141,0.0125160435225878,-9.99997784134621e-10,0.0214694611017141 -250,-20,80,0.0226141091314545,0.0113713254928474,-9.99997784134621e-10,0.0226141891314545 -250,-20,90,0.0235518321717981,0.0104336024525038,-9.99997784134621e-10,0.0235519221717981 -250,-20,100,0.0243310053509652,0.00965442927333669,-9.99997784134621e-10,0.0243311053509652 -250,-20,110,0.0249869308171669,0.00899850380713502,-9.99997784134621e-10,0.0249870408171669 -250,-20,120,0.025545633488475,0.00843980113582692,-9.99997784134621e-10,0.025545753488475 -250,-20,130,0.0260265649240706,0.00795886970023126,-9.99997784134621e-10,0.0260266949240706 -250,-20,140,0.0264444726361288,0.00754096198817307,-9.99997784134621e-10,0.0264446126361288 -250,-20,150,0.0268106950524091,0.00717473957189284,-9.99997784134621e-10,0.0268108450524091 +250,-20,0,0.00175344128185023,0.0322319933424517,-9.99997784134621e-10,0.00175344128185023 +250,-20,10,0.00527413150662399,0.0287113031176779,-9.99997784134621e-10,0.00527414150662399 +250,-20,20,0.0094566218503554,0.0245288127739465,-9.99997784134621e-10,0.0094566418503554 +250,-20,30,0.0130939602398032,0.0208914743844987,-9.99997784134621e-10,0.0130939902398032 +250,-20,40,0.0159953996329263,0.0179900349913756,-9.99997784134621e-10,0.0159954396329263 +250,-20,50,0.0182665903567013,0.0157188442676006,-9.99997784134621e-10,0.0182666403567013 +250,-20,60,0.0200507957817143,0.0139346388425876,-9.99997784134621e-10,0.0200508557817143 +250,-20,70,0.0214693916291779,0.012516042995124,-9.99997784134621e-10,0.0214694616291779 +250,-20,80,0.0226141091895121,0.0113713254347898,-9.99997784134621e-10,0.0226141891895121 +250,-20,90,0.0235518321782832,0.0104336024460187,-9.99997784134621e-10,0.0235519221782832 +250,-20,100,0.0243310053516995,0.00965442927260236,-9.99997784134621e-10,0.0243311053516995 +250,-20,110,0.0249869308172511,0.00899850380705084,-9.99997784134621e-10,0.0249870408172511 +250,-20,120,0.0255456334884847,0.00843980113581715,-9.99997784134621e-10,0.0255457534884847 +250,-20,130,0.0260265649240718,0.00795886970023012,-9.99997784134621e-10,0.0260266949240718 +250,-20,140,0.026444472636129,0.00754096198817294,-9.99997784134621e-10,0.026444612636129 +250,-20,150,0.0268106950524091,0.00717473957189282,-9.99997784134621e-10,0.0268108450524091 250,-20,160,0.0271340662568405,0.00685136836746141,-9.99997784134621e-10,0.0271342262568405 250,-20,170,0.0274215554191318,0.00656387920517011,-9.99997784134621e-10,0.0274217254191318 250,-20,180,0.02767872451943,0.00630671010487194,-9.99997784134621e-10,0.02767890451943 @@ -187,22 +187,22 @@ vsk,vgk,vpk,ip,is,ig,ip_terminal 250,-20,580,0.0307821559281856,0.00320327869611627,-9.99997784134621e-10,0.0307827359281856 250,-20,590,0.0308062668536585,0.00317916777064344,-9.99997784134621e-10,0.0308068568536585 250,-20,600,0.0308295777763101,0.00315585684799183,-9.99997784134621e-10,0.0308301777763101 -250,-30,0,0,0.00434332681483377,-9.99996691716798e-10,0 -250,-30,10,0.000635412590481932,0.00370791422435184,-9.99996691716798e-10,0.000635422590481932 -250,-30,20,0.00120383156612403,0.00313949524870974,-9.99996691716798e-10,0.00120385156612403 -250,-30,30,0.00167288624470201,0.00267044057013175,-9.99996691716798e-10,0.00167291624470201 -250,-30,40,0.00204415162255797,0.0022991751922758,-9.99996691716798e-10,0.00204419162255797 -250,-30,50,0.00233445812614523,0.00200886868868854,-9.99996691716798e-10,0.00233450812614523 -250,-30,60,0.00256248415853119,0.00178084265630257,-9.99996691716798e-10,0.00256254415853119 -250,-30,70,0.00274378077258865,0.00159954604224512,-9.99996691716798e-10,0.00274385077258865 -250,-30,80,0.00289007534168739,0.00145325147314638,-9.99996691716798e-10,0.00289015534168739 -250,-30,90,0.00300991602258601,0.00133341079224776,-9.99996691716798e-10,0.00301000602258601 -250,-30,100,0.00310949408595012,0.00123383272888365,-9.99996691716798e-10,0.00310959408595012 -250,-30,110,0.00319332113413649,0.00115000568069728,-9.99996691716798e-10,0.00319343113413649 -250,-30,120,0.00326472314269213,0.00107860367214164,-9.99996691716798e-10,0.00326484314269213 -250,-30,130,0.00332618601416665,0.00101714080066712,-9.99996691716798e-10,0.00332631601416665 -250,-30,140,0.00337959447552586,0.000963732339307903,-9.99996691716798e-10,0.00337973447552586 -250,-30,150,0.00342639757392396,0.00091692924090981,-9.99996691716798e-10,0.00342654757392396 +250,-30,0,0.000224089190616112,0.00411923762421766,-9.99996691716798e-10,0.000224089190616112 +250,-30,10,0.000674032186167758,0.00366929462866601,-9.99996691716798e-10,0.000674042186167758 +250,-30,20,0.00120855300850033,0.00313477380633343,-9.99996691716798e-10,0.00120857300850034 +250,-30,30,0.00167340359923594,0.00266992321559783,-9.99996691716798e-10,0.00167343359923594 +250,-30,40,0.0020442065522385,0.00229912026259527,-9.99996691716798e-10,0.0020442465522385 +250,-30,50,0.00233446394283016,0.0020088628720036,-9.99996691716798e-10,0.00233451394283016 +250,-30,60,0.00256248478032416,0.00178084203450961,-9.99996691716798e-10,0.00256254478032416 +250,-30,70,0.00274378083999835,0.00159954597483542,-9.99996691716798e-10,0.00274385083999835 +250,-30,80,0.00289007534910712,0.00145325146572665,-9.99996691716798e-10,0.00289015534910712 +250,-30,90,0.0030099160234148,0.00133341079141897,-9.99996691716798e-10,0.0030100060234148 +250,-30,100,0.00310949408604396,0.0012338327287898,-9.99996691716798e-10,0.00310959408604396 +250,-30,110,0.00319332113414724,0.00115000568068652,-9.99996691716798e-10,0.00319343113414724 +250,-30,120,0.00326472314269338,0.00107860367214039,-9.99996691716798e-10,0.00326484314269338 +250,-30,130,0.0033261860141668,0.00101714080066697,-9.99996691716798e-10,0.0033263160141668 +250,-30,140,0.00337959447552588,0.000963732339307886,-9.99996691716798e-10,0.00337973447552588 +250,-30,150,0.00342639757392396,0.000916929240909808,-9.99996691716798e-10,0.00342654757392396 250,-30,160,0.00346772430223797,0.000875602512595799,-9.99996691716798e-10,0.00346788430223797 250,-30,170,0.00350446531795124,0.000838861496882526,-9.99996691716798e-10,0.00350463531795124 250,-30,180,0.00353733144020683,0.000805995374626934,-9.99996691716798e-10,0.00353751144020683 @@ -248,23 +248,23 @@ vsk,vgk,vpk,ip,is,ig,ip_terminal 250,-30,580,0.00393394890308922,0.000409377911744547,-9.99996691716798e-10,0.00393452890308922 250,-30,590,0.00393703027104271,0.000406296543791062,-9.99996691716798e-10,0.00393762027104271 250,-30,600,0.00394000939891176,0.000403317415922005,-9.99996691716798e-10,0.00394060939891176 -250,-40,0,0,0.00046943313327,-9.99995592110281e-10,0 -250,-40,10,6.86763248508981e-05,0.000400756808419102,-9.99995592110281e-10,6.86863248508981e-05 -250,-40,20,0.000130111881538567,0.000339321251731433,-9.99995592110281e-10,0.000130131881538567 -250,-40,30,0.000180807999244424,0.000288625134025576,-9.99995592110281e-10,0.000180837999244424 -250,-40,40,0.000220934905883445,0.000248498227386555,-9.99995592110281e-10,0.000220974905883445 -250,-40,50,0.000252311658634859,0.000217121474635141,-9.99995592110281e-10,0.000252361658634859 -250,-40,60,0.000276957046701096,0.000192476086568904,-9.99995592110281e-10,0.000277017046701096 -250,-40,70,0.000296551850688115,0.000172881282581884,-9.99995592110281e-10,0.000296621850688115 -250,-40,80,0.000312363582312329,0.00015706955095767,-9.99995592110281e-10,0.000312443582312329 -250,-40,90,0.000325316138895296,0.000144116994374704,-9.99995592110281e-10,0.000325406138895296 -250,-40,100,0.000336078682052381,0.000133354451217619,-9.99995592110281e-10,0.000336178682052381 -250,-40,110,0.000345138832384266,0.000124294300885734,-9.99995592110281e-10,0.000345248832384266 -250,-40,120,0.000352856066206868,0.000116577067063132,-9.99995592110281e-10,0.000352976066206868 -250,-40,130,0.000359499063514257,0.000109934069755742,-9.99995592110281e-10,0.000359629063514257 -250,-40,140,0.000365271528361563,0.000104161604908437,-9.99995592110281e-10,0.000365411528361563 -250,-40,150,0.00037033007589078,9.91030573792198e-05,-9.99995592110281e-10,0.00037048007589078 -250,-40,160,0.000374796729308153,9.46364039618469e-05,-9.99995592110281e-10,0.000374956729308153 +250,-40,0,2.42198884328915e-05,0.000445213244837108,-9.99995592110281e-10,2.42198884328915e-05 +250,-40,10,7.28503874027882e-05,0.000396582745867211,-9.99995592110281e-10,7.28603874027882e-05 +250,-40,20,0.00013062218195637,0.00033881095131363,-9.99995592110281e-10,0.00013064218195637 +250,-40,30,0.000180863915681345,0.000288569217588654,-9.99995592110281e-10,0.000180893915681346 +250,-40,40,0.000220940842763891,0.000248492290506108,-9.99995592110281e-10,0.000220980842763891 +250,-40,50,0.000252312287310699,0.000217120845959301,-9.99995592110281e-10,0.000252362287310699 +250,-40,60,0.000276957113905392,0.000192476019364608,-9.99995592110281e-10,0.000277017113905392 +250,-40,70,0.000296551857973854,0.000172881275296145,-9.99995592110281e-10,0.000296621857973854 +250,-40,80,0.000312363583114265,0.000157069550155735,-9.99995592110281e-10,0.000312443583114265 +250,-40,90,0.000325316138984873,0.000144116994285127,-9.99995592110281e-10,0.000325406138984873 +250,-40,100,0.000336078682062524,0.000133354451207476,-9.99995592110281e-10,0.000336178682062524 +250,-40,110,0.000345138832385429,0.000124294300884571,-9.99995592110281e-10,0.000345248832385429 +250,-40,120,0.000352856066207002,0.000116577067062997,-9.99995592110281e-10,0.000352976066207002 +250,-40,130,0.000359499063514273,0.000109934069755726,-9.99995592110281e-10,0.000359629063514273 +250,-40,140,0.000365271528361564,0.000104161604908435,-9.99995592110281e-10,0.000365411528361564 +250,-40,150,0.00037033007589078,9.91030573792195e-05,-9.99995592110281e-10,0.00037048007589078 +250,-40,160,0.000374796729308153,9.46364039618468e-05,-9.99995592110281e-10,0.000374956729308153 250,-40,170,0.000378767752180965,9.06653810890345e-05,-9.99995592110281e-10,0.000378937752180965 250,-40,180,0.000382319970884882,8.71131623851174e-05,-9.99995592110281e-10,0.000382499970884882 250,-40,190,0.000385515359959076,8.39177733109236e-05,-9.99995592110281e-10,0.000385705359959076 @@ -309,21 +309,21 @@ vsk,vgk,vpk,ip,is,ig,ip_terminal 250,-40,580,0.00042518696806193,4.42461652080692e-05,-9.99995592110281e-10,0.00042576696806193 250,-40,590,0.000425520006830328,4.39131264396712e-05,-9.99995592110281e-10,0.000426110006830328 250,-40,600,0.000425841995340428,4.35911379295717e-05,-9.99995592110281e-10,0.000426441995340428 -250,-46,0,0,0.000121882720726762,-9.99994929570813e-10,0 -250,-46,10,1.78309896108846e-05,0.000104051731115877,-9.99994929570813e-10,1.78409896108846e-05 -250,-46,20,3.37820000269932e-05,8.81007206997684e-05,-9.99994929570813e-10,3.38020000269933e-05 -250,-46,30,4.69446430497218e-05,7.49380776770398e-05,-9.99994929570813e-10,4.69746430497218e-05 -250,-46,40,5.73631163292798e-05,6.45196043974818e-05,-9.99994929570813e-10,5.74031163292798e-05 -250,-46,50,6.55097163919422e-05,5.63730043348194e-05,-9.99994929570813e-10,6.55597163919422e-05 -250,-46,60,7.19085978044141e-05,4.99741229223475e-05,-9.99994929570813e-10,7.19685978044141e-05 -250,-46,70,7.69961552280012e-05,4.48865654987604e-05,-9.99994929570813e-10,7.70661552280012e-05 -250,-46,80,8.11014829800841e-05,4.07812377466774e-05,-9.99994929570813e-10,8.11814829800841e-05 -250,-46,90,8.44644599938759e-05,3.74182607328857e-05,-9.99994929570813e-10,8.45544599938759e-05 -250,-46,100,8.7258826111127e-05,3.46238946156346e-05,-9.99994929570813e-10,8.7358826111127e-05 -250,-46,110,8.96111862118115e-05,3.22715345149501e-05,-9.99994929570813e-10,8.97211862118115e-05 -250,-46,120,9.16148740389387e-05,3.02678466878229e-05,-9.99994929570813e-10,9.17348740389387e-05 -250,-46,130,9.33396491522018e-05,2.85430715745598e-05,-9.99994929570813e-10,9.34696491522018e-05 -250,-46,140,9.48384008828013e-05,2.70443198439603e-05,-9.99994929570813e-10,9.49784008828013e-05 +250,-46,0,6.28840550162353e-06,0.000115594315225138,-9.99994929570813e-10,6.28840550162353e-06 +250,-46,10,1.89147352271435e-05,0.000102967985499618,-9.99994929570813e-10,1.89247352271435e-05 +250,-46,20,3.39144934512996e-05,8.7968227275462e-05,-9.99994929570813e-10,3.39344934512996e-05 +250,-46,30,4.69591610864396e-05,7.4923559640322e-05,-9.99994929570813e-10,4.69891610864396e-05 +250,-46,40,5.7364657769562e-05,6.45180629571996e-05,-9.99994929570813e-10,5.7404657769562e-05 +250,-46,50,6.55098796201348e-05,5.63728411066268e-05,-9.99994929570813e-10,6.55598796201348e-05 +250,-46,60,7.1908615253209e-05,4.99741054735526e-05,-9.99994929570813e-10,7.19686152532089e-05 +250,-46,70,7.69961571196565e-05,4.48865636071051e-05,-9.99994929570813e-10,7.70661571196565e-05 +250,-46,80,8.11014831882971e-05,4.07812375384645e-05,-9.99994929570813e-10,8.11814831882971e-05 +250,-46,90,8.44644600171335e-05,3.74182607096281e-05,-9.99994929570813e-10,8.45544600171335e-05 +250,-46,100,8.72588261137606e-05,3.4623894613001e-05,-9.99994929570813e-10,8.73588261137606e-05 +250,-46,110,8.96111862121134e-05,3.22715345146482e-05,-9.99994929570813e-10,8.97211862121134e-05 +250,-46,120,9.16148740389737e-05,3.02678466877879e-05,-9.99994929570813e-10,9.17348740389737e-05 +250,-46,130,9.33396491522059e-05,2.85430715745557e-05,-9.99994929570813e-10,9.34696491522059e-05 +250,-46,140,9.48384008828018e-05,2.70443198439598e-05,-9.99994929570813e-10,9.49784008828018e-05 250,-46,150,9.61517924866105e-05,2.57309282401511e-05,-9.99994929570813e-10,9.63017924866105e-05 250,-46,160,9.73115058354758e-05,2.45712148912858e-05,-9.99994929570813e-10,9.74715058354758e-05 250,-46,170,9.83425346178608e-05,2.35401861089008e-05,-9.99994929570813e-10,9.85125346178608e-05 @@ -370,25 +370,25 @@ vsk,vgk,vpk,ip,is,ig,ip_terminal 250,-46,580,0.000110394731032213,1.14879896945483e-05,-9.99994929570813e-10,0.000110974731032213 250,-46,590,0.000110481200580958,1.14015201458032e-05,-9.99994929570813e-10,0.000111071200580958 250,-46,600,0.000110564801061777,1.13179196649843e-05,-9.99994929570813e-10,0.000111164801061777 -250,-50,0,0,4.9546159280886e-05,-9.99994492503764e-10,0 -250,-50,10,7.24841918631976e-06,4.22977400945663e-05,-9.99994492503764e-10,7.25841918631976e-06 -250,-50,20,1.37326139766488e-05,3.58135453042373e-05,-9.99994492503764e-10,1.37526139766488e-05 -250,-50,30,1.90833183576543e-05,3.04628409232318e-05,-9.99994492503764e-10,1.91133183576543e-05 -250,-50,40,2.33184989763233e-05,2.62276603045627e-05,-9.99994492503764e-10,2.33584989763233e-05 -250,-50,50,2.66301475996521e-05,2.29160116812339e-05,-9.99994492503764e-10,2.66801475996521e-05 -250,-50,60,2.92313366426222e-05,2.03148226382639e-05,-9.99994492503764e-10,2.92913366426222e-05 -250,-50,70,3.12994635186606e-05,1.82466957622254e-05,-9.99994492503764e-10,3.13694635186606e-05 -250,-50,80,3.29683073177823e-05,1.65778519631037e-05,-9.99994492503764e-10,3.30483073177823e-05 -250,-50,90,3.43353804663775e-05,1.52107788145085e-05,-9.99994492503764e-10,3.44253804663775e-05 -250,-50,100,3.54713093979676e-05,1.40748498829185e-05,-9.99994492503764e-10,3.55713093979676e-05 -250,-50,110,3.64275598618524e-05,1.31185994190336e-05,-9.99994492503764e-10,3.65375598618524e-05 -250,-50,120,3.72420726626831e-05,1.23040866182029e-05,-9.99994492503764e-10,3.73620726626831e-05 -250,-50,130,3.79432055384171e-05,1.16029537424689e-05,-9.99994492503764e-10,3.80732055384171e-05 -250,-50,140,3.8552458363789e-05,1.09937009170971e-05,-9.99994492503764e-10,3.8692458363789e-05 -250,-50,150,3.90863610303235e-05,1.04597982505625e-05,-9.99994492503764e-10,3.92363610303235e-05 -250,-50,160,3.95577924355337e-05,9.98836684535236e-06,-9.99994492503764e-10,3.97177924355337e-05 +250,-50,0,2.55627982989248e-06,4.69898794509935e-05,-9.99994492503764e-10,2.55627982989248e-06 +250,-50,10,7.68896918883819e-06,4.18571900920478e-05,-9.99994492503764e-10,7.69896918883819e-06 +250,-50,20,1.37864734594796e-05,3.57596858214065e-05,-9.99994492503764e-10,1.38064734594796e-05 +250,-50,30,1.90892200388391e-05,3.0456939242047e-05,-9.99994492503764e-10,1.91192200388391e-05 +250,-50,40,2.33191255823368e-05,2.62270336985493e-05,-9.99994492503764e-10,2.33591255823368e-05 +250,-50,50,2.66302139530284e-05,2.29159453278576e-05,-9.99994492503764e-10,2.66802139530284e-05 +250,-50,60,2.92313437356766e-05,2.03148155452094e-05,-9.99994492503764e-10,2.92913437356766e-05 +250,-50,70,3.12994642876314e-05,1.82466949932546e-05,-9.99994492503764e-10,3.13694642876314e-05 +250,-50,80,3.29683074024223e-05,1.65778518784637e-05,-9.99994492503764e-10,3.30483074024223e-05 +250,-50,90,3.43353804758319e-05,1.52107788050541e-05,-9.99994492503764e-10,3.44253804758319e-05 +250,-50,100,3.54713093990381e-05,1.40748498818479e-05,-9.99994492503764e-10,3.55713093990381e-05 +250,-50,110,3.64275598619752e-05,1.31185994189109e-05,-9.99994492503764e-10,3.65375598619752e-05 +250,-50,120,3.72420726626973e-05,1.23040866181887e-05,-9.99994492503764e-10,3.73620726626973e-05 +250,-50,130,3.79432055384188e-05,1.16029537424672e-05,-9.99994492503764e-10,3.80732055384188e-05 +250,-50,140,3.85524583637892e-05,1.09937009170969e-05,-9.99994492503764e-10,3.86924583637892e-05 +250,-50,150,3.90863610303236e-05,1.04597982505625e-05,-9.99994492503764e-10,3.92363610303236e-05 +250,-50,160,3.95577924355337e-05,9.98836684535235e-06,-9.99994492503764e-10,3.97177924355337e-05 250,-50,170,3.99769126846603e-05,9.56924659622576e-06,-9.99994492503764e-10,4.01469126846603e-05 -250,-50,180,4.03518303912117e-05,9.19432888967437e-06,-9.99994492503764e-10,4.05318303912117e-05 +250,-50,180,4.03518303912117e-05,9.19432888967436e-06,-9.99994492503764e-10,4.05318303912117e-05 250,-50,190,4.06890866366999e-05,8.85707264418616e-06,-9.99994492503764e-10,4.08790866366999e-05 250,-50,200,4.09940105106122e-05,8.55214877027377e-06,-9.99994492503764e-10,4.11940105106122e-05 250,-50,210,4.12709835704273e-05,8.27517571045873e-06,-9.99994492503764e-10,4.14809835704273e-05 @@ -431,22 +431,22 @@ vsk,vgk,vpk,ip,is,ig,ip_terminal 250,-50,580,4.48762129272985e-05,4.66994635358751e-06,-9.99994492503764e-10,4.54562129272985e-05 250,-50,590,4.49113633900509e-05,4.6347958908351e-06,-9.99994492503764e-10,4.55013633900509e-05 250,-50,600,4.49453475570757e-05,4.60081172381033e-06,-9.99994492503764e-10,4.55453475570757e-05 -250,-60,0,0,5.21453338767217e-06,-9.99993385958353e-10,0 -250,-60,10,7.62866878149511e-07,4.45166650952266e-06,-9.99993385958353e-10,7.72866878149511e-07 -250,-60,20,1.44530222161688e-06,3.76923116605529e-06,-9.99993385958353e-10,1.46530222161688e-06 -250,-60,30,2.00844227217335e-06,3.20609111549882e-06,-9.99993385958353e-10,2.03844227217335e-06 -250,-60,40,2.45417794693415e-06,2.76035544073802e-06,-9.99993385958353e-10,2.49417794693415e-06 -250,-60,50,2.80271560485204e-06,2.41181778282013e-06,-9.99993385958353e-10,2.85271560485204e-06 -250,-60,60,3.07648025803772e-06,2.13805312963445e-06,-9.99993385958353e-10,3.13648025803772e-06 -250,-60,70,3.29414226860662e-06,1.92039111906555e-06,-9.99993385958353e-10,3.36414226860662e-06 -250,-60,80,3.46978134609788e-06,1.74475204157429e-06,-9.99993385958353e-10,3.54978134609788e-06 -250,-60,90,3.61366028000931e-06,1.60087310766286e-06,-9.99993385958353e-10,3.70366028000931e-06 -250,-60,100,3.7332122175514e-06,1.48132117012077e-06,-9.99993385958353e-10,3.8332122175514e-06 -250,-60,110,3.83385372121742e-06,1.38067966645475e-06,-9.99993385958353e-10,3.94385372121742e-06 -250,-60,120,3.919577907638e-06,1.29495548003418e-06,-9.99993385958353e-10,4.039577907638e-06 -250,-60,130,3.99336931433377e-06,1.2211640733384e-06,-9.99993385958353e-10,4.12336931433377e-06 -250,-60,140,4.05749071638684e-06,1.15704267128533e-06,-9.99993385958353e-10,4.19749071638684e-06 -250,-60,150,4.11368181819613e-06,1.10085156947604e-06,-9.99993385958353e-10,4.26368181819613e-06 +250,-60,0,2.69038139679773e-07,4.9454952479924e-06,-9.99993385958353e-10,2.69038139679773e-07 +250,-60,10,8.09232988669759e-07,4.40530039900241e-06,-9.99993385958353e-10,8.19232988669759e-07 +250,-60,20,1.45097071490759e-06,3.76356267276458e-06,-9.99993385958353e-10,1.47097071490759e-06 +250,-60,30,2.00906340030978e-06,3.20546998736239e-06,-9.99993385958353e-10,2.03906340030978e-06 +250,-60,40,2.45424389468924e-06,2.76028949298293e-06,-9.99993385958353e-10,2.49424389468924e-06 +250,-60,50,2.80272258827721e-06,2.41181079939496e-06,-9.99993385958353e-10,2.85272258827721e-06 +250,-60,60,3.07648100455308e-06,2.13805238311909e-06,-9.99993385958353e-10,3.13648100455308e-06 +250,-60,70,3.2941423495377e-06,1.92039103813448e-06,-9.99993385958353e-10,3.3641423495377e-06 +250,-60,80,3.4697813550059e-06,1.74475203266627e-06,-9.99993385958353e-10,3.5497813550059e-06 +250,-60,90,3.61366028100435e-06,1.60087310666782e-06,-9.99993385958353e-10,3.70366028100435e-06 +250,-60,100,3.73321221766408e-06,1.4813211700081e-06,-9.99993385958353e-10,3.83321221766408e-06 +250,-60,110,3.83385372123034e-06,1.38067966644183e-06,-9.99993385958353e-10,3.94385372123034e-06 +250,-60,120,3.91957790763949e-06,1.29495548003268e-06,-9.99993385958353e-10,4.03957790763949e-06 +250,-60,130,3.99336931433395e-06,1.22116407333822e-06,-9.99993385958353e-10,4.12336931433395e-06 +250,-60,140,4.05749071638686e-06,1.15704267128531e-06,-9.99993385958353e-10,4.19749071638686e-06 +250,-60,150,4.11368181819614e-06,1.10085156947603e-06,-9.99993385958353e-10,4.26368181819614e-06 250,-60,160,4.16329807176947e-06,1.0512353159027e-06,-9.99993385958353e-10,4.32329807176947e-06 250,-60,170,4.20740878719607e-06,1.0071246004761e-06,-9.99993385958353e-10,4.37740878719607e-06 250,-60,180,4.24686736333632e-06,9.67666024335851e-07,-9.99993385958353e-10,4.42686736333632e-06 @@ -492,21 +492,21 @@ vsk,vgk,vpk,ip,is,ig,ip_terminal 250,-60,580,4.72304037322141e-06,4.91493014450756e-07,-9.99993385958353e-10,5.30304037322141e-06 250,-60,590,4.72673981762386e-06,4.87793570048306e-07,-9.99993385958353e-10,5.31673981762386e-06 250,-60,600,4.73031651410599e-06,4.84216873566179e-07,-9.99993385958353e-10,5.33031651410599e-06 -400,0,0,0,0.541726141602664,2.4382835194612e-30,0 -400,0,10,0.0792525236166703,0.462473617985994,3.65171239030557e-39,0.0792525336166703 -400,0,20,0.150149196056024,0.39157694554664,-3.65171237936754e-39,0.150149216056024 -400,0,30,0.20865254891423,0.333073592688433,-1.64070378794541e-47,0.20865257891423 -400,0,40,0.254959025316067,0.286767116286597,5.46901257187999e-48,0.254959065316067 -400,0,50,0.291167818431374,0.25055832317129,4.0953525157576e-56,0.291167868431374 -400,0,60,0.319608612314886,0.222117529287778,-8.19070485977906e-57,0.319608672314886 -400,0,70,0.342221028880811,0.199505112721853,-8.58680667843167e-65,0.342221098880811 -400,0,80,0.360467777475601,0.181258364127063,1.22668662425564e-65,0.360467857475601 -400,0,90,0.3754150362102,0.166311105392464,1.65344027914067e-73,0.3754151262102 -400,0,100,0.387835018024664,0.153891123578,-1.83715576482612e-74,0.387835118024664 -400,0,110,0.398290437409834,0.14343570419283,-3.02657225418411e-82,0.398290547409834 -400,0,120,0.407196130268457,0.134530011334207,2.75142910770929e-83,0.407196250268457 -400,0,130,0.414862153488721,0.126863988113943,5.35690654890671e-91,0.414862283488721 -400,0,140,0.421523581682945,0.120202559919719,-4.12069691331547e-92,0.421523721682945 +400,0,0,0.0279497670294416,0.513776374573222,2.4382835194612e-30,0.0279497670294416 +400,0,10,0.0840693945207167,0.457656747081947,3.65171239030557e-39,0.0840694045207167 +400,0,20,0.1507380830706,0.390988058532064,-3.65171237936754e-39,0.1507381030706 +400,0,30,0.208717076518865,0.333009065083799,-1.64070378794541e-47,0.208717106518865 +400,0,40,0.254965876479969,0.286760265122695,5.46901257187999e-48,0.254965916479969 +400,0,50,0.291168543923704,0.25055759767896,4.0953525157576e-56,0.291168593923704 +400,0,60,0.319608689868687,0.222117451733977,-8.19070485977906e-57,0.319608749868687 +400,0,70,0.342221037288558,0.199505104314106,-8.58680667843167e-65,0.342221107288558 +400,0,80,0.360467778401035,0.181258363201629,1.22668662425564e-65,0.360467858401035 +400,0,90,0.375415036313572,0.166311105289092,1.65344027914067e-73,0.375415126313572 +400,0,100,0.387835018036369,0.153891123566295,-1.83715576482612e-74,0.387835118036369 +400,0,110,0.398290437411176,0.143435704191488,-3.02657225418411e-82,0.398290547411176 +400,0,120,0.407196130268612,0.134530011334052,2.75142910770929e-83,0.407196250268612 +400,0,130,0.414862153488739,0.126863988113925,5.35690654890671e-91,0.414862283488739 +400,0,140,0.421523581682947,0.120202559919717,-4.12069691331547e-92,0.421523721682947 400,0,150,0.427361148827019,0.114364992775645,-9.25708673056568e-100,0.427361298827019 400,0,160,0.432515669780438,0.109210471822226,6.17139031571224e-101,0.432515829780438 400,0,170,0.43709823276256,0.104627908840104,1.57124659632959e-108,0.43709840276256 @@ -553,22 +553,22 @@ vsk,vgk,vpk,ip,is,ig,ip_terminal 400,0,580,0.490666038128683,0.0510601034739812,-2.97880176463542e-286,0.490666618128683 400,0,590,0.49105036508437,0.050675776518294,-2.63212610639224e-293,0.49105095508437 400,0,600,0.491421940034782,0.0503042015678819,4.46122253749779e-295,0.491422540034782 -400,-10,0,0,0.346540710962086,-9.99998805539803e-10,0 -400,-10,10,0.0506976196467263,0.29584309131536,-9.99998805539803e-10,0.0506976296467263 -400,-10,20,0.0960500244601531,0.250490686501933,-9.99998805539803e-10,0.0960500444601531 -400,-10,30,0.133474457095377,0.213066253866709,-9.99998805539803e-10,0.133474487095377 -400,-10,40,0.163096581674721,0.183444129287365,-9.99998805539803e-10,0.163096621674721 -400,-10,50,0.186259246249364,0.160281464712723,-9.99998805539803e-10,0.186259296249364 -400,-10,60,0.204452743250561,0.142087967711526,-9.99998805539803e-10,0.204452803250561 -400,-10,70,0.218917843439641,0.127622867522445,-9.99998805539803e-10,0.218917913439641 -400,-10,80,0.230590237930478,0.115950473031609,-9.99998805539803e-10,0.230590317930478 -400,-10,90,0.240151957904888,0.106388753057199,-9.99998805539803e-10,0.240152047904888 -400,-10,100,0.248096985839828,0.0984437251222589,-9.99998805539803e-10,0.248097085839828 -400,-10,110,0.254785288635082,0.0917554223270042,-9.99998805539803e-10,0.254785398635082 -400,-10,120,0.260482235667594,0.0860584752944928,-9.99998805539803e-10,0.260482355667594 -400,-10,130,0.265386169469169,0.0811545414929177,-9.99998805539803e-10,0.265386299469169 -400,-10,140,0.269647466617613,0.0768932443444732,-9.99998805539803e-10,0.269647606617613 -400,-10,150,0.273381742136257,0.0731589688258293,-9.99998805539803e-10,0.273381892136257 +400,-10,0,0.0178793884839168,0.32866132247817,-9.99998805539803e-10,0.0178793884839168 +400,-10,10,0.0537789586102891,0.292761752351797,-9.99998805539803e-10,0.0537789686102891 +400,-10,20,0.0964267338508129,0.250113977111274,-9.99998805539803e-10,0.0964267538508129 +400,-10,30,0.133515735225172,0.213024975736914,-9.99998805539803e-10,0.133515765225172 +400,-10,40,0.163100964345276,0.18343974661681,-9.99998805539803e-10,0.163101004345276 +400,-10,50,0.186259710344795,0.160281000617291,-9.99998805539803e-10,0.186259760344795 +400,-10,60,0.204452792861512,0.142087918100574,-9.99998805539803e-10,0.204452852861512 +400,-10,70,0.218917848818054,0.127622862144033,-9.99998805539803e-10,0.218917918818054 +400,-10,80,0.230590238522475,0.115950472439611,-9.99998805539803e-10,0.230590318522475 +400,-10,90,0.240151957971015,0.106388752991072,-9.99998805539803e-10,0.240152047971015 +400,-10,100,0.248096985847315,0.0984437251147711,-9.99998805539803e-10,0.248097085847315 +400,-10,110,0.254785288635941,0.0917554223261458,-9.99998805539803e-10,0.254785398635941 +400,-10,120,0.260482235667693,0.0860584752943932,-9.99998805539803e-10,0.260482355667693 +400,-10,130,0.26538616946918,0.081154541492906,-9.99998805539803e-10,0.26538629946918 +400,-10,140,0.269647466617615,0.0768932443444718,-9.99998805539803e-10,0.269647606617615 +400,-10,150,0.273381742136257,0.073158968825829,-9.99998805539803e-10,0.273381892136257 400,-10,160,0.276679074900341,0.0698616360617456,-9.99998805539803e-10,0.276679234900341 400,-10,170,0.279610527735818,0.0669301832262688,-9.99998805539803e-10,0.279610697735818 400,-10,180,0.282232814719639,0.0643078962424477,-9.99998805539803e-10,0.282232994719639 @@ -614,22 +614,22 @@ vsk,vgk,vpk,ip,is,ig,ip_terminal 400,-10,580,0.313877704323117,0.0326630066389695,-9.99998805539803e-10,0.313878284323117 400,-10,590,0.314123557211205,0.0324171537508816,-9.99998805539803e-10,0.314124147211205 400,-10,600,0.31436125267687,0.0321794582852159,-9.99998805539803e-10,0.314361852676871 -400,-20,0,0,0.179876566735198,-9.99997784134621e-10,0 -400,-20,10,0.026315274007439,0.153561292727759,-9.99997784134621e-10,0.026315284007439 -400,-20,20,0.0498560431377839,0.130020523597414,-9.99997784134621e-10,0.0498560631377839 -400,-20,30,0.0692816928276793,0.110594873907518,-9.99997784134621e-10,0.0692817228276793 -400,-20,40,0.0846574507117728,0.0952191160234248,-9.99997784134621e-10,0.0846574907117728 -400,-20,50,0.0966803399375687,0.0831962267976289,-9.99997784134621e-10,0.0966803899375687 -400,-20,60,0.106123916619791,0.0737526501154062,-9.99997784134621e-10,0.106123976619791 -400,-20,70,0.113632219330514,0.0662443474046833,-9.99997784134621e-10,0.113632289330514 -400,-20,80,0.119690930991726,0.0601856357434719,-9.99997784134621e-10,0.119691010991726 -400,-20,90,0.124654068962746,0.0552224977724517,-9.99997784134621e-10,0.124654158962746 -400,-20,100,0.128778041420656,0.0510985253145417,-9.99997784134621e-10,0.128778141420656 -400,-20,110,0.132249693974135,0.047626872761063,-9.99997784134621e-10,0.132249803974135 -400,-20,120,0.135206770129012,0.0446697966061851,-9.99997784134621e-10,0.135206890129012 -400,-20,130,0.137752222215364,0.0421243445198341,-9.99997784134621e-10,0.137752352215364 -400,-20,140,0.139964105196652,0.0399124615385455,-9.99997784134621e-10,0.139964245196652 -400,-20,150,0.141902430588991,0.0379741361462066,-9.99997784134621e-10,0.141902580588991 +400,-20,0,0.00928053447712713,0.17059603225807,-9.99997784134621e-10,0.00928053447712713 +400,-20,10,0.0279146839935682,0.151961882741629,-9.99997784134621e-10,0.0279146939935682 +400,-20,20,0.0500515791591093,0.129824987576088,-9.99997784134621e-10,0.0500515991591093 +400,-20,30,0.0693031187901534,0.110573447945044,-9.99997784134621e-10,0.0693031487901534 +400,-20,40,0.0846597255952357,0.0952168411399619,-9.99997784134621e-10,0.0846597655952357 +400,-20,50,0.0966805808324773,0.0831959859027202,-9.99997784134621e-10,0.0966806308324773 +400,-20,60,0.106123942371016,0.0737526243641816,-9.99997784134621e-10,0.106124002371016 +400,-20,70,0.113632222122251,0.0662443446129466,-9.99997784134621e-10,0.113632292122251 +400,-20,80,0.11969093129901,0.0601856354361877,-9.99997784134621e-10,0.11969101129901 +400,-20,90,0.12465406899707,0.0552224977381277,-9.99997784134621e-10,0.12465415899707 +400,-20,100,0.128778041424543,0.051098525310655,-9.99997784134621e-10,0.128778141424543 +400,-20,110,0.13224969397458,0.0476268727606175,-9.99997784134621e-10,0.13224980397458 +400,-20,120,0.135206770129064,0.0446697966061334,-9.99997784134621e-10,0.135206890129064 +400,-20,130,0.13775222221537,0.042124344519828,-9.99997784134621e-10,0.13775235221537 +400,-20,140,0.139964105196653,0.0399124615385448,-9.99997784134621e-10,0.139964245196653 +400,-20,150,0.141902430588991,0.0379741361462065,-9.99997784134621e-10,0.141902580588991 400,-20,160,0.143613955031069,0.0362626117041282,-9.99997784134621e-10,0.143614115031069 400,-20,170,0.145135564628187,0.034741002107011,-9.99997784134621e-10,0.145135734628187 400,-20,180,0.146496697576563,0.033379869158635,-9.99997784134621e-10,0.146496877576563 @@ -675,22 +675,22 @@ vsk,vgk,vpk,ip,is,ig,ip_terminal 400,-20,580,0.162922398559241,0.0169541681759567,-9.99997784134621e-10,0.162922978559241 400,-20,590,0.163050011771866,0.0168265549633318,-9.99997784134621e-10,0.163050601771866 400,-20,600,0.163173390765848,0.0167031759693493,-9.99997784134621e-10,0.163173990765848 -400,-30,0,0,0.0695972748520387,-9.99996691716798e-10,0 -400,-30,10,0.0101818229641808,0.0594154518878578,-9.99996691716798e-10,0.0101818329641808 -400,-30,20,0.0192901432369649,0.0503071316150737,-9.99996691716798e-10,0.0192901632369649 -400,-30,30,0.0268062544524817,0.042791020399557,-9.99996691716798e-10,0.0268062844524817 -400,-30,40,0.032755394281757,0.0368418805702817,-9.99996691716798e-10,0.032755434281757 -400,-30,50,0.0374072527264156,0.0321900221256231,-9.99996691716798e-10,0.0374073027264156 -400,-30,60,0.0410611316827919,0.0285361431692467,-9.99996691716798e-10,0.0410611916827919 -400,-30,70,0.0439662205274092,0.0256310543246294,-9.99996691716798e-10,0.0439662905274092 -400,-30,80,0.0463104381672497,0.023286836684789,-9.99996691716798e-10,0.0463105181672497 -400,-30,90,0.0482307598843424,0.0213665149676962,-9.99996691716798e-10,0.0482308498843424 -400,-30,100,0.0498263943232514,0.0197708805287872,-9.99996691716798e-10,0.0498264943232514 -400,-30,110,0.0511696351985953,0.0184276396534434,-9.99996691716798e-10,0.0511697451985953 -400,-30,120,0.0523137777939586,0.0172834970580801,-9.99996691716798e-10,0.0523138977939586 -400,-30,130,0.0532986561007436,0.016298618751295,-9.99996691716798e-10,0.0532987861007437 -400,-30,140,0.0541544708996547,0.015442803952384,-9.99996691716798e-10,0.0541546108996547 -400,-30,150,0.0549044416575571,0.0146928331944815,-9.99996691716798e-10,0.0549045916575571 +400,-30,0,0.00359079517972615,0.0660064796723125,-9.99996691716798e-10,0.00359079517972615 +400,-30,10,0.0108006616402025,0.0587966132118362,-9.99996691716798e-10,0.0108006716402025 +400,-30,20,0.0193657994186825,0.0502314754333561,-9.99996691716798e-10,0.0193658194186825 +400,-30,30,0.0268145445184216,0.0427827303336171,-9.99996691716798e-10,0.0268145745184216 +400,-30,40,0.0327562744725039,0.0368410003795348,-9.99996691716798e-10,0.0327563144725039 +400,-30,50,0.0374073459327152,0.0321899289193235,-9.99996691716798e-10,0.0374073959327152 +400,-30,60,0.0410611416463747,0.028536133205664,-9.99996691716798e-10,0.0410612016463747 +400,-30,70,0.0439662216075792,0.0256310532444595,-9.99996691716798e-10,0.0439662916075792 +400,-30,80,0.0463104382861431,0.0232868365658956,-9.99996691716798e-10,0.0463105182861431 +400,-30,90,0.0482307598976229,0.0213665149544157,-9.99996691716798e-10,0.0482308498976229 +400,-30,100,0.0498263943247552,0.0197708805272834,-9.99996691716798e-10,0.0498264943247552 +400,-30,110,0.0511696351987677,0.018427639653271,-9.99996691716798e-10,0.0511697451987677 +400,-30,120,0.0523137777939786,0.0172834970580601,-9.99996691716798e-10,0.0523138977939786 +400,-30,130,0.053298656100746,0.0162986187512927,-9.99996691716798e-10,0.053298786100746 +400,-30,140,0.0541544708996549,0.0154428039523837,-9.99996691716798e-10,0.0541546108996549 +400,-30,150,0.0549044416575572,0.0146928331944815,-9.99996691716798e-10,0.0549045916575572 400,-30,160,0.0555666593058775,0.0140306155461612,-9.99996691716798e-10,0.0555668193058775 400,-30,170,0.0561553957003405,0.0134418791516982,-9.99996691716798e-10,0.0561555657003405 400,-30,180,0.0566820409751402,0.0129152338768985,-9.99996691716798e-10,0.0566822209751402 @@ -736,25 +736,25 @@ vsk,vgk,vpk,ip,is,ig,ip_terminal 400,-30,580,0.0630374214823287,0.00655985336970995,-9.99996691716798e-10,0.0630380014823287 400,-30,590,0.0630867971847618,0.00651047766727684,-9.99996691716798e-10,0.0630873871847618 400,-30,600,0.0631345345966494,0.00646274025538925,-9.99996691716798e-10,0.0631351345966494 -400,-40,0,0,0.0207159399361903,-9.99995592110281e-10,0 -400,-40,10,0.00303066511462288,0.0176852748215675,-9.99995592110281e-10,0.00303067511462288 -400,-40,20,0.00574179735495446,0.0149741425812359,-9.99995592110281e-10,0.00574181735495446 -400,-40,30,0.00797900145274982,0.0127369384834405,-9.99995592110281e-10,0.00797903145274982 -400,-40,40,0.00974978951359377,0.0109661504225966,-9.99995592110281e-10,0.00974982951359377 -400,-40,50,0.0111344359718938,0.00958150396429655,-9.99995592110281e-10,0.0111344859718938 -400,-40,60,0.0122220293748729,0.00849391056131744,-9.99995592110281e-10,0.0122220893748729 -400,-40,70,0.0130867420542462,0.0076291978819441,-9.99995592110281e-10,0.0130868120542462 -400,-40,80,0.0137845089126115,0.00693143102357881,-9.99995592110281e-10,0.0137845889126115 -400,-40,90,0.0143561012548983,0.00635983868129201,-9.99995592110281e-10,0.0143561912548983 -400,-40,100,0.0148310489775905,0.00588489095859985,-9.99995592110281e-10,0.0148311489775905 -400,-40,110,0.0152308706279729,0.00548506930821745,-9.99995592110281e-10,0.0152309806279729 -400,-40,120,0.0155714297854165,0.00514451015077383,-9.99995592110281e-10,0.0155715497854165 -400,-40,130,0.0158645832155068,0.00485135672068348,-9.99995592110281e-10,0.0158647132155068 -400,-40,140,0.0161193203156079,0.00459661962058244,-9.99995592110281e-10,0.0161194603156079 -400,-40,150,0.0163425524638154,0.00437338747237496,-9.99995592110281e-10,0.0163427024638154 +400,-40,0,0.00106881623489587,0.0196471237012945,-9.99995592110281e-10,0.00106881623489587 +400,-40,10,0.00321486521254209,0.0175010747236482,-9.99995592110281e-10,0.00321487521254209 +400,-40,20,0.00576431675560046,0.0149516231805899,-9.99995592110281e-10,0.00576433675560046 +400,-40,30,0.00798146902793066,0.0127344709082597,-9.99995592110281e-10,0.00798149902793066 +400,-40,40,0.00975005150630374,0.0109658884298866,-9.99995592110281e-10,0.00975009150630374 +400,-40,50,0.0111344637151655,0.00958147622102488,-9.99995592110281e-10,0.0111345137151655 +400,-40,60,0.0122220323405778,0.0084939075956125,-9.99995592110281e-10,0.0122220923405778 +400,-40,70,0.0130867423757637,0.00762919756042668,-9.99995592110281e-10,0.0130868123757637 +400,-40,80,0.0137845089480007,0.00693143098818965,-9.99995592110281e-10,0.0137845889480007 +400,-40,90,0.0143561012588513,0.006359838677339,-9.99995592110281e-10,0.0143561912588513 +400,-40,100,0.0148310489780381,0.00588489095815223,-9.99995592110281e-10,0.0148311489780381 +400,-40,110,0.0152308706280242,0.00548506930816614,-9.99995592110281e-10,0.0152309806280242 +400,-40,120,0.0155714297854225,0.00514451015076787,-9.99995592110281e-10,0.0155715497854225 +400,-40,130,0.0158645832155075,0.00485135672068278,-9.99995592110281e-10,0.0158647132155075 +400,-40,140,0.016119320315608,0.00459661962058235,-9.99995592110281e-10,0.016119460315608 +400,-40,150,0.0163425524638154,0.00437338747237494,-9.99995592110281e-10,0.0163427024638154 400,-40,160,0.0165396645067287,0.00417627542946158,-9.99995592110281e-10,0.0165398245067287 400,-40,170,0.0167149045259949,0.0040010354101954,-9.99995592110281e-10,0.0167150745259949 -400,-40,180,0.0168716628459669,0.00384427709022348,-9.99995592110281e-10,0.0168718428459669 +400,-40,180,0.0168716628459668,0.00384427709022348,-9.99995592110281e-10,0.0168718428459668 400,-40,190,0.0170126743840163,0.00370326555217407,-9.99995592110281e-10,0.0170128643840163 400,-40,200,0.0171401673067526,0.00357577262943775,-9.99995592110281e-10,0.0171403673067526 400,-40,210,0.0172559736044424,0.0034599663317479,-9.99995592110281e-10,0.0172561836044424 @@ -797,22 +797,22 @@ vsk,vgk,vpk,ip,is,ig,ip_terminal 400,-40,580,0.0187633702603513,0.00195256967583906,-9.99995592110281e-10,0.0187639502603513 400,-40,590,0.0187780671588733,0.00193787277731701,-9.99995592110281e-10,0.0187786571588733 400,-40,600,0.0187922764128919,0.00192366352329845,-9.99995592110281e-10,0.0187928764128919 -400,-46,0,0,0.00932397763697935,-9.99994929570813e-10,0 -400,-46,10,0.00136406331747232,0.00795991431950702,-9.99994929570813e-10,0.00136407331747232 -400,-46,20,0.00258430900545987,0.00673966863151947,-9.99994929570813e-10,0.00258432900545987 -400,-46,30,0.00359124574313409,0.00573273189384525,-9.99994929570813e-10,0.00359127574313409 -400,-46,40,0.00438825463242398,0.00493572300455537,-9.99994929570813e-10,0.00438829463242398 -400,-46,50,0.00501146616190702,0.00431251147507233,-9.99994929570813e-10,0.00501151616190702 -400,-46,60,0.00550097793876769,0.00382299969821166,-9.99994929570813e-10,0.00550103793876769 -400,-46,70,0.00589017397378826,0.00343380366319109,-9.99994929570813e-10,0.00589024397378826 -400,-46,80,0.00620422984589751,0.00311974779108183,-9.99994929570813e-10,0.00620430984589751 -400,-46,90,0.00646149619409928,0.00286248144288007,-9.99994929570813e-10,0.00646158619409928 -400,-46,100,0.00667526404430334,0.002648713592676,-9.99994929570813e-10,0.00667536404430334 -400,-46,110,0.00685521861737261,0.00246875901960674,-9.99994929570813e-10,0.00685532861737261 -400,-46,120,0.00700849990597712,0.00231547773100223,-9.99994929570813e-10,0.00700861990597712 -400,-46,130,0.00714044448753053,0.00218353314944882,-9.99994929570813e-10,0.00714057448753053 -400,-46,140,0.00725509837395649,0.00206887926302285,-9.99994929570813e-10,0.00725523837395649 -400,-46,150,0.00735557228748166,0.00196840534949768,-9.99994929570813e-10,0.00735572228748166 +400,-46,0,0.00048106041545331,0.00884291722152604,-9.99994929570813e-10,0.00048106041545331 +400,-46,10,0.00144696940809714,0.0078770082288822,-9.99994929570813e-10,0.00144697940809714 +400,-46,20,0.00259444469752445,0.0067295329394549,-9.99994929570813e-10,0.00259446469752445 +400,-46,30,0.00359235636692787,0.00573162127005147,-9.99994929570813e-10,0.00359238636692787 +400,-46,40,0.00438837255196691,0.00493560508501244,-9.99994929570813e-10,0.00438841255196691 +400,-46,50,0.00501147864879612,0.00431249898818323,-9.99994929570813e-10,0.00501152864879612 +400,-46,60,0.00550097927359327,0.00382299836338608,-9.99994929570813e-10,0.00550103927359327 +400,-46,70,0.00589017411849911,0.00343380351848024,-9.99994929570813e-10,0.0058902441184991 +400,-46,80,0.00620422986182572,0.00311974777515363,-9.99994929570813e-10,0.00620430986182572 +400,-46,90,0.00646149619587848,0.00286248144110087,-9.99994929570813e-10,0.00646158619587848 +400,-46,100,0.00667526404450481,0.00264871359247454,-9.99994929570813e-10,0.00667536404450481 +400,-46,110,0.0068552186173957,0.00246875901958364,-9.99994929570813e-10,0.0068553286173957 +400,-46,120,0.0070084999059798,0.00231547773099955,-9.99994929570813e-10,0.0070086199059798 +400,-46,130,0.00714044448753084,0.0021835331494485,-9.99994929570813e-10,0.00714057448753084 +400,-46,140,0.00725509837395653,0.00206887926302281,-9.99994929570813e-10,0.00725523837395653 +400,-46,150,0.00735557228748167,0.00196840534949768,-9.99994929570813e-10,0.00735572228748167 400,-46,160,0.00744428987817582,0.00187968775880353,-9.99994929570813e-10,0.00744444987817582 400,-46,170,0.007523163152851,0.00180081448412835,-9.99994929570813e-10,0.007523333152851 400,-46,180,0.00759371805281358,0.00173025958416577,-9.99994929570813e-10,0.00759389805281358 @@ -858,21 +858,21 @@ vsk,vgk,vpk,ip,is,ig,ip_terminal 400,-46,580,0.00844515118506623,0.000878826451913117,-9.99994929570813e-10,0.00844573118506623 400,-46,590,0.00845176606971904,0.000872211567260303,-9.99994929570813e-10,0.00845235606971904 400,-46,600,0.00845816147186422,0.000865816165115126,-9.99994929570813e-10,0.00845876147186422 -400,-50,0,0,0.00539714543401956,-9.99994492503764e-10,0 -400,-50,10,0.000789582342670051,0.00460756309134951,-9.99994492503764e-10,0.000789592342670051 -400,-50,20,0.00149591645239424,0.00390122898162532,-9.99994492503764e-10,0.00149593645239424 -400,-50,30,0.00207877756893437,0.00331836786508519,-9.99994492503764e-10,0.00207880756893437 -400,-50,40,0.00254012282899201,0.00285702260502755,-9.99994492503764e-10,0.00254016282899201 -400,-50,50,0.002900866214673,0.00249627921934656,-9.99994492503764e-10,0.002900916214673 -400,-50,60,0.00318421805808629,0.00221292737593327,-9.99994492503764e-10,0.00318427805808629 -400,-50,70,0.00340950255416003,0.00198764287985952,-9.99994492503764e-10,0.00340957255416003 -400,-50,80,0.00359129248139656,0.00180585295262299,-9.99994492503764e-10,0.00359137248139656 -400,-50,90,0.00374021003038522,0.00165693540363433,-9.99994492503764e-10,0.00374030003038522 -400,-50,100,0.00386394865585053,0.00153319677816903,-9.99994492503764e-10,0.00386404865585053 -400,-50,110,0.003968114607356,0.00142903082666356,-9.99994492503764e-10,0.003968224607356 -400,-50,120,0.00405684083977761,0.00134030459424195,-9.99994492503764e-10,0.00405696083977761 -400,-50,130,0.00413321640861748,0.00126392902540207,-9.99994492503764e-10,0.00413334640861748 -400,-50,140,0.00419958333094496,0.0011975621030746,-9.99994492503764e-10,0.00419972333094496 +400,-50,0,0.000278459808231856,0.0051186856257877,-9.99994492503764e-10,0.000278459808231856 +400,-50,10,0.000837572186263576,0.00455957324775598,-9.99994492503764e-10,0.000837582186263576 +400,-50,20,0.00150178345532763,0.00389536197869193,-9.99994492503764e-10,0.00150180345532763 +400,-50,30,0.0020794204488694,0.00331772498515016,-9.99994492503764e-10,0.0020794504488694 +400,-50,40,0.00254019108622594,0.00285695434779361,-9.99994492503764e-10,0.00254023108622594 +400,-50,50,0.0029008734426565,0.00249627199136306,-9.99994492503764e-10,0.0029009234426565 +400,-50,60,0.00318421883074449,0.00221292660327507,-9.99994492503764e-10,0.00318427883074449 +400,-50,70,0.0034095026379253,0.00198764279609426,-9.99994492503764e-10,0.0034095726379253 +400,-50,80,0.00359129249061654,0.00180585294340302,-9.99994492503764e-10,0.00359137249061654 +400,-50,90,0.0037402100314151,0.00165693540260445,-9.99994492503764e-10,0.0037403000314151 +400,-50,100,0.00386394865596715,0.00153319677805241,-9.99994492503764e-10,0.00386404865596715 +400,-50,110,0.00396811460736937,0.00142903082665019,-9.99994492503764e-10,0.00396822460736937 +400,-50,120,0.00405684083977916,0.0013403045942404,-9.99994492503764e-10,0.00405696083977916 +400,-50,130,0.00413321640861767,0.00126392902540189,-9.99994492503764e-10,0.00413334640861767 +400,-50,140,0.00419958333094498,0.00119756210307458,-9.99994492503764e-10,0.00419972333094498 400,-50,150,0.00425774223530245,0.00113940319871711,-9.99994492503764e-10,0.00425789223530245 400,-50,160,0.00430909604138979,0.00108804939262977,-9.99994492503764e-10,0.00430925604138979 400,-50,170,0.00435475150634833,0.00104239392767123,-9.99994492503764e-10,0.00435492150634833 @@ -919,22 +919,22 @@ vsk,vgk,vpk,ip,is,ig,ip_terminal 400,-50,580,0.00488844042024658,0.000508705013772975,-9.99994492503764e-10,0.00488902042024658 400,-50,590,0.00489226941854436,0.000504876015475198,-9.99994492503764e-10,0.00489285941854436 400,-50,600,0.00489597137031113,0.000501174063708426,-9.99994492503764e-10,0.00489657137031113 -400,-60,0,0,0.00134416916587979,-9.99993385958353e-10,0 -400,-60,10,0.000196646959381597,0.0011475222064982,-9.99993385958353e-10,0.000196656959381597 -400,-60,20,0.000372560790629482,0.00097160837525031,-9.99993385958353e-10,0.000372580790629482 -400,-60,30,0.0005177234419646,0.000826445723915192,-9.99993385958353e-10,0.0005177534419646 -400,-60,40,0.000632622341943368,0.000711546823936424,-9.99993385958353e-10,0.000632662341943368 -400,-60,50,0.000722466156929531,0.000621703008950262,-9.99993385958353e-10,0.000722516156929531 -400,-60,60,0.00079303546355051,0.000551133702329282,-9.99993385958353e-10,0.00079309546355051 -400,-60,70,0.000849142988699701,0.000495026177180091,-9.99993385958353e-10,0.000849212988699701 -400,-60,80,0.000894418110121969,0.000449751055757823,-9.99993385958353e-10,0.000894498110121969 -400,-60,90,0.000931506304252746,0.000412662861627047,-9.99993385958353e-10,0.000931596304252746 -400,-60,100,0.000962323640382029,0.000381845525497763,-9.99993385958353e-10,0.000962423640382029 -400,-60,110,0.00098826636545029,0.000355902800429502,-9.99993385958353e-10,0.00098837636545029 -400,-60,120,0.00101036379960021,0.000333805366279579,-9.99993385958353e-10,0.00101048379960021 -400,-60,130,0.00102938527788279,0.000314783887997006,-9.99993385958353e-10,0.00102951527788279 -400,-60,140,0.00104591408402994,0.000298255081849848,-9.99993385958353e-10,0.00104605408402994 -400,-60,150,0.00106039866794831,0.000283770497931481,-9.99993385958353e-10,0.00106054866794831 +400,-60,0,6.9350936108331e-05,0.00127481822977146,-9.99993385958353e-10,6.9350936108331e-05 +400,-60,10,0.000208598919695138,0.00113557024618465,-9.99993385958353e-10,0.000208608919695138 +400,-60,20,0.000374021978684462,0.00097014718719533,-9.99993385958353e-10,0.000374041978684462 +400,-60,30,0.000517883552414948,0.000826285613464844,-9.99993385958353e-10,0.000517913552414948 +400,-60,40,0.000632639341535157,0.000711529824344636,-9.99993385958353e-10,0.000632679341535157 +400,-60,50,0.000722467957072341,0.000621701208807451,-9.99993385958353e-10,0.000722517957072342 +400,-60,60,0.00079303565598248,0.000551133509897312,-9.99993385958353e-10,0.00079309565598248 +400,-60,70,0.000849143009561598,0.000495026156318194,-9.99993385958353e-10,0.000849213009561598 +400,-60,80,0.000894418112418221,0.000449751053461571,-9.99993385958353e-10,0.000894498112418221 +400,-60,90,0.000931506304509239,0.000412662861370553,-9.99993385958353e-10,0.000931596304509239 +400,-60,100,0.000962323640411073,0.000381845525468719,-9.99993385958353e-10,0.000962423640411073 +400,-60,110,0.000988266365453619,0.000355902800426173,-9.99993385958353e-10,0.000988376365453619 +400,-60,120,0.0010103637996006,0.000333805366279193,-9.99993385958353e-10,0.0010104837996006 +400,-60,130,0.00102938527788283,0.00031478388799696,-9.99993385958353e-10,0.00102951527788283 +400,-60,140,0.00104591408402995,0.000298255081849843,-9.99993385958353e-10,0.00104605408402995 +400,-60,150,0.00106039866794831,0.00028377049793148,-9.99993385958353e-10,0.00106054866794831 400,-60,160,0.00107318842941334,0.000270980736466452,-9.99993385958353e-10,0.00107334842941334 400,-60,170,0.00108455900836131,0.000259610157518486,-9.99993385958353e-10,0.00108472900836131 400,-60,180,0.00109473038850869,0.000249438777371102,-9.99993385958353e-10,0.00109491038850869 @@ -980,23 +980,23 @@ vsk,vgk,vpk,ip,is,ig,ip_terminal 400,-60,580,0.00121747523065025,0.000126693935229541,-9.99993385958353e-10,0.00121805523065025 400,-60,590,0.00121842884983858,0.000125740316041213,-9.99993385958353e-10,0.00121901884983858 400,-60,600,0.00121935082785072,0.000124818338029077,-9.99993385958353e-10,0.00121995082785072 -490,0,0,0,0.6698385564122,2.4382835194612e-30,0 -490,0,10,0.0979948943470982,0.571843662065102,3.65171239030557e-39,0.0979949043470982 -490,0,20,0.185657868448202,0.484180687963998,-3.65171237936754e-39,0.185657888448202 -490,0,30,0.257996635980963,0.411841920431237,-1.64070378794541e-47,0.257996665980963 -490,0,40,0.315254096759535,0.354584459652665,5.46901257187999e-48,0.315254136759535 -490,0,50,0.360025880594872,0.309812675817328,4.0953525157576e-56,0.360025930594872 -490,0,60,0.395192616801819,0.274645939610381,-8.19070485977906e-57,0.395192676801819 -490,0,70,0.423152627047402,0.246685929364798,-8.58680667843167e-65,0.423152697047402 -490,0,80,0.445714535730249,0.224124020681951,1.22668662425564e-65,0.445714615730249 -490,0,90,0.464196660634695,0.205641895777505,1.65344027914067e-73,0.464196750634695 -490,0,100,0.479553834768203,0.190284721643997,-1.83715576482612e-74,0.479553934768203 -490,0,110,0.492481848555626,0.177356707856574,-3.02657225418411e-82,0.492481958555626 -490,0,120,0.503493642135722,0.166344914276478,2.75142910770929e-83,0.503493762135722 -490,0,130,0.512972597520988,0.156865958891212,5.35690654890671e-91,0.512972727520988 -490,0,140,0.521209381945055,0.148629174467145,-4.12069691331547e-92,0.521209521945055 +490,0,0,0.034559586775102,0.635278969637098,2.4382835194612e-30,0.034559586775102 +490,0,10,0.103950903490842,0.565887652921358,3.65171239030557e-39,0.103950913490842 +490,0,20,0.186386020917578,0.483452535494622,-3.65171237936754e-39,0.186386040917578 +490,0,30,0.258076423671121,0.411762132741079,-1.64070378794541e-47,0.258076453671121 +490,0,40,0.315262568150125,0.354575988262076,5.46901257187999e-48,0.315262608150125 +490,0,50,0.360026777658346,0.309811778753854,4.0953525157576e-56,0.360026827658346 +490,0,60,0.395192712696262,0.274645843715938,-8.19070485977906e-57,0.395192772696262 +490,0,70,0.423152637443491,0.246685918968709,-8.58680667843167e-65,0.423152707443491 +490,0,80,0.445714536874538,0.224124019537662,1.22668662425564e-65,0.445714616874538 +490,0,90,0.464196660762513,0.205641895649687,1.65344027914067e-73,0.464196750762513 +490,0,100,0.479553834782677,0.190284721629523,-1.83715576482612e-74,0.479553934782677 +490,0,110,0.492481848557285,0.177356707854915,-3.02657225418411e-82,0.492481958557285 +490,0,120,0.503493642135915,0.166344914276286,2.75142910770929e-83,0.503493762135915 +490,0,130,0.512972597521011,0.156865958891189,5.35690654890671e-91,0.512972727521011 +490,0,140,0.521209381945058,0.148629174467143,-4.12069691331547e-92,0.521209521945058 490,0,150,0.52842747102818,0.14141108538402,-9.25708673056568e-100,0.52842762102818 -490,0,160,0.534800980831899,0.135037575580302,6.17139031571224e-101,0.534801140831899 +490,0,160,0.534800980831899,0.135037575580301,6.17139031571224e-101,0.534801140831899 490,0,170,0.540467270746451,0.129371285665749,1.57124659632959e-108,0.540467440746451 490,0,180,0.545535965050404,0.124302591361797,-9.24262545921235e-110,0.545536145050404 490,0,190,0.550095495797038,0.119743060615163,-2.6300341248365e-117,0.550095685797037 @@ -1041,25 +1041,25 @@ vsk,vgk,vpk,ip,is,ig,ip_terminal 490,0,580,0.606703286808846,0.0631352696033544,-2.97880176463542e-286,0.606703866808846 490,0,590,0.607178502962207,0.0626600534499929,-2.63212610639224e-293,0.607179092962207 490,0,600,0.607637951397992,0.0622006050142083,4.46122253749779e-295,0.607638551397992 -490,-10,0,0,0.471071892215438,-9.99998805539803e-10,0 -490,-10,10,0.0689160692015051,0.402155823013933,-9.99998805539803e-10,0.0689160792015051 -490,-10,20,0.130566093213601,0.340505799001837,-9.99998805539803e-10,0.130566113213601 -490,-10,30,0.181439187597288,0.28963270461815,-9.99998805539803e-10,0.181439217597288 -490,-10,40,0.221706174521545,0.249365717693893,-9.99998805539803e-10,0.221706214521545 -490,-10,50,0.253192461369736,0.217879430845702,-9.99998805539803e-10,0.253192511369736 -490,-10,60,0.277923884799254,0.193148007416183,-9.99998805539803e-10,0.277923944799254 -490,-10,70,0.297587092906141,0.173484799309296,-9.99998805539803e-10,0.297587162906141 -490,-10,80,0.313454022203476,0.157617870011962,-9.99998805539803e-10,0.313454102203476 -490,-10,90,0.326451795275143,0.144620096940294,-9.99998805539803e-10,0.326451885275143 -490,-10,100,0.33725190973392,0.133819982481517,-9.99998805539803e-10,0.33725200973392 -490,-10,110,0.346343688430638,0.1247282037848,-9.99998805539803e-10,0.346343798430638 -490,-10,120,0.354087862588432,0.116984029627005,-9.99998805539803e-10,0.354087982588432 -490,-10,130,0.360754050144849,0.110317842070589,-9.99998805539803e-10,0.360754180144849 -490,-10,140,0.366546666271933,0.104525225943505,-9.99998805539803e-10,0.366546806271933 -490,-10,150,0.371622872844423,0.0994490193710143,-9.99998805539803e-10,0.371623022844423 -490,-10,160,0.376105119043228,0.0949667731722098,-9.99998805539803e-10,0.376105279043228 +490,-10,0,0.0243044384060696,0.446767453809368,-9.99998805539803e-10,0.0243044384060696 +490,-10,10,0.0731047031201372,0.397967189095301,-9.99998805539803e-10,0.0731047131201372 +490,-10,20,0.131078175055243,0.339993717160194,-9.99998805539803e-10,0.131078195055243 +490,-10,30,0.181495299234665,0.289576592980773,-9.99998805539803e-10,0.181495329234665 +490,-10,40,0.221712132127234,0.249359760088203,-9.99998805539803e-10,0.221712172127234 +490,-10,50,0.253193092240241,0.217878799975197,-9.99998805539803e-10,0.253193142240241 +490,-10,60,0.277923952238156,0.193147939977281,-9.99998805539803e-10,0.277924012238156 +490,-10,70,0.297587100217314,0.173484791998123,-9.99998805539803e-10,0.297587170217314 +490,-10,80,0.31345402300821,0.157617869207227,-9.99998805539803e-10,0.31345410300821 +490,-10,90,0.326451795365033,0.144620096850405,-9.99998805539803e-10,0.326451885365033 +490,-10,100,0.337251909744099,0.133819982471339,-9.99998805539803e-10,0.337252009744099 +490,-10,110,0.346343688431805,0.124728203783633,-9.99998805539803e-10,0.346343798431805 +490,-10,120,0.354087862588568,0.11698402962687,-9.99998805539803e-10,0.354087982588568 +490,-10,130,0.360754050144865,0.110317842070573,-9.99998805539803e-10,0.360754180144865 +490,-10,140,0.366546666271934,0.104525225943503,-9.99998805539803e-10,0.366546806271934 +490,-10,150,0.371622872844424,0.0994490193710141,-9.99998805539803e-10,0.371623022844424 +490,-10,160,0.376105119043228,0.0949667731722097,-9.99998805539803e-10,0.376105279043228 490,-10,170,0.380090004485157,0.0909818877302812,-9.99998805539803e-10,0.380090174485157 -490,-10,180,0.383654623741495,0.0874172684739432,-9.99998805539803e-10,0.383654803741495 +490,-10,180,0.383654623741495,0.0874172684739433,-9.99998805539803e-10,0.383654803741495 490,-10,190,0.386861167700289,0.0842107245151486,-9.99998805539803e-10,0.386861357700289 490,-10,200,0.389760303947182,0.0813115882682552,-9.99998805539803e-10,0.389760503947182 490,-10,210,0.392393691181904,0.0786782010335336,-9.99998805539803e-10,0.392393901181904 @@ -1102,22 +1102,22 @@ vsk,vgk,vpk,ip,is,ig,ip_terminal 490,-10,580,0.426671266672345,0.0444006255430928,-9.99998805539803e-10,0.426671846672345 490,-10,590,0.427005468056294,0.0440664241591438,-9.99998805539803e-10,0.427006058056294 490,-10,600,0.427328580606249,0.0437433116091889,-9.99998805539803e-10,0.427329180606249 -490,-20,0,0,0.291853292127409,-9.99997784134621e-10,0 -490,-20,10,0.0426970532721597,0.249156238855249,-9.99997784134621e-10,0.0426970632721597 -490,-20,20,0.0808924174299416,0.210960874697467,-9.99997784134621e-10,0.0808924374299416 -490,-20,30,0.112410918792356,0.179442373335053,-9.99997784134621e-10,0.112410948792356 -490,-20,40,0.137358390488504,0.154494901638905,-9.99997784134621e-10,0.137358430488504 -490,-20,50,0.156865766380314,0.134987525747095,-9.99997784134621e-10,0.156865816380314 -490,-20,60,0.172188156584824,0.119665135542585,-9.99997784134621e-10,0.172188216584824 -490,-20,70,0.184370526440924,0.107482765686485,-9.99997784134621e-10,0.184370596440924 -490,-20,80,0.194200906108879,0.0976523860185296,-9.99997784134621e-10,0.194200986108879 -490,-20,90,0.202253695765784,0.0895995963616246,-9.99997784134621e-10,0.202253785765784 -490,-20,100,0.208944922757323,0.0829083693700863,-9.99997784134621e-10,0.208945022757323 -490,-20,110,0.214577747784203,0.0772755443432063,-9.99997784134621e-10,0.214577857784203 -490,-20,120,0.219375662412755,0.0724776297146539,-9.99997784134621e-10,0.219375782412755 -490,-20,130,0.223505708837578,0.0683475832898309,-9.99997784134621e-10,0.223505838837578 -490,-20,140,0.227094532782834,0.0647587593445753,-9.99997784134621e-10,0.227094672782834 -490,-20,150,0.230239504121991,0.0616137880054178,-9.99997784134621e-10,0.230239654121991 +490,-20,0,0.0150578509975612,0.276795441129848,-9.99997784134621e-10,0.0150578509975612 +490,-20,10,0.0452921276522508,0.246561164475158,-9.99997784134621e-10,0.0452921376522508 +490,-20,20,0.0812096784972896,0.210643613630119,-9.99997784134621e-10,0.0812096984972896 +490,-20,30,0.112445682840829,0.17940760928658,-9.99997784134621e-10,0.112445712840829 +490,-20,40,0.137362081531979,0.15449121059543,-9.99997784134621e-10,0.137362121531979 +490,-20,50,0.156866157237074,0.134987134890335,-9.99997784134621e-10,0.156866207237074 +490,-20,60,0.172188198366696,0.119665093760713,-9.99997784134621e-10,0.172188258366696 +490,-20,70,0.184370530970572,0.107482761156837,-9.99997784134621e-10,0.184370600970572 +490,-20,80,0.194200906607454,0.097652385519955,-9.99997784134621e-10,0.194200986607454 +490,-20,90,0.202253695821476,0.0895995963059333,-9.99997784134621e-10,0.202253785821476 +490,-20,100,0.208944922763629,0.0829083693637801,-9.99997784134621e-10,0.208945022763629 +490,-20,110,0.214577747784926,0.0772755443424833,-9.99997784134621e-10,0.214577857784926 +490,-20,120,0.219375662412839,0.0724776297145701,-9.99997784134621e-10,0.219375782412839 +490,-20,130,0.223505708837588,0.0683475832898211,-9.99997784134621e-10,0.223505838837588 +490,-20,140,0.227094532782835,0.0647587593445741,-9.99997784134621e-10,0.227094672782835 +490,-20,150,0.230239504121991,0.0616137880054176,-9.99997784134621e-10,0.230239654121991 490,-20,160,0.233016486427377,0.0588368057000324,-9.99997784134621e-10,0.233016646427377 490,-20,170,0.235485328135397,0.0563679639920123,-9.99997784134621e-10,0.235485498135397 490,-20,180,0.237693793302465,0.0541594988249435,-9.99997784134621e-10,0.237693973302465 @@ -1163,22 +1163,22 @@ vsk,vgk,vpk,ip,is,ig,ip_terminal 490,-20,580,0.264344818471032,0.0275084736563769,-9.99997784134621e-10,0.264345398471032 490,-20,590,0.264551873435998,0.027301418691411,-9.99997784134621e-10,0.264552463435998 490,-20,600,0.264752058297354,0.0271012338300547,-9.99997784134621e-10,0.264752658297354 -490,-30,0,0,0.150892856809651,-9.99996691716798e-10,0 -490,-30,10,0.0220750648335242,0.128817791976127,-9.99996691716798e-10,0.0220750748335242 -490,-30,20,0.0418226838260714,0.109070172983579,-9.99996691716798e-10,0.0418227038260715 -490,-30,30,0.0581182571199899,0.0927745996896611,-9.99996691716798e-10,0.0581182871199899 -490,-30,40,0.0710165021490929,0.079876354660558,-9.99996691716798e-10,0.0710165421490929 -490,-30,50,0.0811021299510567,0.0697907268585942,-9.99996691716798e-10,0.0811021799510567 -490,-30,60,0.0890240526892161,0.0618688041204349,-9.99996691716798e-10,0.089024112689216 -490,-30,70,0.0953225342889926,0.0555703225206583,-9.99996691716798e-10,0.0953226042889926 -490,-30,80,0.100404999046573,0.0504878577630783,-9.99996691716798e-10,0.100405079046573 -490,-30,90,0.104568421113051,0.0463244356965999,-9.99996691716798e-10,0.104568511113051 -490,-30,100,0.108027893332656,0.0428649634769948,-9.99996691716798e-10,0.108027993332656 -490,-30,110,0.110940154674713,0.0399527021349374,-9.99996691716798e-10,0.110940264674713 -490,-30,120,0.11342075388178,0.0374721029278707,-9.99996691716798e-10,0.11342087388178 -490,-30,130,0.115556054461244,0.035336802348407,-9.99996691716798e-10,0.115556184461244 -490,-30,140,0.117411534294071,0.0334813225155803,-9.99996691716798e-10,0.117411674294071 -490,-30,150,0.119037535174481,0.0318553216351695,-9.99996691716798e-10,0.119037685174481 +490,-30,0,0.00778515170369968,0.143107705105951,-9.99996691716798e-10,0.00778515170369968 +490,-30,10,0.0234167601215613,0.12747609668809,-9.99996691716798e-10,0.0234167701215613 +490,-30,20,0.0419867129122526,0.108906143897398,-9.99996691716798e-10,0.0419867329122526 +490,-30,30,0.0581362306934591,0.0927566261161918,-9.99996691716798e-10,0.0581362606934591 +490,-30,40,0.0710184104780701,0.0798744463315808,-9.99996691716798e-10,0.0710184504780701 +490,-30,50,0.0811023320303026,0.0697905247793483,-9.99996691716798e-10,0.0811023820303026 +490,-30,60,0.0890240742911174,0.0618687825185335,-9.99996691716798e-10,0.0890241342911174 +490,-30,70,0.0953225366308936,0.0555703201787573,-9.99996691716798e-10,0.0953226066308936 +490,-30,80,0.100404999304344,0.0504878575053071,-9.99996691716798e-10,0.100405079304344 +490,-30,90,0.104568421141844,0.0463244356678066,-9.99996691716798e-10,0.104568511141844 +490,-30,100,0.108027893335917,0.0428649634737344,-9.99996691716798e-10,0.108027993335917 +490,-30,110,0.110940154675087,0.0399527021345637,-9.99996691716798e-10,0.110940264675087 +490,-30,120,0.113420753881824,0.0374721029278273,-9.99996691716798e-10,0.113420873881824 +490,-30,130,0.115556054461249,0.0353368023484019,-9.99996691716798e-10,0.115556184461249 +490,-30,140,0.117411534294071,0.0334813225155797,-9.99996691716798e-10,0.117411674294071 +490,-30,150,0.119037535174481,0.0318553216351694,-9.99996691716798e-10,0.119037685174482 490,-30,160,0.120473279792317,0.0304195770173342,-9.99996691716798e-10,0.120473439792317 490,-30,170,0.121749710753977,0.0291431460556737,-9.99996691716798e-10,0.121749880753977 490,-30,180,0.122891522846603,0.0280013339630482,-9.99996691716798e-10,0.122891702846603 @@ -1224,22 +1224,22 @@ vsk,vgk,vpk,ip,is,ig,ip_terminal 490,-30,580,0.136670532482839,0.0142223243268117,-9.99996691716798e-10,0.136671112482839 490,-30,590,0.136777583237527,0.014115273572124,-9.99996691716798e-10,0.136778173237527 490,-30,600,0.1368810820379,0.014011774771751,-9.99996691716798e-10,0.1368816820379 -490,-40,0,0,0.0636963114858497,-9.99995592110281e-10,0 -490,-40,10,0.00931853392821807,0.0543777775576316,-9.99995592110281e-10,0.00931854392821807 -490,-40,20,0.0176545845342446,0.046041726951605,-9.99995592110281e-10,0.0176546045342446 -490,-40,30,0.0245334251521229,0.0391628863337267,-9.99995592110281e-10,0.0245334551521229 -490,-40,40,0.0299781536194947,0.0337181578663549,-9.99995592110281e-10,0.0299781936194947 -490,-40,50,0.0342355936573265,0.0294607178285231,-9.99995592110281e-10,0.0342356436573266 -490,-40,60,0.0375796701693988,0.0261166413164509,-9.99995592110281e-10,0.0375797301693988 -490,-40,70,0.0402384444437394,0.0234578670421103,-9.99995592110281e-10,0.0402385144437394 -490,-40,80,0.0423839022550595,0.0213124092307902,-9.99995592110281e-10,0.0423839822550595 -490,-40,90,0.0441414051243173,0.0195549063615324,-9.99995592110281e-10,0.0441414951243173 -490,-40,100,0.0456017500653279,0.0180945614205218,-9.99995592110281e-10,0.0456018500653279 -490,-40,110,0.0468311012055604,0.0168652102802893,-9.99995592110281e-10,0.0468312112055604 -490,-40,120,0.0478782350666695,0.0158180764191802,-9.99995592110281e-10,0.0478783550666695 -490,-40,130,0.0487796082244261,0.0149167032614236,-9.99995592110281e-10,0.0487797382244261 -490,-40,140,0.0495628608175991,0.0141334506682505,-9.99995592110281e-10,0.0495630008175991 -490,-40,150,0.0502492435977036,0.0134470678881461,-9.99995592110281e-10,0.0502493935977036 +490,-40,0,0.00328634143701713,0.0604099700488325,-9.99995592110281e-10,0.00328634143701713 +490,-40,10,0.0098849029584878,0.0538114085273619,-9.99995592110281e-10,0.0098849129584878 +490,-40,20,0.0177238260343861,0.0459724854514636,-9.99995592110281e-10,0.0177238460343861 +490,-40,30,0.0245410123259522,0.0391552991598974,-9.99995592110281e-10,0.0245410423259522 +490,-40,40,0.0299789591812656,0.033717352304584,-9.99995592110281e-10,0.0299789991812656 +490,-40,50,0.0342356789609179,0.0294606325249318,-9.99995592110281e-10,0.0342357289609179 +490,-40,60,0.0375796792881965,0.0261166321976532,-9.99995592110281e-10,0.0375797392881965 +490,-40,70,0.0402384454323247,0.023457866053525,-9.99995592110281e-10,0.0402385154323247 +490,-40,80,0.0423839023638722,0.0213124091219774,-9.99995592110281e-10,0.0423839823638722 +490,-40,90,0.0441414051364718,0.0195549063493779,-9.99995592110281e-10,0.0441414951364718 +490,-40,100,0.0456017500667042,0.0180945614191455,-9.99995592110281e-10,0.0456018500667042 +490,-40,110,0.0468311012057181,0.0168652102801315,-9.99995592110281e-10,0.0468312112057181 +490,-40,120,0.0478782350666878,0.0158180764191619,-9.99995592110281e-10,0.0478783550666878 +490,-40,130,0.0487796082244282,0.0149167032614214,-9.99995592110281e-10,0.0487797382244282 +490,-40,140,0.0495628608175994,0.0141334506682503,-9.99995592110281e-10,0.0495630008175994 +490,-40,150,0.0502492435977036,0.013447067888146,-9.99995592110281e-10,0.0502493935977036 490,-40,160,0.0508553136153661,0.0128409978704836,-9.99995592110281e-10,0.0508554736153661 490,-40,170,0.0513941326545382,0.0123021788313115,-9.99995592110281e-10,0.0513943026545382 490,-40,180,0.0518761251109599,0.0118201863748897,-9.99995592110281e-10,0.0518763051109599 @@ -1285,22 +1285,22 @@ vsk,vgk,vpk,ip,is,ig,ip_terminal 490,-40,580,0.0576926502156799,0.00600366127016977,-9.99995592110281e-10,0.0576932302156799 490,-40,590,0.0577378394867928,0.00595847199905682,-9.99995592110281e-10,0.0577384294867928 490,-40,600,0.0577815293735533,0.00591478211229638,-9.99995592110281e-10,0.0577821293735533 -490,-46,0,0,0.0350662057666793,-9.99994929570813e-10,0 -490,-46,10,0.00513005573710919,0.0299361500295701,-9.99994929570813e-10,0.00513006573710919 -490,-46,20,0.00971923302247396,0.0253469727442054,-9.99994929570813e-10,0.00971925302247396 -490,-46,30,0.0135061844944803,0.0215600212721991,-9.99994929570813e-10,0.0135062144944803 -490,-46,40,0.0165036260154539,0.0185625797512254,-9.99994929570813e-10,0.0165036660154539 -490,-46,50,0.0188474394156863,0.016218766350993,-9.99994929570813e-10,0.0188474894156863 -490,-46,60,0.020688426316441,0.0143777794502383,-9.99994929570813e-10,0.020688486316441 -490,-46,70,0.0221521394203292,0.0129140663463501,-9.99994929570813e-10,0.0221522094203292 -490,-46,80,0.0233332606394471,0.0117329451272322,-9.99994929570813e-10,0.0233333406394471 -490,-46,90,0.0243008042194645,0.0107654015472148,-9.99994929570813e-10,0.0243008942194645 -490,-46,100,0.0251047558926031,0.0099614498740762,-9.99994929570813e-10,0.0251048558926031 -490,-46,110,0.0257815404510382,0.0092846653156411,-9.99994929570813e-10,0.0257816504510382 -490,-46,120,0.0263580104315185,0.00870819533516087,-9.99994929570813e-10,0.0263581304315185 -490,-46,130,0.0268542359724507,0.00821196979422863,-9.99994929570813e-10,0.0268543659724507 -490,-46,140,0.0272854335717904,0.00778077219488895,-9.99994929570813e-10,0.0272855735717904 -490,-46,150,0.0276633022307503,0.00740290353592908,-9.99994929570813e-10,0.0276634522307503 +490,-46,0,0.00180920248538423,0.0332570032812951,-9.99994929570813e-10,0.00180920248538423 +490,-46,10,0.00544185421479224,0.0296243515518871,-9.99994929570813e-10,0.00544186421479224 +490,-46,20,0.00975735197528167,0.0253088537913977,-9.99994929570813e-10,0.00975737197528167 +490,-46,30,0.0135103613988014,0.0215558443678779,-9.99994929570813e-10,0.0135103913988014 +490,-46,40,0.0165040694947411,0.0185621362719382,-9.99994929570813e-10,0.0165041094947411 +490,-46,50,0.0188474863771699,0.0162187193895095,-9.99994929570813e-10,0.0188475363771699 +490,-46,60,0.0206884313365376,0.0143777744301417,-9.99994929570813e-10,0.0206884913365376 +490,-46,70,0.0221521399645669,0.0129140658021124,-9.99994929570813e-10,0.0221522099645669 +490,-46,80,0.0233332606993509,0.0117329450673284,-9.99994929570813e-10,0.0233333406993509 +490,-46,90,0.0243008042261559,0.0107654015405235,-9.99994929570813e-10,0.0243008942261559 +490,-46,100,0.0251047558933608,0.00996144987331851,-9.99994929570813e-10,0.0251048558933608 +490,-46,110,0.0257815404511251,0.00928466531555424,-9.99994929570813e-10,0.0257816504511251 +490,-46,120,0.0263580104315285,0.0087081953351508,-9.99994929570813e-10,0.0263581304315285 +490,-46,130,0.0268542359724519,0.00821196979422745,-9.99994929570813e-10,0.0268543659724519 +490,-46,140,0.0272854335717905,0.00778077219488881,-9.99994929570813e-10,0.0272855735717905 +490,-46,150,0.0276633022307503,0.00740290353592906,-9.99994929570813e-10,0.0276634522307503 490,-46,160,0.0279969569660498,0.00706924880062954,-9.99994929570813e-10,0.0279971169660498 490,-46,170,0.0282935885740325,0.00677261719264685,-9.99994929570813e-10,0.0282937585740325 490,-46,180,0.0285589359114309,0.00650726985524841,-9.99994929570813e-10,0.0285591159114309 @@ -1346,22 +1346,22 @@ vsk,vgk,vpk,ip,is,ig,ip_terminal 490,-46,580,0.0317610595730887,0.00330514619359059,-9.99994929570813e-10,0.0317616395730887 490,-46,590,0.0317859372503408,0.00328026851633851,-9.99994929570813e-10,0.0317865272503408 490,-46,600,0.0318099894838741,0.00325621628280526,-9.99994929570813e-10,0.0318105894838741 -490,-50,0,0,0.0230277679152204,-9.99994492503764e-10,0 -490,-50,10,0.00336887696639677,0.0196588909488237,-9.99994492503764e-10,0.00336888696639677 -490,-50,20,0.00638256228360321,0.0166452056316172,-9.99994492503764e-10,0.00638258228360321 -490,-50,30,0.00886943069998683,0.0141583372152336,-9.99994492503764e-10,0.00886946069998683 -490,-50,40,0.0108378326463991,0.0121899352688213,-9.99994492503764e-10,0.0108378726463991 -490,-50,50,0.0123770009093203,0.0106507670059002,-9.99994492503764e-10,0.0123770509093203 -490,-50,60,0.0135859660128624,0.00944180190235809,-9.99994492503764e-10,0.0135860260128624 -490,-50,70,0.0145471776670423,0.00848059024817815,-9.99994492503764e-10,0.0145472476670423 -490,-50,80,0.0153228129181031,0.00770495499711732,-9.99994492503764e-10,0.0153228929181031 -490,-50,90,0.0159581930090303,0.00706957490619018,-9.99994492503764e-10,0.0159582830090303 -490,-50,100,0.0164861432716641,0.00654162464355638,-9.99994492503764e-10,0.0164862432716641 -490,-50,110,0.0169305836495009,0.00609718426571952,-9.99994492503764e-10,0.0169306936495009 -490,-50,120,0.0173091480430631,0.00571861987215732,-9.99994492503764e-10,0.0173092680430631 -490,-50,130,0.0176350163923857,0.00539275152283477,-9.99994492503764e-10,0.0176351463923857 -490,-50,140,0.0179181812808045,0.00510958663441592,-9.99994492503764e-10,0.0179183212808045 -490,-50,150,0.0181663253725509,0.00486144254266956,-9.99994492503764e-10,0.0181664753725509 +490,-50,0,0.0011880924677815,0.0218396754474389,-9.99994492503764e-10,0.0011880924677815 +490,-50,10,0.00357363316466294,0.0194541347505575,-9.99994492503764e-10,0.00357364316466294 +490,-50,20,0.00640759477226959,0.0166201731429509,-9.99994492503764e-10,0.00640761477226958 +490,-50,30,0.00887217364811048,0.01415559426711,-9.99994492503764e-10,0.00887220364811048 +490,-50,40,0.0108381238765987,0.0121896440386218,-9.99994492503764e-10,0.0108381638765987 +490,-50,50,0.0123770317486461,0.0106507361665743,-9.99994492503764e-10,0.0123770817486461 +490,-50,60,0.0135859693095298,0.00944179860569063,-9.99994492503764e-10,0.0135860293095298 +490,-50,70,0.01454717802444,0.00848058989078049,-9.99994492503764e-10,0.01454724802444 +490,-50,80,0.0153228129574416,0.00770495495777885,-9.99994492503764e-10,0.0153228929574416 +490,-50,90,0.0159581930134244,0.00706957490179603,-9.99994492503764e-10,0.0159582830134244 +490,-50,100,0.0164861432721616,0.00654162464305881,-9.99994492503764e-10,0.0164862432721616 +490,-50,110,0.016930583649558,0.00609718426566248,-9.99994492503764e-10,0.016930693649558 +490,-50,120,0.0173091480430697,0.0057186198721507,-9.99994492503764e-10,0.0173092680430697 +490,-50,130,0.0176350163923865,0.00539275152283399,-9.99994492503764e-10,0.0176351463923865 +490,-50,140,0.0179181812808046,0.00510958663441582,-9.99994492503764e-10,0.0179183212808046 +490,-50,150,0.0181663253725509,0.00486144254266955,-9.99994492503764e-10,0.0181664753725509 490,-50,160,0.0183854344446705,0.00464233347054996,-9.99994492503764e-10,0.0183855944446705 490,-50,170,0.0185802306501794,0.00444753726504105,-9.99994492503764e-10,0.0185804006501794 490,-50,180,0.0187544826620221,0.00427328525319837,-9.99994492503764e-10,0.0187546626620221 @@ -1407,22 +1407,22 @@ vsk,vgk,vpk,ip,is,ig,ip_terminal 490,-50,580,0.0208572981478811,0.00217046976733935,-9.99994492503764e-10,0.0208578781478811 490,-50,590,0.0208736351699656,0.00215413274525483,-9.99994492503764e-10,0.0208742251699656 490,-50,600,0.0208894301280894,0.002138337787131,-9.99994492503764e-10,0.0208900301280894 -490,-60,0,0,0.00767809531553145,-9.99993385958353e-10,0 -490,-60,10,0.00112327684339723,0.00655481847213422,-9.99993385958353e-10,0.00112328684339723 -490,-60,20,0.00212812295795419,0.00554997235757726,-9.99993385958353e-10,0.00212814295795419 -490,-60,30,0.00295731373356374,0.00472078158196772,-9.99993385958353e-10,0.00295734373356374 -490,-60,40,0.00361363343504214,0.00406446188048932,-9.99993385958353e-10,0.00361367343504214 -490,-60,50,0.00412683474369083,0.00355126057184063,-9.99993385958353e-10,0.00412688474369083 -490,-60,60,0.00452993717777485,0.0031481581377566,-9.99993385958353e-10,0.00452999717777485 -490,-60,70,0.00485043175312252,0.00282766356240893,-9.99993385958353e-10,0.00485050175312252 -490,-60,80,0.00510905001823865,0.0025690452972928,-9.99993385958353e-10,0.00510913001823865 -490,-60,90,0.00532090333019188,0.00235719198533958,-9.99993385958353e-10,0.00532099333019188 -490,-60,100,0.00549693656334266,0.00218115875218879,-9.99993385958353e-10,0.00549703656334266 -490,-60,110,0.00564512528904398,0.00203297002648747,-9.99993385958353e-10,0.00564523528904398 -490,-60,120,0.00577134913790064,0.00190674617763082,-9.99993385958353e-10,0.00577146913790064 -490,-60,130,0.00588000266678911,0.00179809264874235,-9.99993385958353e-10,0.00588013266678911 -490,-60,140,0.00597441767962475,0.0017036776359067,-9.99993385958353e-10,0.00597455767962475 -490,-60,150,0.00605715578934641,0.00162093952618504,-9.99993385958353e-10,0.00605730578934641 +490,-60,0,0.000396142919490773,0.00728195239604068,-9.99993385958353e-10,0.000396142919490773 +490,-60,10,0.00119154822829747,0.00648654708723398,-9.99993385958353e-10,0.00119155822829747 +490,-60,20,0.00213646948266614,0.00554162583286532,-9.99993385958353e-10,0.00213648948266614 +490,-60,30,0.00295822830840297,0.00471986700712849,-9.99993385958353e-10,0.00295825830840297 +490,-60,40,0.00361373053925297,0.00406436477627849,-9.99993385958353e-10,0.00361377053925297 +490,-60,50,0.0041268450263758,0.00355125028915566,-9.99993385958353e-10,0.0041268950263758 +490,-60,60,0.00452993827697505,0.00314815703855641,-9.99993385958353e-10,0.00452999827697505 +490,-60,70,0.00485043187228879,0.00282766344324266,-9.99993385958353e-10,0.00485050187228879 +490,-60,80,0.00510905003135519,0.00256904528417627,-9.99993385958353e-10,0.00510913003135519 +490,-60,90,0.00532090333165701,0.00235719198387445,-9.99993385958353e-10,0.00532099333165701 +490,-60,100,0.00549693656350856,0.00218115875202289,-9.99993385958353e-10,0.00549703656350856 +490,-60,110,0.005645125289063,0.00203297002646846,-9.99993385958353e-10,0.005645235289063 +490,-60,120,0.00577134913790284,0.00190674617762861,-9.99993385958353e-10,0.00577146913790284 +490,-60,130,0.00588000266678937,0.00179809264874209,-9.99993385958353e-10,0.00588013266678937 +490,-60,140,0.00597441767962478,0.00170367763590667,-9.99993385958353e-10,0.00597455767962478 +490,-60,150,0.00605715578934642,0.00162093952618504,-9.99993385958353e-10,0.00605730578934642 490,-60,160,0.00613021281972929,0.00154788249580217,-9.99993385958353e-10,0.00613037281972929 490,-60,170,0.00619516326731534,0.00148293204821612,-9.99993385958353e-10,0.00619533326731534 490,-60,180,0.00625326371199486,0.00142483160353659,-9.99993385958353e-10,0.00625344371199486 diff --git a/tests/test_pentode.cpp b/tests/test_pentode.cpp index 2850c16..128d61e 100644 --- a/tests/test_pentode.cpp +++ b/tests/test_pentode.cpp @@ -135,6 +135,17 @@ TEST_CASE("EL34 below the screen clamp and the matched-pair equivalent", "[devic REQUIRE(two.dis_dvgk == 2.0 * one.dis_dvgk); REQUIRE(two.dig_dvgk == 2.0 * one.dig_dvgk); } - // as in SPICE, the plate current turns negative below the cathode - REQUIRE(kEL34.eval(-20.0, 470.0, -5.0).ip < 0.0); + // no plate current below the cathode (5 V softplus, D-061): positive and small just below, vanishing far + // below, continuous and increasing through Vpk = 0; the screen takes what the plate does not + const auto below = kEL34.eval(-20.0, 470.0, -5.0), far = kEL34.eval(-20.0, 470.0, -500.0); + REQUIRE(below.ip > 0.0); + REQUIRE(far.ip >= 0.0); + REQUIRE(far.ip < 1e-12); + REQUIRE(far.is > below.is); + double last = -1.0; + for (double vpk = -50.0; vpk <= 50.0; vpk += 0.5) { + const double ip = kEL34.eval(-20.0, 470.0, vpk).ip; + REQUIRE(ip >= last); + last = ip; + } }