nicka 16.07.2012 01:00 notebook

"сумма округлённых величин не равна округлённой сумме величин"

1. gds 16.07.2012 01:05

кэп ободряет!

2. nickagds /1 16.07.2012 01:08 notebook

и бухгалтеры, и тридэшники, и прочие компматанщики!

3. gds 16.07.2012 01:14

кстати, для какого-то проекта писал "сумматор плавучки". ссуть в то, что без потерь точности можно суммировать только то, что имеет равную экспоненту ну и вот, был массив: индекс = экспонента, значение = текущая сумма в пределах неё. и при получении результата бежали с малых экспонент до больших.
кое-что не понравилось — 1. только неотрицательные умел (задача такая была, было лень кодить ненужное), 2. хотел доказать отсутствие систематических погрешностей, но там чото было неочевидно, забил.

4. nickagds /3 16.07.2012 01:16 notebook

>без потерь точности можно суммировать только то, что имеет равную экспоненту

разве?
мне казалось, что при суммировании 2^N чисел почти стопудово потеряем N бит

5. nickagds /3 16.07.2012 01:18 notebook

меня в школе на информатике надрачивали в том числе и на суммирование рядов, сходимость, прочие приближенные методы и оценки их сходимости. как раз оно.

6. gdsnicka /4 16.07.2012 01:19

потеряем-то да, но они будут не важны, так как однохуйственно, потеряли или "не влезло в double". Вот моей задачей было как раз сделать так, чтобы результат был максимально близок к тому, который получили бы точной арифметикой, вписав результат в double.

7. nickagds /6 16.07.2012 01:21 notebook

смотря что дальше с результатом делать.
бывают злоебучие ситуации типа счета определеителей, когда из примерно стопицот вычитаем примерно стопицот и надо оценить насколько точно вышло примерно один.

8. gdsnicka /7 16.07.2012 01:25

бывают. Но и тут можно разбить на бакеты с одинаковой экспонентой и кое-что домутить. Впрочем, это извращения, потому что любая плавучка и любое конечное представление десятичного числа, фактически, рациональная дробь, и там уже есть "точная арифметика", как раз нужная для того, чтобы такого говна не надо было писать. Кстати, в окамле точная арифметика легко доступна. И даже думал, стоит ли использовать её в Том Самом Проекте, но решил, что нет — чтобы глюки с плавучкой побыстрее вылезли.

9. nickagds /8 16.07.2012 01:28 notebook

методов стопицот. например (в случае определителей) считать не влоб, а хитрым гауссом(?) выбирая строчку с самым большим коэффицентом и обнуляя аналогичный коэффицент у прочих строк.

10. gdsnicka /9 16.07.2012 01:33

ну да. Бобоян!11 Я в детстве дрочил на пару томов "численных методов", прокушал это. Там было не для плавучки, а для десятичной записи, но для тех же определителей было чуть ли не 5 методов, различных как раз в точности. То есть, лет 18 назад я это вполне чотко представлял. Сейчас же — "справочные данные", которые можно найти.

11. nickagds /10 16.07.2012 01:35 notebook

ага. какие-то ключевые слова в памяти, а дальше гугль-педия или бумажный справочник.

Do you really want to delete ?