Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.02.03;
Скачать: CL | DM;

Вниз

Какая чушь :)   Найти похожие ветки 

 
homm ©   (2007-12-21 23:25) [0]

http://www.yandex.ru/yandsearch?clid=9582&text=IEEE754
Первая ссылка.

Особенно понравилось:
В настоящее время используются приборы точности не выше класса 0.1%. Это соответствует 4-5 десятичным разрядам. Потому большая часть мантисс IEEE754-чисел, особенно в форматах двойной и расширенной точности, несодержательна, фактически, есть информационный шум. Отсюда следует, что современный IEEE754-процессинг есть процессинг, обработка преимущественно шумов.
Какая чушь…


 
antonn ©   (2007-12-21 23:39) [1]

издержки "раскрутки", много всякого текста занимают верхние строки поиска хотя могут содержать всякую чушь :(


 
Ins ©   (2007-12-22 00:43) [2]


> Какая чушь…

Ну не совсем чушь. У нас предприятие разрабатывает приборы для аналитической химии - pH-метры, иономеры и т.д. Приборы как раз имеют точность 4-5 десятичных разрядов, но по RS-232 передают все 10-15. Допустим, pH-метр измерил pH раствора, и у него получилось 6,73230484312. Но при точности плюс-минус 0,5%, скажем, уже после второго знака после запятой цифры не несут никакой информационной ценности, так как они лежат в пределах допускаемой погрешности. Их можно смело отбрасывать. Да, фактически - это информационный шум.

Так что для измерительной техники - это обычное явление.


 
homm ©   (2007-12-22 07:14) [3]

> [2] Ins ©   (22.12.07 00:43)
> уже после второго знака после запятой цифры не несут никакой
> информационной ценности

Но и не делают обработку шумов преимущественной. Шум занимает младшие разряды.


> Их можно смело отбрасывать.

И таким отбрасыванием избавится от шумов? Это только с точки зрения интуиции так. Если включить здравый смысл, станет ясно что избавившись от цифр после запятой, мы избавимся от цифр после запятой, и просто дадим шумам другое значение. Пример:
Прибор с точностью 0,3% показал значение 22,21561. Это значит что цифры после второго знака после запятой можно отбросить: 22,2. Предположим, что реальное значение измеряемого параметра 22,2321. В первом случае шум был 0,01649, а необосновано отбросив младшие разряды мы увеличили его до 0,0321.


 
J_f_S   (2007-12-22 07:46) [4]


> homm ©   (22.12.07 07:14) [3]

Статистику в ВУЗе прогуливали?


 
vrem_   (2007-12-22 09:11) [5]

"преимущественно шумы" вот это не понятно. то, что отбрасывают по количеству меньше самого значения - в значении есть и целые допустим, а отбрасывают только дробные.


 
Ins ©   (2007-12-22 10:59) [6]


> И таким отбрасыванием избавится от шумов? Это только с точки
> зрения интуиции так. Если включить здравый смысл, станет
> ясно...


Спасибо, я это прекрасно понимаю :)
Отбрасывать - это значит хорошо бы их вообще не обрабатывать при расчетах, так как если перевести десятичное представление числа в формат с плавающей точкой, большинство бит при этом у того, что получится, будет бессмысленным. Однако при операциях с плавающей точкой все они будут использоваться, при этом так и получится - большинство времени при расчетах с плавающей точкой занимает обработка бесполезных бит (их большинство, хоть они и младшие). Представляя число с бОльшей точностью мы просто увеличиваем число бесполезных бит.


 
homm ©   (2007-12-22 11:26) [7]

> [6] Ins ©   (22.12.07 10:59)
> большинство времени при расчетах с плавающей точкой занимает
> обработка бесполезных бит

Совершенно необоснованное утверждение.
procedure TForm1.Button1Click(Sender: TObject);
var
 i, T: DWORD;
 s, r : XXX;
begin
 T := getTickCount();
 S := 0;
 for i := 0 to 99999999 do begin
   r := i;
   s := s + r;
 end;
 ShowMessage(inttostr(GetTickCount-T));
end;

вместо XXX:
Single — 2172
Double — 2187

Выбирайте тип под задачу. Почему то никто не возмущается что под Boolean нужна только 1/8 реально занимаемого им размера.


 
Ins ©   (2007-12-22 11:39) [8]


> homm ©   (22.12.07 11:26) [7]


Я не совсем понял, что ты этим примером хотел показать? Можно мне убогому объяснить популярно?


 
homm ©   (2007-12-22 11:52) [9]

> [8] Ins ©   (22.12.07 11:39)

Твое утверждение:
> большинство времени при расчетах с плавающей точкой занимает
> обработка бесполезных бит

Я увеличил количество «бесполезных» бит на много, и это НЕ заняло больше времени обрабоки. Отсюда прямым текстом следует, что «обработка бесполезных бит» НЕ «занимает большинство времени при расчетах с плавающей точкой». Т.е. доказывать целесообразность уменьшения мантисы, мотивируя это затратой рессурсов на вычисление, бездокозательно. Мотивируя занимаемой памятью — тоже не хоршо, просто потому что так есть, что минимальный размер плавающего числа равен 32 бита. Точно так же как есть то, что минимальный размер целово числа 8 бит.


 
homm ©   (2007-12-22 11:56) [10]

> [4] J_f_S   (22.12.07 07:46)

Неужели по статистике, изменяя значение, просто неоткуда решив, что нужно именно отбросить именни такую-то часть числа, мы приближаем значение к верному?


 
Ins ©   (2007-12-22 12:09) [11]


> Я увеличил количество «бесполезных» бит на много, и это
> НЕ заняло больше времени обрабоки.

Да нет, ты видимо просто не знал, что все операции с плавающей точкой осуществляются в формате Extended. При загрузке числа типа Single или Double в регистр процессора он конвертируется в этот формат, затем происходят вычисления (с огромным числом бесполезных бит), а потом - результат обрезается до нужной точности. Именно поэтому результат примерно одинаковый по времени - работа идет с одним и тем же форматом Extended. :)

PS: Антон хорошие статьи пишет, рекомендую:
http://www.delphikingdom.com/asp/viewitem.asp?catalogid=374

Удачи! :)


 
homm ©   (2007-12-22 12:28) [12]

> [11] Ins ©   (22.12.07 12:09)
> Да нет, ты видимо просто не знал, что все операции с плавающей
> точкой осуществляются в формате Extended.

Да, что то я это упустил из виду. Но тем не менее я сомневаюсь, что будь внутрение вычисления сделаны на меньшем количестве бит, был бы пропорциональный прирост производительности. Всем извстно, современные процессоры быстре работают на 4-х байтных операциях, чем на побайтовых. А запас точности пригождается при многократных операциях, которые, как известно, точности не прибавляют.


 
vrem_   (2007-12-22 12:34) [13]

homm ©   (22.12.07 11:26) [7]
на ассемблере написаны примеры как умножение реализовано, деление - то есть mul, div. И там оптимизация всюду, если биты не используются, то они нулевые, в оптимизации это используется.

по теме ветки - лучше бы не отбрасывали не нужные биты, а заменяли их на не мешающие и одновременно нужные для оптимизации :)


 
Ins ©   (2007-12-22 12:42) [14]


>  Но тем не менее я сомневаюсь, что будь внутрение вычисления
> сделаны на меньшем количестве бит, был бы пропорциональный
> прирост производительности.

Прирост производительности - будет, не сомневайся, просто дело в том, что в большинстве случаев на это можно закрыть глаза. В программе как правило присутствуют другие, гораздо более "узкие" места, на фоне которых потери из-за "лишней" точности незаметны. Так что первоначальная фраза - не чушь, она верна, другое дело как к этому относится. Лично мне от этого не жарко не холодно - самолеты летают, телевизор футбол показывает, я имею возможность общаться с вами по сети.


>  А запас точности пригождается при многократных операциях,
>  которые, как известно, точности не прибавляют.

Верно, но с оговоркой: "разумный запас точности". Если у меня ошибка в третьем знаке, может еще и имеет смысл при расчетах учитывать четвертый и пятый, но четырнадцатый и пятнадцатый - явно лишние :)


 
Anatoly Podgoretsky ©   (2007-12-22 22:03) [15]

> Ins  (22.12.2007 12:42:14)  [14]

Что ты сексуально озабочен, а про секс ничего не знаешь.


 
Ins ©   (2007-12-25 15:02) [16]


> ...а про секс ничего не знаешь.


Про секс не знать надо, сексом надо заниматься ;-)



Страницы: 1 вся ветка

Текущий архив: 2008.02.03;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.024 c
2-1199858443
Kolan
2008-01-09 09:00
2008.02.03
Как сделать сплиттер с линией в 1пикс.?


15-1198436072
No_Dead
2007-12-23 21:54
2008.02.03
Не могу определиться, что выбрать:(


2-1200214983
{ент
2008-01-13 12:03
2008.02.03
Как создать форму в RunTime


2-1200160636
петрович07
2008-01-12 20:57
2008.02.03
imagelist


15-1198567473
Vlad Oshin
2007-12-25 10:24
2008.02.03
Электричество. Объясните.