@ProCxx

Страница 2413 из 2477
Alexen
06.10.2018
16:46:48
вопрос не в этом
ну так эквивалентность X == Y / Z будет только в том случае если все числа можно точно выразить в плавающей точке, даже с полной точностью

Google
Ioann V
06.10.2018
16:48:00
12323 представимо в дабле точно, без погрешностей. 100 тоже.

Alexen
06.10.2018
16:49:30
хех по твоему только степени двойки можно представить точно?
немного не так выразился, там проблема со сдвигом мантисы

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

Ioann V
06.10.2018
16:50:46
так и что, оно представимо в бинарке без погрешности какой либо.

и компилятор соглашается, что 123.23 = 12323./100.;

Ну и код гугла выше, вроде тоже.

Ну что, неужели у них перевод строки в double - не iee754 specific? wtf?

Alexen
06.10.2018
16:53:17
в ieee754 подобных утверждений я не видел

Ioann V
06.10.2018
16:54:08
Да я вот как раз хотел спросить, авось кто видел. Тут может фишка в том, что ты недосканально курил iee754? Как и я?

Alexen
06.10.2018
16:54:34
в своё время я даже имплементил её туда где не было плавающей точки

Ioann V
06.10.2018
16:55:20
Если что, вновь открывшим чатовчанам вопрос такой: 123.23 == 12323. / 100.? Скрин от гуглового кода пмшет мол да.

в своё время я даже имплементил её туда где не было плавающей точки
ну блин, не верится что гугл врет в своих сорцах

Alexen
06.10.2018
16:55:41
гугл не врёт

Google
Alexen
06.10.2018
16:55:49
гугл имеет свои мысли

Evgeniy
06.10.2018
16:55:54
Alexen
06.10.2018
16:56:06
и то что использует гугл не всегда будет справедливо для жизни

Ioann V
06.10.2018
16:57:07
и то что использует гугл не всегда будет справедливо для жизни
В вопросах стандартов то? Позволять себе неверно транслировать строки в дабл.... Такое себе, особенно в движке.

Alexen
06.10.2018
16:57:25
даже в вопросах стандартов

если это даёт какой-то выигрышь некоторыми правилами они пренебрегают

Ioann V
06.10.2018
16:58:25
не поверю, ИМХО. В вопросах точности, првила пренебрежения недопустимы. Наверное. А то все неверно будет работать :)

Ioann V
06.10.2018
16:59:47
Ну у них эта фигня используется по факту во всех даблах, что идут до е + - 15

Alexen
06.10.2018
17:01:07
Ну у них эта фигня используется по факту во всех даблах, что идут до е + - 15
ну смотри типичный пример про .1 + .1 + .1, так вот при делении такое же может быть. Ты можешь получить число которое нарушает указанное тобой равенство

+ у тебя х86? если да, то даблы это конвективное от полного

Ioann V
06.10.2018
17:02:02
0.1 не представимо в дабле полностью

там реально ошибки округления

будут, тут очевидно все

Alexen
06.10.2018
17:03:16
вот, следовательно полагая на совпадение какого-то одного примера нельзя его обощать на другие, оно вообще может сопадать на какой-то одной системе

Ioann V
06.10.2018
17:03:32
если брать сумму. А вот 1./10. представимо тем же 0.1. Не могу понять в чем сложность сделать так чтобы они совпадали, когда в начальных числах нету ошибок округления.

Alexen
06.10.2018
17:04:31
проблема состоит в том итоговое число может быть непредставимо без ошибок

Ioann V
06.10.2018
17:05:17
так я и пишу про то, почему нельзя сделать так, чтобы итоговое число, пусть и с ошибками равнялось тому что было переведено из 0.1 оригинального?

Alexen
06.10.2018
17:05:37
а как ты можешь это обеспечить?

Google
Alexen
06.10.2018
17:05:50
у тебя есть ошибки вычислений и есть ошибки конверсии

они разного рода и разные по приближению, тут ничего не поделаешь

Ioann V
06.10.2018
17:07:16
Возможно обеспечить можно.

Alexen
06.10.2018
17:07:46
в текущей реализации нет - так как аппаратура по своему нормирует числа в процессе операций

Ioann V
06.10.2018
17:08:48
Было бы неплохо получить пример в котором точно не выполняется то что я писал выше

Что бы компилятор послал нахер, скажем так

Alexen
06.10.2018
17:09:07
более того у арм к примеру оно не ieee754 совместимо полностью, там в процессе вычислений получаются числа не нормальные для системы (для х86 тоже, но об этом другая тема), по этому для получения ieee754 вызваются дополнительные команды

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

Ioann V
06.10.2018
17:11:17
ну, пусть процы пока что считаются полностью иее754 совместимыми

А пример бы не помешал, да. Я в заблуждении.

Alexen
06.10.2018
17:12:02
пока озу маловато у меня для всяких бенчей

Ioann V
06.10.2018
17:12:43
Твои слова звучат красиво, но требуют телодвижений много. А гугл это как никак целая Ось. И вопросы стандартов тут, как мне кажется, выше всего.

Alexen
06.10.2018
17:13:40
я говорю что исходя из того что я знаю, подобных утверждений я бы не стал делать, так как имел много примеров как с плавающей точкой, так и с тригонометрией которые мне говорили что так пологать опасно

Ioann V
06.10.2018
17:14:39
Ну я понимаю. Окей. Я еще на SO спрошу. А как с автором кода связаться я хз. Там нету контактов :)

Ну и если тут еще есть умельцы, пусть тоже отписывают.

Alexen
06.10.2018
17:15:03
так там имейл вверху должен быть в лицензионной шапке

лучше да, спросить как можно больше человек

Alexen
06.10.2018
17:15:44
так по гиту посмотри

там написано кто закомитил

Google
Ioann V
06.10.2018
17:17:07
Я ж с тела :( Но, гляну, как поем. Ну и другие пусть не молчат.

Alexen
06.10.2018
17:18:02
а другие о таких вещах скорее всего и не задумывались

Nick
06.10.2018
18:04:36
Всем привет! Подскажите как лучше реализовать в многопоточности нижесказанное... Есть цикл в котором идет запись в файл, каждый файл имеет свое имя: char name[150] = ""; for(int i = 0; i < коллтчесво_картинок; i++){ sprintf(name,"%d", i); Запись в файл... } Данные о файле jpg я получаю через callback функцию, 2 ее переменные BYTE *pbuf (Тип), UINT Revlen (Размер), я сделал глобальными, char name тоже. Когда начинаю параллелить код, то запись идет, но все перемешивается! Использую pthread.h, omp.h, но пока ничего не помогает...

Владислав
06.10.2018
18:07:40
Логично, что всё перемешивается, многопоточка же

Nick
06.10.2018
18:09:29
Ну ты кэП! Я это могу исправить через mutex, но это полная лажа и скорость 1 поточной программы.

Владислав
06.10.2018
18:09:46
Не очень понял, ты в один файл в цикле пишешь или в несколько?

Если в один, то либо так, а если синхронизируешь, то эффект от многопоточки потеряется

Nick
06.10.2018
18:10:57
В эту функцию залетают потоки... и каждый поток несет с собой инфу, кол-во картинок, размер и тип.

Там их ждем мой цикл

И вот тут начинается каша... месево...

Владислав
06.10.2018
18:11:46
У тебя один разделяемый ресурс, по другому не сделаешь

Nick
06.10.2018
18:13:01
Я сделал, через Process windows.h, но систему подгружает( А я хотел без костылей, красиво как в кино(

Anatoly
06.10.2018
18:13:36
Не понял зачем глобальные переменные, в колбек приходят параметры, копируй в поток эти параметры

А так, нарисуй sequence diagram, чтобы понять суть твоего процесса обработки

Kotbegemot
06.10.2018
18:17:38
как перехватить параметры у функций и очистить их от все мадефикаторов ?

Владислав
06.10.2018
18:17:42
И как это помогло избежать "каши"

мадефикаторы? перехватить параметры у функций?

Nick
06.10.2018
18:18:53
Не понял зачем глобальные переменные, в колбек приходят параметры, копируй в поток эти параметры
В функции где идет запись в файл, перед циклом идет вызов callback, где мне начать передавать инфу в потоки?

Google
Владислав
06.10.2018
18:18:53
Я похоже слишком надолго выпал из плюсового чатика и перестал понимать профессиональный сленг

Kotbegemot
06.10.2018
18:22:05
Я похоже слишком надолго выпал из плюсового чатика и перестал понимать профессиональный сленг
прости пишу на бегу . хочушу сохранить все типы аргументов функции, что бы востанавить потом . модификаторы типа константность, ссылки , pointer .

Nick
06.10.2018
18:23:17
И как это помогло избежать "каши"
Я кормлю exe c обработкой процессов - exe, где идет цикл и передаю туда же необходимые аргументы.

Владислав
06.10.2018
18:24:44
Я кормлю exe c обработкой процессов - exe, где идет цикл и передаю туда же необходимые аргументы.
Т.е ты запускаешь несколько процессов, пишущих в один файл? Видимо, ос за тебя синхронизирует их деятельность, но может я чего-то не знаю.

Nick
06.10.2018
18:25:34
Есть набор шаблонов std::remove_xxx, смотрел?
Не знаком, я в плюсах не особо мастак, я в основно Си. В общем твою идею понял, сейчас пойду гуглить.

Kotbegemot
06.10.2018
18:26:57
Есть набор шаблонов std::remove_xxx, смотрел?
для аргумента да понемаю для вариайдить темплайтов пока незнаю как а С++ 11

Anatoly
06.10.2018
18:27:59
для аргумента да понемаю для вариайдить темплайтов пока незнаю как а С++ 11
начни с https://en.cppreference.com/w/cpp/types/remove_cv потом https://en.cppreference.com/w/cpp/types/remove_reference потом https://en.cppreference.com/w/cpp/types/remove_pointer

Kotbegemot
06.10.2018
18:28:41
рефы и указатели, вроде как, не модификаторы...
а какое слово на русском лучьше подходит ?

Anatoly
06.10.2018
18:29:07
а какое слово на русском лучьше подходит ?
на русском лучше reference и pointer

Kotbegemot
06.10.2018
18:29:26
ок

Владислав
06.10.2018
18:46:18
а какое слово на русском лучьше подходит ?
Дело не в языке, а в том, что всё, что ты назвал, относится к типам данных, а не к их модификаторам. Но это так, придирки

Ioann V
06.10.2018
19:19:38
Ребят, кто что скажет, чем поможет:

есть ли гарантия, что 123.23 == 12323. / 100.?



Вот, переводчик строк в ieee754 dbl от гугла.

Страница 2413 из 2477