Tag: math

C / C ++中的最小二乘回归

如何在C / C ++中实现因子分析的最小二乘回归?

使用矩阵,欧拉角和/或四元数进行旋转表示的优缺点是什么?

矩阵和欧拉角可能受到万向节锁的影响,但是使用一个而不是另一个的其他一些论点呢? 你认为DirectX有什么好感? 你在日常的C ++ / C / DirectX编程中使用了什么?

Linux,Mac OS X和Windows之间的不同数学舍入行为

HI, 我开发了一些混合的C / C ++代码,并进行了一些密集的数值计算。 在Linux和Mac OS XI中编译时,在模拟结束后得到非常相似的结果。 在Windows中,程序也可以编译,但是我得到了非常不同的结果,有时程序似乎不起作用。 我在所有系统中都使用了GNU编译器。 有些朋友建议我添加-frounding-math,现在windows版本似乎工作更稳定,但Linux和Os X,他们的结果,根本不会改变。 您能否推荐其他选项以在Win和Linux / OSX版本之间获得更多一致性? 谢谢 PD我也试过-O0(没有优化)并指定-m32

如何找到模数为100000007的大数的多重化

我们知道1000000007是一个大素数。 如何找到模数为1000000007的两个大数的乘法 例如,如果我想找到78627765 * 67527574 mod 1000000007,我该怎么办呢。 至少如果有人告诉我我会尝试的程序 注意:请告诉我原始数据类型的解决方案,如int,long或long long,提前感谢

融合三角形循环进行并行化,计算子索引

并行化的一种常见技术是将嵌套的for循环融合在一起 for(int i=0; i<n; i++) { for(int j=0; j<n; j++) { 至 for(int x=0; x<n*n; x++) { int i = x/n; int j = x%n; 我想知道我怎么能这样做融合像这样的三角形循环 for(int i=0; i<n; i++) { for(int j=0; j<i+1; j++) { 这具有n*(n+1)/2次迭代。 让我们调用融合迭代x 。 使用二次方程式我得出了这个: for(int x=0; x<(n*(n+1)/2); x++) { int i = (-1 + sqrt(1.0+8.0*x))/2; int j = x […]

如何用12的幂提高双倍值?

我有一个双倍的是: double mydouble = 10; 我想10 ^ 12,所以10 * 10 * 10 * 10 * 10 * 10 * 10 * 10 * 10 * 10 * 10 * 10.我试过了 double newDouble = pow(10, 12); 它在NSLog中返回我: pow=-1.991886 没有多大意义……我认为战俘不是我的朋友吗?

什么是C和C ++中的1LL或2LL?

我正在研究Google Code Jam中的一些解决方案,有些人使用了我以前从未见过的这些东西。 例如, 2LL*r+1LL 2LL和1LL是什么意思? 他们的包括如下所示: #include #include #define _USE_MATH_DEFINES 要么 #include

validationC / C ++签名的右移是特定编译器的算术吗?

根据C / C ++标准(参见此链接) ,C和C ++中的>>运算符不一定是有符号数的算术移位。 由于位向右移位,所以由编译器实现是0(逻辑)还是符号位(算术)移入。 对于为有符号整数实现逻辑右移的编译器,此代码是否会在编译时对ASSERT(fail)起作用? #define COMPILE_TIME_ASSERT(EXP) \ typedef int CompileTimeAssertType##__LINE__[(EXP) ? 1 : -1] #define RIGHT_SHIFT_IS_ARITHMETIC \ ( (((signed int)-1)>>1) == ((signed int)-1) ) // SHR must be arithmetic to use this code COMPILE_TIME_ASSERT( RIGHT_SHIFT_IS_ARITHMETIC );

未定义引用“仅一些math.h”函数

我有一个奇怪的问题。 数学库已添加到我的makefile中。 # include standard C library LDFLAGS += -lc # include standard math library LDFLAGS += -lm 在输出文件(.map)中,我可以看到所有内容都已正确链接: LOAD c:/gnu/powerpc-eabi/3pp.ronetix.powerpc-eabi/bin/../lib/gcc/powerpc-eabi/4.3.3/nof\libgcc.a LOAD c:/gnu/powerpc-eabi/3pp.ronetix.powerpc-eabi/bin/../lib/gcc/powerpc-eabi/4.3.3/../../../../powerpc-eabi/lib/nof\libc.a LOAD c:/gnu/powerpc-eabi/3pp.ronetix.powerpc-eabi/bin/../lib/gcc/powerpc-eabi/4.3.3/../../../../powerpc-eabi/lib/nof\libm.a 当我做 z = pow((double) 2, (double) 3); 它工作正常。 但如果我测试另一个函数,如: double result = asin(x); 我去拿: undefined reference to `asin’ collect2: ld returned 1 exit status 怎么会这样? math.h中提供了pow和asin ,见下文: /* Non reentrant […]

常量表达式的数学函数是否在编译时预先计算?

我倾向于使用常量表达式的数学函数来获得方便性和连贯性(即log(x)/log(2)而不是log(x)/0.3… )。 由于这些函数实际上并不是语言本身的一部分,因此它们都没有在math.h定义(仅声明),是否会在编译时预先计算常量函数,还是在运行时浪费计算?