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 |
|---|---|---|
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. | ||
Static factory that returns predefined ControlRuleSet instances for the Nelson standard rules and the Western Electric rules. |
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(). | |
Static class that computes |
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 |
|---|---|---|
Abstract base providing Values and Index. Limit properties are accessed via FixedLimitSeries or PointwiseLimitSeries. | ||
Chart class for the I‑MR family. Exposes IndividualsSeries and MovingRangesSeries (FixedLimitSeries) after Analyze(). | ||
Chart class for the XBar‑R family. Exposes MeansSeries and RangesSeries (FixedLimitSeries) after Analyze(). | ||
Chart class for the XBar‑S family. Exposes MeansSeries and StandardDeviationsSeries (FixedLimitSeries) after Analyze(). Supports variable subgroup sizes. | ||
Chart class for the P chart. Exposes Series (PointwiseLimitSeries) with pointwise control limits after Analyze(). | ||
Chart class for the NP chart. Exposes Series (FixedLimitSeries) with scalar limits after Analyze(). Requires a constant sample size. | ||
Chart class for the C chart. Exposes Series (FixedLimitSeries) with scalar Poisson-based limits after Analyze(). | ||
Chart class for the U chart. Exposes Series (PointwiseLimitSeries) with pointwise limits after Analyze(). | ||
Chart class for the EWMA chart. Exposes
Series
(PointwiseLimitSeries)
after Analyze(). Configure
| ||
Chart class for the tabular CUSUM. Exposes UpperCusumValues (C+) and LowerCusumValues (C−) vectors and DecisionInterval after Analyze(). Configure via CusumChartOptions. |
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.
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 |
|---|---|---|
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. | ||
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 | |
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. |
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 |
|---|---|---|
Top-level capability result containing | ||
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 | |
Static helper that generates DiagnosticMessage objects for common capability conditions (insufficient data, non-normality, unstable process) without requiring a full analysis run. | ||
Result of the normality pre-check applied before computing capability indices. Exposes the test statistic, p-value, and the TestOfNormality used. |
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 |
|---|---|---|
An individual advisory message with a stable Code string, a human-readable Message, and a DiagnosticSeverity. | ||
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. | ||
Enum with values Info, Warning, and Error indicating the urgency of a diagnostic message. |
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 |
|---|---|---|
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 |
|---|---|---|
Per-chart options records that configure algorithm parameters. EwmaChartOptions holds the smoothing constant λ; CusumChartOptions holds the reference value k and decision interval h. | ||
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. | ||
Enum selecting the within-process sigma estimation method: MovingRange, WithinRange, WithinStandardDeviation, or OverallStandardDeviation. | Constraints, Limits, and Support Matrix, Choosing the Right Analysis | |
Enum selecting the normality test algorithm applied before capability computation: ShapiroWilk, AndersonDarling, or None to skip the check. |