fpc-3.0.0 - запилили баг в арифметику

Вопросы программирования на Free Pascal, использования компилятора и утилит.

Модератор: Модераторы

Re: fpc-3.0.0 - запилили баг в арифметику

Сообщение vitaly_l » 21.03.2017 17:34:24

zub писал(а):>>Стоп!!! Компилятор??? Или процессор?
Берешь в руки бумажку с карандашем и расписываешь 0.7 по битикам. когда распишешь - перегоняешь обратно в десятичную систему - сразу станет ясно кто виноват - Компилятор??? Или процессор?

Ну так и надо было сказать, сразу! Вот мол, так и так, мультиуважаемые художники, с просони оговорился. А то, придумал тоже: бумажки... карандашики...

В общем выяснили: баг в арифметику - заложили производители процессоров :roll: и разработчики FPC - не виноваты :wink: . Дальше флуд можно не продолжать.
Аватара пользователя
vitaly_l
долгожитель
 
Сообщения: 3333
Зарегистрирован: 31.01.2012 16:41:41

Re: fpc-3.0.0 - запилили баг в арифметику

Сообщение pupsik » 21.03.2017 22:27:52

vitaly_l и более менее осознание происходящего у вас наступило на 11 стр...
А то, придумал тоже: бумажки... карандашики..
правильно "придумал". Взяли бы вы их ранее... :lol:
pupsik
энтузиаст
 
Сообщения: 1154
Зарегистрирован: 20.08.2014 16:20:13

Re: fpc-3.0.0 - запилили баг в арифметику

Сообщение MylnikovDm » 24.03.2017 17:36:38

Ну вы, ребята, даёте. :) Аж целых 11 страниц написали.

Кстати, интересно, любители точных вычислений и типа extended в курсе, что он работает только на 80х86 процессорах в 32 битном режиме?

А на x64 и других процессорах никакого extended нет, это псевдоним типа double.
Extended

For Intel 80x86 processors, the extended type takes up 10 bytes of memory space. For more information on the extended type, consult the Intel Programmer’s reference.

For all other processors which support floating point operations, the extended type is a nickname for the type which supports the most precision, this is usually the double type. On processors which do not support co-processor operations (and which have the {$E+} switch), the extended type usually maps to the single type.

http://www.freepascal.org/docs-html/prog/progsu159.html#x203-2080008.2.5
MylnikovDm
постоялец
 
Сообщения: 103
Зарегистрирован: 15.02.2007 21:26:10
Откуда: Челябинск

Re: fpc-3.0.0 - запилили баг в арифметику

Сообщение SAK » 25.03.2017 01:34:31

vitaly_l писал(а):В общем выяснили: баг в арифметику - заложили производители процессоров :roll: и разработчики FPC - не виноваты :wink: . Дальше флуд можно не продолжать.

Никто никуда никакого бага не вносил, это естественная потеря точности при переводе из одной системы счисления (десятичной) в другую (двоичную) и наоборот.
Аналогичная проблема: верно ли равенство 1/3 = 0.333333333? Можете ли Вы записать десятичную дробь с фиксированным числом разрядов абсолютно точно равную 1/3?

А ещё в математике есть понятие бесконечной периодической дроби и 1/3 = 0.(3) - это точное значение, а 2/3 = 0.(6) - это тоже точное значение.
Сложим левые и правые части приведённых равенств 1/3 + 2/3 = 0.(3) + 0.(6) и получим 1 = 0.(9)
SAK
постоялец
 
Сообщения: 158
Зарегистрирован: 18.02.2006 00:45:14
Откуда: Тим

Re: fpc-3.0.0 - запилили баг в арифметику

Сообщение Снег Север » 25.03.2017 07:53:33

SAK писал(а):Никто никуда никакого бага не вносил, это естественная потеря точности при переводе из одной системы счисления (десятичной) в другую (двоичную) и наоборот.
По логике разработчикам фрипаскаля следовало бы отождествить extended с long double для х64. И всё было бы нормально.
Аватара пользователя
Снег Север
долгожитель
 
Сообщения: 2993
Зарегистрирован: 27.11.2007 16:14:47

Re: fpc-3.0.0 - запилили баг в арифметику

Сообщение MylnikovDm » 25.03.2017 09:50:36

long double для x64 является псевдонимом всё того же double. Как 128 бит данный тип работает в C и C++ только на некоторых RISC процессорах, например серии SPARC или IBM Power или в специально написанных для этого варианта библиотеках, где вычисления делаются программно, а не микрокодом самого процессора или сопроцессора. В документации по компилятору Microsoft прямо сказано, что для x64 типы long double и просто double равны.
MylnikovDm
постоялец
 
Сообщения: 103
Зарегистрирован: 15.02.2007 21:26:10
Откуда: Челябинск

Re: fpc-3.0.0 - запилили баг в арифметику

Сообщение Снег Север » 28.03.2017 20:44:27

Кстати!
Буквально сегодня наткнулся на паскалевские библиотеки работы с числами высокой разрядности:
http://wolfgang-ehrhardt.de/misc_en.html
MPArith, AMath, DAMath
Заявлена поддержка FPC/Delphi для 32/64 бит. Пока не разбирался, но последние фиксы довольно свежие.
Аватара пользователя
Снег Север
долгожитель
 
Сообщения: 2993
Зарегистрирован: 27.11.2007 16:14:47

Re: fpc-3.0.0 - запилили баг в арифметику

Сообщение Дож » 28.03.2017 20:59:05

Снег Север, спасибо за сайт, выглядит очень любопытно!
Аватара пользователя
Дож
энтузиаст
 
Сообщения: 899
Зарегистрирован: 12.10.2008 16:14:47

Re: fpc-3.0.0 - запилили баг в арифметику

Сообщение ElectroGuard » 19.04.2017 12:40:28

vitaly_l писал(а):
zub писал(а):>>Стоп!!! Компилятор??? Или процессор?
Берешь в руки бумажку с карандашем и расписываешь 0.7 по битикам. когда распишешь - перегоняешь обратно в десятичную систему - сразу станет ясно кто виноват - Компилятор??? Или процессор?

Ну так и надо было сказать, сразу! Вот мол, так и так, мультиуважаемые художники, с просони оговорился. А то, придумал тоже: бумажки... карандашики...

В общем выяснили: баг в арифметику - заложили производители процессоров :roll: и разработчики FPC - не виноваты :wink: . Дальше флуд можно не продолжать.


О сколько нам открытий чудных готовит просвещенья дух!
1. В программировании есть еще тысяча и одна неочевидность.
2. Все такие умные, что яблоку негде упасть. Всё у них бажное - то компиляторы, то процессоры. Если ты считаешь это багом процессора - предложи Интелу варианты. Они, конечно, за 30+ лет не смогли ничего другого придумать
ElectroGuard
новенький
 
Сообщения: 71
Зарегистрирован: 03.06.2016 12:10:22

Re: fpc-3.0.0 - запилили баг в арифметику

Сообщение Лекс Айрин » 19.04.2017 12:41:52

ElectroGuard, не бери в голову...это все со скуки.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: fpc-3.0.0 - запилили баг в арифметику

Сообщение ElectroGuard » 19.04.2017 12:44:46

Ок :)
ElectroGuard
новенький
 
Сообщения: 71
Зарегистрирован: 03.06.2016 12:10:22

Re: fpc-3.0.0 - запилили баг в арифметику

Сообщение DYUMON » 19.04.2017 12:48:48

вы еще сумму ндс не вспоминали ?
Аватара пользователя
DYUMON
постоялец
 
Сообщения: 234
Зарегистрирован: 11.03.2009 13:32:54

Пред.

Вернуться в Free Pascal Compiler

Кто сейчас на конференции

Сейчас этот форум просматривают: Google [Bot] и гости: 18

Рейтинг@Mail.ru