Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
inline extern из библиотеки, как правильно декларировать-имплементировать?
|
|||
|---|---|---|---|
|
#18+
Изопропилможет напечатать 1 0 ? Был неправ, признаю: ни вызовы get(), ни rand() оно не перепутает из-за внутренних побочных эффектов, что создаёт их зависимость. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2016, 15:35 |
|
||
|
inline extern из библиотеки, как правильно декларировать-имплементировать?
|
|||
|---|---|---|---|
|
#18+
maytonНу это легко фиксится introduce temp var. Не очень легко. Я исходники глянул и вспомнил почему поверил на слово без проверки. С++ и C# . Код заметно отличается т.к. в C# пришлось отказаться от перегрузки +,- и т.д. из-за того что тормозит она в шарпе. А т.к. rand() много где вызывается, то не стал связываться с проверкой предложенной гипотезы, слишком муторно там все подгонять чтобы порядок соблюсти. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2016, 15:46 |
|
||
|
inline extern из библиотеки, как правильно декларировать-имплементировать?
|
|||
|---|---|---|---|
|
#18+
maytonКстати задумался... возможно ли написать честную последовательность float/double псевдо случайных величин по линейному закону. Сама плотность значений float/double распределена по вещесвенной оси изначально неравномерно. А нужна ли она? Если под словом "честная" понимается весь допустимый диапазон, т.е. от 10^-308 до 10^308, то какое возможно практическое применение? Есть реализации работающие в диапазоне 0-1, например в C# Random.NextDouble() ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2016, 15:58 |
|
||
|
inline extern из библиотеки, как правильно декларировать-имплементировать?
|
|||
|---|---|---|---|
|
#18+
Посмотрел исходники Random.NextDouble() http://referencesource.microsoft.com/#mscorlib/system/random.cs,4c2fc83207c654d1 Код: c# 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. Не стал МС с double заморачиваться, последовательность генерится в int`ах, а в double только конвертируется. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2016, 16:08 |
|
||
|
inline extern из библиотеки, как правильно декларировать-имплементировать?
|
|||
|---|---|---|---|
|
#18+
Dima T, интересно, как ты себе представляешь линейный конгруэнтный гпсч в плавучке ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2016, 18:13 |
|
||
|
inline extern из библиотеки, как правильно декларировать-имплементировать?
|
|||
|---|---|---|---|
|
#18+
2SashaMercury, Саша, ты совсем зря все буквы использованного тобой алфавита истратил, от первой до последней. А на будущее , прими в расчет, что когда ты мимоходом предлагаешь кому-то что-то почитать, и тем более, в использованном тобой стиле, то лично то в этот момент у тебя нет сомнения в интерпретации смысла текста. Судя по всему, ты занимаешься преждевременным чтением. Лучше было бы, если бы учил буквы Марсианского алфавита. Предложенное тобой чтение - для старших курсов, только для тех, кто азбуку уже осилил. автор...Не вникая... а вот это ты мощно задвинул. Здесь жирный плюс. Так и продолжай дальше - не вникая . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2016, 18:47 |
|
||
|
inline extern из библиотеки, как правильно декларировать-имплементировать?
|
|||
|---|---|---|---|
|
#18+
В продолжение 19478638 . Прошло 6 часов перебора и пройдено 1% диапазона, до 110106318471168 и продолжает молотить. 600 часов как-то многовато, можно и проц сжечь. Вырубил. Поразмышлял над аргументами о преобразовании. Преобразование 2-10 вообще не проблема, т.к. по-большому счету оно нужно только при выводе, а хранение и расчеты идут в двоичном виде. Т.е. тут все отлично лечится своевременным применением value = round(value, N), где N требуемое число разрядов запятой, используемое при хранении. round() функция не быстрая, но если бы ее реализовали аппаратно в проце, то и юзали бы все double для точных расчетов. У всяких суррогатов типа как money, smallmoney у MSSQL (использование int32 или int64 для хранения и виртуальный сдвиг точки на 4 разряда при выводе) тоже ведь не все идеально, начни там делить и начнутся проблемы. Например в фоксе есть подобный тип currency, пробуем выделить НДС 18% и вот что имеем Код: plaintext 1. 2. 3. и тоже в double Код: plaintext 1. 2. 3. Только мне кажется что во втором случае повыше точность? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2016, 19:40 |
|
||
|
inline extern из библиотеки, как правильно декларировать-имплементировать?
|
|||
|---|---|---|---|
|
#18+
Dima T, открой тайну - чему равно 997654321054321 / 1.00000000000004 ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2016, 20:08 |
|
||
|
inline extern из библиотеки, как правильно декларировать-имплементировать?
|
|||
|---|---|---|---|
|
#18+
Dima T, опечатка - 987654321054321 / 1.00000000000004 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2016, 20:10 |
|
||
|
inline extern из библиотеки, как правильно декларировать-имплементировать?
|
|||
|---|---|---|---|
|
#18+
ИзопропилDima T, открой тайну - чему равно 997 654 321 054 321 / 1.000 000 000 000 04 ? Не открою, т.к. тут попытка оперирования числами общей разрядностью 29 знаков. Бери какую-нибудь мат-либу и считай. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2016, 20:15 |
|
||
|
inline extern из библиотеки, как правильно декларировать-имплементировать?
|
|||
|---|---|---|---|
|
#18+
Dima Tпопытка оперирования числами общей разрядностью 29 знаков мне казалось - оба 15-разрядные, да и результат 15-разрядный хочу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2016, 20:19 |
|
||
|
inline extern из библиотеки, как правильно декларировать-имплементировать?
|
|||
|---|---|---|---|
|
#18+
ИзопропилDima Tпопытка оперирования числами общей разрядностью 29 знаков мне казалось - оба 15-разрядные, да и результат 15-разрядный хочу. Приведи сначала оба числа в единую разрядность, т.е. Код: plaintext Хотеть не вредно, бери мат.либу и реализуй свои хотелки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2016, 20:24 |
|
||
|
inline extern из библиотеки, как правильно декларировать-имплементировать?
|
|||
|---|---|---|---|
|
#18+
Dima TТолько мне кажется что во втором случае повыше точность? Мне кажется это неверная постановка вопроса. Мы не должны искать способа повышать точность. Мы должны очертить класс операций которые позволяют нам работать с double недеструктивно. По поводу присвоений. Твой замечательный цикл который сейчас греет твой кусок кремния и твою комнату имеет мало пользы. Я предлагаю его упростить и взять множество ключевых констант MIN_DOUBLE, MAX_DOUBLE ... etc и различные варианты "бегущего бита" или множества значений десятичной системы таких как 9, 99, 999 e.t.c. И проверить только на них и сделать выводы. По поводу целочисленного деления. Как верно было сказано, точность последней копейки может плавать в зависимости от типа данных. BCD-арифметика даёт бухгалтерское (клеточное) деление. Двоичная целочисленная может дать другой результат. И наш волшебный double-тип может дать еще более парадоксальный результат. Если я ошибся - то прошу поправить. Почему я настойчиво вопрошаю к сообществу. Предлагаю брать за эталон Oracle-NUMBER, или бухгалтерский калькулятор Sharp/Citizen для проверки точности делений. Или любой другой финансовый тип. Частное от деление денег на деньги или денег на целое должно давать в последнем знаке ожидаемый результат. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2016, 20:28 |
|
||
|
inline extern из библиотеки, как правильно декларировать-имплементировать?
|
|||
|---|---|---|---|
|
#18+
Dima TХотеть не вредно а вот double использовать вместо decimal - вредно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2016, 20:31 |
|
||
|
inline extern из библиотеки, как правильно декларировать-имплементировать?
|
|||
|---|---|---|---|
|
#18+
ИзопропилDima TХотеть не вредно а вот double использовать вместо decimal - вредно. Если ты про decimal из C#, то это удел только .net, в других ЯП подобное не замечал. Тут вообще-то форум по С/С++. Соглашусь что decimal один из наилучших велосипедов, 128 бит это 128 бит, но тоже не идеальный. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2016, 20:39 |
|
||
|
inline extern из библиотеки, как правильно декларировать-имплементировать?
|
|||
|---|---|---|---|
|
#18+
maytonDima TТолько мне кажется что во втором случае повыше точность? Мне кажется это неверная постановка вопроса. Мы не должны искать способа повышать точность. Мы должны очертить класс операций которые позволяют нам работать с double недеструктивно. Так я и показал тестом что double недеструктивен, т.е. вполне точен. но не надо от него чудес ожидать, типа 19479327 . Если в целочисленных типах происходит переполнение, а в плавающих потеря точности, то это не баг, а фича, которой надо уметь грамотно пользоваться, а не тупо утверждать что double неточен по определению. Но есть минусы double, я их тоже указывал: сравнение, сортировка как следствие, что не дает его полноценно использовать для значений с фиксированной разрядностью. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2016, 20:51 |
|
||
|
inline extern из библиотеки, как правильно декларировать-имплементировать?
|
|||
|---|---|---|---|
|
#18+
Dima TЕсли ты про decimal из C#, он там кривой(точность нельзя задать). нормальный в коболе и наследниках ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2016, 21:03 |
|
||
|
inline extern из библиотеки, как правильно декларировать-имплементировать?
|
|||
|---|---|---|---|
|
#18+
Если уж про полноценные десятичные типы, то у меня был инцидент. Тип NUMERIC в dbf, реально хранится как строка десятичных цифр. Фокс все отлично посчитал (используя double) но поле было N(10,2), а значение туда не влазило и сохранилось как N(10,1), такая вот баго-фича, строка то читаема, а я огреб по полной от бухгалтерии, которая потеряла пару копеек в десятках миллионов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2016, 21:09 |
|
||
|
inline extern из библиотеки, как правильно декларировать-имплементировать?
|
|||
|---|---|---|---|
|
#18+
Изопропилон там кривой(точность нельзя задать). И это тоже, но и производительность с ним не та. Мне надо было быстрый парсер кучи файлов с кучей цен. Просто перегнать один формат в другой. И double гораздо быстрее чем decimal. Оно и понятно: нативный тип понимаемый процом против самодельной структуры от МС. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2016, 21:21 |
|
||
|
inline extern из библиотеки, как правильно декларировать-имплементировать?
|
|||
|---|---|---|---|
|
#18+
Dima TПриведи сначала оба числа в единую разрядность При операциях с числами с плавающей точкой они уже в одной разрядности: 0.987654321054321*10 15 и 0.100000000000004*10 -1 . Мантисы перемножаются отдельно, показатели складываются отдельно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2016, 21:21 |
|
||
|
inline extern из библиотеки, как правильно декларировать-имплементировать?
|
|||
|---|---|---|---|
|
#18+
Dima TМне надо было быстрый парсер кучи файлов с кучей цен это скорее обработка текста, а не вычисления ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2016, 21:25 |
|
||
|
inline extern из библиотеки, как правильно декларировать-имплементировать?
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovDima TПриведи сначала оба числа в единую разрядность При операциях с числами с плавающей точкой они уже в одной разрядности: 0.987654321054321*10 15 и 0.100000000000004*10 -1 . Мантисы перемножаются отдельно, показатели складываются отдельно. Не надо про сферических коней, почитай вступление 19478638 , речь про double как альтернативе расчетам с числами с фиксированной разрядностью. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2016, 21:26 |
|
||
|
inline extern из библиотеки, как правильно декларировать-имплементировать?
|
|||
|---|---|---|---|
|
#18+
Dima Tпочитай вступление Если уж читать вступление, так с того места, где кое-кто спутал финансистов с бухгалтерами. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2016, 21:35 |
|
||
|
inline extern из библиотеки, как правильно декларировать-имплементировать?
|
|||
|---|---|---|---|
|
#18+
ИзопропилDima TМне надо было быстрый парсер кучи файлов с кучей цен это скорее обработка текста, а не вычисления текст 10 во внутренние 2 (double или decimal) потом обратно в текст 10. Это тоже вычисления. И по факту double оказалось быстрее, да и косяки с разрядностью decimal при выводе еще вылезли. Разговор ведь про общее использование, в т.ч. и такое. Это просто частный случай, демонстрирующий что нет идеального решения проблем работы с числами с фиксированной разрядностью. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2016, 21:37 |
|
||
|
inline extern из библиотеки, как правильно декларировать-имплементировать?
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovDima Tпочитай вступление Если уж читать вступление, так с того места, где кое-кто спутал финансистов с бухгалтерами. если ты про это 19479458 , то огреб я от главбуха тогда. В остальном тут топик вообще про inline, поэтому остальное читай по диагонали, как субтопики :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2016, 21:42 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=39283494&tid=2018218]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
166ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
56ms |
get tp. blocked users: |
1ms |
| others: | 13ms |
| total: | 275ms |

| 0 / 0 |
