-
- А следующее 2^N каким будет чтобы увеличить точность? Dingo(81 знак., 13.12.2022 16:26)
- x = 358*y; x = x - (x>>12) + (x>>18); SciFi(294 знак., 13.12.2022 16:36)
- Любопытно, при каком значении х может произойти переполнение при вычислении выражения (x - (x>>12) + (x>>18)), если сперва х-(x>>12) а потом +(x>>18) ? - AlexBi(14.12.2022 09:44)
- Ох уж мне эти сишники. Действия справа от = в каком порядке будут
выполняться? И где гарантия? - Kpoк(14.12.2022 09:17)
- Гарантии нет. Но разве есть разница? - AlexBi(14.12.2022 09:41)
- Разница есть в младших знаках. - Kpoк(14.12.2022 09:43)
- Приведите пример - AlexBi(14.12.2022 09:47)
- Да пожалуйста. Если он сначала отнимет от Х его 1/4096долю. А потом
от ПОЛУЧЕННОГО результата отнимет следующую долю. Вроде бы
очевидная разница. - Kpoк(14.12.2022 11:59)
- Не вижу разницы. Приведите какое-нибудь конкретное значение х, для
которого получатся разные результаты если сперва вычесть потом
прибавить, и если сперва прибавить потом вычесть. По сути вы
утверждаете, что значение выражения y=a-b+c зависит от порядка
вычислений. Я с таким согласиться не могу, не смотря на возможные
переполнения на любом этапе. - AlexBi(14.12.2022 16:29)
- Внимательно прочтите мой текст два раза. Внимательно. - Kpoк(14.12.2022 19:43)
- Верно, есть такое. Впрочем, ответсвенный за изделие ТС, пусть проверяет. Там всего 12 млн комбинаций, можно всё перебрать. - SciFi(14.12.2022 14:19)
- Не вижу разницы. Приведите какое-нибудь конкретное значение х, для
которого получатся разные результаты если сперва вычесть потом
прибавить, и если сперва прибавить потом вычесть. По сути вы
утверждаете, что значение выражения y=a-b+c зависит от порядка
вычислений. Я с таким согласиться не могу, не смотря на возможные
переполнения на любом этапе. - AlexBi(14.12.2022 16:29)
- Да пожалуйста. Если он сначала отнимет от Х его 1/4096долю. А потом
от ПОЛУЧЕННОГО результата отнимет следующую долю. Вроде бы
очевидная разница. - Kpoк(14.12.2022 11:59)
- Приведите пример - AlexBi(14.12.2022 09:47)
- Разница есть в младших знаках. - Kpoк(14.12.2022 09:43)
- Гарантии нет. Но разве есть разница? - AlexBi(14.12.2022 09:41)
- Шаман, аднака. - Бapбoc(13.12.2022 18:23)
- Спасибо. :о) - Dingo(13.12.2022 16:57)
- x = 358*y; x = x - (x>>12) + (x>>18); SciFi(294 знак., 13.12.2022 16:36)
- Поясните? Я знаю, что зачастую можно заменить деление умножением на
обратную величину, но как это в данном случае применимо? - Dingo(13.12.2022 12:10)
- 2^32/12000000 ~ (358 - 358/4096) с точностью 4 ppm. Для кварца
хватит. - SciFi(13.12.2022 12:19)
- Интересен вывод констант и оценка погрешности. 358 ~= 2^32/12M, а
откуда "-358/4096" взялось? И из какого букваря этот способ? - Dingo(13.12.2022 12:32)
- Если покопаться в инете - есть сайт для онлайн подбора и оценки точности такого метода. Я в закладки клал, но потерял куда-то. - Andreas(13.12.2022 12:59)
- Опирался исключительно на школьный курс арифметики. Кстати, важно
то, что 2^32/12000000 > (358 - 358/4096), то есть переполнения
не будет. Ну и в конце каждой секунды будет скачок на 4 мкс, но это
такие мелочи... - SciFi(13.12.2022 12:41)
- Правильно рассуждаю? x ~= y * 2^32/12M, dx = 358-(2^32/12M), далее
сравниваем dx/358 с величинами 1/(2^n). Школьная арифметика
необходимое, но не достаточное условие ведь! Вот я и интересуюсь,
где подсмотрели? - Dingo(13.12.2022 12:55 - 12:58)
- Нигде не подсматривал, сам придумал! Пойду выпишу себе
математическую премию :-) - SciFi(13.12.2022 12:58)
- Нашел, где я подобное видел: ряды, в частности Маклорена Dingo(478 знак., 15.12.2022 11:33)
- Врешь, у меня стырил! :)) --> MBedder(1 знак., 13.12.2022 19:11, ссылка)
- ни фига на понимаю, клинопись какая-то :-) - SciFi(13.12.2022 19:16)
- Хм.. а как жы тогда вот это? :)) --> MBedder(1 знак., 14.12.2022 20:08, ссылка)
- Единство и борьба противоположностей! - SciFi(14.12.2022 20:21)
- Хм.. а как жы тогда вот это? :)) --> MBedder(1 знак., 14.12.2022 20:08, ссылка)
- ни фига на понимаю, клинопись какая-то :-) - SciFi(13.12.2022 19:16)
- Во всяком случае ваше математическое кунг-фу лучше моего сейчас. - Dingo(13.12.2022 13:01)
- Нигде не подсматривал, сам придумал! Пойду выпишу себе
математическую премию :-) - SciFi(13.12.2022 12:58)
- Правильно рассуждаю? x ~= y * 2^32/12M, dx = 358-(2^32/12M), далее
сравниваем dx/358 с величинами 1/(2^n). Школьная арифметика
необходимое, но не достаточное условие ведь! Вот я и интересуюсь,
где подсмотрели? - Dingo(13.12.2022 12:55 - 12:58)
- Интересен вывод констант и оценка погрешности. 358 ~= 2^32/12M, а
откуда "-358/4096" взялось? И из какого букваря этот способ? - Dingo(13.12.2022 12:32)
- 2^32/12000000 ~ (358 - 358/4096) с точностью 4 ppm. Для кварца
хватит. - SciFi(13.12.2022 12:19)
- А следующее 2^N каким будет чтобы увеличить точность? Dingo(81 знак., 13.12.2022 16:26)