multiprecision相关内容
我正在尝试编写一个程序来查找梅森素数.使用 unsigned long long 类型,我能够确定第 9 个梅森素数的值,即 (2^61)-1.对于更大的值,我需要一种可以存储大于 2^64 的整数值的数据类型. 我应该能够使用像 *、*=、>、 和% 使用此数据类型. 解决方案 你不能用 C 原生类型做你想做的事,但是有一些库可以处理任意大的数字,比如 GNU 多精度算术库.
..
我正在模拟物理实验,所以我需要非常高的浮点精度(超过 16 位).我使用 Boost.Multiprecision,但是无论我尝试什么,我都无法获得高于 16 位的精度.我用C++和eclipse编译器运行模拟,例如: #include #include #include #include 使用 boost::mul
..
我正在编写一个函数库,为有符号整数类型 s0128、s0256、s0512、 提供所有常规运算符和函数>s1024 和浮点类型 f0128、f0256、f0512、f1024. 我现在正在编写 s0128、s0256、s0512、s1024 乘法例程,但我写错了令我困惑的结果.我假设我可以用 64 位 imul rcx 指令(在 rdx:rax 中产生 128 位结果)级联乘法,就像我可以做
..
考虑到您要计算 64 位和 128 位无符号数相乘结果的低 128 位,并且您可用的最大乘法是类 C 的 64 位乘法,它需要两个64 位无符号输入并返回结果的低 64 位. 需要多少次乘法? 当然,你可以用八个来做到:将所有输入分成 32 位块,并使用 64 位乘法来执行 4 * 2 = 8 所需的全宽 32*32->64 乘法,但可以一个做得更好? 当然,算法应该只在乘法之上
..
我想在一个long int变量中存储两个32位值. 您将如何在使用C的32位操作系统上执行此操作?是否可以将数据存储在单个long long变量中?如果是这样,那怎么办? 解决方案 假设平台上的long为64位, int v1 = 123;int v2 = 456;long val = v1
..
..
尝试使用Boost的多精度数字有点问题,我遇到了以下错误 在main.cpp包含的文件中:1:在/usr/include/boost/multiprecision/cpp_int.hpp:12中包含的文件中:在/usr/include/boost/multiprecision/number.hpp:16中包含的文件中:在/usr/include/boost/type_traits/is_sign
..
我正在使用 boost :: multiprecision :: uint128_t 类型以便对128位值执行按位运算.但是我在将128位值写到二进制文件时遇到了麻烦.特别是需要用零填充值. 作为一个示例,如果 uint128_t 的值为 0x123456 ,则在十六进制编辑器中查看文件,我需要以下顺序: 56 34 12 00 00 00 00 00 00 00 00 00 00 0
..
您知道如何使用Boost :: multiprecison做到这一段简单的代码而不会出错吗? boost::multiprecision::cpp_int v, uMax, candidate; //... v += 6 * ceil((sqrt(uMax * uMax - candidate) - v) / 6); 使用MSVC时,"sqrt"存在错误,可以通过以下方式对其进行修复:
..
正如 Boost Multiprecision library 文档,可以直接从 boost :: multiprecision :: cpp_int 转换为 boost :: multiprecision :: cpp_dec_float : //数字类型之间的某些互换完全是通用的, //并始终可用,虽然转换总是显式的: cpp_int cppi(2); cpp_dec_fl
..
正如 Boost Multiprecision library 文档,可以直接从 boost :: multiprecision :: cpp_int 转换为 boost :: multiprecision :: cpp_dec_float : //数字类型之间的某些互换完全是通用的, //并始终可用,虽然转换总是显式的: cpp_int cppi(2); cpp_dec_fl
..
正如 Boost Multiprecision library 文档,可以直接从 boost :: multiprecision :: cpp_int 转换为 boost :: multiprecision :: cpp_dec_float : //数字类型之间的某些互换完全是通用的, //并始终可用,虽然转换总是显式的: cpp_int cppi(2); cpp_dec_fl
..
我使用 .str(n,std :: ios_base :: scientific)打印 ccp_dec_float 我注意到它向上舍入。 我使用 cpp_dec_float 为会计,所以我需要向下舍入。如何做到这一点? 解决方案 它不四舍五入。事实上,它确实是银行家的:看到 Live On Coliru #include
..
我想实现在CUDA多precision倍增。对于这样做,我已经实现,应计算 uint32_t的的乘法256位操作数类型,并把结果在288位阵列的内核。到目前为止,我已经想出了这个code: __ device__ __constant__ UN_256fe B_const; __global__无效multiply32x256Kernel(uint32_t的A,UN_288bite *结果){
..
我想写寻找梅森素数的程序。使用无符号long long类型,我能够确定9梅森素数,这是(2 ^ 61)-1的值。为较大的值,我需要,可以存储整数值大于2 ^ 64更大的数据类型。请帮忙。 (我应该能够使用类似的,运营商的=,>,<和%这种数据类型) 解决方案 您不能做你想做的用C当地人的类型,但也有一些让处理任意大的数字,喜欢的
..
我试图使用Boost多precision库C ++生成大量随机数。我一直无法创造这是由时间或其他随机数种子的发电机,所以我的发生器产生在每次运行相同的号码。我如何籽变化的值发电机在每次运行时产生不同的价值观?这里是code这工作,但产生在每次运行相同的值: 使用空间boost ::多precision; 使用空间boost ::随机的; typedef的independent_bits_eng
..
我用
..
我从
..
我使用名为.str(N,性病:: ::的ios_base科学)打印 ccp_dec_float 秒。 我已经注意到,它向上舍入。 我使用 cpp_dec_float 会计,所以我需要向下舍入。如何才能做到这一点? 解决方案 它不圆了。事实上,它确实银行家轮:看到它的 住在Coliru 的#include<升压/多precision / number.hpp> #包括L
..
我使用Boost.Multi precision周围的MPFR后端封装和我有我想要的precision一些麻烦创建PI(和电子或任何其他数学常数)。我觉得我想要做的应该是可能的,因为使用的 Boost.Math常量在的一href=\"http://www.boost.org/doc/libs/1_57_0/libs/multi$p$pcision/doc/html/boost_multi$p$pc
..