小编use*_*382的帖子

三元载体的快速内积

考虑两个矢量,,大小的Ñ,7 <= Ñ <= 23,这两个仅由-1s,0和1.

我需要一个快速算法来计算AB的内积.

到目前为止,我已经考虑过uint32_t使用以下编码将符号和值存储在单独的s中:

  • 符号0,值0→0
  • 符号0,值1→1
  • 符号1,值1→-1.

我想到的C++实现如下所示:

struct ternary_vector {
    uint32_t sign, value;
};

int inner_product(const ternary_vector & a, const ternary_vector & b) {
    uint32_t psign = a.sign ^ b.sign;
    uint32_t pvalue = a.value & b.value;
    psign &= pvalue;
    pvalue ^= psign;
    return __builtin_popcount(pvalue) - __builtin_popcount(psign);
}
Run Code Online (Sandbox Code Playgroud)

这种方法运行得相当不错,但我不确定是否可以做得更好.对此事的任何评论都非常感谢.

c c++ product vector

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

round()Matlab函数的可微近似

你能否建议对roundMatlab函数进行微分近似?

round函数如下所示:

在此输入图像描述

我想要一个可微分的函数,它与[图中的]类似.

matlab calculus approximation

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

标签 统计

approximation ×1

c ×1

c++ ×1

calculus ×1

matlab ×1

product ×1

vector ×1