Status: CANONICAL — All operators derived from the nodal equation
Date: March 2026
Version: 0.0.3.3
Prerequisite: FUNDAMENTAL_THEORY.md §2 (Nodal Equation), UNIFIED_GRAMMAR_RULES.md (Grammar U1–U6)
Structural operators are the exclusive mechanism for modifying node state in TNFR networks. No direct mutation of EPI, , , or is permitted outside the operator algebra. This constraint is not a coding convention; it follows from the physics of the nodal equation:
Each operator implements a specific transformation of the right-hand side of (NE). The 13 operators collectively span the space of physically meaningful structural transformations on a TNFR graph: creation, integration, stabilization, destabilization, coupling, propagation, freezing, dimensional change, self-organization, phase transformation, regime transition, and multi-scale recursion.
The operator count is not arbitrary. The 13 operators arise from exhaustive enumeration of independent transformations of the structural triad subject to:
Throughout this document:
canonical.py is calibrated, not derived.Each node carries three irreducible attributes:
| Attribute | Symbol | Domain | Units |
|---|---|---|---|
| Form | (Banach space) | — | |
| Frequency | Hz_str | ||
| Phase | (or ) |
The derived quantity (structural pressure) drives evolution. Every operator acts on one or more of .
An operator maps the node state to a new state:
subject to:
Operators compose into sequences applied left-to-right. Grammar validation operates on the full sequence. The grammar is not commutative: the order of operators affects validity and outcome.
The 13 operators partition into functional classes defined by their effect on the nodal equation:
| Class | Operators | Effect on | Grammar Roles | |-------|-----------|-------------------------------|---------------| | Generators | AL, NAV, REMESH | Create or activate EPI | U1a | | Integrator | EN | Integrates external input | — | | Stabilizers | IL, THOL | Reduce | U2 (negative feedback) | | Destabilizers | OZ, VAL | Increase | U2 (positive feedback) | | Coupling | UM, RA | Phase synchronization | U3 | | Transformers | ZHIR, THOL | Bifurcation-driven change | U4a, U4b | | Closure | SHA, NAV, REMESH, OZ | Terminate sequences | U1b | | Simplifier | NUL | Reduces dimensionality | — |
Some operators appear in multiple classes. THOL is simultaneously a stabilizer (U2) and a transformer (U4b). NAV and REMESH serve as both generators (U1a) and closures (U1b). OZ is both a destabilizer (U2) and closure (U1b). This multiplicity reflects the richness of their physics.
Generators create EPI from null or dormant states. Grammar rule U1a requires that any sequence beginning from must start with a generator.
Physics: At , the nodal equation is undefined — there is no structural form to evolve. A generator bootstraps the system into a state where evolution can proceed.
Physics: Foundational activation of nodal resonance. Creates EPI from vacuum via resonant emission.
Transformation:
where is the canonical emission amplitude.
Activation threshold: where (operational free magnitude — the AL contract fixes the channel and sign, not this threshold).
Key constants:
| Constant | Value | Derivation |
|---|---|---|
| Emission amplitude | Transcendental base | |
| Activation threshold | operational (free) |
Properties:
Grammar: Generator (U1a).
Contract:
Physics: Controlled regime shift. Navigates between attractor states (dormant → active → resonant) with regime-specific parameter adjustment.
Transformation (regime-dependent):
| Regime | change | shift | reduction |
|---|---|---|---|
| Latent → Active | +20% | ||
| Active → Active | configurable | ||
| Resonant → Active |
Regime detection:
Properties:
Grammar: Generator (U1a), Closure (U1b).
Contract:
Physics: Propagates fractal pattern echoes across nested EPIs. Enforces multi-scale identity by linking current structure to prior states.
Transformation:
where (weighted average preserving energy exactly: ).
Properties:
Grammar: Generator (U1a), Closure (U1b).
Contract:
Asymptotic limit — REMESH-∞ (N15, May 2026):
The two-stage canonical recurrence (, , , defaults , ) admits a well-defined asymptotic operator as :
The limit exists as a bounded self-adjoint orthogonal projection on (the Hilbert space of EPI histories with geometric weight). Its fixed-point subspace is spanned by Fourier modes at frequencies — a uniform resonant lattice with spectral density .
Conservation under : The projected Noether charge is exactly conserved; the projected energy is monotone and decays at Cesàro when (default case: ).
Catalog-completeness consequence: The 13-operator TNFR catalog is closed under the REMESH-∞ limit. No 14th operator is required for the asymptotic projection, its conservation structure, or its spectral characterization. TNFR universality is structural/operational (same form across all networks reaching the limit) and NOT spectral (no direct match to Riemann, Kolmogorov , or RMT GUE/GOE).
Full derivation: REMESH_INFINITY_DERIVATION.md §§1–23 (W1 existence, W2 conservation + Lyapunov, W3 spectrum + final verdict). Commit anchors: W1 a1f298fd, W2 badac156, W3 48b0574a.
Physics: Captures and integrates incoming resonance from the network environment. Reduces via structured integration of external signals.
Transformation:
where is the canonical mixing fraction (transcendental correspondence).
Key constants:
| Constant | Value | Derivation |
|---|---|---|
| Mixing fraction | Transcendental π correspondence | |
| Contraction rate | Energy mixing contraction |
Properties:
detect_emission_sources().Grammar: Integrator (no active destabilizer/stabilizer role).
Contract:
Stabilizers provide negative feedback that ensures the convergence integral remains bounded. Grammar rule U2 requires that every destabilizer ({OZ, ZHIR, VAL}) be compensated by a stabilizer ({IL, THOL}).
Physics: Stabilizes structural form through negative feedback. The primary mechanism for ensuring bounded evolution.
Transformation:
where is the canonical pressure reduction factor (from ).
Phase locking (optional):
where is the phase locking coefficient and is the circular mean of neighbor phases.
Key constants:
| Constant | Value | Derivation |
|---|---|---|
| ΔNFR reduction factor | operational glyph factor (IL stabiliser; free magnitude) | |
| Contraction rate | Energy contraction from glyph factor () | |
| Phase locking | Configurable coupling strength |
Properties:
Grammar: Stabilizer (U2); Bifurcation Handler (U4a).
Contract:
Physics: Autonomous emergence via bifurcation. Creates sub-EPIs when the structural acceleration exceeds the bifurcation threshold, implementing operational fractality.
Bifurcation detection:
When (bifurcation threshold), sub-EPIs are spawned.
Sub-EPI creation:
where is the operational fractal scaling factor (a free parameter). The parent EPI receives a 10% emergence contribution: .
Key constants:
| Constant | Value | Derivation |
|---|---|---|
| Fractal scale | Operational fractal nesting (free parameter) | |
| Emergence contribution | Parent EPI increment fraction | |
| Collective coherence min | U5 requirement | |
| Sub- damping | Child inherits 95% of parent frequency | |
| Bifurcation threshold | configurable (default ) | From graph configuration |
Properties:
Grammar: Stabilizer (U2); Bifurcation Handler (U4a); Transformer (U4b).
Contract:
Destabilizers increase , driving the system away from equilibrium. Grammar rule U2 requires that destabilizers be compensated by stabilizers to ensure integral convergence.
Physics: Injects controlled instability by amplifying structural pressure. Probes bifurcation readiness by elevating .
Transformation:
where is the operational amplification factor (OZ destabiliser; free magnitude — the contract fixes only the sign ).
Bifurcation trigger: When , the system enters a bifurcation-active state requiring a handler (IL or THOL per U4a).
Key constants:
| Constant | Value | Derivation |
|---|---|---|
| Amplification factor | operational (OZ destabiliser; free) | |
| Expansion rate | Energy expansion from glyph factor () |
Properties:
Grammar: Destabilizer (U2); Bifurcation Trigger (U4a); Closure (U1b).
Contract:
Physics: Increases structural degrees of freedom. Elevates EPI and by a canonical scaling factor derived from the four fundamental constants.
Transformation:
Key constants:
| Constant | Value | Derivation |
|---|---|---|
| Scale factor | operational (VAL expansion; free) | |
| Expansion rate | Energy scaling | |
| Min EPI | minimum structural base (π-fraction, tunable) | |
| Min coherence | 60° harmonic coherence | |
| Bifurcation threshold | Detection threshold |
Grammar: Destabilizer (U2).
Contract:
Coupling operators establish and utilize phase-synchronized links between nodes. Grammar rule U3 requires phase compatibility verification: .
Physics: Synchronizes phases across neighbors, establishing structural links for resonance exchange.
Transformation:
Compatibility threshold: (the high-coherence gate, complement of the fragmentation threshold ).
Key constants:
| Constant | Value | Derivation |
|---|---|---|
| Compatibility threshold | high-coherence gate | |
| Phase push | Same physics as EN mixing | |
| reduction | Phase sync pressure relief |
Properties:
Grammar: Coupling (U3); requires phase verification.
Contract:
Physics: Propagates coherent patterns through phase-aligned nodes. Amplifies network alignment while preserving pattern identity.
Transformation:
EPI is propagated without identity change. The resonance threshold for detection is (operational; free detection sensitivity).
Key constants:
| Constant | Value | Derivation |
|---|---|---|
| Amplification factor | Moderate amplification | |
| Expansion rate | Energy amplification bound | |
| Resonance threshold | Detection threshold (operational, free) |
Properties:
Grammar: Propagation (U3); requires phase verification.
Contract:
Transformers execute structural bifurcations — qualitative state changes that require both threshold energy (from prior destabilizers) and a stable base (from prior coherence). Grammar rule U4b requires recent destabilizer context ( operations) and prior IL for ZHIR.
Physics: Controlled phase transformation. When the structural velocity exceeds a threshold , the phase undergoes a discontinuous transition .
Phase transformation:
The mutation is threshold-gated: it only activates when the system has accumulated sufficient structural pressure through prior destabilizers.
Bifurcation monitoring: Computes and flags bifurcation potential when it exceeds .
Key constants:
| Constant | Value | Derivation |
|---|---|---|
| viability threshold | Mutation viability condition (operational, free) | |
| Phase shift coefficient | ΔNFR-proportional phase shift | |
| Energy bound $ | \Delta E | $ |
Grammar: Transformer (U4b); Bifurcation Trigger (U4a).
Contract:
Physics: Freezes structural evolution by suppressing . With , the nodal equation yields regardless of .
Transformation:
EPI is preserved via latency snapshot.
Key constants:
| Constant | Value | Derivation |
|---|---|---|
| suppression factor | Structural continuity (operational, SHA_VF_FACTOR) | |
| Energy bound $ | \Delta E | $ |
Properties:
Grammar: Closure (U1b).
Contract:
Physics: Densifies and consolidates structural form by reducing dimensionality. Compresses while increasing local density.
Transformation:
Local density increases due to compression:
Key constants:
| Constant | Value | Derivation |
|---|---|---|
| Scale factor | Same operational ν_f step as SHA (NUL_scale) | |
| Densification factor | Geometric volume ratio (1/NUL_scale) |
Grammar: Simplifier (no active grammar role; supports VAL reversals).
Contract:
Operators combine into validated sequences that implement higher-level structural behaviors. All compositions must satisfy grammar rules U1–U6.
| Pattern | Sequence | Effect | Use case |
|---|---|---|---|
| Bootstrap | [AL, EN, IL, SHA] | Create → Integrate → Stabilize → Close | Network initialization |
| Stabilize | [IL, SHA] | Stabilize → Close | Consolidation after changes |
| Explore | [OZ, ZHIR, IL] | Destabilize → Transform → Stabilize | Breaking local optima |
| Propagate | [RA, UM] | Resonate → Couple | Spreading coherence |
| Name | Sequence | Description |
|---|---|---|
| Bifurcated base | [AL, EN, IL, OZ, ZHIR, IL, SHA] | Exploration with mutation and stabilization |
| Bifurcated collapse | [AL, OZ, NUL, IL, SHA] | Stress testing with contraction recovery |
| Theory system | [AL, NAV, UM, RA, IL, SHA] | Cognitive consolidation via coupling and resonance |
| Full deployment | [AL, UM, RA, OZ, ZHIR, IL, SHA] | Integration pipeline with exploration |
| Minimal stabilizer | [AL, IL, SHA] | Shortest valid bootstrap-stabilize-close |
| Contained crisis | [AL, EN, IL, OZ, SHA] | Crisis containment through intervention |
| Phase lock | [AL, EN, IL, OZ, ZHIR, SHA] | Synchronization through mutation |
| Resonance peak hold | [AL, EN, IL, RA, SHA] | Peak detection and maintenance |
Every composition above satisfies:
The structural energy functional serves as a Lyapunov candidate. It is emergent: built entirely from the tetrad fields, it contains no or term (measured: scaling or on every node leaves unchanged; the phase and the pressure do enter it). Consequently each operator's energy role is its canonical grammar U2 role, derived from config.physics_derivation — not a separate energy algebra.
| Class | Operators | Mechanism |
|---|---|---|
| Stabiliser () | IL, THOL | Reduce $ |
| Destabiliser () | OZ, ZHIR, VAL | Raise $ |
| Neutral () | AL, EN, RA, REMESH (EPI/form); UM, SHA, NUL, NAV | Act on the form (LHS), capacity, phase, or controlled channel that the pressure functional does not penalise by its grammatical role |
| Operator | Class | Pressure factor | Rate |
|---|---|---|---|
| IL | Stabiliser | (operational) | |
| THOL | Stabiliser | accel | |
| OZ | Destabiliser | (operational) | |
| ZHIR | Destabiliser | -shift | |
| VAL | Destabiliser | -scale | |
| AL, EN, RA, REMESH | Neutral | — (write EPI, the LHS) | |
| UM, SHA, NUL, NAV | Neutral | — (phase / capacity / controlled) |
Dual-lever note: the energy/Lyapunov role (stabiliser/destabiliser, the sign of the feedback) is distinct from the dual-lever (§17.1, which RHS factor an operator modulates). VAL engages the capacity lever yet is a U2 destabiliser; NAV engages the pressure lever yet is U2-neutral (controlled trajectory). See src/tnfr/physics/lyapunov.py.
For any U2-compliant sequence (destabilizers compensated by stabilizers):
This guarantees that grammar-compliant evolution is Lyapunov-stable with respect to the structural energy functional.
Proof: See STRUCTURAL_STABILITY_AND_DYNAMICS.md §1.3 and STRUCTURAL_CONSERVATION_THEOREM.md §8.
Every operator has a postcondition contract anchored to the direct effect on node state (the nodal dynamics , anchored to TNFR.pdf §2.2.1). The canonical contract layer src/tnfr/operators/operator_contracts.py is the single source of truth — it records each operator's primary_channel (one nodal-equation channel: / / / ), scale (NODE for twelve operators, NETWORK for the U5 operator REMESH), and postcondition. The proactive audit (audit_operator_contracts), the reactive integrity monitor (POSTCONDITIONS, src/tnfr/physics/integrity.py), and the introspection metadata all derive from this spec. The monitor supports three modes: OFF (production), OBSERVE (log violations), ENFORCE (raise exceptions).
| # | Operator | Glyph | Channel | Postcondition |
|---|---|---|---|---|
| 1 | Emission | AL | EPI | not decreased () |
| 2 | Reception | EN | EPI | not decreased (coherent integration) |
| 3 | Coherence | IL | non-decreasing; $ | |
| 4 | Dissonance | OZ | $ | |
| 5 | Coupling | UM | Phase compatibility $ | |
| 6 | Resonance | RA | EPI | EPI structural identity (sign/kind) preserved |
| 7 | Silence | SHA | EPI preserved over time; frozen | |
| 8 | Expansion | VAL | not decreased (capacity added) | |
| 9 | Contraction | NUL | not increased (capacity removed) | |
| 10 | Self-Organization | THOL | Global form preserved; sub-EPIs created (if bifurcation) | |
| 11 | Mutation | ZHIR | Phase changed when | |
| 12 | Transition | NAV | Controlled trajectory; no coherence collapse | |
| 13 | Recursivity | REMESH | EPI (network) | Nested structure maintained; parent identity preserved |
Operator gain magnitudes are free operational parameters: each operator's contract fixes its channel and sign (the canonical content), not its numeric magnitude, so the values below are operational calibrations. Only is a genuine structural scale; are not structural scales and no longer appear in the engine. The authoritative, current values live in src/tnfr/constants/canonical.py and the contracts in operators/operator_contracts.py; the engine-configuration tier (cache, FFT, optimization, performance) is calibrated to operational targets, not derived.
| Symbol | Name | Value | Role |
|---|---|---|---|
| Pi | the one genuine structural scale: bounds the phase sector ($ |
Free operational parameters (the contract fixes channel + sign, not magnitude). Representative current values:
| Constant | Value | Used by |
|---|---|---|
| EN / THOL collective-coherence fraction | EN mixing, UM phase push, THOL/VAL threshold (π-derived) | |
| SHA / NUL frequency factor | SHA suppression, NUL compression () | |
| NUL densification factor | NUL ( geometric volume-ratio) | |
| VAL scale factor | VAL expansion () | |
| AL emission boost | AL creation | |
| THOL fractal scale | Sub-EPI scaling |
The complete, authoritative set lives in src/tnfr/constants/canonical.py; among them the only genuine structural scale is the phase scale (the entry above is the one π-derived value).
The canonical content of each operator is its channel and sign (its contract), not its gain magnitude. The gains above are free operational parameters; the channel / grammar mapping is:
OZ (ΔNFR ↑, amplification) → U2 (destabilizer)
IL (ΔNFR ↓, reduction) → U2 (stabilizer), U4a (handler)
EN (EPI, mixing) → integrator
VAL (νf ↑, expansion) → U2 (destabilizer)
SHA (νf → 0, suppression) → U1b (closure)
ZHIR (θ, mutation) → U4b (transformer)
THOL (sub-EPI, self-org) → U2 (stabilizer), U4b (transformer)
AL (EPI from vacuum) → U1a (generator)Source: src/tnfr/constants/canonical.py and src/tnfr/operators/operator_contracts.py (the contract source of truth: channel, sign, scale, postcondition).
| Module | Content |
|---|---|
src/tnfr/operators/definitions.py | Facade: imports all 13 operator classes |
src/tnfr/operators/definitions_base.py | Operator abstract base class with __call__ workflow |
src/tnfr/operators/emission.py | AL implementation |
src/tnfr/operators/reception.py | EN implementation |
src/tnfr/operators/coherence.py | IL implementation |
src/tnfr/operators/dissonance.py | OZ implementation |
src/tnfr/operators/coupling.py | UM implementation |
src/tnfr/operators/resonance.py | RA implementation |
src/tnfr/operators/silence.py | SHA implementation |
src/tnfr/operators/expansion.py | VAL implementation |
src/tnfr/operators/contraction.py | NUL implementation |
src/tnfr/operators/self_organization.py | THOL implementation |
src/tnfr/operators/mutation.py | ZHIR implementation |
src/tnfr/operators/transition.py | NAV implementation |
src/tnfr/operators/recursivity.py | REMESH implementation |
src/tnfr/operators/nodal_equation.py | Nodal equation validation |
src/tnfr/operators/canonical_patterns.py | Canonical sequence definitions |
src/tnfr/operators/introspection.py | OperatorMeta metadata registry |
src/tnfr/operators/operator_contracts.py | Canonical contract layer (single source of truth: channel × scale × postcondition) |
src/tnfr/operators/grammar_canon.py | Canonical grammar spec (U1–U6 role table, structural typology, glyphic macros) |
src/tnfr/operators/grammar.py | Grammar validation (public API facade) |
src/tnfr/operators/grammar_dynamics.py | Incremental grammar-aware dynamics |
src/tnfr/operators/grammar_application.py | Pre-validated operator application |
src/tnfr/physics/integrity.py | 13/13 postcondition verification |
src/tnfr/physics/lyapunov.py | Per-operator energy bounds |
src/tnfr/constants/canonical.py | All derived constants |
The Operator.__call__(G, node, **kw) method implements the canonical execution pipeline:
_validate_preconditions()._integrity_monitor.before_operator().apply_glyph_with_grammar() (U1–U6)._integrity_monitor.after_operator() — verifies postconditions._collect_metrics().| Example | Operators demonstrated |
|---|---|
| 04_operator_sequences.py | All 13 operators, canonical compositions |
| 10_simplified_sdk_showcase.py | SDK-level operator usage |
| 29_lyapunov_stability_demo.py | All 13 energy bounds, Lyapunov stability |
| 36_grammar_violation_detector.py | Grammar enforcement across sequences |
from tnfr.sdk import TNFR
net = TNFR.create(20).ring().evolve(5)
# Grammar-aware evolution (proactive U1-U6 enforcement)
net.evolve_grammar_aware(steps=10)
# Integrity check (13/13 postconditions)
report = net.integrity_check()
# One-line self-optimization (auto operator selection)
from tnfr.sdk.fluent import TNFRNetwork
TNFRNetwork(G).focus(node).auto_optimize().execute()The 13 canonical TNFR operators form a complete, irreducible algebra for structural transformations governed by the nodal equation .
Key results:
canonical.py are operational parameters (only is a genuine structural scale); the engine-configuration tier is calibrated, not derived.Computational experiments (Examples 37–39, seed 42, , Erdos-Renyi ) reveal how the 13 operators couple to the structural field tetrad and conservation quantities. These findings are empirically reproducible and derive from the nodal equation.
The nodal equation has two independent factors. Each operator modulates EPI evolution through predominantly one of these "levers":
| Lever | Operators | Mechanism |
|---|---|---|
| (capacity) | UM, SHA, VAL | Modify reorganization frequency |
| (pressure) | IL, OZ, THOL, ZHIR, NAV | Modify reorganization pressure |
| Both | NUL | Changes frequency and pressure simultaneously |
| Neutral | AL, EN, RA, REMESH | Affect EPI directly or leave state unchanged |
This dual-lever structure is why grammar requires both U2 (convergence of ) and U4 (bifurcation control): different operators control different factors of the integrand.
Example: NAV (Transition) produces the largest single change (), consistent with its role as a regime-shift operator.
Each operator has a characteristic coupling profile to the four tetrad fields. Measured as percentage change per field after single operator application on a random 20-node network:
| Operator | (%) | (%) | (%) | (%) | |----------|-------------|----------------------|-----------------|-------------| | IL (Coherence) | +7.8 | | 0.0 | | | OZ (Dissonance) | +7.8 | | 0.0 | | | UM (Coupling) | | +2.5 | | +31.4 | | NAV (Transition) | | +45.1 | 0.0 | +187.4 | | SHA (Silence) | 0.0 | 0.0 | 0.0 | 0.0 |
Key findings:
Observation: Coherence (IL) and Dissonance (OZ) produce identical energy functional changes () and identical tetrad field perturbations when applied to the same initial state.
Interpretation: Both operate exclusively via the lever with the same magnitude , but with different physical semantics:
The identical tetrad response occurs because the tetrad fields depend on the absolute state of across the network, and a single-node perturbation of the same magnitude produces the same global field response regardless of sign. This symmetry breaks under repeated application: cumulative IL drives toward equilibrium while cumulative OZ drives toward divergence, as required by U2.
Result: Coherence-length and structural potential show a perfectly linear response to perturbation magnitude (Pearson ).
| 0.01 | ||
| 0.05 | ||
| 0.10 |
response is linear across the full range, confirming the 0th-order (aggregation) nature of the structural potential from the derivative tower (§ Minimal Structural Degrees). The response transitions from linear to strongly nonlinear above , consistent with critical phenomena near the correlation divergence.
The experimental data confirm a unidirectional causal chain:
The tetrad fields are diagnostics of nodal equation dynamics, not independent dynamical variables. This is evidenced by:
Grammar-compliant sequences produce net energy descent across all four canonical patterns (Bootstrap, Stabilize, Explore, Propagate). The energy trajectory through a sequence traces a landscape that Grammar U2 constrains to be bounded.
Lyapunov verification (seed 42): The first Lyapunov cumulative product for a Bootstrap+Explore+Stabilize sequence is (not contractive over the full sequence), but the net energy change is (descent). This confirms that Lyapunov contractivity is sufficient but not necessary for energy descent — grammar compliance provides the stronger guarantee.
| Example | Experiment | Key metric |
|---|---|---|
examples/02_physics_regimes/37_operator_tetrad_synergy.py | Fingerprint matrix, energy signatures, safety envelope, Noether conservation | Per-operator tetrad coupling (%) |
examples/02_physics_regimes/38_grammar_energy_landscape.py | Energy landscape, Lyapunov bounds, canonical pattern comparison | Energy trajectory through sequence |
examples/02_physics_regimes/39_nodal_equation_decomposition.py | Lever classification, causal chain, waveform trajectory, response functions | vs per operator |
All experiments use seed 42 for reproducibility (Invariant #6).
src/tnfr/constants/canonical.pyexamples/02_physics_regimes/37_operator_tetrad_synergy.pyexamples/02_physics_regimes/38_grammar_energy_landscape.pyexamples/02_physics_regimes/39_nodal_equation_decomposition.py| rad |
| 0.30 |
| 0.50 |
| 0.80 |