whole_func_string: function (A) {
      var AT = numeric.transpose(A);
      return numeric.dot(numeric.inv(numeric.dot(AT,A)),AT);
  }
func_code_string: function (A) {
      var AT = numeric.transpose(A);
      return numeric.dot(numeric.inv(numeric.dot(AT,A)),AT);
  }
func_documentation_string: pinv_direct computes the left pseudo-inverse