If we use SA.AlgebraElement with sparse coefficients, it's not going to exploit the mutability of the underlying MOI expression so it will be inefficient.
The advantage of https://github.com/jump-dev/SumOfSquares.jl/pull/355 where we first determine a the basis with _NonZero as coefficient (in which case sparse coefficients is very appropriate) is that we now have a basis where we actually want a dense vector of coefficients.
When the basis is fixed like the sampling basis, it's the same.
So in the Variable.KernelBridge, we should use a dense vector of coefficients and make sure operate!! is called with add_mul on them.
If we use
SA.AlgebraElement
with sparse coefficients, it's not going to exploit the mutability of the underlying MOI expression so it will be inefficient. The advantage of https://github.com/jump-dev/SumOfSquares.jl/pull/355 where we first determine a the basis with_NonZero
as coefficient (in which case sparse coefficients is very appropriate) is that we now have a basis where we actually want a dense vector of coefficients. When the basis is fixed like the sampling basis, it's the same. So in theVariable.KernelBridge
, we should use a dense vector of coefficients and make sureoperate!!
is called withadd_mul
on them.