草庐IT

double-elimination

全部标签

c++ - 英特尔 AVX : 256-bits version of dot product for double precision floating point variables

英特尔高级vector扩展(AVX)在256位版本(YMM寄存器)中不为double浮点变量提供点积。“为什么?”这个问题在另一个论坛(here)和StackOverflow(here)上得到了非常简短的处理。但我面临的问题是如何以有效的方式用其他AVX指令替换这条缺失的指令?256位版本中的点积适用于单精度浮点变量(referencehere):__m256_mm256_dp_ps(__m256m1,__m256m2,constintmask);我们的想法是为这个缺失的指令找到一个有效的等价物:__m256d_mm256_dp_pd(__m256dm1,__m256dm2,const

c++ - 为什么 printf() 将 float 提升为 double ?

来自上一个question:Ifyouattempttopassafloattoprintf,it'llbepromotedtodoublebeforeprintfreceivesitprintf()是可变参数函数吗?那么可变参数函数是否在传递float参数之前将其提升为double? 最佳答案 是的,可变参数函数的浮点参数被提升为double。draftC99standard6.5.2.2部分函数调用说:[...]andargumentsthathavetypefloatarepromotedtodouble.Theseareca

c++ - float 和 double 的快速乘法/除法 (C/C++)

在我正在编写的软件中,我正在对我的值进行数百万次乘法或除以2(或2的幂)。我真的希望这些值为int这样我就可以访问位移运算符inta=1;intb=a但是,我不能,我必须坚持double。我的问题是:由于有标准的double表示(符号、指数、尾数),有没有办法使用指数来获得2的幂的快速乘法/除法?我什至可以假设位数将是固定的(该软件将在始终具有64位长double的机器上运行)P.S:是的,算法大多只做这些操作。这是瓶颈(它已经是多线程的了)。编辑:还是我完全弄错了,聪明的编译器已经为我优化了?临时结果(用Qt来测量时间,矫枉过正,但我​​不在乎):#include#include#i

c++ - 在 C++ 中以高性能将 double 转换为 char*

我的应用程序需要将double值转换为char*以写入仅接受字符的管道。执行此操作的常用方法是使用sprintf()函数或使用iomanip.h头文件中的ostringstream。事实证明,这两者的表现都非常糟糕。而且我的应用程序需要经常进行这种转换,以至于它成为主要的瓶颈。还有其他功能可以使用吗?我可以使用什么逻辑来编写高效的转换函数?到目前为止,我唯一能想到的就是使用除法和mod操作来获取每个单独的数字,并将这些数字附加到char*以获得整个double值。不过,这似乎不是一个好方法,而且本身的性能可能会很差。提前感谢您的想法。编辑:关于如何使用char*存在一些混淆。char*

c++ - 如何 'cout' double 值的正确小数位数?

我需要帮助来保持double的精度。如果我将文字分配给double,则实际值会被截断。intmain(){doublex=7.40200133400;std::cout对于上面的代码片段,输出是7.402有没有办法防止这种类型的截断?或者有没有办法准确计算double的float?例如,number_of_decimal(x)会给出11,因为输入在运行时是未知的,所以我不能使用setprecision()。我想我应该把我的问题改成:如何在不截断float的情况下将double转换为字符串。即#include#include#includetemplatestd::stringtype_

json.decoder.JSONDecodeError: Expecting property name enclosed in double quotes: line 2 column 1

最近用postman调用接口时候报错json.decoder.JSONDecodeError:Expectingpropertynameenclosedindoublequotes:line2column1(char3)如下图所示:原因:这个json是从微信复制过来粘贴到postman上的,微信粘贴过来的不是标准的json格式解决这个问题最简单的方式是,点击下postman右边的beautify,重新测试okdeftest(request):ifrequest.method=="POST":ifre.search(r"application/json",request.environ.get(

c++ - 将double转换为字符串C++?

这个问题在这里已经有了答案:关闭10年前.PossibleDuplicate:HowdoIconvertadoubleintoastringinC++?我想组合一个字符串和一个double,而g++抛出这个错误:main.cpp:在函数“intmain()”中:main.cpp:40:错误:“constchar[2]”和“double”类型的无效操作数到二进制“operator+”这是引发错误的代码行:storedCorrect[count]="("+c1+","+c2+")";storedCorrect[]是一个字符串数组,c1和c2都是double。有没有办法将c1和c2转换为字符

c++ - 我们通常应该使用浮点字面量来代替更简单的 double 字面值吗?

在C++中(或者可能只有我们的编译器VC8和VC10)3.14是一个double字面值,而3.14f是一个float字面量。现在我有个同事说:Weshouldusefloat-literalsforfloatcalculationsanddouble-literalsfordoublecalculationsasthiscouldhaveanimpactontheprecisionofacalculationwhenconstantsareusedinacalcualtion.具体来说,我认为他的意思是:doubled1,d2;floatf1,f2;...initandstuff...

c++ - 为什么 numeric_limits::min 为 int 返回负值,但为 float/double 返回正值?

为什么numeric_limits::min会为int返回负值,而为例如返回正值float和双倍?#include#includeusingnamespacestd;intmain(){cout::min()::min()::min()输出:int:-2147483648float:1.17549e-38double:2.22507e-308来自cppreference:ReturnstheminimumfinitevaluerepresentablebythenumerictypeT.Forfloating-pointtypeswithdenormalization,minretur

c++ - 如何在 C++ 中将字符串转换为 double 值?

如何在C++中将字符串转换为double值?我想要一个在字符串不是数字时返回0的函数。 最佳答案 参见C++FAQLiteHowdoIconvertastd::stringtoanumber?请参阅C++super常见问题解答HowdoIconvertastd::stringtoanumber?请注意,根据您的要求,您无法区分所有允许的零字符串表示形式和非数字字符串。//therequestedfunction#includedoublestring_to_double(conststd::string&s){std::istrin