Removing these two specialized implementations would significantly reduce complexity in the dimod implementation.
Ideally we'd move to one BQM implemenation, something like
bqm = dimod.BQM(linear, quadratic, offset, vartype, backend='vector') # C++ AdjVector version
bqm = dimod.BQM(linear, quadratic, offset, vartype, backend='dict') # python version
Removing these two specialized implementations would significantly reduce complexity in the dimod implementation.
Ideally we'd move to one BQM implemenation, something like