是否可以在C中访问32位寄存器?如果是的话,怎么样?如果没有,那么有没有办法在C中嵌入汇编代码?顺便说一下,我正在使用MinGW编译器.提前致谢!
我正在编写性能密集型Fortran代码,其核心是无矩阵矩阵乘法子程序mfmult(x,y),它接受输入向量x,并返回输出向量y,如果i = i_ {n -1} i_ {n-2} ... i_2i_1i_0是一个n位二进制数(可能带有前导零),然后
y(i)= sum {x(j):j是i的任何1位否定}
即
y(000) = x(001)+x(010)+x(100)
y(1101) = x(0101)+x(1001)+x(1111) + x(1100) etc.
Run Code Online (Sandbox Code Playgroud)
实现这一目标的有效方法是什么?一个相关的问题是:Fortran中是否存在快速内在的单位否定?我已经看过内在函数和https://rosettacode.org/wiki/Bitwise_operations#Fortran,但是没有单位否定操作,我担心任何手动编码/分支语句都会使事情变得太慢.