|
|
|
Точная арифметика.
|
|||
|---|---|---|---|
|
#18+
Добрый день! Пишу небольшой 3d-конструктор на OpenGL(компилятор VC6.0 и MFC). Все вычисления производятся во float и при этом неибежна потеря данных, связанная с неточностями в арифметике(потеря значимости и т.п.) у типов с плавающей точкой. Помогите разобраться в этом достаточно серьезном вопросе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.08.2005, 13:25 |
|
||
|
Точная арифметика.
|
|||
|---|---|---|---|
|
#18+
Хитрый МухПишу небольшой 3d-конструктор на OpenGL(компилятор VC6.0 и MFC). Все вычисления производятся во float и при этом неибежна потеря данных, связанная с неточностями в арифметике... Может я что то не понимаю, но порядок округления получаемых значений - мало зависит от языка. Тут больше логика и понимания проблем погрешности вычислений. Другими словами - у Вас проблема не с языком. У Вас проблема с математикой... с уважением (круглый) ЗЫ Возможно и этот вопрос мона решить - но тут нужно иметь сам код. Т.е. те телодвижения которые делаете Вы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2005, 14:24 |
|
||
|
Точная арифметика.
|
|||
|---|---|---|---|
|
#18+
Хитрый МухДобрый день! Пишу небольшой 3d-конструктор на OpenGL(компилятор VC6.0 и MFC). Все вычисления производятся во float и при этом неибежна потеря данных, связанная с неточностями в арифметике(потеря значимости и т.п.) у типов с плавающей точкой. Помогите разобраться в этом достаточно серьезном вопросе. В чем проявляется потеря данных ? То есть как вы это заметили и почему полагаете, что виноваты вычисления во float? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2005, 15:03 |
|
||
|
Точная арифметика.
|
|||
|---|---|---|---|
|
#18+
Проблема -то в чем ? Не ясно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2005, 00:19 |
|
||
|
Точная арифметика.
|
|||
|---|---|---|---|
|
#18+
Тогда надо использовать double. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2005, 07:33 |
|
||
|
Точная арифметика.
|
|||
|---|---|---|---|
|
#18+
Есть довольно популярная задачка. Дано: окружность и точка, которая по ней двигается по известному закону. Требуется реализовать анимацию движения этой точки для заданных интервалов времени dt. Студент диффереци- рует уравнение зависимости x,y от времени и получает уравнение движения. И .... точка начинает двигатся ПО СПИРАЛИ (!). Студент впадает в кому. Это я к тому рассказываю, что если чего-то не ладится с вычислениями, стоит обратить внимание на саму модель вычислений. И в данном примере дело было вовсе не в разрядности а в понимании самой постановки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2005, 09:23 |
|
||
|
Точная арифметика.
|
|||
|---|---|---|---|
|
#18+
Спасибо всем кто ответил! Извините за задержку - инет кончился))) В общем, приведу небольшой пример: Код: plaintext 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2005, 12:41 |
|
||
|
Точная арифметика.
|
|||
|---|---|---|---|
|
#18+
Хитрый МухСпасибо всем кто ответил! Извините за задержку - инет кончился))) В общем, приведу небольшой пример: Код: plaintext 1. 2. 3. 4. А чего вы ожидали? Именно поэтому такие действия в машинных вычислениях являются почти что запрещенными (естественно для тех кто хочет получить нормальный результат)))). При неосторожном делении вы теряете точность, а при умножении получаете паразитные значения. И поэтому никогда не следует их совмещать. В общем можно руководствоваться принципом -- с каждым значением выполнять по возможности "опасных" минимум операций. Кстати, суммирование ряда величин следует вести с наименьших. А собственно точные принципы разъясняются в любой книге по вычислительной математике. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2005, 17:43 |
|
||
|
Точная арифметика.
|
|||
|---|---|---|---|
|
#18+
Потеря значений - общая проблема ВСЕХ технологий основанных на цифровых методах обработки информации. Вот точность можно повышать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2005, 21:01 |
|
||
|
Точная арифметика.
|
|||
|---|---|---|---|
|
#18+
SarinПотеря значений - общая проблема ВСЕХ технологий основанных на цифровых методах обработки информации. Вот точность можно повышать. Вот никак не пойму, откуда такой термин-то выкопал ты -- потеря значений? Это вы типа переменные теряете?))) Или имеешь в виду то, что происходит при дискретизации аналогового сигнала в устройствах типа АЦП? В данном случае обсуждается только потеря ТОЧНОСТИ. Разрядную сетку под мантиссу числа можно увеличивать бесконечно, но элементарные неграмотные операции приведут обратно все к тому же числовому мусору. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2005, 11:14 |
|
||
|
Точная арифметика.
|
|||
|---|---|---|---|
|
#18+
Здесь пишут про subj http://cch.loria.fr/documentation/IEEE754 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2005, 11:45 |
|
||
|
Точная арифметика.
|
|||
|---|---|---|---|
|
#18+
Термин называется "потеря значимости". Возникает при сложении двух чисел, одно из которых большое, другое маленькое. Для сложения на сумматоре числа должны быть приведены из нормализованного состояния к одному порядку. Это достигается за счет сдвига мантиссы меньшего числа вправо на какое-то число разрядов, чтобы сравнять порядки. При больших разницах порядка младшие знаковые разряды меньшего числа спадают с разрядной сетки и не участвуют в сложении, меньшее число вообще даже может превратиться в ноль. Таким образом, что прибавляешь это число, что нет - результат не меняется. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2005, 21:51 |
|
||
|
Точная арифметика.
|
|||
|---|---|---|---|
|
#18+
LelikkА собственно точные принципы разъясняются в любой книге по вычислительной математике. Не подскажите ли какую-нибудь электронную книгу/документацию по вычмату? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2005, 07:19 |
|
||
|
Точная арифметика.
|
|||
|---|---|---|---|
|
#18+
Любой учебник для вузов по выч. технике. Например, http://www.ozon.ru/context/detail/id/1713413 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2005, 13:17 |
|
||
|
Точная арифметика.
|
|||
|---|---|---|---|
|
#18+
MasterZivЛюбой учебник для вузов по выч. технике. Например, http://www.ozon.ru/context/detail/id/1713413 Мимо!! Дискетна математика не имеет никакого отношения к вычислительной и проблемами точности вычислений не занимается! А к тому же эта книжка не очень удачная, особенно по стилю изложения материала. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2005, 17:42 |
|
||
|
Точная арифметика.
|
|||
|---|---|---|---|
|
#18+
Для теоретического изучению я бы порекомендовал: Бахвалов, Жидков "Численные методы". И Cамарский, Гулин "Численные методы" ________________________________________________________ Глюк - это высокоорганизованная система не поддающихся определению частиц ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2005, 17:45 |
|
||
|
Точная арифметика.
|
|||
|---|---|---|---|
|
#18+
Может быть я Новиковых перепутал ? Что ж их так много что ли ? Блин, этот из политеха, а мне из ЛИТМО был нужен ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2005, 22:30 |
|
||
|
Точная арифметика.
|
|||
|---|---|---|---|
|
#18+
В принципе, я уже разобрался почему возникают погрешности вычислений! Но, блин, может быть существуют уже готовые решения в виде, скажем, библиотек для точных вычислений? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2005, 14:15 |
|
||
|
Точная арифметика.
|
|||
|---|---|---|---|
|
#18+
Есть например gmt. www.gnu.org ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2005, 20:37 |
|
||
|
Точная арифметика.
|
|||
|---|---|---|---|
|
#18+
LelikkДля теоретического изучению я бы порекомендовал: Бахвалов, Жидков "Численные методы". И Cамарский, Гулин "Численные методы" ________________________________________________________ Глюк - это высокоорганизованная система не поддающихся определению частиц Любая книга с фамилией Самарский представляет собой качественное изложение материала по вычислительной математике ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2015, 09:14 |
|
||
|
Точная арифметика.
|
|||
|---|---|---|---|
|
#18+
MasterZivЕсть например gmt. www.gnu.org А сейчас этот совет актуален ? PS Хочу хотя бы одну программу численного решения ДУ написать не на Maple. Зря что-ли мне так Си нравится :) Заодно сравню по вопросу скорости, но думаю на Си будет медленнее. Будет здорово если ошибаюсь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2015, 09:17 |
|
||
|
Точная арифметика.
|
|||
|---|---|---|---|
|
#18+
SS Любая книга с фамилией Самарский представляет собой качественное изложение материала по вычислительной математике Да что там качественное. Это мелочи. Это один из величайших математиков России, провёл ряд фундаментальных исследований в области теории численных методов, разностных схем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2015, 09:30 |
|
||
|
Точная арифметика.
|
|||
|---|---|---|---|
|
#18+
SarinПотеря значений - общая проблема ВСЕХ технологий основанных на цифровых методах обработки информации. Вот точность можно повышать. Так уж и всех? Квантор требует осторожности в использовании... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2015, 10:43 |
|
||
|
Точная арифметика.
|
|||
|---|---|---|---|
|
#18+
SashaMercury, ну ты некромансер блин. Поднял материал 10-летней давности. Автор уже давно решил это проблему или завязал с кодинком и пошёл в торговлю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2015, 12:30 |
|
||
|
Точная арифметика.
|
|||
|---|---|---|---|
|
#18+
Раз уж подняли некротопик, пусть будет What Every Computer Scientist Should Know About Floating-Point Arithmetic ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2015, 13:07 |
|
||
|
Точная арифметика.
|
|||
|---|---|---|---|
|
#18+
BagaBagaРаз уж подняли некротопик, пусть будет What Every Computer Scientist Should Know About Floating-Point Arithmetic кто автор данного обзора? Не встретил там На самый главный вопрос не ответили. Что по поводу той библиотеки ? Совет актуален ? Прошу прощение за оффтоп. Знаковый математик рассказывал мне что выполняется вычисления для задач маскировки с точностью до 150 знака. Интересно где такое возможно ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2015, 06:27 |
|
||
|
Точная арифметика.
|
|||
|---|---|---|---|
|
#18+
И вот ещё такой вопрос. Мы получили приближенное решения в виде некоторой линейной комбинации по базисным функциям (они заданы в явном виде). Как мне хранить эту линейную комбинацию ? Использовать указатели на функции, верно ? Но эта линейная комбинация зависит от числа функций участвующих в разложении. Значит нужно разработать некоторый макрос, который будет генерировать код результирующей комбинации. Это возможно ?(генерация кода функции во время выполнения программы) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2015, 07:49 |
|
||
|
Точная арифметика.
|
|||
|---|---|---|---|
|
#18+
И ещё было бы здорово иметь библиотеку для вычисления определенных интегралов. Можно и самому реализовать, но по скорости моя реализация будет уступать тем, что используют люди. Но таких библиотек не знаю (хотя уверен что есть), посоветуйте какую-нибудь пожалуйста. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2015, 08:02 |
|
||
|
Точная арифметика.
|
|||
|---|---|---|---|
|
#18+
bdm77maytonЗдесь пишут про subj http://cch.loria.fr/documentation/IEEE754 не открывается За 10 лет хостинг "усох". Tempus edax rerum. Всепожирающее время... Мдя. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2015, 10:28 |
|
||
|
Точная арифметика.
|
|||
|---|---|---|---|
|
#18+
SashaMercuryBagaBagaРаз уж подняли некротопик, пусть будет What Every Computer Scientist Should Know About Floating-Point Arithmetic кто автор данного обзора? Не встретил там На самый главный вопрос не ответили. Что по поводу той библиотеки ? Совет актуален ? Прошу прощение за оффтоп. Знаковый математик рассказывал мне что выполняется вычисления для задач маскировки с точностью до 150 знака. Интересно где такое возможно ? SashaMercury, там же чёрным по белому написано http://docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg.html Note – This appendix is an edited reprint of the paper What Every Computer Scientist Should Know About Floating-Point Arithmetic, by David Goldberg , published in the March, 1991 issue of Computing Surveys. Copyright 1991, Association for Computing Machinery, Inc., reprinted by permission. В стартовом посте никакого "второго вопроса" не обнаружил. Перечитывать весь тред десятилетней давности... Библиотек куча, под разные параметры и задачи. Можно загуглить по https://www.google.com/search?q=Arbitrary precision arithmetic&ie=utf-8&oe=utf-8 Вероятно, это же вопрос про "возможно". Просто очень мало где _реально_ имеет смысл хранить 150 значащих знака... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.08.2015, 00:12 |
|
||
|
Точная арифметика.
|
|||
|---|---|---|---|
|
#18+
BagaBaga, не стал это читать. Обычно авторов как-то выделяют, и не в тексте указывают. Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.08.2015, 06:39 |
|
||
|
Точная арифметика.
|
|||
|---|---|---|---|
|
#18+
Можно ли как-то узнать каким образом происходит оптимизация возведения в степень -1 ? Такой код выполняется очень быстро Код: plaintext 1. До того как проверил код выше не думал что стандартная функция каким-то образом оптимизируется, потому изначально написал функцию Код: plaintext 1. 2. 3. 4. PS данная функция используется в выражении результат которого long double, потому она и возвращает long double. Хотя всё будет работать и с int. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.08.2015, 06:47 |
|
||
|
Точная арифметика.
|
|||
|---|---|---|---|
|
#18+
SashaMercuryМожно ли как-то узнать каким образом происходит оптимизация возведения в степень -1 ? Такой код выполняется очень быстро Код: plaintext 1. Скорее всего нет оптимизации для возведения в степень -1. pow(-1.0,1<<30) - константа, вычисляется во время компиляции ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.08.2015, 09:04 |
|
||
|
Точная арифметика.
|
|||
|---|---|---|---|
|
#18+
m_Sla, этот код так-же быстро выполняется Код: plaintext 1. 2. Такой код тоже быстро выполнится Код: plaintext 1. Возможно(вероятно) используется алгоритм быстрого возведения в степень. Асимптотическая сложность имеет вид логарифмической функции. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.08.2015, 09:40 |
|
||
|
Точная арифметика.
|
|||
|---|---|---|---|
|
#18+
SashaMercury, попробуй выполнить с pow, потом с pow_m_1 Код: plaintext 1. 2. 3. 4. 5. 6. 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.08.2015, 09:51 |
|
||
|
Точная арифметика.
|
|||
|---|---|---|---|
|
#18+
SashaMercury, на бесконечно большом диапазоне long double тебя заинтересовала оптимизация POW для аргумента -1.0 ? К чему это? Хочешь сам себя перехитрить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.08.2015, 11:00 |
|
||
|
Точная арифметика.
|
|||
|---|---|---|---|
|
#18+
maytonSashaMercury, на бесконечно большом диапазоне long double тебя заинтересовала оптимизация POW для аргумента -1.0 ? К чему это? Хочешь сам себя перехитрить? Просто в базисных функция присутствует этот элемент. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2015, 04:37 |
|
||
|
Точная арифметика.
|
|||
|---|---|---|---|
|
#18+
m_Sla, время как-то криво измеряется(я видимо что-то не так делаю). Но стандартная функция заметно дольше выполняется Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2015, 05:16 |
|
||
|
Точная арифметика.
|
|||
|---|---|---|---|
|
#18+
Хотел написать для тестирования функцию, которая принимает указатель на функцию, но не получилось. Потому что моя функция имеет один параметр, а стандартная 2 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2015, 06:01 |
|
||
|
Точная арифметика.
|
|||
|---|---|---|---|
|
#18+
Еще синус можно захардкодить. Для 0 градусов, 30, 45, 60, 90. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2015, 11:28 |
|
||
|
Точная арифметика.
|
|||
|---|---|---|---|
|
#18+
maytonЕще синус можно захардкодить. Для 0 градусов, 30, 45, 60, 90.лень лезть в исходники crt, но в этом нет ничего невозможного, кмк )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2015, 12:51 |
|
||
|
Точная арифметика.
|
|||
|---|---|---|---|
|
#18+
egorychmaytonЕще синус можно захардкодить. Для 0 градусов, 30, 45, 60, 90.лень лезть в исходники crt, но в этом нет ничего невозможного, кмк )) Невозможного нет. А есть ли необходимость? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2015, 14:02 |
|
||
|
Точная арифметика.
|
|||
|---|---|---|---|
|
#18+
maytonНевозможного нет. А есть ли необходимость?оптимизация, брат )) зачем считать, когда ответ заранее известен? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2015, 14:09 |
|
||
|
Точная арифметика.
|
|||
|---|---|---|---|
|
#18+
Етить-колотить! Это ломает мои представления о Math.Libraries. P.S. Помниться мы с Базистом рассуждали о том как любую функцию задать таблично и прогрузить ее в Стебелёк. Эх... славное было времечко. Мдя. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2015, 14:13 |
|
||
|
Точная арифметика.
|
|||
|---|---|---|---|
|
#18+
Тригонометрические функции давно захаркорены . А как уж там оно в проце реально считается - тайна покрытая мраком, может и правда таблицы Брадиса забиты. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2015, 14:22 |
|
||
|
Точная арифметика.
|
|||
|---|---|---|---|
|
#18+
Dima TТригонометрические функции давно захаркорены . А как уж там оно в проце реально считается - тайна покрытая мраком, может и правда таблицы Брадиса забиты. Считаются они через ряды Тейлора (или Лорана). Да захардкодены. Но это compiller depends. Может быть использована как команда FPU так и реализация под длинную арифметику на современных наборах команд. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2015, 14:35 |
|
||
|
Точная арифметика.
|
|||
|---|---|---|---|
|
#18+
По повод Брадиса. Предлагаю помедитировать над сорцами одной игрушки. https://github.com/id-Software/DOOM/blob/master/linuxdoom-1.10/tables.c https://github.com/id-Software/DOOM/blob/master/linuxdoom-1.10/tables.h ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2015, 14:44 |
|
||
|
Точная арифметика.
|
|||
|---|---|---|---|
|
#18+
maytonПо повод Брадиса. Предлагаю помедитировать над сорцами одной игрушки. В те времена сопроцессор для мат.расчетов был необязательной опцией. Да и процы большой скоростью не отличались. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2015, 14:59 |
|
||
|
Точная арифметика.
|
|||
|---|---|---|---|
|
#18+
просто оставлю это здесь фиксед поинт ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2015, 13:51 |
|
||
|
|

start [/forum/topic.php?all=1&fid=57&tid=2018873]: |
0ms |
get settings: |
7ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
186ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
60ms |
get tp. blocked users: |
2ms |
| others: | 227ms |
| total: | 513ms |

| 0 / 0 |
