23 #if defined (HAVE_CONFIG_H) 47 else if (! args(1).is_real_scalar ())
51 if (
A.rows () >
A.columns ())
68 classes:
double single
169 int nargin = args.length ();
177 error (
"svd: A must be a 2-D matrix");
189 if (
tmp.any_element_is_inf_or_nan ())
190 error (
"svd: cannot take SVD of matrix containing Inf or NaN values");
195 svd_driver<FloatMatrix> ());
204 result.right_singular_matrix ());
211 error (
"svd: cannot take SVD of matrix containing Inf or NaN values");
216 svd_driver<FloatComplexMatrix> ());
225 result.right_singular_matrix ());
234 if (
tmp.any_element_is_inf_or_nan ())
235 error (
"svd: cannot take SVD of matrix containing Inf or NaN values");
240 svd_driver<Matrix> ());
249 result.right_singular_matrix ());
256 error (
"svd: cannot take SVD of matrix containing Inf or NaN values");
261 svd_driver<ComplexMatrix> ());
270 result.right_singular_matrix ());
411 static const char *driver_names[] = {
"gesvd",
"gesdd",
nullptr };
FloatColumnVector extract_diag(octave_idx_type k=0) const
ColumnVector extract_diag(octave_idx_type k=0) const
OCTINTERP_API void print_usage(void)
#define DEFUN(name, args_name, nargout_name, doc)
Macro to define a builtin function.
void error(const char *fmt,...)
FloatMatrix float_matrix_value(bool frc_str_conv=false) const
bool any_element_is_inf_or_nan(void) const
FloatComplexMatrix float_complex_matrix_value(bool frc_str_conv=false) const
static std::string Vsvd_driver
F77_RET_T const F77_INT F77_CMPLX * A
OCTAVE_EXPORT octave_value_list return the number of command line arguments passed to Octave If called with the optional argument the function xample nargout(@histc)
OCTAVE_EXPORT octave_value_list isfloat
bool is_single_type(void) const
#define SET_INTERNAL_VARIABLE_CHOICES(NM, CHOICES)
bool any_element_is_inf_or_nan(void) const
void err_wrong_type_arg(const char *name, const char *s)
With real return the complex result
OCTAVE_EXPORT octave_value_list isa nd deftypefn *return ovl(args(0).isinteger())
static octave::math::svd< T >::Driver svd_driver(void)
static octave::math::svd< T >::Type svd_type(int nargin, int nargout, const octave_value_list &args, const T &A)
bool iscomplex(void) const
ComplexMatrix complex_matrix_value(bool frc_str_conv=false) const
If this string is the system will ring the terminal sometimes it is useful to be able to print the original representation of the string
Matrix matrix_value(bool frc_str_conv=false) const