← 목록
기타 2026-07-10 3KB 읽기 3분

수치-과학 float 인프라 완결 (P4, 2026-07-10)

개요

P3 재측정이 지목한 수치-과학 도메인 잔여 4항목(진짜 float log, FFT, 정규분포 난수, RK4 스케일 재작성)을 한선씨로 구현·Python 대조 검증. 목표는 수치-과학 70%(P3후) → 90%+.

무엇을 했는지

  1. libs/수학.한선실수코사인/실수사인(Taylor+범위축소),
실수로그/실수로그10(arctanh 급수+범위축소), 실수지수(P1 지수함수 별칭), 안전정수실수(int→float 변환 VM 함정 우회 헬퍼), _급수항_무시가능(급수 조기종료 헬퍼) 추가. 전부 Python math 모듈과 완전/근접 일치 확인.
  1. libs/FFT.한선 신규: Cooley-Tukey radix-2 복소 FFT(제자리). 기존
FFT오디오.한선은 내장 ×1000 사인/코사인 의존이라 오답이었던 것을 실수사인/실수코사인으로 교체 재구현. 임펄스/단일정현파/IFFT왕복 3종 numpy.fft 대조 완전/근접일치.
  1. libs/난수분포.한선 신규: 원 지시(xorshift32)는 이 VM의 비트연산
내장(AND/OR/XOR/시프트)이 32비트 스케일에서 이미 깨진 것을 실측 확인해 포기, 대신 산술 전용 Lehmer/MINSTD LCG(Schrage법)+Box-Muller로 정규분포 구현. n=4000 표본 평균/표준편차가 기대값(0/1, 0.5/0.2887)에 근접.
  1. libs/미분방정식.한선 룽게쿠타4 전체 재작성: 기존 정수 고정소수점
스케일 트릭(P3에서 설계결함 확정) 폐기, 진짜 float RK4로 교체. Python 동일 알고리즘 구현과 완전일치.

VM 신규 함정 5건 발견 (crowny-knowledge add 완료, vm함정 카테고리)

  • int→float 변환 3^18 폭 제한(정수 3.87e8 이상이면 *1.0 변환 붕괴)
  • float 극소지수(~1e-160 이하) 곱셈 결과 붕괴
  • ×3ⁿ/÷3ⁿ 리터럴 float 피홀 최적화 붕괴(정수 3/9/27/81 리터럴 단독 토큰)
  • 비트연산(AND/OR/XOR/시프트) 32비트 스케일 붕괴
  • 과학표기법(1e-08) float 리터럴 렉서 미지원

관련 파일

  • /Users/ef/CrownyOS/crownyc/libs/수학.한선 (확장)
  • /Users/ef/CrownyOS/crownyc/libs/FFT.한선 (신규)
  • /Users/ef/CrownyOS/crownyc/libs/난수분포.한선 (신규)
  • /Users/ef/CrownyOS/crownyc/libs/미분방정식.한선 (룽게쿠타4 재작성, 기존 백업 .bak-P4 존재)
  • pkg/libs/ 동일 4파일 자동 동기화 확인
  • 검증 로그(정본): /Users/ef/CrownyOS/docs/한선씨-P4보완-20260710/수치float검증.md

회귀

tests/run_all.sh → 99/107 통과, 무회귀 확인(실패 8건 전부 기존/무관).

잔여 이슈

  • 실수* 계열 함수는 완비됐으나, 기존 재측정 스크립트(t1_float.한선 등)가
여전히 내장 사인()/로그()(×1000 근사)를 직접 호출하는 채점 방식이라면 그 스크립트들을 실수* 호출로 갱신해야 커버리지 점수에 반영됨(다음 재측정 세션 몫)
  • 보간법(#3)·t검정(#9)은 이번 범위 밖(별개 로직 버그)
  • 진짜 xorshift가 필요해지면 VM 비트연산 opcode 자체 수정 필요(C 소스,
이번 세션 범위 밖 — libs/*.한선만 수정 허용됨)