А где очевидный вариант «Прав, но WebKit тут не при чем»? Только что проверил на андроидовском Firefox и Opera Mobile, прекрасно работает и там и там. Это чистая политика, тут нет неправых. Каждый имеет возможность гнуть свою линию в пределах своего продукта, и в этом и заключается право.
Я конечно понимаю, что это делалось под экраны с повышенной плотностью пикселей, но не хотите сделать какой-нибудь антиалиасинг? Например, простой в вычислительном плане FXAA.
В чём проблема пресайса? Нормально работает и на раринге (13.04) 64-бит, хотя за год почти все библиотеки выросли в версии. Зависимости от библиотек консервативны, только иксовые библиотеки, работа со звуком и ещё несколько совсем базовых библиотек, так что пакет можно спокойно конвертировать в rpm alien-ом.
К тому же, посмотрите на размер пакета — чуть больше мегабайта. А все остальные 300мб (в распакованном виде) выкачиваются в процессе установки. С таким размером они вполне могут позволить себе линковаться к редким библиотекам статически.
А по-моему это очень круто. Хабр читают очень много веб-разработчиков (кроме самих разработчиков хабра), Кто-нибудь теперь возьмёт и внедрит эту идею к себе на форум/блог/вики-движок/ЛС/систему комментариев/… Да мало ли куда! А там и другие веб-разработчики подтянутся. Напишут jquery-скрипт, который будет подключаться к textarea одной строчкой. И со временем это станет общераспространённой технологией.
Ваш левый глаз заблокирован за просмотр информации, запрещённой на территории РФ. Для снятия блокировки отправьте СМС на короткий номер 1234 с текстом «ХОЧУ ВИДЕТЬ». Не пытайтесь снять линзу, попытка снятия приведёт к подаче тока высокого напряжения на глазное яблоко. Оставшееся время: 4:59… 4:58… 4:57…
Небольшое уточнение: на количество чтений влияет не столько локальность/глобальность переменных, сколько локальность/глобальность привязки. Если перемененная будет определена вне функции, но со словом static, то компилятор с лёгкостью определит оптимальное количество чтений. Это важно. На практике, если уж без глобальных переменных не обойтись, всё равно почти всегда переменную удаётся сделать статической и обращаться к ней извне через специальные функции.
А чем вы так красиво сгенерировали листинг? -fdump-tree-optimized выводит оптимизированную версию с внутреннего представления, -g -Wa,-ahl=test.s ссылается не на все строки, а -S -fverbose-asm ссылается не на реальные строки, а опять же на внутреннее представление.
Первый код запутывает компилятор. Даже если итерации цикла независимы, компилятор не считает их таковыми; по этой причине он не может векторизовать данный кусок кода. А вот второй — может.
Что-то вы совсем древние компиляторы взяли. GCC 4.7 спокойно векторизует этот код, предварительно вставляя проверку, что a, b и c не накладываются друг на друга в пределах sizeof(*a).
10: create runtime check for data references *b_27 and *a_26
10: create runtime check for data references *c_28 and *a_26
Ну а чтобы он и этой проверки не делал, можно указать __restrict__, тогда этот цикл будет векторизован без всякой ругани.
void f(int * __restrict__ a, int * __restrict__ b, int * __restrict__ c, int N) {
for(int i = 0; i < N; i++)
*a++ = *b++ + *c++;
}
Кстати, чтобы посмотреть весь ход автовекторизации, есть отличные опции: g++ -O2 -ftree-vectorize -march=native -ftree-vectorizer-verbose=5
В студию:
1) полный код писем, особенно заголовки, изображения и ссылки
2) OS владельцев угнанных аккаунтов
Особенно интересует, что это за письмо, которое начинается с маленькой буквы и со ссылки на api.skype.com. Пока похоже на стандартную разводку лохов, которой сто лет воруют аккаунты на всём подряд от почты до жж и блоггера (на такой же штуковине попадались г-да Мавроди и Навальный).
Забыл, моя вина. Но это в любом случае не даёт права закрывать код qt, даже если вы его не модифицировали (в связи с чем нужно поставлять текст лицензии с продуктом).
Вы продаёте некоммерческую GPL-версию qt (сохранённая страница, SHA1(DoronixMathToolboxSetup.exe)= 115d1b1a01dd9346e26938ed8f85ed660b6664d5). В принципе, это делать никто не запрещает, но исходники+текст лицензии, будьте добры, выложите.
Кажется, мы так ничего и не узнаем о тех четырёх африканских мальчиках, которые в соседнем помещении в течении всего времени демонстрации крутили рукоятки динамо-машин, чтобы обеспечить питание электролизера…
По меркам игр, существовавших до этого, может это и правда это хорошо выглядит. Но с точки зрения фотореализма, один раз увидишь вариант лучше — всегда о нём будешь думать. Например лайтмапы: тени красивые, но объекты просто невозможно сдвинуть. Карты теней — да, даёт тень по форме объекта, но где в реальной жизни тень получается от блюра формы объекта? Если есть motion blur для объектов, то он наверняка векторный, а значит не будет распространяться на отражения и преломления. И в целом, олдскульные шейдеры (Фонги, Ламберты и прочие) дают очень приближённое освещение, в частности, не учитывающее форму источника. И таких мелочей множество, даже в одной области освещения.
Интересно, что даже для современных игр типа Diablo 3 до сих пор используются такие классические технологии, как предрассчитанные лайтмапы, карты теней, эффекты на основе текстурок и т. д. Из более-менее новых технологий разве что FXAA (который впервые появился в скайриме), а всё остальное было ещё в далёких 2000-х. И даже если бы были нормалмапы, это вряд ли бы что-то изменило. Где CUDA/OpenCL, где рейтрейсинг по хитро просчитанным BVH-деревьям, воксельные системы, физически-корректные и реалистичные BSDF или даже BSSRDF для подповерхностного рассеяния? Арргх, не дожить мне до этого дня!
Да уж, если такие моменты моменты случаются в системах перевода, то что будет, когда в обиход войдут системы искусственного интеллекта типа IBM-овского Ватсона? Отладка такого чуда даже Айзеку Азимову не снилась. На этот раз спасибо «Ананасовому Экспрессу»:
— Давай. бери весы и я пойду.
«Я думала, сезон бурь закончился!»
— Вот так!
— Где же вы, мои гиречки?
— Что это, к черту, такое?
— Крестовый косяк. — Курил такой?
— А его курят? ru
— Grab the scale. Let's get me out of here.
I thought hurricane season was over.
— Oh, crow.
— Where are you, you little fucker?
— What the fuck is this thing?
— Cross joint. — Yeah. — You ever smoke one of those?
— You can smoke this? en
|x| * |y|
?Не видевшие реализации, ни в жизнь не догадаются.
Версия для float: code.metager.de/source/xref/glibc/sysdeps/ieee754/flt-32/e_hypotf.c
(для справки: hb &= 0x7fffffff — взятие мантиссы и экспоненты без учёта знака, ha == 0x7f800000 — проверка на бесконечность)
Ссылку на версию для double дали выше, но это уже совсем другая история.
К тому же, посмотрите на размер пакета — чуть больше мегабайта. А все остальные 300мб (в распакованном виде) выкачиваются в процессе установки. С таким размером они вполне могут позволить себе линковаться к редким библиотекам статически.
static
, то компилятор с лёгкостью определит оптимальное количество чтений. Это важно. На практике, если уж без глобальных переменных не обойтись, всё равно почти всегда переменную удаётся сделать статической и обращаться к ней извне через специальные функции.-fdump-tree-optimized
выводит оптимизированную версию с внутреннего представления,-g -Wa,-ahl=test.s
ссылается не на все строки, а-S -fverbose-asm
ссылается не на реальные строки, а опять же на внутреннее представление.Что-то вы совсем древние компиляторы взяли. GCC 4.7 спокойно векторизует этот код, предварительно вставляя проверку, что a, b и c не накладываются друг на друга в пределах sizeof(*a).
Ну а чтобы он и этой проверки не делал, можно указать __restrict__, тогда этот цикл будет векторизован без всякой ругани.
Кстати, чтобы посмотреть весь ход автовекторизации, есть отличные опции:
g++ -O2 -ftree-vectorize -march=native -ftree-vectorizer-verbose=5
Тем временем за последние пять лет:
1) полный код писем, особенно заголовки, изображения и ссылки
2) OS владельцев угнанных аккаунтов
Особенно интересует, что это за письмо, которое начинается с маленькой буквы и со ссылки на api.skype.com. Пока похоже на стандартную разводку лохов, которой сто лет воруют аккаунты на всём подряд от почты до жж и блоггера (на такой же штуковине попадались г-да Мавроди и Навальный).