API Surface Map

This page maps the public API surface of the Numerics.NET SPC API, organized by conceptual layer. For each type you will find a one-line description of its role, a code reference to the type itself, and a link to the conceptual documentation where it is discussed in context.

All types reside in the Numerics.NET.Statistics.ProcessControl namespace unless otherwise noted.

Chart classes

The chart classes implement the construct-analyze-inspect-deploy lifecycle. Construct a chart with the input data, call Analyze() to compute control limits, inspect the results, and optionally call Deploy() to create a reusable baseline for Phase II monitoring.

Type

Role

See also

IndividualsMovingRangeChartSet

Chart class for the Individuals‑Moving Range (I‑MR) family. Construct the chart, call Analyze() to fit control limits, then inspect results or call Deploy() to create a reusable baseline.

Getting Started, Worked Examples and Cookbook

ControlRuleSets

Static factory that returns predefined ControlRuleSet instances for the Nelson standard rules and the Western Electric rules.

Rule Evaluation and Stability Interpretation

Chart generation APIs

These chart classes compute control limits and expose result data through typed series properties after Analyze() is called. Use them to integrate SPC charts into any analysis pipeline.

Type

Role

See also

IndividualsMovingRangeChartSet, XBarRChartSet, XBarSChartSet

Chart classes for continuous-data (variables) chart families (I‑MR, XBar‑R, XBar‑S). Each class exposes typed series properties (e.g., IndividualsSeries, MeansSeries, RangesSeries) after Analyze().

Variables Charts, Attribute Charts, Time-Weighted Charts

Capability

Static class that computes Cp, Cpk, Pp, Ppk, and related indices given process data, specification limits, and a sigma estimator. Also performs the normality pre-check.

Capability, Performance, and Assumption Diagnostics

Chart result types

Each chart family has a dedicated result type that carries the plotted points, center line, control limits, and any family-specific properties (e.g., range or standard deviation series for dual-chart families). All types inherit from the ControlSeries abstract base class. See Result Model and Rendering Semantics for the complete property contract.

Type

Role

See also

ControlSeries

Abstract base providing Values and Index. Limit properties are accessed via FixedLimitSeries or PointwiseLimitSeries.

Result Model and Rendering Semantics

IndividualsMovingRangeChartSet

Chart class for the I‑MR family. Exposes IndividualsSeries and MovingRangesSeries (FixedLimitSeries) after Analyze().

Variables Charts

XBarRChartSet

Chart class for the XBar‑R family. Exposes MeansSeries and RangesSeries (FixedLimitSeries) after Analyze().

Variables Charts

XBarSChartSet

Chart class for the XBar‑S family. Exposes MeansSeries and StandardDeviationsSeries (FixedLimitSeries) after Analyze(). Supports variable subgroup sizes.

Variables Charts

PChart

Chart class for the P chart. Exposes Series (PointwiseLimitSeries) with pointwise control limits after Analyze().

Attribute Charts

NpChart

Chart class for the NP chart. Exposes Series (FixedLimitSeries) with scalar limits after Analyze(). Requires a constant sample size.

Attribute Charts

CChart

Chart class for the C chart. Exposes Series (FixedLimitSeries) with scalar Poisson-based limits after Analyze().

Attribute Charts

UChart

Chart class for the U chart. Exposes Series (PointwiseLimitSeries) with pointwise limits after Analyze().

Attribute Charts

EwmaChart

Chart class for the EWMA chart. Exposes Series (PointwiseLimitSeries) after Analyze(). Configure λ via EwmaChartOptions.

Time-Weighted Charts

CusumChart

Chart class for the tabular CUSUM. Exposes UpperCusumValues (C+) and LowerCusumValues (C−) vectors and DecisionInterval after Analyze(). Configure via CusumChartOptions.

Time-Weighted Charts

Deployed charts (Phase II baseline)

After fitting a chart with Analyze(), call Deploy() to create a deployed chart. The deployed chart holds only the frozen control parameters (center lines, limits, sigma) and discards the original observations. It is the Phase II baseline.

Call Apply(Vector<Double>) on the deployed chart to evaluate new observations against the frozen baseline. Apply(Vector<Double>) returns a new fitted chart whose series reflect the Phase II data.

Deployed charts are serializable. Call ToJson() on the deployed chart to persist the frozen parameters, then call FromJson() on the concrete chart type to restore it. See Integration and Persistence for guidance on the round-trip workflow.

Phase II monitoring (Deploy and Apply)

After fitting a chart with Analyze(), call Deploy() to create a deployed chart that holds frozen control limits but discards the original observations. Then call Apply(data) on the deployed chart to evaluate new observations against the frozen baseline.

All chart types support the base ControlChart.Apply(Vector<double>) entry point. Charts that require additional inputs provide type-specific overloads:

  • XBarRChartSet and XBarSChartSet accept a Matrix<double> for subgroup data.

  • PChart (variable sizes) accepts Apply(nonconformingCounts, sampleSizes). For constant-size P charts, the base Apply(Vector<double>) is sufficient.

  • UChart (variable sizes) accepts Apply(defectCounts, unitSizes). For constant-size U charts, the base Apply(Vector<double>) is sufficient.

  Note

When calling through a base ControlChart reference, only the single-vector Apply(Vector<double>) is visible. To use a chart-specific overload, cast or hold a reference to the concrete chart type.

Rule engine types

These types implement the control rule evaluation pipeline. See Rule Evaluation and Stability Interpretation for usage guidance and cautions around EWMA/CUSUM.

Type

Role

See also

ControlRuleSet

Evaluates a collection of control rules over the points of a chart series and returns a RuleSetEvaluation. Obtain instances from ControlRuleSets or construct a custom set.

Rule Evaluation and Stability Interpretation

RuleSetEvaluation

Collection of all RuleViolation instances found when a rule set is applied to a chart. Serializable to JSON.

Rule Evaluation and Stability Interpretation, Integration and Persistence

RuleViolation

Represents a single rule violation: the chart series name, rule identifier, index of the triggering point, and the window bounds (WindowStart / WindowEnd) of the contributing observations.

Rule Evaluation and Stability Interpretation

Capability and performance types

These types hold the output of capability and performance analysis and the associated assumption diagnostics. See Capability, Performance, and Assumption Diagnostics for interpretation guidance.

Type

Role

See also

CapabilityAnalysisResult

Top-level capability result containing Cp, Cpk, Pp, Ppk, Cpm, and one-sided variants (CPU, CPL, PPU, PPL), sigma estimates, and associated assumption diagnostics. Serializable to JSON.

Capability, Performance, and Assumption Diagnostics

AssumptionDiagnostics

Holds the normality test result and a collection of advisory DiagnosticMessage objects describing assumption violations or conditions that may affect the validity of the capability indices.

Capability, Performance, and Assumption Diagnostics, Diagnostics, Exceptions, and Failure Modes

AssumptionDiagnostics

Static helper that generates DiagnosticMessage objects for common capability conditions (insufficient data, non-normality, unstable process) without requiring a full analysis run.

Diagnostics, Exceptions, and Failure Modes

AssumptionDiagnostics

Result of the normality pre-check applied before computing capability indices. Exposes the test statistic, p-value, and the TestOfNormality used.

Capability, Performance, and Assumption Diagnostics

Diagnostics types

Diagnostics are non-throwing advisory messages attached to results. They use stable code strings so that consuming code can branch on specific conditions without parsing message text. See Diagnostics, Exceptions, and Failure Modes.

Type

Role

See also

DiagnosticMessage

An individual advisory message with a stable Code string, a human-readable Message, and a DiagnosticSeverity.

Diagnostics, Exceptions, and Failure Modes

DiagnosticCodes

Static class of string constants for every diagnostic code the API can emit. Use these constants to match Code in application logic rather than relying on message text.

Diagnostics, Exceptions, and Failure Modes

DiagnosticSeverity

Enum with values Info, Warning, and Error indicating the urgency of a diagnostic message.

Diagnostics, Exceptions, and Failure Modes

Persistence and serialization

The following type represents a deployed chart that can be serialized to JSON and rehydrated via FromJson(). It encapsulates control limits, rule violations, and capability results. See Integration and Persistence.

Type

Role

See also

ControlChart

Deployed chart that holds frozen control limits, the RuleSetEvaluation, and the optional CapabilityAnalysisResult. Serializable to JSON via ToJson() and restorable via FromJson().

Integration and Persistence, Result Model and Rendering Semantics

Supporting enums and value types

These types configure analysis behavior and carry specification inputs. They appear as parameters or properties throughout the API.

Type

Role

See also

EwmaChartOptions, CusumChartOptions

Per-chart options records that configure algorithm parameters. EwmaChartOptions holds the smoothing constant λ; CusumChartOptions holds the reference value k and decision interval h.

Getting Started, Worked Examples and Cookbook

SpecificationLimits

Immutable class holding optional lower and upper specification limit values (LSL, USL) and an optional target. Passed to capability analysis methods and stored on CapabilityAnalysisResult.

Capability, Performance, and Assumption Diagnostics

SigmaEstimator

Enum selecting the within-process sigma estimation method: MovingRange, WithinRange, WithinStandardDeviation, or OverallStandardDeviation.

Constraints, Limits, and Support Matrix, Choosing the Right Analysis

TestOfNormality

Enum selecting the normality test algorithm applied before capability computation: ShapiroWilk, AndersonDarling, or None to skip the check.

Capability, Performance, and Assumption Diagnostics

See Also