diff --git a/docs/CIRCUIT.md b/docs/CIRCUIT.md index 22f9ed6..890a1c1 100644 --- a/docs/CIRCUIT.md +++ b/docs/CIRCUIT.md @@ -109,7 +109,8 @@ verification. In the engine B5 and B6 form one block B56 with no junction at the | R35,R37 / R36,R38 | 1 kΩ 5 W each | screens – nScr | (pair equivalent 500 Ω) | | V4–V7 | EL34 | cathodes to gnd | Fixed bias; V4‖V5 plate pA, V6‖V7 plate pB | | OT | see §3 | pA – ct – pB, secondary out – gnd | | -| Rload | 16 Ω | out – gnd | | +| Rspk_e / Lspk_e ‖ Rspk_le | 13 Ω / 1.0 mH ‖ 45 Ω | out – spk1 – spk2 | Speaker load (D-059): voice coil R, inductance with eddy loss | +| Rspk_m ‖ Lspk_m ‖ Cspk_m | 37 Ω ‖ 29.4437 mH ‖ 86.0297 µF | spk2 – gnd | Motional resonance 100 Hz, Q 2; \|Z\| 20 / 50 / 14 / 15 / 35 / 48 Ω at 50 / 100 / 400 / 1k / 5k / 10k Hz | Bias Thevenin check: Vth = −60 V · 51 kΩ / 66 kΩ = −46.364 V; Rth = 15 kΩ ‖ 51 kΩ = 11.59 kΩ. @@ -206,32 +207,36 @@ three candidates differ by < 0.4 % and give the same result within 0.1 dB. Worst ## 5. Reference DC operating point (default parameters, from SPICE) -Defaults: vol 0.6, treble/middle/bass/presence 0.5, master 0.3, rv1 4 kΩ, vnl 505 V, rsrc 100 Ω. +Defaults: vol 0.6, treble/middle/bass/presence 0.5, master 0.3, rv1 4 kΩ, vnl 505 V, rsrc 100 Ω. EL34 parameters +fitted to the Ei-RC data sheet curves (D-058; with Koren's set the EL34s idled at 34.08 mA plate / 4.57 mA screen). | Node | Voltage | Node | Voltage | |---|---|---|---| -| ct (B+, OT CT) | 488.708 V | p2a | 231.130 V | -| nScr | 485.649 V | k2a | 1.404 V | -| bpX | 402.336 V | k2b | 231.686 V | -| bpA | 389.350 V | p3a | 270.881 V | -| nbias | −46.364 V | p3b | 262.271 V | -| p1a | 296.402 V | k3 | 44.933 V | -| k1a | 2.510 V | nF | 43.522 V | -| p1b | 352.433 V | nG | 13.484 V | -| k1b | 3.692 V | pA / pB (EL34 plates) | 487.662 / 487.580 V | +| ct (B+, OT CT) | 491.347 V | p2a | 232.577 V | +| nScr | 488.880 V | k2a | 1.414 V | +| bpX | 404.998 V | k2b | 233.140 V | +| bpA | 391.921 V | p3a | 272.611 V | +| nbias | −46.364 V | p3b | 263.951 V | +| p1a | 298.326 V | k3 | 45.250 V | +| k1a | 2.527 V | nF | 43.828 V | +| p1b | 354.750 V | nG | 13.579 V | +| k1b | 3.717 V | pA / pB (EL34 plates) | 490.463 / 490.394 V | | Current | Value | |---|---| -| V1a plate (R4) | 0.930 mA | -| V1b plate (R7) | 0.369 mA | -| V2a plate (R12) | 1.712 mA | -| V2b cathode (R13) | 2.317 mA | -| PI plates (R18 / R21) | 1.603 / 1.401 mA | -| R29 (preamp + PI total from nScr) | 8.331 mA | -| Choke (Lch) | 26.60 mA | -| EL34 plate, per tube | 34.08 mA | -| EL34 screen, per tube | 4.57 mA | -| Total HT current (Vht) | 162.9 mA | +| V1a plate (R4) | 0.936 mA | +| V1b plate (R7) | 0.372 mA | +| V2a plate (R12) | 1.724 mA | +| V2b cathode (R13) | 2.331 mA | +| PI plates (R18 / R21) | 1.614 / 1.410 mA | +| R29 (preamp + PI total from nScr) | 8.388 mA | +| Choke (Lch) | 21.45 mA | +| EL34 plate, per tube | 28.77 mA | +| EL34 screen, per tube | 3.26 mA | +| Total HT current (Vht) | 136.5 mA | + +The speaker load (D-059) leaves these values unchanged to the digits shown (the speaker node carries 42.4 µV of NFB DC, +was 42.6 µV with the 16 Ω resistor). Regenerate with `python3 reference/spice/spice_tools.py` after any netlist change. @@ -245,13 +250,14 @@ Regenerate with `python3 reference/spice/spice_tools.py` after any netlist chang | O2 | Middle pot wiring | As drawn: C12 to wiper, Bass bottom to top lug | ≤ 1.4 dB, only at low Middle settings | | O3 | C5 1 nF | VR1 top to wiper | Brightness vs Preamp Volume setting | | O4 | "50+50 µF" filter cans | 50 µF per node | Sag and ripple time constants | -| O5 | NFB tap | 16 Ω output with 16 Ω load | Feedback amount if taken from another tap | +| O5 | NFB tap | 16 Ω output with the speaker load (D-059) | Feedback amount if taken from another tap | | O6 | Low input | Not modelled | Feature only | | O7 | OT half-primary orientation | Blue–White (15.36 Ω) on the pA side (V4/V5) | ±0.6 Ω winding asymmetry, about ±40 mV DC per side | +| O8 | C2 100 pF V1a plate–cathode (drawing 2203 STD Preamp iss. 4) | Not in the netlist (found 2026-10-15) | −0.3 dB at 5 kHz, −0.7 … −0.9 dB at 10 kHz into V1b (SPICE study) | | A1 | HT source 505 V / 100 Ω | Assumed | B+ level and sag | | A2 | OT values | Hammond 1750U replacement datasheet, primary inductance fitted (§3, D-023) | Power, LF/HF response, feedback | | A3 | Choke 5 H / 115 Ω | Hammond 194F replacement datasheet; L specified at 120 mA DC, the amp runs it at ≈ 27 mA (D-024) | Screen node dynamics, supply DC | | A4 | Bias −60 V at C20, RV1 4 kΩ | Assumed | Idle current, crossover | -| A5 | Koren generic tube parameters | Generic | Overall voltages and distortion | +| A5 | Tube parameters | 12AX7: Koren generic; EL34: fitted to the Ei-RC data sheet curves (D-058) | Overall voltages and distortion | Any change to these must be made in the netlist first, re-verified, and logged in `DECISIONS.md`. diff --git a/docs/DECISIONS.md b/docs/DECISIONS.md index 741da26..77613ef 100644 --- a/docs/DECISIONS.md +++ b/docs/DECISIONS.md @@ -989,3 +989,42 @@ Consequences: plugin CPU (2x Half, plugin_cpu): automation of any knob or all si settings −18.9 dB; null test 26 / 26 at Half and Full (−138.5 dB); automation 0 failures. Knob jump vs SPICE (768 kHz) still PASS with less margin: B1234 −39.2 … −55.1 dB (was −50.0 … −59.4), B56 Presence −63.2 dB (was −77.0); which of the two changes accounts for it is not separated. + +## D-058 EL34 model parameters fitted to the Ei-RC data sheet curves (reference model change) +Date: 2026-10-15 · Status: accepted (owner: "Adopt the fitted EL34 in the reference model"; changes `tubes.lib`, A5) +Context: owner listening ("dark", "lacks gain"); M6 EL34 study (`harness/reports/M6/20261015_el34_curve_fit.md`): Koren's +EL34 set deviated from the data sheet by a median 11.5 % on the plate curves and 28.2 % on the transfer curves. +Decision: `tubes.lib` EL34 mu 14.77, ex 1.046, kg1 194.3, kg2 2243, kp 53.82, kvb 40.43 (was 11 / 1.35 / 650 / 4200 / 60 / +24), fitted to 81 digitised curve points (median error 3.7 / 2.7 %) and the sheet's screen currents; the engine's +`devices::Pentode` / `kEL34Pair` take the same values. The bias network (A4) is unchanged. +Consequences: DC (CIRCUIT.md §5): EL34 idle 28.77 mA plate / 3.26 mA screen per tube (was 34.08 / 4.57), B+ 491.3 V (was +488.7), total HT 136.5 mA (162.9). tests/data EL34 sweeps, the block testbenches and the C++ DC fixtures regenerated; J3 +re-measured (359.535 Ω). Every SPICE reference that contains the power amp is re-rendered (netlist hash); the +verification reports from before this entry describe the Koren EL34. Expected from the study: output impedance ≈ 20–23 Ω +(was 14–16), less power (clean 87 vs 101 W at 25 mV, clipped ≈ 156–163 vs 182–194 W). + +## D-059 Speaker load: representative nominal 16 Ω 4x12 impedance instead of the 16 Ω resistor (reference model change) +Date: 2026-10-15 · Status: accepted (owner: "put the typical speaker load into the reference and engine") +Context: owner listening ("dark", needs Treble / Presence 7); speaker-load study (`harness/reports/M6/20261015_speaker_load_study.md`): +with the D-058 EL34 the closed-loop output impedance is ≈ 20–23 Ω, so a speaker's rising impedance raises the speaker +voltage +3 … +4.7 dB at 100 Hz and +1.8 … +4.7 dB at 5 kHz relative to a resistor. No published Thiele–Small data for the +Celestion G12T-75 was found. +Decision: `Rload out 0 16` → Rspk_e 13 Ω + (Lspk_e 1.0 mH ‖ Rspk_le 45 Ω) + (Rspk_m 37 Ω ‖ Lspk_m 29.4437 mH ‖ Cspk_m +86.0297 µF; 100 Hz, Q 2), the study's "typical" variant. Engine: B56 (`PowerAmp`) and B6 (`PowerStage`) get nodes spk1 / spk2 +and six elements; the inductors are one-winding `CoupledInductors` (shorts at DC, trapezoidal, half-step rescaling in B56), +the capacitor a `DcCapacitor`. The plugin output stays the speaker voltage / 60 V. Power metrics keep V²/16 Ω as a nominal +figure. The parameters are representative, not measured. +Consequences: DC unchanged except v(out) 42.4 µV (was 42.6). Every SPICE reference that contains the power amp is +re-rendered; reports before this entry describe the 16 Ω resistor. + +## D-060 Plugin default Power Amp Rate: Full (with the speaker load) +Date: 2026-10-17 · Status: accepted (owner: "switch the power amp to full rate at 2x"; revises D-054's Half default) +Context: with the speaker load (D-059) the plugin model check at half rate 2x fails at HOT (−18.8 dB vs SPICE; half-steps off +−19.2 dB), the full-rate power amp at 2x passes (−24.1 dB, unseen settings −20.8 dB vs 16x; engine 26.8 / 40.8 % default / +HOT). The owner's NAM comparison with a real 2203 (PROGRESS 2026-10-17) is at Master 10 / Presence 8, the HOT region. +Decision: Power Amp Rate default Full; Half stays selectable. Oversampling stays 2x; exact J4, Newton 1e-4 V and half-steps +as D-055 / D-056. +Consequences: no rate-change delay (latency = the oversampler's: 49 samples FIR at 2x, IIR less); CPU as measured in +`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. diff --git a/docs/PROGRESS.md b/docs/PROGRESS.md index 4779c3f..99570e4 100644 --- a/docs/PROGRESS.md +++ b/docs/PROGRESS.md @@ -756,6 +756,76 @@ Notes: automation, plugin CPU. - Done (D-057): plugin CPU under automation 18.7 … 24.6 % (default base), 22.8 … 33.5 % (every knob 10); static ≈ 19 % / 32.5 %. Accuracy: acceptance and HOT unchanged; knob jump PASS (B1234 −39.2 … −55.1 dB, B56 −63.2 dB). +- 2026-10-15 (main after PR #1): plugin reinstalled to ~/Library/Audio/Plug-Ins (VST3, AU); pluginval strictness 5 + SUCCESS for VST3 and AU, auval PASS (`harness/reports/M6/20261015_pluginval_*.log`, `…_auval.log`). +- Owner listening in Logic (2026-10-15): "very dark", "lacks gain", Master "just adds volume"; cab IR after the plugin; + compared with a real 2203. Review of O3 / A5 (owner request), SPICE studies on copies, reference unchanged: + - O3: C5 1 nF top-to-wiper matches the drawing. New O8: C2 100 pF V1a plate–cathode is on the drawing but missing + from the netlist; adding it darkens V1a → V1b by 0.3 dB at 5 kHz, 0.7 … 0.9 dB at 10 kHz. + - A5 12AX7: Koren's set vs RCA datasheet: 250 V / −2 V 0.95 mA (1.2), gm 1.67 (1.6) mA/V, rp 53.7 (62.5) kΩ; 100 V / + −1 V 0.10 mA (0.5), gm 0.59 (1.25), rp 141 (80) kΩ. Sarti et al. DAFx-07 set (mu 100.8, ex 1.4979, kg1 1890, kp 828, + kvb 72, Vct 0.612) matches both points (1.22 mA / 1.62 / 61.4; 0.50 mA / 1.22 / 82.0). Full amp with it: DC −1.6 … + −6.6 V, CRUNCH / DRIVE 220 Hz 0.3 V: output −0.3 dB, harmonics H2–H9 within 0.0 … 3.8 dB, spectral centroid +2 %. + - A5 EL34 (Koren set) vs Philips class A (250 / 250 V, −12.2 V): Ia 113 (100) mA, Ig2 19.3 (14.9) mA, gm 13.1 (11) + mA/V, ra 34 (15) kΩ; effect on the sound not studied. + Neither O3 nor the 12AX7 set explains "dark / lacks gain"; open candidates: resistive 16 Ω load (README known + limitation), EL34 model, input level. +- EL34 study (owner request; SPICE copies, reference unchanged): no published Koren EL34 fit found; JJ datasheet typical + point Ua 250 V, Ug2 265 V, Ia 100 mA, S 11 mA/V, Ri 15 kΩ, mu g2-g1 11. Current set there: gm 12.2 mA/V, ri 38.8 kΩ. + One-point fit (mu, ex, kg1, kg2 kept): kp 49.97, kvb 58.9 → gm 11.0, ri 15.0 kΩ; softer knee (Vg1 0 V, Va 50 V: + 159 vs 254 mA), not validated against curves. Full amp, current / fit: clean power (CLEAN 25 mV) 101 / 82.5 W + (THD 3.2 / 1.9 %); clipped output at DRIVE Master 0.6–1.0 and HOT 182–194 / 132–137 W into 16 Ω; harmonics + H2–H9 mostly within 0–2 dB (H2 at Master 0.6: −38.6 / −53.2 dB); spectral centroid −1 … −7 % with the fit. + Closed-loop output impedance (16 Ω vs open load) 14.1 / 15.7 / 16.0 Ω at 100 Hz / 1 kHz / 5 kHz (fit: 14.6 / 16.2 / + 16.5 Ω): about equal to the load, so a speaker's rising impedance would raise the real amp's output at resonance + and at high frequencies relative to the 16 Ω resistor (not yet simulated). Neither EL34 set explains "dark". +- EL34 curve fit (owner request; poppler installed for the data sheet; `harness/reports/M6/20261015_el34_curve_fit.md`): + Koren parameters fitted to 81 digitised Ei-RC curve points: mu 14.77, ex 1.046, kg1 194.3, kp 53.82, + kvb 40.4, kg2 2243; error vs the curves median 3.7 / 2.7 % (current set 11.5 / 28.2 %). Full amp: output impedance + 20–23 Ω (was 14–16), clean 87 W (101), clipped 156–163 W (182–194), harmonics mostly within 1 dB, centroid −1 … −2 %. + Not a cause of "dark"; the higher output impedance makes the resistive-load difference larger. +- Owner 2026-10-15: adopt the fitted EL34 in the reference model (D-058). Plan: tubes.lib EL34 parameters (bias network A4 + unchanged); engine `devices::Pentode` defaults; regenerate tests/data el34 sweeps (`harness.device_sweeps`), CIRCUIT.md §5, + README sanity figures; re-verify: b56 block-exact, M4 acceptance at 768 kHz and at 384 kHz exact J4 + HOT, X2 at half 2x + (plugin config), B56 knob jump; SPICE references re-rendered (netlist hash changes). +- D-058 done: re-verified against the new references: M4 full acceptance (768 kHz) 107 PASS (CRUNCH / DRIVE DI −61.1 … + −63.0 dB), 384 kHz exact J4 107 PASS, HOT 21 PASS (DI −42.2 … −43.3 dB); b56 106 PASS, b5open 88 PASS, b6 95 PASS / 2 FAIL + (the known 5 kHz 20 V discretisation FAILs, D-043; SWP-lo reference rendered at RELTOL 1e-7 after "timestep too small" + at 1e-8, noted in the report); half 2x plugin config vs SPICE HOT −23.1 dB, unseen −19.6 dB; B56 knob jump −64.0 dB; + null test 26 / 26; plugin CPU static 31.6 % (every knob 10), automation 22.2 … 24.4 %. SPICE sanity: NFB 5.1 / 4.7 / + 4.6 dB (was 6.6 / 6.2 / 6.0), clean 87 / 112 / 126 W at 25 / 30 / 40 mV (was 101 / 133 / 151 W). +- Plugin with the fitted EL34 reinstalled (VST3, AU); pluginval strictness 5 SUCCESS for both, auval PASS. +- Owner listening after D-058: decent with Preamp 10, Interface Level +24 dBu, Bass 0, Treble 7, Middle 1, Presence 7, + Master 3; "bass / mid heavy"; Master above 3 adds nothing to the driven sound. Audient iD4 MkII, DI gain ¼ up (DI lineup + 12 dBu = 0 dBFS, 40 dB DI gain range: the correct Interface Level is below +12 dBu, so +24 drives the model ≈ 20 dB + above the real guitar). Engine at Preamp 10: 0.8 / 4.4 / 21.4 % THD at y for 10 / 20 / 100 mV, plateau 26–28 %. +- Speaker-load study (`harness/reports/M6/20261015_speaker_load_study.md`): with three 4x12-style impedances instead of + 16 Ω the speaker voltage gains +3 … +4.7 dB at 100 Hz and +1.8 … +4.7 dB at 5 kHz (+2.7 … +5.1 at 8 kHz), −0.3 … −0.9 dB + at 400 Hz – 1 kHz; driven tones at the owner's settings: centroid +11 … +21 %, 5–10 kHz energy +1.7 … +3.5 dB. +- Owner 2026-10-15: put the "typical" speaker load into the reference and the engine (D-059). Plan: netlist Rload → + Re 13 Ω + (Le 1.0 mH ‖ 45 Ω) + (Res 37 Ω ‖ Lm ‖ Cm at 100 Hz, Q 2); engine B56 (`PowerAmp`) and B6 (`PowerStage`): two + nodes, six elements (inductors as one-winding CoupledInductors, the capacitor a DcCapacitor; DC states, half-step + rescaling); testbench_gen / blocks / CLEAN power label; C++ DC fixtures, CIRCUIT.md §5, README; re-verify as after D-058. +- D-059 verification (new references): M4 full acceptance (768 kHz) 107 PASS (CRUNCH / DRIVE DI −60.3 … −62.1 dB); 384 kHz + exact J4 107 PASS; HOT 17 PASS / 4 FAIL: DI ESR −33.5 … −35.7 dB (was −42.2 … −43.3) and 37–56 first-solve Newton failures + per DI clip in the power amp, all rescued (newton_failures ≤ 0 FAIL); b5open 88 PASS; b56 and b6 not scored: their SPICE + references stop with "timestep too small" at RELTOL 1e-8 (long sweeps, t ≈ 1.5–1.8 s). Presence knob jump −62.9 dB; + null test 26 / 26; plugin CPU static 33.2 % (every knob 10), automation ≈ 23–24 %. + Plugin model check (half 2x, 1e-4 V): HOT −18.8 dB vs SPICE (FAIL ≤ −20; was −23.1), unseen −16.5 dB; half-steps off + −19.2 dB (FAIL); full-rate power amp at 2x −24.1 dB (PASS), unseen −20.8 dB, engine 26.8 / 40.8 % (default / HOT). + Power-amp Newton at HOT (DI L): failures 49 / 420 at 8x / 16x (43 unrescued at 16x); maxIter 64 or a looser tolerance + do not change them; half-steps off: 3 / 68; half-steps every sample: 64 / 466. Cause (half-step handling of the speaker + inductors vs a stiffer discretised load) not yet established. +- Owner comparison 2026-10-17 against a NAM capture of a real 2203 (Tone3000, settings published with the capture), plugin + build with D-058 + D-059 at its defaults (2x, Half, Interface Level +12 dBu, trim and output 0 dB): with the capture's + settings (Preamp 10, Treble 8, Middle 7, Bass 4, Master 10, Presence 8) "the tone is pretty accurate"; the output at Master + 10 is ≈ 12 dB too loud for the IR loader. The earlier "missing gain" was at Master 3: the capture's sound includes the + power stage at full Master. These settings are in the HOT region (plugin model check there: −18.8 dB vs SPICE at half 2x). +- Owner: power amp at full rate by default (D-060). Plugin CPU: default 26.4 %, every knob 10 50.2 %, NAM-matched settings + 47.3 %, knob automation 32–35 %; null test 26 / 26; automation 0 unrescued. +- 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. ## Questions for the owner _(Claude Code: add questions here and also ask them in the session.)_ diff --git a/docs/SPEC.md b/docs/SPEC.md index 5dc97e3..bc272bb 100644 --- a/docs/SPEC.md +++ b/docs/SPEC.md @@ -22,7 +22,7 @@ is verified against SPICE before it is considered done. - High input, V1a, Preamp Volume network (incl. bright caps), V1b, V2a, V2b cathode follower. - Tone stack (Treble, Middle, Bass) and Master Volume. - Long-tail-pair phase inverter with global negative feedback and Presence. -- 4x EL34 push-pull output stage, output transformer (linear model), 16 Ω resistive load. +- 4x EL34 push-pull output stage, output transformer (linear model), nominal 16 Ω speaker load (representative 4x12 impedance, D-059; was a 16 Ω resistor). - HT supply sag (reservoir, choke, RC dropper chain) and the bias network. - JUCE plugin (AU, VST3, Standalone) with parameters, smoothing, oversampling and latency reporting. - Offline CLI tool and verification harness against SPICE. @@ -145,14 +145,14 @@ DECISIONS D-033), `PhaseInverter`, `PowerStage` (verified sub-blocks of `PowerAm Default interface level +12 dBu at 0 dBFS (4.361 V peak), the de facto amp-sim convention (NAM expects 12 dBu; Neural DSP calibrates at 12.2 dBu; common interfaces' instrument inputs at minimum gain sit around +12 to +12.5 dBu). Users with a different interface enter their own value (see 6.3). -- Output mapping: `sample = v_speaker / outputVoltsPerFullScale` (16 Ω load). Default 60 V peak +- Output mapping: `sample = v_speaker / outputVoltsPerFullScale` (voltage across the speaker load, D-059). Default 60 V peak (about 112 W sine) = 0 dBFS. The plugin applies an additional output level control. - Use `double` throughout the WDF and solvers. Convert to `float` only at the API boundary. ### 3.4 Sample rate and oversampling - The engine runs at whatever rate `prepare()` receives. The JUCE plugin layer wraps it with `juce::dsp::Oversampling` and passes the oversampled rate. -- Plugin oversampling: a parameter with 2x / 4x / 8x / 16x, default 2x with the power amp at half rate and the +- Plugin oversampling: a parameter with 2x / 4x / 8x / 16x, default 2x with the power amp at full rate (D-060) and the exact J4 coupling (DECISIONS D-054, owner listening result; was 8x, D-048), the same factor at every host rate. 2x is 96 kHz inside at 48 kHz, verified against SPICE with the D-051 tolerances (M6 X2 / A1). - Verification runs the engine directly at 768 kHz (16 x 48 kHz) on signals generated at that rate, so @@ -212,7 +212,7 @@ exceeds tolerance, upgrade it in this order: (a) add the reactive part of the so | (B4) | `ToneStackMaster` | B4 alone behind J3 (R_th3), output `v_oc(y)` (verification of the tone stack, M1) | none (R-type) | `v_oc(y)`, `R_th4` | | B56 | `PowerAmp` | B5 and B6 in one tree (no J5; R22 inside the tree, NFB without delay; D-041) | Joint 10-port (two triodes, two pentode pairs × 3 ports) | `v(out)` speaker voltage, supply currents | | (B5) | `PhaseInverter` | J4 source, C9, R17, R16, R19, C15, R20, R23, C17, VR6 Presence, R22 (NFB, delayed), V3a, V3b, R18, R21 | Joint 4-port (two triodes) | `v_oc(p3a)`, `v_oc(p3b)`, `R_thA`, `R_thB` | -| (B6) | `PowerStage` | J5 sources, C14, C16, C18, R24, R25, bias network (Thevenin + C19), grid stoppers, 2 EL34 equivalents, screen resistors, output transformer, 16 Ω load | Joint 6-port (two pentodes x 3 ports) | `v(out)` speaker voltage, supply currents | +| (B6) | `PowerStage` | J5 sources, C14, C16, C18, R24, R25, bias network (Thevenin + C19), grid stoppers, 2 EL34 equivalents, screen resistors, output transformer, speaker load (D-059) | Joint 6-port (two pentodes x 3 ports) | `v(out)` speaker voltage, supply currents | | B7 | `Supply` | Source resistance, C23, choke, C22, R29, C21b, R8, C21a | none (small linear state-space) | `v(ct)`, `v(nScr)`, `v(bpX)`, `v(bpA)` | Notes per block (details in `CIRCUIT.md` / `WDF_DESIGN.md`): @@ -320,7 +320,7 @@ Must reproduce `reference/spice/tubes.lib` exactly (same equations and parameter Preamp Volume, Treble, Middle, Bass, Master, Presence (0–10 display, rotation internally), Interface Level (dBu at 0 dBFS, 0..+24 dBu, default +12.0 dBu; sets `inputVoltsPerFullScale`), Input Trim (−24..+24 dB, default 0 dB), Output Level (−48..+12 dB), Oversampling (2x/4x/8x/16x, default 2x), Power Amp Rate (Full / Half, default -Half; D-049, D-054), +Full; D-049, D-054, D-060), optional Cabinet IR on/off with file chooser (only if implemented in this repo; see 1.3). --- diff --git a/engine/include/amp2203/PowerAmp.h b/engine/include/amp2203/PowerAmp.h index 4063801..eea9ac4 100644 --- a/engine/include/amp2203/PowerAmp.h +++ b/engine/include/amp2203/PowerAmp.h @@ -30,7 +30,7 @@ class PowerAmp { using PI = PhaseInverter; using PS = PowerStage; static constexpr int kParamUpdateInterval = 128; // samples between matrix updates while a knob moves (D-057; was 32) - static constexpr int kNodes = 21, kElements = 42, kRootPorts = 11; // 10 tube ports + the preamp at y + static constexpr int kNodes = 23, kElements = 47, kRootPorts = 11; // 10 tube ports + the preamp at y static constexpr double kDefaultHalfStepTrigger = 100.0; // V; D-043 (0 = off) PowerAmp(); @@ -97,9 +97,9 @@ class PowerAmp { void applyKnobs() noexcept; void halfStep(double vIn) noexcept; auto reactive() noexcept { - return std::array{&c9_, &c15_, &c17_, &cgk3a_, &cgp3a_, &cpk3a_, &cgk3b_, + return std::array{&c9_, &c15_, &c17_, &cgk3a_, &cgp3a_, &cpk3a_, &cgk3b_, &cgp3b_, &cpk3b_, &c14_, &c16_, &c18_, &c19_, &cgkA_, - &cgpA_, &cpkA_, &cgkB_, &cgpB_, &cpkB_}; + &cgpA_, &cpkA_, &cgkB_, &cgpB_, &cpkB_, &cspkM_}; } void rescaleReactive(double ratio) noexcept; Wave conductances(bool dc) const noexcept; @@ -128,14 +128,18 @@ class PowerAmp { chowdsp::wdft::ResistiveVoltageSourceT rsA_{PS::R35 / 2}, rsB_{PS::R35 / 2}; detail::DcCapacitor cgkA_{2 * PS::Cgk}, cgpA_{2 * PS::Cgp}, cpkA_{2 * PS::Cpk}, cgkB_{2 * PS::Cgk}, cgpB_{2 * PS::Cgp}, cpkB_{2 * PS::Cpk}; - chowdsp::wdft::ResistorT rwp1_{PS::Rwp1}, rwp2_{PS::Rwp2}, rws_{PS::Rws}, rload_{PS::Rload}; + chowdsp::wdft::ResistorT rwp1_{PS::Rwp1}, rwp2_{PS::Rwp2}, rws_{PS::Rws}; detail::CoupledInductors<3> ot_{{PS::lpt / 4, PS::lpt / 4, PS::lpt / (PS::Zpp / PS::Zs)}, PS::kot}; + // speaker load (D-059): the inductors as one-winding CoupledInductors (no coupling) + chowdsp::wdft::ResistorT rspkE_{PS::RspkE}, rspkLe_{PS::RspkLe}, rspkM_{PS::RspkM}; + detail::DcCapacitor cspkM_{PS::CspkM}; + detail::CoupledInductors<1> lspkE_{{PS::LspkE}, 0.0}, lspkM_{{PS::LspkM}, 0.0}; auto elements() noexcept { return std::tie(j4_, c9_, r17_, r16_, r19_, c15_, r20_, r23_, c17vr6_, r22_, src18_, src21_, cgk3a_, cgp3a_, cpk3a_, cgk3b_, cgp3b_, cpk3b_, c14_, c16_, c18_, r24_, r25_, c19_, bias_, rgA_, rgB_, rsA_, rsB_, cgkA_, cgpA_, cpkA_, cgkB_, cgpB_, cpkB_, rwp1_, ot_.w[0], ot_.w[1], rwp2_, ot_.w[2], rws_, - rload_); + rspkE_, lspkE_.w[0], rspkLe_, rspkM_, lspkM_.w[0], cspkM_); } detail::RootNetworkState root_; @@ -145,7 +149,8 @@ class PowerAmp { double portVTh_ = 0.0, portG_ = 0.0, vThPrev_ = 0.0; // preamp port at y (M6 X1) long halfSteps_ = 0; double xPrev_ = 0.0; // the previous sample's J4 source voltage (half-step midpoint) - std::array bLast_{}; // reflected waves of the reactive elements before this sample's reflected() + std::array bLast_{}; // reflected waves of the reactive elements (capacitors, OT, speaker inductors) + // before this sample's reflected() detail::KnobSmoother presence_; int sinceUpdate_ = 0; long updates_ = 0; diff --git a/engine/include/amp2203/PowerStage.h b/engine/include/amp2203/PowerStage.h index 984a16c..ab78be0 100644 --- a/engine/include/amp2203/PowerStage.h +++ b/engine/include/amp2203/PowerStage.h @@ -28,7 +28,7 @@ class PowerStage { static constexpr double kSupplyCt = 488.708422, kSupplyScreen = 485.649287; // CIRCUIT.md §5 /// J5 Thevenin resistances (harness/junctions.py j5a / j5b, provisional; CIRCUIT.md §4). static constexpr double kRthA = 58067.6, kRthB = 56937.4; - static constexpr int kNodes = 15, kElements = 26, kRootPorts = 6; + static constexpr int kNodes = 17, kElements = 31, kRootPorts = 6; // Component values, CIRCUIT.md §1 B6, §3 and tubes.lib (SI units). static constexpr double C14 = 0.022e-6, C16 = 0.022e-6, C18 = 47e-12, C19 = 10e-6, R24 = 220e3, R25 = 220e3; @@ -38,7 +38,9 @@ class PowerStage { static constexpr double kBiasResistance = R27 * (R26 + RV1) / (R27 + R26 + RV1); static constexpr double R31 = 5.6e3, R35 = 1e3; // one tube's stopper / screen R static constexpr double Cgk = 15e-12, Cgp = 1e-12, Cpk = 8e-12; // one EL34 (tubes.lib) - static constexpr double Rwp1 = 15.36, Rwp2 = 16.56, Rws = 0.320, Rload = 16.0; + static constexpr double Rwp1 = 15.36, Rwp2 = 16.56, Rws = 0.320; + // speaker load (D-059): Re + (Le ‖ R_le) + (R_m ‖ L_m ‖ C_m), the netlist's Rspk_* / Lspk_* / Cspk_m + static constexpr double RspkE = 13.0, LspkE = 1.0e-3, RspkLe = 45.0, RspkM = 37.0, LspkM = 0.0294437, CspkM = 8.60297e-05; static constexpr double lpt = 25.61, kot = 0.9997925, Zpp = 1700.0, Zs = 16.0; // OT (D-023) PowerStage(); @@ -86,12 +88,17 @@ class PowerStage { chowdsp::wdft::ResistorT rgA_{R31 / 2}, rgB_{R31 / 2}; chowdsp::wdft::ResistiveVoltageSourceT rsA_{R35 / 2}, rsB_{R35 / 2}; detail::DcCapacitor cgkA_{2 * Cgk}, cgpA_{2 * Cgp}, cpkA_{2 * Cpk}, cgkB_{2 * Cgk}, cgpB_{2 * Cgp}, cpkB_{2 * Cpk}; - chowdsp::wdft::ResistorT rwp1_{Rwp1}, rwp2_{Rwp2}, rws_{Rws}, rload_{Rload}; + chowdsp::wdft::ResistorT rwp1_{Rwp1}, rwp2_{Rwp2}, rws_{Rws}; detail::CoupledInductors<3> ot_{{lpt / 4, lpt / 4, lpt / (Zpp / Zs)}, kot}; + // speaker load (D-059): the inductors as one-winding CoupledInductors (no coupling) + chowdsp::wdft::ResistorT rspkE_{RspkE}, rspkLe_{RspkLe}, rspkM_{RspkM}; + detail::DcCapacitor cspkM_{CspkM}; + detail::CoupledInductors<1> lspkE_{{LspkE}, 0.0}, lspkM_{{LspkM}, 0.0}; auto elements() noexcept { return std::tie(j5a_, j5b_, c14_, c16_, c18_, r24_, r25_, c19_, bias_, rgA_, rgB_, rsA_, rsB_, cgkA_, cgpA_, cpkA_, - cgkB_, cgpB_, cpkB_, rwp1_, ot_.w[0], ot_.w[1], rwp2_, ot_.w[2], rws_, rload_); + cgkB_, cgpB_, cpkB_, rwp1_, ot_.w[0], ot_.w[1], rwp2_, ot_.w[2], rws_, rspkE_, lspkE_.w[0], + rspkLe_, rspkM_, lspkM_.w[0], cspkM_); } detail::RootNetworkState root_; diff --git a/engine/src/PowerAmp.cpp b/engine/src/PowerAmp.cpp index cffd422..eac719a 100644 --- a/engine/src/PowerAmp.cpp +++ b/engine/src/PowerAmp.cpp @@ -34,9 +34,11 @@ PowerAmp::PowerAmp() { void PowerAmp::prepare(double sampleRate, double smoothingMs) { for (auto* c : {&c9_, &c15_, &c17_, &cgk3a_, &cgp3a_, &cpk3a_, &cgk3b_, &cgp3b_, &cpk3b_, &c14_, &c16_, &c18_, - &c19_, &cgkA_, &cgpA_, &cpkA_, &cgkB_, &cgpB_, &cpkB_}) + &c19_, &cgkA_, &cgpA_, &cpkA_, &cgkB_, &cgpB_, &cpkB_, &cspkM_}) c->prepare(sampleRate); ot_.prepare(sampleRate); + lspkE_.prepare(sampleRate); + lspkM_.prepare(sampleRate); presence_.prepare(sampleRate, smoothingMs); applyKnobs(); } @@ -93,9 +95,14 @@ PowerAmp::Wave PowerAmp::conductances(bool dc) const noexcept { G[eRwp1] = rwp1_.wdf.G; G[eRwp2] = rwp2_.wdf.G; G[eRws] = rws_.wdf.G; - G[eRload] = rload_.wdf.G; + G[eRspkE] = rspkE_.wdf.G; + G[eRspkLe] = rspkLe_.wdf.G; + G[eRspkM] = rspkM_.wdf.G; + G[eCspkM] = dc ? 0.0 : cspkM_.wdf.G; for (int w = 0; w < 3; ++w) G[kWindings[w]] = dc ? kWindingDcConductance : ot_.conductance(w, w); + G[eLspkE] = dc ? kWindingDcConductance : lspkE_.conductance(0, 0); // speaker inductors: shorts at DC + G[eLspkM] = dc ? kWindingDcConductance : lspkM_.conductance(0, 0); return G; } @@ -112,6 +119,8 @@ void PowerAmp::rescaleReactive(double ratio) noexcept { for (auto* c : reactive()) c->rescale(ratio, true); ot_.rescaleState(ratio); + lspkE_.rescaleState(ratio); + lspkM_.rescaleState(ratio); } void PowerAmp::applyKnobs() noexcept { @@ -131,6 +140,8 @@ void PowerAmp::applyKnobs() noexcept { G = conductances(false); for (int w = 0; w < 3; ++w) G[kWindings[w]] = step * ot_.conductance(w, w); + G[eLspkE] = step * lspkE_.conductance(0, 0); + G[eLspkM] = step * lspkM_.conductance(0, 0); for (auto* c : reactive()) c->rescale(1.0 / step, false); } @@ -152,6 +163,8 @@ void PowerAmp::halfStep(double vIn) noexcept { c->wdf.b = bLast_[k++]; for (auto& w : ot_.w) w.wdf.b = bLast_[k++]; + lspkE_.w[0].wdf.b = bLast_[k++]; + lspkM_.w[0].wdf.b = bLast_[k++]; } rescaleReactive(0.5); auto& h = half_; @@ -231,10 +244,14 @@ void PowerAmp::reset(double vInDc) { for (auto [c, e] : {std::pair{&cgk3a_, eCgk3a}, {&cgp3a_, eCgp3a}, {&cpk3a_, eCpk3a}, {&cgk3b_, eCgk3b}, {&cgp3b_, eCgp3b}, {&cpk3b_, eCpk3b}, {&c14_, eC14}, {&c16_, eC16}, {&c18_, eC18}, {&c19_, eC19}, {&cgkA_, eCgkA}, {&cgpA_, eCgpA}, {&cpkA_, eCpkA}, {&cgkB_, eCgkB}, - {&cgpB_, eCgpB}, {&cpkB_, eCpkB}}) + {&cgpB_, eCgpB}, {&cpkB_, eCpkB}, {&cspkM_, eCspkM}}) c->setDcVoltage(across(e)); const auto& v = root_.node; ot_.setDcCurrents({(v[pA] - v[pA1]) / PS::Rwp1, (v[pB1] - v[pB]) / PS::Rwp2, v[sl] / PS::Rws}); + // speaker load at DC: both inductors short, so the Re current flows through Le and Lm (D-059) + const double iSpk = (v[out] - v[spk1]) / PS::RspkE; + lspkE_.setDcCurrents({iSpk}); + lspkM_.setDcCurrents({iSpk}); xPrev_ = vInDc; vThPrev_ = portVTh_; updateOutputs(vInDc); @@ -261,6 +278,8 @@ double PowerAmp::process(double vIn) noexcept { bLast_[k++] = c->wdf.b; for (const auto& w : ot_.w) bLast_[k++] = w.wdf.b; + bLast_[k++] = lspkE_.w[0].wdf.b; + bLast_[k++] = lspkM_.w[0].wdf.b; } Wave wave; stage::reflected(elements(), wave); diff --git a/engine/src/PowerStage.cpp b/engine/src/PowerStage.cpp index 5fde7ae..e961a90 100644 --- a/engine/src/PowerStage.cpp +++ b/engine/src/PowerStage.cpp @@ -27,9 +27,11 @@ PowerStage::PowerStage() { } void PowerStage::prepare(double sampleRate) { - for (auto* c : {&c14_, &c16_, &c18_, &c19_, &cgkA_, &cgpA_, &cpkA_, &cgkB_, &cgpB_, &cpkB_}) + for (auto* c : {&c14_, &c16_, &c18_, &c19_, &cgkA_, &cgpA_, &cpkA_, &cgkB_, &cgpB_, &cpkB_, &cspkM_}) c->prepare(sampleRate); ot_.prepare(sampleRate); + lspkE_.prepare(sampleRate); + lspkM_.prepare(sampleRate); updateMatrices(); } @@ -72,7 +74,12 @@ PowerStage::Wave PowerStage::conductances(bool dc) const noexcept { G[eRwp1] = rwp1_.wdf.G; G[eRwp2] = rwp2_.wdf.G; G[eRws] = rws_.wdf.G; - G[eRload] = rload_.wdf.G; + G[eRspkE] = rspkE_.wdf.G; + G[eRspkLe] = rspkLe_.wdf.G; + G[eRspkM] = rspkM_.wdf.G; + G[eCspkM] = dc ? 0.0 : cspkM_.wdf.G; + G[eLspkE] = dc ? kWindingDcConductance : lspkE_.conductance(0, 0); // speaker inductors: shorts at DC (D-059) + G[eLspkM] = dc ? kWindingDcConductance : lspkM_.conductance(0, 0); for (int w = 0; w < 3; ++w) G[kWindings[w]] = dc ? kWindingDcConductance : ot_.conductance(w, w); return G; @@ -123,9 +130,13 @@ void PowerStage::reset(double vocA, double vocB) { cgkB_.setDcVoltage(across(eCgkB)); cgpB_.setDcVoltage(across(eCgpB)); cpkB_.setDcVoltage(across(eCpkB)); + cspkM_.setDcVoltage(across(eCspkM)); // winding currents into each + terminal from the series resistances (not from the 1 MS DC "short") const auto& v = root_.node; ot_.setDcCurrents({(v[pA] - v[pA1]) / Rwp1, (v[pB1] - v[pB]) / Rwp2, v[sl] / Rws}); + const double iSpk = (v[out] - v[spk1]) / RspkE; // speaker load at DC: Le and Lm short (D-059) + lspkE_.setDcCurrents({iSpk}); + lspkM_.setDcCurrents({iSpk}); updateOutputs(vocA, vocB); } diff --git a/engine/src/devices/Pentode.h b/engine/src/devices/Pentode.h index 759f6e3..84cba25 100644 --- a/engine/src/devices/Pentode.h +++ b/engine/src/devices/Pentode.h @@ -25,7 +25,7 @@ struct PentodeCurrents { /// 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 { - double mu = 11.0, ex = 1.35, kg1 = 650.0, kg2 = 4200.0, kp = 60.0, kvb = 24.0; + 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; @@ -69,9 +69,9 @@ struct Pentode { } }; -/// EL34 with the tubes.lib parameters (mu=11 ex=1.35 kg1=650 kg2=4200 kp=60 kvb=24 rgi=1000). +/// EL34 with the tubes.lib parameters (mu=14.77 ex=1.046 kg1=194.3 kg2=2243 kp=53.82 kvb=40.43 rgi=1000; D-058). inline const Pentode kEL34{}; /// Matched EL34 pair with identical drive (V4 ‖ V5, V6 ‖ V7): every current doubled. -inline const Pentode kEL34Pair{11.0, 1.35, 650.0, 4200.0, 60.0, 24.0, {1e-9, 1.0, 1000.0 + 1.0}, 2.0}; +inline const Pentode kEL34Pair{14.77, 1.046, 194.3, 2243.0, 53.82, 40.43, {1e-9, 1.0, 1000.0 + 1.0}, 2.0}; } // namespace amp2203::devices diff --git a/engine/src/stage56/Stage56Network.h b/engine/src/stage56/Stage56Network.h index 05c1450..7fc5297 100644 --- a/engine/src/stage56/Stage56Network.h +++ b/engine/src/stage56/Stage56Network.h @@ -11,6 +11,7 @@ namespace amp2203::stage56 { enum Node : int { y, g3a, nF, k3, g3b, nG, p3a, p3b, // phase inverter nGn, nOr, nbias, gA, gB, sA, sB, pA, pA1, pB1, pB, out, sl, // power stage + spk1, spk2, // speaker load (D-059) kNumNodes }; @@ -41,7 +42,12 @@ enum Element : int { eRwp2, // pB1 – pB eLs, // out – sl eRws, // sl – gnd - eRload, // out – gnd + eRspkE, // speaker Re: out – spk1 (D-059) + eLspkE, // voice-coil inductance: spk1 – spk2 + eRspkLe, // its eddy-loss resistance: spk1 – spk2 + eRspkM, // motional resonance R: spk2 – gnd + eLspkM, // motional resonance L: spk2 – gnd + eCspkM, // motional resonance C: spk2 – gnd kNumElements }; @@ -90,7 +96,12 @@ inline constexpr mna::PortNetwork kElements{{{ {pB1, pB}, {out, sl}, {sl, mna::kGround}, - {out, mna::kGround}, + {out, spk1}, + {spk1, spk2}, + {spk1, spk2}, + {spk2, mna::kGround}, + {spk2, mna::kGround}, + {spk2, mna::kGround}, }}}; inline constexpr mna::PortNetwork kRoot{{{ diff --git a/engine/src/stage6/Stage6Network.h b/engine/src/stage6/Stage6Network.h index 2579458..982621a 100644 --- a/engine/src/stage6/Stage6Network.h +++ b/engine/src/stage6/Stage6Network.h @@ -9,7 +9,7 @@ namespace amp2203::stage6 { /// transformer and the 16 Ω load. The OT centre tap ct and the screen supply nScr are ideal supplies: /// ports that end on ct are stored against ground with the supply offset (stage/RootNetwork.h); the /// screen resistors are resistive sources. -enum Node : int { p3a, p3b, nGn, nOr, nbias, gA, gB, sA, sB, pA, pA1, pB1, pB, out, sl, kNumNodes }; +enum Node : int { p3a, p3b, nGn, nOr, nbias, gA, gB, sA, sB, pA, pA1, pB1, pB, out, sl, spk1, spk2, kNumNodes }; enum Element : int { eJ5a, eJ5b, // J5 sources v_oc(p3a), v_oc(p3b) behind R_thA / R_thB (p3x – gnd) @@ -27,7 +27,12 @@ enum Element : int { eRwp2, // pB1 – pB eLs, // OT secondary out – sl eRws, // sl – gnd - eRload, // out – gnd + eRspkE, // speaker Re: out – spk1 (D-059) + eLspkE, // voice-coil inductance: spk1 – spk2 + eRspkLe, // its eddy-loss resistance: spk1 – spk2 + eRspkM, // motional resonance R: spk2 – gnd + eLspkM, // motional resonance L: spk2 – gnd + eCspkM, // motional resonance C: spk2 – gnd kNumElements }; @@ -59,7 +64,12 @@ inline constexpr mna::PortNetwork kElements{{{ {pB1, pB}, {out, sl}, {sl, mna::kGround}, - {out, mna::kGround}, + {out, spk1}, + {spk1, spk2}, + {spk1, spk2}, + {spk2, mna::kGround}, + {spk2, mna::kGround}, + {spk2, mna::kGround}, }}}; inline constexpr mna::PortNetwork kRoot{{{ @@ -72,7 +82,7 @@ inline constexpr mna::PortNetwork kRoot{{{ }}}; /// Sign of v(ct) in each element port's offset: (supply at node+) − (supply at node−). -inline constexpr int kElementCtSign[kNumElements] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, -1, +1, 0, 0, 0, 0}; +inline constexpr int kElementCtSign[kNumElements] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, -1, +1, 0, 0, 0, 0, 0, 0, 0, 0, 0}; } // namespace amp2203::stage6 diff --git a/harness/blocks.py b/harness/blocks.py index 2155187..023cb39 100644 --- a/harness/blocks.py +++ b/harness/blocks.py @@ -23,7 +23,7 @@ class Block: dc_nodes: tuple | None = None # nodes in the DC tables; None = every testbench node that F has levels: dict = field(default_factory=dict) # VERIFICATION §4, volts peak at the input source engine_block: str = '' # ampwav --block id - output_load: float = 0.0 # ohms, for power metrics (0 = none) + output_load: float = 0.0 # ohms, for power metrics (0 = none); 16 = nominal V²/16 Ω with the speaker load (D-059) recorded: tuple = () # Vrec_ sources: need recordings from another run (M4) linear: bool = False # scored with the linear-block tolerances (VERIFICATION §7) engine_supplies: tuple = () # nodes of the block's own SPICE run fed to the engine as --supply (b56) diff --git a/harness/junctions.py b/harness/junctions.py index 1074e58..114a994 100644 --- a/harness/junctions.py +++ b/harness/junctions.py @@ -1,13 +1,13 @@ """Junction Thevenin resistances (SPEC §4.1, CIRCUIT.md §4) used by the block testbenches and the engine. Values: |Z(1 kHz)| of the upstream output impedance at default parameters, measured with `python -m harness.rth_measure` (owner decision, PROGRESS.md Q6b, DECISIONS D-018; re-measured after -D-024). J5 is provisional until its partition error is measured in M4. None = not measured; testbenches then carry a PENDING +D-024; J3 again after D-058). J5 is provisional until its partition error is measured in M4. None = not measured; testbenches then carry a PENDING marker and transient runs refuse them. There is no J1 (B12, D-017). J4 is not listed: its resistance is a knob-dependent formula in the testbench (WDF_DESIGN §6).""" RTH = { 'j2': 89732.8, # p1b (B12 -> B3); DC 90107.6 - 'j3': 360.137, # k2b (B3 -> B4); DC 360.094 + 'j3': 359.535, # k2b (B3 -> B4); DC 359.5 (re-measured after D-058) 'j5a': 58067.6, # p3a (B5 -> B6); DC 41404.1; provisional 'j5b': 56937.4, # p3b (B5 -> B6); DC 45515.6; provisional } diff --git a/harness/m4_acceptance.py b/harness/m4_acceptance.py index da0bb67..1e54539 100644 --- a/harness/m4_acceptance.py +++ b/harness/m4_acceptance.py @@ -155,6 +155,7 @@ def _sine_compare(rep, section, pid, sig, f_res, e_res, sag=False): row['harm'], h_ref, h = _harm_2_9(f_res['out'][:n], e_res['out'][:n], f0) rep.add(section, 'total_harmonics_2_9_db', f'{pid} {sig.id}', row['harm'], ' dB') row['thd'] = (metrics.thd_percent(h_ref), metrics.thd_percent(h)) + # nominal power V²/16 Ω (the load is the D-059 speaker impedance): the same formula for F and the engine row['power'] = (metrics.mean_power(f_res['out'], 16.0), metrics.mean_power(e_res['out'], 16.0)) if sag: row['sag'] = (float(np.min(f_res['ct'])), float(np.min(e_res['ct']))) diff --git a/harness/plugin_cpu.py b/harness/plugin_cpu.py index 20bad66..b26708f 100644 --- a/harness/plugin_cpu.py +++ b/harness/plugin_cpu.py @@ -57,7 +57,7 @@ def main(): f'rescued {resc})', flush=True) lines = ['# M6 plugin CPU under knob automation', '', f'- Date {datetime.date.today().isoformat()}, commit `{_git()}`; `amp2203_render plugin` at the plugin defaults ' - f'({a.factor}x, Power Amp Rate Half, exact J4, Newton tol 1e-4 V, half-steps on; D-054 – D-056), FIR ' + f'({a.factor}x, Power Amp Rate Full, exact J4, Newton tol 1e-4 V, half-steps on; D-054 – D-056, D-060), FIR ' f'oversampling, {a.seconds:g} s of DI GTR L at {RATE} 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.', '', diff --git a/harness/plugin_null.py b/harness/plugin_null.py index be418b1..6e2abfc 100644 --- a/harness/plugin_null.py +++ b/harness/plugin_null.py @@ -1,5 +1,5 @@ """M5 wrapper null test (SPEC §7 M5): an offline render through the plugin's processor (`amp2203_render plugin`, -default 2x, Power Amp Rate Half, exact J4: the plugin defaults, D-054) against `ampwav --block full` at the same +default 2x, Power Amp Rate Full, exact J4: the plugin defaults, D-054, D-060) against `ampwav --block full` at the same engine rate and options on the processor's own oversampled input, followed by the same resampling: down(ampwav(up(x))), with the oversampler's up and down stages run alone (`amp2203_render up / down`). Default levels (Interface Level +12 dBu, trim and output 0 dB), default knobs. @@ -32,7 +32,7 @@ HOST_RATE = 48000 FACTOR = 2 -POWER_RATE = 'half' +POWER_RATE = 'full' # the plugin default (D-060) RENDER = config.ROOT / 'build' / 'plugin' / 'amp2203_render_artefacts' / 'Release' / 'amp2203_render' LIMIT_DB = -60.0 NEWTON_TOL = 1e-4 # V, the plugin's (D-055) diff --git a/harness/reports/M0/20261015_junctions.md b/harness/reports/M0/20261015_junctions.md new file mode 100644 index 0000000..0dad3f2 --- /dev/null +++ b/harness/reports/M0/20261015_junctions.md @@ -0,0 +1,48 @@ +# M0 junction Thevenin resistances + +- Date: 2026-10-15, ngspice 47, default parameters unless stated +- Method (SPEC §7 M0.5): 1 A AC current into the open-circuited output node of the upstream block testbench, block input AC-grounded, linearised at the DC operating point. DC = 1 mHz point of the sweep (capacitors effectively open), cross-checked by a ±1 µA finite difference of two DC operating points. +- Upstream junctions inside a testbench (Rth_j2 in b3) use the junctions.py value, or the DC value measured here while it is unset. +- junctions.py (used by the testbenches): j2 = 89.73 kΩ, j3 = 360.1 Ω, j5a = 58.07 kΩ, j5b = 56.94 kΩ (|Z(1 kHz)|, D-018) + +| Junction | Node | Testbench | R_th DC | DC (op finite diff.) | Z @ 1 kHz | Re Z @ 1 kHz | +|---|---|---|---|---|---|---| +| J2 | p1b | b12 | 90.1 kΩ | 90.1 kΩ | 89.73 kΩ ∠-1.0° | 89.72 kΩ | +| J3 | k2b | b3 | 359.5 Ω | 359.5 Ω | 359.5 Ω ∠+0.1° | 359.5 Ω | +| J5a (R_thA) | p3a | b5open | 41.38 kΩ | 41.38 kΩ | 58.05 kΩ ∠-0.9° | 58.05 kΩ | +| J5b (R_thB) | p3b | b5open | 45.49 kΩ | 45.49 kΩ | 56.91 kΩ ∠+0.4° | 56.91 kΩ | + +## Spread over presets + +| Junction | Knob sets | R_th DC min–max | \|Z\| @ 1 kHz min–max | +|---|---|---|---| +| J2 | 34 | 90.1 kΩ – 90.1 kΩ | 88.39 kΩ – 90.1 kΩ | +| J3 | 34 | 359.5 Ω – 359.5 Ω | 359.5 Ω – 359.5 Ω | +| J5a (R_thA) | 34 | 41.38 kΩ – 41.38 kΩ | 53.55 kΩ – 58.56 kΩ | +| J5b (R_thB) | 34 | 45.49 kΩ – 45.49 kΩ | 56.35 kΩ – 62.37 kΩ | + +## LTP coupling (J5) + +Transimpedance to the other PI plate (v(other) per A injected); the J-Thevenin model has no such term. + +| Injected at | Observed | DC | @ 1 kHz | Ratio to self @ 1 kHz | +|---|---|---|---|---| +| p3a | p3b | 14.46 kΩ | 25.48 kΩ ∠+1.8° | 0.44 | +| p3b | p3a | 14.52 kΩ | 32.12 kΩ ∠-0.8° | 0.56 | + +## Sensitivity to the upstream R_th + +Max relative change when every upstream R_th is switched from its DC value to |Z(1 kHz)|: j2 0.0e+00, j3 8.7e-08, j5a 0.0e+00, j5b 0.0e+00 + +## |Z(f)| + +![impedance](20261015_junctions.png) + +## |Z| at selected frequencies + +| Junction | 0.001 Hz | 10 Hz | 100 Hz | 1000 Hz | 10000 Hz | +|---|---|---|---|---|---| +| J2 | 90.1 kΩ ∠-0.0° | 90.1 kΩ ∠-0.0° | 90.1 kΩ ∠-0.1° | 89.73 kΩ ∠-1.0° | 85.63 kΩ ∠-3.3° | +| J3 | 359.5 Ω ∠+0.0° | 359.5 Ω ∠+0.0° | 359.5 Ω ∠+0.0° | 359.5 Ω ∠+0.1° | 360.7 Ω ∠+0.4° | +| J5a (R_thA) | 41.38 kΩ ∠+0.0° | 57.2 kΩ ∠+6.0° | 58.67 kΩ ∠+0.0° | 58.05 kΩ ∠-0.9° | 57.35 kΩ ∠-7.9° | +| J5b (R_thB) | 45.49 kΩ ∠+0.1° | 58.69 kΩ ∠-6.1° | 56.23 kΩ ∠-0.0° | 56.91 kΩ ∠+0.4° | 57.67 kΩ ∠+3.1° | diff --git a/harness/reports/M0/20261015_junctions.png b/harness/reports/M0/20261015_junctions.png new file mode 100644 index 0000000..417d387 Binary files /dev/null and b/harness/reports/M0/20261015_junctions.png differ diff --git a/harness/reports/M4/20261015_b56_DEFAULT.md b/harness/reports/M4/20261015_b56_DEFAULT.md new file mode 100644 index 0000000..7b980d7 --- /dev/null +++ b/harness/reports/M4/20261015_b56_DEFAULT.md @@ -0,0 +1,226 @@ +# 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-15 +- Engine commit: `476d21f (dirty)` +- Testbench: `harness/testbenches/b56.cir` sha256 `33af0649f0b082da`; netlist sha256 `7bea8385e4adb04e`; tubes.lib sha256 `5767afe208240bfa` +- ngspice 47, fs = 768000 Hz, SPICE reltol 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.639e-13 | ≤ 0.005 | PASS | +| dc_rel_error | v(ct) | 3.933e-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) | 1.07e-14 | ≤ 0.005 | PASS | +| dc_rel_error | v(out) | 6.591e-07 | ≤ 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.469e-11 | ≤ 0.005 | PASS | +| dc_rel_error | v(pb) | 3.756e-08 | ≤ 0.005 | PASS | +| dc_rel_error | v(pb1) | 2.844e-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.084e-06 | ≤ 0.005 | PASS | +| dc_rel_error | v(y) | 1.221e-07 | ≤ 0.005 | PASS | +| nonlinear_esr_db | SIN-100Hz-0.1V | -87.37 dB | ≤ -20 | PASS | +| harmonics_2_5_db | SIN-100Hz-0.1V | 0.002212 dB | ≤ 0.5 | PASS | +| thd_pp | SIN-100Hz-0.1V | 1.094e-05 pp | — | INFO | +| total_power_rel | SIN-100Hz-0.1V | 8.518e-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 | -81.58 dB | ≤ -20 | PASS | +| harmonics_2_5_db | SIN-1000Hz-0.1V | 0.002075 dB | ≤ 0.5 | PASS | +| thd_pp | SIN-1000Hz-0.1V | 1.08e-05 pp | — | INFO | +| total_power_rel | SIN-1000Hz-0.1V | 0.0001002 | ≤ 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 | -68.59 dB | ≤ -20 | PASS | +| harmonics_2_5_db | SIN-5000Hz-0.1V | 0.00327 dB | ≤ 0.5 | PASS | +| thd_pp | SIN-5000Hz-0.1V | 2.189e-05 pp | — | INFO | +| total_power_rel | SIN-5000Hz-0.1V | 0.0003846 | ≤ 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 | -86.86 dB | ≤ -20 | PASS | +| harmonics_2_5_db | SIN-100Hz-1V | 0.002249 dB | ≤ 0.5 | PASS | +| thd_pp | SIN-100Hz-1V | 7.58e-05 pp | — | INFO | +| total_power_rel | SIN-100Hz-1V | 9.044e-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 | -81.27 dB | ≤ -20 | PASS | +| harmonics_2_5_db | SIN-1000Hz-1V | 0.002148 dB | ≤ 0.5 | PASS | +| thd_pp | SIN-1000Hz-1V | 6.705e-05 pp | — | INFO | +| total_power_rel | SIN-1000Hz-1V | 0.0001081 | ≤ 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 | -68.25 dB | ≤ -20 | PASS | +| harmonics_2_5_db | SIN-5000Hz-1V | 0.01228 dB | ≤ 0.5 | PASS | +| thd_pp | SIN-5000Hz-1V | 0.0001581 pp | — | INFO | +| total_power_rel | SIN-5000Hz-1V | 0.00042 | ≤ 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 | -90.98 dB | ≤ -20 | PASS | +| harmonics_2_5_db | SIN-100Hz-5V | 0.00839 dB | ≤ 0.5 | PASS | +| thd_pp | SIN-100Hz-5V | 0.000788 pp | — | INFO | +| total_power_rel | SIN-100Hz-5V | 2.589e-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.94 dB | ≤ -20 | PASS | +| harmonics_2_5_db | SIN-1000Hz-5V | 0.00431 dB | ≤ 0.5 | PASS | +| thd_pp | SIN-1000Hz-5V | 0.0006853 pp | — | INFO | +| total_power_rel | SIN-1000Hz-5V | 1.741e-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 | -65.3 dB | ≤ -20 | PASS | +| harmonics_2_5_db | SIN-5000Hz-5V | 0.04574 dB | ≤ 0.5 | PASS | +| thd_pp | SIN-5000Hz-5V | 0.0005468 pp | — | INFO | +| total_power_rel | SIN-5000Hz-5V | 3.519e-05 | ≤ 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 | -81.58 dB | ≤ -20 | PASS | +| harmonics_2_5_db | SIN-100Hz-20V | 0.009901 dB | ≤ 0.5 | PASS | +| thd_pp | SIN-100Hz-20V | 0.001575 pp | — | INFO | +| total_power_rel | SIN-100Hz-20V | 4.799e-05 | ≤ 0.05 | INFO | +| newton_failures | SIN-100Hz-20V | 0 | ≤ 0 | PASS | +| newton_median_iterations | SIN-100Hz-20V | 1 | ≤ 3 | PASS | +| newton_max_iterations | SIN-100Hz-20V | 5 | ≤ 32 | PASS | +| nonlinear_esr_db_overdrive | SIN-1000Hz-20V | -72.55 dB | ≤ -20 | PASS | +| harmonics_2_5_db | SIN-1000Hz-20V | 0.01873 dB | ≤ 0.5 | PASS | +| thd_pp | SIN-1000Hz-20V | 0.001125 pp | — | INFO | +| total_power_rel | SIN-1000Hz-20V | 3.314e-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 | 5 | ≤ 32 | PASS | +| nonlinear_esr_db_overdrive | SIN-5000Hz-20V | -48.4 dB | ≤ -20 | PASS | +| harmonics_2_5_db | SIN-5000Hz-20V | 0.06446 dB | ≤ 0.5 | PASS | +| thd_pp | SIN-5000Hz-20V | 0.03904 pp | — | INFO | +| total_power_rel | SIN-5000Hz-20V | 0.000511 | ≤ 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 | -65.7 dB | ≤ -20 | PASS | +| linear_mag_db_20_10k | SWP-lo-0.1V | 0.01172 dB | ≤ 0.1 | INFO | +| linear_mag_db_10k_20k | SWP-lo-0.1V | 0.01193 dB | ≤ 0.3 | INFO | +| method_mag_db_spice_tran_vs_ac | SWP-lo-0.1V | 0.03085 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 | -64.68 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 | -85.94 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.9 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 | -80.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 | ≤ 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.298 | -87.37 | 0 | -87.37 | 0.0564 / 0.0564 | 0.04303 / 0.04303 | 790.4 | 0 / 1 / 2 | +| SIN-1000Hz-0.1V | 1.362 | -81.58 | 0 | -81.58 | 0.0624 / 0.0625 | 0.05449 / 0.05449 | 1086.9 | 0 / 2 / 2 | +| SIN-5000Hz-0.1V | 1.329 | -68.59 | 0 | -68.59 | 0.069 / 0.069 | 0.05433 / 0.05435 | 1205.9 | 0 / 2 / 2 | +| SIN-100Hz-1V | 13.71 | -86.86 | 0 | -86.86 | 1.58 / 1.58 | 4.566 / 4.567 | 775.5 | 0 / 1 / 2 | +| SIN-1000Hz-1V | 14.56 | -81.27 | 0 | -81.27 | 1.89 / 1.89 | 5.876 / 5.877 | 1194.9 | 0 / 2 / 2 | +| SIN-5000Hz-1V | 14.25 | -68.25 | 0 | -68.25 | 2.08 / 2.08 | 5.866 / 5.868 | 1196.2 | 0 / 2 / 3 | +| SIN-100Hz-5V | 65.1 | -90.98 | 0 | -90.98 | 5.85 / 5.85 | 113.5 / 113.5 | 1053.3 | 0 / 2 / 3 | +| SIN-1000Hz-5V | 65.17 | -78.94 | 0 | -78.94 | 8.18 / 8.18 | 120 / 120 | 1329.4 | 0 / 2 / 5 | +| SIN-5000Hz-5V | 65.28 | -65.30 | 0 | -65.30 | 9.16 / 9.16 | 119.1 / 119.1 | 2237.6 | 0 / 3 / 6 | +| SIN-100Hz-20V | 67.03 | -81.58 | 0 | -81.58 | 35.9 / 35.9 | 136.9 / 136.9 | 997.3 | 0 / 1 / 5 | +| SIN-1000Hz-20V | 65.75 | -72.55 | 0 | -72.55 | 42.6 / 42.6 | 144 / 144 | 1577.0 | 0 / 2 / 5 | +| SIN-5000Hz-20V | 65.53 | -48.40 | 0 | -48.40 | 35.5 / 35.5 | 139.6 / 139.5 | 2359.4 | 0 / 3 / 9 | +| SWP-lo-0.1V | 1.324 | -65.70 | 0 | -65.70 | — | — | 978.5 | 0 / 1 / 3 | +| SWP-hi-1V | 14.04 | -64.68 | 0 | -64.68 | — | — | 1121.5 | 0 / 2 / 4 | +| TT-0.5V | 13.23 | -85.94 | 0 | -85.94 | — | — | 994.8 | 0 / 2 / 2 | +| BURST-5V | 65.14 | -78.90 | 0 | -78.90 | — | — | 1229.9 | 0 / 2 / 5 | +| STEP-1V | 18.54 | -80.95 | 0 | -80.95 | — | — | 784.7 | 0 / 1 / 3 | + +## DC operating point + +| Node | SPICE [V] | Engine [V] | Rel. error | +|---|---|---|---| +| bpa | 391.9215 | — | — | +| bpx | 404.9982 | 404.9982 | 6.639e-13 | +| c20 | -60.0000 | — | — | +| ct | 491.3466 | 491.3466 | 3.933e-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 | 1.07e-14 | +| out | 0.0000 | 0.0000 | 6.591e-07 | +| 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.469e-11 | +| pb | 490.3937 | 490.3937 | 3.756e-08 | +| pb1 | 491.3466 | 491.3466 | 2.844e-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.084e-06 | +| y | 0.0000 | 0.0000 | 1.221e-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)](20261015_b56_DEFAULT/waveform.png) + +### Harmonics + +![Harmonics](20261015_b56_DEFAULT/harmonics.png) + +### Magnitude response + +![Magnitude response](20261015_b56_DEFAULT/magnitude.png) diff --git a/harness/reports/M4/20261015_b56_DEFAULT/harmonics.png b/harness/reports/M4/20261015_b56_DEFAULT/harmonics.png new file mode 100644 index 0000000..0a01ef5 Binary files /dev/null and b/harness/reports/M4/20261015_b56_DEFAULT/harmonics.png differ diff --git a/harness/reports/M4/20261015_b56_DEFAULT/magnitude.png b/harness/reports/M4/20261015_b56_DEFAULT/magnitude.png new file mode 100644 index 0000000..9b73b58 Binary files /dev/null and b/harness/reports/M4/20261015_b56_DEFAULT/magnitude.png differ diff --git a/harness/reports/M4/20261015_b56_DEFAULT/waveform.png b/harness/reports/M4/20261015_b56_DEFAULT/waveform.png new file mode 100644 index 0000000..7acc635 Binary files /dev/null and b/harness/reports/M4/20261015_b56_DEFAULT/waveform.png differ diff --git a/harness/reports/M4/20261015_b5open_DEFAULT.md b/harness/reports/M4/20261015_b5open_DEFAULT.md new file mode 100644 index 0000000..c1fd1b8 --- /dev/null +++ b/harness/reports/M4/20261015_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-15 +- Engine commit: `3cb4124 (dirty)` +- Testbench: `harness/testbenches/b5open.cir` sha256 `44543f92cde2a435`; netlist sha256 `83f01b6fd8b64a06`; tubes.lib sha256 `5767afe208240bfa` +- 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.003219 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.74 dB | ≤ -20 | PASS | +| harmonics_2_5_db | SIN-5000Hz-20V | 0.03478 dB | ≤ 0.5 | PASS | +| thd_pp | SIN-5000Hz-20V | 0.01646 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 | — | 278.1 | 0 / 1 / 1 | +| SIN-1000Hz-0.1V | 1.642 | -80.61 | 0 | -80.61 | 0.0599 / 0.0599 | — | 277.5 | 0 / 1 / 2 | +| SIN-5000Hz-0.1V | 1.172 | -68.37 | 0 | -68.37 | 0.0573 / 0.0573 | — | 393.4 | 0 / 2 / 2 | +| SIN-100Hz-1V | 12.67 | -84.13 | 0 | -84.13 | 0.428 / 0.428 | — | 281.7 | 0 / 1 / 2 | +| SIN-1000Hz-1V | 16.11 | -80.59 | 0 | -80.59 | 2.09 / 2.09 | — | 398.4 | 0 / 2 / 2 | +| SIN-5000Hz-1V | 11.1 | -68.40 | 0 | -68.40 | 1.4 / 1.4 | — | 424.0 | 0 / 2 / 2 | +| SIN-100Hz-5V | 56.7 | -83.88 | 0 | -83.88 | 6.05 / 6.05 | — | 280.1 | 0 / 1 / 2 | +| SIN-1000Hz-5V | 97.08 | -79.54 | 0 | -79.54 | 7.71 / 7.71 | — | 471.1 | 0 / 2 / 2 | +| SIN-5000Hz-5V | 77.43 | -66.53 | 0 | -66.53 | 13.6 / 13.6 | — | 450.7 | 0 / 2 / 3 | +| SIN-100Hz-20V | 132.2 | -75.04 | 0 | -75.04 | 47.4 / 47.4 | — | 388.9 | 0 / 1 / 2 | +| SIN-1000Hz-20V | 140.8 | -73.74 | 0 | -73.74 | 50.7 / 50.7 | — | 452.9 | 0 / 2 / 3 | +| SIN-5000Hz-20V | 142 | -61.74 | 0 | -61.74 | 53.6 / 53.6 | — | 610.7 | 0 / 2 / 4 | +| SWP-lo-0.1V | 2.693 | -69.19 | 0 | -69.19 | — | — | 312.5 | 0 / 1 / 3 | +| SWP-hi-1V | 26.97 | -69.04 | 0 | -69.04 | — | — | 345.6 | 0 / 1 / 3 | +| TT-0.5V | 14.38 | -83.65 | 0 | -83.65 | — | — | 280.8 | 0 / 1 / 2 | +| BURST-5V | 102.3 | -79.75 | 0 | -79.75 | — | — | 366.1 | 0 / 1 / 2 | +| STEP-1V | 19.85 | -82.54 | 0 | -82.54 | — | — | 284.8 | 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)](20261015_b5open_DEFAULT/waveform.png) + +### Harmonics + +![Harmonics](20261015_b5open_DEFAULT/harmonics.png) diff --git a/harness/reports/M4/20261015_b5open_DEFAULT/harmonics.png b/harness/reports/M4/20261015_b5open_DEFAULT/harmonics.png new file mode 100644 index 0000000..38bf7eb Binary files /dev/null and b/harness/reports/M4/20261015_b5open_DEFAULT/harmonics.png differ diff --git a/harness/reports/M4/20261015_b5open_DEFAULT/waveform.png b/harness/reports/M4/20261015_b5open_DEFAULT/waveform.png new file mode 100644 index 0000000..5187c44 Binary files /dev/null and b/harness/reports/M4/20261015_b5open_DEFAULT/waveform.png differ diff --git a/harness/reports/M4/20261015_b6_DEFAULT.md b/harness/reports/M4/20261015_b6_DEFAULT.md new file mode 100644 index 0000000..2e5f68b --- /dev/null +++ b/harness/reports/M4/20261015_b6_DEFAULT.md @@ -0,0 +1,199 @@ +# 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-15 +- Engine commit: `476d21f (dirty)` +- Testbench: `harness/testbenches/b6.cir` sha256 `124605426f35e6fd`; netlist sha256 `7bea8385e4adb04e`; tubes.lib sha256 `5767afe208240bfa` +- ngspice 47, fs = 768000 Hz, SPICE reltol 1e-08 + +## Summary + +PASS 95 · FAIL 2 · 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) | 9.519e-10 | ≤ 0.005 | PASS | +| dc_rel_error | v(p3a) | 1.332e-09 | ≤ 0.005 | PASS | +| dc_rel_error | v(p3b) | 7.708e-10 | ≤ 0.005 | PASS | +| dc_rel_error | v(pa) | 3.492e-08 | ≤ 0.005 | PASS | +| dc_rel_error | v(pa1) | 4.64e-11 | ≤ 0.005 | PASS | +| dc_rel_error | v(pb) | 3.764e-08 | ≤ 0.005 | PASS | +| dc_rel_error | v(pb1) | 4.642e-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.905e-11 | ≤ 0.005 | PASS | +| nonlinear_esr_db | SIN-100Hz-0.1V | -97.25 dB | ≤ -20 | PASS | +| harmonics_2_5_db | SIN-100Hz-0.1V | 0.0004626 dB | ≤ 0.5 | PASS | +| thd_pp | SIN-100Hz-0.1V | 1.925e-06 pp | — | INFO | +| total_power_rel | SIN-100Hz-0.1V | 1.643e-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 | -81.01 dB | ≤ -20 | PASS | +| harmonics_2_5_db | SIN-1000Hz-0.1V | 0.0007302 dB | ≤ 0.5 | PASS | +| thd_pp | SIN-1000Hz-0.1V | 2.326e-06 pp | — | INFO | +| total_power_rel | SIN-1000Hz-0.1V | 3.365e-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.84 dB | ≤ -20 | PASS | +| harmonics_2_5_db | SIN-5000Hz-0.1V | 0.005712 dB | ≤ 0.5 | PASS | +| thd_pp | SIN-5000Hz-0.1V | 3.845e-05 pp | — | INFO | +| total_power_rel | SIN-5000Hz-0.1V | 0.0004467 | ≤ 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 | -96.55 dB | ≤ -20 | PASS | +| harmonics_2_5_db | SIN-100Hz-1V | 0.0005171 dB | ≤ 0.5 | PASS | +| thd_pp | SIN-100Hz-1V | 4.251e-05 pp | — | INFO | +| total_power_rel | SIN-100Hz-1V | 1.93e-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.61 dB | ≤ -20 | PASS | +| harmonics_2_5_db | SIN-1000Hz-1V | 0.0003471 dB | ≤ 0.5 | PASS | +| thd_pp | SIN-1000Hz-1V | 2.724e-05 pp | — | INFO | +| total_power_rel | SIN-1000Hz-1V | 3.995e-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 | -66.18 dB | ≤ -20 | PASS | +| harmonics_2_5_db | SIN-5000Hz-1V | 0.01894 dB | ≤ 0.5 | PASS | +| thd_pp | SIN-5000Hz-1V | 0.00049 pp | — | INFO | +| total_power_rel | SIN-5000Hz-1V | 0.000524 | ≤ 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 | -92.83 dB | ≤ -20 | PASS | +| harmonics_2_5_db | SIN-100Hz-5V | 0.0005535 dB | ≤ 0.5 | PASS | +| thd_pp | SIN-100Hz-5V | 0.0001694 pp | — | INFO | +| total_power_rel | SIN-100Hz-5V | 6.42e-06 | ≤ 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 | ≤ 12 | PASS | +| nonlinear_esr_db | SIN-1000Hz-5V | -75.08 dB | ≤ -20 | PASS | +| harmonics_2_5_db | SIN-1000Hz-5V | 0.001867 dB | ≤ 0.5 | PASS | +| thd_pp | SIN-1000Hz-5V | 0.0005724 pp | — | INFO | +| total_power_rel | SIN-1000Hz-5V | 9.42e-06 | ≤ 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.11 dB | ≤ -20 | PASS | +| harmonics_2_5_db | SIN-5000Hz-5V | 0.01248 dB | ≤ 0.5 | PASS | +| thd_pp | SIN-5000Hz-5V | 0.002327 pp | — | INFO | +| total_power_rel | SIN-5000Hz-5V | 3.77e-05 | ≤ 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 | 5 | ≤ 12 | PASS | +| nonlinear_esr_db_overdrive | SIN-100Hz-20V | -89.38 dB | ≤ -20 | PASS | +| harmonics_2_5_db | SIN-100Hz-20V | 0.0001692 dB | ≤ 0.5 | PASS | +| thd_pp | SIN-100Hz-20V | 0.0002596 pp | — | INFO | +| total_power_rel | SIN-100Hz-20V | 9.19e-08 | ≤ 0.05 | INFO | +| newton_failures | SIN-100Hz-20V | 0 | ≤ 0 | PASS | +| newton_median_iterations | SIN-100Hz-20V | 1 | ≤ 3 | PASS | +| newton_max_iterations | SIN-100Hz-20V | 5 | ≤ 12 | PASS | +| nonlinear_esr_db_overdrive | SIN-1000Hz-20V | -70.68 dB | ≤ -20 | PASS | +| harmonics_2_5_db | SIN-1000Hz-20V | 0.003575 dB | ≤ 0.5 | PASS | +| thd_pp | SIN-1000Hz-20V | 0.001789 pp | — | INFO | +| total_power_rel | SIN-1000Hz-20V | 2.615e-07 | ≤ 0.05 | INFO | +| newton_failures | SIN-1000Hz-20V | 0 | ≤ 0 | PASS | +| newton_median_iterations | SIN-1000Hz-20V | 3 | ≤ 3 | PASS | +| newton_max_iterations | SIN-1000Hz-20V | 6 | ≤ 12 | PASS | +| nonlinear_esr_db_overdrive | SIN-5000Hz-20V | -40.9 dB | ≤ -20 | PASS | +| harmonics_2_5_db | SIN-5000Hz-20V | 0.8185 dB | ≤ 0.5 | FAIL | +| thd_pp | SIN-5000Hz-20V | 0.03399 pp | — | INFO | +| total_power_rel | SIN-5000Hz-20V | 0.005427 | ≤ 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 | 10 | ≤ 12 | PASS | +| nonlinear_esr_db | SWP-lo-0.1V | -65.2 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 | -63.92 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 | -90.96 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 | -75.06 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 | -81.81 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.175 | -97.25 | 0 | -97.25 | 0.128 / 0.128 | 0.03513 / 0.03513 | 405.5 | 0 / 1 / 2 | +| SIN-1000Hz-0.1V | 1.217 | -81.01 | 0 | -81.01 | 0.145 / 0.145 | 0.04381 / 0.04381 | 538.5 | 0 / 2 / 2 | +| SIN-5000Hz-0.1V | 1.182 | -66.84 | 0 | -66.84 | 0.163 / 0.163 | 0.04319 / 0.04321 | 599.7 | 0 / 2 / 2 | +| SIN-100Hz-1V | 12.04 | -96.55 | 0 | -96.55 | 1.59 / 1.59 | 3.62 / 3.62 | 396.9 | 0 / 1 / 2 | +| SIN-1000Hz-1V | 12.55 | -80.61 | 0 | -80.61 | 1.83 / 1.83 | 4.552 / 4.552 | 598.5 | 0 / 2 / 2 | +| SIN-5000Hz-1V | 12.6 | -66.18 | 0 | -66.18 | 2.06 / 2.06 | 4.484 / 4.486 | 593.9 | 0 / 2 / 3 | +| SIN-100Hz-5V | 64.51 | -92.83 | 0 | -92.83 | 5.86 / 5.86 | 105.6 / 105.6 | 504.1 | 0 / 2 / 3 | +| SIN-1000Hz-5V | 65.07 | -75.08 | 0 | -75.08 | 7.28 / 7.28 | 112.3 / 112.3 | 631.1 | 0 / 2 / 5 | +| SIN-5000Hz-5V | 65.19 | -61.11 | 0 | -61.11 | 8.59 / 8.59 | 112 / 112 | 807.6 | 0 / 3 / 5 | +| SIN-100Hz-20V | 66.34 | -89.38 | 0 | -89.38 | 37.2 / 37.2 | 118.6 / 118.6 | 492.2 | 0 / 1 / 5 | +| SIN-1000Hz-20V | 65.86 | -70.68 | 0 | -70.68 | 43.1 / 43.1 | 132.9 / 132.9 | 751.5 | 0 / 3 / 6 | +| SIN-5000Hz-20V | 65.72 | -40.90 | 0 | -40.90 | 38 / 38 | 130.8 / 130.1 | 1181.5 | 0 / 4 / 10 | +| SWP-lo-0.1V | 1.187 | -65.20 | 0 | -65.20 | — | — | 484.1 | 0 / 1 / 3 | +| SWP-hi-1V | 12.39 | -63.92 | 0 | -63.92 | — | — | 541.2 | 0 / 2 / 3 | +| TT-0.5V | 11.76 | -90.96 | 0 | -90.96 | — | — | 490.3 | 0 / 1 / 2 | +| BURST-5V | 65.05 | -75.06 | 0 | -75.06 | — | — | 589.8 | 0 / 2 / 5 | +| STEP-1V | 15.96 | -81.81 | 0 | -81.81 | — | — | 400.6 | 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 | 9.519e-10 | +| p3a | 272.6113 | 272.6113 | 1.332e-09 | +| p3b | 263.9512 | 263.9512 | 7.708e-10 | +| pa | 490.4628 | 490.4628 | 3.492e-08 | +| pa1 | 491.3466 | 491.3466 | 4.64e-11 | +| pb | 490.3937 | 490.3937 | 3.764e-08 | +| pb1 | 491.3466 | 491.3466 | 4.642e-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.905e-11 | + +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)](20261015_b6_DEFAULT/waveform.png) + +### Harmonics + +![Harmonics](20261015_b6_DEFAULT/harmonics.png) + +> Note (2026-10-15, after D-058): the SPICE reference for SWP-lo-0.1V stopped with "timestep too small" at RELTOL 1e-8 (t = 1.507 s, recorded nScr source) and was rendered at RELTOL 1e-7, as the M3 cascade does for P56. The two FAILs (5 kHz 20 V) are the known B6 discretisation FAILs (D-043; three before D-058). diff --git a/harness/reports/M4/20261015_b6_DEFAULT/harmonics.png b/harness/reports/M4/20261015_b6_DEFAULT/harmonics.png new file mode 100644 index 0000000..2703008 Binary files /dev/null and b/harness/reports/M4/20261015_b6_DEFAULT/harmonics.png differ diff --git a/harness/reports/M4/20261015_b6_DEFAULT/waveform.png b/harness/reports/M4/20261015_b6_DEFAULT/waveform.png new file mode 100644 index 0000000..323cac6 Binary files /dev/null and b/harness/reports/M4/20261015_b6_DEFAULT/waveform.png differ diff --git a/harness/reports/M4/20261015_full_acceptance.md b/harness/reports/M4/20261015_full_acceptance.md new file mode 100644 index 0000000..81240c6 --- /dev/null +++ b/harness/reports/M4/20261015_full_acceptance.md @@ -0,0 +1,197 @@ +# M4 acceptance: full amplifier vs the full netlist + +- Date: 2026-10-15, engine commit `476d21f (dirty)`, ngspice 47, fs = 768000 Hz, SPICE reltol 1e-08 +- Netlist sha256 `7bea8385e4adb04e`, tubes.lib sha256 `5767afe208240bfa` +- 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.001911 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.005214 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.02216 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.002302 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.007793 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.06395 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.47 dB | ≤ -20 | PASS | +| clean | total_harmonics_2_9_db | CLEAN SIN-1000Hz-0.025V | 0.9549 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.03228 | ≤ 0.05 | PASS | +| clean | total_thd_pp | CLEAN SIN-1000Hz-0.025V | 0.2167 pp | ≤ 0.5 | PASS | +| stability | stability_out_v | max |out| | 4.306e-05 V | ≤ 0.001 | PASS | +| stability | stability_growth | RMS last 10 s − first 10 s | -4.239e-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.99 dB | ≤ -20 | PASS | +| overdrive | total_harmonics_2_9_db | OVERDRIVE SIN-220Hz-0.3V | 0.008136 dB | ≤ 1.5 | PASS | +| overdrive | sag_min_v | OVERDRIVE SIN-220Hz-0.3V | 0.004019 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.3 dB | ≤ -20 | PASS | +| crunch_drive | total_harmonics_2_9_db | CRUNCH SIN-220Hz-0.3V | 0.00776 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 | -61.77 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 | -62.21 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.96 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 | -61.89 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.85 dB | ≤ -20 | PASS | +| crunch_drive | total_harmonics_2_9_db | DRIVE SIN-220Hz-0.3V | 0.03414 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 | -61.06 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 | -62.19 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.74 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 | -61.07 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 | 41.90 | 41.90 | 46.99 | 46.99 | 5.10 | 5.10 | +| 1000 Hz | 53.94 | 53.94 | 58.66 | 58.67 | 4.72 | 4.72 | +| 5000 Hz | 66.41 | 66.44 | 71.04 | 71.10 | 4.62 | 4.67 | + +## 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.5 dB | 2 | 0.95 dB | 4.69 / 4.91 % | 86.4 / 83.6 W | — | +| OVERDRIVE | SIN-220Hz-0.3V | -68.0 dB | 0 | 0.01 dB | 22.83 / 22.83 % | 27.6 / 27.6 W | 473.08 / 473.07 V | +| CRUNCH | SIN-220Hz-0.3V | -70.3 dB | 0 | 0.01 dB | 14.46 / 14.46 % | 26.9 / 26.9 W | — | +| CRUNCH | DI-GTR L | -61.8 dB | 0 | — | — | — | — | +| CRUNCH | DI-GTR LL | -62.2 dB | 0 | — | — | — | — | +| CRUNCH | DI-GTR R | -63.0 dB | 0 | — | — | — | — | +| CRUNCH | DI-GTR RR | -61.9 dB | 0 | — | — | — | — | +| DRIVE | SIN-220Hz-0.3V | -63.9 dB | 0 | 0.03 dB | 25.48 / 25.48 % | 29.6 / 29.6 W | — | +| DRIVE | DI-GTR L | -61.1 dB | 0 | — | — | — | — | +| DRIVE | DI-GTR LL | -62.2 dB | 0 | — | — | — | — | +| DRIVE | DI-GTR R | -61.7 dB | 0 | — | — | — | — | +| DRIVE | DI-GTR RR | -61.1 dB | 0 | — | — | — | — | + +## Stability + +60 s silence at Preamp / Master / Presence 1.0: max |out| 4.31e-05 V, RMS first / last 10 s 4.26e-05 / 4.26e-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/M4/20261016_full_acceptance.md b/harness/reports/M4/20261016_full_acceptance.md new file mode 100644 index 0000000..243d42a --- /dev/null +++ b/harness/reports/M4/20261016_full_acceptance.md @@ -0,0 +1,197 @@ +# M4 acceptance: full amplifier vs the full netlist + +- Date: 2026-10-16, engine commit `3cb4124 (dirty)`, ngspice 47, fs = 768000 Hz, SPICE reltol 1e-08 +- Netlist sha256 `83f01b6fd8b64a06`, tubes.lib sha256 `5767afe208240bfa` +- 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/20261015_b56_knob_jump.md b/harness/reports/M5/20261015_b56_knob_jump.md index 6e01933..be3f865 100644 --- a/harness/reports/M5/20261015_b56_knob_jump.md +++ b/harness/reports/M5/20261015_b56_knob_jump.md @@ -1,9 +1,9 @@ # M5 report: B56 knob-jump test -- Date: 2026-10-15, engine commit `831e393 (dirty)`, ngspice 47, fs = 768000 Hz, SPICE reltol 1e-08 +- Date: 2026-10-15, engine commit `476d21f (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 | -63.2 dB | PASS | 1.64e-03 | -70.3 dB | +| presence | yes | -64.0 dB | PASS | 1.49e-03 | -71.0 dB | diff --git a/harness/reports/M5/20261016_b56_knob_jump.md b/harness/reports/M5/20261016_b56_knob_jump.md new file mode 100644 index 0000000..80987f6 --- /dev/null +++ b/harness/reports/M5/20261016_b56_knob_jump.md @@ -0,0 +1,9 @@ +# M5 report: B56 knob-jump test + +- Date: 2026-10-16, engine commit `3cb4124 (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/20261015_auval.log b/harness/reports/M6/20261015_auval.log new file mode 100644 index 0000000..ee709a3 --- /dev/null +++ b/harness/reports/M6/20261015_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: 9.150 ms +WARM: +Time to open AudioUnit: 5.317 ms +This AudioUnit is a version 2 implementation. +FIRST TIME: +Time for initialization: 8.202 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_39e4bceb0e95b4f4 + 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 = Half, 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/20261015_el34_curve_fit.json b/harness/reports/M6/20261015_el34_curve_fit.json new file mode 100644 index 0000000..84cd4e3 --- /dev/null +++ b/harness/reports/M6/20261015_el34_curve_fit.json @@ -0,0 +1,113 @@ +{ + "source": "Ei-RC EL34 data sheet (frank.pocnet.net/sheets/084/e/EL34.pdf), page 7 top (plate characteristics, Vg2 250 V) and page 6 (transfer characteristics), digitised 2026-10-15", + "plate_vg2_250": { + "0": { + "50": 211.4, + "100": 251.6, + "150": 262.7, + "200": 263.4, + "250": 264.0 + }, + "-5": { + "50": 148.9, + "100": 175.0, + "150": 188.0, + "200": 194.0, + "250": 199.3, + "300": 198.2, + "350": 201.1, + "400": 195.2 + }, + "-10": { + "50": 79.6, + "100": 107.3, + "150": 109.2, + "200": 119.1, + "250": 128.5, + "300": 131.2, + "350": 130.2, + "400": 138.1, + "450": 141.5, + "495": 143.2 + }, + "-15": { + "50": 35.4, + "100": 54.3, + "150": 60.3, + "200": 64.4, + "250": 68.2, + "300": 69.9, + "350": 72.1, + "400": 70.8, + "450": 78.1, + "495": 81.0 + }, + "-20": { + "50": 18.6, + "100": 20.2, + "150": 27.3, + "200": 28.7, + "250": 29.6, + "300": 36.2, + "350": 31.4, + "400": 32.5, + "450": 35.5, + "495": 37.6 + }, + "-25": { + "50": 8.7, + "100": 5.5, + "150": 8.5, + "200": 9.6, + "250": 10.3, + "300": 12.8, + "350": 10.9, + "400": 11.6, + "450": 12.0, + "495": 12.5 + } + }, + "transfer_va_vg2": { + "250/250": { + "30": -19.4, + "40": -17.8, + "50": -16.5, + "60": -15.4, + "75": -13.6, + "100": -11.4, + "125": -9.5, + "150": -7.8, + "175": -6.7 + }, + "350/375": { + "30": -33.2, + "40": -30.7, + "50": -29.2, + "60": -27.4, + "75": -25.5, + "100": -22.6, + "125": -20.4, + "150": -18.6, + "175": -17.3 + }, + "400/425": { + "30": -39.1, + "40": -36.4, + "50": -34.4, + "60": -32.7, + "75": -30.6, + "100": -27.7, + "125": -25.4, + "150": -23.3, + "175": -21.3 + } + }, + "fit": { + "mu": 14.7687204357891, + "ex": 1.0460615706275331, + "kg1": 194.2741516346107, + "kp": 53.82052271611609, + "kvb": 40.42952399468857, + "kg2": 2243.1266543968895 + } +} \ No newline at end of file diff --git a/harness/reports/M6/20261015_el34_curve_fit.md b/harness/reports/M6/20261015_el34_curve_fit.md new file mode 100644 index 0000000..f1b3b8c --- /dev/null +++ b/harness/reports/M6/20261015_el34_curve_fit.md @@ -0,0 +1,19 @@ +# M6 EL34 study: Koren parameters fitted to datasheet curves (SPICE copies, reference unchanged) + +- Source: Ei-RC EL34 data sheet, plate characteristics at Vg2 = 250 V (Vg1 0 … −25 V, 54 points, page 7) and transfer characteristics Ia(Vg1) at Va / Vg2 = 250 / 250, 350 / 375, 400 / 425 V (27 points, page 6), digitised from 300 dpi renders (axis calibration checked against the printed 25 W dissipation curve); screen parameter kg2 fitted to the four Ig2 values of the sheet's operating tables. Data: `20261015_el34_curve_fit.json`. +- Fit (soft-L1 on relative error): mu 14.77, ex 1.046, kg1 194.3, kp 53.82, kvb 40.4, kg2 2243 (current tubes.lib: mu 11, ex 1.35, kg1 650, kp 60, kvb 24, kg2 4200). + +| | current (Koren) | curve fit | +|---|---|---| +| Plate curves, relative error median / 90 % | 11.5 % / 25.5 % | 3.7 % / 14.1 % | +| Transfer curves, median / 90 % | 28.2 % / 34.0 % | 2.7 % / 5.5 % | +| Table Ia (250/265/−13.5, 250/245/−14.5, 420/416/−38, 370/371/−32 V) | 115 / 80 / 38 / 43 mA | 97 / 67 / 30 / 34 mA (sheet 100 / 70 / 30 / 35) | +| Table Ig2 | 19.6 / 13.5 / 5.3 / 6.3 mA | 16.9 / 11.7 / 3.7 / 4.5 mA (sheet 14.9 / 10.0 / 4.4 / 4.7) | +| Full amp: B+ (ct), same bias network | 488.7 V | 491.4 V | +| Output impedance 100 Hz / 1 kHz / 5 kHz (16 Ω vs open) | 14.1 / 15.7 / 16.0 Ω | 20.1 / 22.3 / 22.7 Ω | +| CLEAN 25 mV 1 kHz | 101.2 W, 3.2 % | 87.1 W, 4.5 % | +| DRIVE Master 0.3 / 0.6 / 1.0, HOT (220 Hz 0.3 V) | 36.8 / 193.6 / 190.4 / 182.1 W | 30.1 / 162.9 / 161.0 / 156.0 W | +| Harmonics H2–H9 at those settings | — | within 0 … 1 dB except H2 at Master 0.6 (−38.6 → −43.1) and H5 at HOT (−38.7 → −43.5 dB) | +| Spectral centroid | 1931 / 3308 / 7080 / 3753 Hz | 1895 / 3244 / 7033 / 3715 Hz | + +Not done: re-biasing to the same idle current (a real amp is biased per tube set; A4 is an assumption). diff --git a/harness/reports/M6/20261015_full_acceptance_fs384000_j4exact.md b/harness/reports/M6/20261015_full_acceptance_fs384000_j4exact.md index fe090e5..475e2c7 100644 --- a/harness/reports/M6/20261015_full_acceptance_fs384000_j4exact.md +++ b/harness/reports/M6/20261015_full_acceptance_fs384000_j4exact.md @@ -1,7 +1,7 @@ # M4 acceptance: full amplifier vs the full netlist -- Date: 2026-10-15, engine commit `831e393 (dirty)`, ngspice 47, fs = 384000 Hz, J4 exact, SPICE reltol 1e-08 -- Netlist sha256 `7bea8385e4adb04e`, tubes.lib sha256 `9ec33154be8127d7` +- Date: 2026-10-15, engine commit `476d21f (dirty)`, ngspice 47, fs = 384000 Hz, J4 exact, SPICE reltol 1e-08 +- Netlist sha256 `7bea8385e4adb04e`, tubes.lib sha256 `5767afe208240bfa` - Engine: `ampwav --block full` (volts at the jack and across the 16 Ω load), the checks of SPEC §7 M4. ## Summary @@ -10,187 +10,187 @@ PASS 107 · FAIL 0 | Section | Check | Item | Measured | Tolerance | Status | |---|---|---|---|---|---| -| dc | dc_rel_error | v(ct) | 4.141e-07 | ≤ 0.005 | PASS | -| dc | dc_rel_error | v(nscr) | 4.454e-07 | ≤ 0.005 | PASS | -| dc | dc_rel_error | v(bpx) | 3.65e-06 | ≤ 0.005 | PASS | -| dc | dc_rel_error | v(bpa) | 5.682e-06 | ≤ 0.005 | PASS | +| 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.996e-05 | ≤ 0.005 | PASS | -| dc | dc_rel_error | v(k1a) | 3.983e-05 | ≤ 0.005 | PASS | -| dc | dc_rel_error | v(p1b) | 1.688e-05 | ≤ 0.005 | PASS | -| dc | dc_rel_error | v(k1b) | 0.0001012 | ≤ 0.005 | PASS | -| dc | dc_rel_error | v(p2a) | 2.198e-05 | ≤ 0.005 | PASS | -| dc | dc_rel_error | v(k2a) | 2.11e-05 | ≤ 0.005 | PASS | -| dc | dc_rel_error | v(k2b) | 2.143e-05 | ≤ 0.005 | PASS | -| dc | dc_rel_error | v(p3a) | 1.578e-05 | ≤ 0.005 | PASS | -| dc | dc_rel_error | v(p3b) | 1.709e-05 | ≤ 0.005 | PASS | -| dc | dc_rel_error | v(k3) | 2.143e-05 | ≤ 0.005 | PASS | -| dc | dc_rel_error | v(nf) | 2.143e-05 | ≤ 0.005 | PASS | -| dc | dc_rel_error | v(ng) | 2.143e-05 | ≤ 0.005 | PASS | -| dc | el34_plate_ma | ip_tube_a | 1.194e-05 mA | ≤ 1 | PASS | -| dc | el34_plate_ma | ip_tube_b | 1.195e-05 mA | ≤ 1 | PASS | -| dc | el34_screen_ma | is_tube_a | 1.046e-06 mA | ≤ 0.3 | PASS | -| dc | el34_screen_ma | is_tube_b | 1.044e-06 mA | ≤ 0.3 | PASS | -| dc | ct_rel | v(ct) | 4.141e-07 | ≤ 0.01 | 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.695e-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.917e-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.001954 dB | ≤ 0.5 | PASS | +| nfb | nfb_gain_db | closed 100 Hz | 0.00205 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.004996 dB | ≤ 0.5 | PASS | +| nfb | nfb_gain_db | closed 1000 Hz | 0.005595 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.01361 dB | ≤ 0.5 | PASS | +| nfb | nfb_gain_db | closed 5000 Hz | 0.02332 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.002342 dB | ≤ 0.5 | PASS | +| nfb | nfb_gain_db | open 100 Hz | 0.002521 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.0057 dB | ≤ 0.5 | PASS | +| nfb | nfb_gain_db | open 1000 Hz | 0.008322 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.02095 dB | ≤ 0.5 | PASS | +| nfb | nfb_gain_db | open 5000 Hz | 0.06546 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 | -60.06 dB | ≤ -20 | PASS | -| clean | total_harmonics_2_9_db | CLEAN SIN-1000Hz-0.025V | 0.02042 dB | ≤ 1.5 | PASS | +| clean | total_esr_db | CLEAN SIN-1000Hz-0.025V | -59.8 dB | ≤ -20 | PASS | +| clean | total_harmonics_2_9_db | CLEAN SIN-1000Hz-0.025V | 0.01986 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 | 6 | ≤ 32 | PASS | -| clean | total_power_rel | CLEAN SIN-1000Hz-0.025V | 0.001105 | ≤ 0.05 | PASS | -| clean | total_thd_pp | CLEAN SIN-1000Hz-0.025V | 0.0006695 pp | ≤ 0.5 | PASS | -| stability | stability_out_v | max |out| | 4.389e-05 V | ≤ 0.001 | PASS | -| stability | stability_growth | RMS last 10 s − first 10 s | 5.497e-12 V | ≤ 1e-06 | PASS | +| clean | newton_max_iterations | CLEAN SIN-1000Hz-0.025V | 5 | ≤ 32 | PASS | +| clean | total_power_rel | CLEAN SIN-1000Hz-0.025V | 0.001173 | ≤ 0.05 | PASS | +| clean | total_thd_pp | CLEAN SIN-1000Hz-0.025V | 0.001491 pp | ≤ 0.5 | PASS | +| stability | stability_out_v | max |out| | 4.369e-05 V | ≤ 0.001 | PASS | +| stability | stability_growth | RMS last 10 s − first 10 s | 2.205e-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.66 dB | ≤ -20 | PASS | -| overdrive | total_harmonics_2_9_db | OVERDRIVE SIN-220Hz-0.3V | 0.008332 dB | ≤ 1.5 | PASS | -| overdrive | sag_min_v | OVERDRIVE SIN-220Hz-0.3V | 0.004485 V | ≤ 2 | PASS | +| overdrive | total_esr_db | OVERDRIVE SIN-220Hz-0.3V | -67.58 dB | ≤ -20 | PASS | +| overdrive | total_harmonics_2_9_db | OVERDRIVE SIN-220Hz-0.3V | 0.008397 dB | ≤ 1.5 | PASS | +| overdrive | sag_min_v | OVERDRIVE SIN-220Hz-0.3V | 0.004531 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.99 dB | ≤ -20 | PASS | -| crunch_drive | total_harmonics_2_9_db | CRUNCH SIN-220Hz-0.3V | 0.01118 dB | ≤ 1.5 | PASS | +| crunch_drive | total_esr_db | CRUNCH SIN-220Hz-0.3V | -69.77 dB | ≤ -20 | PASS | +| crunch_drive | total_harmonics_2_9_db | CRUNCH SIN-220Hz-0.3V | 0.007809 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 | -61.26 dB | ≤ -20 | PASS | +| crunch_drive | total_esr_db | CRUNCH DI-GTR L | -61.22 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 | -61.57 dB | ≤ -20 | PASS | +| crunch_drive | total_esr_db | CRUNCH DI-GTR LL | -61.54 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 | -62.34 dB | ≤ -20 | PASS | +| crunch_drive | total_esr_db | CRUNCH DI-GTR R | -62.32 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 | -61.11 dB | ≤ -20 | PASS | +| crunch_drive | total_esr_db | CRUNCH DI-GTR RR | -61.12 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.6 dB | ≤ -20 | PASS | -| crunch_drive | total_harmonics_2_9_db | DRIVE SIN-220Hz-0.3V | 0.03526 dB | ≤ 1.5 | PASS | +| crunch_drive | total_esr_db | DRIVE SIN-220Hz-0.3V | -63.62 dB | ≤ -20 | PASS | +| crunch_drive | total_harmonics_2_9_db | DRIVE SIN-220Hz-0.3V | 0.03438 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 | -60.62 dB | ≤ -20 | PASS | +| crunch_drive | total_esr_db | DRIVE DI-GTR L | -60.75 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 | -61.56 dB | ≤ -20 | PASS | +| crunch_drive | total_esr_db | DRIVE DI-GTR LL | -61.69 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 | 9 | ≤ 32 | PASS | -| crunch_drive | total_esr_db | DRIVE DI-GTR R | -61.32 dB | ≤ -20 | PASS | +| crunch_drive | total_esr_db | DRIVE DI-GTR R | -61.45 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 | -60.57 dB | ≤ -20 | PASS | +| crunch_drive | newton_max_iterations | DRIVE DI-GTR R | 8 | ≤ 32 | PASS | +| crunch_drive | total_esr_db | DRIVE DI-GTR RR | -60.73 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 | 9 | ≤ 32 | PASS | +| crunch_drive | newton_max_iterations | DRIVE DI-GTR RR | 10 | ≤ 32 | PASS | ## DC operating point | Node / current | SPICE | Engine | |---|---|---| -| ct | 488.7084 V | 488.7086 V | -| nscr | 485.6493 V | 485.6495 V | -| bpx | 402.3360 V | 402.3375 V | -| bpa | 389.3496 V | 389.3518 V | +| 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 | 296.4025 V | 296.4084 V | -| k1a | 2.5096 V | 2.5095 V | -| p1b | 352.4328 V | 352.4387 V | -| k1b | 3.6917 V | 3.6913 V | -| p2a | 231.1295 V | 231.1346 V | -| k2a | 1.4039 V | 1.4039 V | -| k2b | 231.6858 V | 231.6908 V | -| p3a | 270.8809 V | 270.8852 V | -| p3b | 262.2706 V | 262.2751 V | -| k3 | 44.9334 V | 44.9324 V | -| nf | 43.5216 V | 43.5207 V | -| ng | 13.4840 V | 13.4837 V | -| ip_tube_a | 34.0783 mA | 34.0783 mA | -| ip_tube_b | 34.0780 mA | 34.0780 mA | -| is_tube_a | 4.5674 mA | 4.5674 mA | -| is_tube_b | 4.5675 mA | 4.5675 mA | +| 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 | 43.44 | 43.45 | 50.07 | 50.07 | 6.63 | 6.63 | -| 1000 Hz | 55.58 | 55.59 | 61.74 | 61.74 | 6.16 | 6.16 | -| 5000 Hz | 68.07 | 68.09 | 74.12 | 74.14 | 6.04 | 6.05 | +| 100 Hz | 41.90 | 41.90 | 46.99 | 46.99 | 5.10 | 5.10 | +| 1000 Hz | 53.94 | 53.94 | 58.66 | 58.67 | 4.72 | 4.72 | +| 5000 Hz | 66.41 | 66.44 | 71.04 | 71.10 | 4.62 | 4.67 | ## 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 | -60.1 dB | 0 | 0.02 dB | 3.47 / 3.47 % | 100.2 / 100.3 W | — | -| OVERDRIVE | SIN-220Hz-0.3V | -67.7 dB | 0 | 0.01 dB | 23.35 / 23.35 % | 33.8 / 33.8 W | 469.82 / 469.81 V | -| CRUNCH | SIN-220Hz-0.3V | -70.0 dB | 0 | 0.01 dB | 15.04 / 15.04 % | 32.9 / 32.9 W | — | -| CRUNCH | DI-GTR L | -61.3 dB | 0 | — | — | — | — | -| CRUNCH | DI-GTR LL | -61.6 dB | 0 | — | — | — | — | +| CLEAN | SIN-1000Hz-0.025V | -59.8 dB | 0 | 0.02 dB | 4.69 / 4.69 % | 86.4 / 86.5 W | — | +| OVERDRIVE | SIN-220Hz-0.3V | -67.6 dB | 0 | 0.01 dB | 22.83 / 22.83 % | 27.6 / 27.6 W | 473.08 / 473.07 V | +| CRUNCH | SIN-220Hz-0.3V | -69.8 dB | 0 | 0.01 dB | 14.46 / 14.46 % | 26.9 / 26.9 W | — | +| CRUNCH | DI-GTR L | -61.2 dB | 0 | — | — | — | — | +| CRUNCH | DI-GTR LL | -61.5 dB | 0 | — | — | — | — | | CRUNCH | DI-GTR R | -62.3 dB | 0 | — | — | — | — | | CRUNCH | DI-GTR RR | -61.1 dB | 0 | — | — | — | — | -| DRIVE | SIN-220Hz-0.3V | -63.6 dB | 0 | 0.04 dB | 25.98 / 25.99 % | 36.2 / 36.2 W | — | -| DRIVE | DI-GTR L | -60.6 dB | 0 | — | — | — | — | -| DRIVE | DI-GTR LL | -61.6 dB | 0 | — | — | — | — | -| DRIVE | DI-GTR R | -61.3 dB | 0 | — | — | — | — | -| DRIVE | DI-GTR RR | -60.6 dB | 0 | — | — | — | — | +| DRIVE | SIN-220Hz-0.3V | -63.6 dB | 0 | 0.03 dB | 25.48 / 25.48 % | 29.6 / 29.6 W | — | +| DRIVE | DI-GTR L | -60.7 dB | 0 | — | — | — | — | +| DRIVE | DI-GTR LL | -61.7 dB | 0 | — | — | — | — | +| DRIVE | DI-GTR R | -61.5 dB | 0 | — | — | — | — | +| DRIVE | DI-GTR RR | -60.7 dB | 0 | — | — | — | — | ## Stability -60 s silence at Preamp / Master / Presence 1.0: max |out| 4.39e-05 V, RMS first / last 10 s 4.23e-05 / 4.23e-05 V. +60 s silence at Preamp / Master / Presence 1.0: max |out| 4.37e-05 V, RMS first / last 10 s 4.26e-05 / 4.26e-05 V. ## Delayed-NFB break diff --git a/harness/reports/M6/20261015_full_acceptance_fs384000_j4exact_hot.md b/harness/reports/M6/20261015_full_acceptance_fs384000_j4exact_hot.md index 7fb0450..dd1b0a6 100644 --- a/harness/reports/M6/20261015_full_acceptance_fs384000_j4exact_hot.md +++ b/harness/reports/M6/20261015_full_acceptance_fs384000_j4exact_hot.md @@ -1,7 +1,7 @@ # M4 acceptance: full amplifier vs the full netlist -- Date: 2026-10-15, engine commit `831e393 (dirty)`, ngspice 47, fs = 384000 Hz, J4 exact, SPICE reltol 1e-08 -- Netlist sha256 `7bea8385e4adb04e`, tubes.lib sha256 `9ec33154be8127d7` +- Date: 2026-10-15, engine commit `476d21f (dirty)`, ngspice 47, fs = 384000 Hz, J4 exact, SPICE reltol 1e-08 +- Netlist sha256 `7bea8385e4adb04e`, tubes.lib sha256 `5767afe208240bfa` - Engine: `ampwav --block full` (volts at the jack and across the 16 Ω load), the checks of SPEC §7 M4. ## Summary @@ -10,28 +10,28 @@ PASS 21 · FAIL 0 | Section | Check | Item | Measured | Tolerance | Status | |---|---|---|---|---|---| -| hot | total_esr_db | HOT SIN-220Hz-0.3V | -58.9 dB | ≤ -20 | PASS | -| hot | total_harmonics_2_9_db | HOT SIN-220Hz-0.3V | 0.01274 dB | ≤ 1.5 | PASS | +| hot | total_esr_db | HOT SIN-220Hz-0.3V | -58.95 dB | ≤ -20 | PASS | +| hot | total_harmonics_2_9_db | HOT SIN-220Hz-0.3V | 0.01735 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 | -41.54 dB | ≤ -20 | PASS | +| hot | total_esr_db | HOT DI-GTR L | -42.16 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 | 17 | ≤ 32 | PASS | -| hot | total_esr_db | HOT DI-GTR LL | -42.12 dB | ≤ -20 | PASS | +| hot | newton_max_iterations | HOT DI-GTR L | 16 | ≤ 32 | PASS | +| hot | total_esr_db | HOT DI-GTR LL | -42.63 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 | 18 | ≤ 32 | PASS | -| hot | total_esr_db | HOT DI-GTR R | -42.59 dB | ≤ -20 | PASS | +| hot | newton_max_iterations | HOT DI-GTR LL | 17 | ≤ 32 | PASS | +| hot | total_esr_db | HOT DI-GTR R | -43.31 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 | 19 | ≤ 32 | PASS | -| hot | total_esr_db | HOT DI-GTR RR | -41.83 dB | ≤ -20 | PASS | +| hot | newton_max_iterations | HOT DI-GTR R | 17 | ≤ 32 | PASS | +| hot | total_esr_db | HOT DI-GTR RR | -42.63 dB | ≤ -20 | PASS | | hot | newton_failures | HOT DI-GTR RR | 0 | ≤ 0 | PASS | | hot | newton_unrescued | HOT DI-GTR RR | 0 | — | INFO | | hot | newton_median_iterations | HOT DI-GTR RR | 2 | ≤ 3 | PASS | @@ -41,11 +41,11 @@ PASS 21 · FAIL 0 | Preset | Signal | ESR | best lag | harm. 2–9 | THD F / E | Power F / E | min v(ct) F / E | |---|---|---|---|---|---|---|---| -| HOT | SIN-220Hz-0.3V | -58.9 dB | 0 | 0.01 dB | 46.17 / 46.17 % | 183.4 / 183.4 W | — | -| HOT | DI-GTR L | -41.5 dB | 0 | — | — | — | — | -| HOT | DI-GTR LL | -42.1 dB | 0 | — | — | — | — | -| HOT | DI-GTR R | -42.6 dB | 0 | — | — | — | — | -| HOT | DI-GTR RR | -41.8 dB | 0 | — | — | — | — | +| HOT | SIN-220Hz-0.3V | -59.0 dB | 0 | 0.02 dB | 46.42 / 46.42 % | 157.6 / 157.6 W | — | +| HOT | DI-GTR L | -42.2 dB | 0 | — | — | — | — | +| HOT | DI-GTR LL | -42.6 dB | 0 | — | — | — | — | +| HOT | DI-GTR R | -43.3 dB | 0 | — | — | — | — | +| HOT | DI-GTR RR | -42.6 dB | 0 | — | — | — | — | ## Delayed-NFB break diff --git a/harness/reports/M6/20261015_plugin_cpu.md b/harness/reports/M6/20261015_plugin_cpu.md index 7009e67..3fadb20 100644 --- a/harness/reports/M6/20261015_plugin_cpu.md +++ b/harness/reports/M6/20261015_plugin_cpu.md @@ -1,39 +1,39 @@ # M6 plugin CPU under knob automation -- Date 2026-10-15, commit `831e393 (dirty)`; `amp2203_render plugin` at the plugin defaults (2x, Power Amp Rate Half, exact J4, Newton tol 1e-4 V, half-steps on; D-054 – D-056), FIR oversampling, 20 s of DI GTR L at 48000 Hz; processBlock time only. +- Date 2026-10-15, commit `476d21f (dirty)`; `amp2203_render plugin` at the plugin defaults (2x, Power Amp Rate Half, exact J4, Newton tol 1e-4 V, half-steps on; D-054 – D-056), 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 | 19.6 | 0 (0) | -| every knob 10 | — | static | 512 | 32.5 | 0 (0) | -| default | preampVolume | lfo | 512 | 19.1 | 0 (0) | -| default | preampVolume | jump | 512 | 18.7 | 0 (0) | -| default | treble | lfo | 512 | 19.6 | 0 (0) | +| default | — | static | 512 | 19.1 | 0 (0) | +| every knob 10 | — | static | 512 | 31.6 | 0 (0) | +| default | preampVolume | lfo | 512 | 19.0 | 0 (0) | +| default | preampVolume | jump | 512 | 18.6 | 0 (0) | +| default | treble | lfo | 512 | 20.0 | 0 (0) | | default | treble | jump | 512 | 19.7 | 0 (0) | | default | middle | lfo | 512 | 19.5 | 0 (0) | -| default | middle | jump | 512 | 20.2 | 0 (0) | -| default | bass | lfo | 512 | 19.8 | 0 (0) | -| default | bass | jump | 512 | 19.6 | 0 (0) | -| default | master | lfo | 512 | 21.6 | 0 (0) | -| default | master | jump | 512 | 22.6 | 0 (0) | +| default | middle | jump | 512 | 19.6 | 0 (0) | +| default | bass | lfo | 512 | 19.5 | 0 (0) | +| default | bass | jump | 512 | 19.5 | 0 (0) | +| default | master | lfo | 512 | 21.5 | 0 (0) | +| default | master | jump | 512 | 22.7 | 0 (0) | | default | presence | lfo | 512 | 19.9 | 0 (0) | -| default | presence | jump | 512 | 19.9 | 0 (0) | -| default | all | lfo | 512 | 23.0 | 0 (0) | -| default | all | jump | 512 | 24.6 | 0 (0) | -| every knob 10 | preampVolume | lfo | 512 | 32.0 | 0 (0) | -| every knob 10 | preampVolume | jump | 512 | 31.8 | 0 (0) | -| every knob 10 | treble | lfo | 512 | 32.1 | 0 (0) | -| every knob 10 | treble | jump | 512 | 32.2 | 0 (0) | -| every knob 10 | middle | lfo | 512 | 32.3 | 0 (0) | -| every knob 10 | middle | jump | 512 | 32.1 | 0 (0) | +| default | presence | jump | 512 | 19.8 | 0 (0) | +| default | all | lfo | 512 | 22.2 | 0 (0) | +| default | all | jump | 512 | 23.9 | 0 (0) | +| every knob 10 | preampVolume | lfo | 512 | 31.4 | 0 (0) | +| every knob 10 | preampVolume | jump | 512 | 31.7 | 0 (0) | +| every knob 10 | treble | lfo | 512 | 31.4 | 0 (0) | +| every knob 10 | treble | jump | 512 | 30.9 | 0 (0) | +| every knob 10 | middle | lfo | 512 | 31.4 | 0 (0) | +| every knob 10 | middle | jump | 512 | 31.5 | 0 (0) | | every knob 10 | bass | lfo | 512 | 33.4 | 0 (0) | -| every knob 10 | bass | jump | 512 | 33.5 | 0 (0) | -| every knob 10 | master | lfo | 512 | 27.5 | 0 (0) | -| every knob 10 | master | jump | 512 | 27.2 | 0 (0) | -| every knob 10 | presence | lfo | 512 | 32.3 | 0 (0) | -| every knob 10 | presence | jump | 512 | 32.6 | 0 (0) | -| every knob 10 | all | lfo | 512 | 22.8 | 0 (0) | -| every knob 10 | all | jump | 512 | 25.3 | 0 (0) | -| default | all | jump | 64 | 24.7 | 0 (0) | -| every knob 10 | all | jump | 64 | 24.6 | 0 (0) | +| every knob 10 | bass | jump | 512 | 32.6 | 0 (0) | +| every knob 10 | master | lfo | 512 | 26.3 | 0 (0) | +| every knob 10 | master | jump | 512 | 26.4 | 0 (0) | +| every knob 10 | presence | lfo | 512 | 32.2 | 0 (0) | +| every knob 10 | presence | jump | 512 | 32.5 | 0 (0) | +| every knob 10 | all | lfo | 512 | 22.6 | 0 (0) | +| every knob 10 | all | jump | 512 | 24.4 | 0 (0) | +| default | all | jump | 64 | 24.1 | 0 (0) | +| every knob 10 | all | jump | 64 | 24.3 | 0 (0) | diff --git a/harness/reports/M6/20261015_plugin_null_2x_half.md b/harness/reports/M6/20261015_plugin_null_2x_half.md index 17cbb90..ccb3db0 100644 --- a/harness/reports/M6/20261015_plugin_null_2x_half.md +++ b/harness/reports/M6/20261015_plugin_null_2x_half.md @@ -1,6 +1,6 @@ # M5 wrapper null test: plugin vs ampwav at 96 kHz with the same resampling -- Date: 2026-10-15, commit `831e393 (dirty)`; host rate 48000 Hz, 2x, Power Amp Rate half, exact J4 +- Date: 2026-10-15, commit `476d21f (dirty)`; host rate 48000 Hz, 2x, Power Amp Rate half, 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. @@ -8,55 +8,55 @@ PASS 26 · FAIL 0 | Filter | Signal | Peak out [FS] | ESR | Status | Render log | |---|---|---|---|---|---| -| fir | SIN-100Hz--40dBFS | 0.111 | -138.5 dB | PASS | processBlock 0.028 s for 0.200 s of audio: 14.0 % of one core, real-time factor 7.16 +| fir | SIN-100Hz--40dBFS | 0.094 | -138.5 dB | PASS | processBlock 0.031 s for 0.200 s of audio: 15.6 % of one core, real-time factor 6.42 latency 58 samples, Newton failures 0 (rescued 0), max iterations 3 | -| fir | SIN-100Hz--20dBFS | 0.719 | -138.5 dB | PASS | processBlock 0.031 s for 0.200 s of audio: 15.3 % of one core, real-time factor 6.53 +| fir | SIN-100Hz--20dBFS | 0.667 | -138.5 dB | PASS | processBlock 0.031 s for 0.200 s of audio: 15.4 % of one core, real-time factor 6.48 latency 58 samples, Newton failures 0 (rescued 0), max iterations 4 | -| fir | SIN-100Hz--6dBFS | 0.825 | -138.5 dB | PASS | processBlock 0.032 s for 0.200 s of audio: 15.8 % of one core, real-time factor 6.33 +| fir | SIN-100Hz--6dBFS | 0.773 | -138.5 dB | PASS | processBlock 0.036 s for 0.200 s of audio: 18.2 % of one core, real-time factor 5.51 latency 58 samples, Newton failures 0 (rescued 0), max iterations 9 | -| fir | SIN-1000Hz--40dBFS | 0.335 | -138.5 dB | PASS | processBlock 0.045 s for 0.200 s of audio: 22.6 % of one core, real-time factor 4.43 +| fir | SIN-1000Hz--40dBFS | 0.289 | -138.5 dB | PASS | processBlock 0.048 s for 0.200 s of audio: 24.0 % of one core, real-time factor 4.17 latency 58 samples, Newton failures 0 (rescued 0), max iterations 6 | -| fir | SIN-1000Hz--20dBFS | 0.655 | -138.5 dB | PASS | processBlock 0.048 s for 0.200 s of audio: 24.2 % of one core, real-time factor 4.14 +| fir | SIN-1000Hz--20dBFS | 0.602 | -138.5 dB | PASS | processBlock 0.051 s for 0.200 s of audio: 25.6 % of one core, real-time factor 3.90 latency 58 samples, Newton failures 0 (rescued 0), max iterations 9 | -| fir | SIN-1000Hz--6dBFS | 0.708 | -138.5 dB | PASS | processBlock 0.055 s for 0.200 s of audio: 27.3 % of one core, real-time factor 3.67 +| fir | SIN-1000Hz--6dBFS | 0.659 | -138.5 dB | PASS | processBlock 0.056 s for 0.200 s of audio: 28.1 % of one core, real-time factor 3.56 latency 58 samples, Newton failures 0 (rescued 0), max iterations 12 | -| fir | SIN-5000Hz--40dBFS | 0.703 | -138.5 dB | PASS | processBlock 0.067 s for 0.200 s of audio: 33.3 % of one core, real-time factor 3.00 -latency 58 samples, Newton failures 0 (rescued 0), max iterations 18 | -| fir | SIN-5000Hz--20dBFS | 0.706 | -138.5 dB | PASS | processBlock 0.077 s for 0.200 s of audio: 38.7 % of one core, real-time factor 2.59 +| fir | SIN-5000Hz--40dBFS | 0.627 | -138.5 dB | PASS | processBlock 0.067 s for 0.200 s of audio: 33.7 % of one core, real-time factor 2.97 latency 58 samples, Newton failures 0 (rescued 0), max iterations 19 | -| fir | SIN-5000Hz--6dBFS | 0.744 | -138.5 dB | PASS | processBlock 0.143 s for 0.200 s of audio: 71.7 % of one core, real-time factor 1.39 -latency 58 samples, Newton failures 449 (rescued 191), max iterations 32 | -| fir | DI-GTR L | 0.741 | -138.5 dB | PASS | processBlock 0.877 s for 5.000 s of audio: 17.5 % of one core, real-time factor 5.70 -latency 58 samples, Newton failures 0 (rescued 0), max iterations 17 | -| fir | DI-GTR LL | 0.756 | -138.5 dB | PASS | processBlock 0.858 s for 5.000 s of audio: 17.2 % of one core, real-time factor 5.83 +| fir | SIN-5000Hz--20dBFS | 0.646 | -138.5 dB | PASS | processBlock 0.074 s for 0.200 s of audio: 36.9 % of one core, real-time factor 2.71 +latency 58 samples, Newton failures 0 (rescued 0), max iterations 19 | +| fir | SIN-5000Hz--6dBFS | 0.666 | -138.5 dB | PASS | processBlock 0.191 s for 0.200 s of audio: 95.5 % of one core, real-time factor 1.05 +latency 58 samples, Newton failures 879 (rescued 77), max iterations 32 | +| fir | DI-GTR L | 0.686 | -138.5 dB | PASS | processBlock 0.873 s for 5.000 s of audio: 17.5 % of one core, real-time factor 5.73 +latency 58 samples, Newton failures 0 (rescued 0), max iterations 20 | +| fir | DI-GTR LL | 0.650 | -138.5 dB | PASS | processBlock 0.851 s for 5.000 s of audio: 17.0 % of one core, real-time factor 5.88 latency 58 samples, Newton failures 0 (rescued 0), max iterations 17 | -| fir | DI-GTR R | 0.783 | -138.5 dB | PASS | processBlock 0.860 s for 5.000 s of audio: 17.2 % of one core, real-time factor 5.81 +| fir | DI-GTR R | 0.748 | -138.5 dB | PASS | processBlock 0.855 s for 5.000 s of audio: 17.1 % of one core, real-time factor 5.84 latency 58 samples, Newton failures 0 (rescued 0), max iterations 20 | -| fir | DI-GTR RR | 0.758 | -138.5 dB | PASS | processBlock 0.882 s for 5.000 s of audio: 17.6 % of one core, real-time factor 5.67 +| fir | DI-GTR RR | 0.708 | -138.5 dB | PASS | processBlock 0.872 s for 5.000 s of audio: 17.4 % of one core, real-time factor 5.73 latency 58 samples, Newton failures 0 (rescued 0), max iterations 18 | -| iir | SIN-100Hz--40dBFS | 0.111 | -138.5 dB | PASS | processBlock 0.028 s for 0.200 s of audio: 13.9 % of one core, real-time factor 7.21 +| iir | SIN-100Hz--40dBFS | 0.094 | -138.5 dB | PASS | processBlock 0.028 s for 0.200 s of audio: 13.8 % of one core, real-time factor 7.25 latency 13 samples, Newton failures 0 (rescued 0), max iterations 2 | -| iir | SIN-100Hz--20dBFS | 0.719 | -138.5 dB | PASS | processBlock 0.031 s for 0.200 s of audio: 15.3 % of one core, real-time factor 6.54 +| iir | SIN-100Hz--20dBFS | 0.667 | -138.5 dB | PASS | processBlock 0.031 s for 0.200 s of audio: 15.4 % of one core, real-time factor 6.51 latency 13 samples, Newton failures 0 (rescued 0), max iterations 6 | -| iir | SIN-100Hz--6dBFS | 0.826 | -138.5 dB | PASS | processBlock 0.031 s for 0.200 s of audio: 15.5 % of one core, real-time factor 6.46 +| iir | SIN-100Hz--6dBFS | 0.773 | -138.5 dB | PASS | processBlock 0.032 s for 0.200 s of audio: 16.0 % of one core, real-time factor 6.25 latency 13 samples, Newton failures 0 (rescued 0), max iterations 6 | -| iir | SIN-1000Hz--40dBFS | 0.358 | -138.5 dB | PASS | processBlock 0.045 s for 0.200 s of audio: 22.3 % of one core, real-time factor 4.48 +| iir | SIN-1000Hz--40dBFS | 0.315 | -138.5 dB | PASS | processBlock 0.045 s for 0.200 s of audio: 22.3 % of one core, real-time factor 4.48 latency 13 samples, Newton failures 0 (rescued 0), max iterations 7 | -| iir | SIN-1000Hz--20dBFS | 0.729 | -138.5 dB | PASS | processBlock 0.047 s for 0.200 s of audio: 23.6 % of one core, real-time factor 4.23 +| iir | SIN-1000Hz--20dBFS | 0.672 | -138.5 dB | PASS | processBlock 0.048 s for 0.200 s of audio: 23.9 % of one core, real-time factor 4.18 latency 13 samples, Newton failures 0 (rescued 0), max iterations 9 | -| iir | SIN-1000Hz--6dBFS | 0.766 | -138.5 dB | PASS | processBlock 0.054 s for 0.200 s of audio: 26.9 % of one core, real-time factor 3.72 +| iir | SIN-1000Hz--6dBFS | 0.725 | -138.5 dB | PASS | processBlock 0.053 s for 0.200 s of audio: 26.7 % of one core, real-time factor 3.74 latency 13 samples, Newton failures 0 (rescued 0), max iterations 22 | -| iir | SIN-5000Hz--40dBFS | 0.682 | -138.5 dB | PASS | processBlock 0.067 s for 0.200 s of audio: 33.4 % of one core, real-time factor 3.00 +| iir | SIN-5000Hz--40dBFS | 0.666 | -138.5 dB | PASS | processBlock 0.067 s for 0.200 s of audio: 33.5 % of one core, real-time factor 2.99 latency 13 samples, Newton failures 0 (rescued 0), max iterations 16 | -| iir | SIN-5000Hz--20dBFS | 0.788 | -138.5 dB | PASS | processBlock 0.080 s for 0.200 s of audio: 40.2 % of one core, real-time factor 2.49 +| iir | SIN-5000Hz--20dBFS | 0.702 | -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 13 samples, Newton failures 0 (rescued 0), max iterations 22 | +| iir | SIN-5000Hz--6dBFS | 0.710 | -138.5 dB | PASS | processBlock 0.106 s for 0.200 s of audio: 52.9 % of one core, real-time factor 1.89 +latency 13 samples, Newton failures 253 (rescued 185), max iterations 32 | +| iir | DI-GTR L | 0.741 | -138.5 dB | PASS | processBlock 0.870 s for 5.000 s of audio: 17.4 % of one core, real-time factor 5.75 +latency 13 samples, Newton failures 0 (rescued 0), max iterations 18 | +| iir | DI-GTR LL | 0.683 | -138.5 dB | PASS | processBlock 0.843 s for 5.000 s of audio: 16.9 % of one core, real-time factor 5.93 latency 13 samples, Newton failures 0 (rescued 0), max iterations 22 | -| iir | SIN-5000Hz--6dBFS | 0.803 | -138.5 dB | PASS | processBlock 0.108 s for 0.200 s of audio: 54.0 % of one core, real-time factor 1.85 -latency 13 samples, Newton failures 163 (rescued 86), max iterations 32 | -| iir | DI-GTR L | 0.796 | -138.5 dB | PASS | processBlock 0.869 s for 5.000 s of audio: 17.4 % of one core, real-time factor 5.76 +| iir | DI-GTR R | 0.775 | -138.5 dB | PASS | processBlock 0.844 s for 5.000 s of audio: 16.9 % of one core, real-time factor 5.93 latency 13 samples, Newton failures 0 (rescued 0), max iterations 18 | -| iir | DI-GTR LL | 0.750 | -138.5 dB | PASS | processBlock 0.843 s for 5.000 s of audio: 16.9 % of one core, real-time factor 5.93 -latency 13 samples, Newton failures 0 (rescued 0), max iterations 23 | -| iir | DI-GTR R | 0.837 | -138.5 dB | PASS | processBlock 0.846 s for 5.000 s of audio: 16.9 % of one core, real-time factor 5.91 -latency 13 samples, Newton failures 0 (rescued 0), max iterations 17 | -| iir | DI-GTR RR | 0.843 | -138.5 dB | PASS | processBlock 0.864 s for 5.000 s of audio: 17.3 % of one core, real-time factor 5.78 -latency 13 samples, Newton failures 0 (rescued 0), max iterations 20 | +| iir | DI-GTR RR | 0.740 | -138.5 dB | PASS | processBlock 0.861 s for 5.000 s of audio: 17.2 % of one core, real-time factor 5.81 +latency 13 samples, Newton failures 0 (rescued 0), max iterations 21 | diff --git a/harness/reports/M6/20261015_pluginval_au.log b/harness/reports/M6/20261015_pluginval_au.log new file mode 100644 index 0000000..203d160 --- /dev/null +++ b/harness/reports/M6/20261015_pluginval_au.log @@ -0,0 +1,119 @@ +Started validating: /Users/kimmo/Library/Audio/Plug-Ins/Components/Amp2203.component +Random seed: 0x7981680 +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/20261015_pluginval_vst3.log b/harness/reports/M6/20261015_pluginval_vst3.log new file mode 100644 index 0000000..664e72b --- /dev/null +++ b/harness/reports/M6/20261015_pluginval_vst3.log @@ -0,0 +1,116 @@ +Started validating: /Users/kimmo/Library/Audio/Plug-Ins/VST3/Amp2203.vst3 +Random seed: 0x49ce6eb +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/20261015_speaker_load_study.md b/harness/reports/M6/20261015_speaker_load_study.md new file mode 100644 index 0000000..c80577d --- /dev/null +++ b/harness/reports/M6/20261015_speaker_load_study.md @@ -0,0 +1,28 @@ +# M6 speaker-load study: 4x12-style impedance vs the 16 Ω resistor (SPICE copies, reference unchanged) + +- Full netlist with the D-058 EL34; `Rload out 0 16` replaced by Re 13 Ω + (Le ‖ R_le) + a parallel RLC resonance at 100 Hz + (Q 2). No published Thiele–Small data for the Celestion G12T-75 was found, so three representative variants bracket a + nominal 16 Ω 4x12 (|Z| at 50 / 100 / 400 / 1k / 5k / 10k Hz): + low 17 / 35 / 14 / 14 / 23 / 32 Ω (Le 0.5 mH ‖ 30 Ω, Res 22 Ω); typical 20 / 50 / 14 / 15 / 35 / 48 Ω (1.0 mH ‖ 45 Ω, + 37 Ω); high 26 / 70 / 15 / 16 / 46 / 62 Ω (1.5 mH ‖ 60 Ω, 57 Ω). +- "Your settings" (owner, Logic): Preamp 10, Treble 7, Middle 1, Bass 0, Presence 7, Master 3. Speaker voltage is the + plugin's output (the cab IR follows it). + +## Small-signal response at the speaker, difference to 16 Ω + +| Variant | 50 Hz | 100 Hz | 200 Hz | 400 Hz | 1 kHz | 2 kHz | 3 kHz | 5 kHz | 8 kHz | +|---|---|---|---|---|---|---|---|---|---| +| low (default knobs) | +0.6 | +3.0 | +0.3 | −0.8 | −0.9 | −0.1 | +0.6 | +1.8 | +2.7 dB | +| typical (default knobs) | +1.9 | +4.0 | +1.3 | −0.6 | −0.4 | +1.2 | +2.4 | +3.5 | +4.0 dB | +| high (default knobs) | +3.2 | +4.7 | +2.4 | −0.3 | +0.1 | +2.3 | +3.4 | +4.3 | +4.7 dB | +| typical (your settings) | +1.8 | +4.0 | +1.4 | −0.6 | −0.5 | +1.3 | +2.5 | +3.7 | +4.4 dB | + +## Driven tones (0.3 V, your settings): spectral centroid and band energy vs 16 Ω + +| Tone | 16 Ω centroid | speaker loads centroid | 5–10 kHz energy | 2–5 kHz energy | < 300 Hz energy | +|---|---|---|---|---|---| +| 110 Hz | 1427 Hz | 1590 … 1624 Hz | +1.7 … +3.5 dB | 0.0 … +2.3 dB | +2.7 … +4.3 dB | +| 220 Hz | 3308 Hz | 3878 … 3971 Hz | +1.7 … +3.4 dB | +0.7 … +2.9 dB | +0.1 … +2.0 dB | +| 330 Hz | 4864 Hz | 5817 … 5888 Hz | +1.7 … +3.4 dB | +0.8 … +3.0 dB | ≈ 0 dB | + +Output level rises 0 … +3.5 dB with the speaker loads; the harmonic ratios H2–H6 change by up to ±4 dB (110 Hz). diff --git a/harness/reports/M6/20261015_x2_rates_d058_half2x.md b/harness/reports/M6/20261015_x2_rates_d058_half2x.md new file mode 100644 index 0000000..955121e --- /dev/null +++ b/harness/reports/M6/20261015_x2_rates_d058_half2x.md @@ -0,0 +1,48 @@ +# M6 A1: full engine (exact J4) at lower internal rates, plugin model check + +- Date 2026-10-15; 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) | -38.4 / -37.6 / -23.1 dB | PASS | -19.6 / -30.7 dB | 12 (1) / 28, 32 | 19.7 / 28.2 | + +## vs SPICE per clip + +| Clip | 2x | +|---|---| +| CRUNCH GTR L | -38.8 dB | +| CRUNCH GTR LL | -38.4 dB | +| CRUNCH GTR R | -39.9 dB | +| CRUNCH GTR RR | -39.2 dB | +| DRIVE GTR L | -37.6 dB | +| DRIVE GTR LL | -38.8 dB | +| DRIVE GTR R | -38.9 dB | +| DRIVE GTR RR | -37.8 dB | +| HOT GTR L | -23.1 dB | +| HOT GTR LL | -23.9 dB | +| HOT GTR R | -24.4 dB | +| HOT GTR RR | -23.2 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 | -26.2 dB, 0 (0) | -14.6 dB, 0 (0) | +| CRUNCH | 5000 Hz | 0.4 | -25.9 dB, 0 (0) | -12.0 dB, 1983 (1982) | +| CRUNCH | 9000 Hz | 0.1 | -40.4 dB, 0 (0) | -9.0 dB, 0 (0) | +| CRUNCH | 9000 Hz | 0.4 | -38.8 dB, 0 (0) | -4.9 dB, 24712 (22802) | +| HOT | 5000 Hz | 0.1 | -29.8 dB, 1877 (0) | -11.0 dB, 0 (0) | +| HOT | 5000 Hz | 0.4 | -29.6 dB, 2052 (0) | -10.3 dB, 731 (728) | +| HOT | 9000 Hz | 0.1 | -37.3 dB, 1584 (0) | -10.3 dB, 0 (0) | +| HOT | 9000 Hz | 0.4 | -35.9 dB, 478 (0) | -7.4 dB, 18595 (15195) | + +## Cost + +| Rate | ns per engine sample (default / HOT) | % of one core at 48 kHz | +|---|---|---| +| 2x | 2053 / 2942 | 19.7 / 28.2 | diff --git a/harness/reports/M6/20261016_auval.log b/harness/reports/M6/20261016_auval.log new file mode 100644 index 0000000..350c4e0 --- /dev/null +++ b/harness/reports/M6/20261016_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: 9.795 ms +WARM: +Time to open AudioUnit: 5.743 ms +This AudioUnit is a version 2 implementation. +FIRST TIME: +Time for initialization: 9.091 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_71c05d141febb0fc + 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 = Half, 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/20261016_full_acceptance_fs384000_j4exact.md b/harness/reports/M6/20261016_full_acceptance_fs384000_j4exact.md new file mode 100644 index 0000000..bf1211f --- /dev/null +++ b/harness/reports/M6/20261016_full_acceptance_fs384000_j4exact.md @@ -0,0 +1,197 @@ +# M4 acceptance: full amplifier vs the full netlist + +- Date: 2026-10-16, engine commit `3cb4124 (dirty)`, ngspice 47, fs = 384000 Hz, J4 exact, SPICE reltol 1e-08 +- Netlist sha256 `83f01b6fd8b64a06`, tubes.lib sha256 `5767afe208240bfa` +- 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/20261016_full_acceptance_fs384000_j4exact_hot.md b/harness/reports/M6/20261016_full_acceptance_fs384000_j4exact_hot.md new file mode 100644 index 0000000..71dc27f --- /dev/null +++ b/harness/reports/M6/20261016_full_acceptance_fs384000_j4exact_hot.md @@ -0,0 +1,52 @@ +# M4 acceptance: full amplifier vs the full netlist + +- Date: 2026-10-16, engine commit `3cb4124 (dirty)`, ngspice 47, fs = 384000 Hz, J4 exact, SPICE reltol 1e-08 +- Netlist sha256 `83f01b6fd8b64a06`, tubes.lib sha256 `5767afe208240bfa` +- Engine: `ampwav --block full` (volts at the jack and across the 16 Ω load), the checks of SPEC §7 M4. + +## Summary + +PASS 17 · FAIL 4 + +| 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 | -33.49 dB | ≤ -20 | PASS | +| hot | newton_failures | HOT DI-GTR L | 56 | ≤ 0 | FAIL | +| 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 | 32 | ≤ 32 | PASS | +| hot | total_esr_db | HOT DI-GTR LL | -35.1 dB | ≤ -20 | PASS | +| hot | newton_failures | HOT DI-GTR LL | 45 | ≤ 0 | FAIL | +| 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 | 32 | ≤ 32 | PASS | +| hot | total_esr_db | HOT DI-GTR R | -35.73 dB | ≤ -20 | PASS | +| hot | newton_failures | HOT DI-GTR R | 37 | ≤ 0 | FAIL | +| 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 | 32 | ≤ 32 | PASS | +| hot | total_esr_db | HOT DI-GTR RR | -34.89 dB | ≤ -20 | PASS | +| hot | newton_failures | HOT DI-GTR RR | 49 | ≤ 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 | -33.5 dB | 0 | — | — | — | — | +| HOT | DI-GTR LL | -35.1 dB | 0 | — | — | — | — | +| HOT | DI-GTR R | -35.7 dB | 0 | — | — | — | — | +| HOT | DI-GTR RR | -34.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/20261016_plugin_cpu.md b/harness/reports/M6/20261016_plugin_cpu.md new file mode 100644 index 0000000..e517eff --- /dev/null +++ b/harness/reports/M6/20261016_plugin_cpu.md @@ -0,0 +1,39 @@ +# M6 plugin CPU under knob automation + +- Date 2026-10-16, commit `3cb4124 (dirty)`; `amp2203_render plugin` at the plugin defaults (2x, Power Amp Rate Half, exact J4, Newton tol 1e-4 V, half-steps on; D-054 – D-056), 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 | 18.9 | 0 (0) | +| every knob 10 | — | static | 512 | 33.2 | 0 (0) | +| default | preampVolume | lfo | 512 | 18.9 | 0 (0) | +| default | preampVolume | jump | 512 | 18.6 | 0 (0) | +| default | treble | lfo | 512 | 19.6 | 0 (0) | +| default | treble | jump | 512 | 19.7 | 0 (0) | +| default | middle | lfo | 512 | 19.6 | 0 (0) | +| default | middle | jump | 512 | 19.5 | 0 (0) | +| default | bass | lfo | 512 | 19.6 | 0 (0) | +| default | bass | jump | 512 | 19.6 | 0 (0) | +| default | master | lfo | 512 | 21.8 | 0 (0) | +| default | master | jump | 512 | 22.2 | 0 (0) | +| default | presence | lfo | 512 | 19.9 | 0 (0) | +| default | presence | jump | 512 | 20.1 | 0 (0) | +| default | all | lfo | 512 | 22.8 | 1 (1) | +| default | all | jump | 512 | 24.1 | 0 (0) | +| every knob 10 | preampVolume | lfo | 512 | 33.4 | 0 (0) | +| every knob 10 | preampVolume | jump | 512 | 33.1 | 0 (0) | +| every knob 10 | treble | lfo | 512 | 31.8 | 0 (0) | +| every knob 10 | treble | jump | 512 | 31.5 | 0 (0) | +| every knob 10 | middle | lfo | 512 | 32.5 | 0 (0) | +| every knob 10 | middle | jump | 512 | 32.5 | 0 (0) | +| every knob 10 | bass | lfo | 512 | 34.0 | 1 (1) | +| every knob 10 | bass | jump | 512 | 33.8 | 0 (0) | +| every knob 10 | master | lfo | 512 | 26.9 | 0 (0) | +| every knob 10 | master | jump | 512 | 26.8 | 0 (0) | +| every knob 10 | presence | lfo | 512 | 32.0 | 86 (81) | +| every knob 10 | presence | jump | 512 | 32.1 | 91 (88) | +| every knob 10 | all | lfo | 512 | 22.7 | 0 (0) | +| every knob 10 | all | jump | 512 | 24.4 | 0 (0) | +| default | all | jump | 64 | 24.0 | 0 (0) | +| every knob 10 | all | jump | 64 | 24.4 | 0 (0) | diff --git a/harness/reports/M6/20261016_plugin_null_2x_half.md b/harness/reports/M6/20261016_plugin_null_2x_half.md new file mode 100644 index 0000000..1bd2919 --- /dev/null +++ b/harness/reports/M6/20261016_plugin_null_2x_half.md @@ -0,0 +1,62 @@ +# M5 wrapper null test: plugin vs ampwav at 96 kHz with the same resampling + +- Date: 2026-10-16, commit `3cb4124 (dirty)`; host rate 48000 Hz, 2x, Power Amp Rate half, 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.029 s for 0.200 s of audio: 14.6 % of one core, real-time factor 6.85 +latency 58 samples, Newton failures 0 (rescued 0), max iterations 3 | +| fir | SIN-100Hz--20dBFS | 0.869 | -138.5 dB | PASS | processBlock 0.035 s for 0.200 s of audio: 17.5 % of one core, real-time factor 5.72 +latency 58 samples, Newton failures 0 (rescued 0), max iterations 4 | +| fir | SIN-100Hz--6dBFS | 0.915 | -138.5 dB | PASS | processBlock 0.033 s for 0.200 s of audio: 16.3 % of one core, real-time factor 6.15 +latency 58 samples, Newton failures 0 (rescued 0), max iterations 9 | +| fir | SIN-1000Hz--40dBFS | 0.395 | -138.5 dB | PASS | processBlock 0.051 s for 0.200 s of audio: 25.3 % of one core, real-time factor 3.95 +latency 58 samples, Newton failures 0 (rescued 0), max iterations 6 | +| fir | SIN-1000Hz--20dBFS | 0.795 | -138.5 dB | PASS | processBlock 0.053 s for 0.200 s of audio: 26.3 % of one core, real-time factor 3.80 +latency 58 samples, Newton failures 0 (rescued 0), max iterations 9 | +| fir | SIN-1000Hz--6dBFS | 0.994 | -138.5 dB | PASS | processBlock 0.057 s for 0.200 s of audio: 28.6 % of one core, real-time factor 3.50 +latency 58 samples, Newton failures 0 (rescued 0), max iterations 12 | +| fir | SIN-5000Hz--40dBFS | 0.879 | -138.5 dB | PASS | processBlock 0.068 s for 0.200 s of audio: 34.2 % of one core, real-time factor 2.92 +latency 58 samples, Newton failures 0 (rescued 0), max iterations 19 | +| fir | SIN-5000Hz--20dBFS | 0.913 | -138.5 dB | PASS | processBlock 0.077 s for 0.200 s of audio: 38.4 % of one core, real-time factor 2.60 +latency 58 samples, Newton failures 0 (rescued 0), max iterations 19 | +| fir | SIN-5000Hz--6dBFS | 0.967 | -138.5 dB | PASS | processBlock 0.191 s for 0.200 s of audio: 95.6 % of one core, real-time factor 1.05 +latency 58 samples, Newton failures 869 (rescued 74), max iterations 32 | +| fir | DI-GTR L | 0.844 | -138.5 dB | PASS | processBlock 0.881 s for 5.000 s of audio: 17.6 % of one core, real-time factor 5.68 +latency 58 samples, Newton failures 0 (rescued 0), max iterations 19 | +| fir | DI-GTR LL | 0.826 | -138.5 dB | PASS | processBlock 0.852 s for 5.000 s of audio: 17.0 % of one core, real-time factor 5.87 +latency 58 samples, Newton failures 0 (rescued 0), max iterations 17 | +| fir | DI-GTR R | 0.916 | -138.5 dB | PASS | processBlock 0.863 s for 5.000 s of audio: 17.3 % of one core, real-time factor 5.80 +latency 58 samples, Newton failures 0 (rescued 0), max iterations 20 | +| fir | DI-GTR RR | 0.918 | -138.5 dB | PASS | processBlock 0.879 s for 5.000 s of audio: 17.6 % of one core, real-time factor 5.69 +latency 58 samples, Newton failures 0 (rescued 0), max iterations 17 | +| iir | SIN-100Hz--40dBFS | 0.145 | -138.5 dB | PASS | processBlock 0.028 s for 0.200 s of audio: 14.1 % of one core, real-time factor 7.11 +latency 13 samples, Newton failures 0 (rescued 0), max iterations 2 | +| iir | SIN-100Hz--20dBFS | 0.870 | -138.5 dB | PASS | processBlock 0.031 s for 0.200 s of audio: 15.5 % of one core, real-time factor 6.44 +latency 13 samples, Newton failures 0 (rescued 0), max iterations 6 | +| iir | SIN-100Hz--6dBFS | 0.915 | -138.5 dB | PASS | processBlock 0.032 s for 0.200 s of audio: 15.8 % of one core, real-time factor 6.33 +latency 13 samples, Newton failures 0 (rescued 0), max iterations 6 | +| iir | SIN-1000Hz--40dBFS | 0.384 | -138.5 dB | PASS | processBlock 0.045 s for 0.200 s of audio: 22.6 % of one core, real-time factor 4.42 +latency 13 samples, Newton failures 0 (rescued 0), max iterations 7 | +| iir | SIN-1000Hz--20dBFS | 0.836 | -138.5 dB | PASS | processBlock 0.048 s for 0.200 s of audio: 24.1 % of one core, real-time factor 4.15 +latency 13 samples, Newton failures 0 (rescued 0), max iterations 9 | +| iir | SIN-1000Hz--6dBFS | 1.011 | -138.5 dB | PASS | processBlock 0.051 s for 0.200 s of audio: 25.3 % of one core, real-time factor 3.96 +latency 13 samples, Newton failures 0 (rescued 0), max iterations 22 | +| iir | SIN-5000Hz--40dBFS | 0.915 | -138.5 dB | PASS | processBlock 0.067 s for 0.200 s of audio: 33.7 % of one core, real-time factor 2.97 +latency 13 samples, Newton failures 0 (rescued 0), max iterations 16 | +| iir | SIN-5000Hz--20dBFS | 1.003 | -138.5 dB | PASS | processBlock 0.076 s for 0.200 s of audio: 37.9 % of one core, real-time factor 2.64 +latency 13 samples, Newton failures 0 (rescued 0), max iterations 22 | +| iir | SIN-5000Hz--6dBFS | 0.986 | -138.5 dB | PASS | processBlock 0.109 s for 0.200 s of audio: 54.3 % of one core, real-time factor 1.84 +latency 13 samples, Newton failures 240 (rescued 184), max iterations 32 | +| iir | DI-GTR L | 0.991 | -138.5 dB | PASS | processBlock 0.870 s for 5.000 s of audio: 17.4 % of one core, real-time factor 5.75 +latency 13 samples, Newton failures 0 (rescued 0), max iterations 18 | +| iir | DI-GTR LL | 0.905 | -138.5 dB | PASS | processBlock 0.847 s for 5.000 s of audio: 16.9 % of one core, real-time factor 5.90 +latency 13 samples, Newton failures 0 (rescued 0), max iterations 22 | +| iir | DI-GTR R | 0.982 | -138.5 dB | PASS | processBlock 0.848 s for 5.000 s of audio: 17.0 % of one core, real-time factor 5.90 +latency 13 samples, Newton failures 0 (rescued 0), max iterations 18 | +| iir | DI-GTR RR | 0.969 | -138.5 dB | PASS | processBlock 0.876 s for 5.000 s of audio: 17.5 % of one core, real-time factor 5.71 +latency 13 samples, Newton failures 0 (rescued 0), max iterations 21 | diff --git a/harness/reports/M6/20261016_pluginval_au.log b/harness/reports/M6/20261016_pluginval_au.log new file mode 100644 index 0000000..56a4237 --- /dev/null +++ b/harness/reports/M6/20261016_pluginval_au.log @@ -0,0 +1,119 @@ +Started validating: /Users/kimmo/Library/Audio/Plug-Ins/Components/Amp2203.component +Random seed: 0x24b88df +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/20261016_pluginval_vst3.log b/harness/reports/M6/20261016_pluginval_vst3.log new file mode 100644 index 0000000..b263d10 --- /dev/null +++ b/harness/reports/M6/20261016_pluginval_vst3.log @@ -0,0 +1,116 @@ +Started validating: /Users/kimmo/Library/Audio/Plug-Ins/VST3/Amp2203.vst3 +Random seed: 0x3fd9375 +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/20261016_x2_rates_d059_full2x.md b/harness/reports/M6/20261016_x2_rates_d059_full2x.md new file mode 100644 index 0000000..7ed74ac --- /dev/null +++ b/harness/reports/M6/20261016_x2_rates_d059_full2x.md @@ -0,0 +1,48 @@ +# M6 A1: full engine (exact J4) at lower internal rates, plugin model check + +- Date 2026-10-16; 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.1 dB | PASS | -20.8 / -39.1 dB | 14 (2) / 28, 32 | 26.8 / 40.8 | + +## 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.3 dB | +| HOT GTR LL | -25.2 dB | +| HOT GTR R | -25.1 dB | +| HOT GTR RR | -24.1 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 | -25.0 dB, 1 (0) | -16.2 dB, 0 (0) | +| HOT | 5000 Hz | 0.4 | -25.4 dB, 1 (0) | -15.7 dB, 750 (749) | +| HOT | 9000 Hz | 0.1 | -37.4 dB, 0 (0) | -14.5 dB, 0 (0) | +| HOT | 9000 Hz | 0.4 | -35.0 dB, 0 (0) | -7.1 dB, 25519 (22801) | + +## Cost + +| Rate | ns per engine sample (default / HOT) | % of one core at 48 kHz | +|---|---|---| +| 2x | 2792 / 4253 | 26.8 / 40.8 | diff --git a/harness/reports/M6/20261016_x2_rates_d059_half2x.md b/harness/reports/M6/20261016_x2_rates_d059_half2x.md new file mode 100644 index 0000000..07acab8 --- /dev/null +++ b/harness/reports/M6/20261016_x2_rates_d059_half2x.md @@ -0,0 +1,48 @@ +# M6 A1: full engine (exact J4) at lower internal rates, plugin model check + +- Date 2026-10-16; 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.8 dB | FAIL | -16.5 / -28.0 dB | 13 (1) / 28, 32 | 19.4 / 28.6 | + +## 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 | -18.8 dB | +| HOT GTR LL | -19.7 dB | +| HOT GTR R | -19.8 dB | +| HOT GTR RR | -18.8 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 | -25.0 dB, 1 (0) | -10.2 dB, 0 (0) | +| HOT | 5000 Hz | 0.4 | -25.4 dB, 1 (0) | -9.8 dB, 763 (761) | +| HOT | 9000 Hz | 0.1 | -37.4 dB, 0 (0) | -8.6 dB, 0 (0) | +| HOT | 9000 Hz | 0.4 | -35.0 dB, 0 (0) | -6.7 dB, 18138 (15024) | + +## Cost + +| Rate | ns per engine sample (default / HOT) | % of one core at 48 kHz | +|---|---|---| +| 2x | 2020 / 2978 | 19.4 / 28.6 | diff --git a/harness/reports/M6/20261016_x2_rates_d059_half2x_trig0.md b/harness/reports/M6/20261016_x2_rates_d059_half2x_trig0.md new file mode 100644 index 0000000..04e94a1 --- /dev/null +++ b/harness/reports/M6/20261016_x2_rates_d059_half2x_trig0.md @@ -0,0 +1,48 @@ +# M6 A1: full engine (exact J4) at lower internal rates, plugin model check + +- Date 2026-10-16; options: divisor 2, tol 0.0001, trigger 0.0; 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) | -36.8 / -36.0 / -19.2 dB | FAIL | -17.1 / -26.9 dB | 44 (1) / 28, 32 | 19.1 / 25.6 | + +## vs SPICE per clip + +| Clip | 2x | +|---|---| +| CRUNCH GTR L | -37.3 dB | +| CRUNCH GTR LL | -36.8 dB | +| CRUNCH GTR R | -38.0 dB | +| CRUNCH GTR RR | -37.1 dB | +| DRIVE GTR L | -36.0 dB | +| DRIVE GTR LL | -37.2 dB | +| DRIVE GTR R | -37.0 dB | +| DRIVE GTR RR | -36.0 dB | +| HOT GTR L | -19.7 dB | +| HOT GTR LL | -20.4 dB | +| HOT GTR R | -20.4 dB | +| HOT GTR RR | -19.2 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) | -13.9 dB, 0 (0) | +| CRUNCH | 5000 Hz | 0.4 | -24.7 dB, 0 (0) | -11.5 dB, 1930 (1929) | +| CRUNCH | 9000 Hz | 0.1 | -39.4 dB, 0 (0) | -9.3 dB, 0 (0) | +| CRUNCH | 9000 Hz | 0.4 | -38.5 dB, 0 (0) | -5.1 dB, 27298 (25061) | +| HOT | 5000 Hz | 0.1 | -25.0 dB, 1 (0) | -12.6 dB, 0 (0) | +| HOT | 5000 Hz | 0.4 | -25.4 dB, 1 (0) | -12.2 dB, 802 (800) | +| HOT | 9000 Hz | 0.1 | -37.4 dB, 0 (0) | -5.5 dB, 0 (0) | +| HOT | 9000 Hz | 0.4 | -35.0 dB, 0 (0) | -8.1 dB, 20164 (17684) | + +## Cost + +| Rate | ns per engine sample (default / HOT) | % of one core at 48 kHz | +|---|---|---| +| 2x | 1985 / 2662 | 19.1 / 25.6 | diff --git a/harness/reports/M6/20261017_automation_fs96000_pdiv1_j4exact.md b/harness/reports/M6/20261017_automation_fs96000_pdiv1_j4exact.md new file mode 100644 index 0000000..abd35e5 --- /dev/null +++ b/harness/reports/M6/20261017_automation_fs96000_pdiv1_j4exact.md @@ -0,0 +1,66 @@ +# M5 automation: every knob over its full range at audio rate + +- Date: 2026-10-17, commit `eeea956 (dirty)`, engine `ampwav --block full` at 96000 Hz +- Modulation: 10 Hz triangle 0 → 1 → 0 (`lfo`) or 0 ↔ 1 jumps every 50 ms (`jump`) on the knob targets (smoothed by the engine, 20 ms); bases: default knobs, every knob at 1.0. +- SPEC §7 M5: no NaN / Inf, no Newton failures. Newton failures count first solves that did not converge in 12 iterations; the fallback (D-042) rescued or did not rescue them. + +Runs: 56 · non-finite outputs: 0 · Newton failures (first solve): 20 · unrescued: 0 + +| Base | Knobs | Modulation | Signal | finite | peak [V] | solves | failures | rescued | unrescued | median / max it | ns/sample | +|---|---|---|---|---|---|---|---|---|---|---|---| +| default | preampVolume | lfo | SIN-220Hz-0.3V | yes | 34.7 | 288000 | 0 | 0 | 0 | 1 / 7 | 2703 | +| default | preampVolume | lfo | DI-GTR L | yes | 55.9 | 1440105 | 0 | 0 | 0 | 1 / 18 | 3082 | +| default | preampVolume | jump | SIN-220Hz-0.3V | yes | 40.3 | 288000 | 0 | 0 | 0 | 1 / 25 | 2658 | +| default | preampVolume | jump | DI-GTR L | yes | 60.0 | 1440221 | 0 | 0 | 0 | 1 / 20 | 3013 | +| default | treble | lfo | SIN-220Hz-0.3V | yes | 41.4 | 288000 | 0 | 0 | 0 | 1 / 22 | 2811 | +| default | treble | lfo | DI-GTR L | yes | 64.5 | 1440166 | 0 | 0 | 0 | 1 / 17 | 3422 | +| default | treble | jump | SIN-220Hz-0.3V | yes | 39.8 | 288000 | 0 | 0 | 0 | 1 / 22 | 2811 | +| default | treble | jump | DI-GTR L | yes | 75.6 | 1440426 | 0 | 0 | 0 | 1 / 20 | 3575 | +| default | middle | lfo | SIN-220Hz-0.3V | yes | 35.1 | 288000 | 0 | 0 | 0 | 1 / 25 | 2836 | +| default | middle | lfo | DI-GTR L | yes | 54.9 | 1440145 | 0 | 0 | 0 | 1 / 18 | 3420 | +| default | middle | jump | SIN-220Hz-0.3V | yes | 39.9 | 288000 | 0 | 0 | 0 | 1 / 22 | 2831 | +| default | middle | jump | DI-GTR L | yes | 63.8 | 1440215 | 0 | 0 | 0 | 1 / 18 | 3571 | +| default | bass | lfo | SIN-220Hz-0.3V | yes | 39.3 | 288000 | 0 | 0 | 0 | 1 / 22 | 2693 | +| default | bass | lfo | DI-GTR L | yes | 57.7 | 1440152 | 0 | 0 | 0 | 1 / 20 | 3032 | +| default | bass | jump | SIN-220Hz-0.3V | yes | 45.2 | 288000 | 0 | 0 | 0 | 1 / 22 | 2684 | +| default | bass | jump | DI-GTR L | yes | 57.1 | 1440155 | 0 | 0 | 0 | 1 / 18 | 3047 | +| default | master | lfo | SIN-220Hz-0.3V | yes | 75.8 | 288215 | 0 | 0 | 0 | 1 / 22 | 3271 | +| default | master | lfo | DI-GTR L | yes | 137.4 | 1448413 | 0 | 0 | 0 | 1 / 19 | 3772 | +| default | master | jump | SIN-220Hz-0.3V | yes | 81.9 | 288929 | 0 | 0 | 0 | 1 / 22 | 3307 | +| default | master | jump | DI-GTR L | yes | 142.9 | 1452621 | 0 | 0 | 0 | 1 / 18 | 3968 | +| default | presence | lfo | SIN-220Hz-0.3V | yes | 35.7 | 288000 | 0 | 0 | 0 | 1 / 22 | 2842 | +| default | presence | lfo | DI-GTR L | yes | 58.1 | 1440162 | 0 | 0 | 0 | 1 / 19 | 3184 | +| default | presence | jump | SIN-220Hz-0.3V | yes | 67.9 | 288002 | 0 | 0 | 0 | 1 / 22 | 2852 | +| default | presence | jump | DI-GTR L | yes | 75.0 | 1440441 | 0 | 0 | 0 | 1 / 17 | 3288 | +| default | all | lfo | SIN-220Hz-0.3V | yes | 77.1 | 288679 | 0 | 0 | 0 | 1 / 8 | 4045 | +| default | all | lfo | DI-GTR L | yes | 161.9 | 1451205 | 0 | 0 | 0 | 1 / 19 | 6706 | +| default | all | jump | SIN-220Hz-0.3V | yes | 134.0 | 290865 | 0 | 0 | 0 | 1 / 25 | 4316 | +| default | all | jump | DI-GTR L | yes | 167.6 | 1459869 | 0 | 0 | 0 | 1 / 20 | 6882 | +| max | preampVolume | lfo | SIN-220Hz-0.3V | yes | 79.3 | 290727 | 0 | 0 | 0 | 1 / 21 | 3709 | +| max | preampVolume | lfo | DI-GTR L | yes | 206.3 | 1501570 | 0 | 0 | 0 | 2 / 20 | 4676 | +| max | preampVolume | jump | SIN-220Hz-0.3V | yes | 134.0 | 294933 | 0 | 0 | 0 | 1 / 25 | 4181 | +| max | preampVolume | jump | DI-GTR L | yes | 212.3 | 1496506 | 0 | 0 | 0 | 1 / 18 | 4497 | +| max | treble | lfo | SIN-220Hz-0.3V | yes | 129.5 | 303397 | 0 | 0 | 0 | 2 / 25 | 5223 | +| max | treble | lfo | DI-GTR L | yes | 208.9 | 1512086 | 0 | 0 | 0 | 1 / 22 | 5088 | +| max | treble | jump | SIN-220Hz-0.3V | yes | 134.0 | 303935 | 0 | 0 | 0 | 2 / 25 | 5230 | +| max | treble | jump | DI-GTR L | yes | 206.1 | 1509676 | 0 | 0 | 0 | 1 / 23 | 5193 | +| max | middle | lfo | SIN-220Hz-0.3V | yes | 181.9 | 309969 | 0 | 0 | 0 | 2 / 25 | 5891 | +| max | middle | lfo | DI-GTR L | yes | 212.9 | 1510320 | 0 | 0 | 0 | 2 / 19 | 5022 | +| max | middle | jump | SIN-220Hz-0.3V | yes | 143.6 | 307088 | 0 | 0 | 0 | 2 / 25 | 5553 | +| max | middle | jump | DI-GTR L | yes | 215.6 | 1509217 | 0 | 0 | 0 | 2 / 17 | 5174 | +| max | bass | lfo | SIN-220Hz-0.3V | yes | 149.2 | 312718 | 0 | 0 | 0 | 2 / 25 | 5914 | +| max | bass | lfo | DI-GTR L | yes | 213.1 | 1529438 | 0 | 0 | 0 | 2 / 18 | 5055 | +| max | bass | jump | SIN-220Hz-0.3V | yes | 148.4 | 312031 | 0 | 0 | 0 | 2 / 25 | 5799 | +| max | bass | jump | DI-GTR L | yes | 214.9 | 1527473 | 0 | 0 | 0 | 2 / 22 | 5081 | +| max | master | lfo | SIN-220Hz-0.3V | yes | 75.0 | 292542 | 0 | 0 | 0 | 1 / 25 | 3936 | +| max | master | lfo | DI-GTR L | yes | 196.6 | 1471596 | 0 | 0 | 0 | 1 / 21 | 4322 | +| max | master | jump | SIN-220Hz-0.3V | yes | 134.0 | 295718 | 0 | 0 | 0 | 1 / 25 | 4173 | +| max | master | jump | DI-GTR L | yes | 181.4 | 1472788 | 0 | 0 | 0 | 1 / 23 | 4480 | +| max | presence | lfo | SIN-220Hz-0.3V | yes | 104.1 | 303844 | 2 | 2 | 0 | 2 / 32 | 5353 | +| max | presence | lfo | DI-GTR L | yes | 201.8 | 1500881 | 11 | 11 | 0 | 2 / 32 | 4688 | +| max | presence | jump | SIN-220Hz-0.3V | yes | 134.0 | 304954 | 2 | 2 | 0 | 2 / 32 | 5398 | +| max | presence | jump | DI-GTR L | yes | 202.5 | 1501820 | 5 | 5 | 0 | 2 / 32 | 4715 | +| max | all | lfo | SIN-220Hz-0.3V | yes | 77.1 | 288679 | 0 | 0 | 0 | 1 / 8 | 4096 | +| max | all | lfo | DI-GTR L | yes | 161.9 | 1451205 | 0 | 0 | 0 | 1 / 19 | 6661 | +| max | all | jump | SIN-220Hz-0.3V | yes | 134.0 | 290865 | 0 | 0 | 0 | 1 / 25 | 4319 | +| max | all | jump | DI-GTR L | yes | 167.6 | 1459869 | 0 | 0 | 0 | 1 / 20 | 6818 | diff --git a/harness/reports/M6/20261017_auval.log b/harness/reports/M6/20261017_auval.log new file mode 100644 index 0000000..c777283 --- /dev/null +++ b/harness/reports/M6/20261017_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: 9.900 ms +WARM: +Time to open AudioUnit: 6.272 ms +This AudioUnit is a version 2 implementation. +FIRST TIME: +Time for initialization: 10.226 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_bcee775ecb9f7df0 + 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/20261017_plugin_cpu.md b/harness/reports/M6/20261017_plugin_cpu.md new file mode 100644 index 0000000..1fa20da --- /dev/null +++ b/harness/reports/M6/20261017_plugin_cpu.md @@ -0,0 +1,39 @@ +# M6 plugin CPU under knob automation + +- Date 2026-10-17, commit `eeea956 (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 | 26.4 | 0 (0) | +| every knob 10 | — | static | 512 | 50.2 | 0 (0) | +| default | preampVolume | lfo | 512 | 26.2 | 0 (0) | +| default | preampVolume | jump | 512 | 25.8 | 0 (0) | +| default | treble | lfo | 512 | 27.3 | 0 (0) | +| default | treble | jump | 512 | 27.3 | 0 (0) | +| default | middle | lfo | 512 | 27.3 | 0 (0) | +| default | middle | jump | 512 | 27.3 | 0 (0) | +| default | bass | lfo | 512 | 27.3 | 0 (0) | +| default | bass | jump | 512 | 27.3 | 0 (0) | +| default | master | lfo | 512 | 31.0 | 0 (0) | +| default | master | jump | 512 | 31.4 | 0 (0) | +| default | presence | lfo | 512 | 28.8 | 0 (0) | +| default | presence | jump | 512 | 28.9 | 0 (0) | +| default | all | lfo | 512 | 32.3 | 0 (0) | +| default | all | jump | 512 | 34.2 | 0 (0) | +| every knob 10 | preampVolume | lfo | 512 | 43.3 | 0 (0) | +| every knob 10 | preampVolume | jump | 512 | 42.9 | 0 (0) | +| every knob 10 | treble | lfo | 512 | 48.1 | 0 (0) | +| every knob 10 | treble | jump | 512 | 47.8 | 0 (0) | +| every knob 10 | middle | lfo | 512 | 48.4 | 0 (0) | +| every knob 10 | middle | jump | 512 | 48.2 | 0 (0) | +| every knob 10 | bass | lfo | 512 | 52.5 | 0 (0) | +| every knob 10 | bass | jump | 512 | 52.3 | 0 (0) | +| every knob 10 | master | lfo | 512 | 38.1 | 0 (0) | +| every knob 10 | master | jump | 512 | 38.6 | 0 (0) | +| every knob 10 | presence | lfo | 512 | 47.6 | 27 (27) | +| every knob 10 | presence | jump | 512 | 47.9 | 16 (16) | +| every knob 10 | all | lfo | 512 | 33.0 | 0 (0) | +| every knob 10 | all | jump | 512 | 35.0 | 0 (0) | +| default | all | jump | 64 | 34.2 | 0 (0) | +| every knob 10 | all | jump | 64 | 35.0 | 0 (0) | diff --git a/harness/reports/M6/20261017_plugin_null_2x_full.md b/harness/reports/M6/20261017_plugin_null_2x_full.md new file mode 100644 index 0000000..c7ee7d3 --- /dev/null +++ b/harness/reports/M6/20261017_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-17, commit `eeea956 (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.044 s for 0.200 s of audio: 21.8 % of one core, real-time factor 4.60 +latency 49 samples, Newton failures 0 (rescued 0), max iterations 3 | +| fir | SIN-100Hz--20dBFS | 0.869 | -138.5 dB | PASS | processBlock 0.045 s for 0.200 s of audio: 22.7 % of one core, real-time factor 4.41 +latency 49 samples, Newton failures 0 (rescued 0), max iterations 4 | +| fir | SIN-100Hz--6dBFS | 0.915 | -138.5 dB | PASS | processBlock 0.048 s for 0.200 s of audio: 23.8 % of one core, real-time factor 4.21 +latency 49 samples, Newton failures 0 (rescued 0), max iterations 9 | +| fir | SIN-1000Hz--40dBFS | 0.374 | -138.5 dB | PASS | processBlock 0.068 s for 0.200 s of audio: 34.0 % of one core, real-time factor 2.94 +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.3 % 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.075 s for 0.200 s of audio: 37.4 % of one core, real-time factor 2.68 +latency 49 samples, Newton failures 0 (rescued 0), max iterations 12 | +| fir | SIN-5000Hz--40dBFS | 0.864 | -138.5 dB | PASS | processBlock 0.088 s for 0.200 s of audio: 44.1 % of one core, real-time factor 2.27 +latency 49 samples, Newton failures 0 (rescued 0), max iterations 19 | +| fir | SIN-5000Hz--20dBFS | 0.889 | -138.5 dB | PASS | processBlock 0.100 s for 0.200 s of audio: 49.8 % of one core, real-time factor 2.01 +latency 49 samples, Newton failures 0 (rescued 0), max iterations 19 | +| fir | SIN-5000Hz--6dBFS | 0.930 | -138.5 dB | PASS | processBlock 0.233 s for 0.200 s of audio: 116.4 % of one core, real-time factor 0.86 +latency 49 samples, Newton failures 1009 (rescued 68), max iterations 32 | +| fir | DI-GTR L | 0.977 | -138.5 dB | PASS | processBlock 1.233 s for 5.000 s of audio: 24.7 % of one core, real-time factor 4.05 +latency 49 samples, Newton failures 0 (rescued 0), max iterations 19 | +| fir | DI-GTR LL | 0.857 | -138.5 dB | PASS | processBlock 1.185 s for 5.000 s of audio: 23.7 % of one core, real-time factor 4.22 +latency 49 samples, Newton failures 0 (rescued 0), max iterations 17 | +| fir | DI-GTR R | 0.945 | -138.5 dB | PASS | processBlock 1.200 s for 5.000 s of audio: 24.0 % of one core, real-time factor 4.17 +latency 49 samples, Newton failures 0 (rescued 0), max iterations 20 | +| fir | DI-GTR RR | 0.979 | -138.5 dB | PASS | processBlock 1.235 s for 5.000 s of audio: 24.7 % of one core, real-time factor 4.05 +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.5 % of one core, real-time factor 4.87 +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: 21.9 % of one core, real-time factor 4.56 +latency 4 samples, Newton failures 0 (rescued 0), max iterations 6 | +| iir | SIN-100Hz--6dBFS | 0.915 | -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-1000Hz--40dBFS | 0.414 | -138.5 dB | PASS | processBlock 0.066 s for 0.200 s of audio: 32.9 % of one core, real-time factor 3.04 +latency 4 samples, Newton failures 0 (rescued 0), max iterations 7 | +| iir | SIN-1000Hz--20dBFS | 0.928 | -138.5 dB | PASS | processBlock 0.069 s for 0.200 s of audio: 34.5 % of one core, real-time factor 2.90 +latency 4 samples, Newton failures 0 (rescued 0), max iterations 9 | +| iir | SIN-1000Hz--6dBFS | 1.044 | -138.5 dB | PASS | processBlock 0.074 s for 0.200 s of audio: 36.9 % of one core, real-time factor 2.71 +latency 4 samples, Newton failures 0 (rescued 0), max iterations 22 | +| iir | SIN-5000Hz--40dBFS | 0.982 | -138.5 dB | PASS | processBlock 0.088 s for 0.200 s of audio: 44.0 % of one core, real-time factor 2.27 +latency 4 samples, Newton failures 0 (rescued 0), max iterations 16 | +| iir | SIN-5000Hz--20dBFS | 1.015 | -138.5 dB | PASS | processBlock 0.099 s for 0.200 s of audio: 49.3 % of one core, real-time factor 2.03 +latency 4 samples, Newton failures 0 (rescued 0), max iterations 22 | +| iir | SIN-5000Hz--6dBFS | 1.020 | -138.5 dB | PASS | processBlock 0.137 s for 0.200 s of audio: 68.5 % of one core, real-time factor 1.46 +latency 4 samples, Newton failures 268 (rescued 184), max iterations 32 | +| iir | DI-GTR L | 0.985 | -138.5 dB | PASS | processBlock 1.224 s for 5.000 s of audio: 24.5 % of one core, real-time factor 4.09 +latency 4 samples, Newton failures 0 (rescued 0), max iterations 18 | +| iir | DI-GTR LL | 0.985 | -138.5 dB | PASS | processBlock 1.177 s for 5.000 s of audio: 23.5 % of one core, real-time factor 4.25 +latency 4 samples, Newton failures 0 (rescued 0), max iterations 22 | +| iir | DI-GTR R | 1.027 | -138.5 dB | PASS | processBlock 1.187 s for 5.000 s of audio: 23.7 % of one core, real-time factor 4.21 +latency 4 samples, Newton failures 0 (rescued 0), max iterations 18 | +| iir | DI-GTR RR | 1.036 | -138.5 dB | PASS | processBlock 1.221 s for 5.000 s of audio: 24.4 % of one core, real-time factor 4.09 +latency 4 samples, Newton failures 0 (rescued 0), max iterations 21 | diff --git a/harness/reports/M6/20261017_pluginval_au.log b/harness/reports/M6/20261017_pluginval_au.log new file mode 100644 index 0000000..2d57c4a --- /dev/null +++ b/harness/reports/M6/20261017_pluginval_au.log @@ -0,0 +1,119 @@ +Started validating: /Users/kimmo/Library/Audio/Plug-Ins/Components/Amp2203.component +Random seed: 0x218ab6d +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/20261017_pluginval_vst3.log b/harness/reports/M6/20261017_pluginval_vst3.log new file mode 100644 index 0000000..21437bb --- /dev/null +++ b/harness/reports/M6/20261017_pluginval_vst3.log @@ -0,0 +1,116 @@ +Started validating: /Users/kimmo/Library/Audio/Plug-Ins/VST3/Amp2203.vst3 +Random seed: 0x76d7d85 +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/testbench_gen.py b/harness/testbench_gen.py index 8848308..1611397 100644 --- a/harness/testbench_gen.py +++ b/harness/testbench_gen.py @@ -33,7 +33,7 @@ 'B4': 'C10 R15 C11 C12 RVR3a RVR3b RVR5 RVR4a RVR4b RVR2a RVR2b', 'B5': 'C9 R17 R16 R19 C15 R20 R23 C17 RVR6 R22 X3a X3b R18 R21', 'B6': ('C14 C16 C18 R24 R25 C19 Vc20 R27 R26 RRV1 R31 R33 R32 R34 R35 R37 R36 R38 X4 X5 X6 X7 ' - 'Lp1 Lp2 Ls Rwp1 Rwp2 Rws K1 K2 K3 Rload'), + 'Lp1 Lp2 Ls Rwp1 Rwp2 Rws K1 K2 K3 Rspk_e Lspk_e Rspk_le Rspk_m Lspk_m Cspk_m'), # speaker load D-059 'B7': 'Vht Rsrc C23 Lch Rch C22 R29 C21b R8 C21a', } diff --git a/harness/testbenches/b12.cir b/harness/testbenches/b12.cir index 992bca0..fb30271 100644 --- a/harness/testbenches/b12.cir +++ b/harness/testbenches/b12.cir @@ -1,5 +1,5 @@ * harness testbench "b12" -- GENERATED by harness/testbench_gen.py, do not edit -* source: reference/spice/jcm800_2203.cir (sha256 7bea8385e4adb04e) +* source: reference/spice/jcm800_2203.cir (sha256 83f01b6fd8b64a06) * B12 StageV1aV1b (V1a and V1b, joint root). Input: guitar source at node in. * Output: p1b (open). Supply bpA: constant from F op. .include tubes.lib @@ -28,4 +28,4 @@ R6 k1b 0 10k R7 bpA p1b 100k *** supply (inserted by the harness) -Vsup_bpA bpA 0 DC 389.349603 +Vsup_bpA bpA 0 DC 391.921506 diff --git a/harness/testbenches/b123.cir b/harness/testbenches/b123.cir index a3062f2..a8d8721 100644 --- a/harness/testbenches/b123.cir +++ b/harness/testbenches/b123.cir @@ -1,5 +1,5 @@ * harness testbench "b123" -- GENERATED by harness/testbench_gen.py, do not edit -* source: reference/spice/jcm800_2203.cir (sha256 7bea8385e4adb04e) +* source: reference/spice/jcm800_2203.cir (sha256 83f01b6fd8b64a06) * Junction reference for J2: B12 and B3 joined directly (no J-Thevenin source), for the SPICE * partition-error study of J2 (harness/partition.py). Input: guitar source at node in. * Output: k2b (open). Supplies bpA, bpX: constant from F op. @@ -40,5 +40,5 @@ X2b bpX p2a k2b 12AX7 R13 k2b 0 100k *** supply (inserted by the harness) -Vsup_bpA bpA 0 DC 389.349603 -Vsup_bpX bpX 0 DC 402.335999 +Vsup_bpA bpA 0 DC 391.921506 +Vsup_bpX bpX 0 DC 404.998185 diff --git a/harness/testbenches/b1234.cir b/harness/testbenches/b1234.cir index 0666711..34f2361 100644 --- a/harness/testbenches/b1234.cir +++ b/harness/testbenches/b1234.cir @@ -1,5 +1,5 @@ * harness testbench "b1234" -- GENERATED by harness/testbench_gen.py, do not edit -* source: reference/spice/jcm800_2203.cir (sha256 7bea8385e4adb04e) +* source: reference/spice/jcm800_2203.cir (sha256 83f01b6fd8b64a06) * B1234 Preamp: B12, B3 and B4 in one tree with an 8-port root (no J2 / J3; DECISIONS D-038). * Input: guitar source at node in. Output: y (open, master wiper). Supplies bpA, bpX: constant * from F op (the cascade study drives them with F's recorded waveforms). @@ -53,5 +53,5 @@ RVR2a tw y {1Meg*(1-atap(master))+1} RVR2b y 0 {1Meg*atap(master)+1} *** supply (inserted by the harness) -Vsup_bpA bpA 0 DC 389.349603 -Vsup_bpX bpX 0 DC 402.335999 +Vsup_bpA bpA 0 DC 391.921506 +Vsup_bpX bpX 0 DC 404.998185 diff --git a/harness/testbenches/b3.cir b/harness/testbenches/b3.cir index 2389ea9..1041315 100644 --- a/harness/testbenches/b3.cir +++ b/harness/testbenches/b3.cir @@ -1,5 +1,5 @@ * harness testbench "b3" -- GENERATED by harness/testbench_gen.py, do not edit -* source: reference/spice/jcm800_2203.cir (sha256 7bea8385e4adb04e) +* source: reference/spice/jcm800_2203.cir (sha256 83f01b6fd8b64a06) * B3 StageV2aV2b. Input: J2 Thevenin source (v_oc(p1b), R_th2) into node p1b. * Output: k2b (open). Supply bpX: constant from F op. .include tubes.lib @@ -22,8 +22,8 @@ X2b bpX p2a k2b 12AX7 R13 k2b 0 100k *** J2 (inserted by the harness) -Vin j2s 0 DC 352.432789 AC 1 +Vin j2s 0 DC 354.750235 AC 1 Rth_j2 j2s p1b {rth_j2} *** supply (inserted by the harness) -Vsup_bpX bpX 0 DC 402.335999 +Vsup_bpX bpX 0 DC 404.998185 diff --git a/harness/testbenches/b34.cir b/harness/testbenches/b34.cir index 1087ef1..09bb7f3 100644 --- a/harness/testbenches/b34.cir +++ b/harness/testbenches/b34.cir @@ -1,5 +1,5 @@ * harness testbench "b34" -- GENERATED by harness/testbench_gen.py, do not edit -* source: reference/spice/jcm800_2203.cir (sha256 7bea8385e4adb04e) +* source: reference/spice/jcm800_2203.cir (sha256 83f01b6fd8b64a06) * B34 StageV2aV2bToneStack: B3 and B4 joined in one tree (no J3; DECISIONS D-033). * Input: J2 Thevenin source (v_oc(p1b), R_th2) into node p1b. Output: y (open, master wiper). * Supply bpX: constant from F op. @@ -36,8 +36,8 @@ RVR2a tw y {1Meg*(1-atap(master))+1} RVR2b y 0 {1Meg*atap(master)+1} *** J2 (inserted by the harness) -Vin j2s 0 DC 352.432789 AC 1 +Vin j2s 0 DC 354.750235 AC 1 Rth_j2 j2s p1b {rth_j2} *** supply (inserted by the harness) -Vsup_bpX bpX 0 DC 402.335999 +Vsup_bpX bpX 0 DC 404.998185 diff --git a/harness/testbenches/b4.cir b/harness/testbenches/b4.cir index d52adb0..c381998 100644 --- a/harness/testbenches/b4.cir +++ b/harness/testbenches/b4.cir @@ -1,5 +1,5 @@ * harness testbench "b4" -- GENERATED by harness/testbench_gen.py, do not edit -* source: reference/spice/jcm800_2203.cir (sha256 7bea8385e4adb04e) +* source: reference/spice/jcm800_2203.cir (sha256 83f01b6fd8b64a06) * B4 ToneStackMaster. Input: J3 Thevenin source (v_oc(k2b), R_th3) into node k2b. * Output: y (open, master wiper). .include tubes.lib @@ -8,7 +8,7 @@ .func atap(x) {max((pwr(81,x)-1)/80,1e-4)} .func ltap(x) {max(min(x,0.9999),1e-4)} .param lpt=25.61 npr={sqrt(1700/16)} kot=0.9997925 -.param rth_j3=360.137 +.param rth_j3=359.535 *** B4 (from the reference netlist) C10 k2b tt 470p @@ -24,5 +24,5 @@ RVR2a tw y {1Meg*(1-atap(master))+1} RVR2b y 0 {1Meg*atap(master)+1} *** J3 (inserted by the harness) -Vin j3s 0 DC 231.685818 AC 1 +Vin j3s 0 DC 233.140404 AC 1 Rth_j3 j3s k2b {rth_j3} diff --git a/harness/testbenches/b56.cir b/harness/testbenches/b56.cir index 8a02467..a30b8bb 100644 --- a/harness/testbenches/b56.cir +++ b/harness/testbenches/b56.cir @@ -1,5 +1,5 @@ * harness testbench "b56" -- GENERATED by harness/testbench_gen.py, do not edit -* source: reference/spice/jcm800_2203.cir (sha256 7bea8385e4adb04e) +* source: reference/spice/jcm800_2203.cir (sha256 83f01b6fd8b64a06) * B56+B7: phase inverter, power stage and supply with instantaneous NFB (VERIFICATION §1). * Input: J4 Thevenin source (v_oc(y), R_th4) into node y; R_th4 = DC formula (WDF_DESIGN §6). * Preamp loads on bpA / bpX: constant current sinks from F op (recorded waveforms in M4). @@ -58,7 +58,12 @@ Rws sl 0 0.320 K1 Lp1 Lp2 {kot} K2 Lp1 Ls {kot} K3 Lp2 Ls {kot} -Rload out 0 16 +Rspk_e out spk1 13 +Lspk_e spk1 spk2 1.0m +Rspk_le spk1 spk2 45 +Rspk_m spk2 0 37 +Lspk_m spk2 0 0.0294437 +Cspk_m spk2 0 8.60297e-05 *** B7 (from the reference netlist) Vht raw 0 DC {vnl} @@ -78,5 +83,5 @@ Vin j4s 0 DC 0 AC 1 Rth_j4 j4s y {rth_j4} *** preamp load (inserted by the harness) -Isink_bpA bpA 0 DC 0.00129863961 -Isink_bpX bpX 0 DC 0.0040289243 +Isink_bpA bpA 0 DC 0.00130766783 +Isink_bpX bpX 0 DC 0.00405561586 diff --git a/harness/testbenches/b56j5.cir b/harness/testbenches/b56j5.cir index 557ebc4..4fade9a 100644 --- a/harness/testbenches/b56j5.cir +++ b/harness/testbenches/b56j5.cir @@ -1,5 +1,5 @@ * harness testbench "b56j5" -- GENERATED by harness/testbench_gen.py, do not edit -* source: reference/spice/jcm800_2203.cir (sha256 7bea8385e4adb04e) +* source: reference/spice/jcm800_2203.cir (sha256 83f01b6fd8b64a06) * J5 partition reference: B56+B7 as b56 (closed loop, instantaneous NFB), but C14 / C16 are fed * by J5 Thevenin sources (VCVS copies of the unloaded PI plates p3a / p3b behind R_thA / R_thB) * instead of the plates themselves (harness/partition_j5.py). @@ -61,7 +61,12 @@ Rws sl 0 0.320 K1 Lp1 Lp2 {kot} K2 Lp1 Ls {kot} K3 Lp2 Ls {kot} -Rload out 0 16 +Rspk_e out spk1 13 +Lspk_e spk1 spk2 1.0m +Rspk_le spk1 spk2 45 +Rspk_m spk2 0 37 +Lspk_m spk2 0 0.0294437 +Cspk_m spk2 0 8.60297e-05 *** B7 (from the reference netlist) Vht raw 0 DC {vnl} @@ -89,5 +94,5 @@ Ej5b j5b 0 p3b 0 1 Rth_j5b j5b p3b6 {rth_j5b} *** preamp load (inserted by the harness) -Isink_bpA bpA 0 DC 0.00129863961 -Isink_bpX bpX 0 DC 0.0040289243 +Isink_bpA bpA 0 DC 0.00130766783 +Isink_bpX bpX 0 DC 0.00405561586 diff --git a/harness/testbenches/b5open.cir b/harness/testbenches/b5open.cir index 02dbbbc..c8791ee 100644 --- a/harness/testbenches/b5open.cir +++ b/harness/testbenches/b5open.cir @@ -1,5 +1,5 @@ * harness testbench "b5open" -- GENERATED by harness/testbench_gen.py, do not edit -* source: reference/spice/jcm800_2203.cir (sha256 7bea8385e4adb04e) +* source: reference/spice/jcm800_2203.cir (sha256 83f01b6fd8b64a06) * B5-open: phase inverter with R22 driven by the recorded speaker voltage (ideal source). * Input: J4 Thevenin source into node y. Outputs: p3a, p3b (open). * Recorded sources (from a B56 run): out, bpX. DC values from F op. @@ -32,5 +32,5 @@ Vin j4s 0 DC 0 AC 1 Rth_j4 j4s y {rth_j4} *** recorded (inserted by the harness) -Vrec_out out 0 DC 4.23024587e-05 -Vrec_bpx bpX 0 DC 402.335999 +Vrec_out out 0 DC 4.24088407e-05 +Vrec_bpx bpX 0 DC 404.998185 diff --git a/harness/testbenches/b6.cir b/harness/testbenches/b6.cir index 9907708..9aaefbe 100644 --- a/harness/testbenches/b6.cir +++ b/harness/testbenches/b6.cir @@ -1,5 +1,5 @@ * harness testbench "b6" -- GENERATED by harness/testbench_gen.py, do not edit -* source: reference/spice/jcm800_2203.cir (sha256 7bea8385e4adb04e) +* source: reference/spice/jcm800_2203.cir (sha256 83f01b6fd8b64a06) * B6 PowerStage driven by the recorded PI open-circuit outputs through R_thA / R_thB. * No Vin: both inputs are recorded sources (from a B56 / B5-open run). Output: out. * Recorded supply rails (from a B56 run): ct, nScr. DC values from F op. @@ -44,16 +44,21 @@ Rws sl 0 0.320 K1 Lp1 Lp2 {kot} K2 Lp1 Ls {kot} K3 Lp2 Ls {kot} -Rload out 0 16 +Rspk_e out spk1 13 +Lspk_e spk1 spk2 1.0m +Rspk_le spk1 spk2 45 +Rspk_m spk2 0 37 +Lspk_m spk2 0 0.0294437 +Cspk_m spk2 0 8.60297e-05 *** J5a (inserted by the harness) -Vrec_p3a j5a 0 DC 270.880925 +Vrec_p3a j5a 0 DC 272.611263 Rth_j5a j5a p3a {rth_j5a} *** J5b (inserted by the harness) -Vrec_p3b j5b 0 DC 262.270582 +Vrec_p3b j5b 0 DC 263.951199 Rth_j5b j5b p3b {rth_j5b} *** recorded (inserted by the harness) -Vrec_ct ct 0 DC 488.708422 -Vrec_nscr nScr 0 DC 485.649287 +Vrec_ct ct 0 DC 491.346637 +Vrec_nscr nScr 0 DC 488.880467 diff --git a/harness/testbenches/full.cir b/harness/testbenches/full.cir index be95e6d..9b3ceb9 100644 --- a/harness/testbenches/full.cir +++ b/harness/testbenches/full.cir @@ -1,5 +1,5 @@ * harness testbench "full" -- GENERATED by harness/testbench_gen.py, do not edit -* source: reference/spice/jcm800_2203.cir (sha256 7bea8385e4adb04e) +* source: reference/spice/jcm800_2203.cir (sha256 83f01b6fd8b64a06) * Reference F: identical to the reference netlist. * Input: Vin in 0 (replaced by a filesource for transient runs). * Reference model. Knob params are rotations 0..1. See ASSUMPTIONS in README. @@ -113,7 +113,14 @@ Rws sl 0 0.320 K1 Lp1 Lp2 {kot} K2 Lp1 Ls {kot} K3 Lp2 Ls {kot} -Rload out 0 16 +* Speaker load (D-059): nominal 16 ohm 4x12, representative electrical equivalent (no published G12T-75 T/S data): +* Re 13 ohm, voice coil Le 1.0 mH || 45 ohm (eddy loss), motional resonance 100 Hz (37 ohm || Lm || Cm, Q 2) +Rspk_e out spk1 13 +Lspk_e spk1 spk2 1.0m +Rspk_le spk1 spk2 45 +Rspk_m spk2 0 37 +Lspk_m spk2 0 0.0294437 +Cspk_m spk2 0 8.60297e-05 *** HT supply (rectifier + mains TX approximated as DC source behind rsrc) Vht raw 0 DC {vnl} diff --git a/harness/tests/test_device_sweeps.py b/harness/tests/test_device_sweeps.py index 3655112..9d22081 100644 --- a/harness/tests/test_device_sweeps.py +++ b/harness/tests/test_device_sweeps.py @@ -32,7 +32,7 @@ def triode(vgk, vpk, mu=100, ex=1.4, kg1=1060, kp=600, kvb=300): return 2 * np.maximum(e1, 0) ** ex / kg1, grid_current(vgk, 2001.0) -def pentode(vsk, vgk, vpk, mu=11, ex=1.35, kg1=650, kg2=4200, kp=60, kvb=24): +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) diff --git a/plugin/src/PluginProcessor.cpp b/plugin/src/PluginProcessor.cpp index ebc7598..f154ad8 100644 --- a/plugin/src/PluginProcessor.cpp +++ b/plugin/src/PluginProcessor.cpp @@ -47,9 +47,9 @@ juce::AudioProcessorValueTreeState::ParameterLayout Amp2203Processor::layout() { juce::StringArray{"2x", "4x", "8x", "16x"}, 0)); // 2x (D-054) l.add(std::make_unique(juce::ParameterID{"oversamplingFilter", 1}, "Oversampling Filter", juce::StringArray{"Linear phase (FIR)", "Low latency (IIR)"}, 0)); - // power amp at the oversampled rate or at half of it (M6, D-049, D-053; default Half, D-054) + // power amp at the oversampled rate or at half of it (M6, D-049, D-053; default Full, D-060) l.add(std::make_unique(juce::ParameterID{"powerAmpRate", 1}, "Power Amp Rate", - juce::StringArray{"Full", "Half"}, 1)); + juce::StringArray{"Full", "Half"}, 0)); return l; } diff --git a/reference/README.md b/reference/README.md index 06ae829..3ec2d02 100644 --- a/reference/README.md +++ b/reference/README.md @@ -6,7 +6,7 @@ Transcribed from the Marshall drawings "2203 STD Preamp" (issue 4) and "2203 STD ## Files - `spice/jcm800_2203.cir` — full amp: preamp, tone stack, master, long-tail-pair PI with NFB and presence, 4x EL34, output transformer, HT supply chain, bias network. -- `spice/tubes.lib` — Koren 12AX7 and EL34 models. The EL34 screen current is a modification (see below). +- `spice/tubes.lib` — Koren 12AX7 and EL34 models (EL34 parameters fitted to the data sheet, D-058). The EL34 screen current is a modification (see below). - `spice/spice_tools.py` — helpers: `op`, `ac`, `tran`, `thd_power`. Run it directly to print the DC operating point. - `plots/tonestack_sweeps.png` — tone stack response (V2b cathode → Treble wiper) for each control. @@ -30,8 +30,8 @@ C5 1 nF across Preamp Volume top-to-wiper; "50+50 µF" cans modelled as 50 µF p 16 Ω tap; Low input not modelled. ## Assumed values (not on the schematic) -HT source 505 V behind 100 Ω; bias −60 V at the C20 node with RV1 = 4 kΩ; generic Koren tube parameters; resistive -16 Ω load; ideal guitar source. +HT source 505 V behind 100 Ω; bias −60 V at the C20 node with RV1 = 4 kΩ; Koren 12AX7 parameters (generic); EL34 parameters fitted to the Ei-RC data sheet curves (D-058); resistive +ideal guitar source. The load is a representative nominal 16 Ω 4x12 speaker impedance (D-059; was a 16 Ω resistor). ## Output transformer (Hammond 1750U datasheet) OT 1.7 kΩ : 16 Ω (nominal ratio), DCR 15.36 / 16.56 Ω per half-primary (Blue–White on the pA side) and @@ -45,17 +45,20 @@ D-023. runs it at ≈ 27 mA; the inductance at that current is not specified and stays 5 H. ## Sanity results -- DC: B+ 489 V, screens 486 V, PI supply 402 V, preamp supply 389 V; EL34 34.1 mA plate + 4.57 mA screen - per tube (≈ 16.6 W plate dissipation, ≈ 66 % of 25 W). -- Global NFB ≈ 6 dB: 6.6 / 6.2 / 6.0 dB at 100 Hz / 1 kHz / 5 kHz (verified negative by removing R22). -- Clean power (Preamp 2, Master 10, 1 kHz; input 25 / 30 / 40 mV peak): ≈ 101 W at 3.2 % THD, - ≈ 133 W at 3.5 %, ≈ 151 W at 9.6 % (assumed OT and choke before D-023/D-024: 101 W / 130 W / 145 W at - 2.8 / 3.8 / 9.6 %). -- Overdrive (Preamp 8, Master 3, 300 mV @ 220 Hz): V2a is the main clipping stage; B+ sags ≈ 20 V. +(EL34 parameters fitted to the data sheet, D-058; Koren's EL34 set gave B+ 489 V, 34.1 + 4.57 mA per tube, NFB 6.6 / +6.2 / 6.0 dB and 101 / 133 / 151 W.) +- DC: B+ 491 V, screens 489 V, PI supply 405 V, preamp supply 392 V; EL34 28.8 mA plate + 3.26 mA screen per tube + (≈ 14.1 W plate dissipation, ≈ 56 % of 25 W) with the assumed bias network (A4). +- Global NFB ≈ 4.8 dB: 5.1 / 4.7 / 4.6 dB at 100 Hz / 1 kHz / 5 kHz (R22 → 1 TΩ). +- Clean power (Preamp 2, Master 10, 1 kHz; input 25 / 30 / 40 mV peak): ≈ 87 W at 4.5 % THD, ≈ 112 W at 5.0 %, + ≈ 126 W at 10.3 %. +- Closed-loop output impedance ≈ 20–23 Ω (100 Hz – 5 kHz; 16 Ω vs open load). +- Overdrive (Preamp 8, Master 3, 300 mV @ 220 Hz): V2a is the main clipping stage. - Speed: ≈ 27x slower than real time for the full amp. ## Known limitations -No rectifier/ripple or mains-transformer dynamics, no OT core saturation or hysteresis, no reactive -speaker load, generic tube models. The Koren pentode screen equation gives ~0 screen current at this +No rectifier/ripple or mains-transformer dynamics, no OT core saturation or hysteresis, generic 12AX7 model, a +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. diff --git a/reference/spice/jcm800_2203.cir b/reference/spice/jcm800_2203.cir index 048696f..b743393 100644 --- a/reference/spice/jcm800_2203.cir +++ b/reference/spice/jcm800_2203.cir @@ -110,7 +110,14 @@ Rws sl 0 0.320 K1 Lp1 Lp2 {kot} K2 Lp1 Ls {kot} K3 Lp2 Ls {kot} -Rload out 0 16 +* Speaker load (D-059): nominal 16 ohm 4x12, representative electrical equivalent (no published G12T-75 T/S data): +* Re 13 ohm, voice coil Le 1.0 mH || 45 ohm (eddy loss), motional resonance 100 Hz (37 ohm || Lm || Cm, Q 2) +Rspk_e out spk1 13 +Lspk_e spk1 spk2 1.0m +Rspk_le spk1 spk2 45 +Rspk_m spk2 0 37 +Lspk_m spk2 0 0.0294437 +Cspk_m spk2 0 8.60297e-05 *** HT supply (rectifier + mains TX approximated as DC source behind rsrc) Vht raw 0 DC {vnl} diff --git a/reference/spice/tubes.lib b/reference/spice/tubes.lib index b0ae342..36d5854 100644 --- a/reference/spice/tubes.lib +++ b/reference/spice/tubes.lib @@ -14,7 +14,8 @@ Dg gx k DGRID .ends 12AX7 * Pentode pin order: plate screen grid cathode -.subckt EL34 p s g k params: mu=11 ex=1.35 kg1=650 kg2=4200 kp=60 kvb=24 rgi=1000 ccg=15p cpg=1p ccp=8p +* EL34 parameters fitted to the Ei-RC data sheet curves (D-058; Koren's set was mu=11 ex=1.35 kg1=650 kg2=4200 kp=60 kvb=24) +.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) diff --git a/tests/data/12ax7_grid.csv b/tests/data/12ax7_grid.csv index e6c4a93..e89e997 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 9ec33154be8127d7), ngspice 47 +# source: reference/spice/tubes.lib (sha256 5767afe208240bfa), 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 0a337d6..675ff46 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 9ec33154be8127d7), ngspice 47 +# source: reference/spice/tubes.lib (sha256 5767afe208240bfa), 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 d287283..cd5c1a9 100644 --- a/tests/data/el34_grid.csv +++ b/tests/data/el34_grid.csv @@ -1,11 +1,11 @@ # 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 9ec33154be8127d7), ngspice 47 +# source: reference/spice/tubes.lib (sha256 5767afe208240bfa), 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 -400,-5,400,0.488248658439888,0.0693787337644543,-9.99999814510488e-10,0.488249058439888 -400,0,400,0.595254409792376,0.0845839440728072,2.4382835194612e-30,0.595254809792376 -400,1,400,0.61735333148001,0.0877241374512118,0.000653031701523396,0.61735373148001 -400,5,400,0.707895496316969,0.100589919343481,0.00459860090785936,0.707895896316969 -400,10,400,0.825587731790932,0.117313648390034,0.00957465636479713,0.825588131790932 +400,-5,400,0.392042727426909,0.0499654028708635,-9.99999814510488e-10,0.392043127426909 +400,0,400,0.480488433389875,0.0612377082127894,2.4382835194612e-30,0.480488833389875 +400,1,400,0.498490593264215,0.0635320631586666,0.000653031701523396,0.498490993264215 +400,5,400,0.571261028013111,0.0728065728866767,0.00459860090785936,0.571261428013111 +400,10,400,0.66352071702826,0.0845649660614154,0.00957465636479713,0.66352111702826 diff --git a/tests/data/el34_plate.csv b/tests/data/el34_plate.csv index eda8934..2202cb9 100644 --- a/tests/data/el34_plate.csv +++ b/tests/data/el34_plate.csv @@ -1,1470 +1,1470 @@ # 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 9ec33154be8127d7), ngspice 47 +# source: reference/spice/tubes.lib (sha256 5767afe208240bfa), 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.360448884291835,2.4382835194612e-30,0 -250,0,10,0.0824672376923608,0.277981646599474,3.65171239030557e-39,0.0824672476923608 -250,0,20,0.145122683105603,0.215326201186232,-3.65171237936754e-39,0.145122703105603 -250,0,30,0.187175467475464,0.173273416816371,-1.64070378794541e-47,0.187175497475464 -250,0,40,0.21523364236334,0.145215241928495,5.46901257187999e-48,0.21523368236334 -250,0,50,0.234639264315682,0.125809619976154,4.0953525157576e-56,0.234639314315682 -250,0,60,0.24863761950357,0.111811264788266,-8.19070485977906e-57,0.24863767950357 -250,0,70,0.259125695775577,0.101323188516258,-8.58680667843167e-65,0.259125765775577 -250,0,80,0.267239033595937,0.0932098506958981,1.22668662425564e-65,0.267239113595937 -250,0,90,0.273684156692346,0.086764727599489,1.65344027914067e-73,0.273684246692346 -250,0,100,0.278918356166355,0.0815305281254805,-1.83715576482612e-74,0.278918456166355 -250,0,110,0.283248522530651,0.0772003617611844,-3.02657225418411e-82,0.283248632530651 -250,0,120,0.28688732304987,0.0735615612419655,2.75142910770929e-83,0.28688744304987 -250,0,130,0.289986328299173,0.0704625559926625,5.35690654890671e-91,0.289986458299173 -250,0,140,0.292656250377675,0.0677926339141597,-4.12069691331547e-92,0.292656390377675 -250,0,150,0.294979717169871,0.0654691671219645,-9.25708673056568e-100,0.294979867169871 -250,0,160,0.297019576929043,0.0634293073627919,6.17139031571224e-101,0.297019736929043 -250,0,170,0.298824442261107,0.0616244420307279,1.57124659632959e-108,0.298824612261107 -250,0,180,0.300432480390863,0.0600164039009719,-9.24262545921235e-110,0.300432660390863 -250,0,190,0.301874060536595,0.0585748237552398,-2.6300341248365e-117,0.301874250536595 -250,0,200,0.303173639036787,0.0572752452550486,1.38422819652212e-118,0.303173839036787 -250,0,210,0.304351125321281,0.0560977589705541,4.35350883813035e-126,0.304351335321281 -250,0,220,0.305422887488237,0.0550259968035983,-2.07309892305382e-127,0.305423107488237 -250,0,230,0.306402503314313,0.054046380977522,-7.14102122713026e-135,0.306402733314313 -250,0,240,0.307301328573144,0.0531475557186907,3.10479090790003e-136,0.307301568573144 -250,0,250,0.308128932322607,0.0523199519692279,1.16247828252341e-143,0.308129182322607 -250,0,260,0.308893434018405,0.0515554502734299,-4.64991150052341e-145,0.308893694018405 -250,0,270,0.309601767279488,0.0508471170123469,-1.88027319217195e-152,0.309602037279488 -250,0,280,0.310259888225243,0.0501889960665926,6.96397196286446e-154,0.310260168225243 -250,0,290,0.310872941481752,0.0495759428100834,3.02459714311403e-161,0.310873231481752 -250,0,300,0.311445393540972,0.0490034907508633,-1.04296404788728e-162,0.311445693540972 -250,0,310,0.311981140710294,0.0484677435815412,-4.84220957744239e-170,0.311981450710294 -250,0,320,0.312483597116176,0.0479652871756593,1.56200226604808e-171,0.312483917116176 -250,0,330,0.312955766925343,0.0474931173664922,7.71983781454779e-179,0.312956096925343 -250,0,340,0.313400303984287,0.0470485803075485,-2.33934340255108e-180,0.313400643984287 -250,0,350,0.313819561358027,0.0466293229338082,-1.22623759778336e-187,0.313819911358027 -250,0,360,0.314215632706168,0.046233251585667,3.50353366395621e-189,0.314215992706168 -250,0,370,0.314590387021257,0.0458584972705781,1.94142516131204e-196,0.314590757021257 -250,0,380,0.314945497937745,0.04550338635409,-5.24709114854839e-198,0.314945877937745 -250,0,390,0.315282468575175,0.0451664157166601,-3.06475584646932e-205,0.315282858575175 -250,0,400,0.315602652688826,0.0448462316030089,7.85834189049905e-207,0.315603052688826 -250,0,410,0.315907272751918,0.0445416115399175,4.82533507399056e-214,0.315907682751918 -250,0,420,0.316197435475887,0.0442514488159478,-1.17690993256546e-215,0.316197855475887 -250,0,430,0.316474145182014,0.0439747391098211,-7.57921835019235e-223,0.316474575182014 -250,0,440,0.316738315363253,0.0437105689285824,1.76260717639191e-224,0.316738755363253 -250,0,450,0.316990778715476,0.0434581055763593,1.18790256424665e-231,0.316991228715476 -250,0,460,0.317232295869202,0.0432165884226329,-2.63978062695451e-233,0.317232755869202 -250,0,470,0.317463563013895,0.0429853212779404,-1.85814031413343e-240,0.317464033013895 -250,0,480,0.317685218575162,0.0427636657166736,3.9534853880281e-242,0.317685698575162 -250,0,490,0.317897849079225,0.0425510352126097,2.90127615722786e-249,0.317898339079225 -250,0,500,0.318101994317687,0.0423468899741478,-5.92096421199582e-251,0.318102494317687 -250,0,510,0.318298151908013,0.0421507323838219,-4.52246802742357e-258,0.318298661908013 -250,0,520,0.318486781330589,0.0419621029612461,8.86757216704983e-260,0.318487301330589 -250,0,530,0.318668307511074,0.0417805767807616,7.03871754724518e-267,0.318668837511073 -250,0,540,0.318843124006656,0.0416057602851792,-1.32805794548559e-268,0.318843664006656 -250,0,550,0.319011595846358,0.0414372884454767,-1.0939379689506e-275,0.319012145846358 -250,0,560,0.319174062068399,0.0412748222234358,1.98897495591316e-277,0.319174622068399 -250,0,570,0.319330837991634,0.0411180463002015,1.69791990644622e-284,0.319331407991634 -250,0,580,0.319482217253009,0.0409666670388266,-2.97880176463542e-286,0.319482797253009 -250,0,590,0.319628473638663,0.0408204106531723,-2.63212610639224e-293,0.319629063638663 -250,0,600,0.319769862732638,0.0406790215591974,4.46122253749779e-295,0.319770462732638 -250,-10,0,0,0.167963574014124,-9.99998805539803e-10,0 -250,-10,10,0.0384284501506915,0.129535123863432,-9.99998805539803e-10,0.0384284601506915 -250,-10,20,0.0676249132323593,0.100338660781764,-9.99998805539803e-10,0.0676249332323594 -250,-10,30,0.0872208567012492,0.0807427173128744,-9.99998805539803e-10,0.0872208867012492 -250,-10,40,0.100295529809865,0.0676680442042589,-9.99998805539803e-10,0.100295569809865 -250,-10,50,0.109338247823782,0.0586253261903413,-9.99998805539803e-10,0.109338297823782 -250,-10,60,0.11586126362475,0.0521023103893736,-9.99998805539803e-10,0.11586132362475 -250,-10,70,0.120748544046328,0.0472150299677956,-9.99998805539803e-10,0.120748614046328 -250,-10,80,0.124529233283774,0.0434343407303495,-9.99998805539803e-10,0.124529313283774 -250,-10,90,0.127532560405623,0.0404310136085006,-9.99998805539803e-10,0.127532650405623 -250,-10,100,0.129971615952943,0.0379919580611806,-9.99998805539803e-10,0.129971715952943 -250,-10,110,0.131989406131575,0.0359741678825486,-9.99998805539803e-10,0.131989516131575 -250,-10,120,0.133685030579222,0.0342785434349012,-9.99998805539803e-10,0.133685150579222 -250,-10,130,0.135129118826531,0.0328344551875923,-9.99998805539803e-10,0.135129248826531 -250,-10,140,0.136373260989783,0.0315903130243404,-9.99998805539803e-10,0.136373400989783 -250,-10,150,0.137455960378039,0.0305076136360847,-9.99998805539803e-10,0.137456110378039 -250,-10,160,0.13840650329985,0.0295570707142739,-9.99998805539803e-10,0.13840666329985 -250,-10,170,0.139247542473499,0.0287160315406245,-9.99998805539803e-10,0.139247712473499 -250,-10,180,0.139996863232129,0.0279667107819947,-9.99998805539803e-10,0.139997043232129 -250,-10,190,0.140668617159127,0.027294956854997,-9.99998805539803e-10,0.140668807159127 -250,-10,200,0.141274200527855,0.0266893734862681,-9.99998805539803e-10,0.141274400527855 -250,-10,210,0.141822890822971,0.0261406831911522,-9.99998805539803e-10,0.141823100822971 -250,-10,220,0.142322315323643,0.0256412586904808,-9.99998805539803e-10,0.142322535323643 -250,-10,230,0.142778801062618,0.0251847729515061,-9.99998805539803e-10,0.142779031062618 -250,-10,240,0.143197639653793,0.0247659343603308,-9.99998805539803e-10,0.143197879653793 -250,-10,250,0.143583290129311,0.0243802838848123,-9.99998805539803e-10,0.143583540129311 -250,-10,260,0.143939536029249,0.0240240379848746,-9.99998805539803e-10,0.143939796029249 -250,-10,270,0.144269608312198,0.0236939657019257,-9.99998805539803e-10,0.144269878312198 -250,-10,280,0.144576282437156,0.0233872915769673,-9.99998805539803e-10,0.144576562437156 -250,-10,290,0.144861955719865,0.0231016182942587,-9.99998805539803e-10,0.144862245719865 -250,-10,300,0.145128709476108,0.022834864538016,-9.99998805539803e-10,0.145129009476108 -250,-10,310,0.145378359324529,0.0225852146895941,-9.99998805539803e-10,0.14537866932453 -250,-10,320,0.14561249619496,0.0223510778191637,-9.99998805539803e-10,0.14561281619496 -250,-10,330,0.145832519982369,0.0221310540317546,-9.99998805539803e-10,0.145832849982369 -250,-10,340,0.146039667337946,0.0219239066761771,-9.99998805539803e-10,0.146040007337946 -250,-10,350,0.146235034753394,0.0217285392607292,-9.99998805539803e-10,0.146235384753394 -250,-10,360,0.146419597841526,0.0215439761725979,-9.99998805539803e-10,0.146419957841526 -250,-10,370,0.146594227523799,0.0213693464903249,-9.99998805539803e-10,0.146594597523799 -250,-10,380,0.146759703687838,0.0212038703262858,-9.99998805539803e-10,0.146760083687838 -250,-10,390,0.146916726763972,0.0210468472501519,-9.99998805539803e-10,0.146917116763972 -250,-10,400,0.147065927581106,0.0208976464330178,-9.99998805539803e-10,0.147066327581106 -250,-10,410,0.147207875792747,0.0207556982213767,-9.99998805539803e-10,0.147208285792747 -250,-10,420,0.147343087109212,0.0206204869049113,-9.99998805539803e-10,0.147343507109212 -250,-10,430,0.147472029528598,0.0204915444855256,-9.99998805539803e-10,0.147472459528598 -250,-10,440,0.147595128724413,0.0203684452897104,-9.99998805539803e-10,0.147595568724413 -250,-10,450,0.147712772719984,0.02025080129414,-9.99998805539803e-10,0.147713222719984 -250,-10,460,0.147825315957301,0.0201382580568227,-9.99998805539803e-10,0.147825775957301 -250,-10,470,0.147933082849827,0.0200304911642968,-9.99998805539803e-10,0.147933552849827 -250,-10,480,0.148036370893966,0.019927203120158,-9.99998805539803e-10,0.148036850893966 -250,-10,490,0.148135453401814,0.0198281206123091,-9.99998805539803e-10,0.148135943401814 -250,-10,500,0.148230581907864,0.0197329921062592,-9.99998805539803e-10,0.148231081907864 -250,-10,510,0.148321988294115,0.0196415857200088,-9.99998805539803e-10,0.148322498294115 -250,-10,520,0.148409886671279,0.0195536873428441,-9.99998805539803e-10,0.148410406671279 -250,-10,530,0.148494475048106,0.0194690989660172,-9.99998805539803e-10,0.148495005048106 -250,-10,540,0.148575936816125,0.0193876371979989,-9.99998805539803e-10,0.148576476816125 -250,-10,550,0.148654442073181,0.0193091319409421,-9.99998805539803e-10,0.148654992073181 -250,-10,560,0.148730148805813,0.0192334252083102,-9.99998805539803e-10,0.148730708805813 -250,-10,570,0.148803203947703,0.0191603700664208,-9.99998805539803e-10,0.148803773947703 -250,-10,580,0.1488737443291,0.0190898296850236,-9.99998805539803e-10,0.1488743243291 -250,-10,590,0.148941897530088,0.019021676484036,-9.99998805539803e-10,0.148942487530088 -250,-10,600,0.149007782648854,0.01895579136527,-9.99998805539803e-10,0.149008382648854 -250,-20,0,0,0.0400954214007988,-9.99997784134621e-10,0 -250,-20,10,0.00917344675246078,0.0309219746483381,-9.99997784134621e-10,0.00917345675246078 -250,-20,20,0.0161430798859752,0.0239523415148236,-9.99997784134621e-10,0.0161430998859752 -250,-20,30,0.0208209251613163,0.0192744962394826,-9.99997784134621e-10,0.0208209551613163 -250,-20,40,0.0239420455056806,0.0161533758951182,-9.99997784134621e-10,0.0239420855056806 -250,-20,50,0.0261006777657094,0.0139947436350894,-9.99997784134621e-10,0.0261007277657094 -250,-20,60,0.0276578193595283,0.0124376020412705,-9.99997784134621e-10,0.0276578793595283 -250,-20,70,0.0288244864131275,0.0112709349876713,-9.99997784134621e-10,0.0288245564131275 -250,-20,80,0.0297269935730914,0.0103684278277075,-9.99997784134621e-10,0.0297270735730914 -250,-20,90,0.0304439327503016,0.00965148865049723,-9.99997784134621e-10,0.0304440227503016 -250,-20,100,0.0310261718492477,0.00906924955155111,-9.99997784134621e-10,0.0310262718492477 -250,-20,110,0.031507848593658,0.00858757280714081,-9.99997784134621e-10,0.031507958593658 -250,-20,120,0.0319126195516766,0.00818280184912224,-9.99997784134621e-10,0.0319127395516766 -250,-20,130,0.0322573450503786,0.00783807635042022,-9.99997784134621e-10,0.0322574750503786 -250,-20,140,0.0325543404233985,0.0075410809774003,-9.99997784134621e-10,0.0325544804233985 -250,-20,150,0.0328127969874322,0.00728262441336665,-9.99997784134621e-10,0.0328129469874322 -250,-20,160,0.0330397058230726,0.00705571557772621,-9.99997784134621e-10,0.0330398658230726 -250,-20,170,0.0332404744735374,0.00685494692726146,-9.99997784134621e-10,0.0332406444735374 -250,-20,180,0.0334193485642917,0.00667607283650712,-9.99997784134621e-10,0.0334195285642917 -250,-20,190,0.0335797062902969,0.0065157151105019,-9.99997784134621e-10,0.0335798962902969 -250,-20,200,0.0337242681127339,0.00637115328806497,-9.99997784134621e-10,0.0337244681127339 -250,-20,210,0.033855248706177,0.00624017269462182,-9.99997784134621e-10,0.033855458706177 -250,-20,220,0.0339744688164291,0.0061209525843697,-9.99997784134621e-10,0.0339746888164291 -250,-20,230,0.0340834388009932,0.00601198259980563,-9.99997784134621e-10,0.0340836688009932 -250,-20,240,0.0341834218473809,0.00591199955341799,-9.99997784134621e-10,0.0341836618473809 -250,-20,250,0.0342754823933659,0.00581993900743298,-9.99997784134621e-10,0.0342757323933659 -250,-20,260,0.0343605236266461,0.00573489777415279,-9.99997784134621e-10,0.0343607836266461 -250,-20,270,0.0344393168254407,0.00565610457535812,-9.99997784134621e-10,0.0344395868254407 -250,-20,280,0.0345125245333923,0.00558289686740653,-9.99997784134621e-10,0.0345128045333923 -250,-20,290,0.0345807190256826,0.00551470237511628,-9.99997784134621e-10,0.0345810090256826 -250,-20,300,0.0346443971435696,0.00545102425722925,-9.99997784134621e-10,0.0346446971435696 -250,-20,310,0.034703992302424,0.00539142909837487,-9.99997784134621e-10,0.034704302302424 -250,-20,320,0.0347598842810299,0.00533553711976896,-9.99997784134621e-10,0.0347602042810299 -250,-20,330,0.0348124072552887,0.00528301414551011,-9.99997784134621e-10,0.0348127372552887 -250,-20,340,0.0348618564323659,0.00523356496843293,-9.99997784134621e-10,0.0348621964323659 -250,-20,350,0.0349084935612574,0.00518692783954144,-9.99997784134621e-10,0.0349088435612574 -250,-20,360,0.0349525515353574,0.00514286986544145,-9.99997784134621e-10,0.0349529115353574 -250,-20,370,0.0349942382566654,0.00510118314413344,-9.99997784134621e-10,0.0349946082566654 -250,-20,380,0.0350337398960409,0.00506168150475789,-9.99997784134621e-10,0.0350341198960409 -250,-20,390,0.0350712236566968,0.00502419774410208,-9.99997784134621e-10,0.0350716136566968 -250,-20,400,0.035106840126943,0.0049885812738558,-9.99997784134621e-10,0.035107240126943 -250,-20,410,0.0351407252916059,0.0049546961091929,-9.99997784134621e-10,0.0351411352916059 -250,-20,420,0.0351730022584642,0.00492241914233469,-9.99997784134621e-10,0.0351734222584642 -250,-20,430,0.0352037827456743,0.00489163865512457,-9.99997784134621e-10,0.0352042127456743 -250,-20,440,0.03523316836788,0.00486225303291881,-9.99997784134621e-10,0.03523360836788 -250,-20,450,0.0352612517520623,0.00483416964873652,-9.99997784134621e-10,0.0352617017520623 -250,-20,460,0.0352881175088345,0.00480730389196436,-9.99997784134621e-10,0.0352885775088345 -250,-20,470,0.0353138430805499,0.00478157832024891,-9.99997784134621e-10,0.0353143130805499 -250,-20,480,0.0353384994840571,0.0047569219167417,-9.99997784134621e-10,0.0353389794840571 -250,-20,490,0.0353621519630483,0.00473326943775052,-9.99997784134621e-10,0.0353626419630483 -250,-20,500,0.0353848605625747,0.00471056083822418,-9.99997784134621e-10,0.0353853605625747 -250,-20,510,0.0354066806363433,0.00468874076445552,-9.99997784134621e-10,0.0354071906363433 -250,-20,520,0.0354276632957893,0.00466775810500958,-9.99997784134621e-10,0.0354281832957893 -250,-20,530,0.0354478558085671,0.00464756559223179,-9.99997784134621e-10,0.0354483858085671 -250,-20,540,0.0354673019529821,0.00462811944781672,-9.99997784134621e-10,0.0354678419529821 -250,-20,550,0.0354860423339388,0.00460937906686004,-9.99997784134621e-10,0.0354865923339388 -250,-20,560,0.0355041146651902,0.00459130673560863,-9.99997784134621e-10,0.0355046746651902 -250,-20,570,0.0355215540220076,0.00457386737879128,-9.99997784134621e-10,0.0355221240220076 -250,-20,580,0.0355383930678215,0.00455702833297735,-9.99997784134621e-10,0.0355389730678215 -250,-20,590,0.035554662257909,0.00454075914288986,-9.99997784134621e-10,0.035555252257909 -250,-20,600,0.0355703900227918,0.00452503137800709,-9.99997784134621e-10,0.0355709900227918 -250,-30,0,0,0.00309460977337294,-9.99996691716798e-10,0 -250,-30,10,0.000708016950162688,0.00238659282321025,-9.99996691716798e-10,0.000708026950162688 -250,-30,20,0.00124594108359923,0.00184866868977371,-9.99996691716798e-10,0.00124596108359923 -250,-30,30,0.00160698244946223,0.00148762732391071,-9.99996691716798e-10,0.00160701244946223 -250,-30,40,0.00184787403219418,0.00124673574117876,-9.99996691716798e-10,0.00184791403219418 -250,-30,50,0.00201447970076236,0.00108013007261057,-9.99996691716798e-10,0.00201452970076236 -250,-30,60,0.00213466164240075,0.000959948130972183,-9.99996691716798e-10,0.00213472164240075 -250,-30,70,0.00222470631932908,0.000869903454043853,-9.99996691716798e-10,0.00222477631932908 -250,-30,80,0.00229436283820801,0.000800246935164927,-9.99996691716798e-10,0.00229444283820801 -250,-30,90,0.00234969701121821,0.000744912762154724,-9.99996691716798e-10,0.00234978701121821 -250,-30,100,0.00239463488050826,0.000699974892864676,-9.99996691716798e-10,0.00239473488050826 -250,-30,110,0.00243181123403647,0.000662798539336467,-9.99996691716798e-10,0.00243192123403647 -250,-30,120,0.0024630519123708,0.000631557861002137,-9.99996691716798e-10,0.0024631719123708 -250,-30,130,0.00248965821454058,0.000604951558832361,-9.99996691716798e-10,0.00248978821454058 -250,-30,140,0.00251258065186345,0.000582029121509489,-9.99996691716798e-10,0.00251272065186345 -250,-30,150,0.00253252862051193,0.000562081152861004,-9.99996691716798e-10,0.00253267862051193 -250,-30,160,0.00255004169995854,0.000544568073414392,-9.99996691716798e-10,0.00255020169995854 -250,-30,170,0.00256553725047801,0.000529072522894932,-9.99996691716798e-10,0.00256570725047801 -250,-30,180,0.00257934295422453,0.000515266819148405,-9.99996691716798e-10,0.00257952295422453 -250,-30,190,0.00259171954408927,0.000502890229283665,-9.99996691716798e-10,0.00259190954408927 -250,-30,200,0.00260287698832955,0.000491732785043386,-9.99996691716798e-10,0.00260307698832955 -250,-30,210,0.00261298621802288,0.00048162355535006,-9.99996691716798e-10,0.00261319621802288 -250,-30,220,0.00262218776038057,0.000472422012992372,-9.99996691716798e-10,0.00262240776038057 -250,-30,230,0.00263059818649544,0.000464011586877495,-9.99996691716798e-10,0.00263082818649544 -250,-30,240,0.00263831499060207,0.000456294782770863,-9.99996691716798e-10,0.00263855499060207 -250,-30,250,0.00264542032720646,0.000449189446166481,-9.99996691716798e-10,0.00264567032720646 -250,-30,260,0.00265198390535215,0.00044262586802079,-9.99996691716798e-10,0.00265224390535215 -250,-30,270,0.00265806525316061,0.000436544520212322,-9.99996691716798e-10,0.00265833525316061 -250,-30,280,0.00266371550649624,0.000430894266876696,-9.99996691716798e-10,0.00266399550649624 -250,-30,290,0.00266897883420197,0.000425630939170969,-9.99996691716798e-10,0.00266926883420197 -250,-30,300,0.00267389358304557,0.00042071619032737,-9.99996691716798e-10,0.00267419358304557 -250,-30,310,0.00267849320451339,0.000416116568859549,-9.99996691716798e-10,0.00267880320451339 -250,-30,320,0.00268280701035965,0.000411802763013289,-9.99996691716798e-10,0.00268312701035965 -250,-30,330,0.00268686079265672,0.000407748980716221,-9.99996691716798e-10,0.00268719079265672 -250,-30,340,0.00269067733582604,0.000403932437546899,-9.99996691716798e-10,0.00269101733582604 -250,-30,350,0.00269427684194987,0.000400332931423071,-9.99996691716798e-10,0.00269462684194987 -250,-30,360,0.00269767728600262,0.000396932487370321,-9.99996691716798e-10,0.00269803728600262 -250,-30,370,0.00270089471409472,0.000393715059278217,-9.99996691716798e-10,0.00270126471409472 -250,-30,380,0.00270394349510275,0.000390666278270185,-9.99996691716798e-10,0.00270432349510275 -250,-30,390,0.00270683653395895,0.000387773239413985,-9.99996691716798e-10,0.00270722653395895 -250,-30,400,0.00270958545323867,0.000385024320134264,-9.99996691716798e-10,0.00270998545323867 -250,-30,410,0.00271220074840392,0.000382409024969013,-9.99996691716798e-10,0.00271261074840392 -250,-30,420,0.00271469192105169,0.000379917852321249,-9.99996691716798e-10,0.00271511192105169 -250,-30,430,0.00271706759371509,0.000377542179657844,-9.99996691716798e-10,0.00271749759371509 -250,-30,440,0.00271933560912677,0.000375274164246169,-9.99996691716798e-10,0.00271977560912677 -250,-30,450,0.0027215031163414,0.000373106657031538,-9.99996691716798e-10,0.0027219531163414 -250,-30,460,0.0027235766457014,0.000371033127671537,-9.99996691716798e-10,0.0027240366457014 -250,-30,470,0.00272556217429481,0.000369047599078123,-9.99996691716798e-10,0.00272603217429481 -250,-30,480,0.00272746518328197,0.000367144590090965,-9.99996691716798e-10,0.00272794518328197 -250,-30,490,0.00272929070824451,0.000365319065128428,-9.99996691716798e-10,0.00272978070824451 -250,-30,500,0.00273104338352709,0.000363566389845848,-9.99996691716798e-10,0.00273154338352709 -250,-30,510,0.00273272748139116,0.000361882291981774,-9.99996691716798e-10,0.00273323748139116 -250,-30,520,0.00273434694667484,0.000360262826698103,-9.99996691716798e-10,0.00273486694667484 -250,-30,530,0.00273590542754891,0.000358704345824028,-9.99996691716798e-10,0.00273643542754891 -250,-30,540,0.0027374063028723,0.00035720347050064,-9.99996691716798e-10,0.0027379463028723 -250,-30,550,0.00273885270657724,0.000355757066795699,-9.99996691716798e-10,0.00273940270657724 -250,-30,560,0.00274024754945366,0.000354362223919272,-9.99996691716798e-10,0.00274080754945366 -250,-30,570,0.00274159353865051,0.00035301623472243,-9.99996691716798e-10,0.00274216353865051 -250,-30,580,0.00274289319516812,0.000351716578204816,-9.99996691716798e-10,0.00274347319516812 -250,-30,590,0.00274414886957908,0.000350460903793856,-9.99996691716798e-10,0.00274473886957908 -250,-30,600,0.00274536275618307,0.000349247017189872,-9.99996691716798e-10,0.00274596275618307 -250,-40,0,0,0.00013386874780687,-9.99995592110281e-10,0 -250,-40,10,3.06278818608565e-05,0.000103240865946014,-9.99995592110281e-10,3.06378818608565e-05 -250,-40,20,5.38977722288939e-05,7.99709755779763e-05,-9.99995592110281e-10,5.39177722288939e-05 -250,-40,30,6.95159467627003e-05,6.43528010441699e-05,-9.99995592110281e-10,6.95459467627003e-05 -250,-40,40,7.99365997364656e-05,5.39321480704047e-05,-9.99995592110281e-10,7.99765997364656e-05 -250,-40,50,8.71437417873485e-05,4.67250060195217e-05,-9.99995592110281e-10,8.71937417873485e-05 -250,-40,60,9.23426544821126e-05,4.15260933247576e-05,-9.99995592110281e-10,9.24026544821126e-05 -250,-40,70,9.62378687513842e-05,3.7630879055486e-05,-9.99995592110281e-10,9.63078687513843e-05 -250,-40,80,9.92511181242588e-05,3.46176296826114e-05,-9.99995592110281e-10,9.93311181242588e-05 -250,-40,90,0.000101644801656038,3.22239461508326e-05,-9.99995592110281e-10,0.000101734801656038 -250,-40,100,0.000103588754765321,3.02799930415491e-05,-9.99995592110281e-10,0.000103688754765321 -250,-40,110,0.000105196954913097,2.86717928937733e-05,-9.99995592110281e-10,0.000105306954913097 -250,-40,120,0.000106548385560424,2.73203622464462e-05,-9.99995592110281e-10,0.000106668385560424 -250,-40,130,0.000107699339191439,2.61694086154309e-05,-9.99995592110281e-10,0.000107829339191439 -250,-40,140,0.000108690933675338,2.51778141315326e-05,-9.99995592110281e-10,0.000108830933675338 -250,-40,150,0.000109553856557324,2.43148912495458e-05,-9.99995592110281e-10,0.000109703856557324 -250,-40,160,0.000110311449335559,2.35572984713117e-05,-9.99995592110281e-10,0.000110471449335559 -250,-40,170,0.000110981766466483,2.28869813403872e-05,-9.99995592110281e-10,0.000111151766466483 -250,-40,180,0.00011157898304902,2.22897647578499e-05,-9.99995592110281e-10,0.00011175898304902 -250,-40,190,0.000112114378045045,2.17543697618256e-05,-9.99995592110281e-10,0.000112304378045045 -250,-40,200,0.000112597034405153,2.12717134017175e-05,-9.99995592110281e-10,0.000112797034405153 -250,-40,210,0.000113034346382896,2.08344014239741e-05,-9.99995592110281e-10,0.000113244346382896 -250,-40,220,0.000113432393000571,2.0436354806299e-05,-9.99995592110281e-10,0.000113652393000571 -250,-40,230,0.000113796216970304,2.00725308365667e-05,-9.99995592110281e-10,0.000114026216970304 -250,-40,240,0.000114130035764426,1.97387120424447e-05,-9.99995592110281e-10,0.000114370035764426 -250,-40,250,0.000114437403278792,1.94313445280785e-05,-9.99995592110281e-10,0.000114687403278792 -250,-40,260,0.000114721335034924,1.91474127719467e-05,-9.99995592110281e-10,0.000114981335034924 -250,-40,270,0.000114984406141046,1.88843416658246e-05,-9.99995592110281e-10,0.000115254406141046 -250,-40,280,0.000115228828667382,1.86399191394886e-05,-9.99995592110281e-10,0.000115508828667382 -250,-40,290,0.000115456513299973,1.84122345068976e-05,-9.99995592110281e-10,0.000115746513299973 -250,-40,300,0.000115669118869547,1.81996289373234e-05,-9.99995592110281e-10,0.000115969118869547 -250,-40,310,0.000115868092443398,1.80006553634722e-05,-9.99995592110281e-10,0.000116178092443398 -250,-40,320,0.000116054702009454,1.78140457974165e-05,-9.99995592110281e-10,0.000116374702009454 -250,-40,330,0.000116230063298835,1.76386845080354e-05,-9.99995592110281e-10,0.000116560063298835 -250,-40,340,0.00011639516193564,1.74735858712302e-05,-9.99995592110281e-10,0.00011673516193564 -250,-40,350,0.000116550871835372,1.73178759714987e-05,-9.99995592110281e-10,0.000116900871835372 -250,-40,360,0.000116697970571776,1.71707772350939e-05,-9.99995592110281e-10,0.000117057970571776 -250,-40,370,0.000116837152278483,1.70315955283875e-05,-9.99995592110281e-10,0.000117207152278483 -250,-40,380,0.000116969038534189,1.6899709272681e-05,-9.99995592110281e-10,0.000117349038534189 -250,-40,390,0.000117094187589288,1.67745602175826e-05,-9.99995592110281e-10,0.000117484187589288 -250,-40,400,0.000117213102221098,1.66556455857719e-05,-9.99995592110281e-10,0.000117613102221098 -250,-40,410,0.000117326236449501,1.65425113573694e-05,-9.99995592110281e-10,0.000117736236449501 -250,-40,420,0.000117434001301081,1.64347465057889e-05,-9.99995592110281e-10,0.000117854001301081 -250,-40,430,0.00011753676977528,1.63319780315905e-05,-9.99995592110281e-10,0.00011796676977528 -250,-40,440,0.000117634881138392,1.62338666684777e-05,-9.99995592110281e-10,0.000118074881138392 -250,-40,450,0.000117728644649121,1.61401031577496e-05,-9.99995592110281e-10,0.000118178644649121 -250,-40,460,0.000117818342801486,1.6050405005384e-05,-9.99995592110281e-10,0.000118278342801486 -250,-40,470,0.000117904234156455,1.59645136504151e-05,-9.99995592110281e-10,0.000118374234156455 -250,-40,480,0.000117986555821813,1.58821919850574e-05,-9.99995592110281e-10,0.000118466555821813 -250,-40,490,0.000118065525630196,1.58032221766739e-05,-9.99995592110281e-10,0.000118555525630196 -250,-40,500,0.000118141344057259,1.57274037496109e-05,-9.99995592110281e-10,0.000118641344057259 -250,-40,510,0.000118214195915412,1.56545518914582e-05,-9.99995592110281e-10,0.000118724195915412 -250,-40,520,0.000118284251853161,1.55844959537089e-05,-9.99995592110281e-10,0.000118804251853161 -250,-40,530,0.000118351669685577,1.55170781212931e-05,-9.99995592110281e-10,0.000118881669685577 -250,-40,540,0.000118416595577651,1.54521522292195e-05,-9.99995592110281e-10,0.000118956595577651 -250,-40,550,0.000118479165099168,1.53895827077019e-05,-9.99995592110281e-10,0.000119029165099168 -250,-40,560,0.000118539504167073,1.5329243639797e-05,-9.99995592110281e-10,0.000119099504167073 -250,-40,570,0.000118597729889067,1.52710179178035e-05,-9.99995592110281e-10,0.000119167729889067 -250,-40,580,0.000118653951320308,1.52147964865623e-05,-9.99995592110281e-10,0.000119233951320308 -250,-40,590,0.000118708270143474,1.51604776633961e-05,-9.99995592110281e-10,0.000119298270143474 -250,-40,600,0.000118760781281083,1.51079665257873e-05,-9.99995592110281e-10,0.000119360781281083 -250,-46,0,0,1.93163277438646e-05,-9.99994929570813e-10,0 -250,-46,10,4.41938999069585e-06,1.48969377531687e-05,-9.99994929570813e-10,4.42938999069585e-06 -250,-46,20,7.77707306666871e-06,1.15392546771959e-05,-9.99994929570813e-10,7.79707306666871e-06 -250,-46,30,1.00306668516134e-05,9.28566089225122e-06,-9.99994929570813e-10,1.00606668516134e-05 -250,-46,40,1.1534294482737e-05,7.78203326112762e-06,-9.99994929570813e-10,1.1574294482737e-05 -250,-46,50,1.25742348738452e-05,6.74209287001941e-06,-9.99994929570813e-10,1.26242348738452e-05 -250,-46,60,1.33244017587157e-05,5.99192598514886e-06,-9.99994929570813e-10,1.33844017587157e-05 -250,-46,70,1.38864540426915e-05,5.42987370117308e-06,-9.99994929570813e-10,1.39564540426915e-05 -250,-46,80,1.4321244936115e-05,4.99508280774955e-06,-9.99994929570813e-10,1.4401244936115e-05 -250,-46,90,1.46666367947259e-05,4.64969094913863e-06,-9.99994929570813e-10,1.47566367947259e-05 -250,-46,100,1.49471356863104e-05,4.36919205755418e-06,-9.99994929570813e-10,1.50471356863104e-05 -250,-46,110,1.51791877644921e-05,4.13713997937246e-06,-9.99994929570813e-10,1.52891877644921e-05 -250,-46,120,1.53741897924825e-05,3.94213795138208e-06,-9.99994929570813e-10,1.54941897924825e-05 -250,-46,130,1.55402643835944e-05,3.77606336027022e-06,-9.99994929570813e-10,1.56702643835944e-05 -250,-46,140,1.56833445599147e-05,3.63298318394989e-06,-9.99994929570813e-10,1.58233445599147e-05 -250,-46,150,1.58078583204392e-05,3.50846942342542e-06,-9.99994929570813e-10,1.59578583204392e-05 -250,-46,160,1.59171736807492e-05,3.39915406311542e-06,-9.99994929570813e-10,1.60771736807492e-05 -250,-46,170,1.60138957731373e-05,3.30243197072725e-06,-9.99994929570813e-10,1.61838957731373e-05 -250,-46,180,1.61000699656307e-05,3.21625777823385e-06,-9.99994929570813e-10,1.62800699656307e-05 -250,-46,190,1.61773237338556e-05,3.13900401000893e-06,-9.99994929570813e-10,1.63673237338556e-05 -250,-46,200,1.6246967684309e-05,3.06936005955562e-06,-9.99994929570813e-10,1.6446967684309e-05 -250,-46,210,1.63100687562679e-05,3.00625898759673e-06,-9.99994929570813e-10,1.65200687562679e-05 -250,-46,220,1.63675041103017e-05,2.94882363356292e-06,-9.99994929570813e-10,1.65875041103017e-05 -250,-46,230,1.64200013746412e-05,2.89632636922337e-06,-9.99994929570813e-10,1.66500013746412e-05 -250,-46,240,1.64681691011641e-05,2.84815864270048e-06,-9.99994929570813e-10,1.67081691011641e-05 -250,-46,250,1.65125200922847e-05,2.80380765157983e-06,-9.99994929570813e-10,1.67625200922847e-05 -250,-46,260,1.65534894667518e-05,2.7628382771128e-06,-9.99994929570813e-10,1.68134894667518e-05 -250,-46,270,1.65914487947432e-05,2.72487894912142e-06,-9.99994929570813e-10,1.68614487947432e-05 -250,-46,280,1.66267172625823e-05,2.6896104812823e-06,-9.99994929570813e-10,1.69067172625823e-05 -250,-46,290,1.66595705689545e-05,2.65675717491006e-06,-9.99994929570813e-10,1.69495705689545e-05 -250,-46,300,1.66902480715781e-05,2.62607967228643e-06,-9.99994929570813e-10,1.69902480715781e-05 -250,-46,310,1.6718958572183e-05,2.59736917168159e-06,-9.99994929570813e-10,1.7028958572183e-05 -250,-46,320,1.67458850325938e-05,2.57044271127074e-06,-9.99994929570813e-10,1.70658850325938e-05 -250,-46,330,1.6771188445039e-05,2.5451392988256e-06,-9.99994929570813e-10,1.7101188445039e-05 -250,-46,340,1.67950110282097e-05,2.52131671565483e-06,-9.99994929570813e-10,1.71350110282097e-05 -250,-46,350,1.68174788820252e-05,2.49884886183942e-06,-9.99994929570813e-10,1.71674788820252e-05 -250,-46,360,1.68387042049601e-05,2.47762353890443e-06,-9.99994929570813e-10,1.71987042049601e-05 -250,-46,370,1.68587871556618e-05,2.45754058820282e-06,-9.99994929570813e-10,1.72287871556618e-05 -250,-46,380,1.68778174236061e-05,2.43851032025849e-06,-9.99994929570813e-10,1.72578174236061e-05 -250,-46,390,1.68958755604358e-05,2.42045218342879e-06,-9.99994929570813e-10,1.72858755604358e-05 -250,-46,400,1.69130341134157e-05,2.40329363044889e-06,-9.99994929570813e-10,1.73130341134157e-05 -250,-46,410,1.69293585944516e-05,2.386969149413e-06,-9.99994929570813e-10,1.73393585944516e-05 -250,-46,420,1.69449083118165e-05,2.37141943204805e-06,-9.99994929570813e-10,1.73649083118165e-05 -250,-46,430,1.69597370867313e-05,2.35659065713325e-06,-9.99994929570813e-10,1.73897370867313e-05 -250,-46,440,1.69738938729591e-05,2.34243387090547e-06,-9.99994929570813e-10,1.74138938729591e-05 -250,-46,450,1.69874232943761e-05,2.32890444948851e-06,-9.99994929570813e-10,1.74374232943761e-05 -250,-46,460,1.70003661129017e-05,2.31596163096291e-06,-9.99994929570813e-10,1.74603661129017e-05 -250,-46,470,1.70127596370821e-05,2.30356810678252e-06,-9.99994929570813e-10,1.74827596370821e-05 -250,-46,480,1.70246380799189e-05,2.29168966394563e-06,-9.99994929570813e-10,1.75046380799189e-05 -250,-46,490,1.70360328731444e-05,2.2802948707202e-06,-9.99994929570813e-10,1.75260328731444e-05 -250,-46,500,1.70469729439986e-05,2.26935479986597e-06,-9.99994929570813e-10,1.75469729439986e-05 -250,-46,510,1.7057484959625e-05,2.25884278423961e-06,-9.99994929570813e-10,1.7567484959625e-05 -250,-46,520,1.70675935434142e-05,2.24873420045035e-06,-9.99994929570813e-10,1.75875935434142e-05 -250,-46,530,1.70773214669816e-05,2.23900627688299e-06,-9.99994929570813e-10,1.76073214669816e-05 -250,-46,540,1.70866898209171e-05,2.22963792294749e-06,-9.99994929570813e-10,1.76266898209171e-05 -250,-46,550,1.70957181669964e-05,2.22060957686813e-06,-9.99994929570813e-10,1.76457181669964e-05 -250,-46,560,1.71044246741574e-05,2.21190306970716e-06,-9.99994929570813e-10,1.76644246741574e-05 -250,-46,570,1.71128262402255e-05,2.20350150363909e-06,-9.99994929570813e-10,1.76828262402255e-05 -250,-46,580,1.71209386011004e-05,2.19538914276416e-06,-9.99994929570813e-10,1.77009386011004e-05 -250,-46,590,1.71287764288842e-05,2.18755131498038e-06,-9.99994929570813e-10,1.77187764288842e-05 -250,-46,600,1.71363534202348e-05,2.17997432362975e-06,-9.99994929570813e-10,1.77363534202348e-05 -250,-50,0,0,5.2936620671529e-06,-9.99994492503764e-10,0 -250,-50,10,1.2111389630533e-06,4.0825231040996e-06,-9.99994492503764e-10,1.2211389630533e-06 -250,-50,20,2.13131591223788e-06,3.16234615491502e-06,-9.99994492503764e-10,2.15131591223788e-06 -250,-50,30,2.74891590807157e-06,2.54474615908133e-06,-9.99994492503764e-10,2.77891590807157e-06 -250,-50,40,3.16098680785894e-06,2.13267525929396e-06,-9.99994492503764e-10,3.20098680785894e-06 -250,-50,50,3.44598368063453e-06,1.84767838651837e-06,-9.99994492503764e-10,3.49598368063453e-06 -250,-50,60,3.65156778725825e-06,1.64209427989465e-06,-9.99994492503764e-10,3.71156778725825e-06 -250,-50,70,3.80559886888474e-06,1.48806319826816e-06,-9.99994492503764e-10,3.87559886888474e-06 -250,-50,80,3.92475381853042e-06,1.36890824862247e-06,-9.99994492503764e-10,4.00475381853042e-06 -250,-50,90,4.01940885878842e-06,1.27425320836448e-06,-9.99994492503764e-10,4.10940885878842e-06 -250,-50,100,4.09627990601584e-06,1.19738216113706e-06,-9.99994492503764e-10,4.19627990601584e-06 -250,-50,110,4.15987404772659e-06,1.13378801942631e-06,-9.99994492503764e-10,4.26987404772659e-06 -250,-50,120,4.21331458012377e-06,1.08034748702913e-06,-9.99994492503764e-10,4.33331458012377e-06 -250,-50,130,4.25882751482566e-06,1.03483455232724e-06,-9.99994492503764e-10,4.38882751482566e-06 -250,-50,140,4.2980388034304e-06,9.95623263722499e-07,-9.99994492503764e-10,4.4380388034304e-06 -250,-50,150,4.33216194420887e-06,9.61500122944028e-07,-9.99994492503764e-10,4.48216194420887e-06 -250,-50,160,4.36211994574537e-06,9.31542121407531e-07,-9.99994492503764e-10,4.52211994574537e-06 -250,-50,170,4.38862674757231e-06,9.05035319580587e-07,-9.99994492503764e-10,4.55862674757231e-06 -250,-50,180,4.41224288517459e-06,8.81419181978306e-07,-9.99994492503764e-10,4.59224288517459e-06 -250,-50,190,4.433414370139e-06,8.60247697013896e-07,-9.99994492503764e-10,4.623414370139e-06 -250,-50,200,4.45250037569917e-06,8.4116169145373e-07,-9.99994492503764e-10,4.65250037569917e-06 -250,-50,210,4.46979329780397e-06,8.23868769348928e-07,-9.99994492503764e-10,4.67979329780397e-06 -250,-50,220,4.48553352332685e-06,8.0812854382605e-07,-9.99994492503764e-10,4.70553352332685e-06 -250,-50,230,4.49992045963009e-06,7.93741607522804e-07,-9.99994492503764e-10,4.72992045963009e-06 -250,-50,240,4.513120881063e-06,7.80541186089894e-07,-9.99994492503764e-10,4.753120881063e-06 -250,-50,250,4.52527532172321e-06,7.68386745429682e-07,-9.99994492503764e-10,4.77527532172321e-06 -250,-50,260,4.53650302640947e-06,7.57159040743425e-07,-9.99994492503764e-10,4.79650302640947e-06 -250,-50,270,4.54690582436088e-06,7.46756242792018e-07,-9.99994492503764e-10,4.81690582436088e-06 -250,-50,280,4.55657118896031e-06,7.37090878192588e-07,-9.99994492503764e-10,4.83657118896031e-06 -250,-50,290,4.56557467575291e-06,7.28087391399992e-07,-9.99994492503764e-10,4.85557467575291e-06 -250,-50,300,4.57398188099953e-06,7.19680186153372e-07,-9.99994492503764e-10,4.87398188099953e-06 -250,-50,310,4.5818500270569e-06,7.11812040096e-07,-9.99994492503764e-10,4.8918500270569e-06 -250,-50,320,4.58922925482574e-06,7.04432812327156e-07,-9.99994492503764e-10,4.90922925482574e-06 -250,-50,330,4.59616368441332e-06,6.97498382739578e-07,-9.99994492503764e-10,4.92616368441332e-06 -250,-50,340,4.60269229101727e-06,6.90969776135628e-07,-9.99994492503764e-10,4.94269229101727e-06 -250,-50,350,4.60884963246696e-06,6.84812434685942e-07,-9.99994492503764e-10,4.95884963246696e-06 -250,-50,360,4.61466645688482e-06,6.78995610268077e-07,-9.99994492503764e-10,4.97466645688482e-06 -250,-50,370,4.62017021286449e-06,6.73491854288403e-07,-9.99994492503764e-10,4.99017021286449e-06 -250,-50,380,4.62538547991113e-06,6.68276587241765e-07,-9.99994492503764e-10,5.00538547991113e-06 -250,-50,390,4.63033433329602e-06,6.63327733856876e-07,-9.99994492503764e-10,5.02033433329602e-06 -250,-50,400,4.6350366546814e-06,6.586254124715e-07,-9.99994492503764e-10,5.0350366546814e-06 -250,-50,410,4.63951039768118e-06,6.54151669471715e-07,-9.99994492503764e-10,5.04951039768118e-06 -250,-50,420,4.64377181579654e-06,6.49890251356363e-07,-9.99994492503764e-10,5.06377181579654e-06 -250,-50,430,4.64783565879556e-06,6.45826408357336e-07,-9.99994492503764e-10,5.07783565879556e-06 -250,-50,440,4.65171534251394e-06,6.41946724638953e-07,-9.99994492503764e-10,5.09171534251394e-06 -250,-50,450,4.65542309617681e-06,6.38238970976086e-07,-9.99994492503764e-10,5.10542309617681e-06 -250,-50,460,4.65897009063557e-06,6.34691976517329e-07,-9.99994492503764e-10,5.11897009063557e-06 -250,-50,470,4.66236655034065e-06,6.31295516812251e-07,-9.99994492503764e-10,5.13236655034065e-06 -250,-50,480,4.66562185140492e-06,6.28040215747977e-07,-9.99994492503764e-10,5.14562185140492e-06 -250,-50,490,4.66874460773109e-06,6.2491745942181e-07,-9.99994492503764e-10,5.15874460773109e-06 -250,-50,500,4.67174274686296e-06,6.21919320289935e-07,-9.99994492503764e-10,5.17174274686296e-06 -250,-50,510,4.67462357696217e-06,6.19038490190732e-07,-9.99994492503764e-10,5.18462357696217e-06 -250,-50,520,4.67739384609755e-06,6.16268221055345e-07,-9.99994492503764e-10,5.19739384609755e-06 -250,-50,530,4.68005979485673e-06,6.13602272296164e-07,-9.99994492503764e-10,5.21005979485673e-06 -250,-50,540,4.68262720314042e-06,6.11034864012475e-07,-9.99994492503764e-10,5.22262720314042e-06 -250,-50,550,4.68510143187599e-06,6.08560635276912e-07,-9.99994492503764e-10,5.23510143187599e-06 -250,-50,560,4.68748746028193e-06,6.06174606870967e-07,-9.99994492503764e-10,5.24748746028193e-06 -250,-50,570,4.68978991922698e-06,6.03872147925924e-07,-9.99994492503764e-10,5.25978991922698e-06 -250,-50,580,4.69201312115273e-06,6.01648946000168e-07,-9.99994492503764e-10,5.27201312115273e-06 -250,-50,590,4.6941610869658e-06,5.99500980187101e-07,-9.99994492503764e-10,5.2841610869658e-06 -250,-50,600,4.69623757025123e-06,5.97424496901671e-07,-9.99994492503764e-10,5.29623757025123e-06 -250,-60,0,0,2.07503192832613e-07,-9.99993385958353e-10,0 -250,-60,10,4.74747346183935e-08,1.6002845821422e-07,-9.99993385958353e-10,5.74747346183935e-08 -250,-60,20,8.3544217805005e-08,1.23958975027608e-07,-9.99993385958353e-10,1.03544217805005e-07 -250,-60,30,1.0775316227543e-07,9.97500305571835e-08,-9.99993385958353e-10,1.3775316227543e-07 -250,-60,40,1.23905690769806e-07,8.35975020628071e-08,-9.99993385958353e-10,1.63905690769806e-07 -250,-60,50,1.35077118091394e-07,7.24260747412194e-08,-9.99993385958353e-10,1.85077118091394e-07 -250,-60,60,1.43135690395199e-07,6.4367502437414e-08,-9.99993385958353e-10,2.03135690395199e-07 -250,-60,70,1.49173465536019e-07,5.8329727296594e-08,-9.99993385958353e-10,2.19173465536019e-07 -250,-60,80,1.53844151382535e-07,5.36590414500783e-08,-9.99993385958353e-10,2.33844151382535e-07 -250,-60,90,1.57554479473387e-07,4.99487133592267e-08,-9.99993385958353e-10,2.47554479473387e-07 -250,-60,100,1.60567703123429e-07,4.69354897091843e-08,-9.99993385958353e-10,2.60567703123429e-07 -250,-60,110,1.63060493045232e-07,4.44426997873813e-08,-9.99993385958353e-10,2.73060493045232e-07 -250,-60,120,1.65155277517384e-07,4.23479153152297e-08,-9.99993385958353e-10,2.85155277517384e-07 -250,-60,130,1.66939312679814e-07,4.05638801527994e-08,-9.99993385958353e-10,2.96939312679814e-07 -250,-60,140,1.6847633326733e-07,3.90268595652837e-08,-9.99993385958353e-10,3.0847633326733e-07 -250,-60,150,1.6981390649569e-07,3.76892863369235e-08,-9.99993385958353e-10,3.1981390649569e-07 -250,-60,160,1.70988212843706e-07,3.65149799889079e-08,-9.99993385958353e-10,3.30988212843706e-07 -250,-60,170,1.72027237613534e-07,3.54759552190796e-08,-9.99993385958353e-10,3.42027237613534e-07 -250,-60,180,1.72952952910937e-07,3.45502399216762e-08,-9.99993385958353e-10,3.52952952910937e-07 -250,-60,190,1.73782841685739e-07,3.37203511468746e-08,-9.99993385958353e-10,3.63782841685739e-07 -250,-60,200,1.7453098296146e-07,3.29722098711537e-08,-9.99993385958353e-10,3.7453098296146e-07 -250,-60,210,1.7520883819752e-07,3.22943546350936e-08,-9.99993385958353e-10,3.8520883819752e-07 -250,-60,220,1.75825830179718e-07,3.1677362652895e-08,-9.99993385958353e-10,3.95825830179719e-07 -250,-60,230,1.76389775361737e-07,3.11134174708769e-08,-9.99993385958353e-10,4.06389775361737e-07 -250,-60,240,1.76907211034682e-07,3.05959817979311e-08,-9.99993385958353e-10,4.16907211034682e-07 -250,-60,250,1.7738364591324e-07,3.01195469193736e-08,-9.99993385958353e-10,4.2738364591324e-07 -250,-60,260,1.77823754205198e-07,2.9679438627415e-08,-9.99993385958353e-10,4.37823754205198e-07 -250,-60,270,1.78231527455913e-07,2.92716653767001e-08,-9.99993385958353e-10,4.48231527455913e-07 -250,-60,280,1.78610394483848e-07,2.88927983487653e-08,-9.99993385958353e-10,4.58610394483848e-07 -250,-60,290,1.78963316947049e-07,2.8539875885565e-08,-9.99993385958353e-10,4.68963316947049e-07 -250,-60,300,1.79292866115345e-07,2.82103267172685e-08,-9.99993385958353e-10,4.79292866115345e-07 -250,-60,310,1.79601285014751e-07,2.79019078178626e-08,-9.99993385958353e-10,4.89601285014751e-07 -250,-60,320,1.79890539089388e-07,2.76126537432258e-08,-9.99993385958353e-10,4.99890539089388e-07 -250,-60,330,1.80162357777782e-07,2.73408350548317e-08,-9.99993385958353e-10,5.10162357777782e-07 -250,-60,340,1.80418268846128e-07,2.70849239864857e-08,-9.99993385958353e-10,5.20418268846128e-07 -250,-60,350,1.8065962690676e-07,2.68435659258535e-08,-9.99993385958353e-10,5.3065962690676e-07 -250,-60,360,1.80887637237518e-07,2.66155555950953e-08,-9.99993385958353e-10,5.40887637237518e-07 -250,-60,370,1.81103375779924e-07,2.63998170526899e-08,-9.99993385958353e-10,5.51103375779924e-07 -250,-60,380,1.8130780601176e-07,2.61953868208534e-08,-9.99993385958353e-10,5.6130780601176e-07 -250,-60,390,1.81501793248799e-07,2.60013995838145e-08,-9.99993385958353e-10,5.71501793248799e-07 -250,-60,400,1.81686116820801e-07,2.58170760118122e-08,-9.99993385958353e-10,5.81686116820801e-07 -250,-60,410,1.81861480481079e-07,2.56417123515347e-08,-9.99993385958353e-10,5.91861480481079e-07 -250,-60,420,1.82028521341208e-07,2.54746714914056e-08,-9.99993385958353e-10,6.02028521341208e-07 -250,-60,430,1.82187817568805e-07,2.5315375263809e-08,-9.99993385958353e-10,6.12187817568805e-07 -250,-60,440,1.8233989504344e-07,2.51632977891737e-08,-9.99993385958353e-10,6.2233989504344e-07 -250,-60,450,1.82485233131425e-07,2.50179597011881e-08,-9.99993385958353e-10,6.32485233131425e-07 -250,-60,460,1.82624269712494e-07,2.48789231201191e-08,-9.99993385958353e-10,6.42624269712494e-07 -250,-60,470,1.82757405568956e-07,2.47457872636571e-08,-9.99993385958353e-10,6.52757405568956e-07 -250,-60,480,1.82885008229629e-07,2.46181846029849e-08,-9.99993385958353e-10,6.62885008229629e-07 -250,-60,490,1.83007415345893e-07,2.44957774867206e-08,-9.99993385958353e-10,6.73007415345893e-07 -250,-60,500,1.83124937664947e-07,2.43782551676665e-08,-9.99993385958353e-10,6.83124937664947e-07 -250,-60,510,1.83237861655185e-07,2.42653311774288e-08,-9.99993385958353e-10,6.93237861655185e-07 -250,-60,520,1.83346451830248e-07,2.41567410023654e-08,-9.99993385958353e-10,7.03346451830248e-07 -250,-60,530,1.83450952811316e-07,2.40522400212977e-08,-9.99993385958353e-10,7.13450952811316e-07 -250,-60,540,1.83551591161368e-07,2.39516016712459e-08,-9.99993385958353e-10,7.23551591161368e-07 -250,-60,550,1.8364857702029e-07,2.38546158123235e-08,-9.99993385958353e-10,7.3364857702029e-07 -250,-60,560,1.83742105565585e-07,2.37610872670288e-08,-9.99993385958353e-10,7.43742105565585e-07 -250,-60,570,1.83832358319992e-07,2.36708345126214e-08,-9.99993385958353e-10,7.53832358319992e-07 -250,-60,580,1.83919504324413e-07,2.35836885082007e-08,-9.99993385958353e-10,7.63919504324413e-07 -250,-60,590,1.84003701192035e-07,2.34994916405781e-08,-9.99993385958353e-10,7.74003701192035e-07 -250,-60,600,1.84085096057466e-07,2.34180967751476e-08,-9.99993385958353e-10,7.84085096057466e-07 -400,0,0,0,0.679838353865183,2.4382835194612e-30,0 -400,0,10,0.155540476233493,0.52429787763169,3.65171239030557e-39,0.155540486233493 -400,0,20,0.273714166669835,0.406124187195348,-3.65171237936754e-39,0.273714186669835 -400,0,30,0.353029423138509,0.326808930726674,-1.64070378794541e-47,0.353029453138509 -400,0,40,0.405949613100286,0.273888740764897,5.46901257187999e-48,0.405949653100286 -400,0,50,0.442550325874664,0.237288027990519,4.0953525157576e-56,0.442550375874664 -400,0,60,0.468952457112914,0.210885896752269,-8.19070485977906e-57,0.468952517112914 -400,0,70,0.488733893035465,0.191104460829718,-8.58680667843167e-65,0.488733963035466 -400,0,80,0.504036363006991,0.175801990858192,1.22668662425564e-65,0.504036443006991 -400,0,90,0.516192433027653,0.16364592083753,1.65344027914067e-73,0.516192523027653 -400,0,100,0.52606459440555,0.153773759459633,-1.83715576482612e-74,0.52606469440555 -400,0,110,0.534231669686832,0.145606684178351,-3.02657225418411e-82,0.534231779686832 -400,0,120,0.541094768070088,0.138743585795095,2.75142910770929e-83,0.541094888070088 -400,0,130,0.546939765014509,0.132898588850675,5.35690654890671e-91,0.546939895014509 -400,0,140,0.551975473293545,0.127862880571639,-4.12069691331547e-92,0.551975613293545 -400,0,150,0.556357736377448,0.123480617487735,-9.25708673056568e-100,0.556357886377448 -400,0,160,0.56020509160929,0.119633262255893,6.17139031571224e-101,0.56020525160929 -400,0,170,0.563609226646937,0.116229127218246,1.57124659632959e-108,0.563609396646937 -400,0,180,0.566642128239166,0.113196225626017,-9.24262545921235e-110,0.566642308239166 -400,0,190,0.569361075407403,0.110477278457781,-2.6300341248365e-117,0.569361265407403 -400,0,200,0.571812194960801,0.108026158904382,1.38422819652212e-118,0.571812394960801 -400,0,210,0.574033037838211,0.105805316026973,4.35350883813035e-126,0.574033247838211 -400,0,220,0.576054475714901,0.103783878150283,-2.07309892305382e-127,0.576054695714901 -400,0,230,0.577902117473949,0.101936236391234,-7.14102122713026e-135,0.577902347473949 -400,0,240,0.579597381104954,0.100240972760229,3.10479090790003e-136,0.579597621104954 -400,0,250,0.581158314694172,0.0986800391710106,1.16247828252341e-143,0.581158564694172 -400,0,260,0.582600232250443,0.0972381216147403,-4.64991150052341e-145,0.582600492250443 -400,0,270,0.583936211190005,0.0959021426751779,-1.88027319217195e-152,0.583936481190005 -400,0,280,0.585177485278798,0.0946608685863849,6.96397196286446e-154,0.585177765278798 -400,0,290,0.586333757734893,0.0935045961302897,3.02459714311403e-161,0.586334047734894 -400,0,300,0.587413452755649,0.0924249011095338,-1.04296404788728e-162,0.587413752755649 -400,0,310,0.588423919120098,0.0914144347450853,-4.84220957744239e-170,0.588424229120098 -400,0,320,0.589371596171547,0.0904667576936363,1.56200226604808e-171,0.589371916171547 -400,0,330,0.590262150033129,0.0895762038320544,7.71983781454779e-179,0.590262480033129 -400,0,340,0.591100586093149,0.088737767772034,-2.33934340255108e-180,0.591100926093149 -400,0,350,0.591891342439557,0.087947011425626,-1.22623759778336e-187,0.591891692439557 -400,0,360,0.592638367898833,0.0871999859663506,3.50353366395621e-189,0.592638727898833 -400,0,370,0.59334518755559,0.0864931663095927,1.94142516131204e-196,0.59334555755559 -400,0,380,0.594014958031865,0.085823395833318,-5.24709114854839e-198,0.594015338031865 -400,0,390,0.59465051434355,0.0851878395216337,-3.06475584646932e-205,0.59465090434355 -400,0,400,0.595254409792376,0.0845839440728072,7.85834189049905e-207,0.595254809792376 -400,0,410,0.595828950070544,0.0840094037946392,4.82533507399056e-214,0.595829360070544 -400,0,420,0.596376222533335,0.0834621313318485,-1.17690993256546e-215,0.596376642533335 -400,0,430,0.596898121419168,0.0829402324460152,-7.57921835019235e-223,0.596898551419168 -400,0,440,0.597396369656242,0.0824419842089415,1.76260717639191e-224,0.597396809656242 -400,0,450,0.597872537782338,0.0819658160828455,1.18790256424665e-231,0.597872987782338 -400,0,460,0.598328060413632,0.0815102934515516,-2.63978062695451e-233,0.598328520413631 -400,0,470,0.598764250624789,0.0810741032403939,-1.85814031413343e-240,0.598764720624789 -400,0,480,0.599182312542758,0.0806560413224253,3.9534853880281e-242,0.599182792542758 -400,0,490,0.59958335240767,0.0802550014575127,2.90127615722786e-249,0.59958384240767 -400,0,500,0.599968388314046,0.079869965551137,-5.92096421199582e-251,0.599968888314046 -400,0,510,0.600338358812269,0.0794999950529143,-4.52246802742357e-258,0.600338868812269 -400,0,520,0.60069413052283,0.0791442233423529,8.86757216704983e-260,0.60069465052283 -400,0,530,0.601036504892962,0.0788018489722214,7.03871754724518e-267,0.601037034892962 -400,0,540,0.601366224206197,0.0784721296589858,-1.32805794548559e-268,0.601366764206197 -400,0,550,0.601683976939435,0.0781543769257487,-1.0939379689506e-275,0.601684526939435 -400,0,560,0.601990402548624,0.0778479513165588,1.98897495591316e-277,0.601990962548624 -400,0,570,0.60228609575291,0.0775522581122734,1.69791990644622e-284,0.60228666575291 -400,0,580,0.602571610377444,0.077266743487739,-2.97880176463542e-286,0.602572190377444 -400,0,590,0.602847462807008,0.076990891058175,-2.63212610639224e-293,0.602848052807008 -400,0,600,0.603114135095622,0.0767242187695613,4.46122253749779e-295,0.603114735095622 -400,-10,0,0,0.442804001438546,-9.99998805539803e-10,0 -400,-10,10,0.101309296350035,0.341494705088511,-9.99998805539803e-10,0.101309306350035 -400,-10,20,0.178280215528786,0.264523785909759,-9.99998805539803e-10,0.178280235528786 -400,-10,30,0.229941191611959,0.212862809826586,-9.99998805539803e-10,0.229941221611959 -400,-10,40,0.264410079309652,0.178393922128894,-9.99998805539803e-10,0.264410119309652 -400,-10,50,0.288249484632775,0.15455451680577,-9.99998805539803e-10,0.288249534632775 -400,-10,60,0.305446174540508,0.137357826898038,-9.99998805539803e-10,0.305446234540508 -400,-10,70,0.318330559381265,0.12447344205728,-9.99998805539803e-10,0.318330629381265 -400,-10,80,0.328297627136063,0.114506374302483,-9.99998805539803e-10,0.328297707136063 -400,-10,90,0.336215327595758,0.106588673842788,-9.99998805539803e-10,0.336215417595758 -400,-10,100,0.342645433423307,0.100158568015239,-9.99998805539803e-10,0.342645533423307 -400,-10,110,0.347964953268047,0.0948390481704984,-9.99998805539803e-10,0.347965063268047 -400,-10,120,0.352435144467314,0.0903688569712319,-9.99998805539803e-10,0.352435264467314 -400,-10,130,0.356242208338704,0.0865617930998415,-9.99998805539803e-10,0.356242338338704 -400,-10,140,0.359522152406815,0.0832818490317306,-9.99998805539803e-10,0.359522292406815 -400,-10,150,0.362376483319269,0.080427518119277,-9.99998805539803e-10,0.362376633319269 -400,-10,160,0.364882408855728,0.077921592582818,-9.99998805539803e-10,0.364882568855728 -400,-10,170,0.367099648597407,0.0757043528411391,-9.99998805539803e-10,0.367099818597407 -400,-10,180,0.369075090190798,0.0737289112477475,-9.99998805539803e-10,0.369075270190798 -400,-10,190,0.370846041592628,0.0719579598459178,-9.99998805539803e-10,0.370846231592628 -400,-10,200,0.372442546909044,0.0703614545295017,-9.99998805539803e-10,0.372442746909044 -400,-10,210,0.373889064462948,0.0689149369755979,-9.99998805539803e-10,0.373889274462948 -400,-10,220,0.375205702124487,0.0675982993140586,-9.99998805539803e-10,0.375205922124487 -400,-10,230,0.376409139911543,0.0663948615270023,-9.99998805539803e-10,0.376409369911543 -400,-10,240,0.377513328157226,0.0652906732813194,-9.99998805539803e-10,0.377513568157226 -400,-10,250,0.37853002225128,0.0642739791872659,-9.99998805539803e-10,0.37853027225128 -400,-10,260,0.379469196777152,0.0633348046613939,-9.99998805539803e-10,0.379469456777152 -400,-10,270,0.380339369542358,0.062464631896188,-9.99998805539803e-10,0.380339639542358 -400,-10,280,0.38114785751641,0.0616561439221357,-9.99998805539803e-10,0.38114813751641 -400,-10,290,0.381900980766078,0.0609030206724673,-9.99998805539803e-10,0.381901270766078 -400,-10,300,0.382604226284378,0.0601997751541676,-9.99998805539803e-10,0.382604526284378 -400,-10,310,0.383262380604376,0.0595416208341694,-9.99998805539803e-10,0.383262690604376 -400,-10,320,0.383879637909833,0.0589243635287124,-9.99998805539803e-10,0.383879957909833 -400,-10,330,0.384459688757455,0.0583443126810911,-9.99998805539803e-10,0.384460018757455 -400,-10,340,0.385005793342782,0.0577982080957634,-9.99998805539803e-10,0.385006133342782 -400,-10,350,0.385520842357539,0.0572831590810062,-9.99998805539803e-10,0.385521192357539 -400,-10,360,0.38600740781926,0.0567965936192859,-9.99998805539803e-10,0.38600776781926 -400,-10,370,0.386467785746643,0.056336215691903,-9.99998805539803e-10,0.386468155746643 -400,-10,380,0.386904032165006,0.0558999692735395,-9.99998805539803e-10,0.386904412165006 -400,-10,390,0.387317993625629,0.0554860078129168,-9.99998805539803e-10,0.387318383625629 -400,-10,400,0.38771133318888,0.0550926682496654,-9.99998805539803e-10,0.38771173318888 -400,-10,410,0.388085552637833,0.0547184488007126,-9.99998805539803e-10,0.388085962637833 -400,-10,420,0.388442011544606,0.05436198989394,-9.99998805539803e-10,0.388442431544606 -400,-10,430,0.388781943697123,0.0540220577414226,-9.99998805539803e-10,0.388782373697123 -400,-10,440,0.389106471302592,0.0536975301359535,-9.99998805539803e-10,0.389106911302592 -400,-10,450,0.389416617310675,0.0533873841278708,-9.99998805539803e-10,0.389417067310675 -400,-10,460,0.389713316140236,0.0530906852983094,-9.99998805539803e-10,0.389713776140236 -400,-10,470,0.389997423045636,0.0528065783929093,-9.99998805539803e-10,0.389997893045636 -400,-10,480,0.390269722319534,0.0525342791190111,-9.99998805539803e-10,0.390270202319534 -400,-10,490,0.390530934497268,0.052273066941278,-9.99998805539803e-10,0.390531424497268 -400,-10,500,0.390781722701657,0.0520222787368889,-9.99998805539803e-10,0.390782222701657 -400,-10,510,0.391022698245469,0.0517813031930765,-9.99998805539803e-10,0.391023208245469 -400,-10,520,0.391254425590859,0.0515495758476868,-9.99998805539803e-10,0.391254945590859 -400,-10,530,0.391477426750211,0.0513265746883343,-9.99998805539803e-10,0.391477956750211 -400,-10,540,0.391692185200396,0.0511118162381495,-9.99998805539803e-10,0.391692725200396 -400,-10,550,0.391899149372019,0.0509048520665262,-9.99998805539803e-10,0.391899699372019 -400,-10,560,0.392098735766522,0.0507052656720236,-9.99998805539803e-10,0.392099295766522 -400,-10,570,0.392291331746598,0.0505126696919479,-9.99998805539803e-10,0.392291901746598 -400,-10,580,0.392477298039165,0.050326703399381,-9.99998805539803e-10,0.392477878039165 -400,-10,590,0.392656970984833,0.0501470304537124,-9.99998805539803e-10,0.392657560984833 -400,-10,600,0.392830664563313,0.0499733368752322,-9.99998805539803e-10,0.392831264563313 -400,-20,0,0,0.24162711262241,-9.99997784134621e-10,0 -400,-20,10,0.0552819592400732,0.186345153382337,-9.99997784134621e-10,0.0552819692400732 -400,-20,20,0.0972830723660477,0.144344040256362,-9.99997784134621e-10,0.0972830923660477 -400,-20,30,0.125473180056312,0.116153932566098,-9.99997784134621e-10,0.125473210056312 -400,-20,40,0.144281993397298,0.0973451192251114,-9.99997784134621e-10,0.144282033397298 -400,-20,50,0.15729056300405,0.0843365496183594,-9.99997784134621e-10,0.15729061300405 -400,-20,60,0.16667436828939,0.0749527443330203,-9.99997784134621e-10,0.16667442828939 -400,-20,70,0.173705056126162,0.0679220564962478,-9.99997784134621e-10,0.173705126126162 -400,-20,80,0.179143836704205,0.0624832759182047,-9.99997784134621e-10,0.179143916704205 -400,-20,90,0.183464328602359,0.0581627840200513,-9.99997784134621e-10,0.183464418602359 -400,-20,100,0.186973077168134,0.0546540354542756,-9.99997784134621e-10,0.186973177168134 -400,-20,110,0.189875806629581,0.0517513059928288,-9.99997784134621e-10,0.189875916629581 -400,-20,120,0.192315078607341,0.0493120340150691,-9.99997784134621e-10,0.192315198607341 -400,-20,130,0.194392498521851,0.0472346141005591,-9.99997784134621e-10,0.194392628521851 -400,-20,140,0.196182282291116,0.0454448303312934,-9.99997784134621e-10,0.196182422291116 -400,-20,150,0.197739819564051,0.043887293058359,-9.99997784134621e-10,0.197739969564051 -400,-20,160,0.199107240702646,0.0425198719197643,-9.99997784134621e-10,0.199107400702646 -400,-20,170,0.200317133194658,0.041309979427752,-9.99997784134621e-10,0.200317303194658 -400,-20,180,0.201395082460732,0.0402320301616777,-9.99997784134621e-10,0.201395262460732 -400,-20,190,0.202361446523452,0.039265666098958,-9.99997784134621e-10,0.202361636523452 -400,-20,200,0.203232619703095,0.0383944929193148,-9.99997784134621e-10,0.203232819703095 -400,-20,210,0.204021948297173,0.0376051643252372,-9.99997784134621e-10,0.204022158297173 -400,-20,220,0.204740404669505,0.0368867079529051,-9.99997784134621e-10,0.204740624669505 -400,-20,230,0.205397090690323,0.0362300219320868,-9.99997784134621e-10,0.205397320690323 -400,-20,240,0.20599961870888,0.0356274939135296,-9.99997784134621e-10,0.20599985870888 -400,-20,250,0.206554403348514,0.035072709273896,-9.99997784134621e-10,0.206554653348514 -400,-20,260,0.207066887490928,0.0345602251314814,-9.99997784134621e-10,0.207067147490928 -400,-20,270,0.207541719091493,0.0340853935309171,-9.99997784134621e-10,0.207541989091493 -400,-20,280,0.207982890838192,0.0336442217842175,-9.99997784134621e-10,0.207983170838192 -400,-20,290,0.20839385143402,0.0332332611883896,-9.99997784134621e-10,0.20839414143402 -400,-20,300,0.208777594994375,0.0328495176280347,-9.99997784134621e-10,0.208777894994375 -400,-20,310,0.209136733411111,0.0324903792112984,-9.99997784134621e-10,0.209137043411111 -400,-20,320,0.209473555345823,0.0321535572765866,-9.99997784134621e-10,0.209473875345823 -400,-20,330,0.209790074643367,0.0318370379790428,-9.99997784134621e-10,0.209790404643367 -400,-20,340,0.210088070311233,0.0315390423111764,-9.99997784134621e-10,0.210088410311233 -400,-20,350,0.210369119727884,0.0312579928945259,-9.99997784134621e-10,0.210369469727884 -400,-20,360,0.210634626379213,0.0309924862431964,-9.99997784134621e-10,0.210634986379213 -400,-20,370,0.210885843145429,0.030741269476981,-9.99997784134621e-10,0.210886213145429 -400,-20,380,0.211123891948327,0.0305032206740827,-9.99997784134621e-10,0.211124271948327 -400,-20,390,0.211349780404941,0.0302773322174692,-9.99997784134621e-10,0.211350170404941 -400,-20,400,0.211564416005883,0.0300626966165265,-9.99997784134621e-10,0.211564816005883 -400,-20,410,0.211768618236766,0.0298584943856436,-9.99997784134621e-10,0.211769028236766 -400,-20,420,0.211963128982225,0.0296639836401847,-9.99997784134621e-10,0.211963548982225 -400,-20,430,0.212148621489595,0.0294784911328147,-9.99997784134621e-10,0.212149051489595 -400,-20,440,0.212325708119393,0.0293014045030169,-9.99997784134621e-10,0.212326148119393 -400,-20,450,0.212494947069766,0.0291321655526439,-9.99997784134621e-10,0.212495397069766 -400,-20,460,0.212656848229811,0.0289702643925992,-9.99997784134621e-10,0.212657308229811 -400,-20,470,0.212811878290526,0.028815234331884,-9.99997784134621e-10,0.212812348290526 -400,-20,480,0.212960465220877,0.0286666474015324,-9.99997784134621e-10,0.212960945220877 -400,-20,490,0.213103002199049,0.0285241104233605,-9.99997784134621e-10,0.213103492199049 -400,-20,500,0.213239851074645,0.0283872615477644,-9.99997784134621e-10,0.213240351074645 -400,-20,510,0.213371345425814,0.0282557671965958,-9.99997784134621e-10,0.213371855425814 -400,-20,520,0.213497793265491,0.028129319356919,-9.99997784134621e-10,0.213498313265491 -400,-20,530,0.213619479442831,0.0280076331795793,-9.99997784134621e-10,0.213620009442831 -400,-20,540,0.213736667779117,0.0278904448432932,-9.99997784134621e-10,0.213737207779117 -400,-20,550,0.21384960297176,0.02777750965065,-9.99997784134621e-10,0.21385015297176 -400,-20,560,0.213958512295221,0.0276686003271893,-9.99997784134621e-10,0.213959072295221 -400,-20,570,0.214063607123671,0.0275635054987388,-9.99997784134621e-10,0.214064177123671 -400,-20,580,0.214165084296804,0.0274620283256056,-9.99997784134621e-10,0.214165664296804 -400,-20,590,0.214263127347312,0.0273639852750974,-9.99997784134621e-10,0.214263717347312 -400,-20,600,0.214357907606102,0.0272692050163083,-9.99997784134621e-10,0.214358507606102 -400,-30,0,0,0.0959764601248581,-9.99996691716798e-10,0 -400,-30,10,0.0219584909120701,0.074017969212788,-9.99996691716798e-10,0.0219585009120701 -400,-30,20,0.0386417104207771,0.057334749704081,-9.99996691716798e-10,0.0386417304207771 -400,-30,30,0.0498390744801578,0.0461373856447003,-9.99996691716798e-10,0.0498391044801578 -400,-30,40,0.0573101041341771,0.038666355990681,-9.99996691716798e-10,0.0573101441341771 -400,-30,50,0.0624772248624496,0.0334992352624085,-9.99996691716798e-10,0.0624772748624496 -400,-30,60,0.066204556634175,0.0297719034906831,-9.99996691716798e-10,0.066204616634175 -400,-30,70,0.0689972090128457,0.0269792511120124,-9.99996691716798e-10,0.0689972790128457 -400,-30,80,0.0711575415252493,0.0248189185996087,-9.99996691716798e-10,0.0711576215252493 -400,-30,90,0.0728736797263083,0.0231027803985497,-9.99996691716798e-10,0.0728737697263083 -400,-30,100,0.0742673861823283,0.0217090739425298,-9.99996691716798e-10,0.0742674861823283 -400,-30,110,0.0754203764050984,0.0205560837197597,-9.99996691716798e-10,0.0754204864050984 -400,-30,120,0.0763892771512368,0.0195871829736212,-9.99996691716798e-10,0.0763893971512368 -400,-30,130,0.0772144470066542,0.0187620131182038,-9.99996691716798e-10,0.0772145770066542 -400,-30,140,0.0779253652008036,0.0180510949240545,-9.99996691716798e-10,0.0779255052008036 -400,-30,150,0.0785440329999027,0.0174324271249554,-9.99996691716798e-10,0.0785441829999027 -400,-30,160,0.0790871849622709,0.0168892751625872,-9.99996691716798e-10,0.0790873449622709 -400,-30,170,0.0795677651308401,0.0164086949940179,-9.99996691716798e-10,0.0795679351308401 -400,-30,180,0.0799959362645724,0.0159805238602856,-9.99996691716798e-10,0.0799961162645724 -400,-30,190,0.0803797847529523,0.0155966753719057,-9.99996691716798e-10,0.0803799747529523 -400,-30,200,0.0807258225672954,0.0152506375575627,-9.99996691716798e-10,0.0807260225672954 -400,-30,210,0.0810393509768877,0.0149371091479704,-9.99996691716798e-10,0.0810395609768877 -400,-30,220,0.0813247283032242,0.0146517318216339,-9.99996691716798e-10,0.0813249483032241 -400,-30,230,0.08158556989094,0.0143908902339181,-9.99996691716798e-10,0.08158579989094 -400,-30,240,0.0818248994335544,0.0141515606913037,-9.99996691716798e-10,0.0818251394335544 -400,-30,250,0.0820452648770917,0.0139311952477663,-9.99996691716798e-10,0.0820455148770917 -400,-30,260,0.0822488281830686,0.0137276319417894,-9.99996691716798e-10,0.0822490881830686 -400,-30,270,0.082437435561119,0.0135390245637391,-9.99996691716798e-10,0.082437705561119 -400,-30,280,0.0826126729427844,0.0133637871820737,-9.99996691716798e-10,0.0826129529427844 -400,-30,290,0.0827759101838799,0.0132005499409781,-9.99996691716798e-10,0.0827762001838799 -400,-30,300,0.0829283365739437,0.0130481235509143,-9.99996691716798e-10,0.0829286365739437 -400,-30,310,0.0830709895798879,0.0129054705449702,-9.99996691716798e-10,0.0830712995798879 -400,-30,320,0.083204778278661,0.0127716818461971,-9.99996691716798e-10,0.083205098278661 -400,-30,330,0.0833305025875341,0.012645957537324,-9.99996691716798e-10,0.0833308325875341 -400,-30,340,0.0834488691442667,0.0125275909805913,-9.99996691716798e-10,0.0834492091442667 -400,-30,350,0.0835605044977563,0.0124159556271018,-9.99996691716798e-10,0.0835608544977563 -400,-30,360,0.0836659661252105,0.0123104939996476,-9.99996691716798e-10,0.0836663261252105 -400,-30,370,0.0837657516819044,0.0122107084429537,-9.99996691716798e-10,0.0837661216819044 -400,-30,380,0.0838603068052561,0.0121161533196019,-9.99996691716798e-10,0.0838606868052561 -400,-30,390,0.0839500317298043,0.0120264283950538,-9.99996691716798e-10,0.0839504217298043 -400,-30,400,0.0840352869189744,0.0119411732058837,-9.99996691716798e-10,0.0840356869189744 -400,-30,410,0.0841163978798141,0.0118600622450439,-9.99996691716798e-10,0.0841168078798141 -400,-30,420,0.0841936592955666,0.0117828008292915,-9.99996691716798e-10,0.0841940792955666 -400,-30,430,0.0842673385861224,0.0117091215387357,-9.99996691716798e-10,0.0842677685861224 -400,-30,440,0.0843376789865806,0.0116387811382774,-9.99996691716798e-10,0.0843381189865807 -400,-30,450,0.0844049022182609,0.0115715579065972,-9.99996691716798e-10,0.0844053522182609 -400,-30,460,0.0844692108136936,0.0115072493111645,-9.99996691716798e-10,0.0844696708136936 -400,-30,470,0.0845307901467365,0.0114456699781215,-9.99996691716798e-10,0.0845312601467365 -400,-30,480,0.0845898102105083,0.0113866499143497,-9.99996691716798e-10,0.0845902902105083 -400,-30,490,0.0846464271789162,0.0113300329459418,-9.99996691716798e-10,0.0846469171789162 -400,-30,500,0.084700784781874,0.011275675342984,-9.99996691716798e-10,0.084701284781874 -400,-30,510,0.0847530155196195,0.0112234446052385,-9.99996691716798e-10,0.0847535255196195 -400,-30,520,0.0848032417376581,0.0111732183871999,-9.99996691716798e-10,0.0848037617376581 -400,-30,530,0.0848515765806335,0.0111248835442246,-9.99996691716798e-10,0.0848521065806335 -400,-30,540,0.0848981248407298,0.0110783352841283,-9.99996691716798e-10,0.0848986648407298 -400,-30,550,0.0849429837139571,0.011033476410901,-9.99996691716798e-10,0.0849435337139571 -400,-30,560,0.0849862434757732,0.0109902166490849,-9.99996691716798e-10,0.0849868034757732 -400,-30,570,0.0850279880858984,0.0109484720389596,-9.99996691716798e-10,0.0850285580858984 -400,-30,580,0.0850682957308274,0.0109081643940307,-9.99996691716798e-10,0.0850688757308274 -400,-30,590,0.0851072393113945,0.0108692208134635,-9.99996691716798e-10,0.0851078293113945 -400,-30,600,0.0851448868817751,0.010831573243083,-9.99996691716798e-10,0.0851454868817751 -400,-40,0,0,0.0239008012589274,-9.99995592110281e-10,0 -400,-40,10,0.00546827343447126,0.0184325278244562,-9.99995592110281e-10,0.00546828343447125 -400,-40,20,0.00962285793694128,0.0142779433219862,-9.99995592110281e-10,0.00962287793694128 -400,-40,30,0.0124113122377037,0.0114894890212237,-9.99995592110281e-10,0.0124113422377037 -400,-40,40,0.0142718058913347,0.0096289953675927,-9.99995592110281e-10,0.0142718458913347 -400,-40,50,0.0155585623047997,0.00834223895412775,-9.99995592110281e-10,0.0155586123047997 -400,-40,60,0.0164867713238258,0.00741402993510162,-9.99995592110281e-10,0.0164868313238258 -400,-40,70,0.0171822192430453,0.00671858201588218,-9.99995592110281e-10,0.0171822892430453 -400,-40,80,0.0177202019730291,0.00618059928589831,-9.99995592110281e-10,0.0177202819730291 -400,-40,90,0.0181475679961457,0.00575323326278177,-9.99995592110281e-10,0.0181476579961457 -400,-40,100,0.0184946395694802,0.0054061616894472,-9.99995592110281e-10,0.0184947395694802 -400,-40,110,0.0187817661225128,0.00511903513641467,-9.99995592110281e-10,0.0187818761225128 -400,-40,120,0.0190230492886449,0.00487775197028252,-9.99995592110281e-10,0.0190231692886449 -400,-40,130,0.0192285394754421,0.00467226178348535,-9.99995592110281e-10,0.0192286694754421 -400,-40,140,0.0194055778288843,0.00449522343004311,-9.99995592110281e-10,0.0194057178288843 -400,-40,150,0.0195596432746439,0.0043411579842835,-9.99995592110281e-10,0.0195597932746439 -400,-40,160,0.0196949031820115,0.0042058980769159,-9.99995592110281e-10,0.0196950631820115 -400,-40,170,0.0198145809767855,0.00408622028214192,-9.99995592110281e-10,0.0198147509767855 -400,-40,180,0.0199212074678942,0.00397959379103325,-9.99995592110281e-10,0.0199213874678942 -400,-40,190,0.020016796390661,0.00388400486826642,-9.99995592110281e-10,0.020016986390661 -400,-40,200,0.020102969406606,0.0037978318523214,-9.99995592110281e-10,0.020103169406606 -400,-40,210,0.0201810466788554,0.00371975458007209,-9.99995592110281e-10,0.0201812566788554 -400,-40,220,0.0202521135503747,0.00364868770855277,-9.99995592110281e-10,0.0202523335503747 -400,-40,230,0.0203170703422791,0.00358373091664829,-9.99995592110281e-10,0.0203173003422791 -400,-40,240,0.0203766700381418,0.00352413122078562,-9.99995592110281e-10,0.0203769100381418 -400,-40,250,0.0204315471472107,0.0034692541117167,-9.99995592110281e-10,0.0204317971472107 -400,-40,260,0.0204822400578832,0.00341856120104428,-9.99995592110281e-10,0.0204825000578832 -400,-40,270,0.0205292085275775,0.0033715927313499,-9.99995592110281e-10,0.0205294785275775 -400,-40,280,0.0205728474972465,0.00332795376168097,-9.99995592110281e-10,0.0205731274972465 -400,-40,290,0.020613498098992,0.00328730315993545,-9.99995592110281e-10,0.020613788098992 -400,-40,300,0.0206514564989037,0.00324934476002373,-9.99995592110281e-10,0.0206517564989037 -400,-40,310,0.0206869810550253,0.00321382020390211,-9.99995592110281e-10,0.0206872910550253 -400,-40,320,0.0207202981527377,0.00318050310618976,-9.99995592110281e-10,0.0207206181527377 -400,-40,330,0.0207516069936335,0.00314919426529394,-9.99995592110281e-10,0.0207519369936335 -400,-40,340,0.0207810835501192,0.00311971770880822,-9.99995592110281e-10,0.0207814235501192 -400,-40,350,0.0208088838502527,0.0030919174086747,-9.99995592110281e-10,0.0208092338502527 -400,-40,360,0.0208351467213249,0.00306565453760249,-9.99995592110281e-10,0.0208355067213249 -400,-40,370,0.0208599960933058,0.0030408051656216,-9.99995592110281e-10,0.0208603660933058 -400,-40,380,0.0208835429422759,0.00301725831665151,-9.99995592110281e-10,0.0208839229422759 -400,-40,390,0.0209058869377391,0.00299491432118838,-9.99995592110281e-10,0.0209062769377391 -400,-40,400,0.0209271178450886,0.00297368341383884,-9.99995592110281e-10,0.0209275178450886 -400,-40,410,0.02094731672461,0.00295348453431745,-9.99995592110281e-10,0.02094772672461 -400,-40,420,0.0209665569606062,0.00293424429832124,-9.99995592110281e-10,0.0209669769606062 -400,-40,430,0.020984905148049,0.00291589611087839,-9.99995592110281e-10,0.020985335148049 -400,-40,440,0.0210024218592263,0.00289837939970109,-9.99995592110281e-10,0.0210028618592263 -400,-40,450,0.0210191623088979,0.00288163895002956,-9.99995592110281e-10,0.0210196123088979 -400,-40,460,0.0210351769332826,0.00286562432564481,-9.99995592110281e-10,0.0210356369332826 -400,-40,470,0.021050511895614,0.0028502893633134,-9.99995592110281e-10,0.021050981895614 -400,-40,480,0.0210652095288948,0.00283559173003265,-9.99995592110281e-10,0.0210656895288948 -400,-40,490,0.0210793087247605,0.00282149253416692,-9.99995592110281e-10,0.0210797987247605 -400,-40,500,0.0210928452759473,0.00280795598298014,-9.99995592110281e-10,0.0210933452759473 -400,-40,510,0.0211058521786903,0.00279494908023713,-9.99995592110281e-10,0.0211063621786903 -400,-40,520,0.0211183599004146,0.00278244135851279,-9.99995592110281e-10,0.0211188799004146 -400,-40,530,0.0211303966172756,0.00277040464165188,-9.99995592110281e-10,0.0211309266172756 -400,-40,540,0.0211419884254342,0.00275881283349327,-9.99995592110281e-10,0.0211425284254342 -400,-40,550,0.0211531595293935,0.00274764172953392,-9.99995592110281e-10,0.0211537095293935 -400,-40,560,0.0211639324102471,0.00273686884868032,-9.99995592110281e-10,0.0211644924102471 -400,-40,570,0.0211743279762946,0.00272647328263281,-9.99995592110281e-10,0.0211748979762946 -400,-40,580,0.0211843656981424,0.00271643556078508,-9.99995592110281e-10,0.0211849456981424 -400,-40,590,0.0211940637301206,0.00270673752880687,-9.99995592110281e-10,0.0211946537301206 -400,-40,600,0.0212034390196069,0.0026973622393205,-9.99995592110281e-10,0.0212040390196069 -400,-46,0,0,0.00844766144553905,-9.99994929570813e-10,0 -400,-46,10,0.00193274368359487,0.00651491776194418,-9.99994929570813e-10,0.00193275368359487 -400,-46,20,0.00340116823319614,0.00504649321234291,-9.99994929570813e-10,0.00340118823319614 -400,-46,30,0.00438673845044565,0.0040609229950934,-9.99994929570813e-10,0.00438676845044565 -400,-46,40,0.00504432395719004,0.00340333748834901,-9.99994929570813e-10,0.00504436395719004 -400,-46,50,0.00549912387900303,0.00294853756653602,-9.99994929570813e-10,0.00549917387900303 -400,-46,60,0.00582719637575666,0.00262046506978239,-9.99994929570813e-10,0.00582725637575666 -400,-46,70,0.00607300020931542,0.00237466123622363,-9.99994929570813e-10,0.00607307020931542 -400,-46,80,0.00626314847745153,0.00218451296808751,-9.99994929570813e-10,0.00626322847745153 -400,-46,90,0.00641419962580023,0.00203346181973882,-9.99994929570813e-10,0.00641428962580023 -400,-46,100,0.00653687095874585,0.00191079048679319,-9.99994929570813e-10,0.00653697095874585 -400,-46,110,0.00663835491678418,0.00180930652875487,-9.99994929570813e-10,0.00663846491678418 -400,-46,120,0.00672363567695245,0.00172402576858659,-9.99994929570813e-10,0.00672375567695245 -400,-46,130,0.00679626552352694,0.00165139592201211,-9.99994929570813e-10,0.00679639552352694 -400,-46,140,0.00685883916097757,0.00158882228456148,-9.99994929570813e-10,0.00685897916097757 -400,-46,150,0.0069132930979872,0.00153436834755185,-9.99994929570813e-10,0.0069134430979872 -400,-46,160,0.00696110027784773,0.00148656116769132,-9.99994929570813e-10,0.00696126027784773 -400,-46,170,0.00700340001005531,0.00144426143548373,-9.99994929570813e-10,0.00700357001005531 -400,-46,180,0.00704108680089775,0.0014065746446413,-9.99994929570813e-10,0.00704126680089775 -400,-46,190,0.00707487239865784,0.00137278904688121,-9.99994929570813e-10,0.00707506239865784 -400,-46,200,0.00710532997439173,0.00134233147114731,-9.99994929570813e-10,0.00710552997439173 -400,-46,210,0.00713292613551654,0.00131473531002251,-9.99994929570813e-10,0.00713313613551654 -400,-46,220,0.00715804449301782,0.00128961695252123,-9.99994929570813e-10,0.00715826449301782 -400,-46,230,0.00718100326250227,0.00126665818303677,-9.99994929570813e-10,0.00718123326250227 -400,-46,240,0.00720206858359551,0.00124559286194354,-9.99994929570813e-10,0.00720230858359551 -400,-46,250,0.00722146472155348,0.00122619672398557,-9.99994929570813e-10,0.00722171472155348 -400,-46,260,0.00723938196802611,0.00120827947751294,-9.99994929570813e-10,0.00723964196802611 -400,-46,270,0.00725598282279641,0.00119167862274264,-9.99994929570813e-10,0.00725625282279641 -400,-46,280,0.00727140687647568,0.00117625456906337,-9.99994929570813e-10,0.00727168687647568 -400,-46,290,0.00728577470110981,0.00116188674442923,-9.99994929570813e-10,0.00728606470110981 -400,-46,300,0.00729919097565202,0.00114847046988702,-9.99994929570813e-10,0.00729949097565202 -400,-46,310,0.00731174701592312,0.00113591442961593,-9.99994929570813e-10,0.00731205701592312 -400,-46,320,0.00732352283710889,0.00112413860843016,-9.99994929570813e-10,0.00732384283710889 -400,-46,330,0.00733458884637255,0.0011130725991665,-9.99994929570813e-10,0.00733491884637255 -400,-46,340,0.00734500724059599,0.00110265420494306,-9.99994929570813e-10,0.00734534724059599 -400,-46,350,0.00735483316739519,0.00109282827814386,-9.99994929570813e-10,0.00735518316739519 -400,-46,360,0.00736411569483025,0.0010835457507088,-9.99994929570813e-10,0.00736447569483025 -400,-46,370,0.00737289862555105,0.001074762819988,-9.99994929570813e-10,0.00737326862555105 -400,-46,380,0.00738122118369685,0.0010664402618422,-9.99994929570813e-10,0.00738160118369685 -400,-46,390,0.00738911859713367,0.00105854284840538,-9.99994929570813e-10,0.00738950859713367 -400,-46,400,0.00739662259315152,0.00105103885238752,-9.99994929570813e-10,0.00739702259315152 -400,-46,410,0.00740376182224796,0.00104389962329108,-9.99994929570813e-10,0.00740417182224796 -400,-46,420,0.00741056222186919,0.00103709922366985,-9.99994929570813e-10,0.00741098222186919 -400,-46,430,0.00741704732979412,0.00103061411574492,-9.99994929570813e-10,0.00741747732979412 -400,-46,440,0.00742323855510335,0.00102442289043569,-9.99994929570813e-10,0.00742367855510335 -400,-46,450,0.0074291554132764,0.00101850603226265,-9.99994929570813e-10,0.0074296054132764 -400,-46,460,0.00743481573083288,0.00101284571470617,-9.99994929570813e-10,0.00743527573083288 -400,-46,470,0.0074402358240194,0.00100742562151965,-9.99994929570813e-10,0.0074407058240194 -400,-46,480,0.00744543065529979,0.00100223079023925,-9.99994929570813e-10,0.00744591065529979 -400,-46,490,0.00745041397079779,0.000997247474741261,-9.99994929570813e-10,0.00745090397079779 -400,-46,500,0.00745519842134099,0.000992463024198063,-9.99994929570813e-10,0.00745569842134099 -400,-46,510,0.00745979566934274,0.000987865776196308,-9.99994929570813e-10,0.00746030566934274 -400,-46,520,0.00746421648341661,0.000983444962122439,-9.99994929570813e-10,0.00746473648341661 -400,-46,530,0.00746847082233417,0.000979190623204876,-9.99994929570813e-10,0.00746900082233417 -400,-46,540,0.00747256790969977,0.000975093535839277,-9.99994929570813e-10,0.00747310790969977 -400,-46,550,0.00747651630051726,0.000971145145021784,-9.99994929570813e-10,0.00747706630051726 -400,-46,560,0.00748032394065696,0.000967337504882091,-9.99994929570813e-10,0.00748088394065696 -400,-46,570,0.00748399822009022,0.000963663225448829,-9.99994929570813e-10,0.00748456822009022 -400,-46,580,0.00748754602064031,0.000960115424898736,-9.99994929570813e-10,0.00748812602064031 -400,-46,590,0.00749097375889697,0.00095668768664208,-9.99994929570813e-10,0.00749156375889697 -400,-46,600,0.00749428742485639,0.000953374020682654,-9.99994929570813e-10,0.00749488742485639 -400,-50,0,0,0.00400004553037012,-9.99994492503764e-10,0 -400,-50,10,0.0009151719422891,0.00308487358808102,-9.99994492503764e-10,0.0009151819422891 -400,-50,20,0.00161048449644219,0.00238956103392793,-9.99994492503764e-10,0.00161050449644219 -400,-50,30,0.00207716107525521,0.00192288445511491,-9.99994492503764e-10,0.00207719107525521 -400,-50,40,0.00238853387162574,0.00161151165874437,-9.99994492503764e-10,0.00238857387162574 -400,-50,50,0.00260388582508517,0.00139615970528495,-9.99994492503764e-10,0.00260393582508517 -400,-50,60,0.00275923117512518,0.00124081435524494,-9.99994492503764e-10,0.00275929117512518 -400,-50,70,0.00287562155512718,0.00112442397524294,-9.99994492503764e-10,0.00287569155512718 -400,-50,80,0.00296565851209675,0.00103438701827337,-9.99994492503764e-10,0.00296573851209675 -400,-50,90,0.00303718262261003,0.000962862907760091,-9.99994492503764e-10,0.00303727262261003 -400,-50,100,0.00309526862904117,0.000904776901328949,-9.99994492503764e-10,0.00309536862904117 -400,-50,110,0.00314332221823535,0.000856723312134766,-9.99994492503764e-10,0.00314343221823535 -400,-50,120,0.00318370344394342,0.000816342086426697,-9.99994492503764e-10,0.00318382344394342 -400,-50,130,0.00321809434550058,0.000781951184869538,-9.99994492503764e-10,0.00321822434550058 -400,-50,140,0.00324772353938069,0.00075232199098943,-9.99994492503764e-10,0.00324786353938069 -400,-50,150,0.00327350798028787,0.000726537550082244,-9.99994492503764e-10,0.00327365798028787 -400,-50,160,0.00329614512044241,0.000703900409927709,-9.99994492503764e-10,0.00329630512044241 -400,-50,170,0.0033161744333882,0.000683871096981918,-9.99994492503764e-10,0.0033163444333882 -400,-50,180,0.00333401947609441,0.000666026054275703,-9.99994492503764e-10,0.00333419947609441 -400,-50,190,0.00335001726793093,0.000650028262439185,-9.99994492503764e-10,0.00335020726793093 -400,-50,200,0.00336443921067399,0.000635606319696129,-9.99994492503764e-10,0.00336463921067399 -400,-50,210,0.00337750624723485,0.000622539283135265,-9.99994492503764e-10,0.00337771624723485 -400,-50,220,0.00338940002094974,0.000610645509420376,-9.99994492503764e-10,0.00338962002094974 -400,-50,230,0.00340027120984043,0.000599774320529683,-9.99994492503764e-10,0.00340050120984043 -400,-50,240,0.00341024583347184,0.000589799696898274,-9.99994492503764e-10,0.00341048583347184 -400,-50,250,0.00341943008350902,0.000580615446861102,-9.99994492503764e-10,0.00341968008350902 -400,-50,260,0.00342791406480152,0.000572131465568594,-9.99994492503764e-10,0.00342817406480152 -400,-50,270,0.00343577472249387,0.000564270807876244,-9.99994492503764e-10,0.00343604472249387 -400,-50,280,0.0034430781540267,0.000556967376343422,-9.99994492503764e-10,0.0034433581540267 -400,-50,290,0.00344988145137466,0.00055016407899546,-9.99994492503764e-10,0.00345017145137466 -400,-50,300,0.0034562341809866,0.000543811349383512,-9.99994492503764e-10,0.0034565341809866 -400,-50,310,0.00346217958174507,0.00053786594862505,-9.99994492503764e-10,0.00346248958174507 -400,-50,320,0.00346775554157777,0.000532289988792348,-9.99994492503764e-10,0.00346807554157777 -400,-50,330,0.00347299539892521,0.000527050131444904,-9.99994492503764e-10,0.00347332539892521 -400,-50,340,0.00347792860458406,0.000522116925786061,-9.99994492503764e-10,0.00347826860458406 -400,-50,350,0.00348258127145858,0.000517464258911535,-9.99994492503764e-10,0.00348293127145858 -400,-50,360,0.00348697663372736,0.000513068896642757,-9.99994492503764e-10,0.00348733663372736 -400,-50,370,0.00349113543234871,0.000508910098021412,-9.99994492503764e-10,0.00349150543234871 -400,-50,380,0.00349507624031396,0.000504969290056159,-9.99994492503764e-10,0.00349545624031396 -400,-50,390,0.00349881573834227,0.000501229792027844,-9.99994492503764e-10,0.00349920573834227 -400,-50,400,0.00350236894959779,0.000497676580772322,-9.99994492503764e-10,0.00350276894959779 -400,-50,410,0.0035057494403551,0.000494296090015016,-9.99994492503764e-10,0.0035061594403551 -400,-50,420,0.00350896949223396,0.000491076038136162,-9.99994492503764e-10,0.00350938949223396 -400,-50,430,0.00351204025058955,0.000488005279780571,-9.99994492503764e-10,0.00351247025058955 -400,-50,440,0.0035149718528188,0.000485073677551321,-9.99994492503764e-10,0.0035154118528188 -400,-50,450,0.00351777353968107,0.000482271990689045,-9.99994492503764e-10,0.00351822353968107 -400,-50,460,0.00352045375219767,0.000479591778172452,-9.99994492503764e-10,0.00352091375219766 -400,-50,470,0.00352302021626168,0.000477025314108439,-9.99994492503764e-10,0.00352349021626168 -400,-50,480,0.0035254800167376,0.000474565513632516,-9.99994492503764e-10,0.0035259600167376 -400,-50,490,0.00352783966254167,0.000472205867828446,-9.99994492503764e-10,0.00352832966254167 -400,-50,500,0.00353010514395732,0.000469940386412792,-9.99994492503764e-10,0.00353060514395732 -400,-50,510,0.00353228198324474,0.000467763547125379,-9.99994492503764e-10,0.00353279198324474 -400,-50,520,0.00353437527944165,0.000465670250928463,-9.99994492503764e-10,0.00353489527944165 -400,-50,530,0.00353638974811817,0.000463655782251944,-9.99994492503764e-10,0.00353691974811817 -400,-50,540,0.00353832975673594,0.00046171577363418,-9.99994492503764e-10,0.00353886975673594 -400,-50,550,0.0035401993561681,0.000459846174202019,-9.99994492503764e-10,0.0035407493561681 -400,-50,560,0.00354200230885746,0.000458043221512659,-9.99994492503764e-10,0.00354256230885746 -400,-50,570,0.00354374211402355,0.000456303416346566,-9.99994492503764e-10,0.00354431211402355 -400,-50,580,0.0035454220302731,0.000454623500097018,-9.99994492503764e-10,0.0035460020302731 -400,-50,590,0.00354704509592046,0.000453000434449654,-9.99994492503764e-10,0.00354763509592046 -400,-50,600,0.00354861414728404,0.000451431383086079,-9.99994492503764e-10,0.00354921414728404 -400,-60,0,0,0.000562694613951249,-9.99993385958353e-10,0 -400,-60,10,0.000128739115306453,0.000433955498644796,-9.99993385958353e-10,0.000128749115306453 -400,-60,20,0.000226550159271852,0.000336144454679397,-9.99993385958353e-10,0.000226570159271852 -400,-60,30,0.00029219851136223,0.000270496102589019,-9.99993385958353e-10,0.00029222851136223 -400,-60,40,0.00033599996165033,0.00022669465230092,-9.99993385958353e-10,0.00033603996165033 -400,-60,50,0.000366293962904932,0.000196400651046317,-9.99993385958353e-10,0.000366343962904932 -400,-60,60,0.000388146712106463,0.000174547901844786,-9.99993385958353e-10,0.000388206712106463 -400,-60,70,0.000404519585726431,0.000158175028224819,-9.99993385958353e-10,0.000404589585726431 -400,-60,80,0.00041718526924395,0.000145509344707299,-9.99993385958353e-10,0.00041726526924395 -400,-60,90,0.000427246712657008,0.000135447901294241,-9.99993385958353e-10,0.000427336712657008 -400,-60,100,0.000435417790390145,0.000127276823561104,-9.99993385958353e-10,0.000435517790390145 -400,-60,110,0.000442177587401279,0.000120517026549971,-9.99993385958353e-10,0.000442287587401279 -400,-60,120,0.000447858097295019,0.00011483651665623,-9.99993385958353e-10,0.000447978097295019 -400,-60,130,0.000452695935996658,0.000109998677954592,-9.99993385958353e-10,0.000452825935996658 -400,-60,140,0.000456863935507031,0.000105830678444218,-9.99993385958353e-10,0.000457003935507031 -400,-60,150,0.000460491085726213,0.000102203528225037,-9.99993385958353e-10,0.000460641085726213 -400,-60,160,0.000463675498689391,9.9019115261858e-05,-9.99993385958353e-10,0.000463835498689391 -400,-60,170,0.000466493063247137,9.62015507041121e-05,-9.99993385958353e-10,0.000466663063247137 -400,-60,180,0.000469003362027558,9.3691251923691e-05,-9.99993385958353e-10,0.000469183362027558 -400,-60,190,0.000471253804237072,9.14408097141771e-05,-9.99993385958353e-10,0.000471443804237072 -400,-60,200,0.000473282568520533,8.94120454307166e-05,-9.99993385958353e-10,0.000473482568520533 -400,-60,210,0.000475120735370704,8.75738785805452e-05,-9.99993385958353e-10,0.000475330735370704 -400,-60,220,0.000476793856928474,8.59007570227754e-05,-9.99993385958353e-10,0.000477013856928474 -400,-60,230,0.000478323129380399,8.43714845708507e-05,-9.99993385958353e-10,0.000478553129380399 -400,-60,240,0.000479726280157301,8.29683337939482e-05,-9.99993385958353e-10,0.000479966280157301 -400,-60,250,0.000481018247458639,8.16763664926109e-05,-9.99993385958353e-10,0.000481268247458639 -400,-60,260,0.00048221170651852,8.04829074327298e-05,-9.99993385958353e-10,0.00048247170651852 -400,-60,270,0.000483317481368335,7.93771325829143e-05,-9.99993385958353e-10,0.000483587481368335 -400,-60,280,0.000484344870070708,7.83497438805411e-05,-9.99993385958353e-10,0.000484624870070708 -400,-60,290,0.000485301903870884,7.73927100803652e-05,-9.99993385958353e-10,0.000485591903870884 -400,-60,300,0.000486195555382946,7.64990585683033e-05,-9.99993385958353e-10,0.000486495555382946 -400,-60,310,0.000487031907109237,7.56627068420121e-05,-9.99993385958353e-10,0.000487341907109237 -400,-60,320,0.000487816288822307,7.4878325128942e-05,-9.99993385958353e-10,0.000488136288822307 -400,-60,330,0.000488553390309001,7.4141223642248e-05,-9.99993385958353e-10,0.000488883390309001 -400,-60,340,0.000489247354473326,7.34472594779232e-05,-9.99993385958353e-10,0.000489587354473326 -400,-60,350,0.000489901854671118,7.27927592801309e-05,-9.99993385958353e-10,0.000490251854671118 -400,-60,360,0.00049052015930196,7.21744546492891e-05,-9.99993385958353e-10,0.00049088015930196 -400,-60,370,0.000491105186039024,7.15894279122253e-05,-9.99993385958353e-10,0.000491475186039024 -400,-60,380,0.000491659547583118,7.10350663681309e-05,-9.99993385958353e-10,0.000492039547583118 -400,-60,390,0.000492185590445241,7.0509023506009e-05,-9.99993385958353e-10,0.000492575590445241 -400,-60,400,0.000492685427964722,7.00091859865275e-05,-9.99993385958353e-10,0.000493085427964722 -400,-60,410,0.000493160968537249,6.9533645414e-05,-9.99993385958353e-10,0.000493570968537249 -400,-60,420,0.00049361393984348,6.90806741077691e-05,-9.99993385958353e-10,0.00049403393984348 -400,-60,430,0.000494045909723402,6.86487042278471e-05,-9.99993385958353e-10,0.000494475909723402 -400,-60,440,0.000494458304225445,6.8236309725804e-05,-9.99993385958353e-10,0.000494898304225445 -400,-60,450,0.000494852423266194,6.78421906850553e-05,-9.99993385958353e-10,0.000495302423266194 -400,-60,460,0.000495229454261437,6.74651596898126e-05,-9.99993385958353e-10,0.000495689454261437 -400,-60,470,0.000495590484028412,6.71041299228374e-05,-9.99993385958353e-10,0.000496060484028412 -400,-60,480,0.000495936509209547,6.67581047417019e-05,-9.99993385958353e-10,0.000496416509209547 -400,-60,490,0.000496268445427449,6.64261685238009e-05,-9.99993385958353e-10,0.000496758445427449 -400,-60,500,0.00049658713534758,6.61074786036697e-05,-9.99993385958353e-10,0.00049708713534758 -400,-60,510,0.000496893355797613,6.5801258153636e-05,-9.99993385958353e-10,0.000497403355797613 -400,-60,520,0.000497187824069653,6.55067898815961e-05,-9.99993385958353e-10,0.000497707824069653 -400,-60,530,0.000497471203512623,6.52234104386261e-05,-9.99993385958353e-10,0.000498001203512623 -400,-60,540,0.000497744108506316,6.49505054449338e-05,-9.99993385958353e-10,0.000498284108506316 -400,-60,550,0.00049800710889537,6.46875050558792e-05,-9.99993385958353e-10,0.00049855710889537 -400,-60,560,0.000498260733950337,6.44338800009119e-05,-9.99993385958353e-10,0.000498820733950337 -400,-60,570,0.000498505475913611,6.41891380376387e-05,-9.99993385958353e-10,0.000499075475913611 -400,-60,580,0.000498741793180085,6.39528207711644e-05,-9.99993385958353e-10,0.000499321793180085 -400,-60,590,0.000498970113155677,6.37245007955724e-05,-9.99993385958353e-10,0.000499560113155677 -400,-60,600,0.000499190834831116,6.35037791201331e-05,-9.99993385958353e-10,0.000499790834831116 -490,0,0,0,0.894106767165948,2.4382835194612e-30,0 -490,0,10,0.204563028222675,0.689543738943273,3.65171239030557e-39,0.204563038222675 -490,0,20,0.359982174140795,0.534124593025153,-3.65171237936754e-39,0.359982194140795 -490,0,30,0.46429565858155,0.429811108584399,-1.64070378794541e-47,0.46429568858155 -490,0,40,0.533894997447206,0.360211769718742,5.46901257187999e-48,0.533895037447206 -490,0,50,0.582031359258234,0.312075407907715,4.0953525157576e-56,0.582031409258234 -490,0,60,0.616754796195133,0.277351970970816,-8.19070485977906e-57,0.616754856195133 -490,0,70,0.642770856663119,0.251335910502829,-8.58680667843167e-65,0.642770926663119 -490,0,80,0.662896290713884,0.231210476452064,1.22668662425564e-65,0.662896370713884 -490,0,90,0.678883656542575,0.215223110623374,1.65344027914067e-73,0.678883746542575 -490,0,100,0.691867281612193,0.202239485553755,-1.83715576482612e-74,0.691867381612193 -490,0,110,0.702608419171484,0.191498347994464,-3.02657225418411e-82,0.702608529171484 -490,0,120,0.711634598223176,0.182472168942773,2.75142910770929e-83,0.711634718223176 -490,0,130,0.719321795175743,0.174784971990205,5.35690654890671e-91,0.719321925175743 -490,0,140,0.72594463547912,0.168162131686828,-4.12069691331547e-92,0.72594477547912 -490,0,150,0.731708080651848,0.1623986865141,-9.25708673056568e-100,0.731708230651848 -490,0,160,0.736768028106892,0.157338739059057,6.17139031571224e-101,0.736768188106892 -490,0,170,0.741245063208255,0.152861703957694,1.57124659632959e-108,0.741245233208255 -490,0,180,0.745233861166391,0.148872905999558,-9.24262545921235e-110,0.745234041166391 -490,0,190,0.748809753948646,0.145297013217302,-2.6300341248365e-117,0.748809943948646 -490,0,200,0.752033406405685,0.142073360760263,1.38422819652212e-118,0.752033606405685 -490,0,210,0.754954204613398,0.139152562552551,4.35350883813035e-126,0.754954414613398 -490,0,220,0.757612750243662,0.136494016922287,-2.07309892305382e-127,0.757612970243662 -490,0,230,0.760042723472843,0.134064043693105,-7.14102122713026e-135,0.760042953472843 -490,0,240,0.762272292716759,0.131834474449189,3.10479090790003e-136,0.762272532716759 -490,0,250,0.764325194376811,0.129781572789137,1.16247828252341e-143,0.764325444376811 -490,0,260,0.766221569062686,0.127885198103262,-4.64991150052341e-145,0.766221829062686 -490,0,270,0.767978615872214,0.126128151293734,-1.88027319217195e-152,0.767978885872214 -490,0,280,0.769611109179466,0.124495657986483,6.96397196286446e-154,0.769611389179466 -490,0,290,0.771131810419407,0.122974956746542,3.02459714311403e-161,0.771132100419407 -490,0,300,0.772551798890261,0.121554968275687,-1.04296404788728e-162,0.772552098890261 -490,0,310,0.773880739526385,0.120226027639563,-4.84220957744239e-170,0.773881049526385 -490,0,320,0.775127101194524,0.118979665971424,1.56200226604808e-171,0.775127421194524 -490,0,330,0.776298335841171,0.117808431324777,7.71983781454779e-179,0.776298665841171 -490,0,340,0.777401026430541,0.116705740735407,-2.33934340255108e-180,0.777401366430541 -490,0,350,0.778441009827305,0.115665757338644,-1.22623759778336e-187,0.778441359827305 -490,0,360,0.779423479431419,0.11468328773453,3.50353366395621e-189,0.779423839431419 -490,0,370,0.780353071347909,0.113753695818039,1.94142516131204e-196,0.780353441347909 -490,0,380,0.781233937088832,0.112872830077117,-5.24709114854839e-198,0.781234317088832 -490,0,390,0.782069805197716,0.112036961968233,-3.06475584646932e-205,0.782070195197716 -490,0,400,0.782864033714519,0.111242733451429,7.85834189049905e-207,0.782864433714519 -490,0,410,0.783619655029202,0.110487112136746,4.82533507399056e-214,0.783620065029202 -490,0,420,0.784339414380352,0.109767352785597,-1.17690993256546e-215,0.784339834380352 -490,0,430,0.785025803023986,0.109080964141963,-7.57921835019235e-223,0.785026233023986 -490,0,440,0.785681086913109,0.108425680252839,1.76260717639191e-224,0.785681526913109 -490,0,450,0.786307331580581,0.107799435585367,1.18790256424665e-231,0.786307781580581 -490,0,460,0.786906423798491,0.107200343367457,-2.63978062695451e-233,0.786906883798491 -490,0,470,0.787480090490507,0.106626676675441,-1.85814031413343e-240,0.787480560490507 -490,0,480,0.788029915294926,0.106076851871023,3.9534853880281e-242,0.788030395294926 -490,0,490,0.788557353111699,0.105549414054249,2.90127615722786e-249,0.7885578431117 -490,0,500,0.789063742913827,0.105043024252122,-5.92096421199582e-251,0.789064242913827 -490,0,510,0.789550319059806,0.104556448106142,-4.52246802742357e-258,0.789550829059806 -490,0,520,0.790018221307702,0.104088545858246,8.86757216704983e-260,0.790018741307702 -490,0,530,0.790468503701301,0.103638263464648,7.03871754724518e-267,0.790469033701301 -490,0,540,0.790902142473743,0.103204624692205,-1.32805794548559e-268,0.790902682473743 -490,0,550,0.791320043092997,0.102786724072952,-1.0939379689506e-275,0.791320593092997 -490,0,560,0.791723046555882,0.102383720610067,1.98897495591316e-277,0.791723606555882 -490,0,570,0.792111935022461,0.101994832143487,1.69791990644622e-284,0.792112505022461 -490,0,580,0.792487436870025,0.101619330295923,-2.97880176463542e-286,0.792488016870025 -490,0,590,0.7928502312352,0.101256535930748,-2.63212610639224e-293,0.7928508212352 -490,0,600,0.793200952103638,0.10090581506231,4.46122253749779e-295,0.793201552103638 -490,-10,0,0,0.636609224341313,-9.99998805539803e-10,0 -490,-10,10,0.145650067204532,0.490959157136781,-9.99998805539803e-10,0.145650077204532 -490,-10,20,0.256309404057935,0.380299820283378,-9.99998805539803e-10,0.256309424057935 -490,-10,30,0.330581212366308,0.306028011975005,-9.99998805539803e-10,0.330581242366308 -490,-10,40,0.380136346895013,0.256472877446301,-9.99998805539803e-10,0.380136386895013 -490,-10,50,0.414409716788257,0.222199507553057,-9.99998805539803e-10,0.414409766788257 -490,-10,60,0.439133006071628,0.197476218269685,-9.99998805539803e-10,0.439133066071628 -490,-10,70,0.457656592608657,0.178952631732656,-9.99998805539803e-10,0.457656662608657 -490,-10,80,0.471986018837249,0.164623205504064,-9.99998805539803e-10,0.471986098837249 -490,-10,90,0.483369116396978,0.153240107944335,-9.99998805539803e-10,0.483369206396978 -490,-10,100,0.492613533046353,0.14399569129496,-9.99998805539803e-10,0.492613633046353 -490,-10,110,0.500261285531034,0.136347938810279,-9.99998805539803e-10,0.500261395531034 -490,-10,120,0.506687977572609,0.129921246768704,-9.99998805539803e-10,0.506688097572609 -490,-10,130,0.51216130656311,0.124447917778203,-9.99998805539803e-10,0.51216143656311 -490,-10,140,0.516876807421954,0.119732416919359,-9.99998805539803e-10,0.516876947421954 -490,-10,150,0.520980413943773,0.115628810397541,-9.99998805539803e-10,0.520980563943773 -490,-10,160,0.524583125994341,0.112026098346973,-9.99998805539803e-10,0.524583285994341 -490,-10,170,0.527770801054962,0.108838423286352,-9.99998805539803e-10,0.527770971054962 -490,-10,180,0.530610848426745,0.105998375914568,-9.99998805539803e-10,0.530611028426745 -490,-10,190,0.533156904909076,0.103452319432237,-9.99998805539803e-10,0.533157094909076 -490,-10,200,0.535452164228863,0.101157060112451,-9.99998805539803e-10,0.535452364228863 -490,-10,210,0.537531789559698,0.0990774347816155,-9.99998805539803e-10,0.537531999559698 -490,-10,220,0.53942468952837,0.0971845348129429,-9.99998805539803e-10,0.53942490952837 -490,-10,230,0.541154844616563,0.0954543797247503,-9.99998805539803e-10,0.541155074616563 -490,-10,240,0.542742310900353,0.0938669134409604,-9.99998805539803e-10,0.542742550900353 -490,-10,250,0.544203988835749,0.0924052355055644,-9.99998805539803e-10,0.544204238835749 -490,-10,260,0.54555421865412,0.0910550056871929,-9.99998805539803e-10,0.54555447865412 -490,-10,270,0.546805246213268,0.0898039781280449,-9.99998805539803e-10,0.546805516213268 -490,-10,280,0.547967590953557,0.0886416333877566,-9.99998805539803e-10,0.547967870953557 -490,-10,290,0.549050339090988,0.0875588852503251,-9.99998805539803e-10,0.549050629090988 -490,-10,300,0.550061379150409,0.086547845190904,-9.99998805539803e-10,0.550061679150409 -490,-10,310,0.551007592621357,0.0856016317199558,-9.99998805539803e-10,0.551007902621357 -490,-10,320,0.551895009386268,0.0847142149550454,-9.99998805539803e-10,0.551895329386268 -490,-10,330,0.552728935274433,0.0838802890668801,-9.99998805539803e-10,0.552729265274433 -490,-10,340,0.553514057394706,0.0830951669466074,-9.99998805539803e-10,0.553514397394706 -490,-10,350,0.554254531628717,0.0823546927125962,-9.99998805539803e-10,0.554254881628717 -490,-10,360,0.554954055707476,0.0816551686338372,-9.99998805539803e-10,0.554954415707476 -490,-10,370,0.555615930564756,0.0809932937765575,-9.99998805539803e-10,0.555616300564756 -490,-10,380,0.556243112101313,0.0803661122399999,-9.99998805539803e-10,0.556243492101313 -490,-10,390,0.556838255061851,0.0797709692794619,-9.99998805539803e-10,0.556838645061851 -490,-10,400,0.557403750390373,0.0792054739509402,-9.99998805539803e-10,0.557404150390373 -490,-10,410,0.557941757166187,0.0786674671751266,-9.99998805539803e-10,0.557942167166187 -490,-10,420,0.558454230015151,0.0781549943261623,-9.99998805539803e-10,0.558454650015151 -490,-10,430,0.558942942726056,0.0776662816152568,-9.99998805539803e-10,0.558943372726056 -490,-10,440,0.559409508670636,0.0771997156706768,-9.99998805539803e-10,0.559409948670636 -490,-10,450,0.559855398520314,0.0767538258209991,-9.99998805539803e-10,0.559855848520314 -490,-10,460,0.560281955667802,0.0763272686735108,-9.99998805539803e-10,0.560282415667802 -490,-10,470,0.560690409692809,0.0759188146485037,-9.99998805539803e-10,0.560690879692809 -490,-10,480,0.561081888155023,0.0755273361862906,-9.99998805539803e-10,0.561082368155023 -490,-10,490,0.56145742695168,0.0751517973896334,-9.99998805539803e-10,0.56145791695168 -490,-10,500,0.561817979439353,0.0747912449019607,-9.99998805539803e-10,0.561818479439352 -490,-10,510,0.562164424488479,0.0744447998528345,-9.99998805539803e-10,0.562164934488479 -490,-10,520,0.562497573613437,0.0741116507278764,-9.99998805539803e-10,0.562498093613437 -490,-10,530,0.56281817729954,0.0737910470417729,-9.99998805539803e-10,0.56281870729954 -490,-10,540,0.563126930630469,0.0734822937108437,-9.99998805539803e-10,0.56312747063047 -490,-10,550,0.56342447830469,0.0731847460366234,-9.99998805539803e-10,0.56342502830469 -490,-10,560,0.563711419116834,0.0728978052244793,-9.99998805539803e-10,0.563711979116834 -490,-10,570,0.563988309969421,0.0726209143718923,-9.99998805539803e-10,0.563988879969421 -490,-10,580,0.564255669471322,0.0723535548699907,-9.99998805539803e-10,0.564256249471322 -490,-10,590,0.564513981171772,0.0720952431695417,-9.99998805539803e-10,0.564514571171772 -490,-10,600,0.564763696472243,0.0718455278690699,-9.99998805539803e-10,0.564764296472243 -490,-20,0,0,0.408186689007377,-9.99997784134621e-10,0 -490,-20,10,0.0933891882377832,0.314797500769594,-9.99997784134621e-10,0.0933891982377832 -490,-20,20,0.164342712928976,0.243843976078401,-9.99997784134621e-10,0.164342732928976 -490,-20,30,0.211964962750055,0.196221726257322,-9.99997784134621e-10,0.211964992750055 -490,-20,40,0.243739158776693,0.164447530230684,-9.99997784134621e-10,0.243739198776693 -490,-20,50,0.265714858849722,0.142471830157655,-9.99997784134621e-10,0.265714908849722 -490,-20,60,0.281567154430882,0.126619534576496,-9.99997784134621e-10,0.281567214430882 -490,-20,70,0.293444270199844,0.114742418807533,-9.99997784134621e-10,0.293444340199844 -490,-20,80,0.302632137456522,0.105554551550855,-9.99997784134621e-10,0.302632217456522 -490,-20,90,0.309930851841883,0.0982558371654937,-9.99997784134621e-10,0.309930941841883 -490,-20,100,0.315858268033217,0.0923284209741597,-9.99997784134621e-10,0.315858368033217 -490,-20,110,0.320761921083957,0.0874247679234207,-9.99997784134621e-10,0.320762031083957 -490,-20,120,0.324882643884407,0.0833040451229702,-9.99997784134621e-10,0.324882763884407 -490,-20,130,0.328392080997563,0.0797946080098141,-9.99997784134621e-10,0.328392210997563 -490,-20,140,0.331415607218966,0.0767710817884113,-9.99997784134621e-10,0.331415747218966 -490,-20,150,0.334046793659695,0.0741398953476818,-9.99997784134621e-10,0.334046943659695 -490,-20,160,0.336356812187765,0.0718298768196125,-9.99997784134621e-10,0.336356972187765 -490,-20,170,0.338400713656476,0.0697859753509013,-9.99997784134621e-10,0.338400883656476 -490,-20,180,0.340221720153062,0.067964968854315,-9.99997784134621e-10,0.340221900153062 -490,-20,190,0.341854222991242,0.0663324660161352,-9.99997784134621e-10,0.341854412991242 -490,-20,200,0.343325917503878,0.0648607715034987,-9.99997784134621e-10,0.343326117503878 -490,-20,210,0.34465934992319,0.0635273390841872,-9.99997784134621e-10,0.34465955992319 -490,-20,220,0.345873056136188,0.0623136328711896,-9.99997784134621e-10,0.345873276136188 -490,-20,230,0.346982412158556,0.0612042768488207,-9.99997784134621e-10,0.346982642158556 -490,-20,240,0.348000277721157,0.0601864112862198,-9.99997784134621e-10,0.348000517721157 -490,-20,250,0.348937489206683,0.0592491998006939,-9.99997784134621e-10,0.348937739206683 -490,-20,260,0.349803241410526,0.0583834475968512,-9.99997784134621e-10,0.349803501410526 -490,-20,270,0.350605386239253,0.0575813027681237,-9.99997784134621e-10,0.350605656239253 -490,-20,280,0.351350668639951,0.056836020367426,-9.99997784134621e-10,0.351350948639951 -490,-20,290,0.352044914592332,0.0561417744150455,-9.99997784134621e-10,0.352045204592332 -490,-20,300,0.352693182129982,0.0554935068773956,-9.99997784134621e-10,0.352693482129982 -490,-20,310,0.353299883586751,0.0548868054206265,-9.99997784134621e-10,0.353300193586751 -490,-20,320,0.353868885255574,0.0543178037518034,-9.99997784134621e-10,0.353869205255574 -490,-20,330,0.354403589174638,0.0537830998327392,-9.99997784134621e-10,0.354403919174638 -490,-20,340,0.354907000665529,0.0532796883418482,-9.99997784134621e-10,0.354907340665529 -490,-20,350,0.355381784432901,0.0528049045744766,-9.99997784134621e-10,0.355382134432901 -490,-20,360,0.355830311420371,0.0523563775870064,-9.99997784134621e-10,0.355830671420371 -490,-20,370,0.356254698149623,0.0519319908577538,-9.99997784134621e-10,0.356255068149623 -490,-20,380,0.356656839911045,0.051529849096332,-9.99997784134621e-10,0.356657219911045 -490,-20,390,0.357038438897141,0.0511482501102359,-9.99997784134621e-10,0.357038828897141 -490,-20,400,0.357401028154369,0.0507856608530079,-9.99997784134621e-10,0.357401428154369 -490,-20,410,0.357745992060147,0.0504406969472302,-9.99997784134621e-10,0.357746402060147 -490,-20,420,0.358074583898635,0.0501121051087419,-9.99997784134621e-10,0.358075003898635 -490,-20,430,0.358387941003297,0.0497987480040805,-9.99997784134621e-10,0.358388371003297 -490,-20,440,0.358687097849977,0.0494995911573999,-9.99997784134621e-10,0.358687537849977 -490,-20,450,0.358972997416686,0.0492136915906913,-9.99997784134621e-10,0.358973447416686 -490,-20,460,0.359246501071751,0.0489401879356258,-9.99997784134621e-10,0.359246961071751 -490,-20,470,0.359508397207881,0.0486782917994964,-9.99997784134621e-10,0.359508867207881 -490,-20,480,0.35975940880369,0.0484272802036876,-9.99997784134621e-10,0.35975988880369 -490,-20,490,0.360000200064859,0.0481864889425181,-9.99997784134621e-10,0.360000690064859 -490,-20,500,0.360231382272922,0.0479553067344551,-9.99997784134621e-10,0.360231882272922 -490,-20,510,0.360453518949738,0.0477331700576387,-9.99997784134621e-10,0.360454028949738 -490,-20,520,0.360667130429219,0.0475195585781585,-9.99997784134621e-10,0.360667650429219 -490,-20,530,0.360872697914122,0.047313991093255,-9.99997784134621e-10,0.360873227914122 -490,-20,540,0.361070667084302,0.0471160219230747,-9.99997784134621e-10,0.361071207084302 -490,-20,550,0.361261451313179,0.0469252376941979,-9.99997784134621e-10,0.361262001313179 -490,-20,560,0.36144543454115,0.0467412544662273,-9.99997784134621e-10,0.36144599454115 -490,-20,570,0.361622973847859,0.0465637151595186,-9.99997784134621e-10,0.361623543847859 -490,-20,580,0.361794401759493,0.0463922872478844,-9.99997784134621e-10,0.361794981759493 -490,-20,590,0.361960028322393,0.0462266606849844,-9.99997784134621e-10,0.361960618322393 -490,-20,600,0.362120142970118,0.0460665460372591,-9.99997784134621e-10,0.362120742970118 -490,-30,0,0,0.220728848278793,-9.99996691716798e-10,0 -490,-30,10,0.050500637371457,0.170228210907336,-9.99996691716798e-10,0.050500647371457 -490,-30,20,0.0888690854570457,0.131859762821747,-9.99996691716798e-10,0.0888691054570457 -490,-30,30,0.114621038273081,0.106107810005712,-9.99996691716798e-10,0.114621068273081 -490,-30,40,0.131803082378928,0.0889257658998644,-9.99996691716798e-10,0.131803122378928 -490,-30,50,0.143686544279745,0.0770423039990472,-9.99996691716798e-10,0.143686594279745 -490,-30,60,0.152258746755807,0.068470101522986,-9.99996691716798e-10,0.152258806755807 -490,-30,70,0.158681352282048,0.0620474959967444,-9.99996691716798e-10,0.158681422282048 -490,-30,80,0.163649734182587,0.057079114096206,-9.99996691716798e-10,0.163649814182587 -490,-30,90,0.167596547892055,0.0531323003867381,-9.99996691716798e-10,0.167596637892055 -490,-30,100,0.170801825732848,0.0499270225459446,-9.99996691716798e-10,0.170801925732848 -490,-30,110,0.173453498899556,0.0472753493792362,-9.99996691716798e-10,0.173453608899556 -490,-30,120,0.175681798896383,0.0450470493824101,-9.99996691716798e-10,0.175681918896383 -490,-30,130,0.177579543318126,0.0431493049606663,-9.99996691716798e-10,0.177579673318126 -490,-30,140,0.179214529167895,0.0415143191108977,-9.99996691716798e-10,0.179214669167895 -490,-30,150,0.180637355458682,0.0400914928201107,-9.99996691716798e-10,0.180637505458682 -490,-30,160,0.181886508708739,0.0388423395700541,-9.99996691716798e-10,0.181886668708739 -490,-30,170,0.182991757922722,0.0377370903560705,-9.99996691716798e-10,0.182991927922722 -490,-30,180,0.183976475645089,0.036752372633704,-9.99996691716798e-10,0.183976655645089 -490,-30,190,0.184859259138494,0.0358695891402991,-9.99996691716798e-10,0.184859449138494 -490,-30,200,0.185655084782839,0.0350737634959538,-9.99996691716798e-10,0.185655284782839 -490,-30,210,0.186376144557933,0.0343527037208593,-9.99996691716798e-10,0.186376354557933 -490,-30,220,0.187032461830785,0.0336963864480074,-9.99996691716798e-10,0.187032681830785 -490,-30,230,0.187632351253304,0.0330964970254883,-9.99996691716798e-10,0.187632581253304 -490,-30,240,0.188182766784692,0.0325460814941002,-9.99996691716798e-10,0.188183006784692 -490,-30,250,0.18868956824923,0.0320392800295624,-9.99996691716798e-10,0.18868981824923 -490,-30,260,0.18915772777524,0.031571120503553,-9.99996691716798e-10,0.18915798777524 -490,-30,270,0.189591491317673,0.0311373569611201,-9.99996691716798e-10,0.189591761317673 -490,-30,280,0.189994506237999,0.030734342040794,-9.99996691716798e-10,0.189994786237999 -490,-30,290,0.190369922961812,0.0303589253169811,-9.99996691716798e-10,0.190370212961812 -490,-30,300,0.19072047664427,0.0300083716345229,-9.99996691716798e-10,0.19072077664427 -490,-30,310,0.1910485532754,0.0296802950033927,-9.99996691716798e-10,0.1910488632754 -490,-30,320,0.191356243571067,0.0293726047077257,-9.99996691716798e-10,0.191356563571067 -490,-30,330,0.191645387199225,0.0290834610795682,-9.99996691716798e-10,0.191645717199225 -490,-30,340,0.191917609301481,0.0288112389773118,-9.99996691716798e-10,0.191917949301481 -490,-30,350,0.192174350829256,0.0285544974495362,-9.99996691716798e-10,0.192174700829256 -490,-30,360,0.192416893881327,0.028311954397466,-9.99996691716798e-10,0.192417253881327 -490,-30,370,0.192646382976624,0.0280824653021687,-9.99996691716798e-10,0.192646752976624 -490,-30,380,0.19286384300223,0.027865005276563,-9.99996691716798e-10,0.19286422300223 -490,-30,390,0.193070194426648,0.0276586538521445,-9.99996691716798e-10,0.193070584426648 -490,-30,400,0.193266266251873,0.0274625820269195,-9.99996691716798e-10,0.193266666251873 -490,-30,410,0.193452807086424,0.0272760411923685,-9.99996691716798e-10,0.193453217086424 -490,-30,420,0.193630494649533,0.0270983536292593,-9.99996691716798e-10,0.193630914649533 -490,-30,430,0.193799943959554,0.0269289043192387,-9.99996691716798e-10,0.193800373959554 -490,-30,440,0.193961714414105,0.0267671338646874,-9.99996691716798e-10,0.193962154414105 -490,-30,450,0.194116315932926,0.0266125323458665,-9.99996691716798e-10,0.194116765932926 -490,-30,460,0.194264214304942,0.0264646339738509,-9.99996691716798e-10,0.194264674304942 -490,-30,470,0.194405835857171,0.0263230124216217,-9.99996691716798e-10,0.194406305857171 -490,-30,480,0.194541571543658,0.0261872767351342,-9.99996691716798e-10,0.194542051543658 -490,-30,490,0.194671780536712,0.0260570677420805,-9.99996691716798e-10,0.194672270536712 -490,-30,500,0.19479679338966,0.0259320548891324,-9.99996691716798e-10,0.19479729338966 -490,-30,510,0.194916914829567,0.025811933449226,-9.99996691716798e-10,0.194917424829567 -490,-30,520,0.19503242622941,0.0256964220493823,-9.99996691716798e-10,0.19503294622941 -490,-30,530,0.195143587801819,0.0255852604769738,-9.99996691716798e-10,0.195144117801819 -490,-30,540,0.195250640550244,0.0254782077285491,-9.99996691716798e-10,0.195251180550244 -490,-30,550,0.195353808008281,0.0253750402705113,-9.99996691716798e-10,0.195354358008281 -490,-30,560,0.195453297793486,0.0252755504853071,-9.99996691716798e-10,0.195453857793486 -490,-30,570,0.195549302998333,0.02517954528046,-9.99996691716798e-10,0.195549872998333 -490,-30,580,0.195642003437903,0.0250868448408894,-9.99996691716798e-10,0.195642583437903 -490,-30,590,0.195731566771196,0.0249972815075965,-9.99996691716798e-10,0.195732156771196 -490,-30,600,0.195818149510753,0.0249106987680395,-9.99996691716798e-10,0.195818749510753 -490,-40,0,0,0.0916117993615426,-9.99995592110281e-10,0 -490,-40,10,0.0209598985115914,0.0706519008499512,-9.99995592110281e-10,0.0209599085115914 -490,-40,20,0.0368844258003446,0.054727373561198,-9.99995592110281e-10,0.0368844458003446 -490,-40,30,0.0475725744177413,0.0440392249438013,-9.99995592110281e-10,0.0475726044177413 -490,-40,40,0.0547038487822861,0.0369079505792565,-9.99995592110281e-10,0.0547038887822861 -490,-40,50,0.0596359876298696,0.031975811731673,-9.99995592110281e-10,0.0596360376298696 -490,-40,60,0.0631938138924864,0.0284179854690562,-9.99995592110281e-10,0.0631938738924864 -490,-40,70,0.0658594665855373,0.0257523327760053,-9.99995592110281e-10,0.0658595365855373 -490,-40,80,0.0679215550228798,0.0236902443386628,-9.99995592110281e-10,0.0679216350228798 -490,-40,90,0.0695596494925817,0.0220521498689609,-9.99995592110281e-10,0.0695597394925817 -490,-40,100,0.0708899752417465,0.0207218241197961,-9.99995592110281e-10,0.0708900752417465 -490,-40,110,0.0719905316575262,0.0196212677040164,-9.99995592110281e-10,0.0719906416575262 -490,-40,120,0.0729153703173498,0.0186964290441928,-9.99995592110281e-10,0.0729154903173498 -490,-40,130,0.0737030144452468,0.0179087849162958,-9.99995592110281e-10,0.0737031444452468 -490,-40,140,0.0743816026624009,0.0172301966991417,-9.99995592110281e-10,0.0743817426624009 -490,-40,150,0.0749721356973636,0.016639663664179,-9.99995592110281e-10,0.0749722856973636 -490,-40,160,0.0754905870815318,0.0161212122800108,-9.99995592110281e-10,0.0754907470815318 -490,-40,170,0.0759493122097855,0.0156624871517571,-9.99995592110281e-10,0.0759494822097855 -490,-40,180,0.0763580116757259,0.0152537876858166,-9.99995592110281e-10,0.0763581916757259 -490,-40,190,0.0767244041292187,0.0148873952323239,-9.99995592110281e-10,0.0767245941292187 -490,-40,200,0.077054705400779,0.0145570939607636,-9.99995592110281e-10,0.077054905400779 -490,-40,210,0.0773539756772233,0.0142578236843192,-9.99995592110281e-10,0.0773541856772233 -490,-40,220,0.0776263750794169,0.0139854242821257,-9.99995592110281e-10,0.0776265950794169 -490,-40,230,0.0778753545392541,0.0137364448222885,-9.99995592110281e-10,0.0778755845392541 -490,-40,240,0.0781038002436566,0.013507999117886,-9.99995592110281e-10,0.0781040402436566 -490,-40,250,0.0783141442673192,0.0132976550942234,-9.99995592110281e-10,0.0783143942673192 -490,-40,260,0.0785084502536024,0.0131033491079402,-9.99995592110281e-10,0.0785087102536024 -490,-40,270,0.0786884804532324,0.0129233189083102,-9.99995592110281e-10,0.0786887504532324 -490,-40,280,0.0788557486753453,0.0127560506861973,-9.99995592110281e-10,0.0788560286753453 -490,-40,290,0.0790115624796898,0.0126002368818528,-9.99995592110281e-10,0.0790118524796898 -490,-40,300,0.0791570570712361,0.0124547422903065,-9.99995592110281e-10,0.0791573570712361 -490,-40,310,0.0792932227366699,0.0123185766248727,-9.99995592110281e-10,0.0792935327366699 -490,-40,320,0.0794209272114223,0.0121908721501203,-9.99995592110281e-10,0.0794212472114223 -490,-40,330,0.0795409340354328,0.0120708653261098,-9.99995592110281e-10,0.0795412640354328 -490,-40,340,0.0796539177111424,0.0119578816504002,-9.99995592110281e-10,0.0796542577111424 -490,-40,350,0.0797604762942808,0.0118513230672618,-9.99995592110281e-10,0.0797608262942808 -490,-40,360,0.0798611419100173,0.0117506574515253,-9.99995592110281e-10,0.0798615019100173 -490,-40,370,0.0799563895820727,0.0116554097794699,-9.99995592110281e-10,0.0799567595820727 -490,-40,380,0.0800466446818945,0.0115651546796481,-9.99995592110281e-10,0.0800470246818945 -490,-40,390,0.0801322892428081,0.0114795101187345,-9.99995592110281e-10,0.0801326792428081 -490,-40,400,0.0802136673356719,0.0113981320258707,-9.99995592110281e-10,0.0802140673356719 -490,-40,410,0.0802910896646555,0.011320709696887,-9.99995592110281e-10,0.0802914996646556 -490,-40,420,0.0803648375118787,0.0112469618496639,-9.99995592110281e-10,0.0803652575118787 -490,-40,430,0.0804351661359467,0.0111766332255959,-9.99995592110281e-10,0.0804355961359467 -490,-40,440,0.08050230771051,0.0111094916510326,-9.99995592110281e-10,0.08050274771051 -490,-40,450,0.0805664738738078,0.0110453254877348,-9.99995592110281e-10,0.0805669238738078 -490,-40,460,0.080627857947927,0.0109839414136155,-9.99995592110281e-10,0.080628317947927 -490,-40,470,0.0806866368765957,0.0109251624849469,-9.99995592110281e-10,0.0806871068765957 -490,-40,480,0.0807429729222629,0.0108688264392797,-9.99995592110281e-10,0.0807434529222629 -490,-40,490,0.0807970151566138,0.0108147842049288,-9.99995592110281e-10,0.0807975051566138 -490,-40,500,0.080848900773248,0.0107628985882946,-9.99995592110281e-10,0.080849400773248 -490,-40,510,0.0808987562467737,0.0107130431147689,-9.99995592110281e-10,0.0808992662467737 -490,-40,520,0.0809466983588672,0.0106651010026754,-9.99995592110281e-10,0.0809472183588672 -490,-40,530,0.0809928351087647,0.0106189642527779,-9.99995592110281e-10,0.0809933651087647 -490,-40,540,0.0810372665230826,0.01057453283846,-9.99995592110281e-10,0.0810378065230826 -490,-40,550,0.0810800853777094,0.0105317139838332,-9.99995592110281e-10,0.0810806353777094 -490,-40,560,0.0811213778427031,0.0104904215188395,-9.99995592110281e-10,0.0811219378427031 -490,-40,570,0.0811612240596009,0.0104505753019417,-9.99995592110281e-10,0.0811617940596009 -490,-40,580,0.0811996986592597,0.0104121007022829,-9.99995592110281e-10,0.0812002786592597 -490,-40,590,0.0812368712272487,0.0103749281342939,-9.99995592110281e-10,0.0812374612272487 -490,-40,600,0.0812728067228866,0.010338992638656,-9.99995592110281e-10,0.0812734067228866 -490,-46,0,0,0.0461985272973418,-9.99994929570813e-10,0 -490,-46,10,0.0105697786779173,0.0356287486194245,-9.99994929570813e-10,0.0105697886779173 -490,-46,20,0.0186002912731711,0.0275982360241707,-9.99994929570813e-10,0.0186003112731711 -490,-46,30,0.0239901725886791,0.0222083547086627,-9.99994929570813e-10,0.0239902025886791 -490,-46,40,0.0275863728127908,0.018612154484551,-9.99994929570813e-10,0.0275864128127908 -490,-46,50,0.0300735802770295,0.0161249470203123,-9.99994929570813e-10,0.0300736302770295 -490,-46,60,0.0318677414534084,0.0143307858439333,-9.99994929570813e-10,0.0318678014534084 -490,-46,70,0.0332119921892677,0.0129865351080741,-9.99994929570813e-10,0.0332120621892677 -490,-46,80,0.0342518740562982,0.0119466532410436,-9.99994929570813e-10,0.0342519540562982 -490,-46,90,0.0350779417964971,0.0111205855008447,-9.99994929570813e-10,0.0350780317964971 -490,-46,100,0.0357488061487472,0.0104497211485946,-9.99994929570813e-10,0.0357489061487472 -490,-46,110,0.0363038010944966,0.0098947262028452,-9.99994929570813e-10,0.0363039110944966 -490,-46,120,0.0367701840753927,0.00942834322194905,-9.99994929570813e-10,0.0367703040753927 -490,-46,130,0.0371673818053449,0.00903114549199682,-9.99994929570813e-10,0.037167511805345 -490,-46,140,0.0375095841907617,0.00868894310658003,-9.99994929570813e-10,0.0375097241907617 -490,-46,150,0.0378073816003295,0.00839114569701227,-9.99994929570813e-10,0.0378075316003295 -490,-46,160,0.0380688292587181,0.00812969803862367,-9.99994929570813e-10,0.0380689892587181 -490,-46,170,0.0383001578158177,0.00789836948152409,-9.99994929570813e-10,0.0383003278158177 -490,-46,180,0.0385062591429966,0.0076922681543452,-9.99994929570813e-10,0.0385064391429966 -490,-46,190,0.0386910256455889,0.00750750165175286,-9.99994929570813e-10,0.0386912156455889 -490,-46,200,0.0388575918785073,0.00734093541883449,-9.99994929570813e-10,0.0388577918785073 -490,-46,210,0.0390085096219852,0.00719001767535655,-9.99994929570813e-10,0.0390087196219852 -490,-46,220,0.0391458767657999,0.00705265053154185,-9.99994929570813e-10,0.0391460967657999 -490,-46,230,0.0392714335658183,0.00692709373152343,-9.99994929570813e-10,0.0392716635658183 -490,-46,240,0.0393866354850509,0.00681189181229086,-9.99994929570813e-10,0.0393868754850509 -490,-46,250,0.0394927089841715,0.00670581831317029,-9.99994929570813e-10,0.0394929589841715 -490,-46,260,0.0395906947291727,0.00660783256816909,-9.99994929570813e-10,0.0395909547291727 -490,-46,270,0.0396814813980288,0.00651704589931297,-9.99994929570813e-10,0.0396817513980288 -490,-46,280,0.0397658323831542,0.00643269491418753,-9.99994929570813e-10,0.0397661123831542 -490,-46,290,0.0398444070683311,0.00635412022901072,-9.99994929570813e-10,0.0398446970683311 -490,-46,300,0.0399177779212781,0.00628074937606369,-9.99994929570813e-10,0.0399180779212781 -490,-46,310,0.0399864443294847,0.00621208296785707,-9.99994929570813e-10,0.0399867543294847 -490,-46,320,0.0400508438795859,0.00614768341775591,-9.99994929570813e-10,0.0400511638795859 -490,-46,330,0.0401113616139122,0.0060871656834296,-9.99994929570813e-10,0.0401116916139122 -490,-46,340,0.0401683376744502,0.00603018962289153,-9.99994929570813e-10,0.0401686776744502 -490,-46,350,0.0402220736521976,0.00597645364514421,-9.99994929570813e-10,0.0402224236521976 -490,-46,360,0.0402728378903079,0.00592568940703388,-9.99994929570813e-10,0.0402731978903079 -490,-46,370,0.0403208699364868,0.005877657360855,-9.99994929570813e-10,0.0403212399364868 -490,-46,380,0.0403663842995044,0.00583214299783737,-9.99994929570813e-10,0.0403667642995044 -490,-46,390,0.0404095736333327,0.0057889536640091,-9.99994929570813e-10,0.0404099636333327 -490,-46,400,0.0404506114480113,0.00574791584933046,-9.99994929570813e-10,0.0404510114480113 -490,-46,410,0.0404896544272334,0.00570887287010832,-9.99994929570813e-10,0.0404900644272334 -490,-46,420,0.040526844417571,0.00567168287977081,-9.99994929570813e-10,0.040527264417571 -490,-46,430,0.0405623101423076,0.00563621715503412,-9.99994929570813e-10,0.0405627401423077 -490,-46,440,0.0405961686833129,0.00560235861402885,-9.99994929570813e-10,0.0405966086833129 -490,-46,450,0.0406285267667404,0.00557000053060137,-9.99994929570813e-10,0.0406289767667404 -490,-46,460,0.0406594818821686,0.00553904541517321,-9.99994929570813e-10,0.0406599418821686 -490,-46,470,0.0406891232598026,0.0055094040375392,-9.99994929570813e-10,0.0406895932598026 -490,-46,480,0.0407175327262874,0.00548099457105434,-9.99994929570813e-10,0.0407180127262874 -490,-46,490,0.0407447854563536,0.00545374184098822,-9.99994929570813e-10,0.0407452754563536 -490,-46,500,0.0407709506347817,0.00542757666256011,-9.99994929570813e-10,0.0407714506347817 -490,-46,510,0.0407960920409177,0.00540243525642411,-9.99994929570813e-10,0.0407966020409177 -490,-46,520,0.0408202685660998,0.00537825873124199,-9.99994929570813e-10,0.0408207885660998 -490,-46,530,0.0408435346728066,0.00535499262453515,-9.99994929570813e-10,0.0408440646728066 -490,-46,540,0.040865940803038,0.00533258649430379,-9.99994929570813e-10,0.040866480803038 -490,-46,550,0.0408875337423548,0.00531099355498697,-9.99994929570813e-10,0.0408880837423548 -490,-46,560,0.0409083569450916,0.0052901703522502,-9.99994929570813e-10,0.0409089169450916 -490,-46,570,0.0409284508254856,0.00527007647185621,-9.99994929570813e-10,0.0409290208254856 -490,-46,580,0.0409478530188163,0.00525067427852547,-9.99994929570813e-10,0.0409484330188163 -490,-46,590,0.0409665986160966,0.00523192868124519,-9.99994929570813e-10,0.0409671886160966 -490,-46,600,0.0409847203753868,0.00521380692195502,-9.99994929570813e-10,0.0409853203753868 -490,-50,0,0,0.0274907986540919,-9.99994492503764e-10,0 -490,-50,10,0.00628963030753702,0.0212011683465549,-9.99994492503764e-10,0.00628964030753702 -490,-50,20,0.0110682502714243,0.0164225483826676,-9.99994492503764e-10,0.0110682702714243 -490,-50,30,0.0142755417303148,0.0132152569237771,-9.99994492503764e-10,0.0142755717303148 -490,-50,40,0.0164154890850121,0.0110753095690798,-9.99994492503764e-10,0.0164155290850121 -490,-50,50,0.0178955215364854,0.00959527711760655,-9.99994492503764e-10,0.0178955715364854 -490,-50,60,0.0189631513190404,0.00852764733505153,-9.99994492503764e-10,0.0189632113190404 -490,-50,70,0.0197630583395018,0.00772774031459012,-9.99994492503764e-10,0.0197631283395018 -490,-50,80,0.0203818482599377,0.00710895039415426,-9.99994492503764e-10,0.0203819282599377 -490,-50,90,0.0208734063949901,0.00661739225910184,-9.99994492503764e-10,0.0208734963949901 -490,-50,100,0.0212726095278782,0.00621818912621374,-9.99994492503764e-10,0.0212727095278782 -490,-50,110,0.021602863655016,0.00588793499907596,-9.99994492503764e-10,0.021602973655016 -490,-50,120,0.0218803885323998,0.00561041012169207,-9.99994492503764e-10,0.0218805085323998 -490,-50,130,0.02211674417962,0.00537405447447196,-9.99994492503764e-10,0.02211687417962 -490,-50,140,0.0223203744125903,0.00517042424150165,-9.99994492503764e-10,0.0223205144125903 -490,-50,150,0.0224975811138655,0.00499321754022638,-9.99994492503764e-10,0.0224977311138655 -490,-50,160,0.0226531576085249,0.00483764104556703,-9.99994492503764e-10,0.0226533176085249 -490,-50,170,0.0227908114940099,0.00469998716008198,-9.99994492503764e-10,0.0227909814940099 -490,-50,180,0.022913453717026,0.00457734493706588,-9.99994492503764e-10,0.022913633717026 -490,-50,190,0.0230234004841187,0.00446739816997318,-9.99994492503764e-10,0.0230235904841187 -490,-50,200,0.0231225170369529,0.00436828161713897,-9.99994492503764e-10,0.0231227170369529 -490,-50,210,0.0232123218325166,0.00427847682157526,-9.99994492503764e-10,0.0232125318325166 -490,-50,220,0.0232940632366959,0.00419673541739602,-9.99994492503764e-10,0.0232942832366959 -490,-50,230,0.023368776802493,0.00412202185159894,-9.99994492503764e-10,0.023369006802493 -490,-50,240,0.023437328614671,0.00405347003942094,-9.99994492503764e-10,0.023437568614671 -490,-50,250,0.0235004484883434,0.00399035016574855,-9.99994492503764e-10,0.0235006984883434 -490,-50,260,0.0235587556800307,0.0039320429740612,-9.99994492503764e-10,0.0235590156800307 -490,-50,270,0.0236127790045825,0.00387801964950941,-9.99994492503764e-10,0.0236130490045825 -490,-50,280,0.023662972724686,0.00382782592940589,-9.99994492503764e-10,0.023663252724686 -490,-50,290,0.0237097292118702,0.00378106944222174,-9.99994492503764e-10,0.0237100192118702 -490,-50,300,0.0237533891175737,0.00373740953651817,-9.99994492503764e-10,0.0237536891175737 -490,-50,310,0.0237942496062676,0.00369654904782427,-9.99994492503764e-10,0.0237945596062676 -490,-50,320,0.0238325710673361,0.00365822758675582,-9.99994492503764e-10,0.0238328910673361 -490,-50,330,0.0238685826232599,0.003622216030832,-9.99994492503764e-10,0.0238689126232599 -490,-50,340,0.0239024866782155,0.00358831197587643,-9.99994492503764e-10,0.0239028266782155 -490,-50,350,0.0239344626963085,0.00355633595778337,-9.99994492503764e-10,0.0239348126963085 -490,-50,360,0.0239646703572527,0.00352612829683917,-9.99994492503764e-10,0.0239650303572527 -490,-50,370,0.0239932522058028,0.00349754644828913,-9.99994492503764e-10,0.0239936222058028 -490,-50,380,0.0240203358870971,0.00347046276699483,-9.99994492503764e-10,0.0240207158870971 -490,-50,390,0.0240460360414036,0.00344476261268828,-9.99994492503764e-10,0.0240464260414036 -490,-50,400,0.0240704559172424,0.00342034273684952,-9.99994492503764e-10,0.0240708559172424 -490,-50,410,0.0240936887504828,0.00339710990360911,-9.99994492503764e-10,0.0240940987504828 -490,-50,420,0.0241158189480481,0.00337497970604381,-9.99994492503764e-10,0.0241162389480481 -490,-50,430,0.0241369231077453,0.00335387554634663,-9.99994492503764e-10,0.0241373531077453 -490,-50,440,0.0241570709000657,0.00333372775402619,-9.99994492503764e-10,0.0241575109000657 -490,-50,450,0.0241763258332503,0.00331447282084159,-9.99994492503764e-10,0.0241767758332503 -490,-50,460,0.0241947459192429,0.00329605273484896,-9.99994492503764e-10,0.0241952059192429 -490,-50,470,0.0242123842551821,0.00327841439890977,-9.99994492503764e-10,0.0242128542551821 -490,-50,480,0.0242292895326595,0.00326150912143244,-9.99994492503764e-10,0.0242297695326595 -490,-50,490,0.0242455064849922,0.00324529216909974,-9.99994492503764e-10,0.0242459964849922 -490,-50,500,0.0242610762811306,0.0032297223729613,-9.99994492503764e-10,0.0242615762811306 -490,-50,510,0.0242760368734784,0.00321476178061348,-9.99994492503764e-10,0.0242765468734784 -490,-50,520,0.0242904233057917,0.00320037534830018,-9.99994492503764e-10,0.0242909433057917 -490,-50,530,0.0243042679863987,0.00318653066769324,-9.99994492503764e-10,0.0243047979863987 -490,-50,540,0.0243176009312097,0.00317319772288218,-9.99994492503764e-10,0.0243181409312097 -490,-50,550,0.0243304499803426,0.00316034867374934,-9.99994492503764e-10,0.0243309999803426 -490,-50,560,0.0243428409916423,0.00314795766244966,-9.99994492503764e-10,0.0243434009916423 -490,-50,570,0.0243547980139199,0.00313600064017197,-9.99994492503764e-10,0.0243553680139199 -490,-50,580,0.024366343442346,0.00312445521174586,-9.99994492503764e-10,0.024366923442346 -490,-50,590,0.024377498158105,0.00311330049598693,-9.99994492503764e-10,0.024378088158105 -490,-50,600,0.0243882816541393,0.00310251699995258,-9.99994492503764e-10,0.0243888816541393 -490,-60,0,0,0.00638510032056645,-9.99993385958353e-10,0 -490,-60,10,0.00146084953726586,0.00492425078330059,-9.99993385958353e-10,0.00146085953726586 -490,-60,20,0.0025707470068594,0.00381435331370704,-9.99993385958353e-10,0.0025707670068594 -490,-60,30,0.00331568272080467,0.00306941759976177,-9.99993385958353e-10,0.00331571272080467 -490,-60,40,0.00381271369878388,0.00257238662178257,-9.99993385958353e-10,0.00381275369878388 -490,-60,50,0.00415647074270462,0.00222862957786183,-9.99993385958353e-10,0.00415652074270462 -490,-60,60,0.00440444183123549,0.00198065848933095,-9.99993385958353e-10,0.00440450183123549 -490,-60,70,0.00459023077964101,0.00179486954092544,-9.99993385958353e-10,0.00459030077964101 -490,-60,80,0.00473395289441304,0.0016511474261534,-9.99993385958353e-10,0.00473403289441304 -490,-60,90,0.00484812375009435,0.0015369765704721,-9.99993385958353e-10,0.00484821375009435 -490,-60,100,0.00494084393926919,0.00144425638129725,-9.99993385958353e-10,0.0049409439392692 -490,-60,110,0.00501754981309953,0.00136755050746692,-9.99993385958353e-10,0.00501765981309953 -490,-60,120,0.00508200862369451,0.00130309169687193,-9.99993385958353e-10,0.00508212862369451 -490,-60,130,0.00513690533796688,0.00124819498259957,-9.99993385958353e-10,0.00513703533796688 -490,-60,140,0.0051842011434535,0.00120089917711295,-9.99993385958353e-10,0.0051843411434535 -490,-60,150,0.00522535973543754,0.0011597405851289,-9.99993385958353e-10,0.00522550973543754 -490,-60,160,0.00526149442684543,0.00112360589372102,-9.99993385958353e-10,0.00526165442684543 -490,-60,170,0.00529346635604971,0.00109163396451673,-9.99993385958353e-10,0.00529363635604971 -490,-60,180,0.00532195162878945,0.00106314869177699,-9.99993385958353e-10,0.00532213162878945 -490,-60,190,0.00534748821456283,0.00103761210600362,-9.99993385958353e-10,0.00534767821456283 -490,-60,200,0.0053705093403307,0.00101459098023574,-9.99993385958353e-10,0.0053707093403307 -490,-60,210,0.00539136768774204,0.000993732632824403,-9.99993385958353e-10,0.00539157768774204 -490,-60,220,0.00541035320622754,0.000974747114338904,-9.99993385958353e-10,0.00541057320622754 -490,-60,230,0.00542770641662074,0.000957393903945701,-9.99993385958353e-10,0.00542793641662075 -490,-60,240,0.00544362847852301,0.000941471842043435,-9.99993385958353e-10,0.00544386847852301 -490,-60,250,0.00545828890111352,0.000926811419452923,-9.99993385958353e-10,0.00545853890111352 -490,-60,260,0.00547183151488109,0.00091326880568536,-9.99993385958353e-10,0.00547209151488109 -490,-60,270,0.00548437914404436,0.000900721176522088,-9.99993385958353e-10,0.00548464914404436 -490,-60,280,0.00549603729709972,0.00088906302346673,-9.99993385958353e-10,0.00549631729709972 -490,-60,290,0.00550689710750626,0.000878203213060182,-9.99993385958353e-10,0.00550718710750626 -490,-60,300,0.00551703769605051,0.000868062624515939,-9.99993385958353e-10,0.00551733769605051 -490,-60,310,0.00552652808309749,0.00085857223746896,-9.99993385958353e-10,0.00552683808309749 -490,-60,320,0.00553542874751366,0.000849671573052782,-9.99993385958353e-10,0.00553574874751366 -490,-60,330,0.00554379290601508,0.000841307414551369,-9.99993385958353e-10,0.00554412290601508 -490,-60,340,0.00555166756963941,0.000833432750927033,-9.99993385958353e-10,0.00555200756963941 -490,-60,350,0.00555909442129059,0.000826005899275852,-9.99993385958353e-10,0.00555944442129059 -490,-60,360,0.00556611054868672,0.000818989771879726,-9.99993385958353e-10,0.00556647054868672 -490,-60,370,0.00557274905972583,0.000812351260840612,-9.99993385958353e-10,0.00557311905972584 -490,-60,380,0.00557903960167372,0.00080606071889273,-9.99993385958353e-10,0.00557941960167372 -490,-60,390,0.00558500880124359,0.00080009151932286,-9.99993385958353e-10,0.00558539880124359 -490,-60,400,0.00559068063926503,0.000794419681301412,-9.99993385958353e-10,0.00559108063926503 -490,-60,410,0.0055960767709976,0.000789023549568844,-9.99993385958353e-10,0.0055964867709976 -490,-60,420,0.00560121680106171,0.000783883519504734,-9.99993385958353e-10,0.00560163680106171 -490,-60,430,0.0056061185203076,0.000778981800258841,-9.99993385958353e-10,0.0056065485203076 -490,-60,440,0.00561079811062518,0.00077430220994127,-9.99993385958353e-10,0.00561123811062518 -490,-60,450,0.00561527032264042,0.000769829997926027,-9.99993385958353e-10,0.00561572032264042 -490,-60,460,0.00561954863039191,0.000765551690174539,-9.99993385958353e-10,0.00562000863039191 -490,-60,470,0.00562364536638989,0.000761454954176553,-9.99993385958353e-10,0.00562411536638989 -490,-60,480,0.00562757183989828,0.000757528480668165,-9.99993385958353e-10,0.00562805183989828 -490,-60,490,0.0056313384408196,0.00075376187974685,-9.99993385958353e-10,0.0056318284408196 -490,-60,500,0.00563495473118517,0.000750145589381279,-9.99993385958353e-10,0.00563545473118517 -490,-60,510,0.00563842952594097,0.000746670794625479,-9.99993385958353e-10,0.00563893952594097 -490,-60,520,0.00564177096446122,0.000743329356105221,-9.99993385958353e-10,0.00564229096446122 -490,-60,530,0.0056449865740073,0.00074011374655914,-9.99993385958353e-10,0.0056455165740073 -490,-60,540,0.00564808332617003,0.000737016994396412,-9.99993385958353e-10,0.00564862332617003 -490,-60,550,0.00565106768718367,0.000734032633382772,-9.99993385958353e-10,0.00565161768718367 -490,-60,560,0.00565394566287355,0.000731154657692897,-9.99993385958353e-10,0.00565450566287355 -490,-60,570,0.00565672283889302,0.000728377481673425,-9.99993385958353e-10,0.00565729283889302 -490,-60,580,0.00565940441681559,0.000725695903750855,-9.99993385958353e-10,0.00565998441681559 -490,-60,590,0.00566199524657155,0.000723105073994893,-9.99993385958353e-10,0.00566258524657155 -490,-60,600,0.00566449985565375,0.000720600464912701,-9.99993385958353e-10,0.00566509985565375 +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,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 +250,0,200,0.274145237247988,0.0571920342607087,1.38422819652212e-118,0.274145437247988 +250,0,210,0.275997479667027,0.0553397918416695,4.35350883813035e-126,0.275997689667027 +250,0,220,0.277687098539135,0.0536501729695613,-2.07309892305382e-127,0.277687318539135 +250,0,230,0.279234397672485,0.052102873836211,-7.14102122713026e-135,0.279234627672485 +250,0,240,0.280656468032763,0.0506808034759338,3.10479090790003e-136,0.280656708032762 +250,0,250,0.28196779320554,0.049369478303156,1.16247828252341e-143,0.28196804320554 +250,0,260,0.283180724152,0.0481565473566962,-4.64991150052341e-145,0.283180984152 +250,0,270,0.284305854736808,0.0470314167718879,-1.88027319217195e-152,0.284306124736808 +250,0,280,0.285352321210124,0.0459849502985724,6.96397196286446e-154,0.285352601210124 +250,0,290,0.286328042887453,0.0450092286212432,3.02459714311403e-161,0.286328332887453 +250,0,300,0.287239916976515,0.0440973545321809,-1.04296404788728e-162,0.287240216976515 +250,0,310,0.288093977363385,0.043243294145311,-4.84220957744239e-170,0.288094287363385 +250,0,320,0.288895524857044,0.0424417466516527,1.56200226604808e-171,0.288895844857044 +250,0,330,0.289649234670268,0.0416880368384285,7.71983781454779e-179,0.289649564670268 +250,0,340,0.290359245622973,0.0409780258857229,-2.33934340255108e-180,0.290359585622973 +250,0,350,0.2910292345766,0.0403080369320963,-1.22623759778336e-187,0.2910295845766 +250,0,360,0.291662478862651,0.039674792646045,3.50353366395621e-189,0.291662838862651 +250,0,370,0.292261908895751,0.0390753626129449,1.94142516131204e-196,0.292262278895751 +250,0,380,0.292830152718414,0.0385071187902822,-5.24709114854839e-198,0.292830532718414 +250,0,390,0.293369573879521,0.0379676976291755,-3.06475584646932e-205,0.293369963879521 +250,0,400,0.293882303777873,0.0374549677308235,7.85834189049905e-207,0.293882703777873 +250,0,410,0.294370269388722,0.0369670021199739,4.82533507399056e-214,0.294370679388722 +250,0,420,0.29483521712183,0.0365020543868659,-1.17690993256546e-215,0.29483563712183 +250,0,430,0.295278733424482,0.036058538084214,-7.57921835019235e-223,0.295279163424482 +250,0,440,0.295702262634531,0.0356350088741651,1.76260717639191e-224,0.295702702634531 +250,0,450,0.296107122501167,0.0352301490075294,1.18790256424665e-231,0.296107572501167 +250,0,460,0.296494517720348,0.0348427537883483,-2.63978062695451e-233,0.296494977720348 +250,0,470,0.296865551774231,0.0344717197344658,-1.85814031413343e-240,0.29686602177423 +250,0,480,0.297221237316843,0.0341160341918529,3.9534853880281e-242,0.297221717316843 +250,0,490,0.297562505309601,0.0337747661990949,2.90127615722786e-249,0.297562995309601 +250,0,500,0.297890213078375,0.0334470584303217,-5.92096421199582e-251,0.297890713078375 +250,0,510,0.298205151437456,0.0331321200712403,-4.52246802742357e-258,0.298205661437456 +250,0,520,0.298508051003854,0.0328292205048424,8.86757216704983e-260,0.298508571003854 +250,0,530,0.298799587807059,0.0325376837016377,7.03871754724518e-267,0.298800117807059 +250,0,540,0.299080388284145,0.0322568832245511,-1.32805794548559e-268,0.299080928284145 +250,0,550,0.29935103373723,0.0319862377714662,-1.0939379689506e-275,0.29935158373723 +250,0,560,0.299612064319487,0.0317252071892096,1.98897495591316e-277,0.299612624319487 +250,0,570,0.299863982606785,0.0314732889019109,1.69791990644622e-284,0.299864552606785 +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,160,0.11785989849312,0.0297596966368579,-9.99998805539803e-10,0.11786005849312 +250,-10,170,0.119108640320637,0.0285109548093413,-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 +250,-10,210,0.122964241299583,0.0246553538303948,-9.99998805539803e-10,0.122964451299583 +250,-10,220,0.12371701158917,0.0239025835408078,-9.99998805539803e-10,0.12371723158917 +250,-10,230,0.124406374637794,0.0232132204921834,-9.99998805539803e-10,0.124406604637795 +250,-10,240,0.125039944926687,0.0225796502032913,-9.99998805539803e-10,0.125040184926687 +250,-10,250,0.125624175279667,0.0219954198503105,-9.99998805539803e-10,0.125624425279667 +250,-10,260,0.126164568379489,0.021455026750489,-9.99998805539803e-10,0.126164828379489 +250,-10,270,0.126665844075524,0.0209537510544543,-9.99998805539803e-10,0.126666114075524 +250,-10,280,0.127132072810989,0.0204875223189893,-9.99998805539803e-10,0.127132352810989 +250,-10,290,0.127566782852244,0.0200528122777342,-9.99998805539803e-10,0.127567072852244 +250,-10,300,0.127973047089358,0.0196465480406202,-9.99998805539803e-10,0.127973347089358 +250,-10,310,0.128353553779572,0.0192660413504063,-9.99998805539803e-10,0.128353863779572 +250,-10,320,0.128710664574721,0.0189089305552564,-9.99998805539803e-10,0.128710984574721 +250,-10,330,0.129046462406843,0.018573132723135,-9.99998805539803e-10,0.129046792406843 +250,-10,340,0.129362791230639,0.0182568038993386,-9.99998805539803e-10,0.129363131230639 +250,-10,350,0.129661289185987,0.0179583059439906,-9.99998805539803e-10,0.129661639185987 +250,-10,360,0.129943416411517,0.0176761787184611,-9.99998805539803e-10,0.129943776411517 +250,-10,370,0.130210478485132,0.0174091166448463,-9.99998805539803e-10,0.130210848485132 +250,-10,380,0.130463646269892,0.0171559488600854,-9.99998805539803e-10,0.130464026269892 +250,-10,390,0.13070397278989,0.016915622340088,-9.99998805539803e-10,0.13070436278989 +250,-10,400,0.130932407640159,0.0166871874898186,-9.99998805539803e-10,0.130932807640159 +250,-10,410,0.131149809339591,0.0164697857903872,-9.99998805539803e-10,0.131150219339591 +250,-10,420,0.13135695596033,0.0162626391696479,-9.99998805539803e-10,0.13135737596033 +250,-10,430,0.131554554306972,0.0160650408230058,-9.99998805539803e-10,0.131554984306972 +250,-10,440,0.131743247870568,0.0158763472594098,-9.99998805539803e-10,0.131743687870568 +250,-10,450,0.131923623743542,0.015695971386436,-9.99998805539803e-10,0.131924073743542 +250,-10,460,0.132096218650086,0.0155233764798914,-9.99998805539803e-10,0.132096678650086 +250,-10,470,0.132261524220945,0.0153580709090325,-9.99998805539803e-10,0.132261994220945 +250,-10,480,0.132419991620508,0.01519960350947,-9.99998805539803e-10,0.132420471620508 +250,-10,490,0.132572035616924,0.015047559513054,-9.99998805539803e-10,0.132572525616924 +250,-10,500,0.132718038171744,0.0149015569582344,-9.99998805539803e-10,0.132718538171744 +250,-10,510,0.132858351613835,0.0147612435161432,-9.99998805539803e-10,0.132858861613835 +250,-10,520,0.132993301452569,0.014626293677409,-9.99998805539803e-10,0.132993821452569 +250,-10,530,0.133123188877121,0.0144964062528564,-9.99998805539803e-10,0.133123718877121 +250,-10,540,0.133248292981924,0.0143713021480538,-9.99998805539803e-10,0.133248832981924 +250,-10,550,0.13336887275258,0.0142507223773982,-9.99998805539803e-10,0.13336942275258 +250,-10,560,0.133485168841739,0.0141344262882387,-9.99998805539803e-10,0.133485728841739 +250,-10,570,0.133597405160363,0.0140221899696152,-9.99998805539803e-10,0.133597975160363 +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,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 +250,-20,190,0.027910060313143,0.00607537431115889,-9.99997784134621e-10,0.027910250313143 +250,-20,200,0.0281192182081776,0.00586621641612431,-9.99997784134621e-10,0.0281194182081776 +250,-20,210,0.0283092036672658,0.00567623095703609,-9.99997784134621e-10,0.0283094136672658 +250,-20,220,0.0284825087453711,0.00550292587893076,-9.99997784134621e-10,0.0284827287453711 +250,-20,230,0.0286412160145572,0.00534421860974468,-9.99997784134621e-10,0.0286414460145572 +250,-20,240,0.0287870785039786,0.00519835612032326,-9.99997784134621e-10,0.0287873185039786 +250,-20,250,0.0289215818024688,0.00506385282183312,-9.99997784134621e-10,0.0289218318024688 +250,-20,260,0.0290459927544785,0.0049394418698234,-9.99997784134621e-10,0.0290462527544785 +250,-20,270,0.029161397978164,0.00482403664613789,-9.99997784134621e-10,0.029161667978164 +250,-20,280,0.0292687345834105,0.00471670004089138,-9.99997784134621e-10,0.0292690145834105 +250,-20,290,0.0293688148584891,0.00461661976581277,-9.99997784134621e-10,0.0293691048584891 +250,-20,300,0.0294623462535486,0.00452308837075325,-9.99997784134621e-10,0.0294626462535486 +250,-20,310,0.029549947667392,0.00443548695690986,-9.99997784134621e-10,0.029550257667392 +250,-20,320,0.0296321628067271,0.00435327181757477,-9.99997784134621e-10,0.0296324828067271 +250,-20,330,0.0297094712105369,0.00427596341376499,-9.99997784134621e-10,0.0297098012105369 +250,-20,340,0.0297822973997122,0.0042031372245897,-9.99997784134621e-10,0.0297826373997122 +250,-20,350,0.0298510185118249,0.00413441611247696,-9.99997784134621e-10,0.0298513685118249 +250,-20,360,0.0299159707044558,0.00406946391984612,-9.99997784134621e-10,0.0299163307044558 +250,-20,370,0.0299774545517423,0.00400798007255961,-9.99997784134621e-10,0.0299778245517423 +250,-20,380,0.0300357396133589,0.00394969501094299,-9.99997784134621e-10,0.0300361196133589 +250,-20,390,0.030091068319732,0.00389436630456993,-9.99997784134621e-10,0.030091458319732 +250,-20,400,0.0301436592895345,0.00384177533476741,-9.99997784134621e-10,0.0301440592895345 +250,-20,410,0.0301937101736108,0.00379172445069111,-9.99997784134621e-10,0.0301941201736108 +250,-20,420,0.0302414001021096,0.00374403452219225,-9.99997784134621e-10,0.0302418201021096 +250,-20,430,0.0302868917977464,0.00369854282655548,-9.99997784134621e-10,0.0302873217977464 +250,-20,440,0.0303303334069987,0.0036551012173032,-9.99997784134621e-10,0.0303307734069987 +250,-20,450,0.0303718600920797,0.00361357453222216,-9.99997784134621e-10,0.0303723100920797 +250,-20,460,0.0304115954192746,0.00357383920502732,-9.99997784134621e-10,0.0304120554192746 +250,-20,470,0.0304496525733164,0.00353578205098546,-9.99997784134621e-10,0.0304501225733164 +250,-20,480,0.0304861354226507,0.00349929920165119,-9.99997784134621e-10,0.0304866154226507 +250,-20,490,0.0305211394564693,0.00346429516783261,-9.99997784134621e-10,0.0305216294564693 +250,-20,500,0.0305547526111283,0.00343068201317361,-9.99997784134621e-10,0.0305552526111283 +250,-20,510,0.0305870560008572,0.00339837862344474,-9.99997784134621e-10,0.0305875660008572 +250,-20,520,0.0306181245654188,0.0033673100588831,-9.99997784134621e-10,0.0306186445654188 +250,-20,530,0.0306480276455063,0.00333740697879562,-9.99997784134621e-10,0.0306485576455063 +250,-20,540,0.0306768294950931,0.0033086051292088,-9.99997784134621e-10,0.0306773694950931 +250,-20,550,0.0307045897386368,0.00328084488566512,-9.99997784134621e-10,0.0307051397386368 +250,-20,560,0.0307313637799266,0.00325407084437532,-9.99997784134621e-10,0.0307319237799266 +250,-20,570,0.0307572031684284,0.00322823145587346,-9.99997784134621e-10,0.0307577731684284 +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,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 +250,-30,190,0.00356689607479727,0.000776430740036494,-9.99996691716798e-10,0.00356708607479727 +250,-30,200,0.00359362638159136,0.00074970043324241,-9.99996691716798e-10,0.00359382638159136 +250,-30,210,0.00361790645768891,0.000725420357144861,-9.99996691716798e-10,0.00361811645768891 +250,-30,220,0.00364005478685412,0.000703272027979651,-9.99996691716798e-10,0.00364027478685412 +250,-30,230,0.00366033752107791,0.000682989293755854,-9.99996691716798e-10,0.00366056752107791 +250,-30,240,0.00367897869688119,0.000664348117952574,-9.99996691716798e-10,0.00367921869688119 +250,-30,250,0.00369616817200411,0.000647158642829662,-9.99996691716798e-10,0.00369641817200411 +250,-30,260,0.00371206784873022,0.00063125896610355,-9.99996691716798e-10,0.00371232784873022 +250,-30,270,0.00372681659648484,0.000616510218348925,-9.99996691716798e-10,0.00372708659648484 +250,-30,280,0.00374053417758787,0.0006027926372459,-9.99996691716798e-10,0.00374081417758787 +250,-30,290,0.00375332440219997,0.000590002412633794,-9.99996691716798e-10,0.00375361440219997 +250,-30,300,0.003765277682206,0.000578049132627766,-9.99996691716798e-10,0.003765577682206 +250,-30,310,0.00377647311265935,0.000566853702174414,-9.99996691716798e-10,0.00377678311265935 +250,-30,320,0.00378698017908963,0.000556346635744136,-9.99996691716798e-10,0.00378730017908963 +250,-30,330,0.00379686016641335,0.000546466648420422,-9.99996691716798e-10,0.00379719016641335 +250,-30,340,0.00380616732825382,0.000537159486579949,-9.99996691716798e-10,0.00380650732825382 +250,-30,350,0.00381494986266258,0.000528376952171192,-9.99996691716798e-10,0.00381529986266258 +250,-30,360,0.0038232507304624,0.000520076084371372,-9.99996691716798e-10,0.0038236107304624 +250,-30,370,0.00383110834492432,0.00051221846990945,-9.99996691716798e-10,0.00383147834492432 +250,-30,380,0.0038385571556817,0.000504769659152071,-9.99996691716798e-10,0.0038389371556817 +250,-30,390,0.00384562814525934,0.000497698669574426,-9.99996691716798e-10,0.00384601814525934 +250,-30,400,0.00385234925304821,0.000490977561785558,-9.99996691716798e-10,0.00385274925304821 +250,-30,410,0.00385874573875798,0.000484581076075788,-9.99996691716798e-10,0.00385915573875798 +250,-30,420,0.00386484049515985,0.000478486319673923,-9.99996691716798e-10,0.00386526049515985 +250,-30,430,0.00387065431816066,0.000472672496673109,-9.99996691716798e-10,0.00387108431816066 +250,-30,440,0.00387620614082913,0.00046712067400464,-9.99996691716798e-10,0.00387664614082913 +250,-30,450,0.00388151323684945,0.000461813577984316,-9.99996691716798e-10,0.00388196323684945 +250,-30,460,0.00388659139795021,0.000456735416883555,-9.99996691716798e-10,0.00388705139795021 +250,-30,470,0.00389145508910125,0.000451871725732522,-9.99996691716798e-10,0.00389192508910125 +250,-30,480,0.00389611758465403,0.000447209230179743,-9.99996691716798e-10,0.00389659758465403 +250,-30,490,0.00390059108809432,0.000442735726739452,-9.99996691716798e-10,0.00390108108809432 +250,-30,500,0.00390488683765808,0.00043843997717569,-9.99996691716798e-10,0.00390538683765808 +250,-30,510,0.00390901519971584,0.000434311615117931,-9.99996691716798e-10,0.00390952519971584 +250,-30,520,0.00391298575154343,0.000430341063290341,-9.99996691716798e-10,0.00391350575154343 +250,-30,530,0.00391680735485749,0.000426519459976279,-9.99996691716798e-10,0.00391733735485749 +250,-30,540,0.00392048822129366,0.000422838593540109,-9.99996691716798e-10,0.00392102822129366 +250,-30,550,0.00392403597083703,0.000419290843996739,-9.99996691716798e-10,0.00392458597083703 +250,-30,560,0.00392745768407274,0.000415869130761025,-9.99996691716798e-10,0.00392801768407274 +250,-30,570,0.00393075994900475,0.000412566865829013,-9.99996691716798e-10,0.00393132994900475 +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,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 +250,-40,200,0.000388404410727432,8.1028722542568e-05,-9.99995592110281e-10,0.000388604410727432 +250,-40,210,0.000391028636967921,7.84044963020789e-05,-9.99995592110281e-10,0.000391238636967921 +250,-40,220,0.000393422460872954,7.6010672397046e-05,-9.99995592110281e-10,0.000393642460872954 +250,-40,230,0.000395614648540122,7.38184847298777e-05,-9.99995592110281e-10,0.000395844648540122 +250,-40,240,0.000397629414165238,7.18037191047619e-05,-9.99995592110281e-10,0.000397869414165238 +250,-40,250,0.000399487277851354,6.99458554186455e-05,-9.99995592110281e-10,0.000399737277851354 +250,-40,260,0.00040120573823477,6.82273950352299e-05,-9.99995592110281e-10,0.00040146573823477 +250,-40,270,0.000402799804526677,6.66333287433227e-05,-9.99995592110281e-10,0.000403069804526677 +250,-40,280,0.000404282420814285,6.51507124557145e-05,-9.99995592110281e-10,0.000404562420814285 +250,-40,290,0.000405664807052038,6.37683262179619e-05,-9.99995592110281e-10,0.000405954807052038 +250,-40,300,0.000406956735089071,6.24763981809284e-05,-9.99995592110281e-10,0.000407256735089071 +250,-40,310,0.00040816675363478,6.12663796352195e-05,-9.99995592110281e-10,0.00040847675363478 +250,-40,320,0.00040930237278713,6.01307604828693e-05,-9.99995592110281e-10,0.00040962237278713 +250,-40,330,0.000410370216309796,5.9062916960204e-05,-9.99995592110281e-10,0.000410700216309796 +250,-40,340,0.000411376148013968,5.80569852560314e-05,-9.99995592110281e-10,0.000411716148013968 +250,-40,350,0.000412325377215757,5.71077560542422e-05,-9.99995592110281e-10,0.000412675377215757 +250,-40,360,0.000413222547183908,5.62105860860921e-05,-9.99995592110281e-10,0.000413582547183908 +250,-40,370,0.0004140718096811,5.53613235888999e-05,-9.99995592110281e-10,0.0004144418096811 +250,-40,380,0.000414876888074241,5.45562451957591e-05,-9.99995592110281e-10,0.000415256888074241 +250,-40,390,0.000415641131000059,5.37920022699408e-05,-9.99995592110281e-10,0.000416031131000059 +250,-40,400,0.000416367558188913,5.3065575081087e-05,-9.99995592110281e-10,0.000416767558188913 +250,-40,410,0.000417058899747277,5.23742335227222e-05,-9.99995592110281e-10,0.000417468899747277 +250,-40,420,0.000417717629959444,5.17155033105555e-05,-9.99995592110281e-10,0.000418137629959444 +250,-40,430,0.000418345996477531,5.10871367924689e-05,-9.99995592110281e-10,0.000418775996477531 +250,-40,440,0.000418946045615375,5.04870876546242e-05,-9.99995592110281e-10,0.000419386045615375 +250,-40,450,0.000419519644338105,4.99134889318947e-05,-9.99995592110281e-10,0.000419969644338105 +250,-40,460,0.000420068499438909,4.93646338310908e-05,-9.99995592110281e-10,0.000420528499438909 +250,-40,470,0.000420594174312945,4.88389589570543e-05,-9.99995592110281e-10,0.000421064174312945 +250,-40,480,0.000421098103671594,4.83350295984061e-05,-9.99995592110281e-10,0.000421578103671594 +250,-40,490,0.000421581606485496,4.78515267845038e-05,-9.99995592110281e-10,0.000422071606485496 +250,-40,500,0.00042204589739968,4.73872358703195e-05,-9.99995592110281e-10,0.00042254589739968 +250,-40,510,0.000422492096826679,4.69410364433208e-05,-9.99995592110281e-10,0.000423002096826679 +250,-40,520,0.000422921239892513,4.65118933774869e-05,-9.99995592110281e-10,0.000423441239892513 +250,-40,530,0.000423334284384516,4.60988488854841e-05,-9.99995592110281e-10,0.000423864284384516 +250,-40,540,0.000423732117828312,4.57010154416874e-05,-9.99995592110281e-10,0.000424272117828312 +250,-40,550,0.000424115563803069,4.53175694669306e-05,-9.99995592110281e-10,0.000424665563803069 +250,-40,560,0.000424485387588815,4.49477456811849e-05,-9.99995592110281e-10,0.000425045387588815 +250,-40,570,0.00042484230122668,4.45908320433193e-05,-9.99995592110281e-10,0.00042541230122668 +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,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 +250,-46,180,9.92648258869794e-05,2.26178948397822e-05,-9.99994929570813e-10,9.94448258869794e-05 +250,-46,190,0.000100094470593629,2.17882501331327e-05,-9.99994929570813e-10,0.000100284470593629 +250,-46,200,0.000100844578208556,2.10381425182056e-05,-9.99994929570813e-10,0.000101044578208556 +250,-46,210,0.00010152592728966,2.03567934371014e-05,-9.99994929570813e-10,0.00010173592728966 +250,-46,220,0.000102147455149131,1.97352655776302e-05,-9.99994929570813e-10,0.000102367455149131 +250,-46,230,0.000102716630561521,1.9166090165241e-05,-9.99994929570813e-10,0.000102946630561521 +250,-46,240,0.000103239740454308,1.86429802724533e-05,-9.99994929570813e-10,0.000103479740454308 +250,-46,250,0.000103722112627798,1.8160608098964e-05,-9.99994929570813e-10,0.000103972112627798 +250,-46,260,0.000104168290394443,1.77144303323184e-05,-9.99994929570813e-10,0.000104428290394443 +250,-46,270,0.000104582170717127,1.73005500096342e-05,-9.99994929570813e-10,0.000104852170717127 +250,-46,280,0.000104967114373892,1.69156063528694e-05,-9.99994929570813e-10,0.000105247114373892 +250,-46,290,0.000105326034492246,1.65566862345155e-05,-9.99994929570813e-10,0.000105616034492246 +250,-46,300,0.000105661468216406,1.62212525103555e-05,-9.99994929570813e-10,0.000105961468216406 +250,-46,310,0.000105975635116926,1.59070856098355e-05,-9.99994929570813e-10,0.000106285635116926 +250,-46,320,0.000106270485101276,1.56122356254859e-05,-9.99994929570813e-10,0.000106590485101276 +250,-46,330,0.000106547737950784,1.53349827759772e-05,-9.99994929570813e-10,0.000106877737950784 +250,-46,340,0.000106808916134173,1.50738045925886e-05,-9.99994929570813e-10,0.000107148916134173 +250,-46,350,0.000107055372188311,1.48273485384506e-05,-9.99994929570813e-10,0.000107405372188311 +250,-46,360,0.000107288311682613,1.45944090441487e-05,-9.99994929570813e-10,0.000107648311682613 +250,-46,370,0.000107508812572799,1.43739081539624e-05,-9.99994929570813e-10,0.000107878812572799 +250,-46,380,0.000107717841586731,1.41648791400306e-05,-9.99994929570813e-10,0.000108097841586731 +250,-46,390,0.000107916268158043,1.39664525687188e-05,-9.99994929570813e-10,0.000108306268158043 +250,-46,400,0.000108104876323748,1.37778444030134e-05,-9.99994929570813e-10,0.000108504876323748 +250,-46,410,0.00010828437492347,1.35983458032916e-05,-9.99994929570813e-10,0.00010869437492347 +250,-46,420,0.000108455406375648,1.34273143511133e-05,-9.99994929570813e-10,0.000108875406375648 +250,-46,430,0.000108618554256379,1.32641664703821e-05,-9.99994929570813e-10,0.000109048554256379 +250,-46,440,0.000108774349866674,1.31083708600876e-05,-9.99994929570813e-10,0.000109214349866674 +250,-46,450,0.000108923277941786,1.29594427849757e-05,-9.99994929570813e-10,0.000109373277941786 +250,-46,460,0.000109065781630234,1.28169390965276e-05,-9.99994929570813e-10,0.000109525781630234 +250,-46,470,0.000109202266848947,1.2680453877815e-05,-9.99994929570813e-10,0.000109672266848947 +250,-46,480,0.000109333106103641,1.25496146231201e-05,-9.99994929570813e-10,0.000109813106103641 +250,-46,490,0.000109458641849333,1.24240788774284e-05,-9.99994929570813e-10,0.000109948641849333 +250,-46,500,0.000109579189454133,1.23035312726283e-05,-9.99994929570813e-10,0.000110079189454133 +250,-46,510,0.000109695039819808,1.21876809069532e-05,-9.99994929570813e-10,0.000110205039819808 +250,-46,520,0.000109806461704498,1.20762590222633e-05,-9.99994929570813e-10,0.000110326461704498 +250,-46,530,0.000109913703786274,1.19690169404873e-05,-9.99994929570813e-10,0.000110443703786274 +250,-46,540,0.000110016996500592,1.18657242261697e-05,-9.99994929570813e-10,0.000110556996500592 +250,-46,550,0.00011011655367997,1.17661670467914e-05,-9.99994929570813e-10,0.00011066655367997 +250,-46,560,0.000110212574020252,1.16701467065096e-05,-9.99994929570813e-10,0.000110772574020252 +250,-46,570,0.000110305242394435,1.1577478332327e-05,-9.99994929570813e-10,0.000110875242394435 +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,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,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 +250,-50,220,4.15236388946541e-05,8.0225203862319e-06,-9.99994492503764e-10,4.17436388946541e-05 +250,-50,230,4.17550125912113e-05,7.79114668967468e-06,-9.99994492503764e-10,4.19850125912113e-05 +250,-50,240,4.19676603391031e-05,7.57849894178293e-06,-9.99994492503764e-10,4.22076603391031e-05 +250,-50,250,4.21637479255785e-05,7.38241135530753e-06,-9.99994492503764e-10,4.24137479255785e-05 +250,-50,260,4.23451222382128e-05,7.20103704267324e-06,-9.99994492503764e-10,4.26051222382128e-05 +250,-50,270,4.25133674190609e-05,7.0327918618251e-06,-9.99994492503764e-10,4.27833674190609e-05 +250,-50,280,4.26698496473744e-05,6.8763096335116e-06,-9.99994492503764e-10,4.29498496473744e-05 +250,-50,290,4.28157531294024e-05,6.73040615148363e-06,-9.99994492503764e-10,4.31057531294024e-05 +250,-50,300,4.29521092316153e-05,6.59405004927069e-06,-9.99994492503764e-10,4.32521092316153e-05 +250,-50,310,4.30798202246185e-05,6.46633905626748e-06,-9.99994492503764e-10,4.33898202246185e-05 +250,-50,320,4.31996787591298e-05,6.34648052175623e-06,-9.99994492503764e-10,4.35196787591298e-05 +250,-50,330,4.33123839380176e-05,6.23377534286846e-06,-9.99994492503764e-10,4.36423839380176e-05 +250,-50,340,4.34185546552259e-05,6.12760462566014e-06,-9.99994492503764e-10,4.37585546552259e-05 +250,-50,350,4.35187407262395e-05,6.02741855464656e-06,-9.99994492503764e-10,4.38687407262395e-05 +250,-50,360,4.36134322232677e-05,5.93272705761832e-06,-9.99994492503764e-10,4.39734322232677e-05 +250,-50,370,4.37030673426809e-05,5.84309193820512e-06,-9.99994492503764e-10,4.40730673426809e-05 +250,-50,380,4.3788039065964e-05,5.75812021492199e-06,-9.99994492503764e-10,4.4168039065964e-05 +250,-50,390,4.38687008238338e-05,5.6774584570522e-06,-9.99994492503764e-10,4.42587008238338e-05 +250,-50,400,4.39453713326967e-05,5.60078794818929e-06,-9.99994492503764e-10,4.43453713326967e-05 +250,-50,410,4.40183387407057e-05,5.52782054018033e-06,-9.99994492503764e-10,4.44283387407057e-05 +250,-50,420,4.40878641953488e-05,5.45829508553721e-06,-9.99994492503764e-10,4.45078641953488e-05 +250,-50,430,4.41541849242991e-05,5.39197435658689e-06,-9.99994492503764e-10,4.45841849242991e-05 +250,-50,440,4.42175169050499e-05,5.32864237583616e-06,-9.99994492503764e-10,4.46575169050499e-05 +250,-50,450,4.42780571857959e-05,5.2681020950901e-06,-9.99994492503764e-10,4.47280571857959e-05 +250,-50,460,4.433598590944e-05,5.21017337144605e-06,-9.99994492503764e-10,4.479598590944e-05 +250,-50,470,4.43914680839886e-05,5.15469119689747e-06,-9.99994492503764e-10,4.48614680839886e-05 +250,-50,480,4.44446551355628e-05,5.10150414532322e-06,-9.99994492503764e-10,4.49246551355628e-05 +250,-50,490,4.44956862744675e-05,5.05047300641853e-06,-9.99994492503764e-10,4.49856862744675e-05 +250,-50,500,4.45446896999961e-05,5.00146958088996e-06,-9.99994492503764e-10,4.50446896999961e-05 +250,-50,510,4.45917836657056e-05,4.95437561518046e-06,-9.99994492503764e-10,4.51017836657056e-05 +250,-50,520,4.46370774236173e-05,4.9090818572687e-06,-9.99994492503764e-10,4.51570774236173e-05 +250,-50,530,4.46806720630675e-05,4.86548721781854e-06,-9.99994492503764e-10,4.52106720630675e-05 +250,-50,540,4.47226612576442e-05,4.82349802324186e-06,-9.99994492503764e-10,4.52626612576442e-05 +250,-50,550,4.47631319317284e-05,4.78302734915762e-06,-9.99994492503764e-10,4.53131319317284e-05 +250,-50,560,4.48021648565388e-05,4.74399442434726e-06,-9.99994492503764e-10,4.53621648565388e-05 +250,-50,570,4.48398351842125e-05,4.70632409667348e-06,-9.99994492503764e-10,4.54098351842125e-05 +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,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 +250,-60,190,4.28236222263165e-06,9.32171165040517e-07,-9.99993385958353e-10,4.47236222263165e-06 +250,-60,200,4.31445423025227e-06,9.00079157419901e-07,-9.99993385958353e-10,4.51445423025227e-06 +250,-60,210,4.34360452744692e-06,8.70928860225252e-07,-9.99993385958353e-10,4.55360452744692e-06 +250,-60,220,4.3701954810723e-06,8.44337906599867e-07,-9.99993385958353e-10,4.5901954810723e-06 +250,-60,230,4.39454662923874e-06,8.1998675843343e-07,-9.99993385958353e-10,4.62454662923874e-06 +250,-60,240,4.41692694685142e-06,7.97606440820746e-07,-9.99993385958353e-10,4.65692694685143e-06 +250,-60,250,4.43756437428121e-06,7.76969013390958e-07,-9.99993385958353e-10,4.68756437428121e-06 +250,-60,260,4.45665328899478e-06,7.57880098677392e-07,-9.99993385958353e-10,4.71665328899478e-06 +250,-60,270,4.47436041555274e-06,7.4017297211943e-07,-9.99993385958353e-10,4.74436041555274e-06 +250,-60,280,4.49082953880995e-06,7.23703848862225e-07,-9.99993385958353e-10,4.77082953880995e-06 +250,-60,290,4.50618529169685e-06,7.0834809597532e-07,-9.99993385958353e-10,4.79618529169685e-06 +250,-60,300,4.52053622137379e-06,6.93997166298385e-07,-9.99993385958353e-10,4.82053622137379e-06 +250,-60,310,4.53397728818206e-06,6.80556099490107e-07,-9.99993385958353e-10,4.84397728818206e-06 +250,-60,320,4.54659191541206e-06,6.67941472260111e-07,-9.99993385958353e-10,4.86659191541206e-06 +250,-60,330,4.55845368082039e-06,6.56079706851777e-07,-9.99993385958353e-10,4.88845368082039e-06 +250,-60,340,4.56962772049797e-06,6.44905667174205e-07,-9.99993385958353e-10,4.90962772049797e-06 +250,-60,350,4.5801719003065e-06,6.34361487365669e-07,-9.99993385958353e-10,4.9301719003065e-06 +250,-60,360,4.59013779836902e-06,6.24395589303155e-07,-9.99993385958353e-10,4.95013779836902e-06 +250,-60,370,4.59957153308573e-06,6.14961854586437e-07,-9.99993385958353e-10,4.96957153308573e-06 +250,-60,380,4.6085144641726e-06,6.0601892349957e-07,-9.99993385958353e-10,4.9885144641726e-06 +250,-60,390,4.61700378878676e-06,5.97529598885409e-07,-9.99993385958353e-10,5.00700378878676e-06 +250,-60,400,4.62507305054425e-06,5.89460337127925e-07,-9.99993385958353e-10,5.02507305054425e-06 +250,-60,410,4.63275257587572e-06,5.81780811796455e-07,-9.99993385958353e-10,5.04275257587572e-06 +250,-60,420,4.64006984950079e-06,5.74463538171383e-07,-9.99993385958353e-10,5.06006984950079e-06 +250,-60,430,4.64704983867504e-06,5.67483548997135e-07,-9.99993385958353e-10,5.07704983867504e-06 +250,-60,440,4.65371527415834e-06,5.60818113513834e-07,-9.99993385958353e-10,5.09371527415834e-06 +250,-60,450,4.66008689447828e-06,5.54446493193888e-07,-9.99993385958353e-10,5.11008689447828e-06 +250,-60,460,4.66618365894865e-06,5.48349728723515e-07,-9.99993385958353e-10,5.12618365894865e-06 +250,-60,470,4.67202293399648e-06,5.42510453675694e-07,-9.99993385958353e-10,5.14202293399648e-06 +250,-60,480,4.67762065661012e-06,5.36912731062051e-07,-9.99993385958353e-10,5.15762065661012e-06 +250,-60,490,4.68299147811257e-06,5.31541909559605e-07,-9.99993385958353e-10,5.17299147811257e-06 +250,-60,500,4.68814889096228e-06,5.26384496709893e-07,-9.99993385958353e-10,5.18814889096228e-06 +250,-60,510,4.69310534086908e-06,5.21428046803094e-07,-9.99993385958353e-10,5.20310534086908e-06 +250,-60,520,4.69787232616747e-06,5.16661061504696e-07,-9.99993385958353e-10,5.21787232616747e-06 +250,-60,530,4.70246048610229e-06,5.12072901569884e-07,-9.99993385958353e-10,5.23246048610229e-06 +250,-60,540,4.70687967944077e-06,5.076537082314e-07,-9.99993385958353e-10,5.24687967944077e-06 +250,-60,550,4.71113905462337e-06,5.03394333048806e-07,-9.99993385958353e-10,5.26113905462337e-06 +250,-60,560,4.71524711249498e-06,4.99286275177192e-07,-9.99993385958353e-10,5.27524711249498e-06 +250,-60,570,4.71921176251489e-06,4.9532162515728e-07,-9.99993385958353e-10,5.28921176251489e-06 +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,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 +400,0,180,0.44119749546095,0.100528646141714,-9.24262545921235e-110,0.44119767546095 +400,0,190,0.444884976534184,0.0968411650684797,-2.6300341248365e-117,0.444885166534184 +400,0,200,0.448218943002919,0.0935071985997444,1.38422819652212e-118,0.448219143002919 +400,0,210,0.451247301793979,0.0904788398086853,4.35350883813035e-126,0.451247511793979 +400,0,220,0.454009776139827,0.0877163654628367,-2.07309892305382e-127,0.454009996139827 +400,0,230,0.456539562135825,0.0851865794668385,-7.14102122713026e-135,0.456539792135825 +400,0,240,0.458864602979715,0.0828615386229493,3.10479090790003e-136,0.458864842979715 +400,0,250,0.461008578883786,0.080717562718878,1.16247828252341e-143,0.461008828883786 +400,0,260,0.462991683285727,0.0787344583169368,-4.64991150052341e-145,0.462991943285727 +400,0,270,0.464831236825032,0.0768949047776321,-1.88027319217195e-152,0.464831506825032 +400,0,280,0.466542176986772,0.0751839646158917,6.96397196286446e-154,0.466542456986772 +400,0,290,0.468137451605685,0.0735886899969789,3.02459714311403e-161,0.468137741605685 +400,0,300,0.46962833740204,0.0720978042006243,-1.04296404788728e-162,0.46962863740204 +400,0,310,0.471024699592046,0.0707014420106177,-4.84220957744239e-170,0.471025009592046 +400,0,320,0.47233520483365,0.0693909367690141,1.56200226604808e-171,0.47233552483365 +400,0,330,0.473567496954445,0.0681586446482188,7.71983781454779e-179,0.473567826954445 +400,0,340,0.474728342796368,0.0669977988062962,-2.33934340255108e-180,0.474728682796368 +400,0,350,0.475823753913602,0.0659023876890624,-1.22623759778336e-187,0.475824103913602 +400,0,360,0.476859088641302,0.0648670529613618,3.50353366395621e-189,0.476859448641302 +400,0,370,0.477839138116308,0.0638870034863555,1.94142516131204e-196,0.477839508116308 +400,0,380,0.478768199106456,0.0629579424962081,-5.24709114854839e-198,0.478768579106456 +400,0,390,0.479650135940711,0.0620760056619529,-3.06475584646932e-205,0.479650525940711 +400,0,400,0.480488433389875,0.0612377082127894,7.85834189049905e-207,0.480488833389875 +400,0,410,0.481286241998597,0.0604398996040666,4.82533507399056e-214,0.481286651998597 +400,0,420,0.482046417092563,0.0596797245101008,-1.17690993256546e-215,0.482046837092563 +400,0,430,0.48277155246378,0.0589545891388837,-7.57921835019235e-223,0.48277198246378 +400,0,440,0.483464009559751,0.0582621320429129,1.76260717639191e-224,0.483464449559751 +400,0,450,0.484125942859448,0.057600198743216,1.18790256424665e-231,0.484126392859448 +400,0,460,0.484759322003324,0.0569668195993403,-2.63978062695451e-233,0.484759782003324 +400,0,470,0.485365951150409,0.0563601904522547,-1.85814031413343e-240,0.485366421150409 +400,0,480,0.485947485958571,0.0557786556440934,3.9534853880281e-242,0.485947965958571 +400,0,490,0.486505448520789,0.0552206930818754,2.90127615722786e-249,0.486505938520789 +400,0,500,0.487041240538216,0.0546849010644475,-5.92096421199582e-251,0.487041740538216 +400,0,510,0.487556154967647,0.0541699866350174,-4.52246802742357e-258,0.487556664967647 +400,0,520,0.488051386345181,0.0536747552574827,8.86757216704983e-260,0.488051906345181 +400,0,530,0.488528039958028,0.0531981016446363,7.03871754724518e-267,0.488528569958028 +400,0,540,0.488987140011335,0.052739001591329,-1.32805794548559e-268,0.488987680011335 +400,0,550,0.489429636915998,0.0522965046866664,-1.0939379689506e-275,0.489430186915998 +400,0,560,0.489856413805667,0.0518697277969966,1.98897495591316e-277,0.489856973805667 +400,0,570,0.490268292376273,0.0514578492263906,1.69791990644622e-284,0.490268862376273 +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,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 +400,-10,190,0.284591686139426,0.0619490248226609,-9.99998805539803e-10,0.284591876139426 +400,-10,200,0.286724415246759,0.0598162957153277,-9.99998805539803e-10,0.286724615246759 +400,-10,210,0.288661647969915,0.0578790629921714,-9.99998805539803e-10,0.288661857969915 +400,-10,220,0.290428795150579,0.0561119158115078,-9.99998805539803e-10,0.290429015150579 +400,-10,230,0.292047092238922,0.0544936187231643,-9.99998805539803e-10,0.292047322238922 +400,-10,240,0.293534414421074,0.0530062965410123,-9.99998805539803e-10,0.293534654421074 +400,-10,250,0.294905909863189,0.0516348010988976,-9.99998805539803e-10,0.294906159863189 +400,-10,260,0.296174496251373,0.0503662147107133,-9.99998805539803e-10,0.296174756251373 +400,-10,270,0.297351253550693,0.0491894574113931,-9.99998805539803e-10,0.297351523550693 +400,-10,280,0.298445737228939,0.0480949737331475,-9.99998805539803e-10,0.298446017228939 +400,-10,290,0.299466229980096,0.0470744809819904,-9.99998805539803e-10,0.299466519980096 +400,-10,300,0.300419945490858,0.0461207654712279,-9.99998805539803e-10,0.300420245490858 +400,-10,310,0.301313194512687,0.0452275164493995,-9.99998805539803e-10,0.301313504512687 +400,-10,320,0.302151521082642,0.0443891898794442,-9.99998805539803e-10,0.302151841082642 +400,-10,330,0.302939814936046,0.0436008960260407,-9.99998805539803e-10,0.302940144936046 +400,-10,340,0.303682404802924,0.0428583061591623,-9.99998805539803e-10,0.303682744802924 +400,-10,350,0.304383136257823,0.0421575747042635,-9.99998805539803e-10,0.304383486257823 +400,-10,360,0.305045437012886,0.0414952739491999,-9.99998805539803e-10,0.305045797012886 +400,-10,370,0.305672371945068,0.0408683390170183,-9.99998805539803e-10,0.305672741945068 +400,-10,380,0.30626668968484,0.0402740212772461,-9.99998805539803e-10,0.30626706968484 +400,-10,390,0.30683086223273,0.0397098487293563,-9.99998805539803e-10,0.30683125223273 +400,-10,400,0.307367118786958,0.0391735921751288,-9.99998805539803e-10,0.307367518786958 +400,-10,410,0.307877474742202,0.0386632362198845,-9.99998805539803e-10,0.307877884742202 +400,-10,420,0.308363756642387,0.0381769543196992,-9.99998805539803e-10,0.308364176642387 +400,-10,430,0.30882762372907,0.037713087233016,-9.99998805539803e-10,0.30882805372907 +400,-10,440,0.309270586613672,0.0372701243484143,-9.99998805539803e-10,0.309271026613672 +400,-10,450,0.309694023510418,0.0368466874516683,-9.99998805539803e-10,0.309694473510418 +400,-10,460,0.310099194392846,0.0364415165692407,-9.99998805539803e-10,0.310099654392846 +400,-10,470,0.310487253376485,0.0360534575856011,-9.99998805539803e-10,0.310487723376485 +400,-10,480,0.310859259581084,0.0356814513810025,-9.99998805539803e-10,0.310859739581084 +400,-10,490,0.311216186685302,0.0353245242767848,-9.99998805539803e-10,0.311216676685302 +400,-10,500,0.31155893135348,0.0349817796086062,-9.99998805539803e-10,0.31155943135348 +400,-10,510,0.311888320686495,0.0346523902755911,-9.99998805539803e-10,0.311888830686495 +400,-10,520,0.31220511882578,0.0343355921363064,-9.99998805539803e-10,0.31220563882578 +400,-10,530,0.312510032820496,0.0340306781415899,-9.99998805539803e-10,0.312510562820496 +400,-10,540,0.312803717851839,0.033736993110247,-9.99998805539803e-10,0.312804257851839 +400,-10,550,0.313086781895023,0.0334539290670634,-9.99998805539803e-10,0.313087331895023 +400,-10,560,0.313359789888196,0.0331809210738903,-9.99998805539803e-10,0.313360349888196 +400,-10,570,0.313623267467967,0.0329174434941198,-9.99998805539803e-10,0.313623837467967 +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,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 +400,-20,190,0.147721101171693,0.0321554655635046,-9.99997784134621e-10,0.147721291171693 +400,-20,200,0.14882812259073,0.0310484441444677,-9.99997784134621e-10,0.14882832259073 +400,-20,210,0.149833669010488,0.0300428977247093,-9.99997784134621e-10,0.149833879010488 +400,-20,220,0.150750930266434,0.0291256364687632,-9.99997784134621e-10,0.150751150266434 +400,-20,230,0.151590928901517,0.0282856378336803,-9.99997784134621e-10,0.151591158901517 +400,-20,240,0.152362943268925,0.0275136234662721,-9.99997784134621e-10,0.152363183268926 +400,-20,250,0.153074836225847,0.0268017305093503,-9.99997784134621e-10,0.153075086225847 +400,-20,260,0.153733312869126,0.026143253866072,-9.99997784134621e-10,0.153733572869126 +400,-20,270,0.154344124402047,0.025532442333151,-9.99997784134621e-10,0.154344394402047 +400,-20,280,0.154912230717302,0.0249643360178959,-9.99997784134621e-10,0.154912510717302 +400,-20,290,0.155441931057405,0.0244346356777925,-9.99997784134621e-10,0.155442221057405 +400,-20,300,0.155936969782413,0.0239395969527845,-9.99997784134621e-10,0.155937269782413 +400,-20,310,0.156400622571836,0.0234759441633618,-9.99997784134621e-10,0.156400932571836 +400,-20,320,0.156835767131873,0.023040799603325,-9.99997784134621e-10,0.156836087131873 +400,-20,330,0.1572449415447,0.0226316251904976,-9.99997784134621e-10,0.1572452715447 +400,-20,340,0.157630392695232,0.0222461740399659,-9.99997784134621e-10,0.157630732695232 +400,-20,350,0.157994116680101,0.0218824500550966,-9.99997784134621e-10,0.157994466680101 +400,-20,360,0.158337892698902,0.0215386740362958,-9.99997784134621e-10,0.158338252698902 +400,-20,370,0.158663311616795,0.0212132551184026,-9.99997784134621e-10,0.158663681616795 +400,-20,380,0.158971800146997,0.0209047665882001,-9.99997784134621e-10,0.158972180146997 +400,-20,390,0.159264641414273,0.0206119253209247,-9.99997784134621e-10,0.159265031414273 +400,-20,400,0.159542992513617,0.0203335742215808,-9.99997784134621e-10,0.159543392513617 +400,-20,410,0.159807899562452,0.0200686671727456,-9.99997784134621e-10,0.159808309562452 +400,-20,420,0.160060310652704,0.0198162560824932,-9.99997784134621e-10,0.160060730652704 +400,-20,430,0.16030108703578,0.0195754796994172,-9.99997784134621e-10,0.16030151703578 +400,-20,440,0.160531012814636,0.0193455539205612,-9.99997784134621e-10,0.160531452814636 +400,-20,450,0.160750803369703,0.0191257633654942,-9.99997784134621e-10,0.160751253369703 +400,-20,460,0.16096111270701,0.0189154540281877,-9.99997784134621e-10,0.16096157270701 +400,-20,470,0.161162539885577,0.0187140268496203,-9.99997784134621e-10,0.161163009885577 +400,-20,480,0.161355634655602,0.0185209320795957,-9.99997784134621e-10,0.161356114655602 +400,-20,490,0.161540902417947,0.0183356643172506,-9.99997784134621e-10,0.161541392417947 +400,-20,500,0.161718808598169,0.0181577581370284,-9.99997784134621e-10,0.161719308598169 +400,-20,510,0.161889782513983,0.017986784221215,-9.99997784134621e-10,0.161890292513983 +400,-20,520,0.162054220803165,0.0178223459320326,-9.99997784134621e-10,0.162054740803165 +400,-20,530,0.162212490468991,0.0176640762662065,-9.99997784134621e-10,0.162213020468991 +400,-20,540,0.162364931591977,0.0175116351432204,-9.99997784134621e-10,0.162365471591977 +400,-20,550,0.162511859749747,0.0173647069854501,-9.99997784134621e-10,0.162512409749747 +400,-20,560,0.162653568180964,0.0172229985542332,-9.99997784134621e-10,0.162654128180964 +400,-20,570,0.162790329724303,0.0170862370108946,-9.99997784134621e-10,0.162790899724303 +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,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 +400,-30,190,0.0571557833590804,0.0124414914929582,-9.99996691716798e-10,0.0571559733590804 +400,-30,200,0.0575841086010294,0.0120131662510092,-9.99996691716798e-10,0.0575843086010294 +400,-30,210,0.057973171455756,0.0116241033962827,-9.99996691716798e-10,0.057973381455756 +400,-30,220,0.0583280752928699,0.0112691995591687,-9.99996691716798e-10,0.0583282952928699 +400,-30,230,0.0586530849199842,0.0109441899320545,-9.99996691716798e-10,0.0586533149199842 +400,-30,240,0.0589517902883012,0.0106454845637375,-9.99996691716798e-10,0.0589520302883012 +400,-30,250,0.0592272336697676,0.0103700411822711,-9.99996691716798e-10,0.0592274836697676 +400,-30,260,0.0594820093793427,0.010115265472696,-9.99996691716798e-10,0.0594822693793427 +400,-30,270,0.059718342654494,0.00987893219754468,-9.99996691716798e-10,0.059718612654494 +400,-30,280,0.0599381525612852,0.00965912229075347,-9.99996691716798e-10,0.0599384325612852 +400,-30,290,0.0601431025490936,0.00945417230294508,-9.99996691716798e-10,0.0601433925490936 +400,-30,300,0.0603346413739229,0.00926263347811577,-9.99996691716798e-10,0.0603349413739229 +400,-30,310,0.0605140364513754,0.00908323840066322,-9.99996691716798e-10,0.0605143464513754 +400,-30,320,0.0606824012144734,0.00891487363756522,-9.99996691716798e-10,0.0606827212144734 +400,-30,330,0.0608407176899813,0.00875655716205737,-9.99996691716798e-10,0.0608410476899813 +400,-30,340,0.0609898552355354,0.00860741961650324,-9.99996691716798e-10,0.0609901952355354 +400,-30,350,0.0611305861745604,0.0084666886774783,-9.99996691716798e-10,0.0611309361745604 +400,-30,360,0.0612635989093611,0.00833367594267754,-9.99996691716798e-10,0.0612639589093611 +400,-30,370,0.0613895089724768,0.00820776587956185,-9.99996691716798e-10,0.0613898789724768 +400,-30,380,0.0615088683832933,0.00808840646874534,-9.99996691716798e-10,0.0615092483832933 +400,-30,390,0.0616221736044041,0.00797510124763453,-9.99996691716798e-10,0.0616225636044041 +400,-30,400,0.0617298723353618,0.00786740251667687,-9.99996691716798e-10,0.0617302723353618 +400,-30,410,0.0618323693366258,0.00776490551541285,-9.99996691716798e-10,0.0618327793366258 +400,-30,420,0.0619300314409391,0.00766724341109961,-9.99996691716798e-10,0.0619304514409391 +400,-30,430,0.062023191880984,0.0075740829710547,-9.99996691716798e-10,0.062023621880984 +400,-30,440,0.0621121540394077,0.00748512081263098,-9.99996691716798e-10,0.0621125940394077 +400,-30,450,0.0621971947089542,0.0074000801430845,-9.99996691716798e-10,0.0621976447089542 +400,-30,460,0.0622785669355767,0.00731870791646192,-9.99996691716798e-10,0.0622790269355767 +400,-30,470,0.0623565025053059,0.00724077234673279,-9.99996691716798e-10,0.0623569725053059 +400,-30,480,0.0624312141257566,0.0071660607262821,-9.99996691716798e-10,0.0624316941257566 +400,-30,490,0.0625028973450396,0.0070943775069991,-9.99996691716798e-10,0.0625033873450396 +400,-30,500,0.0625717322441458,0.00702554260789282,-9.99996691716798e-10,0.0625722322441458 +400,-30,510,0.0626378849333336,0.00695938991870505,-9.99996691716798e-10,0.0626383949333336 +400,-30,520,0.062701508878443,0.00689576597359569,-9.99996691716798e-10,0.062702028878443 +400,-30,530,0.0627627460792255,0.00683452877281312,-9.99996691716798e-10,0.0627632760792255 +400,-30,540,0.0628217281185639,0.00677554673347479,-9.99996691716798e-10,0.0628222681185639 +400,-30,550,0.0628785770987587,0.00671869775327998,-9.99996691716798e-10,0.0628791270987587 +400,-30,560,0.06293340647879,0.00666386837324863,-9.99996691716798e-10,0.06293396647879 +400,-30,570,0.0629863218245389,0.00661095302749972,-9.99996691716798e-10,0.062986891824539 +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,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,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 +400,-40,220,0.0173616123178605,0.00335432761832978,-9.99995592110281e-10,0.0173618323178605 +400,-40,230,0.0174583528860552,0.00325758705013517,-9.99995592110281e-10,0.0174585828860552 +400,-40,240,0.0175472638740475,0.00316867606214278,-9.99995592110281e-10,0.0175475038740475 +400,-40,250,0.0176292508276806,0.00308668910850975,-9.99995592110281e-10,0.0176295008276806 +400,-40,260,0.0177050859563976,0.00301085397979274,-9.99995592110281e-10,0.0177053459563976 +400,-40,270,0.0177754316120769,0.00294050832411346,-9.99995592110281e-10,0.0177757016120769 +400,-40,280,0.0178408590133098,0.00287508092288049,-9.99995592110281e-10,0.0178411390133098 +400,-40,290,0.0179018632932387,0.0028140766429516,-9.99995592110281e-10,0.0179021532932387 +400,-40,300,0.0179588756805635,0.00275706425562683,-9.99995592110281e-10,0.0179591756805635 +400,-40,310,0.0180122734272031,0.00270366650898724,-9.99995592110281e-10,0.0180125834272031 +400,-40,320,0.0180623879514732,0.00265355198471709,-9.99995592110281e-10,0.0180627079514732 +400,-40,330,0.0181095115580297,0.00260642837816062,-9.99995592110281e-10,0.0181098415580297 +400,-40,340,0.0181539030150587,0.00256203692113161,-9.99995592110281e-10,0.0181542430150587 +400,-40,350,0.0181957922080796,0.00252014772811073,-9.99995592110281e-10,0.0181961422080796 +400,-40,360,0.0182353840431154,0.00248055589307496,-9.99995592110281e-10,0.0182357440431154 +400,-40,370,0.0182728617361775,0.00244307820001281,-9.99995592110281e-10,0.0182732317361775 +400,-40,380,0.0183083895983036,0.00240755033788674,-9.99995592110281e-10,0.0183087695983036 +400,-40,390,0.0183421154038036,0.00237382453238676,-9.99995592110281e-10,0.0183425054038036 +400,-40,400,0.0183741724124503,0.00234176752374,-9.99995592110281e-10,0.0183745724124503 +400,-40,410,0.0184046811030038,0.00231125883318654,-9.99995592110281e-10,0.0184050911030038 +400,-40,420,0.0184337506648695,0.00228218927132084,-9.99995592110281e-10,0.0184341706648695 +400,-40,430,0.0184614802862448,0.00225445964994555,-9.99995592110281e-10,0.0184619102862448 +400,-40,440,0.0184879602703306,0.00222797966585971,-9.99995592110281e-10,0.0184884002703306 +400,-40,450,0.0185132730057244,0.00220266693046592,-9.99995592110281e-10,0.0185137230057244 +400,-40,460,0.0185374938126852,0.00217844612350515,-9.99995592110281e-10,0.0185379538126852 +400,-40,470,0.0185606916833609,0.00215524825282941,-9.99995592110281e-10,0.0185611616833609 +400,-40,480,0.018582929931124,0.00213301000506637,-9.99995592110281e-10,0.018583409931124 +400,-40,490,0.0186042667617435,0.00211167317444683,-9.99995592110281e-10,0.0186047567617435 +400,-40,500,0.0186247557771314,0.00209118415905893,-9.99995592110281e-10,0.0186252557771314 +400,-40,510,0.0186444464207485,0.00207149351544185,-9.99995592110281e-10,0.0186449564207485 +400,-40,520,0.018663384372388,0.00205255556380235,-9.99995592110281e-10,0.018663904372388 +400,-40,530,0.0186816118989107,0.00203432803727967,-9.99995592110281e-10,0.0186821418989107 +400,-40,540,0.0186991681665497,0.00201677176964067,-9.99995592110281e-10,0.0186997081665497 +400,-40,550,0.0187160895196005,0.00199985041658981,-9.99995592110281e-10,0.0187166395196005 +400,-40,560,0.0187324097296358,0.00198353020655454,-9.99995592110281e-10,0.0187329697296358 +400,-40,570,0.0187481602188118,0.00196777971737852,-9.99995592110281e-10,0.0187487302188118 +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,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 +400,-46,190,0.00765718552913271,0.00166679210784664,-9.99994929570813e-10,0.00765737552913271 +400,-46,200,0.00771456845088901,0.00160940918609034,-9.99994929570813e-10,0.00771476845088901 +400,-46,210,0.00776669137329598,0.00155728626368337,-9.99994929570813e-10,0.00776690137329598 +400,-46,220,0.00781423799703324,0.0015097396399461,-9.99994929570813e-10,0.00781445799703324 +400,-46,230,0.00785777968025947,0.00146619795671987,-9.99994929570813e-10,0.00785800968025947 +400,-46,240,0.00789779737032212,0.00142618026665723,-9.99994929570813e-10,0.00789803737032212 +400,-46,250,0.00793469864173694,0.00138927899524241,-9.99994929570813e-10,0.00793494864173694 +400,-46,260,0.00796883105602434,0.00135514658095501,-9.99994929570813e-10,0.00796909105602434 +400,-46,270,0.00800049272923021,0.00132348490774914,-9.99994929570813e-10,0.00800076272923021 +400,-46,280,0.00802994075948233,0.00129403687749702,-9.99994929570813e-10,0.00803022075948233 +400,-46,290,0.00805739799982812,0.00126657963715123,-9.99994929570813e-10,0.00805768799982812 +400,-46,300,0.00808305854074899,0.00124091909623036,-9.99994929570813e-10,0.00808335854074899 +400,-46,310,0.00810709217847271,0.00121688545850664,-9.99994929570813e-10,0.00810740217847271 +400,-46,320,0.0081296480801128,0.00119432955686655,-9.99994929570813e-10,0.0081299680801128 +400,-46,330,0.00815085780822843,0.00117311982875092,-9.99994929570813e-10,0.00815118780822843 +400,-46,340,0.00817083783104594,0.0011531398059334,-9.99994929570813e-10,0.00817117783104594 +400,-46,350,0.00818969161707549,0.00113428601990386,-9.99994929570813e-10,0.00819004161707549 +400,-46,360,0.00820751139187777,0.00111646624510158,-9.99994929570813e-10,0.00820787139187777 +400,-46,370,0.00822437961861879,0.00109959801836056,-9.99994929570813e-10,0.00822474961861879 +400,-46,380,0.00824037025157938,0.00108360738539997,-9.99994929570813e-10,0.00824075025157938 +400,-46,390,0.00825554980207236,0.00106842783490699,-9.99994929570813e-10,0.00825593980207236 +400,-46,400,0.00826997824860443,0.00105399938837492,-9.99994929570813e-10,0.00827037824860443 +400,-46,410,0.00828370981711303,0.00104026781986632,-9.99994929570813e-10,0.00828411981711303 +400,-46,420,0.00829679365234269,0.00102718398463666,-9.99994929570813e-10,0.00829721365234269 +400,-46,430,0.00830927439762297,0.00101470323935638,-9.99994929570813e-10,0.00830970439762297 +400,-46,440,0.00832119269726104,0.00100278493971831,-9.99994929570813e-10,0.00832163269726104 +400,-46,450,0.00833258563330302,0.000991392003676329,-9.99994929570813e-10,0.00833303563330302 +400,-46,460,0.00834348710642697,0.000980490530552373,-9.99994929570813e-10,0.00834394710642698 +400,-46,470,0.00835392816910974,0.000970049467869608,-9.99994929570813e-10,0.00835439816910974 +400,-46,480,0.00836393731788439,0.000960040319094952,-9.99994929570813e-10,0.00836441731788439 +400,-46,490,0.00837354075041767,0.000950436886561677,-9.99994929570813e-10,0.00837403075041767 +400,-46,500,0.00838276259223943,0.000941215044739922,-9.99994929570813e-10,0.00838326259223943 +400,-46,510,0.00839162509721429,0.000932352539765063,-9.99994929570813e-10,0.00839213509721429 +400,-46,520,0.0084001488252286,0.000923828811750751,-9.99994929570813e-10,0.0084006688252286 +400,-46,530,0.00840835280005177,0.000915624836927574,-9.99994929570813e-10,0.00840888280005177 +400,-46,540,0.00841625464990068,0.000907722987078665,-9.99994929570813e-10,0.00841679464990068 +400,-46,550,0.00842387073287445,0.000900106904104894,-9.99994929570813e-10,0.00842442073287445 +400,-46,560,0.00843121624912273,0.000892761387856613,-9.99994929570813e-10,0.00843177624912273 +400,-46,570,0.00843830534135321,0.000885672295626137,-9.99994929570813e-10,0.00843887534135321 +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,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 +400,-50,180,0.00439559191491714,0.00100155351910241,-9.99994492503764e-10,0.00439577191491714 +400,-50,190,0.00443232979797105,0.00096481563604851,-9.99994492503764e-10,0.00443251979797105 +400,-50,200,0.00446554566208031,0.000931599771939248,-9.99994492503764e-10,0.00446574566208031 +400,-50,210,0.00449571679757948,0.000901428636440076,-9.99994492503764e-10,0.00449592679757948 +400,-50,220,0.00452323896174565,0.000873906472273909,-9.99994492503764e-10,0.00452345896174565 +400,-50,230,0.00454844288285781,0.000848702551161749,-9.99994492503764e-10,0.00454867288285781 +400,-50,240,0.00457160695527525,0.000825538478744307,-9.99994492503764e-10,0.00457184695527525 +400,-50,250,0.00459296710180071,0.000804178332218845,-9.99994492503764e-10,0.00459321710180071 +400,-50,260,0.00461272450696572,0.000784420927053835,-9.99994492503764e-10,0.00461298450696572 +400,-50,270,0.00463105173399582,0.000766093700023734,-9.99994492503764e-10,0.00463132173399582 +400,-50,280,0.00464809760306631,0.000749047830953249,-9.99994492503764e-10,0.00464837760306631 +400,-50,290,0.00466399111173104,0.000733154322288519,-9.99994492503764e-10,0.00466428111173104 +400,-50,300,0.0046788446084529,0.000718300825566662,-9.99994492503764e-10,0.0046791446084529 +400,-50,310,0.00469275637906772,0.000704389054951834,-9.99994492503764e-10,0.00469306637906772 +400,-50,320,0.00470581276833492,0.00069133266568464,-9.99994492503764e-10,0.00470613276833492 +400,-50,330,0.00471808993069126,0.000679055503328301,-9.99994492503764e-10,0.00471841993069126 +400,-50,340,0.00472965528328214,0.000667490150737418,-9.99994492503764e-10,0.00472999528328214 +400,-50,350,0.00474056871842164,0.000656576715597918,-9.99994492503764e-10,0.00474091871842164 +400,-50,360,0.00475088362048961,0.000646261813529947,-9.99994492503764e-10,0.00475124362048961 +400,-50,370,0.00476064772294458,0.000636497711074979,-9.99994492503764e-10,0.00476101772294458 +400,-50,380,0.0047699038339125,0.000627241600107054,-9.99994492503764e-10,0.0047702838339125 +400,-50,390,0.00477869045318846,0.0006184549808311,-9.99994492503764e-10,0.00477908045318846 +400,-50,400,0.00478704229908003,0.000610103134939525,-9.99994492503764e-10,0.00478744229908003 +400,-50,410,0.00479499076004419,0.000602154673975373,-9.99994492503764e-10,0.00479540076004419 +400,-50,420,0.0048025642833106,0.000594581150708958,-9.99994492503764e-10,0.0048029842833106 +400,-50,430,0.00480978871048377,0.000587356723535788,-9.99994492503764e-10,0.00481021871048377 +400,-50,440,0.0048166875683508,0.000580457865668755,-9.99994492503764e-10,0.0048171275683508 +400,-50,450,0.0048232823216989,0.00057386311232066,-9.99994492503764e-10,0.0048237323216989 +400,-50,460,0.00482959259379369,0.000567552840225873,-9.99994492503764e-10,0.00483005259379369 +400,-50,470,0.00483563635923142,0.000561509074788137,-9.99994492503764e-10,0.00483610635923142 +400,-50,480,0.00484143011311102,0.000555715320908537,-9.99994492503764e-10,0.00484191011311102 +400,-50,490,0.00484698901984223,0.000550156414177324,-9.99994492503764e-10,0.00484747901984223 +400,-50,500,0.00485232704438705,0.000544818389632505,-9.99994492503764e-10,0.00485282704438705 +400,-50,510,0.00485745706830188,0.000539688365717677,-9.99994492503764e-10,0.00485796706830188 +400,-50,520,0.00486239099259089,0.000534754441428668,-9.99994492503764e-10,0.00486291099259089 +400,-50,530,0.00486713982908339,0.00053000560493617,-9.99994492503764e-10,0.00486766982908339 +400,-50,540,0.00487171378179893,0.000525431652220624,-9.99994492503764e-10,0.00487225378179893 +400,-50,550,0.00487612231955475,0.000521023114464809,-9.99994492503764e-10,0.00487667231955475 +400,-50,560,0.00488037424089384,0.000516771193125713,-9.99994492503764e-10,0.00488093424089384 +400,-50,570,0.00488447773226338,0.00051266770175618,-9.99994492503764e-10,0.00488504773226338 +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,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 +400,-60,190,0.00110388002700268,0.000240289138877114,-9.99993385958353e-10,0.00110407002700268 +400,-60,200,0.00111215250009045,0.000232016665789341,-9.99993385958353e-10,0.00111235250009045 +400,-60,210,0.00111966667782262,0.000224502488057176,-9.99993385958353e-10,0.00111987667782262 +400,-60,220,0.00112652112428931,0.000217648041590483,-9.99993385958353e-10,0.00112674112428931 +400,-60,230,0.00113279820798705,0.000211370957892739,-9.99993385958353e-10,0.00113302820798705 +400,-60,240,0.00113856726355177,0.00020560190232802,-9.99993385958353e-10,0.00113880726355177 +400,-60,250,0.00114388704799879,0.000200282117881,-9.99993385958353e-10,0.00114413704799879 +400,-60,260,0.00114880766671201,0.000195361499167781,-9.99993385958353e-10,0.00114906766671201 +400,-60,270,0.00115337209688554,0.000190797068994256,-9.99993385958353e-10,0.00115364209688554 +400,-60,280,0.0011576174024624,0.000186551763417396,-9.99993385958353e-10,0.0011578974024624 +400,-60,290,0.00116157571052468,0.000182593455355117,-9.99993385958353e-10,0.00116186571052468 +400,-60,300,0.00116527500166721,0.000178894164212586,-9.99993385958353e-10,0.00116557500166721 +400,-60,310,0.00116873975416125,0.000175429411718541,-9.99993385958353e-10,0.00116904975416125 +400,-60,320,0.00117199147233065,0.000172177693549143,-9.99993385958353e-10,0.00117231147233065 +400,-60,330,0.00117504912258033,0.000169120043299463,-9.99993385958353e-10,0.00117537912258033 +400,-60,340,0.00117792949527646,0.000166239670603333,-9.99993385958353e-10,0.00117826949527646 +400,-60,350,0.00118064750671189,0.000163521659167902,-9.99993385958353e-10,0.00118099750671189 +400,-60,360,0.00118321645236628,0.000160952713513512,-9.99993385958353e-10,0.00118357645236628 +400,-60,370,0.00118564822034676,0.000158520945533029,-9.99993385958353e-10,0.00118601822034676 +400,-60,380,0.00118795347209718,0.000156215693782609,-9.99993385958353e-10,0.00118833347209718 +400,-60,390,0.00119014179606352,0.000154027369816273,-9.99993385958353e-10,0.00119053179606352 +400,-60,400,0.00119222183890522,0.000151947326974576,-9.99993385958353e-10,0.00119262183890522 +400,-60,410,0.0011942014179762,0.000149967747903597,-9.99993385958353e-10,0.0011946114179762 +400,-60,420,0.00119608761811222,0.000148081547767573,-9.99993385958353e-10,0.00119650761811222 +400,-60,430,0.00119788687521322,0.000146282290666568,-9.99993385958353e-10,0.00119831687521322 +400,-60,440,0.00119960504866955,0.000144564117210244,-9.99993385958353e-10,0.00120004504866955 +400,-60,450,0.00120124748432659,0.000142921681553199,-9.99993385958353e-10,0.00120169748432659 +400,-60,460,0.00120281906939537,0.000141350096484421,-9.99993385958353e-10,0.00120327906939537 +400,-60,470,0.0012043242804827,0.000139844885397092,-9.99993385958353e-10,0.0012047942804827 +400,-60,480,0.00120576722572382,0.000138401940155971,-9.99993385958353e-10,0.00120624722572382 +400,-60,490,0.00120715168184335,0.000137017484036446,-9.99993385958353e-10,0.00120764168184335 +400,-60,500,0.00120848112684118,0.000135688039038609,-9.99993385958353e-10,0.00120898112684118 +400,-60,510,0.00120975876889305,0.000134410396986743,-9.99993385958353e-10,0.00121026876889305 +400,-60,520,0.00121098757196629,0.000133181593913499,-9.99993385958353e-10,0.00121150757196629 +400,-60,530,0.0012121702785776,0.000131998887302188,-9.99993385958353e-10,0.0012127002785776 +400,-60,540,0.00121330943005714,0.000130859735822653,-9.99993385958353e-10,0.00121384943005714 +400,-60,550,0.00121440738463154,0.000129761781248253,-9.99993385958353e-10,0.00121495738463154 +400,-60,560,0.0012154663335944,0.000128702832285393,-9.99993385958353e-10,0.0012160263335944 +400,-60,570,0.0012164883157957,0.000127680850084096,-9.99993385958353e-10,0.0012170583157957 +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,150,0.52842747102818,0.14141108538402,-9.25708673056568e-100,0.52842762102818 +490,0,160,0.534800980831899,0.135037575580302,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 +490,0,200,0.554217909531655,0.115620646880545,1.38422819652212e-118,0.554218109531655 +490,0,210,0.557962442654794,0.111876113757406,4.35350883813035e-126,0.557962652654794 +490,0,220,0.561378212516803,0.108460343895397,-2.07309892305382e-127,0.561378432516803 +490,0,230,0.564506265733098,0.105332290679102,-7.14102122713026e-135,0.564506495733098 +490,0,240,0.5673811537676,0.102457402644601,3.10479090790003e-136,0.5673813937676 +490,0,250,0.5700321569485,0.0998063994637002,1.16247828252341e-143,0.5700324069485 +490,0,260,0.57248424424464,0.0973543121675599,-4.64991150052341e-145,0.57248450424464 +490,0,270,0.574758832440745,0.0950797239714551,-1.88027319217195e-152,0.574759102440745 +490,0,280,0.57687439157669,0.0929641648355099,6.96397196286446e-154,0.57687467157669 +490,0,290,0.578846931511079,0.0909916249011213,3.02459714311403e-161,0.578847221511079 +490,0,300,0.580690395787422,0.0891481606247783,-1.04296404788728e-162,0.580690695787422 +490,0,310,0.582416982639619,0.0874215737725812,-4.84220957744239e-170,0.582417292639619 +490,0,320,0.584037408297146,0.0858011481150536,1.56200226604808e-171,0.584037728297147 +490,0,330,0.585561124270737,0.0842774321414628,7.71983781454779e-179,0.585561454270737 +490,0,340,0.586996497687775,0.0828420587244257,-2.33934340255108e-180,0.586996837687775 +490,0,350,0.588350961770447,0.0814875946417529,-1.22623759778336e-187,0.588351311770447 +490,0,360,0.589631142042632,0.0802074143695683,3.50353366395621e-189,0.589631502042632 +490,0,370,0.590842962693577,0.0789955937186236,1.94142516131204e-196,0.590843332693577 +490,0,380,0.591991736630566,0.0778468197816337,-5.24709114854839e-198,0.591992116630567 +490,0,390,0.593082242054869,0.076756314357331,-3.06475584646932e-205,0.593082632054869 +490,0,400,0.594118787848156,0.0757197685640442,7.85834189049905e-207,0.594119187848156 +490,0,410,0.595105269625054,0.0747332867871466,4.82533507399056e-214,0.595105679625054 +490,0,420,0.596045217965106,0.073793338447094,-1.17690993256546e-215,0.596045637965106 +490,0,430,0.596941840064277,0.0728967163479231,-7.57921835019235e-223,0.596942270064277 +490,0,440,0.597798055827043,0.0720405005851574,1.76260717639191e-224,0.597798495827043 +490,0,450,0.598616529243516,0.0712220271686846,1.18790256424665e-231,0.598616979243516 +490,0,460,0.599399695752963,0.0704388606592374,-2.63978062695451e-233,0.599400155752963 +490,0,470,0.600149786178651,0.0696887702335488,-1.85814031413343e-240,0.600150256178651 +490,0,480,0.600868847723752,0.0689697086884481,3.9534853880281e-242,0.600869327723752 +490,0,490,0.60155876243989,0.0682797939723104,2.90127615722786e-249,0.60155925243989 +490,0,500,0.602221263515487,0.0676172928967129,-5.92096421199582e-251,0.602221763515487 +490,0,510,0.602857949677733,0.066980606734467,-4.52246802742357e-258,0.602858459677733 +490,0,520,0.60347029795769,0.0663682584545105,8.86757216704983e-260,0.60347081795769 +490,0,530,0.604059675031119,0.0657788813810817,7.03871754724518e-267,0.604060205031119 +490,0,540,0.604627347316688,0.0652112090955126,-1.32805794548559e-268,0.604627887316688 +490,0,550,0.605174489987262,0.0646640664249388,-1.0939379689506e-275,0.605175039987262 +490,0,560,0.605702195028116,0.0641363613840841,1.98897495591316e-277,0.605702755028116 +490,0,570,0.606211478457444,0.0636270779547565,1.69791990644622e-284,0.606212048457444 +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,170,0.380090004485157,0.0909818877302812,-9.99998805539803e-10,0.380090174485157 +490,-10,180,0.383654623741495,0.0874172684739432,-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 +490,-10,220,0.394795871762383,0.076276020453055,-9.99998805539803e-10,0.394796091762383 +490,-10,230,0.396995712206688,0.0740761800087497,-9.99998805539803e-10,0.396995942206688 +490,-10,240,0.399017511240733,0.072054380974705,-9.99998805539803e-10,0.399017751240733 +490,-10,250,0.400881860601846,0.0701900316135919,-9.99998805539803e-10,0.400882110601846 +490,-10,260,0.402606320012868,0.0684655722025701,-9.99998805539803e-10,0.402606580012868 +490,-10,270,0.404205951081119,0.0668659411343182,-9.99998805539803e-10,0.404206221081119 +490,-10,280,0.405693743080734,0.0653781491347038,-9.99998805539803e-10,0.405694023080734 +490,-10,290,0.407080955134247,0.0639909370811904,-9.99998805539803e-10,0.407081245134247 +490,-10,300,0.408377393203653,0.0626944990117849,-9.99998805539803e-10,0.408377693203653 +490,-10,310,0.409591635841305,0.0614802563741332,-9.99998805539803e-10,0.409591945841305 +490,-10,320,0.410731219362406,0.0603406728530314,-9.99998805539803e-10,0.410731539362406 +490,-10,330,0.411802790653738,0.0592691015616998,-9.99998805539803e-10,0.411803120653738 +490,-10,340,0.412812233996655,0.0582596582187828,-9.99998805539803e-10,0.412812573996655 +490,-10,350,0.413764776892633,0.0573071153228049,-9.99998805539803e-10,0.413765126892633 +490,-10,360,0.414665078819749,0.0564068133956883,-9.99998805539803e-10,0.414665438819749 +490,-10,370,0.415517306034205,0.0555545861812325,-9.99998805539803e-10,0.415517676034205 +490,-10,380,0.416325194900926,0.054746697314512,-9.99998805539803e-10,0.416325574900926 +490,-10,390,0.417092105746502,0.053979786468936,-9.99998805539803e-10,0.417092495746502 +490,-10,400,0.417821068842963,0.0532508233724745,-9.99998805539803e-10,0.417821468842963 +490,-10,410,0.418514823827401,0.0525570683880372,-9.99998805539803e-10,0.418515233827401 +490,-10,420,0.419175853621662,0.0518960385937761,-9.99998805539803e-10,0.419176273621662 +490,-10,430,0.419806413724264,0.0512654784911732,-9.99998805539803e-10,0.419806843724264 +490,-10,440,0.420408557592589,0.050663334622849,-9.99998805539803e-10,0.420408997592589 +490,-10,450,0.420984158709209,0.0500877335062292,-9.99998805539803e-10,0.420984608709209 +490,-10,460,0.421534929825612,0.049536962389826,-9.99998805539803e-10,0.421535389825612 +490,-10,470,0.422062439794662,0.0490094524207756,-9.99998805539803e-10,0.422062909794662 +490,-10,480,0.422568128336218,0.0485037638792197,-9.99998805539803e-10,0.422568608336218 +490,-10,490,0.423053319025358,0.0480185731900796,-9.99998805539803e-10,0.423053809025358 +490,-10,500,0.423519230747353,0.0475526614680849,-9.99998805539803e-10,0.423519730747353 +490,-10,510,0.423966987826018,0.0471049043894195,-9.99998805539803e-10,0.423967497826018 +490,-10,520,0.424397629000929,0.0466742632145086,-9.99998805539803e-10,0.424398149000929 +490,-10,530,0.424812115402989,0.0462597768124483,-9.99998805539803e-10,0.424812645402989 +490,-10,540,0.425211337656115,0.0458605545593227,-9.99998805539803e-10,0.425211877656115 +490,-10,550,0.425596122214531,0.0454757700009069,-9.99998805539803e-10,0.425596672214531 +490,-10,560,0.425967237029806,0.0451046551856318,-9.99998805539803e-10,0.425967797029806 +490,-10,570,0.426325396628758,0.0447464955866795,-9.99998805539803e-10,0.426325966628758 +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,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 +490,-20,190,0.239680412385859,0.0521728797415499,-9.99997784134621e-10,0.239680602385859 +490,-20,200,0.241476576563693,0.0503767155637162,-9.99997784134621e-10,0.241476776563693 +490,-20,210,0.243108095545403,0.0487451965820056,-9.99997784134621e-10,0.243108305545403 +490,-20,220,0.24459637010027,0.0472569220271388,-9.99997784134621e-10,0.24459659010027 +490,-20,230,0.245959284522538,0.0458940076048708,-9.99997784134621e-10,0.245959514522538 +490,-20,240,0.247211893124021,0.0446413990033876,-9.99997784134621e-10,0.247212133124021 +490,-20,250,0.248366953546237,0.0434863385811716,-9.99997784134621e-10,0.248367203546237 +490,-20,260,0.249435344941614,0.0424179471857949,-9.99997784134621e-10,0.249435604941614 +490,-20,270,0.25042639875139,0.0414268933760187,-9.99997784134621e-10,0.25042666875139 +490,-20,280,0.251348162499692,0.0405051296277165,-9.99997784134621e-10,0.251348442499692 +490,-20,290,0.25220761179265,0.039645680334759,-9.99997784134621e-10,0.25220790179265 +490,-20,300,0.253010821928614,0.0388424701987948,-9.99997784134621e-10,0.253011121928614 +490,-20,310,0.253763107762467,0.0380901843649415,-9.99997784134621e-10,0.253763417762467 +490,-20,320,0.254469138429514,0.037384153697895,-9.99997784134621e-10,0.254469458429514 +490,-20,330,0.255133032018353,0.0367202601090555,-9.99997784134621e-10,0.255133362018353 +490,-20,340,0.25575843414426,0.0360948579831488,-9.99997784134621e-10,0.25575877414426 +490,-20,350,0.256348583513556,0.0355047086138534,-9.99997784134621e-10,0.256348933513556 +490,-20,360,0.256906366912819,0.0349469252145895,-9.99997784134621e-10,0.256906726912819 +490,-20,370,0.257434365552283,0.0344189265751255,-9.99997784134621e-10,0.257434735552283 +490,-20,380,0.2579348943024,0.0339183978250092,-9.99997784134621e-10,0.2579352743024 +490,-20,390,0.25841003505851,0.0334432570688989,-9.99997784134621e-10,0.25841042505851 +490,-20,400,0.258861665230162,0.0329916268972469,-9.99997784134621e-10,0.258862065230162 +490,-20,410,0.259291482163593,0.0325618099638154,-9.99997784134621e-10,0.259291892163593 +490,-20,420,0.259701024156732,0.032152267970677,-9.99997784134621e-10,0.259701444156732 +490,-20,430,0.260091688607042,0.031761603520367,-9.99997784134621e-10,0.260092118607042 +490,-20,440,0.2604647477371,0.0313885443903088,-9.99997784134621e-10,0.2604651877371 +490,-20,450,0.260821362265824,0.0310319298615844,-9.99997784134621e-10,0.260821812265824 +490,-20,460,0.261162593330949,0.0306906987964598,-9.99997784134621e-10,0.261163053330949 +490,-20,470,0.261489412917602,0.0303638792098074,-9.99997784134621e-10,0.261489882917602 +490,-20,480,0.261802713006363,0.0300505791210458,-9.99997784134621e-10,0.261803193006363 +490,-20,490,0.262103313620144,0.0297499785072645,-9.99997784134621e-10,0.262103803620144 +490,-20,500,0.26239196992113,0.0294613222062794,-9.99997784134621e-10,0.26239246992113 +490,-20,510,0.262669378485812,0.0291839136415968,-9.99997784134621e-10,0.262669888485812 +490,-20,520,0.262936182866843,0.0289171092605663,-9.99997784134621e-10,0.262936702866843 +490,-20,530,0.263192978534303,0.0286603135931059,-9.99997784134621e-10,0.263193508534303 +490,-20,540,0.263440317275567,0.0284129748518423,-9.99997784134621e-10,0.263440857275567 +490,-20,550,0.263678711121579,0.0281745810058301,-9.99997784134621e-10,0.263679261121579 +490,-20,560,0.263908635857877,0.0279446562695316,-9.99997784134621e-10,0.263909195857877 +490,-20,570,0.264130534170616,0.0277227579567929,-9.99997784134621e-10,0.264131104170616 +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,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 +490,-30,190,0.12391863693773,0.0269742198719214,-9.99996691716798e-10,0.12391882693773 +490,-30,200,0.124847282772481,0.0260455740371704,-9.99996691716798e-10,0.124847482772481 +490,-30,210,0.125690804386696,0.0252020524229547,-9.99996691716798e-10,0.125691014386696 +490,-30,220,0.126460266323082,0.0244325904865687,-9.99996691716798e-10,0.126460486323082 +490,-30,230,0.127164915050064,0.0237279417595867,-9.99996691716798e-10,0.127165145050064 +490,-30,240,0.127812533889531,0.0230803229201198,-9.99996691716798e-10,0.127812773889531 +490,-30,250,0.128409718747805,0.0224831380618457,-9.99996691716798e-10,0.128409968747805 +490,-30,260,0.128962094322068,0.0219307624875834,-9.99996691716798e-10,0.128962354322068 +490,-30,270,0.129474485117865,0.0214183716917861,-9.99996691716798e-10,0.129474755117865 +490,-30,280,0.129951051834899,0.0209418049747515,-9.99996691716798e-10,0.129951331834899 +490,-30,290,0.130395400973989,0.0204974558356615,-9.99996691716798e-10,0.130395690973989 +490,-30,300,0.130810673562318,0.0200821832473324,-9.99996691716798e-10,0.130810973562318 +490,-30,310,0.131199617465538,0.0196932393441128,-9.99996691716798e-10,0.131199927465538 +490,-30,320,0.131564646701869,0.0193282101077821,-9.99996691716798e-10,0.131564966701869 +490,-30,330,0.131907890389502,0.0189849664201492,-9.99996691716798e-10,0.131908220389502 +490,-30,340,0.132231233370302,0.0186616234393488,-9.99996691716798e-10,0.132231573370302 +490,-30,350,0.132536350107647,0.0183565067020035,-9.99996691716798e-10,0.132536700107647 +490,-30,360,0.132824733116735,0.0180681236929155,-9.99996691716798e-10,0.132825093116735 +490,-30,370,0.133097716924866,0.0177951398847851,-9.99996691716798e-10,0.133098086924866 +490,-30,380,0.133356498357379,0.017536358452272,-9.99996691716798e-10,0.133356878357379 +490,-30,390,0.133602153787727,0.0172907030219235,-9.99996691716798e-10,0.133602543787727 +490,-30,400,0.133835653866912,0.017057202942739,-9.99996691716798e-10,0.133836053866912 +490,-30,410,0.134057876150299,0.0168349806593518,-9.99996691716798e-10,0.134058286150299 +490,-30,420,0.134269615962716,0.0166232408469353,-9.99996691716798e-10,0.134270035962716 +490,-30,430,0.134471595781177,0.0164212610284739,-9.99996691716798e-10,0.134472025781177 +490,-30,440,0.134664473365264,0.0162283834443868,-9.99996691716798e-10,0.134664913365264 +490,-30,450,0.134848848825369,0.0160440079842822,-9.99996691716798e-10,0.134849298825369 +490,-30,460,0.135025270786805,0.0158675860228455,-9.99996691716798e-10,0.135025730786805 +490,-30,470,0.135194241781554,0.0156986150280973,-9.99996691716798e-10,0.135194711781554 +490,-30,480,0.135356222977953,0.0155366338316977,-9.99996691716798e-10,0.135356702977953 +490,-30,490,0.135511638341068,0.015381218468583,-9.99996691716798e-10,0.135512128341068 +490,-30,500,0.13566087830192,0.0152319785077306,-9.99996691716798e-10,0.13566137830192 +490,-30,510,0.135804303001787,0.0150885538078641,-9.99996691716798e-10,0.135804813001787 +490,-30,520,0.135942245167762,0.014950611641889,-9.99996691716798e-10,0.135942765167762 +490,-30,530,0.136075012667477,0.0148178441421736,-9.99996691716798e-10,0.136075542667477 +490,-30,540,0.1362028907839,0.0146899660257511,-9.99996691716798e-10,0.1362034307839 +490,-30,550,0.136326144245282,0.0145667125643685,-9.99996691716798e-10,0.136326694245282 +490,-30,560,0.136445019040418,0.0144478377692329,-9.99996691716798e-10,0.136445579040418 +490,-30,570,0.136559744045184,0.0143331127644666,-9.99996691716798e-10,0.136560314045184 +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,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 +490,-40,190,0.0523097001685417,0.011386611317308,-9.99995592110281e-10,0.0523098901685417 +490,-40,200,0.0527017088798948,0.0109946026059549,-9.99995592110281e-10,0.0527019088798948 +490,-40,210,0.0530577841548954,0.0106385273309542,-9.99995592110281e-10,0.0530579941548954 +490,-40,220,0.0533825966623448,0.0103137148235048,-9.99995592110281e-10,0.0533828166623448 +490,-40,230,0.0536800496084348,0.0100162618774149,-9.99995592110281e-10,0.0536802796084348 +490,-40,240,0.0539534285621835,0.00974288292366614,-9.99995592110281e-10,0.0539536685621835 +490,-40,250,0.0542055178495859,0.00949079363626372,-9.99995592110281e-10,0.0542057678495859 +490,-40,260,0.0544386918207023,0.00925761966514741,-9.99995592110281e-10,0.0544389518207023 +490,-40,270,0.0546549870411762,0.00904132444467347,-9.99995592110281e-10,0.0546552570411762 +490,-40,280,0.0548561598646871,0.00884015162116258,-9.99995592110281e-10,0.0548564398646871 +490,-40,290,0.0550437327012704,0.00865257878457928,-9.99995592110281e-10,0.0550440227012704 +490,-40,300,0.0552190314708544,0.00847728001499528,-9.99995592110281e-10,0.0552193314708544 +490,-40,310,0.0553832161283246,0.00831309535752502,-9.99995592110281e-10,0.0553835261283247 +490,-40,320,0.0555373057017502,0.00815900578409947,-9.99995592110281e-10,0.0555376257017502 +490,-40,330,0.0556821989545209,0.00801411253132875,-9.99995592110281e-10,0.0556825289545209 +490,-40,340,0.0558186915338072,0.00787761995204246,-9.99995592110281e-10,0.0558190315338072 +490,-40,350,0.055947490279834,0.00774882120601562,-9.99995592110281e-10,0.0559478402798341 +490,-40,360,0.0560692252271501,0.00762708625869955,-9.99995592110281e-10,0.0560695852271501 +490,-40,370,0.0561844597189671,0.0075118517668826,-9.99995592110281e-10,0.0561848297189671 +490,-40,380,0.0562936989704507,0.00740261251539899,-9.99995592110281e-10,0.0562940789704507 +490,-40,390,0.0563973973504834,0.00729891413536628,-9.99995592110281e-10,0.0563977873504834 +490,-40,400,0.0564959645993921,0.00720034688645756,-9.99995592110281e-10,0.0564963645993921 +490,-40,410,0.0565897711590995,0.00710654032675018,-9.99995592110281e-10,0.0565901811590995 +490,-40,420,0.0566791527595993,0.00701715872625038,-9.99995592110281e-10,0.0566795727595993 +490,-40,430,0.0567644143796825,0.00693189710616719,-9.99995592110281e-10,0.0567648443796825 +490,-40,440,0.0568458336790079,0.00685047780684179,-9.99995592110281e-10,0.0568462736790079 +490,-40,450,0.0569236639818166,0.00677264750403304,-9.99995592110281e-10,0.0569241139818166 +490,-40,460,0.0569981368789849,0.00669817460686476,-9.99995592110281e-10,0.0569985968789849 +490,-40,470,0.057069464504037,0.00662684698181266,-9.99995592110281e-10,0.057069934504037 +490,-40,480,0.0571378415296886,0.00655846995616105,-9.99995592110281e-10,0.0571383215296886 +490,-40,490,0.0572034469240588,0.00649286456179087,-9.99995592110281e-10,0.0572039369240588 +490,-40,500,0.0572664454995618,0.00642986598628784,-9.99995592110281e-10,0.0572669454995618 +490,-40,510,0.0573269892824195,0.00636932220343012,-9.99995592110281e-10,0.0573274992824195 +490,-40,520,0.0573852187265215,0.00631109275932818,-9.99995592110281e-10,0.0573857387265215 +490,-40,530,0.0574412637918471,0.00625504769400256,-9.99995592110281e-10,0.0574417937918471 +490,-40,540,0.0574952449047248,0.0062010665811249,-9.99995592110281e-10,0.0574957849047248 +490,-40,550,0.0575472738147337,0.006149037671116,-9.99995592110281e-10,0.0575478238147337 +490,-40,560,0.057597454360976,0.00609885712487367,-9.99995592110281e-10,0.057598014360976 +490,-40,570,0.0576458831586893,0.0060504283271604,-9.99995592110281e-10,0.0576464531586893 +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,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 +490,-46,190,0.0287976284170062,0.00626857734967311,-9.99994929570813e-10,0.0287978184170062 +490,-46,200,0.029013437744328,0.00605276802235136,-9.99994929570813e-10,0.029013637744328 +490,-46,210,0.0292094649328784,0.00585674083380099,-9.99994929570813e-10,0.0292096749328784 +490,-46,220,0.0293882812874853,0.00567792447919399,-9.99994929570813e-10,0.0293885012874853 +490,-46,230,0.0295520356081074,0.00551417015857197,-9.99994929570813e-10,0.0295522656081074 +490,-46,240,0.0297025366719965,0.00536366909468284,-9.99994929570813e-10,0.0297027766719965 +490,-46,250,0.0298413173112113,0.00522488845546807,-9.99994929570813e-10,0.0298415673112113 +490,-46,260,0.0299696846571354,0.0050965211095439,-9.99994929570813e-10,0.0299699446571354 +490,-46,270,0.03008875988348,0.00497744588319938,-9.99994929570813e-10,0.03008902988348 +490,-46,280,0.0301995099011708,0.00486669586550857,-9.99994929570813e-10,0.0301997899011708 +490,-46,290,0.0303027728300663,0.00476343293661306,-9.99994929570813e-10,0.0303030628300663 +490,-46,300,0.0303992786179445,0.00466692714873485,-9.99994929570813e-10,0.0303995786179445 +490,-46,310,0.0304896658452153,0.00457653992146403,-9.99994929570813e-10,0.0304899758452153 +490,-46,320,0.030574495509009,0.00449171025767038,-9.99994929570813e-10,0.030574815509009 +490,-46,330,0.0306542623981324,0.00441194336854698,-9.99994929570813e-10,0.0306545923981324 +490,-46,340,0.0307294045336694,0.00433680123300996,-9.99994929570813e-10,0.0307297445336694 +490,-46,350,0.0308003110465476,0.00426589472013173,-9.99994929570813e-10,0.0308006610465476 +490,-46,360,0.0308673287844982,0.00419887698218109,-9.99994929570813e-10,0.0308676887844982 +490,-46,370,0.03093076788022,0.00413543788645936,-9.99994929570813e-10,0.03093113788022 +490,-46,380,0.0309909064656571,0.00407529930102222,-9.99994929570813e-10,0.0309912864656571 +490,-46,390,0.0310479946807684,0.00401821108591095,-9.99994929570813e-10,0.0310483846807684 +490,-46,400,0.0311022580965214,0.00396394767015796,-9.99994929570813e-10,0.0311026580965214 +490,-46,410,0.0311539006492569,0.00391230511742249,-9.99994929570813e-10,0.0311543106492569 +490,-46,420,0.0312031071656432,0.00386309860103609,-9.99994929570813e-10,0.0312035271656432 +490,-46,430,0.0312500455431426,0.00381616022353677,-9.99994929570813e-10,0.0312504755431426 +490,-46,440,0.03129486863944,0.00377133712723931,-9.99994929570813e-10,0.03129530863944 +490,-46,450,0.0313377159150437,0.00372848985163559,-9.99994929570813e-10,0.0313381659150437 +490,-46,460,0.0313787148657714,0.0036874909009079,-9.99994929570813e-10,0.0313791748657714 +490,-46,470,0.0314179822757451,0.00364822349093423,-9.99994929570813e-10,0.0314184522757451 +490,-46,480,0.0314556253165316,0.00361058045014771,-9.99994929570813e-10,0.0314561053165316 +490,-46,490,0.0314917425139756,0.00357446325270371,-9.99994929570813e-10,0.0314922325139756 +490,-46,500,0.0315264246008982,0.00353978116578118,-9.99994929570813e-10,0.0315269246008982 +490,-46,510,0.0315597552710431,0.00350645049563628,-9.99994929570813e-10,0.0315602652710431 +490,-46,520,0.0315918118473334,0.00347439391934595,-9.99994929570813e-10,0.0315923318473334 +490,-46,530,0.0316226658755663,0.00344353989111307,-9.99994929570813e-10,0.0316231958755663 +490,-46,540,0.0316523836530565,0.00341382211362288,-9.99994929570813e-10,0.0316529236530565 +490,-46,550,0.0316810267003794,0.0033851790662999,-9.99994929570813e-10,0.0316815767003794 +490,-46,560,0.0317086521832209,0.00335755358345842,-9.99994929570813e-10,0.0317092121832209 +490,-46,570,0.0317353132903719,0.00333089247630744,-9.99994929570813e-10,0.0317358832903719 +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,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 +490,-50,190,0.0189112306049864,0.00411653731023406,-9.99994492503764e-10,0.0189114206049864 +490,-50,200,0.0190529513014476,0.00397481661377287,-9.99994492503764e-10,0.0190531513014476 +490,-50,210,0.0191816811855145,0.00384608672970595,-9.99994492503764e-10,0.0191818911855145 +490,-50,220,0.0192991088177121,0.00372865909750834,-9.99994492503764e-10,0.0192993288177121 +490,-50,230,0.0194066453021407,0.00362112261307973,-9.99994492503764e-10,0.0194068753021407 +490,-50,240,0.0195054784520199,0.00352228946320055,-9.99994492503764e-10,0.0195057184520199 +490,-50,250,0.0195966148690086,0.00343115304621185,-9.99994492503764e-10,0.0195968648690086 +490,-50,260,0.0196809129384805,0.00334685497673997,-9.99994492503764e-10,0.0196811729384805 +490,-50,270,0.019759108928516,0.00326865898670448,-9.99994492503764e-10,0.019759378928516 +490,-50,280,0.0198318378037459,0.00319593011147459,-9.99994492503764e-10,0.0198321178037459 +490,-50,290,0.019899649952476,0.00312811796274445,-9.99994492503764e-10,0.019899939952476 +490,-50,300,0.019963024727053,0.00306474318816742,-9.99994492503764e-10,0.019963324727053 +490,-50,310,0.0200223814794186,0.00300538643580186,-9.99994492503764e-10,0.0200226914794186 +490,-50,320,0.0200780886130379,0.00294967930218256,-9.99994492503764e-10,0.0200784086130379 +490,-50,330,0.0201304710527656,0.00289729686245484,-9.99994492503764e-10,0.0201308010527656 +490,-50,340,0.0201798164444317,0.00284795147078875,-9.99994492503764e-10,0.0201801564444317 +490,-50,350,0.0202263803279925,0.00280138758722798,-9.99994492503764e-10,0.0202267303279925 +490,-50,360,0.0202703904762816,0.0027573774389388,-9.99994492503764e-10,0.0202707504762816 +490,-50,370,0.0203120505515904,0.00271571736363007,-9.99994492503764e-10,0.0203124205515904 +490,-50,380,0.0203515432015055,0.00267622471371492,-9.99994492503764e-10,0.0203519232015055 +490,-50,390,0.0203890326914442,0.00263873522377627,-9.99994492503764e-10,0.0203894226914442 +490,-50,400,0.0204246671525137,0.00260310076270679,-9.99994492503764e-10,0.0204250671525137 +490,-50,410,0.020458580508491,0.0025691874067294,-9.99994492503764e-10,0.020458990508491 +490,-50,420,0.0204908941339458,0.00253687378127469,-9.99994492503764e-10,0.0204913141339458 +490,-50,430,0.0205217182861384,0.00250604962908202,-9.99994492503764e-10,0.0205221482861384 +490,-50,440,0.0205511533457981,0.00247661456942238,-9.99994492503764e-10,0.0205515933457981 +490,-50,450,0.0205792908958075,0.00244847701941292,-9.99994492503764e-10,0.0205797408958075 +490,-50,460,0.0206062146619089,0.00242155325331154,-9.99994492503764e-10,0.0206066746619089 +490,-50,470,0.0206320013355377,0.00239576657968275,-9.99994492503764e-10,0.0206324713355377 +490,-50,480,0.0206567212956219,0.00237104661959859,-9.99994492503764e-10,0.0206572012956219 +490,-50,490,0.0206804392434952,0.00234732867172529,-9.99994492503764e-10,0.0206809292434952 +490,-50,500,0.0207032147628593,0.0023245531523611,-9.99994492503764e-10,0.0207037147628593 +490,-50,510,0.0207251028148962,0.00230266510032426,-9.99994492503764e-10,0.0207256128148962 +490,-50,520,0.0207461541771075,0.00228161373811297,-9.99994492503764e-10,0.0207466741771075 +490,-50,530,0.020766415833191,0.0022613520820295,-9.99994492503764e-10,0.0207669458331909 +490,-50,540,0.0207859313201973,0.00224183659502319,-9.99994492503764e-10,0.0207864713201973 +490,-50,550,0.0208047410383209,0.00222302687689951,-9.99994492503764e-10,0.0208052910383209 +490,-50,560,0.0208228825279264,0.00220488538729404,-9.99994492503764e-10,0.0208234425279264 +490,-50,570,0.0208403907177751,0.00218737719744537,-9.99994492503764e-10,0.0208409607177751 +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,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 +490,-60,190,0.00630552781553388,0.00137256749999758,-9.99993385958353e-10,0.00630571781553388 +490,-60,200,0.00635278141907976,0.00132531389645169,-9.99993385958353e-10,0.00635298141907976 +490,-60,210,0.00639570352614034,0.00128239178939112,-9.99993385958353e-10,0.00639591352614033 +490,-60,220,0.00643485714954013,0.00124323816599132,-9.99993385958353e-10,0.00643507714954013 +490,-60,230,0.0064707127904507,0.00120738252508076,-9.99993385958353e-10,0.0064709427904507 +490,-60,240,0.00650366649868244,0.00117442881684901,-9.99993385958353e-10,0.00650390649868244 +490,-60,250,0.00653405390309487,0.00114404141243659,-9.99993385958353e-10,0.00653430390309487 +490,-60,260,0.00656216121313479,0.00111593410239667,-9.99993385958353e-10,0.00656242121313479 +490,-60,270,0.0065882339209628,0.00108986139456865,-9.99993385958353e-10,0.0065885039209628 +490,-60,280,0.00661248374136495,0.0010656115741665,-9.99993385958353e-10,0.00661276374136495 +490,-60,290,0.00663509418903916,0.00104300112649229,-9.99993385958353e-10,0.00663538418903916 +490,-60,300,0.00665622509332803,0.00102187022220342,-9.99993385958353e-10,0.00665652509332803 +490,-60,310,0.00667601627777809,0.00100207903775337,-9.99993385958353e-10,0.00667632627777809 +490,-60,320,0.00669459057830338,0.000983504737228075,-9.99993385958353e-10,0.00669491057830338 +490,-60,330,0.00671205633384557,0.000966038981685886,-9.99993385958353e-10,0.00671238633384557 +490,-60,340,0.00672850945348745,0.000949585862044011,-9.99993385958353e-10,0.00672884945348744 +490,-60,350,0.00674403514132472,0.000934060174206737,-9.99993385958353e-10,0.00674438514132472 +490,-60,360,0.00675870934312574,0.000919385972405718,-9.99993385958353e-10,0.00675906934312574 +490,-60,370,0.00677259996553648,0.000905495349994969,-9.99993385958353e-10,0.00677296996553649 +490,-60,380,0.00678576790831877,0.00089232740721268,-9.99993385958353e-10,0.00678614790831877 +490,-60,390,0.00679826794211012,0.000879827373421332,-9.99993385958353e-10,0.00679865794211012 +490,-60,400,0.00681014945792252,0.000867945857608929,-9.99993385958353e-10,0.00681054945792252 +490,-60,410,0.00682145710965076,0.000856638205880691,-9.99993385958353e-10,0.00682186710965076 +490,-60,420,0.00683223136693636,0.000845863948595091,-9.99993385958353e-10,0.00683265136693636 +490,-60,430,0.00684250899260234,0.00083558632292911,-9.99993385958353e-10,0.00684293899260234 +490,-60,440,0.00685232345636267,0.000825771859168785,-9.99993385958353e-10,0.00685276345636267 +490,-60,450,0.00686170529448582,0.000816390021045631,-9.99993385958353e-10,0.00686215529448582 +490,-60,460,0.00687068242345206,0.000807412892079398,-9.99993385958353e-10,0.00687114242345206 +490,-60,470,0.00687928041430907,0.000798814901222389,-9.99993385958353e-10,0.00687975041430907 +490,-60,480,0.00688752273333977,0.000790572582191683,-9.99993385958353e-10,0.00688800273333977 +490,-60,490,0.00689543095376003,0.000782664361771428,-9.99993385958353e-10,0.00689592095376003 +490,-60,500,0.00690302494242548,0.000775070373105972,-9.99993385958353e-10,0.00690352494242548 +490,-60,510,0.00691032302491567,0.000767772290615785,-9.99993385958353e-10,0.00691083302491567 +490,-60,520,0.00691734213185539,0.00076075318367606,-9.99993385958353e-10,0.00691786213185539 +490,-60,530,0.00692409792891016,0.000753997386621299,-9.99993385958353e-10,0.00692462792891016 +490,-60,540,0.00693060493253791,0.000747490382993543,-9.99993385958353e-10,0.00693114493253791 +490,-60,550,0.00693687661328194,0.000741218702249512,-9.99993385958353e-10,0.00693742661328194 +490,-60,560,0.006942925488139,0.000735169827392455,-9.99993385958353e-10,0.006943485488139 +490,-60,570,0.00694876320332509,0.000729332112206362,-9.99993385958353e-10,0.00694933320332509 +490,-60,580,0.00695440060858176,0.00072369470694969,-9.99993385958353e-10,0.00695498060858176 +490,-60,590,0.0069598478240131,0.000718247491518357,-9.99993385958353e-10,0.0069604378240131 +490,-60,600,0.00696511430031363,0.000712981015217828,-9.99993385958353e-10,0.00696571430031363 diff --git a/tests/test_amp2203.cpp b/tests/test_amp2203.cpp index 401e978..90802aa 100644 --- a/tests/test_amp2203.cpp +++ b/tests/test_amp2203.cpp @@ -25,24 +25,24 @@ double probe(const amp2203::Amp2203& a, const std::string& name) { TEST_CASE("Amp2203 starts at the full-netlist DC operating point", "[amp2203][m4]") { amp2203::Amp2203 amp; amp.prepare({}); - // full-netlist op at default parameters (ngspice 47) + // full-netlist op at default parameters (ngspice 47, EL34 D-058) const std::pair ref[] = { - {"ct", 488.70842163204327}, {"nscr", 485.64928691750646}, {"bpx", 402.33599940894806}, - {"bpa", 389.3496033135904}, {"p1a", 296.402}, {"p1b", 352.433}, - {"p2a", 231.130}, {"k2b", 231.686}, {"p3a", 270.8809249953309}, - {"p3b", 262.2705821268219}, {"k3", 44.93336791716606}, {"pa", 487.6615211930245}, - {"pb", 487.5797411890199}, {"nbias", -46.36358785048281}}; + {"ct", 491.3466370439178}, {"nscr", 488.8804667528911}, {"bpx", 404.9981846270138}, + {"bpa", 391.9215063373393}, {"p1a", 298.3259948720179}, {"p1b", 354.7502349059159}, + {"p2a", 232.5771020001565}, {"k2b", 233.1404038063239}, {"p3a", 272.6112625407083}, + {"p3b", 263.9511987003812}, {"k3", 45.25019514420279}, {"pa", 490.4627514780715}, + {"pb", 490.3937077859763}, {"nbias", -46.36358785048281}}; for (const auto& [n, v] : ref) { INFO(n << ": " << probe(amp, n) << " (SPICE " << v << ")"); REQUIRE(std::fabs(probe(amp, n) / v - 1.0) < 5e-3); } - REQUIRE(std::fabs(probe(amp, "ip_tube_a") - 0.03407830267111851) < 1e-3); // ±1 mA per tube - REQUIRE(std::fabs(probe(amp, "is_tube_a") - 0.0045673744924156524) < 0.3e-3); + REQUIRE(std::fabs(probe(amp, "ip_tube_a") - 0.0287723165965592) < 1e-3); // ±1 mA per tube + REQUIRE(std::fabs(probe(amp, "is_tube_a") - 0.0032641827099544754) < 0.3e-3); - // silence in, silence out (SPEC §3.6: within 1 µV of the DC output; F's speaker node carries 42.3 µV + // silence in, silence out (SPEC §3.6: within 1 µV of the DC output; F's speaker node carries 42.4 µV // of NFB DC current through R22, and so does the engine) const double outDc = probe(amp, "out"); - REQUIRE(std::fabs(outDc - 4.2302458725838655e-05) < 1e-7); + REQUIRE(std::fabs(outDc - 4.240884065521802e-05) < 1e-7); std::vector x(8192, 0.0); amp.process(x.data(), static_cast(x.size())); for (double y : x) diff --git a/tests/test_power_amp.cpp b/tests/test_power_amp.cpp index f05a406..c81bf73 100644 --- a/tests/test_power_amp.cpp +++ b/tests/test_power_amp.cpp @@ -26,7 +26,7 @@ void setup(PowerAmp& s) { using amp2203::detail::atap; const double vr2b = 1e6 * atap(0.3) + 1.0, chain = (1e6 * (1.0 - atap(0.3)) + 1.0) + 110e3 + (1e6 * atap(0.5) + 1.0) + 22e3; s.setSourceResistance(1.0 / (1.0 / vr2b + 1.0 / chain)); - s.setSupplyVoltages(402.33599940894806, 485.64928691750646, 488.70842163204327); + s.setSupplyVoltages(404.9981846270138, 488.8804667528911, 491.3466370439178); s.reset(0.0); } } // namespace @@ -35,19 +35,19 @@ TEST_CASE("PowerAmp starts at the full-netlist DC operating point", "[stage56][m PowerAmp s; setup(s); const std::pair ref[] = { - {"g3a", 43.52260078966601}, {"k3", 44.93336791716606}, {"ng", 13.483951021319733}, - {"p3a", 270.8809249953309}, {"p3b", 262.2705821268219}, {"ngn", -46.36312745114321}, - {"nbias", -46.36358785048281}, {"s4", 481.0819124250908}, {"pa", 487.6615211930245}, - {"pb", 487.5797411890199}}; + {"g3a", 43.82947357414837}, {"k3", 45.25019514420279}, {"ng", 13.57902697311721}, + {"p3a", 272.6112625407083}, {"p3b", 263.9511987003812}, {"ngn", -46.3631274511432}, + {"nbias", -46.36358785048281}, {"s4", 485.6163911912913}, {"pa", 490.4627514780715}, + {"pb", 490.3937077859763}}; for (const auto& [n, v] : ref) { INFO(n << ": " << probe(s, n) << " (SPICE " << v << ")"); REQUIRE(std::fabs(probe(s, n) / v - 1.0) < 5e-3); } - // F's speaker node carries the NFB DC current through R22 (CIRCUIT.md §5: 42.3 µV) + // F's speaker node carries the NFB DC current through R22 (CIRCUIT.md §5: 42.4 µV) INFO("out " << s.output()); - REQUIRE(std::fabs(s.output() - 4.2302458725838655e-05) < 1e-7); - REQUIRE(std::fabs(probe(s, "ip_tube_a") - 0.03407830267111851) < 1e-3); - REQUIRE(std::fabs(probe(s, "is_tube_b") - 0.00456754684753321) < 0.3e-3); + REQUIRE(std::fabs(s.output() - 4.240884065521802e-05) < 1e-7); + REQUIRE(std::fabs(probe(s, "ip_tube_a") - 0.0287723165965592) < 1e-3); + REQUIRE(std::fabs(probe(s, "is_tube_b") - 0.0032641827099544754) < 0.3e-3); const double out = s.output(); for (int n = 0; n < 8192; ++n) diff --git a/tests/test_power_stage.cpp b/tests/test_power_stage.cpp index a3c5a7f..e7ceb66 100644 --- a/tests/test_power_stage.cpp +++ b/tests/test_power_stage.cpp @@ -13,7 +13,7 @@ using amp2203::PowerStage; namespace { constexpr double kFs = 768000.0; -constexpr double kP3a = 270.8809249953309, kP3b = 262.2705821268219; // F op (ngspice 47) +constexpr double kP3a = 272.6112625407083, kP3b = 263.9511987003812; // F op (ngspice 47) double probe(const PowerStage& s, const std::string& name) { for (const auto& p : s.probes()) @@ -27,21 +27,21 @@ double probe(const PowerStage& s, const std::string& name) { TEST_CASE("PowerStage starts at the DC operating point", "[stage6][m4]") { PowerStage s; s.prepare(kFs); - s.setSupplyVoltages(488.70842163204327, 485.64928691750646); + s.setSupplyVoltages(491.3466370439178, 488.8804667528911); s.reset(kP3a, kP3b); - const std::pair ref[] = {{"ngn", -46.36312745114321}, {"nor", -46.36312745114321}, - {"nbias", -46.36358785048281}, {"g4", -46.36312159151525}, - {"s4", 481.0819124250908}, {"pa", 487.6615211930245}, - {"pb", 487.5797411890199}, {"s6", 481.08174006997325}}; + const std::pair ref[] = {{"ngn", -46.3631274511432}, {"nor", -46.3631274511432}, + {"nbias", -46.36358785048281}, {"g4", -46.3631215915153}, + {"s4", 485.6163911912913}, {"pa", 490.4627514780715}, + {"pb", 490.3937077859763}, {"s6", 485.6161768945823}}; for (const auto& [n, v] : ref) { INFO(n << ": " << probe(s, n) << " (SPICE " << v << ")"); REQUIRE(std::fabs(probe(s, n) / v - 1.0) < 5e-3); } INFO("ip tube A " << probe(s, "ip_tube_a") << " B " << probe(s, "ip_tube_b") << " is A " << probe(s, "is_tube_a")); - REQUIRE(std::fabs(probe(s, "ip_tube_a") - 0.03407830267111851) < 1e-3); - REQUIRE(std::fabs(probe(s, "ip_tube_b") - 0.03407802821202568) < 1e-3); - REQUIRE(std::fabs(probe(s, "is_tube_a") - 0.0045673744924156524) < 0.3e-3); - REQUIRE(std::fabs(probe(s, "is_tube_b") - 0.00456754684753321) < 0.3e-3); + REQUIRE(std::fabs(probe(s, "ip_tube_a") - 0.0287723165965592) < 1e-3); + REQUIRE(std::fabs(probe(s, "ip_tube_b") - 0.0287720186576503) < 1e-3); + REQUIRE(std::fabs(probe(s, "is_tube_a") - 0.0032641827099544754) < 0.3e-3); + REQUIRE(std::fabs(probe(s, "is_tube_b") - 0.0032641827099544754) < 0.3e-3); // the centre tap supplies both plates (KCL at DC) REQUIRE(std::fabs(s.centreTapCurrent() - probe(s, "ip_a") - probe(s, "ip_b")) < 1e-9); REQUIRE(std::fabs(s.screenCurrent() - probe(s, "is_a") - probe(s, "is_b")) < 1e-12); @@ -49,7 +49,7 @@ TEST_CASE("PowerStage starts at the DC operating point", "[stage6][m4]") { const double out = s.output(); for (int n = 0; n < 8192; ++n) REQUIRE(std::fabs(s.process(kP3a, kP3b) - out) < 1e-9); // silence in, silence out (SPEC §3.6) - REQUIRE(std::fabs(probe(s, "pa") - 487.6615211930245) < 5e-3 * 487.66); + REQUIRE(std::fabs(probe(s, "pa") - 490.4627514780715) < 5e-3 * 490.46); REQUIRE(s.newtonStats().failures == 0); }