小编Any*_*orn的帖子

人口数量在两个职位之间

我正在寻找一种在两个位置之间的bitstring中查找pop计数的解决方案,例如:

popcnt( 10(0101), 0, 3) = 1
popcnt( 100101(), 0, 0) = 0
popcnt( 10010(1), 0, 1) = 0
Run Code Online (Sandbox Code Playgroud)

**我假设开放范围并假设从右到左的顺序

使用标准位运算符以及可能的popcnt或等效运算符.

如果它有所不同,我希望找到两个字符串的差异之间的popcnt.让我说我有字符串b,我在两个位置交换位,例如0101110 -> 1101100 => 3- 我需要改变位之间的popcnt - 在两者之间的位的情况下,所以popcnt是30101110 -> 110110010110

你有没有看到一些巧妙的方法来做bithacks?

c algorithm performance bit-manipulation bioinformatics

2
推荐指数
1
解决办法
150
查看次数

OpenMP,taskwait意味着冲洗

问题很简单:是omp taskwait暗示flush还是必须明确?

我通过描述看了但是找不到明确的答案

openmp

2
推荐指数
1
解决办法
79
查看次数

多项式评估准确性,乘法与除法

让我们说我有x中的多项式除以x的幂:

p = (a + x(b + x(c + ..)))/(x**n)
Run Code Online (Sandbox Code Playgroud)

除了效率,这将是更准确的数值计算,上面或使用除法:

p = (((a/x + b)/x + c)/x + ...)
Run Code Online (Sandbox Code Playgroud)

谢谢

algorithm floating-accuracy numerical-analysis

1
推荐指数
1
解决办法
449
查看次数

有效的循环崩溃

在某些应用程序中,我需要将嵌套循环折叠成一个,同时保留单个索引信息.

for j in N:
  for i in M:
    ... A(i,j) ...

// Collapse the loops
for ij in MN:
  ... A(i,j) ...
Run Code Online (Sandbox Code Playgroud)

所以看了很明显的方法来恢复i,j从ij使用除法/模(昂贵的操作)和使用if语句(打破矢量化,分支预测问题).最后我提出了以下(使用C风格的比较) ):

j += (i == m)
i *= (i != m)
++i, ++ij
Run Code Online (Sandbox Code Playgroud)

有没有更好的方法呢?谢谢

language-agnostic algorithm performance loops collapse

1
推荐指数
1
解决办法
1143
查看次数

*(c ++)运营商订单

解析此表达式时适用哪些优先规则:

*(c++);  // c is a pointer.
Run Code Online (Sandbox Code Playgroud)

谢谢.

好吧,我尝试了以下内容

x = *c; c++;
x = (*c++);
x = *(c++);
Run Code Online (Sandbox Code Playgroud)

它们似乎是等价的

c++ operators

1
推荐指数
2
解决办法
383
查看次数

C++将隐式构造限制为特定值

假设:

struct P {
    P(int v);
};

int v;
P p = 0; // allow
P q = v; // Fail at compile time
Run Code Online (Sandbox Code Playgroud)

怎么能实现呢?任何模板技巧?

我正在尝试编写具有特殊指针属性的allocator.不幸的是,std实现使用从int到NULL指针的隐式转换:

{ return __n != 0 ? _M_impl.allocate(__n) : 0; }
Run Code Online (Sandbox Code Playgroud)

我的指针实现:http: //code.google.com/p/asadchev/source/browse/trunk/projects/boost/cuda/mapped_ptr.hpp

我的分配器实现:http: //code.google.com/p/asadchev/source/browse/trunk/projects/boost/cuda/allocator.hpp

我想使用原始指针强制显式构造,以避免令人讨厌的问题.

c++ templates constructor

1
推荐指数
1
解决办法
166
查看次数

Emacs,C宏反斜杠停止

我试图弄清楚如何将C定义宏中的反斜杠缩进到某些列.默认值是缩进到72列最大值,但我也需要缩进到76和80​​列.

那个变量是什么?

c emacs indentation

1
推荐指数
1
解决办法
406
查看次数

Python,扩展/添加字段到元组

什么是完成以下任务的最佳方式,是子类化元组还是其他一些技巧?

region = ( "buffer", "region" )  
region.cmd = ( "kill", "mark" )
Run Code Online (Sandbox Code Playgroud)

python

1
推荐指数
1
解决办法
3813
查看次数

SSE,交错低字和高字

是否有单个 SSE指令将两个寄存器的高字和低字交错到另一个寄存器中?例如:

r[63-0]   = a[64-127]
r[64-127] = b[63-0]
Run Code Online (Sandbox Code Playgroud)

performance x86 assembly sse

1
推荐指数
1
解决办法
628
查看次数

C++标准问题

如果以下结果导致未定义的行为?

应该指针2的值为NULL吗?

double *pointer = 0;
double &value = *pointer;
double *pointer2 = &value;
Run Code Online (Sandbox Code Playgroud)

c++

0
推荐指数
1
解决办法
168
查看次数

0
推荐指数
1
解决办法
1624
查看次数