diff options
| author | eunhhu <[email protected]> | 2026-10-19 01:31:39 +0100 |
|---|---|---|
| committer | eunhhu <[email protected]> | 2026-10-19 01:31:39 +0100 |
| commit | 809a83a5764ec0f0c84b96c43a20cfb906eee031 (patch) | |
| tree | fe255be70914400060d810ec9ecd68c0edf1305e /docs/design/008-module-format.md | |
| parent | b79f627af433a63f8f42869b124f5ef344a49352 (diff) | |
| download | pure-809a83a5764ec0f0c84b96c43a20cfb906eee031.tar.gz pure-809a83a5764ec0f0c84b96c43a20cfb906eee031.zip | |
027's 5b: an i64 sum exact: its items gathered in a 128-bit integer and only the result checked against the range (overflow past it), so a sum past the range midway and back in it at the end is the answer and an i64 sum's order is none of its business; the batch executor's folds are numbers' lanes alone, summed in the items' order, as before; 008's FOLD says so; counts: b44 against b43 within 0.04% (BFS without batches -0.03%); the bank's queries (s43 and s44 in turns, six each) per_branch -1.32% (all six below s43's lowest: a larger Fold lays the number sum's loop otherwise), in_credit -0.72%, ranks -0.26%, the rest within 0.01%, the seven queries' answers the same bytes on both; 008 and 027
Diffstat (limited to 'docs/design/008-module-format.md')
| -rw-r--r-- | docs/design/008-module-format.md | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/docs/design/008-module-format.md b/docs/design/008-module-format.md index 201baf9..0ef9bf8 100644 --- a/docs/design/008-module-format.md +++ b/docs/design/008-module-format.md @@ -185,7 +185,7 @@ v7은 027의 4단계(패턴 모으기)의 판이다. 4b로 **키별 문서**를 bool은 실행 중에 수의 칸에 든 0이나 1이고, i64는 같은 8바이트의 정수다. CONST의 인자 2는 i64 상수(값의 8바이트), NUM_TEXT의 인자 2는 i64의 10진 글자다. LOAD·STORE·지역 칸·항목·FIELD·SEND는 i64를 수처럼 옮긴다. FOLD의 종류에 64(PURE_FOLD_INTEGER)를 -더하면 sum·max·min·distinct가 i64 값을 받는다(sum이 범위를 넘으면 `overflow`). i64 키 목록은 정수로 비교한다. `f`는 레코드 필드의 타입(수, text, bool 또는 i64)이고, `k`는 그 리스트의 키 필드 타입이다. 수 연산 결과가 유한하지 않으면 실패한다. 실패하면 그 이벤트의 모든 +더하면 sum·max·min·distinct가 i64 값을 받는다(sum은 정확하게 셈하고 결과가 범위를 넘을 때만 `overflow`: 중간이 넘쳐도 끝이 i64 안이면 답이라 항목의 차례에 매이지 않는다). i64 키 목록은 정수로 비교한다. `f`는 레코드 필드의 타입(수, text, bool 또는 i64)이고, `k`는 그 리스트의 키 필드 타입이다. 수 연산 결과가 유한하지 않으면 실패한다. 실패하면 그 이벤트의 모든 핸들러가 한 일이 취소된다. ## 로드할 때 검증하는 것 |
