[an error occurred while processing this directive]
Ну да, ну да, я могу! :-)
(«Телесистемы»: Конференция «Цифровые сигнальные процессоры (DSP) и их применение»)
Отправлено
homekvn
01 ноября 2006 г. 12:31
В ответ на:
Круто Вы вчера зажигали :-)
отправлено andy_P 01 ноября 2006 г. 11:20
Составить ответ
|||
Конференция
|||
Архив
Ответы
А складывать так и не научились безошибочно на флоате. Увы, увы, увы:-(((
—
-=ВН=-
(01.11.2006 12:39
193.125.71.140
,
пустое
)
Да ладно Вам! Сами возьмите и на калькуляторе сделайте то же самое. А Си дома у меня нету. Вот. Я не спорю, может, и ошибся где, но свои расчеты привел. Завтра, завтра на Си проверю.
—
homekvn
(01.11.2006 13:16
84.146.34.201
,
пустое
)
Вы о чем? Я Вас просил всего-навсего 2 числа сложить.
—
-=ВН=-
(01.11.2006 13:19
193.125.71.140
,
пустое
)
Ах, Вы про вчерашнее. А я думал, Вы про тот пример, что мне ASergej_R19 написал. А с Вашим примером там во флоатинге 1.0 получается.
—
homekvn
(01.11.2006 13:55
84.146.34.201
,
пустое
)
Ах я про вчерашнее. Не 1 там не получится. Вас обманули. И ссылки на то, что разницу между целочисленным и плавающим результатом мала, не канают. Вы просили про точность - получите. Кстати, в примере с суммированием пятерок прав будет Ваш оппонент, а не Вы с калькулятором. Я Вам больше скажу - чтобы этого понять калькулятрора не надо. И С не надо. А формат ieee754 - нада. Граница, где начнутся расхождения в предложенном Вам примере с суммированием 5, будет в районе (2^24)/5. И еще - когда Вам п
—
-=ВН=-
(01.11.2006 14:43
193.125.71.140
,
пустое
)
...пишут число 1, это все таки число 1, а не 2^-15. Между ними есть разница, "хотя к пожарной охране,..." это не имеет никакого отношения.
—
-=ВН=-
(01.11.2006 14:45
193.125.71.140
,
пустое
)
Когда мне пишут число 1 в int16, то это будет 2^-15-1. Так что не будем про это.
—
homekvn
(01.11.2006 14:55
84.146.34.201
,
пустое
)
Топро что вы говорите называется fractional. Халява если и перемножитель тоже fractional.
—
andy_P
(01.11.2006 15:08
80.82.63.185
,
пустое
)
Еще есть названия q15, q31, 1.15, 2.14, ...
—
homekvn
(01.11.2006 15:30
84.146.34.201
,
пустое
)
Я эти q никак запомнить не могу и все время путаюсь в том, что циферки значат :-) Типа форматов в сишном выводе. Полная паника :-)
—
andy_P
(01.11.2006 15:32
80.82.63.185
,
пустое
)
Ну в общем нет слов, одни буквы остались. Вы разницу ощутите, когда умножите 1*1 и 2^-15 на 2^-15. А int, кстати, происходит от слова интегер, а не от слова фиксированная точка. Так что в int16 все числа целые:-)
—
-=ВН=-
(01.11.2006 15:04
193.125.71.140
,
пустое
)
Да уж... А Вы, когда будете умножать 1 на 1 результат куда будете записывать результат, в 16 бит, или в 32? Кроме того, если Вы мне про сдвиг на 1 еще напомните, так это тоже не в мой адрес: любой целочисленный проц. имеет в регистре установок соответствующий битик, который говорит о том, делать сдвиг после умножения, или не делать.
—
homekvn
(01.11.2006 15:13
84.146.34.201
,
пустое
)
Да куда бы я его не записывал, результат. Хоть в 1024 разряда. Но он будет 1. А сдвиг, который у любого целочисленного проца при умножении предусмотрен и может включаться и отключаться, как раз и придуман из-за того, что между 2^-15 и 1 есть отличия. Почему я Вам и заметил, что когда Вам пишут 1, это значит 1, целое, а не 2^-15.
—
-=ВН=-
(01.11.2006 15:22
193.125.71.140
,
пустое
)
Ладно, треп это уже. Все зависит от интерпретации данных. Если мне идут с кодека отсчеты аудиосигнала, то вообще-то обычно рассматривают его нормированным. И операции все делают со включенным флажком, о котором я говорил. Поскольку про интерпретацию мне никто ничего не сказал, то я интерпретировал так, как мне показалось уместным.
—
homekvn
(01.11.2006 15:26
84.146.34.201
,
пустое
)
Будучи буквоедом, в Вашей интерпретации 1 вообще не получится. -1 получится. 1 - 2^(-15) тоже получится. А 1 не получится никак.
—
andy_P
(01.11.2006 15:30
80.82.63.185
,
пустое
)
Ну ес-сно. Это за скобками... :-)
—
homekvn
(01.11.2006 15:31
84.146.34.201
,
пустое
)
А я Вам и заметил, что к пожарной охране это не относится. Просто на будущее имейте ввиду.
—
-=ВН=-
(01.11.2006 15:30
193.125.71.140
,
пустое
)
Есть на будущее иметь в виду! :-)
—
homekvn
(01.11.2006 15:30
84.146.34.201
,
пустое
)
"Вольно! С места не сходить! Не разговаривать!":-)
—
-=ВН=-
(01.11.2006 15:42
193.125.71.140
,
пустое
)
Видимо на компе в Си использован другой формат float'а... (+)
—
ASergej_R19
(01.11.2006 14:03
80.250.160.170
, 51 байт)
Правильно у Вас все. И любой аппарат раотающий с флоатом одиночной точности по формату ieee754 даст то же самое. Граница (при суммировании 5), как уже выше написал, (2^24)/5.
—
-=ВН=-
(01.11.2006 14:48
193.125.71.140
,
пустое
)
Да, правильно. Я стормозил, когда рассчитывал. Забыл, что когда мы начнем порядки выравнивать уже большой накопленной суммы и оередного слагаемого, 23-битная мантисса уже будет не способна впитать следующий член. В оправдание скажу лишь то, что (+)
—
homekvn
(01.11.2006 15:07
84.146.34.201
, 441 байт)
Вы на практическую ценность не сворачивайте, число слагаемых зависит от самих слагаемых:-) Cвоими 40 битами аккум. Вы прямо за..., за...:-) Пофигу сколько битов в аккумуляторе на том этапе. Пофигу. Операция делается раз. После обработки всего массива. И сколько времени она делается - никого не интересует при длинных массивах.
—
-=ВН=-
(01.11.2006 15:17
193.125.71.140
,
пустое
)
Ну, попробуйте обойдитесь одним разом, когда число слагаемых будет равно 2^41 (на всякий случай: аккумулятор 40 бит)
—
homekvn
(01.11.2006 15:19
84.146.34.201
,
пустое
)
Ну елки-палки. Ну я суммы разобью. Заведу 2 суммы по 64 бита. И еще 2 суммы по 32 бита. 65536 раз работаю с 32-х битными суммами. Затем их прибавляю к 64 битным. Очередные 65536 раз опять с 32 битными. И т.д. В самом конце склею 64 битные. Ну? Где тут 40 р. аккумулятор? Потери сами посчитаете?
—
-=ВН=-
(01.11.2006 15:28
193.125.71.140
,
пустое
)
Ну, вобщем, согласен.
—
homekvn
(01.11.2006 15:33
84.146.34.201
,
пустое
)
Фу... Слава Богу... :-) (+)
—
ASergej_R19
(01.11.2006 15:15
80.250.160.170
, 327 байт)
Такие суммы можно и в фикседе рассчитывать и во флоате. Все зависит от размера мантиссы. Например (+)
—
homekvn
(01.11.2006 15:22
84.146.34.201
, 264 байт)
И кстати Ваши потери на увеличения разрядности во float'е громадны, по сравнению с увеличением разрядности в fixed... Вам вон BH писал - там потери производительности получаются маленькие... (-)
—
ASergej_R19
(01.11.2006 15:32
80.250.160.170
,
пустое
)
Да прекрасно Шарк с двойным флоатом работает. Но, соглашусь, в фикседе это делать, наверное правильнее для самого общего случая.
—
homekvn
(01.11.2006 15:39
84.146.34.201
,
пустое
)
:-) (+)
—
ASergej_R19
(01.11.2006 15:46
80.250.160.170
, 263 байт)
Ну ладно, ладно! Размазали... :-)
—
homekvn
(01.11.2006 15:50
84.146.34.201
,
пустое
)
Да говорю же Вам - разрешения Вашей мантиссы не хватит... (+)
—
ASergej_R19
(01.11.2006 15:28
80.250.160.170
, 106 байт)
А я Вам говорю, если я возьму double float или вообще свой флоат сделаю, то всего мне хватит.
—
homekvn
(01.11.2006 15:34
84.146.34.201
,
пустое
)
Про потерю производительности скромно умолчим... :-)) (-)
—
ASergej_R19
(01.11.2006 15:36
80.250.160.170
,
пустое
)
Хто ж его знает?! Я руками посчитал, а проверить на компе только на работе смогу, не ранее чем завтра.
—
homekvn
(01.11.2006 14:08
84.146.34.201
,
пустое
)
На мой взгляд прав ВН, у float 23 бита мантиссы, соответственно потери в точности начнутся когда сумма превысит 2^24. Думать особо нечего.
—
andy_P
(01.11.2006 15:01
80.82.63.185
,
пустое
)
Хотя это если 5 складывать :-) Четверок или восьмерок можно больше без потери точности накопить :-)
—
andy_P
(01.11.2006 15:05
80.82.63.185
,
пустое
)
Я это оговаривал, подчеркивая, что речь о суммир. 5:-)
—
-=ВН=-
(01.11.2006 15:08
193.125.71.140
,
пустое
)
А мне вот скажите пожалуйста по моему примеру... Я где-то не прав? (-)
—
ASergej_R19
(01.11.2006 13:49
80.250.160.170
,
пустое
,
ссылка
)
Использовал вот эту программу... (+)
—
ASergej_R19
(01.11.2006 13:50
80.250.160.170
, 184 байт)
Отправка ответа
Имя (обязательно):
Пароль:
E-mail:
Тема (обязательно):
Сообщение:
Ссылка на URL:
Название ссылки:
URL изображения:
Перейти к списку ответов
|||
Конференция
|||
Архив
|||
Главная страница
|||
Содержание