- 1
#define HESHELME_BESHELME(x, y) (((x)>0)<<2 | ((y)>0)<<1 | ((x) > ((x)*(y) > 0 ? (y) : -(y))))
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+102
#define HESHELME_BESHELME(x, y) (((x)>0)<<2 | ((y)>0)<<1 | ((x) > ((x)*(y) > 0 ? (y) : -(y))))
двумерное "квантование" точки
Lure Of Chaos 26.11.2011 02:59 # +3
gegMOPO4 26.11.2011 10:30 # +1
orion 26.11.2011 11:20 # 0
ЗЫ: квантовать хочется в [0..7], последовательность не обязательна.
lucidfoxGovno 26.11.2011 11:26 # −3
gegMOPO4 26.11.2011 11:30 # +6
bugmenot 26.11.2011 13:45 # +8
ahalai-mahalai
gEKA6PbCKuu_nemyx 22.12.2021 11:57 # 0
guest6 22.12.2021 13:20 # 0
roman-kashitsyn 26.11.2011 13:50 # +1
x вычисляется трижды, y - четырежды.
lucidfoxGovno 26.11.2011 14:24 # −5
При срабатывании оптимизации expression elimination x и y по одному разу вычисляются.
>А функцию вообще никак нельзя было использовать?
Можно, но автор не подумал.
UncleAli 26.11.2011 15:42 # −3
HESHELME_BESHELME(foo(), bar())
где foo(), bar() — функции с побочными эффектами.
И что тут можно соптимизировать?
--
Ваш Кэп
lucidfoxGovno 26.11.2011 21:33 # −2
И что тут можно соптимизировать?
Лол. Если функции с побочными эффектами, тогда макрос нельзя применять. Каждый раз x и y новые значения будет в пределах макроса принимать или рушить логику работы программы.
--
Ваш Кэп
UncleAli 27.11.2011 01:46 # 0
Ну так о том и речь. Только тогда о этом точно должен знать мейнтейнер кода, что лично я считаю лишним неоправданным напрягом.
lucidfoxGovno 27.11.2011 06:45 # −2
Зачем выкручивался, как уж на сковородке? Сразу бы сказал, если знал, что макрос применять крайне не желательно. Это противоречит безопасному проектированию и поддержке.
lucidfoxGovno 27.11.2011 07:00 # 0
И что тут можно соптимизировать?
Как ты определил, что параметры макроса вызывают побочные эффекты? Из данного куска кода определить это нельзя. Поэтому голословно утверждать это нужно. Там может простое использование и никаких побочных эффектов: И уж тем более нельзя сказать с учетом возможной оптимизации expression elimination, что параметры функции вычисляются точно несколько раз.
Но использование автором макросов - я некоим образом не оправдываю.
lucidfoxGovno 27.11.2011 06:48 # 0
Какой физический смысл вкладывается в слово "квантование" и где такое применяется?
orion 27.11.2011 08:11 # 0
Конкретно этот код использовался при обнаружении пешеходов на изображении.
В качестве обучаемых признаков использовал гистограмму ориентированных градиентов (HOG). В локальной окрестности находится направление градиента - угол [0..360), который квантовался в моем случае в [0..8). Из всех таких квантованных углов как раз и строится гистограмма.
eth0 27.11.2011 10:06 # +4
orion 27.11.2011 10:53 # 0
если интересно, http://courses.graphicon.ru/main/cg/2011/assignment02
WGH 24.04.2014 13:56 # +4
orion 24.04.2014 14:07 # +1
а вообще, имхо, машграф был самый классный курс за все время обучения
3_dar 13.11.2020 21:54 # 0
3_dar 13.11.2020 21:54 # 0
ISO 21.12.2021 22:20 # 0
gEKA6PbCKuu_nemyx 22.12.2021 12:00 # 0
lucidfoxGovno 27.11.2011 10:55 # 0
jabber 27.11.2011 12:40 # −8
guest8 09.04.2019 12:14 # −999
ASD_77 22.12.2021 16:02 # +4
CHayT 22.12.2021 16:44 # +1
Это вореции?
1024-- 22.12.2021 17:09 # +2
guest6 22.12.2021 17:23 # +1
CHayT 22.12.2021 17:53 # +2
3.14159265 22.12.2021 19:51 # 0
guest6 22.12.2021 19:54 # 0
https://www.youtube.com/watch?v=u3TjWRmVMQE
а вот лонглисен
https://www.youtube.com/watch?v=Wb7eV47YOm4