AI Briefing

Show HN: disjoint sets of intervals 위에서 작동하는 calculator를 만들었다

·2026.04.18 10:15

핵심 내용

interval union arithmetic를 지원하는 계산기 구현과 기능 소개.

자세히 보기

Interval Calculator는 실수 하나가 아니라 interval들의 union을 계산 대상으로 삼는 calculator다.

핵심은 interval union arithmetic로, 일반 interval arithmetic보다 더 강력하게 0을 포함하는 interval로도 나눗셈이 닫혀 있다는 점이다. 예를 들어 2 / [-2, 1]은 [-∞, -1] U [2, +∞]처럼 disjoint union으로 결과가 나온다.

또한 이 방식은 inclusion property를 보장한다. 각 입력 union에서 임의의 실수를 하나씩 골라 같은 식을 실수 연산으로 계산하면, 그 결과는 반드시 출력 union 안에 들어간다. 불확실성 표현에도 쓸 수 있어 50 * (10 + [-1, 1]) 같은 식은 [450, 550]으로 계산된다.

지원하는 기능은 꽤 넓다.

  • 기본 연산: +, -, *, /, ^
  • 함수: abs, sqrt, sqinv, log, log2, log10, exp, cos, sin, tan, acos, asin, atan, min, max
  • 상수: inf, ∞, pi, e
  • 보조 함수: lo, hi, hull

문법적으로는 [a, b] 형태의 interval과 U로 이어진 union을 입력할 수 있고, 숫자만 입력하면 좁은 interval로 해석된다. 흥미롭게도 interval 안에 interval을 중첩해서 쓸 수 있으며, bound 자리에 들어간 interval은 upper bound를 취하는 방식으로 처리된다.

Full precision mode에서는 IEEE 754 double의 outward rounding을 사용해, 부동소수점 오차를 고려해도 실제 값을 포함하는 interval을 돌려준다. 예를 들어 0.1 + 0.2가 정확히 0.3이 되지 않더라도, 결과 interval은 참값을 감싸도록 계산된다.

작성자는 아직 버그가 남아 있을 수 있다고 밝히며 GitHub로 issue를 받고 있다. 코드와 엔진인 not-so-float도 오픈소스로 공개했고, 향후에는 input interpretation과 display precision 분리, ans 변수, intersection 연산, U 우선순위 개선, empty union 입력 지원을 계획하고 있다.

이 한국어 요약은 AI가 자동으로 만들었습니다. 원문의 주장과 맥락은 원문에서 확인해 주세요. 저작권은 원저작자에게 있습니다.

AI 처리 방식을 확인하거나, 요약 오류와 출처 표기 문제, 삭제 요청을 문의 · 건의로 알려주세요.