Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Вычисления с высокой точностью
|
|||
|---|---|---|---|
|
#18+
Всем доброго времени суток! Столкнулся с проблемой которую даже не знаю как решить. Суть в следующем. В MATLAB есть алгоритм. Потребовалось его перенести в отдельное приложение (не нужно давать советы типа того что используй внутренний лабовский компилятор или типа того). Но проблема в точности вычислений. В приложении на С++ после 1е-10 степени существенно уплывает точность. Использую типы дубль. Пробовал лонг дубль. Та же хрень. Может кто посоветовать как решить проблему с точностью вычислений??? Заранее благодарен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.08.2013, 14:59 |
|
||
|
Вычисления с высокой точностью
|
|||
|---|---|---|---|
|
#18+
lnixМожет кто посоветовать как решить проблему с точностью вычислений??? Можно проанализировать алгориитм и устранить место где теряется точность. Или тупо перейти на длинную арифметику, библиотек для которой в сети полно. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.08.2013, 15:07 |
|
||
|
Вычисления с высокой точностью
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov, Буду очень признателен за ссылки ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.08.2013, 15:15 |
|
||
|
Вычисления с высокой точностью
|
|||
|---|---|---|---|
|
#18+
lnix, а в бусте есть эти вычисления? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.08.2013, 15:21 |
|
||
|
Вычисления с высокой точностью
|
|||
|---|---|---|---|
|
#18+
lnix, а что это за алгоритм такой где аж long double не помогает?? Покажите код, что-ли. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.08.2013, 15:44 |
|
||
|
Вычисления с высокой точностью
|
|||
|---|---|---|---|
|
#18+
sherzod_, лонг дубль работает только с плохой точностью ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.08.2013, 15:48 |
|
||
|
Вычисления с высокой точностью
|
|||
|---|---|---|---|
|
#18+
вопрос снимается, нашел все в BOOSTе ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.08.2013, 15:55 |
|
||
|
Вычисления с высокой точностью
|
|||
|---|---|---|---|
|
#18+
lnixsherzod_, лонг дубль работает только с плохой точностью Чето этот long double хуже обычного dobule: http://ideone.com/M8KMQK Если GCC юзаете - попробуйте __float128 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.08.2013, 16:00 |
|
||
|
Вычисления с высокой точностью
|
|||
|---|---|---|---|
|
#18+
long double хуже обычного dobulelnixsherzod_, лонг дубль работает только с плохой точностью Чето этот long double хуже обычного dobule: http://ideone.com/M8KMQK Если GCC юзаете - попробуйте __float128 Если не изменяет память, у long double точность 19 знаков, у double 15 знаков. Что тест и показал. :) Ну и на процессорах 8086: "With the exception of the 80-bit double extended-precision floating-point format, all of these data types exist in memory only. When they are loaded into x87 FPU data registers, they are converted into double extended-precision floating-point format and operated on in that format." Intel® 64 and IA-32 Architectures Software Developer’s Manual Volume 1: Basic Architecture. sherzod_lnix, а что это за алгоритм такой где аж long double не помогает?? Покажите код, что-ли.Тоже любопытно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.08.2013, 16:26 |
|
||
|
Вычисления с высокой точностью
|
|||
|---|---|---|---|
|
#18+
long double хуже обычного dobulelnixsherzod_, лонг дубль работает только с плохой точностью Чето этот long double хуже обычного dobule: http://ideone.com/M8KMQK Если GCC юзаете - попробуйте __float128 Хотя не - не хуже, чето я на последние цифры посмотрел, а dobule ещё раньше в сторону уходит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.08.2013, 16:27 |
|
||
|
Вычисления с высокой точностью
|
|||
|---|---|---|---|
|
#18+
m_Slalong double хуже обычного dobuleпропущено... Чето этот long double хуже обычного dobule: http://ideone.com/M8KMQK Если GCC юзаете - попробуйте __float128 Если не изменяет память, у long double точность 19 знаков, у double 15 знаков. Что тест и показал. :) А это зависит от компилятора: C++03 ISO/IEC 14882There are three floating point types: float, double, and long double. ... The value representation of floating-point types is implementation-defined . Допустим в GCC тип long double - 12 bit. А в MSVS2012 - 8 bit. Даже с отключенной оптимизацией /Od и строгой моделью вычислений с плавающей точкой /fp:strict m_SlaНу и на процессорах 8086: "With the exception of the 80-bit double extended-precision floating-point format, all of these data types exist in memory only. When they are loaded into x87 FPU data registers, they are converted into double extended-precision floating-point format and operated on in that format." Intel® 64 and IA-32 Architectures Software Developer’s Manual Volume 1: Basic Architecture. А это да - использование float вместо double на x86 на скорость вычислений не влияет - только на скорость доступа к памяти за счет меньшего размера. В отличие от вычислений на GPU, где есть half float, float и double - вычисления каждой из которых значительно отличается по скорости. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.08.2013, 16:39 |
|
||
|
Вычисления с высокой точностью
|
|||
|---|---|---|---|
|
#18+
lnixВ приложении на С++ после 1е-10 степени существенно уплывает точность. Использую типы дубль. Пробовал лонг дубль. Та же хрень. Может кто посоветовать как решить проблему с точностью вычислений??? Никуда ничего не уплывает. Как может уплыть то, чего нет? double -- неточный тип данных. Так что решить проблему можно только одним способом -- применяй другие алгоритмы, где либо меньше погрешность, либо тебе не так важна точность. (а она тебе должна быть не важно, коль скоро ты считаешь в неточных, приблизительных числах). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.08.2013, 17:00 |
|
||
|
Вычисления с высокой точностью
|
|||
|---|---|---|---|
|
#18+
m_SlaЕсли не изменяет память, у long double точность 19 знаков, у double 15 знаков. Что тест и показал. :) Блин, ну сколько долбить можно. Нет у них точности. У них есть погрешности. Точности нет совсем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.08.2013, 17:01 |
|
||
|
Вычисления с высокой точностью
|
|||
|---|---|---|---|
|
#18+
Все казалось бы супер, но как всегда в бочке меда есть ложка гадких какашек... в бусте оствтствует файл gmp.h ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.08.2013, 17:46 |
|
||
|
Вычисления с высокой точностью
|
|||
|---|---|---|---|
|
#18+
везде есть такая строка #include <gmp.h> но этот файл везде отстутствует попытка засунуть его вручную в каталог инклюде вызывает множественные ошибки. Есть у кого какие идеи? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.08.2013, 17:51 |
|
||
|
Вычисления с высокой точностью
|
|||
|---|---|---|---|
|
#18+
lnixвезде есть такая строка #include <gmp.h> но этот файл везде отстутствует попытка засунуть его вручную в каталог инклюде вызывает множественные ошибки. Есть у кого какие идеи?Есть. Выкинь буст, возьми gmp. http://g.zeos.in/?q=gmp&m=1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.08.2013, 18:59 |
|
||
|
Вычисления с высокой точностью
|
|||
|---|---|---|---|
|
#18+
lnix Но проблема в точности вычислений. В приложении на С++ после 1е-10 степени существенно уплывает точность. Использую типы дубль. Пробовал лонг дубль. Та же хрень. Может кто посоветовать как решить проблему с точностью вычислений??? Заранее благодарен. Что делаете? Летите в космос к пределу галлактики? Что это за алгоритм которому нужны числа floating point и не хватает long double (extended) ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.08.2013, 19:03 |
|
||
|
Вычисления с высокой точностью
|
|||
|---|---|---|---|
|
#18+
maytonЧто это за алгоритм которому нужны числа floating point и не хватает long double (extended) ?Да алгоритм может быть почти любой. Меня когда-то угораздило число Пи посчитать с половиной неверных цифр в результате. Стоило сменить направление суммирование ряда (стало от меньших слагаемых к большим), так тут же стало все хорошо. Т.е. реализовывать алгоритмы тоже надо уметь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.08.2013, 19:46 |
|
||
|
Вычисления с высокой точностью
|
|||
|---|---|---|---|
|
#18+
miksoftmaytonЧто это за алгоритм которому нужны числа floating point и не хватает long double (extended) ?Да алгоритм может быть почти любой. Меня когда-то угораздило число Пи посчитать с половиной неверных цифр в результате. Стоило сменить направление суммирование ряда (стало от меньших слагаемых к большим), так тут же стало все хорошо. Т.е. реализовывать алгоритмы тоже надо уметь. Вот именно, чтобы "вести предметный разговор" нужно посмотреть код. А то идет горячее обсуждение на тему "принеси мне то не знаю что". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.08.2013, 20:37 |
|
||
|
Вычисления с высокой точностью
|
|||
|---|---|---|---|
|
#18+
lnix, есть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.08.2013, 20:39 |
|
||
|
Вычисления с высокой точностью
|
|||
|---|---|---|---|
|
#18+
MasterZiv, Библиотеку я нашел - BOOST. он при #include <boost/multiprecision/gmp.hpp> using namespace boost::multiprecision; выдает сообщение что нет файла gmp.h и mpfr.h перекопал все. Их нет даже в файлах скачиваемых с официального сайта. Может кто подсказать как бороться с данной проблемой? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.08.2013, 21:28 |
|
||
|
Вычисления с высокой точностью
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. lnix, ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.08.2013, 21:29 |
|
||
|
Вычисления с высокой точностью
|
|||
|---|---|---|---|
|
#18+
lnix, выдает целый ворох ошибок ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.08.2013, 21:30 |
|
||
|
Вычисления с высокой точностью
|
|||
|---|---|---|---|
|
#18+
И ты думаешь что мы сейчас угадаем что у тебя в логе ошибок? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.08.2013, 21:40 |
|
||
|
Вычисления с высокой точностью
|
|||
|---|---|---|---|
|
#18+
lnix, так тебе уже посоветовали не заморачиваться с бустом и взять напрямую GMP http://gmplib.org/#WHAT Можно, правда, ограничиться только MPFR http://www.mpfr.org/ А в бусте, если я правильно помню, своей реализации нет (да и зачем, когда можно подключить эту). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.08.2013, 22:06 |
|
||
|
Вычисления с высокой точностью
|
|||
|---|---|---|---|
|
#18+
Да подождите вы с бустами. Чел пишет. В приложении на С++ после 1е-10 степени существенно уплывает точность Пускай хоть конкретизирует. Что ему? Символьная точность? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.08.2013, 22:12 |
|
||
|
Вычисления с высокой точностью
|
|||
|---|---|---|---|
|
#18+
lnix, Что за задача-то? Среднее из триллиона значений, различающихся на 20 порядков? Знаменитое "тангенс от десяти в сотой"? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2013, 00:07 |
|
||
|
Вычисления с высокой точностью
|
|||
|---|---|---|---|
|
#18+
lnixMasterZiv, Библиотеку я нашел - BOOST. он при #include <boost/multiprecision/gmp.hpp> using namespace boost::multiprecision; выдает сообщение что нет файла gmp.h и mpfr.h перекопал все. Их нет даже в файлах скачиваемых с официального сайта. Может кто подсказать как бороться с данной проблемой? Поставить библиотеку GMP, разумеется. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2013, 08:56 |
|
||
|
Вычисления с высокой точностью
|
|||
|---|---|---|---|
|
#18+
BagaBagalnix, так тебе уже посоветовали не заморачиваться с бустом и взять напрямую GMP http://gmplib.org/#WHAT Можно, правда, ограничиться только MPFR http://www.mpfr.org/ А в бусте, если я правильно помню, своей реализации нет (да и зачем, когда можно подключить эту). вся проблема Код: 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. в этих двух файлах: #include <gmp.h> #include <mpfr.h> они требуются везде, но те которые лежат в инете не подходят а в сборках их нет как заговор какой-то. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2013, 13:28 |
|
||
|
|

start [/forum/topic.php?all=1&fid=57&tid=2020037]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
55ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
62ms |
get tp. blocked users: |
1ms |
| others: | 282ms |
| total: | 446ms |

| 0 / 0 |
