Mathematics and Calculus
August 13, 2026 · View on GitHub
Note
Formal reference for geometry mapping against android.content.res.Configuration.
Related: PRD · PDR · Resize · MODULES
This document establishes the geometric algorithms parsing system UI inputs to logical device dimensions, mapping exact equations translated natively into AppDimens Dynamic (compose.<strategy> and code.<strategy>).
1. Axioms & Mathematical Nomenclature
Consistent parameter inputs establish standard behavior across all dimension computations:
| Algebraic Symbol | Definition & Behavior Matrix |
|---|---|
| Base scalar value provided by the application natively (usually constrained to standard dp or sp). | |
Effective target axis constraint (width vs height) validated post-rotation logic via DimenCalculationPlumbing. | |
Hardware screen screenWidthDp and screenHeightDp. | |
Mathematical limits: Shorter/Longer boundary conditions in dp extracted universally. | |
The smallestScreenWidthDp threshold in device orientation logic. | |
| System Aspect Ratio: (Guarded against computational Zero). | |
| Standardized Aspect Ratio normalized against the native base. | |
| Logarithmic normalizer representing device stretch: | |
| Dynamic system sensitivity mapping or User-injected correction modifier (). |
2. Hardcoded Core Mathematical Constants
// Referencing com/appdimens/dynamic/core/DesignScaleConstants.kt
const val BASE_WIDTH_DP = 300f
const val BASE_HEIGHT_DP = 533f
const val REFERENCE_ASPECT_RATIO = 1.78f
Geometric Corollaries:
- Base\ Diagonal = \sqrt{$300^{2}$ + 533^2} \approx 611.63\text{dp}
3. Global Precomputation Matrix
Since 3.1.8 the source of truth is the immutable DimenMetrics window snapshot, built once per window/configuration change (screen size, smallest width, density, font scale, orientation, ui mode, multi-window). Derived factors are computed once when the snapshot is created; satellite strategy scales are derived lazily from DimenCache.currentMetrics at resolution time. DimenCache.updateFactors() and StrategyFactorRegistry remain as source-compatibility hooks only.
journey
title High-Frequency Computation Caching Pattern
section 1. Trigger
Window / Configuration Shift : 5: Android System
DimenMetrics Snapshot : 4: DimenCache
section 2. Pre-calculation Phase
Shared metrics (scale / AR / density) : 3: DimenMetrics
Strategy scales (if AAR present) : 2: currentMetrics
section 3. State Preservation
Partition by snapshot into atomic cache : 1: AppDimens Plumbing
Shared factors derived in DimenMetrics (principal)
- Linear Limit:
scale - Normalized Multiplier:
defaultScaledAspectRatioMultiplier - Aspect helper:
defaultAspectRatioMultiplier - Density Override:
density
Satellite strategy scales (derived from the window snapshot)
| Factor | Module | Formula (default SW path) |
|---|---|---|
PowerFactors.scale | appdimens-dynamic-power | |
LogarithmicFactors.scale | appdimens-dynamic-logarithmic | piecewise on |
DiagonalFactors.scale | appdimens-dynamic-diagonal | diagonal / base diagonal |
PerimeterFactors.scale | appdimens-dynamic-perimeter | |
InterpolatedFactors.scale | appdimens-dynamic-interpolated | blend of base and linear |
4. Fundamental Dimension Engine Routines
Algorithms dictate absolute dimension translations based on injected strategy vectors. All variables operate linearly unless Multi-Window/Desktop protocols enforce default return blocks (bypass triggers).
4.1 The Scaled Engine Default (Linear Translation)
Function path: DimenCache.calculateRawScaling(baseValue, applyAspectRatio)
- Aspect Ratio (OFF):
- Aspect Ratio (ON + NO Custom Sensitivity):
- Aspect Ratio (ON + Injection (k)):
4.2 Comprehensive Strategy Formulas
Tip
The engine prefers direct multiplies against precomputed shared or satellite factors on default paths; non-default qualifiers may evaluate formulas inline.
| Strategy Class | Mathematical Formalization | Base Operational Logic |
|---|---|---|
| Percent | Standard relative mapping mapped to constraints without bounds injection. | |
| Power | Sublinear progression; dimensions expand at reduced magnitudes mitigating ultra-large bounds overlap. | |
| Fluid | Smooth threshold scaling restricted to web-standard device margins. | |
| Logarithmic | High damping factor pushing text limits safely regardless of tablet geometry bounds. | |
| Diagonal | Mapping visual boundaries accurately to hypotenuse scale. | |
| Fill & Fit | | Max bounds enforcement referencing explicit screen fractions to image frames. |
5. Constraint Injection Geometry (Resize Subsystem)
The resize model calculates optimal dimension capacity isolated inherently from scaling curves, driven by explicit spatial boundaries.
Subsystem Mathematics (ResizeMath.kt)
- Linear Candidate Creation: Generating isolated step parameters defining bounds:
- Binary Search Analysis: Operates tests querying an injected boolean Lambda against geometric constraints returning the Absolute Optimal Max size before overflow.
- Data Integrity: Employs physical conversion filters evaluating natively:
require(density > 0), shifting values dynamically prior to geometric validation.
6. Precision Diagnostics & Output Evaluation
AppDimens is designed entirely on IEEE 754 32-bit floats (Float), acknowledging minuscule mathematical deviations natively in standard testing. Validation of curves explicitly applies acceptable < 0.05 deltas ensuring visual integrity without overtaxing memory buses with Double precision arrays.
Explicit module verification operates via ./gradlew :library:testDebugUnitTest plus per-satellite formula tests (:library-percent:testDebugUnitTest, :library-auto:testDebugUnitTest, :library-diagonal:testDebugUnitTest, …) executing deterministic parameter inputs into each module’s *FormulasTest.