маленькая, но не менее умная задача
есть какое-то вещественное C
надо найти такие целые A в [A_min..A_max], B в [B_min..B_max] так
чтобы A / B было максимально близко к C ( скажем c = A/B, надо Min (c-C)^2 )
the place where select game development veterans rant about life, universe, and everything
есть какое-то вещественное C
надо найти такие целые A в [A_min..A_max], B в [B_min..B_max] так
чтобы A / B было максимально близко к C ( скажем c = A/B, надо Min (c-C)^2 )
Brute-force DXT encoder, anyone?
Continue reading ‘Большая, умная задача’ »
Кратко - type inference my ass.
Continue reading ‘C#, гвозди’ »
Несколько интересных соображений, навеянных публикациями по dual-pivot quicksort.
Оценки сложности программ - это все замечательно, это все, безусловно, необходимо знать, необходимо уметь оценивать эти параметры в задачах, и на вопросах про сложности сортировок сыпется огромное количество собеседующихся. Но если на минутку отвлечься от теоретических изысканий, то в рамках нашей прикладной приземленной обыденности можно найти множество интереснейших примеров того, как различные алгоритмы имеют абсолютно несравнимые сложности, константные (и не очень) коэффициенты “О большого” и побочные эффекты.
Эффектов масса. Это может быть и изменение ассемблерного кода, и избавление от лишних аллокаций, и оптимизация доступа к данным, и многое многое другое. Вот на закуску - несколько замеров скорости вычисления старой доброй пузырьковой сортировки.
ironpeter ‘at’ yandex-team
История эта случилась достаточно давно, но до сих пор она продолжает преследовать меня страшными кошмарами, связанными в основном с локализациями наших замечательных игр. Об этих проблемах многие даже и не задумываются, а, тем не менее, они могут серьезно подорвать вашу уверенность в светлом будущем.
Continue reading ‘Это страшное слово setlocale’ »
давно пора
а у вас, в самописной, есть итераторы?
а зачем они у вас есть? чтобы как у всех?
Все истинно гениальное очень просто.
http://iaroslavski.narod.ru/quicksort/DualPivotQuicksort.pdf
http://permalink.gmane.org/gmane.comp.java.openjdk.core-libs.devel/2628
Не прошло и 50 лет.
по мотивам того самого текстурного шейдера
сосбвтенно в заголовке всё сказано
use-case-ы у нас нормали, всевозможные кватернионы, базис для tangent space и прочие мелкие радости
кстати тот самый базис наглядно показывает необходимость в нескольких outputs
ну и, как всегда, на каждый пиксель интерполяторов приходится как минимум много
бонусы как и в прошлый раз. железо то-же
Я уже говорил ранее - я не отношу себя к поклонникам test driven development (TDD), но в то же время считаю, что Unit tests - это вещь, которая архиважна практически для любой разработки.
Любовь к написанию юнит тестов начала формироваться уже давно. Еще в тот день, когда я бегал по стенам Creat Studio, топал ногами и кричал, почему для того, чтобы проверить, что функция подсчета выпуклой оболочки множества точек (не та, про которую я писал ранее, а другая) снова дала сбой, надо проводить 20-минутный полный цикл экспорта от редактора до игры и по визуальным артефактам во время игры убеждаться, что снова что-то пошло не так.
Позднее любовь закрепилась, когда я проводил четырхмесячную отладку бага, который заключался в неправильной генерации рандомайзера. Юнит тестом этот баг мог бы быть выяснен буквально за несколько минут.
Потом любовь стала взаимной, когда я начал делать нагрузочные тесты на собственную подсистему аллокации мелких блоков. Я ставил рандомайзнутый тест на ночной прогон, с утра приходил на работу и смотрел, смогла ли система выдержать испытание в виду нескольких миллиардов тестовых аллокаций/деаллокаций. Иногда с утра система висела в ассертах. Иногда - в access violation. Именно тогда специфика юнит тестирования начала оформляться в какие-то взаимные прочные и долговременные отношения.
Continue reading ‘Про Unit тесты вообще и TDD в частности’ »