草庐IT

double-elimination

全部标签

c++ - Boost multiprecision 失败,因为 complex 的实现试图在 _Isinf 或 _Isnan 等内部函数中转换为 double

我需要一个类BSD许可的C(++)多精度库,支持复数,所以我尝试了boost。以下代码失败:#include#includeusingnamespaceboost::multiprecision;std::complex(1.0,2.0)/std::complex(1.0,2.0)在VisualStudio2012中出现错误C2440,因为complex的实现试图在_Isinf或_Isnan等内部函数中强制转换为double。这是我的错误吗?我怎样才能解决这个问题?有更好的库吗? 最佳答案 来自C++1126.4/2:Theeffe

c# - 使用 CLI 将 C# double 组传递给 C++ 函数

是的,需要的东西听起来很简单,但事实证明这是一个真正的痛苦。我在C#中有一些GUI代码(注意我以前从未使用过C#但熟悉语法)并且我有C++代码与它交互使用CLI.在C#中,我想创建一个double组,并将其发送到我的C++代码。我使用下面的代码作为传递数组的方式,并且它独立地符合要求。所以我从C#中将一个double[]数组传递给该函数。publicrefclassKernelWrapper{public:staticvoidImageNoiseFilter(System::IntPtrimageData,intimageWidth,intimageHeight,array^value

c++ - 如何在没有 float / double 的情况下生成均匀分布和高斯分布的伪随机数?

我必须在没有任何float/double操作和函数的汇编器上编写伪随机生成器,例如sin/cos、sqrt等。所以我不能用一般的方法来做到这一点。我也有随机数限制:00-0F。我该怎么做?据我了解,我首先需要生成统一编号。我是这样做的:x=(13*x+7)%16;(但它有一个问题-这是有史以来最统一的分布。如果它生成15个数字并且我知道所有这些数字,我可以100%的概率说第16位,因为在16(模块)的周期中没有重复。然后,我需要将这些数字重新生成为高斯分布。我在互联网上找到了这个解决方案,但它不起作用。for(i=0;i我应该用它做什么?(我对概率论一窍不通)我得到gx和gy的输出:U

c++ - 自定义文字适用于 long double 但不适用于 double,并且适用于按值传递但不按引用传递

我正在试验C++自定义文字。当我将类型从longdouble类型更改为double或尝试通过引用传递时,我发现下面的简单函数停止工作很奇怪。起初我认为它与constexpr的使用有关,但事实似乎并非如此,因为如果它不在operator""上,这两种方法都可以正常工作,并且从operator""中删除constexpr不会删除错误。这些是语言设计中经过深思熟虑的决定,还是我的编译器(gcc4.8.2)无法处理的细微差别?//Conversionfunction,worksfinewithbothlongdoubleand//double,andwithorwithoutpassbyref

c++ - 成员引用基类型 'double' 不是结构或 union

我是C++的新手,不知道如何修复错误,非常感谢您的帮助发生错误的部分我试图将半径输入到cirArea[]数组中,但它似乎不起作用。这是我的部分代码:intmain(){Circle*area;doublecirRadius;intnumCircle;cout>numCircle;doublecirArea[numCircle];for(inti=0;i>cirRadius;cirArea[i].setRadius(cirRadius);}}对于setRadius():voidCircle::setRadius(doubler){if(r>=0)radius=r;else{cout所以这

c++ - C++ 标准是否允许在没有开销的情况下实现 std::optional<double>

我刚刚看了cppcon谈论Bloombergdatum,变体类型使用IEEE754格式的冗余来编码存储在datum中的类型。所以我想知道C++标准是否允许实现通过使用相同的技巧更有效地实现std::optional。请注意,这需要有时存储在可选中的double二进制表示与传递给构造函数的double二进制表示不匹配。注意事项:我关心标准是否允许这样做,我知道大多数/所有实现都不会打扰。我知道IEEE754不是标准强制要求的,但它是允许的,并且可以通过实现检查。 最佳答案 标准要求,如果您将值存储在std::optional中,则该值

C++ String to double atof 转换丢失精度?

C++不是我的语言,所以请原谅这个简单的问题。我在从字符串到double的atof转换中失去了精度,有人可以帮忙吗?stringlAmount;stringlSuspendedInt="131663.51";stringlAccruedInterest="0.0";doubledSuspendedInt=atof(lSuspendedInt.c_str());//PROBLEMHERE?doubledAccruedInterest=atof(lAccruedInterest.c_str());doubledTotal=dSuspendedInt+dAccruedInterest;cha

c++ - 从 Boost 线程返回 Double

您好,我有一个应该返回double值的Boost线程。该函数如下所示:voidanalyser::findup(constdoublestartwl,constdoublemax,double&myret){this->data.begin();for(inti=(int)data.size();i>=0;i--){if(this->data[i].lambda>startwl){if(this->data[i].db>=(max-30)){myret=this->data[i+1].lambda;std::cout这个函数被另一个函数调用:voidanalyser::start_fi

c++ - 我使用 long double 的方式有问题吗?

我最近对学习C++编程产生了兴趣,因为我想更深入地了解计算机的工作方式和处理指令的方式。我想我会尝试数据类型,但我真的不明白我的输出发生了什么......#include#includeusingnamespacestd;intmain(){floatfValue=123.456789;cout我期望的输出是这样的:123.45678710937500000000Sizeoffloat:4123.45678900000000000000Sizeofdouble:8123.45678900000000000000Sizeoflongdouble:16这是我的实际输出:123.456787

c++ - 具有大值跨度的 double 组求和 : proper algorithm

我有一个算法,我需要对e-40到e+40范围内的双数求和(很多时间)。数组示例(从实际应用程序中随机转储):-2.06991e-057.58132e-06-3.91367e-067.38921e-07-5.33143e-09-4.13195e-114.01724e-146.03221e-17-4.4202e-206.58873-1.22257-0.06061780.000365082.67599e-070-627.061-59.0485.929850.08858840.000276455-2.02579e-07不言而喻,我知道这会导致舍入效应,我正在努力控制它:最终结果不应该在doub