Введение.
Любой, кто знаком с современным C++, слышал, что начиная с C++11 в стандарт был введен спецификатор constexpr, с помощью которого можно выполнять ограниченные вычисления во время компиляции.
Последующие стандарты были добавлены если constexpr И constexpr лямбды которые в некоторой степени снимают ограничения и помогают писать код с расчетами времени компиляции.
Сегодня мы поговорим о генерации случайного кода во время компиляции.
Выбор базы для получения «случайных» значений времени компиляции
Чтобы выбрать конкретный путь для кода во время компиляции, вам нужен constexpr ГПСЧ с хорошими выходными данными, для этого я выбрал генератор xorshift , Кстати xorshift проходит эмпирические тесты BigCrush (ТестU01) .xorshift256++
Теги: #C++ #Ассемблер #вычисления во время компиляции#include <stdint.h> /* This is xoshiro256++ 1.0, one of our all-purpose, rock-solid generators. It has excellent (sub-ns) speed, a state (256 bits) that is large enough for any parallel application, and it passes all tests we are aware of. For generating just floating-point numbers, xoshiro256+ is even faster. The state must be seeded so that it is not everywhere zero. If you have a 64-bit seed, we suggest to seed a splitmix64 generator and use its output to fill s. */ static inline uint64_t rotl(const uint64_t x, int k) {
Вместе с данным постом часто просматривают:
-
Расширение Spark С Помощью Mlflow
19 Oct, 24 -
Сравнение Opengl И Direct3D
19 Oct, 24 -
Идея, Подброшенная Фишерами
19 Oct, 24 -
Самодельный Ховерборд
19 Oct, 24 -
Google Планета Земля Дома...
19 Oct, 24