add support for solving with sparse right hand side
Merged local branch with main trunk