Imporved off-diagonal update tactic has been employed and the code has been checked to be right to a large extent.