Skip to main content

PTO-ARCH-DATA-TYPES-NUMERIC-CLASSIFICATION

PTO-ARCH-DATA-TYPES-NUMERIC-CLASSIFICATION

ASL pseudocode

The complete ASL owner is shown directly below.

// PTO-UNIT: {"id":"PTO-ARCH-DATA-TYPES-NUMERIC-CLASSIFICATION","surface":"arch","classification":["data-types","numeric-classification"],"depends_on":["PTO-ARCH-DATA-TYPES-ROUNDING"]}type NumericValueClass of enumeration {    NumericValue_InvalidEncoding,    NumericValue_PositiveZero,    NumericValue_NegativeZero,    NumericValue_PositiveSubnormal,    NumericValue_NegativeSubnormal,    NumericValue_PositiveNormal,    NumericValue_NegativeNormal,    NumericValue_PositiveInfinity,    NumericValue_NegativeInfinity,    NumericValue_QuietNaN,    NumericValue_SignalingNaN};
// Input and result subnormal rules are intentionally separate. They describe// the named hardware numeric profile and are not pto-v0 arithmetic behavior.type NumericInputSubnormalRule of enumeration {    NumericInputSubnormal_NotApplicable,    NumericInputSubnormal_Preserve};
type NumericResultSubnormalRule of enumeration {    NumericResultSubnormal_NotApplicable,    NumericResultSubnormal_GradualUnderflow};
type NumericTininessDetectionRule of enumeration {    NumericTininessDetection_NotApplicable,    NumericTininessDetection_AfterRounding};
type TileNumericSelection of record {    use_operation_default: boolean,    rounding_mode: NumericRoundingMode,    saturating: boolean};
// PTO-REQ-PROFILE-001, PTO-REQ-HARDWARE-NUMERIC-001:// bit-exact value classification for every TileDataType.
pure func NumericValueClassIsNaN(value_class: NumericValueClass) => booleanbegin    return value_class == NumericValue_QuietNaN ||           value_class == NumericValue_SignalingNaN;end;
pure func NumericValueClassIsInfinity(value_class: NumericValueClass) => booleanbegin    return value_class == NumericValue_PositiveInfinity ||           value_class == NumericValue_NegativeInfinity;end;
pure func NumericValueClassIsZero(value_class: NumericValueClass) => booleanbegin    return value_class == NumericValue_PositiveZero ||           value_class == NumericValue_NegativeZero;end;
pure func NumericValueClassIsSubnormal(value_class: NumericValueClass) => booleanbegin    return value_class == NumericValue_PositiveSubnormal ||           value_class == NumericValue_NegativeSubnormal;end;

Architecture behavior

purpose scope

Purpose and scope

This unit defines the common value classes and numeric-policy records used across every tile numeric format.

A shared classification vocabulary lets format owners report exact bit-pattern categories without selecting an arithmetic result or target implementation.

concepts state

Concepts and visible state

  • NumericValueClass includes invalid encoding; signed zero, subnormal, normal, and infinity; plus quiet and signaling NaN.
  • Input and result subnormal policies are separate: NumericInputSubnormalRule and NumericResultSubnormalRule do not collapse into one switch.
  • TileNumericSelection carries whether an operation default is used, the selected NumericRoundingMode, and a saturating flag.
rules interactions

Rules and interactions

NumericValueClassIsNaN, NumericValueClassIsInfinity, NumericValueClassIsZero, and NumericValueClassIsSubnormal test only their named class pairs.

NumericTininessDetectionRule distinguishes not-applicable from after-rounding detection.

Classification is a format property. It does not itself choose exception flags, rounding, saturation, or an operation result.

boundaries

Architectural boundaries

The input/result subnormal enums describe the named hardware numeric profile, not general pto-v0 arithmetic behavior.

A value class does not prove that an operation supports the corresponding data type; support remains with the active operation and profile owner.

example usage

illustrative reading example

NumericValue_NegativeZero makes NumericValueClassIsZero true, but it does not make NumericValueClassIsSubnormal true.

A consumer may branch on NaN classification before ordinary comparison, then return to its own profile owner for the exact selected result.

NDF clauses

Bodies come from owning ASL. Dragging or buttons change only this page-session view order.

No NDF clause is attached to this unit.

Evidence index

7 matching entries

Executable evidence1
  • PTO-ARCH-DATA-TYPES-NUMERIC-CLASSIFICATION compiles as an independent normative unit
    1. surfaceARCH
    2. ownerPTO-ARCH-DATA-TYPES-NUMERIC-CLASSIFICATION
    3. categorySTATIC-INVARIANT
    4. case001
    Show exact test source
    Sources and references
    Complete stable ID
    PTO-AVS-ARCH-DATA-TYPES-NUMERIC-CLASSIFICATION-STATIC-001
    Path
    tests/asl/arch/data-types/numeric-classification/arch-static-numeric-classification-contract-001.asl
    Kind / role
    static-invariant
    Pass condition
    the complete model and this unit's static invariant compile
    SHA-256
    40705e4189a6dd2971589efb1fb5759d52dc939010dbfb14ca249a4ccbec8448
    Open exact source ↗ for PTO-AVS-ARCH-DATA-TYPES-NUMERIC-CLASSIFICATION-STATIC-001
Commit-scoped evidence5
  • spec/evidence/release-traceability-readiness.json · closedPTO-EVIDENCE-RELEASE-TRACEABILITY
    Sources and references
    Complete stable ID
    PTO-EVIDENCE-RELEASE-TRACEABILITY
    Path
    spec/evidence/release-traceability-readiness.json
    Kind / role
    ASL/NDF/documentation/AVS traceability
    SHA-256
    c7327021d39dc67ac5564bc55073b3870a397d79ac8d9648284d56e33bc14a3e
    Open exact source ↗ for PTO-EVIDENCE-RELEASE-TRACEABILITY
  • spec/evidence/instruction-contract-closure.json · closedPTO-EVIDENCE-INSTRUCTION-CONTRACT-CLOSURE
    Sources and references
    Complete stable ID
    PTO-EVIDENCE-INSTRUCTION-CONTRACT-CLOSURE
    Path
    spec/evidence/instruction-contract-closure.json
    Kind / role
    mnemonic and encoding contract closure
    SHA-256
    3ef2bb62421c79dff8fa77a1c7983923b523244b8090812883ef81286ca8106a
    Open exact source ↗ for PTO-EVIDENCE-INSTRUCTION-CONTRACT-CLOSURE
  • spec/evidence/architecture-readiness.json · openPTO-EVIDENCE-ARCHITECTURE-READINESS
    Sources and references
    Complete stable ID
    PTO-EVIDENCE-ARCHITECTURE-READINESS
    Path
    spec/evidence/architecture-readiness.json
    Kind / role
    architecture maturity and blockers
    SHA-256
    4b0b85199101251bea744e0f3591cc31906909dc80d5ab651c417a936036a004
    Open exact source ↗ for PTO-EVIDENCE-ARCHITECTURE-READINESS
  • spec/evidence/release-gate-readiness.json · ready-for-exact-head-verificationPTO-EVIDENCE-RELEASE-GATE-READINESS
    Sources and references
    Complete stable ID
    PTO-EVIDENCE-RELEASE-GATE-READINESS
    Path
    spec/evidence/release-gate-readiness.json
    Kind / role
    exact-head gate readiness
    SHA-256
    a0f4d2b6920c08981ea55fd8ef820708a40d4feb5402c5150e8e9ab532d84ce0
    Open exact source ↗ for PTO-EVIDENCE-RELEASE-GATE-READINESS
  • spec/release-manifest.json · draftPTO-EVIDENCE-RELEASE-MANIFEST
    Sources and references
    Complete stable ID
    PTO-EVIDENCE-RELEASE-MANIFEST
    Path
    spec/release-manifest.json
    Kind / role
    release content and encoding fingerprints
    SHA-256
    1a64c109ed7a90351c41e2a418b3c0ebaf8ad975838986d2101385186b85c0d8
    Open exact source ↗ for PTO-EVIDENCE-RELEASE-MANIFEST
Decision history1
  • Numeric format value classification · accepted
    1. decision recordADR
    2. case0048

    Decision record

    Loading ADR-0048…

    Sources and references
    Complete stable ID
    ADR-0048
    Path
    docs/status/decisions/0048-numeric-format-value-classification.md
    Affected units
    PTO-ARCH-DATA-TYPES-FORMAT-BF16, PTO-ARCH-DATA-TYPES-FORMAT-DESCRIPTOR, PTO-ARCH-DATA-TYPES-FORMAT-E1M2X2, PTO-ARCH-DATA-TYPES-FORMAT-E2M1X2, PTO-ARCH-DATA-TYPES-FORMAT-E2M3, PTO-ARCH-DATA-TYPES-FORMAT-E3M2, PTO-ARCH-DATA-TYPES-FORMAT-E4M3, PTO-ARCH-DATA-TYPES-FORMAT-E5M2, PTO-ARCH-DATA-TYPES-FORMAT-E8M0, PTO-ARCH-DATA-TYPES-FORMAT-FP16, PTO-ARCH-DATA-TYPES-FORMAT-FP32, PTO-ARCH-DATA-TYPES-FORMAT-FP64, PTO-ARCH-DATA-TYPES-FORMAT-HF32, PTO-ARCH-DATA-TYPES-FORMAT-HIF4X2, PTO-ARCH-DATA-TYPES-FORMAT-HIF8, PTO-ARCH-DATA-TYPES-FORMAT-TF32, PTO-ARCH-DATA-TYPES-NUMERIC-CLASSIFICATION, PTO-ARCH-DATA-TYPES-NUMERIC-FORMATS, PTO-SCALAR-FMAX, PTO-SCALAR-FMIN, PTO-SCALAR-MODEL-FSU-PROFILE, PTO-TILE-MODEL-EXECUTION-COMPARISON, PTO-TILE-MODEL-EXECUTION-FUSED-MULTIPLY-ADD, PTO-TILE-MODEL-EXECUTION-UNARY, PTO-TILE-MODEL-NUMERIC-FORMATS, PTO-TILE-MODEL-ORDERING-SORTING, PTO-TILE-TMAX, PTO-TILE-TMIN
    Affected NDF
    PTO-FMAX-DECISION-BINDING-001, PTO-FMIN-DECISION-BINDING-001, PTO-NUMERIC-FINITE-DECOMPOSITION-001, PTO-NUMERIC-FORMAT-DESCRIPTOR-001, PTO-TMAX-CONTRACT-001, PTO-TMIN-CONTRACT-001
    SHA-256
    ce3ecd1851e22b5517d07076ab8bd2db36b6b4582111c761db19240275853d9c
    Open exact decision source ↗ for ADR-0048

Unit metadata

Open 4 generated metadata fields
id
PTO-ARCH-DATA-TYPES-NUMERIC-CLASSIFICATION
surface
arch
classification
[
  "data-types",
  "numeric-classification"
]
depends_on
[
  "PTO-ARCH-DATA-TYPES-ROUNDING"
]
Open generated traceability record
{
  "classification": [
    "data-types",
    "numeric-classification"
  ],
  "documentation": "docs/arch/data-types/numeric-classification.md",
  "id": "PTO-ARCH-DATA-TYPES-NUMERIC-CLASSIFICATION",
  "mnemonic": null,
  "readiness_subjects": [
    "ADR-0048"
  ],
  "semantic_tests": [],
  "source": "asl/arch/data-types/numeric-classification.asl",
  "surface": "arch",
  "tests": [
    "PTO-AVS-ARCH-DATA-TYPES-NUMERIC-CLASSIFICATION-STATIC-001"
  ]
}

Sources and release identity

Show commit, paths, hashes, version, and canonical owners
Release
0.58.5 · Release candidate
Commit
7dc8b7e5b121d2b2499a2273bebff29e2cd86812
ASL SHA-256
b2d9d280d2b40e6cd0c5e17400e9c2b29aec86fbb651d20404cf7b3a7b6b2cb9
Generated documentation
docs/arch/data-types/numeric-classification.md · embedded in this page
Documentation SHA-256
76dc76232960f31615ce5553b487112c7d754687787a742a3da831635f1878de

Exact owners