/// <summary> /// Return N s.t.\ M' * N = 0. /// </summary> /// <returns></returns> public MatrixFixed LeftNullspace() { int k = Rank(); if (k == n_) { Debug.WriteLine("VNL::SVD<T>::LeftNullspace() -- Matrix is full rank." + Convert.ToString(last_tol_)); } return(U_.Extract(U_.Rows, n_ - k, 0, k)); }
/// <summary> /// Return N s.t.\ M * N = 0. /// </summary> /// <param name="required_nullspace_dimension"></param> /// <returns></returns> public MatrixFixed Nullspace(int required_nullspace_dimension) { return(V_.Extract(V_.Rows, required_nullspace_dimension, 0, n_ - required_nullspace_dimension)); }