Skip to content

Align the non-idle GeneralNoiseModel surfaces (gate/emission/leakage/measurement/crosstalk) with the structured noise vocabulary #425

Description

@ciaranra

Goal

Survey and align the non-idle surfaces of GeneralNoiseModel with the structured
noise-vocabulary conventions established for idle noise (one rate + one relative-rate
model per channel family, law in the name, symmetric defaults where physical, first-class
alphabet keys, fail-loud on ambiguity), so the whole model reads as one system.

Idle noise is covered separately by #424 (deprecation ramp). This issue is the remainder:

  • Gate noise: p1 + p1_pauli_model, p2 + its two-qubit weighted sampler
    (crates/pecos-engines/src/noise/weighted_sampler.rs — X/Y/Z/L and pair-string
    alphabets). Already close to the rate+model shape; audit naming, defaults, and
    validation tolerances against the structured conventions.
  • Emission: p1_emission_ratio / p2_emission_ratio and emission models — ratios vs
    rates vs models; decide the consistent spelling.
  • Leakage: leakage_scale (0.0 = replace leakage with depolarizing, 1.0 = keep) —
    interacts with every model containing L; needs an explicit place in the vocabulary.
  • Measurement/prep: asymmetric bit-flip and prep-leak parameters.
  • Crosstalk models: CrosstalkWeightedSampler alphabet and its DEM-side counterpart
    (p_meas_crosstalk_* in the DEM builder) — same-vocabulary check across consumers.
  • Builder input rescaling: the same unit trap documented in Deprecation ramp: align pecos-engines GeneralNoiseModel idle-noise API with the structured vocabulary #424 applies wherever the
    fluent builder rescales inputs; any renamed parameter needs the numerically equivalent
    spelling in its warning.

Constraint

Same as #424: external users — staged additive/warning/removal ramp, never a hard rename.

Related: #420 (layer-1 idle families), #422 (native-surface NoiseModel port), #423
(layer-2 idle-channel vocabulary), #424 (idle-noise ramp for this model).

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestrustPull requests that update rust code

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions