본문으로 건너뛰기
피드

0으로 나눠도 안 터지는 계산기 — 구간 합집합 산술 웹 계산기

open-source 약 7분

Victor Poughon이 만든 interval union arithmetic 웹 계산기가 Show HN에 올라왔다. 실수 대신 '구간의 합집합'을 기본 단위로 삼아 0을 포함한 구간으로도 나누기가 가능하다. IEEE 754 double에 outward rounding을 적용해 0.1+0.2 같은 부동소수점 오차까지 구간으로 보장한다.

  • 1

    일반 interval arithmetic의 한계(0 나누기 폭발)를 합집합 기반으로 해결. `2 / [-2, 1]`이 `[-∞, -1] U [2, +∞]`로 나옴

  • 2

    Inclusion property: 입력 구간에서 아무 실수나 뽑아 실수 연산을 해도 결과는 출력 구간 안에 반드시 포함된다

  • 3

    0.1 + 0.2가 [0.29999999999999993, 0.3000000000000001]로 나와 부동소수점 오차를 정직하게 드러낸다

  • 4

    30개 넘는 수학 함수 지원 + 구간 중첩 문법 (`[0, cos(2*pi)]` 같은 표현 가능)

  • 5

    엔진 not-so-float도 오픈소스. IEEE 754 double에 직접 outward rounding 구현

  • Show HN에 올라온 "구간 합집합 산술(Interval Union Arithmetic) 계산기"
    • 실수가 아니라 구간(interval)의 합집합 단위로 계산함. 예를 들어 [a,b] ∪ [c,d] 같은 disjoint 구간들
    • 만든 사람은 Victor Poughon. 엔진은 not-so-float라는 별도 오픈소스 라이브러리
  • 일반 구간 산술(interval arithmetic) 대비 왜 "vastly superior"냐면
    • 0을 포함한 구간으로 나누기가 가능하고 그래도 결과가 닫혀있음(closed)
    • 예: 2 / [-2, 1][-∞, -1] ∪ [2, +∞]. 0을 건너뛰는 게 자연스럽게 표현됨
    • 일반 interval arithmetic에서는 이 연산이 정의 불능이거나 무한대로 폭발함

핵심 속성 — Inclusion Property

  • 각 입력 구간에서 아무 실수나 뽑아 같은 식을 실수 연산으로 돌리면, 그 결과는 반드시 출력 구간 안에 들어온다
    • 불확실성 표현에 쓸 수 있다는 뜻. 50 * (10 + [-1, 1])[450, 550]
    • 측정 오차나 파라미터 범위를 그대로 식에 녹여서 결과 범위를 얻을 수 있음
  • 복잡한 식도 구간 합집합 연산자 U로 조합 가능
    • ([5, 10] U [15, 16]) / [10, 100][0.05, 1.6]
    • tan([pi/3, 2*pi/3])[-∞, -1.732] U [1.732, +∞] (탄젠트 발산 구간을 두 조각으로 깔끔하게)

부동소수점 오차까지 보장해준다

  • Full precision 모드에서 0.1 + 0.2 돌려보면
    • 결과가 [0.29999999999999993, 0.3000000000000001]
    • 0.3이 double로 정확히 표현되지 않는다는 사실이 그대로 드러남. 그런데도 참값 0.3이 반드시 이 구간 안에 있음이 수학적으로 보장됨
  • IEEE 754 double에 대해 outward rounding을 구현해서 이걸 달성
    • 입력 숫자는 "IEEE 754 가장 가까운 값"을 포함하는 최소 구간으로 해석됨
    • 바깥쪽으로 둥글리기(outward rounding)라 실제 값이 구간 밖으로 나갈 일이 없음

문법과 기능

  • 지원 연산: + - * / ^, 비교, 그리고 30개 넘는 수학 함수
    • sqrt, log, log2, log10, exp, cos/sin/tan, acos/asin/atan, abs
    • hull([1,2] U [99,100])[1, 100] (합집합의 convex hull)
    • sqinv([4, 64])[-8, -2] U [2, 8] (제곱의 역 — 두 개의 disjoint 구간)
  • 재밌는 문법 특성으로 구간 중첩이 가능
    • [0, [0, 100]][0, 100]
    • 내부 구간은 상한값으로 해석됨. [0, cos(2*pi)]처럼 bound 자체에 계산식 가능

💡

> 실무에서 측정 오차나 센서 허용 범위를 계산식에 녹일 때 유용. "14±2를 8±2로 나누면?" 같은 문제를 한 줄로 풀 수 있다.


기술 맥락

일반 interval arithmetic(IA)는 1960년대 Ramon Moore가 정리한 분야인데, 오래 전부터 한계가 하나 있었어요. 0을 포함한 구간으로 나누면 결과가 "모든 실수"가 돼버려서 정보량이 0이 되거든요. 1 / [-1, 1](-∞, +∞)가 되면 이걸로 뭘 할 수가 없잖아요.

Interval Union Arithmetic은 이 문제를 "여러 구간의 합집합"을 기본 단위로 삼아서 해결해요. 1 / [-1, 1](-∞, -1] U [1, +∞)로 깔끔하게 나와서 정보가 보존돼요. 0 주변의 불가능 영역을 그대로 표현할 수 있는 거죠.

왜 이게 실용적이냐면, 부동소수점 연산의 오차를 "나도 모르게" 누적시키지 않고 명시적으로 추적할 수 있기 때문이에요. 예를 들어 과학 계산, 로봇 경로 계획, 최적화 알고리즘에서 "이 값이 어느 범위에 있는지 확실히 알아야" 하는 상황에서 쓰여요. MATLAB의 INTLAB, Python의 mpmath 같은 기존 라이브러리도 비슷한 목적이지만, 브라우저에서 즉시 쓸 수 있는 계산기 UI로 만든 건 교육적으로 꽤 가치가 있어요.

구현 관점에서 흥미로운 대목은 JavaScript의 number 타입(IEEE 754 double) 하나로 outward rounding을 직접 처리한다는 점이에요. 보통은 MPFR 같은 임의 정밀도 라이브러리를 붙이는데, 이 프로젝트는 not-so-float라는 경량 엔진을 따로 만들어서 네이티브 double 위에서 돌려요. 그래서 브라우저에서도 성능이 잘 나오는 거죠.

수치 불확실성을 식 수준에서 다루는 도구가 브라우저에서 즉시 쓰일 수 있게 된 사례. 교육과 프로토타이핑 양쪽에서 쓸모 있다.

댓글

댓글

댓글을 불러오는 중...

open-source

오픈서치, 엔터프라이즈용 18개월 LTS 프로그램 공개

오픈서치 소프트웨어 재단이 주요 버전별로 최소 18개월 지원하는 LTS 프로그램을 발표했다. 첫 대상은 2.19와 3.6이며 SBOM 구축, 60일 이내 중·고위험 취약점 대응, 인증 벤더 모델을 통해 엔터프라이즈 운영 리스크를 낮추는 데 초점을 맞췄다. 첫 공인 LTS 제공사는 빅데이터 부티크, 엘리아트라, 리졸브 테크놀로지 세 곳이다.

open-source

오픈소스 비디오 편집기 Kdenlive 2025 결산 — 다운로드 1,150만, 다음은 도프시트

KDE 산하 비디오 편집기 Kdenlive가 2025년 다운로드 1,150만 회를 기록했고, 핵심팀 8명에 38명의 contributor가 참여했다. 26.04 릴리스에 모니터 미러링과 자동 트랜지션 길이 조정이 들어가며, 키프레임 시스템 리팩터링과 Microsoft Store 입점 작업이 진행 중이다.

open-source

크래프톤, AI 모델 브랜드 'Raon' 공개...음성 LLM 10B 체급 글로벌 1위

크래프톤이 AI 모델 브랜드 Raon을 출범하고 음성 LLM, 실시간 양방향 음성 모델, TTS, 비전 인코더 4종을 허깅페이스에 오픈소스로 공개했다. 9B 파라미터 Raon-Speech는 10B 이하 공개 음성 언어 모델 중 영어·한국어 글로벌 1위를 기록했고, Raon-VisionEncoder는 일부 태스크에서 구글 SigLIP2를 상회한다.

open-source

모질라, 오픈소스 기업용 AI 클라이언트 '썬더볼트' 공개 — 자체 호스팅·로컬 우선 전략

모질라가 기업용 AI 프론트엔드 클라이언트 '썬더볼트'를 공개함. Haystack 기반으로 맞춤형 AI 파이프라인 구축이 가능하고, 로컬 SQLite·종단간 암호화·ACP 호환 에이전트를 지원해 데이터 주권이 중요한 기업 환경을 겨냥.

open-source

Cal.com, 오픈소스 접고 클로즈드로 전환 — 'AI가 코드 뒤지는 시대라서'

오픈소스 Calendly를 표방하며 성장한 Cal.com이 보안을 이유로 클로즈드 소스 전환을 발표했다. AI가 오픈 코드베이스에서 취약점을 대규모로 찾아내는 시대가 되면서 '코드 공개 = 공격자에게 설계도 제공'이라는 판단을 내렸고, 대신 MIT 라이선스의 Cal.diy를 별도 공개한다.