Tag: 数学

在C中,是否保证1/2 == 0?

在C中保证1/2 == 0 ? 我需要它来实现二进制搜索: /* * len is the array length * ary is an array of ptrs * f is a compare function * found is a ptr to the found element in the array * both i and offset are unsigned integers, used as indexes */ for(i = len/2; !found && i […]

在C中获得最小非负残差模n的有效方法是什么?

是否有一种有效的方法可以得到最小的非负残差模n,其中n是正的,在C? 如果数字是非负数,那么这很容易,那么它只是%n(其中a是非负整数)。 但是当a为负数时,C89中的行为似乎是实现定义的(感谢kennyTM)。 即-2%11 = -2或9。

C – 使用pow函数查找负数的立方根

在现实世界中,应该存在负数的立方根: cuberoot(-1)=-1 ,这意味着(-1)*(-1)*(-1)=-1或cuberoot(-27)=-3 ,这意味着(-3)*(-3)*(-3)=-27 但是当我使用pow函数计算C中负数的立方根时,我得到nan (不是数字) double cuber; cuber=pow((-27.),(1./3.)); printf(“cuber=%f\n”,cuber); 输出: cuber=nan 有没有办法计算C中负数的立方根?

将float + INF,-INF和NAN转换为C中的整数的结果是什么?

是否有任何标准规定了输出应该是什么? 例如这段代码: #include #include int main(int argc, char** argv) { float a = INFINITY; float b = -INFINITY; float c = NAN; printf(“float %f %f %f\n”, a, b, c); printf(“int %d %d %d\n”, (int) a, (int) b, (int) c); printf(“uint %u %u %u\n”, (unsigned int) a, (unsigned int) b, (unsigned int) c); printf(“lint %ld %ld […]

如何简化分数

我想在我的应用程序中简化一小部分。 分数类似于x / y,其中x和y是整数。 我想将分数简化为最简单的forms。 任何人都可以给我提示如何做到这一点。 提前致谢。

CPU /编程语言使用哪种取幂算法?

我一直在学习更快的取幂算法(k-ary,滑动门等),并想知道在CPU /编程语言中使用哪些算法? (我对这是否发生在CPU或编译器中都很模糊) 只是为了踢,这是最快的? 关于广度的编辑:它有意广泛,因为我知道有很多不同的技术可以做到这一点。 检查的答案有我想要的。

C数学库与集成?

是否有科学/数学相关的C / C ++编程库,其中包含数学集成的function? 这对于查找累积分布函数等的值可能很有用。符号操作是理想的但不是必需的。 谢谢! PS我看过GSL,但它不包含特定于集成的function。

如何在内核源文件中包含math.h #include ?

我想在我的Linux内核模块中包含math.h。 如果我用, #include ‘/usr/include/math.h’ 它给我以下错误: error: features.h: No such file or directory error: bits/huge_val.h: No such file or directory error: bits/mathdef.h: No such file or directory error: bits/mathcalls.h: No such file or directory 为什么是这样?

互补错误函数erfcf()的可矢量化实现

互补误差函数erfc是与标准正态分布密切相关的特殊函数。 它经常用于统计学和自然科学(例如扩散问题),其中需要考虑这种分布的“尾部”,因此使用误差函数erf是不合适的。 补充误差函数在ISO C99标准数学库中可用作函数erfcf , erfc和erfcl ; 这些随后也被采用到ISO C ++中。 因此,源代码可以很容易地在该库的开源实现中找到,例如在glibc中 。 然而,许多现有的实现本质上是标量的,而现代处理器硬件是面向SIMD的(显式地,如在x86 CPU中,或隐含地,如在GPU中)。 出于性能原因,非常需要可矢量化的实现。 这意味着需要避免分支,除非作为选择分配的一部分。 同样,未指示广泛使用表,因为并行查找通常是低效的。 如何构建单精度函数erfcf()的高效矢量化实现? 以ulp为单位测量的准确度应与glibc的标量实现大致相同,其最大误差为3.12575 ulps(通过详尽测试确定)。 可以假设融合乘法加法(FMA)的可用性,因为此时所有主要的处理器架构(CPU和GPU)都提供它。 虽然可以忽略浮点状态标志和errno处理,但应根据ISO C的IEEE 754绑定处理非正规数,无穷大和NaN。

Python和/或C / C ++中的高精度算术?

摘要:哪种Python包或C-Library是高精度算术运算的最佳选择? 我有一些函数可以将小数天( 0.0-0.99999.. )转换为人类0.0-0.99999..格式(小时,分钟,秒;但更重要的是:毫秒,微秒,纳秒)。 转换是通过以下function完成的:(请注意,我还没有实现时区校正) d = lambda x: decimal.Decimal(str(x)) cdef object fractional2hms(double fractional, double timezone): cdef object total, hms, ms_mult cdef int i hms = [0,0,0,0,0,0] ms_mult = (d(3600000000000), d(60000000000), d(1000000000), d(1000000), d(1000), d(1)) # hms = [0,0,0,0,0] total = d(fractional) * d(86400000000000) for i in range(len(ms_mult)): hms[i] = (total – (total % ms_mult[i])) […]