Re: Ошибка в Рефал-5


Subject: Re: Ошибка в Рефал-5
From: Leonid Belous (belous@ilt.kharkov.ua)
Date: Thu Nov 13 2003 - 19:55:04 MSK


Уважаемый A.A.Vladimirov!

Спасибо за ответ.

Я попытался немного отредактировать ваше письмо в смысле вставки символа LF,
поскольку, к сожалению, все было в виде сплошной строки. И Pine и Outlook
показывали неформатированное письмо.
Тем более я не решился (и без Вашего согласия) отправлять его и в
конференцию. Поэтому тоже отвечаю лично.

Во первых хотел бы узнать как Вас зовут :-).

Я прокомментирую несколько фрагментов из Вашего ответа, полностью
приводимого ниже.

[...]
> 1) Открытая А.Столяровым дискуссия завтра отметит свой двухлетний юбилей.
За такой срок многое меняется. В частности,в результате
http://www.botik.ru/mail-archive/refal/0283.html содержание Вашего сообщения
http://www.botik.ru/mail-archive/refal/0259.html к сожалению, полностью
устарело.

Я не считаю, что после трагической смерти Саши Корлюкова, его вклад в
становление системы Рефал-5 как-то уменьшился. И не считаю, что ценность его
работ, которые опубликованы на Рефал-сайте, полностью утрачена.

[...]
> Насколько я могу судить, увеличение последней цифры на единицу в ДАННОМ
случае обращает макроцифру в 0, то есть уменьшает на 4294967295. Поэтому
уменьшение произведения в примере из Вашего snapshot само по себе было бы
неудивительно.Удивительно, что уменьшение происходит, когда на единицу
увеличивается значение во ВТОРОМ разряде (как и это и было в моём исходном
примере).

Sorry, не заметил. У меня было не слишком много времени, чтобы разбираться с
этим на более подробном уровне.

[...]
> Мне совершенно не нужна была (и теперь тоже не нужна) арифметика типа
real.

Я вовсе и не призывал к этому. В PHP кроме real в том же самом пакете
http://www.php.net/manual/en/ref.bc.php
есть и произвольно-разрядная целая арифметика. Раз Вы имеете дело с Linux,
то, наверное, пробовали и ее в своих задачах? Я, правда, не уверен, что она
эффективнее в реализации, чем в Рефал-5

[...]
> Эта ошибка уже исправлена А.Немытых.

Если не секрет, как Вы об этом узнали?
Наверное у Вас больше информации о поддержке Рефала-5, чем у меня :-).

С уважением,
--Леонид Белоус

----- Исходное сообщение -----
От: "A.A.Vladimirov" <vladimi@mech.math.msu.su>
Кому: "Leonid Belous" <belous@ilt.kharkov.ua>
Отправлено: 13 ноября 2003 г. 14:31
Тема: Re: Fw: пЫЙВЛБ Ч тЕЖБМ-5

> Уважаемый Леонид Белоус!
> > Hi!
>> Прошу прощения, я не уверен, что Вы подписаны на конференцию
refal@botik.ru.
> > Поэтому дублирую на ваш адрес мой ответ в конференцию.
>> С уважением,
>> --Леонид Белоус

>Я действительно не подписан на эту конференцию, однако периодически
просматриваю её содержание. К сожалению, я не смог понять, каким образом
можно поместить в конференцию ответ Вам именно как ответ, а не как новое
сообщение, а потому отвечаю лично.

> > ----- Исходное сообщение -----
> > От: "Leonid Belous" <belous@ilt.kharkov.ua>
> > Кому: <refal@botik.ru>
> > Отправлено: 12 ноября 2003 г. 18:43
> > Тема: Re: Ошибка в Рефал-5
>> > > Поддерживается ли в настоящее время Рефал-5 вообще идистрибутив
> >> > ftp://ftp.botik.ru/pub/local/scp/refal5/ref5_000925.zipв частности?
> >> > Уважаемый А.А.Владимиров,
> >> > Этот вопрос уже поднимался на этой конференции
> > http://www.botik.ru/mail-archive/refal/0258.html
> > и ответы на него можно посмотреть здесь
> > http://www.botik.ru/mail-archive/refal/0259.html
> > http://www.botik.ru/mail-archive/refal/0260.html
> >> > К сожалению, с того времени ситуация не изменилась в лучшую сторону
:(.
> >
> Спасибо за ссылки. Однако я задал свой вопрос именно потому, что читал
упомянутые Вами сообщения. Дело в следующем:
> 1) Открытая А.Столяровым дискуссия завтра отметит свой двухлетний юбилей.
За такой срок многое меняется. В частности,в результате
http://www.botik.ru/mail-archive/refal/0283.html содержание Вашего сообщения
http://www.botik.ru/mail-archive/refal/0259.html к сожалению, полностью
устарело.
> 2) Из ответа А.Конышева http://www.botik.ru/mail-archive/refal/0260.html
следует, что уже два года назад дистрибутив находился в полуподвешенном
состоянии.
> Поэтому я счёл возможным уточнить вопрос о нынешнем статусеРефала-5.
> > > > Вопрос не праздный, ибо файл arithm.c вышеупомянутого архивасодержит
> >> > грубую ошибку, а именно: в строке 637 вместоправильного оператора x =
k %
> > MAX_SHORT стоит оператор x = k.Данная "мелочь" приводит к тому, что
>> средние
>> > разрядыпроизведения многозначных (в смысле макроцифр) чиселоказываются,
> > вообще говоря, далеки от реальности.
> >> > > В качестве примера можно привести операции
> > > <Mul (5510 725908503 2714696811 3558488906 2579862466) 54333205256691
> >> > 396761401 3151792086 1004175019 0
>> >> > > и
> > > <Mul (5510 725908503 2714696811 3558488906 2579862466) 54333205256691
> >> > 396761401 3151792086 1004175018 4294967295>.
> >> > > Результат этих операций наглядно показывает, что при УМЕНЬШЕНИИ
одного
> > > из> >> > сомножителей на единицу "произведение" может чудеснымобразом
>> УВЕЛИЧИВАТЬСЯ.
>> > Спасибо за локализацию ошибки.
> > Поведение зависит еще от конкретной платформы.
> Обычно я работаю в Linux; там и было обнаружено упомянутою мной явление. В
результате тестирования в M$ Windows'98 ошибка успешно воспроизвелась.
> > > Я попробовал ваш второй пример в чуть усложненном контексте. Добавил
> > операцию Sub и исследовал разницу исходного и измененного чисел. Заодно
> > выводил значения этих чисел. У меня получилось, что при увеличении
>> последней>> > цифры на единицу (5 заменил на 6), результат уменьшился
> > (см. snapshot с моего экрана
> > http://www.refal.org/~belous/download/for_vladimirov.jpg ).
> >
> Насколько я могу судить, увеличение последней цифры на единицу в ДАННОМ
случае обращает макроцифру в 0, то есть уменьшает на 4294967295. Поэтому
уменьшение произведения в примере из Вашего snapshot само по себе было бы
неудивительно.Удивительно, что уменьшение происходит, когда на единицу
увеличивается значение во ВТОРОМ разряде (как и это и было в моём исходном
примере).
> > > Произвольно-разрядная арифметика в Рефале-5, насколько я знаю, не
>> проходила
>> > испытаний на реальных задачах с длинными числами (более одной
> > макроцифры). Арифметика же типа real, которая была в языке ранее,
> > исключена в последней реализации Рефала-5.
> >> > Лично я считаю Рефал-5 достаточно стабильной и отлаженной системой.
Из
> > подобных ситуаций выхожу через интерфейс с PHP. Например, в системе
> > Refal-PHP произвольно-разрядная арифметика типа real доступна из
Рефала-5
> > следующим образом
>>
http://www.refal.net/~belous/rphprdoc.htm#2.5.%20Вычисление%20математически>х%20функций>
> Мне совершенно не нужна была (и теперь тоже не нужна) арифметика типа
real. Сущностью задачи, при попытке решения которой была обнаружена ошибка
транслятора, является нахождение точных (и не очень грубых) оценок индекса
инерции рациональной симметрической матрицы большого порядка (сотни или даже
тысячи). Каким образом можно решать такую задачу при помощи арифметики типа
real, мне не вполне ясно. На мой взгляд, эта задача должна решаться именно
на основе длинной арифметики (поскольку рациональное число есть пара целых);
с этих позиций я к ней и подошёл.
> > > Еще раз спасибо за точное место указания ошибки. Надеюсь, что в
очередном
> > дистрибутиве Рефала-5 эта ошибка будет исправлена.
> Эта ошибка уже исправлена А.Немытых.

> > >> > С уважением,
> > --Леонид Белоус
> >> >> > ----- Исходное сообщение -----
> > От: "A.A.Vladimirov" <vladimi@mech.math.msu.su
>> > Кому: <refal@botik.ru
>> > Отправлено: 11 ноября 2003 г. 11:54
> > Тема: Ошибка в Рефал-5



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