--- epic: 6 story: 6.3 title: "Factorial & Combinatorics" status: draft --- ## Epic 6 — Advanced Math & Functions **Goal:** Scientific, financial, and power-user math. ### Story 6.3: Factorial & Combinatorics As a **CalcPad user**, I want to compute factorials, permutations, and combinations, So that I can solve probability, statistics, and combinatorics problems. **Acceptance Criteria:** **Given** the user writes `10!` **When** the engine evaluates **Then** the result is `3628800` **Given** the user writes `0!` **When** the engine evaluates **Then** the result is `1` (by mathematical convention) **Given** the user writes `nPr(10, 3)` **When** the engine evaluates **Then** the result is `720` (10! / 7!) **Given** the user writes `nCr(10, 3)` **When** the engine evaluates **Then** the result is `120` (10! / (3! * 7!)) **Given** the user writes `100!` **When** the engine evaluates **Then** the result is computed using arbitrary precision arithmetic and is exact (not a floating-point approximation) **And** the full integer result is displayed (or a scrollable/expandable representation for very large numbers) **Given** the user writes `(-3)!` **When** the engine evaluates **Then** an error is displayed (factorial of negative integers is undefined) **Given** the user writes `3.5!` **When** the engine evaluates **Then** either the gamma function is used to compute `Gamma(4.5)` approximately `11.6317`, or an error indicates that only non-negative integer factorials are supported **Given** the user writes `nCr(5, 7)` where k > n **When** the engine evaluates **Then** the result is `0` (by combinatorial convention)