# File lib/linalg/dmatrix/nullspace.rb, line 42
      def rankspace(epsilon = (self.singleton_class.default_epsilon ||self.class.default_epsilon))
         u, s, vt = self.svd
         v = vt.transpose!
         null_indexes = sv_null_indexes(s.diags, s[0,0]*epsilon)

         if null_indexes.empty?
            v
         else
            orth_indexes = (0...v.hsize).to_a - null_indexes
            orth = DMatrix.reserve(v.vsize, orth_indexes.size)
            orth_indexes.each_with_index { |e, j|
               orth.replace_column(j, v.column(e))
            }
            orth
         end
      end