Этот баннер — требование Роскомнадзора для исполнения 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 |
|
||
|
|

start [/forum/topic.php?fid=57&fpage=73&tid=2020037]: |
0ms |
get settings: |
10ms |
get forum list: |
10ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
33ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
58ms |
get tp. blocked users: |
2ms |
| others: | 11ms |
| total: | 145ms |

| 0 / 0 |
