Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
inline extern из библиотеки, как правильно декларировать-имплементировать?
|
|||
|---|---|---|---|
|
#18+
Дима. По поводу давно забытого Card-Raytracer benchmark. https://sourceforge.net/p/card-raytracer-bench/code/HEAD/tree/trunk/cpp/ Помнится ты заметил что в идентичных сорцах картинки не были численно-точно равны. Даже при том что мы включили одинаковый конгруэнтный ГПСЧ для всех сорцов и ЯП. Мы тогда списали это на погрешность вычислений и забили болт. Не стали детально разбираться. А я вот щас предполагаю что РЕАЛИЗАЦИЯ работы floating-point вычислений (библиотечные функции, FPU-80bit (extended double), или инструкции SSE) могли как раз повлиять на результат при том при всём что стандарт представления числа IEE-754 вобщем не нарушался. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2016, 23:24 |
|
||
|
inline extern из библиотеки, как правильно декларировать-имплементировать?
|
|||
|---|---|---|---|
|
#18+
maytonЯ здесь не спорю а просто дополняю. Привожу фрагмент статьи Никлауса Вирта.А я говорю о том, что "дробные копейки" - вещь принципиальная и не зависит от представления числа (двоичное или десятичное). Более того, выбор представления оказывает влияние только для дробных чисел, но любые дробные числа с фиксированной запятой можно превратить в целые путём умножения на целый нормирующий коэффициент. В результате, представление нас уже не колышет, а вот дробные копейки - продолжают существовать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2016, 23:24 |
|
||
|
inline extern из библиотеки, как правильно декларировать-имплементировать?
|
|||
|---|---|---|---|
|
#18+
MasterZivВот ещё подумай, что рациональное число в одной системе счисления не обязательно является рациональным числом в другой системе счисления. да неужели? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2016, 23:28 |
|
||
|
inline extern из библиотеки, как правильно декларировать-имплементировать?
|
|||
|---|---|---|---|
|
#18+
Наверное имеется в виду что в троичной системе счисления мы можем точно представить 1/3 а в двоичной будет бесконечная дробная часть близкая к 1/3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2016, 23:31 |
|
||
|
inline extern из библиотеки, как правильно декларировать-имплементировать?
|
|||
|---|---|---|---|
|
#18+
Да понятно, что имелось в виду, но неточность формулировок - вещь опасная. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2016, 23:33 |
|
||
|
inline extern из библиотеки, как правильно декларировать-имплементировать?
|
|||
|---|---|---|---|
|
#18+
Dima TMasterZivПотому что double / float -- это не целые. А числа с нормализованной мантиссой и порядком. Мы на форуме философов-теоретиков или все-таки технарей? Давай в цифрах рассуждать. Я прекрасно знаю что есть догма "расчеты в числах с плавающей запятой неточны". Я знаю откуда она родилась. значит, все же не знаешь, потому как 1) это не догма, 2) от разрядности неточность не зависит, в смысле, даже увеличивая разряднрсть точности не достичь, поскольку обусловлена она именно формой представления числа. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2016, 23:34 |
|
||
|
inline extern из библиотеки, как правильно декларировать-имплементировать?
|
|||
|---|---|---|---|
|
#18+
P.S. Школьную математеку так сильно обрезали, что о бесконечных периодических и непериодических дробях уже не рассказывают? Мы проходили это в девятом классе средней общеобразовательной школы без всяких "уклонов". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2016, 23:36 |
|
||
|
inline extern из библиотеки, как правильно декларировать-имплементировать?
|
|||
|---|---|---|---|
|
#18+
MasterZiv2) от разрядности неточность не зависит, в смысле, даже увеличивая разряднрсть точности не достичь, поскольку обусловлена она именно формой представления числа.Точность зависит от многих факторов и представление - всего лишь один из этих факторов. И далеко не всегда - главный или, хотя бы, определяющий. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2016, 23:38 |
|
||
|
inline extern из библиотеки, как правильно декларировать-имплементировать?
|
|||
|---|---|---|---|
|
#18+
По поводу 15 дес. разрядов. Возможно в этих константах есть некоторые полезные значения. http://en.cppreference.com/w/cpp/types/climits К сожалению на моем жлобском MinGW часть из них нелетают. Может версия протухла. gcc version 5.3.0 (x86_64-win32-sjlj-rev0, Built by MinGW-W64 project) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2016, 23:55 |
|
||
|
inline extern из библиотеки, как правильно декларировать-имплементировать?
|
|||
|---|---|---|---|
|
#18+
Десятичный логарифм двойки ~= 0,3010 (таблицы Брадиса, если кто в курсе). Вариант 10**3 == 2**10 проще, но менее точен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2016, 00:06 |
|
||
|
inline extern из библиотеки, как правильно декларировать-имплементировать?
|
|||
|---|---|---|---|
|
#18+
Dima T... Мы на форуме философов-теоретиков или все-таки технарей? ... (как все запущено-то, оказывается) Не используют floating point numbers для денежных вычислений. Без теории, на самой что ни на есть практике - не используют . Не было ни у Кернигана, ни у Риччи цели создавать язык, пригодный для финансовых вычисления. Ясно и очевидно стояла иная цель - создать такой язык, на котором можно было бы перезапрограммировать наново все, что уже напрограммировано в ЦЕРНе на фортране. Тут, раз нет фортрана без float binary double, то и C без него жить не будет - наличие обязательно. А Грейс Хоппер ни для чего иного, как для расчета зарплаты свой кобол и не создавал. Потому там fixed point арифметика вшита до рождения языка. Без нее сам язык смысла не имеет. А создали ады - не знали, зачем министерство обороны США им язык заказывает - траекторию полета баллистических ракет считать или доходы от продажи оружия. Поэтому встроили возможность и деньги считать, хоть это никому и не понадобилось. MasterZiv Ну, нормальная потеря значимости. О ней booby и говорил. (задумчиво) ну, sort of... Строго говоря я говорил о плавающей абсолютной точности. А "потеря значимости", имхо, чаше обсуждается в контекстах, о которых пишет Basil A. Sidorov. И, если сложение теряет значащие цифры частично, сохраняя относительную точность результата (15-16 десятичных цифр для binary float), то вычитание обладает специальным свойством "катастрофической" потери точности, когда в результате может теряться произвольное количество точных десятичных цифр, вплоть до всех 16и разом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2016, 00:43 |
|
||
|
inline extern из библиотеки, как правильно декларировать-имплементировать?
|
|||
|---|---|---|---|
|
#18+
boobyDima T... Мы на форуме философов-теоретиков или все-таки технарей? ... (как все запущено-то, оказывается) Не используют floating point numbers для денежных вычислений. Без теории, на самой что ни на есть практике - не используют . Не было ни у Кернигана, ни у Риччи цели создавать язык, пригодный для финансовых вычисления. Ясно и очевидно стояла иная цель - создать такой язык, на котором можно было бы перезапрограммировать наново все, что уже напрограммировано в ЦЕРНе на фортране. Тут, раз нет фортрана без float binary double, то и C без него жить не будет - наличие обязательно. А Грейс Хоппер ни для чего иного, как для расчета зарплаты свой кобол и не создавал. Потому там fixed point арифметика вшита до рождения языка. Без нее сам язык смысла не имеет. А создали ады - не знали, зачем министерство обороны США им язык заказывает - траекторию полета баллистических ракет считать или доходы от продажи оружия. Поэтому встроили возможность и деньги считать, хоть это никому и не понадобилось. MasterZiv Ну, нормальная потеря значимости. О ней booby и говорил. (задумчиво) ну, sort of... Строго говоря я говорил о плавающей абсолютной точности. А "потеря значимости", имхо, чаше обсуждается в контекстах, о которых пишет Basil A. Sidorov. И, если сложение теряет значащие цифры частично, сохраняя относительную точность результата (15-16 десятичных цифр для binary float), то вычитание обладает специальным свойством "катастрофической" потери точности, когда в результате может теряться произвольное количество точных десятичных цифр, вплоть до всех 16и разом. Всё запущено с вашим количество сообщений в ветке Microsoft Access. Не используют? Вы серьезный финансовый аналитик-программист? Или вы на С/С++ пишите код с утра до вечера? Почитайте пожалуйста, если у вас будет свободное время. Господин Брайан Керниган не создавал язык Си, и тем более С++. Дальше вы пишите что может быть что-то при сложение, что-то при вычитании. Не вникая, я могу написать вам тысячу такого рода абстрактных предложений во вставками "может быть", "немаловероятно" и т.д. и т.п. Извольте выражаться конкретней, Дмитрий справедливо заметил выше о том, что мы здесь не философией занимаемся и даже не на собседедовании ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2016, 08:51 |
|
||
|
inline extern из библиотеки, как правильно декларировать-имплементировать?
|
|||
|---|---|---|---|
|
#18+
Как вы вообще в теме с таким названием умудрились перейти к арифметике?) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2016, 08:52 |
|
||
|
inline extern из библиотеки, как правильно декларировать-имплементировать?
|
|||
|---|---|---|---|
|
#18+
SashaMercuryКак вы вообще в теме с таким названием умудрились перейти к арифметике?)стреляли.. (с) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2016, 11:22 |
|
||
|
inline extern из библиотеки, как правильно декларировать-имплементировать?
|
|||
|---|---|---|---|
|
#18+
В продолжение тесткейсов... Код: 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. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2016, 11:56 |
|
||
|
inline extern из библиотеки, как правильно декларировать-имплементировать?
|
|||
|---|---|---|---|
|
#18+
MasterZivзначит, все же не знаешь, потому как 1) это не догма, 2) от разрядности неточность не зависит, в смысле, даже увеличивая разряднрсть точности не достичь, поскольку обусловлена она именно формой представления числа. Все я знаю. И про особенности преобразования дробных чисел в разные системы счисления, и даже преобразовывал неоднократно ручкой в тетради во время учебы. Давай сначала немного ТЗ восстановим. Началось тут 19473119 где я утверждаю что денежные расчеты можно вести в double если не нужно использовать более 15 десятичных разрядов (чуть перефразировал), тут 19475388 ты усомнился в моем заявлении что в FoxPro все числовые переменные double, сходу не смог, а сейчас нагуглил . Магическое число 15 там упоминается, не я его придумал. Я не утверждал что возможна абсолютная точность. Есть погрешность преобразования мантиссы и эта погрешность легко считается как 1/2^52 = 2.22*10^-16 точнее мантисса 53 бита, т.к. первый бит всегда единица и просто подразумевается, а не пишется. 1/2^53 = 1.11*10^-16. Это означает что при переводе 15 значного десятичного числа в double и обратно погрешность никак не помешает, главное вовремя округлять. Не настолько силен в математике чтобы доказывать формулами, поэтому сделал тест перебором преобразования всех 15-тизначных целых чисел в double и обратно. Правда не быстрый он, за 22 минуты дошел только до 100601824280576 и дальше молотит. Конца дожидаться не буду. Пару часов погоняю, отпишусь чем кончилось. исходник Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. Запускал в дебаге, чтобы оптимизатор код не упростил, вот с асмом Код: 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. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. PS Для float погрешность 1/2^24 = 5.96*10^-8. Т.е. точно можно оперировать 7-ю знаками, для денег это маловато, т.к. максимум будет 99999.99 а дальше погрешности вылезут. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2016, 13:34 |
|
||
|
inline extern из библиотеки, как правильно декларировать-имплементировать?
|
|||
|---|---|---|---|
|
#18+
maytonПомнится ты заметил что в идентичных сорцах картинки не были численно-точно равны. Даже при том что мы включили одинаковый конгруэнтный ГПСЧ для всех сорцов и ЯП. Мы тогда списали это на погрешность вычислений и забили болт. Не стали детально разбираться. Забили, но было правдоподобное объяснение что в разных ЯП параметры могут читаться в разном порядке, т.е. даже при одинаковой последовательности будут разные результаты. Например f(rand(), rand()). Там были такие подозрительные места в коде. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2016, 13:40 |
|
||
|
inline extern из библиотеки, как правильно декларировать-имплементировать?
|
|||
|---|---|---|---|
|
#18+
Dima TЗабили, но было правдоподобное объяснение что в разных ЯП параметры могут читаться в разном порядке, т.е. даже при одинаковой последовательности будут разные результаты. Например f(rand(), rand()). Там были такие подозрительные места в коде. Ну это легко фиксится introduce temp var. Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2016, 13:42 |
|
||
|
inline extern из библиотеки, как правильно декларировать-имплементировать?
|
|||
|---|---|---|---|
|
#18+
maytonНу это легко фиксится introduce temp var. ХЗ, оптимизатор превратит это обратно в f(rand(), rand()), а то и еще во что похуже, а ограничивать оптимизатор - порушить всю нашу идею замеров скорости. Потому и забили. Как-то так мне припоминается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2016, 14:00 |
|
||
|
inline extern из библиотеки, как правильно декларировать-имплементировать?
|
|||
|---|---|---|---|
|
#18+
Dima TХЗ, оптимизатор превратит это обратно в f(rand(), rand()), серьёзно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2016, 14:12 |
|
||
|
inline extern из библиотеки, как правильно декларировать-имплементировать?
|
|||
|---|---|---|---|
|
#18+
ИзопропилDima TХЗ, оптимизатор превратит это обратно в f(rand(), rand()), серьёзно? я ж написал ХЗ, т.е. сомневаюсь но возможно :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2016, 14:13 |
|
||
|
inline extern из библиотеки, как правильно декларировать-имплементировать?
|
|||
|---|---|---|---|
|
#18+
Изопропилсерьёзно? Вполне: и компилятор и процессор вольны менять порядок независимых (с их точки зрения) операций вплоть до параллельного исполнения. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2016, 14:55 |
|
||
|
inline extern из библиотеки, как правильно декларировать-имплементировать?
|
|||
|---|---|---|---|
|
#18+
Кстати задумался... возможно ли написать честную последовательность float/double псевдо случайных величин по линейному закону. Сама плотность значений float/double распределена по вещесвенной оси изначально неравномерно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2016, 15:01 |
|
||
|
inline extern из библиотеки, как правильно декларировать-имплементировать?
|
|||
|---|---|---|---|
|
#18+
Dima TНе настолько силен в математике чтобы доказывать формулами, поэтому сделал тест перебором преобразования всех 15-тизначных целых чисел в double и обратно. Правда не быстрый он, за 22 минуты дошел только до 100601824280576 и дальше молотит. Конца дожидаться не буду. Пару часов погоняю, отпишусь чем кончилось. Прошло два часа, досчитало до 103329396948992, считает дальше. Ошибок не было. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2016, 15:13 |
|
||
|
inline extern из библиотеки, как правильно декларировать-имплементировать?
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovИзопропилсерьёзно? Вполне: и компилятор и процессор вольны менять порядок независимых (с их точки зрения) операций вплоть до параллельного исполнения. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. может напечатать 1 0 ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2016, 15:14 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=39283360&tid=2018218]: |
0ms |
get settings: |
10ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
142ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
53ms |
get tp. blocked users: |
1ms |
| others: | 14ms |
| total: | 249ms |

| 0 / 0 |
