• Сложение двух чисел с плавающей запятой без потери точности
    0
    UB тут ни при чём, но «разнести всё» компилятор может, если укажете флаг -ffast-math (об этом уже писал выше). Точность сразу упадёт. Поэтому да, программы с такими трюками и этот флаг жить вместе не могут :)
  • Сложение двух чисел с плавающей запятой без потери точности
    +4
    Эта тема очень нужная, и имеет практические применения. Так называемые error-free transformations позволяют решить некоторые задачи с повышенной точностью без применения чисел с плавающей точкой большей разрядности, например, вычисление скалярных произведений или вычисление многочлена. Зачастую вычисление значения полинома возле его корня (особенно кратного корня) плохо обусловлено (т.е. ответ на такую задачу трудно искать с малой относительной ошибкой), а такие вещи порой нужно делать; у меня подобные знания нашли применение при обработке сигналов, если точнее — при обращении матрицы-циркулянта. Кому интересно — поищите статьи по Compensated Horner Scheme, автор Graillat et al.

    На современных процессорах x64 (Intel, AMD), кстати, есть инструкция FMA (fused multiply-add), которая ускоряет подобные алгоритмы. По скорости получается, конечно, медленнее, чем без compensated алгоритмов (с обычной точностью), но намного быстрее, чем с более длинными типами (длиннее double). Кстати, никогда не компилируйте программы с compensated алгоритмами с флагом -ffast-math – вам GCC «эквивалентными» преобразованиями всю точность убьёт =)
  • Дротики, кости и монеты: алгоритмы выборки из дискретного распределения
    0
    Очень странная терминология использована в статье: вместо «шулерских монет» обычно говорят о распределении Бернулли, «Alias-метод Воуза» куда чаще называют «методом Уолкера», более того — его постоянно применяют, например, он используется в R в функции sample(). И уж куда большую ошибку при моделировании вносят не double-ы с их мантиссой аж в 52 бита, а используемый датчик псевдослучайных чисел (у которого состояние или выход и вовсе может быть в 32 бита).
  • Мой любимый алгоритм: нахождение медианы за линейное время
    0
    На самом деле, нас могут интересовать не только медианы, но и квартили и вообще произвольные квантили, короче говоря, k-е порядковые статистики (т.е. k-ый элемент в отсортированной последовательности). quickselect (который обрубленный quicksort) спокойно обобщается на этот случай с сохранением асимптотики среднего времени, а детерминированный подход можно ли обобщить?

    В статье это никак не раскрыто.
  • Мелочь, а приятно: чашка, которая регулирует температуру напитка
    0
    Как USB-свитч вполне себе можно использовать.
    Как подставку под кружку — абсолютно бесполезное барахло, которое занимает место на столе. Выбросил за ненадобностью.
    Да, она слегка нагревает донышко, но эффект абсолютно незаметен. Проще поставить кружку на стол и не заморачиваться.
  • Английские слова, которые хочется перевести неправильно
    0
    Still life — натюрморт, а не «неподвижная жизнь» или «спокойная жизнь» =)
  • 10 лет с Колибри: как это было
    +1
    Pixies в Pixie это зачёт :)
  • Telegram сам добавляет чужие контакты? Это норма
    +1
    Столкнулся с этой проблемой в феврале 16 года, тут и симки ни при чём.
    Дал подруге погонять планшет (айпад без симки), на котором был залогинен мой телеграм, потом она разлогинилась и залогинился обратно я. С тех пор периодически телеграм добавлял мне её контакты, а ей — мои, более того — засовывает их в телефонную книгу. Убирал у телеграма доступ к контактам, естественно, это помогало, но было не очень удобно. Я писал им в поддержку — без ответа. Удивительно, что эта проблема до сих пор жива, это огромная дыра в безопасности.
  • Низкоуровневая оптимизация и измерение производительности кода на R
    +2
    В любом случае, спасибо за статью! Для новичка это must-read, потому что типичный императивный «сишно-паскальный» подход приводит к крайне медленным и страшным программам, и нужно с самого начала учиться «думать» на R :)
  • Низкоуровневая оптимизация и измерение производительности кода на R
    0

    Ой, переносы строк поехали. И pmin() вместо min(), конечно же.

  • Низкоуровневая оптимизация и измерение производительности кода на R
    +2

    Ребята, вот же красивое решение безо всяких циклов. Строит ганкелеву матрицу размера LxK, состоящую из номеров побочных диагоналей, в три строчки безо всяких циклов, Rcpp, Vectorize и прочего:


    K <- N - L + 1 i <- rep(1:L, K) j <- rep(1:K, each = L) matrix(i + j - 1, nrow = L)


    Естественно, если последнюю строчку перед взятием matrix поменять на что-то типа:
    matrix(min(1:N, N:1)[i + j - 1], nrow = L)
    то получим решение вашей задачи.

  • Лженаука. Верить ли научным статьям по психологии
    +1
    Но реально ли получить что-то разумное на выборке в несколько десятков человек?
  • Представление движений в 3D моделировании: интерполяция, аппроксимация и алгебры Ли
    0
    Если я не ошибаюсь, то на самом деле скорость вращения зависит от выбора ветки комплексного логарифма при вычислении логарифма матрицы.
  • Представление движений в 3D моделировании: интерполяция, аппроксимация и алгебры Ли
    +1
    Матричные экспоненты и логарифмы имеют массу приложений и в других областях. Например, рассмотрим переходную матрицу изменения кредитного рейтинга (который A, AA, AAA, B, ...) компаний за год. Тогда, взял её логарифм, умножив на t — время в годах (может быть каким угодно большим 0, например, t=0.5 — полгода), и, после этого, посчитав экспоненту, можно получить аппроксимацию переходной матрицы за время t. Естественно, возникают дополнительные проблемы (например, в итоговой матрице не могут быть отрицательные числа, и с этим дополнительно борются. Обычно невозможно взять логарифм точно чтоб при всех t>0 матричная экспонента не имела нулей).

    Ну и другая проблема — в общем случае далеко не у всех матриц существует матричный логарифм. По-моему, матричный логарифм существует тогда и только тогда, когда все жордановы клетки имеют размер 1. А поиск годной аппроксимации ещё тот геморрой.
  • Просмотр видео «сбоку»
    0
    Я думаю, что примерно так же могли бы наблюдать нашу жизнь трафальмадорцы из «Бойни номер пять...» Воннегута :)
  • Автопилот Tesla: первая смерть
    0
    В прессе появились слухи о том, что на месте аварии был найден портативный проигрыватель.
    Причём один свидетель утверждает, что он был включен. Другой это не подтверждает.
    www.reuters.com/article/us-tesla-autopilot-dvd-idUSKCN0ZH5BW?il=0
  • Нейронная оборона: запись альбома-посвящения Егору Летову при помощи нейросетей
    +6
    Вообще, везде заголовки выглядят как «Люди записали альбом в стиле Летова при помощи нейросетей» или «с помощью нейросетей», и это сбивает с толку, потому что это не так. С помощью нейронных сетей нагенерировали стихи, а исполнили их люди, и музыку сочинили, насколько я понимаю, люди. А я-уж подумал, что это компьютер научился подражать стилю Гражданской Обороны и прочих исполнителей, генерируя аудиодорожку :).

    Вот это была бы новость (кстати, переводить заданную мелодию и текст в аудиодорожку-пастиш вполне подъёмная задача для нынешнего уровня знаний, как мне кажется). А возможность генерировать бредовые стихи Яндекс уже демонстрировал.

    Вообще, их комментарий о том, что Пушкин выходит «ни о чём», а Хармс получается вполне себе говорит лишь о том, что в первом случае бессмыслица становится явной, а во втором её можно скрыть слоем «абсурда». Впрочем, если бы вдруг алгоритм начал генерировать осмысленные стихи, то это был бы прорыв. А так — ничего нового, представление о мире не поменялось :).
  • Питерцы чемпионы мира! Не хоккеем, так программированием
    +3
    Но это родимое пятно…
  • Как обмануть весь мир и стать знаменитым при помощи гуглокарт
    +1
    В Wired есть статья с похожим содержанием:
    www.wired.com/2016/05/long-lost-mayan-city-teen-found-isnt-lost-city

    Обновление от вчерашнего числа: археолог Джофри Брасвелл из UC San Diego вместе со своими аспирантами работал в этой местности. Утверждает, что это либо невспаханное поле, либо поле, засеянное марихуаной.
  • В велосипеде известной спортсменки на чемпионате по велокроссу нашли электромотор
    +2
    Фабиан всё же Канчеллара, а не Канселлара.