我试图在AsterixDB中制作一个稀疏的矢量产品,但我对语法感到困惑。
我可以创建稀疏矢量类型,但是如何创建一个可以实现以下伪代码的函数?
use dataverse linalg
create type sparsevec as closed {
ind: [int64],
val: [double]
}
create type densevec as closed {
val: [double]
}
create function prod(densevec v, sparsevec sv) {
return sum( for i in range(len($sv.ind))
return $v.val[$sv.ind[i]] * $sv.val[i] )
}
我的代码中存在明显的Python影响,但我认为这应该是有意义的。