Ошибка Рефал-


Subject: Ошибка Рефал-
From: A.A.Vladimirov (vladimi@mech.math.msu.su)
Date: Tue Nov 11 2003 - 12:54:39 MSK


Поддерживается ли в настоящее время Рефал-5 вообще и
дистрибутив ftp://ftp.botik.ru/pub/local/scp/refal5/ref5_000925.zip
в частности?

Вопрос не праздный, ибо файл arithm.c вышеупомянутого архива
содержит грубую ошибку, а именно: в строке 637 вместо
правильного оператора x = k % MAX_SHORT стоит оператор x = k.
Данная "мелочь" приводит к тому, что средние разряды
произведения многозначных (в смысле макроцифр) чисел
оказываются, вообще говоря, далеки от реальности.

В качестве примера можно привести операции

<Mul (5510 725908503 2714696811 3558488906 2579862466) 5433
3205256691 396761401 3151792086 1004175019 0>

и

<Mul (5510 725908503 2714696811 3558488906 2579862466) 5433
3205256691 396761401 3151792086 1004175018 4294967295>.

Результат этих операций наглядно показывает, что при УМЕНЬШЕНИИ
одного из сомножителей на единицу "произведение" может чудесным
образом УВЕЛИЧИВАТЬСЯ.



This archive was generated by hypermail 2b25 : Mon Oct 25 2004 - 21:24:59 MSD