Breeze - DenseVector 的比较给了我一个 BitVector - 这是故意的吗?

Breeze - Comparison of DenseVector gives me a BitVector - is this intentional?

    import breeze.linalg._

    val dm = DenseMatrix(0.0, 5.0, 6.0)

    dm :== 6.0

    val dv = DenseVector(0.0, 5.0, 6.0)

    dv :== 6.0       

给我

dm: breeze.linalg.DenseMatrix[Double] =
0.0
5.0
6.0

res0: breeze.linalg.DenseMatrix[Boolean] =
false
false
true

dv: breeze.linalg.DenseVector[Double] = DenseVector(0.0, 5.0, 6.0)

res1: breeze.linalg.BitVector = BitVector(2)

我期待一个 DenseVector[Boolean] 错误的 错误的 真

这是故意构造的吗?有人可以为我解释一下吗?我发现它很混乱!

您可以通过(dv :== 6.0).toDeseVector获得DenseVector

我不确定这种不对称的原因,我想作者可能更关心 DenseVector 情况下的性能。参见 DenseVector source vs DenseMatrix source