我需要在代码的热路径中执行一些整数除法。我已经通过性能分析和周期计数确定了整数除法的成本。我希望有什么我可以做的事情,将部门减少为更便宜的东西。unsigned long compute(unsigned long a, unsigned int n) return a / ((1 << n) + 1);如果我除以2^n,我会用一个右移的n替换div,如果我除以一个常量,我
所以,我试图计算成对向量中特定密钥的概率。向量中的每个特定键都有一个特定的权重,为了计算该密钥的特定概率,我必须将向量中所有键的权重相加在一起,然后再将其除以总数。 double probability(KEY_T key) const int MAX = 0; int size = _valueToWeightMap.size();
{
if
select ((x.am1998-x.am1999)/ ((x.am1998+x.am1999)/2)) as answer from(sum(amount) FILTER(where EXTRACT(YEAR FROM order_date)=1999)) as am1999 from orders) x;
--------