--- epic: 1 story: 1.4 title: "Arbitrary Precision Arithmetic" status: draft --- ## Epic 1 — Core Calculation Engine (Rust Crate) **Goal:** Build `calcpad-engine` as a standalone Rust crate that powers all platforms. This is the foundation. ### Story 1.4: Arbitrary Precision Arithmetic As a CalcPad user, I want calculations precise to at least 30 significant digits with no floating-point drift, So that financial calculations and large factorials produce exact, trustworthy results. **Acceptance Criteria:** **Given** the expression `0.1 + 0.2` **When** the engine evaluates it **Then** the result is exactly `0.3` **And** there is no floating-point representation error **Given** the expression `100!` **When** the engine evaluates it **Then** it returns the exact integer value (158 digits) **And** no precision is lost **Given** the expression `1 / 3` **When** the engine evaluates it **Then** it returns a result precise to at least 30 significant digits **And** the display is appropriately rounded for the user **Given** the expression `0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1` **When** the engine evaluates it **Then** the result is exactly `1.0` **Given** a financial expression such as `$1000000.01 * 365` **When** the engine evaluates it **Then** the result preserves cents-level precision with no drift **And** the result is `$365000003.65` **Given** the engine is compiled to WASM **When** arbitrary precision operations execute **Then** the `dashu` crate functions correctly in the WASM target **And** no platform-specific numeric behavior differs from native **Given** an expression involving very large numbers such as `2^1000` **When** the engine evaluates it **Then** the exact integer result is returned **And** the engine does not overflow or panic