На Хабре уже было несколько статей (раз, два, два с половиной), посвящённых новому формату чисел с плавающей запятой Posit, авторы которого преподносят его его как превосходящий стандартный IEEE 754 float по всем параметрам. У нового формата нашлись и критики (раз, два) утверждающих, что недостатки Posit перевешивают его достоинства. Но что, если у нас действительно появился новый революционный формат, а критика просто вызвана завистью и некомпетентностью критикующих? Что же, лучший способ выяснить это — взять и повычислять самостоятельно.
Читать полностью »
Рубрика «c++» - 68
Испытания Posit по-взрослому
2019-09-17 в 16:24, admin, рубрики: c++, floating point, аппроксимация функций, все врут, математика, ПрограммированиеКурс по C++ в CS центре, первая часть
2019-09-17 в 15:12, admin, рубрики: c++, Блог компании Образовательные проекты JetBrains, видеолекции, курсы, ПрограммированиеComputer Science Center — это совместная инициатива Computer Science клуба при ПОМИ РАН, компании JetBrains и Школы анализа данных Яндекса.
Центр существует, чтобы дать возможность талантливым студентам и выпускникам развиваться в интересных им направлениях: Computer Science, Data Science или Software Engineering.
Курс по C ++ в двух частях в центре читает Валерий Михайлович Лесин, valery-l, преподаватель ИТМО и CS центра, технический директор Simlabs.
Первая часть курса нужна, чтобы нарастить базу по С++: к концу семестра студенты с большой вероятностью получат достаточно навыков программирования на этом языке для решения своих задач. Пока без move semantics, sfinae, но для начала этого, скорее всего, будет достаточно.
Студентам с опытом использования С++ эта часть поможет закрыть пробелы. Например, в линковке, работе с памятью, лямбда-функциях и других темах. В лекциях будут представлены как ретроспектива устоявшихся практик, так и обзор возможностей, которые предоставляют последние стандарты языка. Курс построен так, чтобы студенты разного уровня могли найти в нём новый для себя материал.
Приятного просмотра!
Читать полностью »
Введение в детерминированные сборки на С-С++. Часть 1
2019-09-17 в 10:41, admin, рубрики: c++, Блог компании OTUS. Онлайн-образование, детерминизм, ПрограммированиеПеревод статьи подготовлен специально для студентов курса «Разработчик С++».

Что такое детерминированная сборка?
Детерминированная сборка — это процесс сборки одного и того же исходного кода с одной и той же средой и инструкциями сборки, при котором создаются одни и те же двоичные файлы в любом случае, даже если они сделаны на разных машинах, в разных каталогах и с разными именами. Такие сборки также иногда называют воспроизводимыми или герметичными сборками, если гарантируется, что они будут создавать одни и те же двоичные файлы даже при компиляции из разных папок.Читать полностью »
Как не сделать самый быстрый strlen и найти недоработку в Visual Studio 2019 Community
2019-09-17 в 7:03, admin, рубрики: c/c++, c++, intrinsics, ms visual stodio, strlen, ПрограммированиеНа размышления меня натолкнула статья об использовании «странной» инструкции popcount в современных процессорах. Речь пойдет не о подсчете числа единичек, а об обнаружении признака окончания Си строки (нуль-терминированная строка).
Нуль-терминированная строка — способ представления строк в языках программирования, при котором вместо введения специального строкового типа используется массив символов, а концом строки считается первый встретившийся специальный нуль-символ (NUL из кода ASCII, со значением 0).
Для определения длины таких срок применяется стандартная функция
size_t __cdecl strlen(char const* str)
Алгоритм работы которой можно описать на языке Си как:
size_t strlen_algo(const char* str)
{
size_t length = 0;
while (*str++)
length++;
return length;
}
Посмотрим во что его превращает компилятор MS Visual Studio 2019 community (Release, x86):
08811F7h:
mov al,byte ptr [ecx]
inc ecx
test al,al
jne main+0D7h (08811F7h)
Рендеринг 3D графики с помощью OpenGL
2019-09-16 в 11:30, admin, рубрики: c++, glsl, OpenGL, Работа с 3D-графикойВведение
Рендеринг 3D графики — непростое занятие, но крайне интересное и захватывающее. Эта статья для тех, кто только начинает знакомство с OpenGL или для тех кому интересно, как работают графические конвейеры, и что они из себя представляют. В этой статье не будет точных инструкций, как создать OpenGL контекст и окно или как написать своё первое оконное приложение на OpenGL. Связанно это с особенностями каждого языка программирования и выбором библиотеки или фреймворка для работы с OpenGL (Я буду использовать C++ и GLFW) тем более в сети легко найти туториал под интересующий вас язык. Все примеры, приведённые в статье, будут работать и на других языках с немного изменённой семантикой команд, почему это так, расскажу чуть позже.
Читать полностью »
И ещё о сортировках
2019-09-15 в 18:04, admin, рубрики: boost, BSD, c++, processing, stl, Алгоритмы, алгоритмы сортировки, Программирование, сортировки, строки, структуры данныхИ ещё о сортировках
Рискну опять поднять эту тему. Начну со ссылки на статью Михаила Опанасенко (oms7), очень впечатляющую по объёмам проделанной работы, а также по количеству приведёных ссылок. Свой материал начал готовить, не зная об этой публикации, что впоследствии, после ознакомления привело к необходимости его существенной переработки. Для тех, кто уже прочитал эту статью, сообщаю, что в моём материале, исследуются более разнообразные по типам данные, в частности, строки и вещественные числа, используются библиотеки boost и bsd, а также затрагиваются некоторые другие отсутствующие в названной статье темы.
Читать полностью »
Создаем на C++ выразительные умные указатели для удаленной памяти
2019-09-14 в 8:27, admin, рубрики: .net, c++, memory, stl, Алгоритмы, Блог компании Издательский дом «Питер», ооп, Программирование, С++, указателиПривет!
Сегодня мы публикуем перевод интересного исследования о работе с памятью и указателями в C++. Материал немного академический, но явно будет небезынтересен читателям книг Галовица и Уильямса.
Следите за рекламой!
Читать полностью »
Работаем с коботом Dobot M1
2019-09-13 в 21:41, admin, рубрики: c++, dobotm1, qt, коботы, Разработка робототехники, роботыГод назад на Хабре выходил обзор настольного робота Dobot Magician. В этой статье я предлагаю оценить его старшего брата Dobot M1 в действии. Также я попытаюсь объяснить, почему для своего проекта выбрал именно данную модель, опишу процесс разработки демки в Qt/c++, а также некоторые неприятные моменты, с которыми столкнулся в процессе разработки.
Читать полностью »
Умные алгоритмы обработки строк в ClickHouse
2019-09-12 в 9:32, admin, рубрики: big data, c++, clickhouse, open source, Алгоритмы, Блог компании Яндекс, Серверное администрирование, строкиВ ClickHouse постоянно возникают задачи, связанные с обработкой строк. Например, поиск, вычисление свойств UTF-8 строк или что-то более экзотическое, будь то поиск типа учёта регистра или поиск по сжатым данным.
Всё началось с того, что руководитель разработки ClickHouse Лёша Миловидов o6CuFl2Q пришёл к нам на факультет компьютерных наук в НИУ ВШЭ и предложил огромное количество тем для курсовых и дипломов. Когда я увидел «Умные алгоритмы обработки строк в ClickHouse» (я, человек, который увлекается разными алгоритмами, в том числе экспериментальными), сразу же настроил планов, как сделаю самый крутой диплом. Мою радость и выражение лица можно описать следующей картинкой:

О новых стандартах C++
2019-09-11 в 12:18, admin, рубрики: c++, верните мне мой 2007-й, ПрограммированиеСегодня у меня довольно короткий пост. Я бы его и не писал, наверное, но на Хабре в комментах довольно часто можно встретить мнение, что плюсы становятся хуже, комитет делает непонятно что непонятно зачем, и вообще верните мне мой 2007-й. А тут такой наглядный пример вдруг попался.
Почти ровно пять лет назад я писал о том, как на C++ сделать каррирование. Ну, чтобы если можно написать foo(bar, baz, quux), то можно было бы писать и Curry(foo)(bar)(baz)(quux). Тогда C++14 только вышел и еле-еле поддерживался компиляторами, так что код использовал только C++11-фишки (плюс пара костылей для симуляции библиотечных функций из C++14).
А тут я что-то на этот код снова наткнулся, и мне прямо резануло глаза, насколько он многословный. Плюс ещё и календарь не так давно переворачивал и заметил, что сейчас уже 2019-й год, и можно посмотреть, как C++17 может облегчить нашу жизнь.
Посмотрим?
