Генерация 128-битных распределенных чисел Пуассона в cpp
Я пытаюсь измерить вероятности порядка 1e-25 или даже ниже. Я запускаю код cpp, который, по сути, численно является решателем ODE (с простыми шагами Эйлера). У меня есть длинные длинные целые числа для хранения номеров ячеек (каждый шаг я бросаю кости и обновляю номера ячеек с помощью генератора случайных чисел Мерсенна Твистера с 64-битной точностью, и я выбираю числа из распределения Пуассона с помощью механизма Мерсенна). Пока long int и 64-битный mersenne и poisson dist достаточно только до прибл. 1e19, мне нужна 128-битная точность. Я ищу надежный метод для генерации 128-битных псевдослучайных чисел, а также для их хранения, например uint_128 и т. Д., И генерации, в частности, 128-битных случайных распределенных чисел Пуассона.
Я искал в теме, но не нашел ничего полезного, может быть, я мог бы собрать кусочки вместе, но я не мог...
Заранее спасибо!