def determinant_by_elimination_old
      m = dup
      inv, k = m.left_eliminate!
      s = ground.unity
      (0...size).each do |i|
        s *= m[i, i]
      end
      s / k
    end
def determinant_by_elimination_old
      m = dup
      inv, k = m.left_eliminate!
      s = ground.unity
      (0...size).each do |i|
        s *= m[i, i]
      end
      s / k
    end
def inverse_euclidian; left_inverse_euclidian; end