Hacker News 의견
  • 흥미로운 이야기임. 숫자를 표현하는 더 강력한 방법은 연분수로 표현하는 것임. 연분수는 실수와 유리수를 효율적으로 표현할 수 있음
    • 재미있는 사실로, 오래되지 않은 수학 교과서에 따르면 연분수의 덧셈/곱셈 알고리즘은 존재하지 않을 가능성이 높다고 함. 그러나 1972년 Bill Gosper가 연분수는 산술에 완벽하게 적합하다고 증명했음
    • 나는 reals라는 Python 라이브러리를 작업 중임. 이 라이브러리는 Decimal이나 Fraction 타입을 대체할 수 있도록 설계되었음. Bill Gosper의 기술을 사용하여 연분수를 조작함
  • 링크가 짧아져서 클릭할 수 없는 것은 불행한 일임. 여기에 논문에 대한 실제 링크가 있음
  • 제목을 읽자마자 웃음이 나왔음. IEEE 754는 최악이지만 다른 모든 것보다는 나음. 예제를 보자마자 Kahan summation이나 전체 컴퓨터 대수 시스템일 것이라고 생각했음. Recursive Real Arithmetic는 들어본 적이 없었음
    • 초기 C++ 영웅 중 한 명에 대한 통찰력을 얻었음. 간단해 보이는 것들이 얼마나 깊을 수 있는지 상기시켜줌
  • NYC 지하철 요금은 $2.90임. iOS에서 PCalc를 사용하여 남은 MetroCard 값을 계산했을 때 0이 아닌 -8.881784197E-16이 나왔음. Apple의 계산기를 사용할 때는 이런 일이 발생하지 않음
    • 개발자에게 문의했더니 Apple은 자체 수학 라이브러리를 사용하고 있으며, 이를 대체할 다른 라이브러리를 찾아야 한다고 답변받음
  • 거의 모든 사람이 완전한 계산기 앱을 만들지 않았음. TI-89 같은 완전한 계산기를 의미함
    • Android에서 TI-89 계산기 에뮬레이터를 사용 중임. Android 앱 중 절반의 기능도 없고 잘 작동하지 않음
  • RRA로 전환하는 것의 단점은 사용자 경험뿐만이 아님. 결과가 0.0000000...일 때, 계산기는 그 숫자의 역수를 계산할 수 있는지 결정할 수 없음
    • 예를 들어, 1/(atan(1/5)-atan(1/239)-pi/4)는 "계산할 수 없음"을 출력함. 1/(atan(1/5)-atan(1/239)-pi/4+10^(-100000))을 시도해도 여전히 "계산할 수 없음"을 출력함
  • 거의 모든 숫자는 IEEE 부동 소수점으로 표현할 수 없음. 무작위 숫자가 이론적으로 설명할 수 없는 확률이 약 100%일 수 있음
    • 일부 문제는 bignums를 사용하면 피할 수 있음. 순간적인 존재적 불안이 해소됨
  • 고급 TI 계산기, 예를 들어 TI-92가 이 시스템을 사용했는지 아는 사람 있음? '유리수' 모드가 있었고 RRA를 사용했을 가능성이 있음
  • "recursive real arithmetic" (RRA)를 사용하는 방식이 Conal Elliot과의 훌륭한 토론을 떠올리게 함. 사물을 이산적으로 표현하는 것에서 연속적으로 표현하는 것으로 이동하는 것에 대해 이야기했음
    • 예를 들어, 이전에는 글꼴을 픽셀 블록으로 표현했지만, 이제는 선/벡터로 인식됨. 컴퓨터 과학은 최신 상업 도구를 배우는 것뿐만 아니라 진실을 추구하는 것이어야 함
  • Android Open Source Project의 계산기 소스 코드를 가지고 놀아봤음. Google이 이를 Google Play Services로 이전했지만, 오래된 소스는 여전히 사용 가능함
    • 몇 가지 실제 문제를 해결하며, 라이브러리에서 사용할 수 있기를 바람. 이전 기사에서 몇 가지 라이브러리에 대한 논의가 있었음