Mercurial > octave
comparison src/DLD-FUNCTIONS/chol.cc @ 3243:dd00769643ae
[project @ 1999-05-28 04:19:00 by jwe]
author | jwe |
---|---|
date | Fri, 28 May 1999 04:19:24 +0000 |
parents | 38de16594cb4 |
children | 7f8827f4040a |
comparison
equal
deleted
inserted
replaced
3242:8c5ad0b49742 | 3243:dd00769643ae |
---|---|
32 #include "gripes.h" | 32 #include "gripes.h" |
33 #include "oct-obj.h" | 33 #include "oct-obj.h" |
34 #include "utils.h" | 34 #include "utils.h" |
35 | 35 |
36 DEFUN_DLD (chol, args, nargout, | 36 DEFUN_DLD (chol, args, nargout, |
37 "R = chol (X): cholesky factorization") | 37 "[R, p] = chol (X): cholesky factorization") |
38 { | 38 { |
39 octave_value_list retval; | 39 octave_value_list retval; |
40 | 40 |
41 int nargin = args.length (); | 41 int nargin = args.length (); |
42 | 42 |
43 if (nargin != 1 || nargout > 1) | 43 if (nargin != 1 || nargout > 2) |
44 { | 44 { |
45 print_usage ("chol"); | 45 print_usage ("chol"); |
46 return retval; | 46 return retval; |
47 } | 47 } |
48 | 48 |
67 int info; | 67 int info; |
68 CHOL fact (m, info); | 68 CHOL fact (m, info); |
69 if (info != 0) | 69 if (info != 0) |
70 error ("chol: matrix not positive definite"); | 70 error ("chol: matrix not positive definite"); |
71 else | 71 else |
72 retval = fact.chol_matrix (); | 72 { |
73 retval(1) = static_cast<double> (info); | |
74 retval(0) = fact.chol_matrix (); | |
75 } | |
73 } | 76 } |
74 } | 77 } |
75 else if (arg.is_complex_type ()) | 78 else if (arg.is_complex_type ()) |
76 { | 79 { |
77 ComplexMatrix m = arg.complex_matrix_value (); | 80 ComplexMatrix m = arg.complex_matrix_value (); |
81 int info; | 84 int info; |
82 ComplexCHOL fact (m, info); | 85 ComplexCHOL fact (m, info); |
83 if (info != 0) | 86 if (info != 0) |
84 error ("chol: matrix not positive definite"); | 87 error ("chol: matrix not positive definite"); |
85 else | 88 else |
86 retval = fact.chol_matrix (); | 89 { |
90 retval(1) = static_cast<double> (info); | |
91 retval(0) = fact.chol_matrix (); | |
92 } | |
87 } | 93 } |
88 } | 94 } |
89 else | 95 else |
90 { | 96 { |
91 gripe_wrong_type_arg ("chol", arg); | 97 gripe_wrong_type_arg ("chol", arg); |