Mercurial > octave-nkf
comparison liboctave/util/lo-array-gripes.cc @ 19442:a0c7001cf1a8
consistent messages and IDs for singular matrix warnings
* lo-array-gripes.cc, lo-array-gripes.h (gripe_singular_matrix,
warning_id_nearly_singular_matrix, warning_id_singular_matrix):
New warning function and ID strings.
* inv.cc, sparse-xdiv.cc, xdiv.cc, CMatrix.cc, CSparse.cc, dMatrix.cc,
dSparse.cc, fCMatrix.cc, fMatrix.cc: Use gripe_singular_matrix instead
of individual calls to warning.
* warning_ids.m: Update list of IDs.
* NEWS note change.
author | John W. Eaton <jwe@octave.org> |
---|---|
date | Wed, 17 Dec 2014 21:56:17 -0500 |
parents | 49a5a4be04a1 |
children | 4197fc428c7d |
comparison
equal
deleted
inserted
replaced
19441:86e69f51328d | 19442:a0c7001cf1a8 |
---|---|
31 const char *error_id_nonconformant_args = "Octave:nonconformant-args"; | 31 const char *error_id_nonconformant_args = "Octave:nonconformant-args"; |
32 | 32 |
33 const char *error_id_index_out_of_bounds = "Octave:index-out-of-bounds"; | 33 const char *error_id_index_out_of_bounds = "Octave:index-out-of-bounds"; |
34 | 34 |
35 const char *error_id_invalid_index = "Octave:invalid-index"; | 35 const char *error_id_invalid_index = "Octave:invalid-index"; |
36 | |
37 const char *warning_id_nearly_singular_matrix = "Octave:nearly-singular-matrix"; | |
38 | |
39 const char *warning_id_singular_matrix = "Octave:singular-matrix"; | |
36 | 40 |
37 void | 41 void |
38 gripe_nan_to_logical_conversion (void) | 42 gripe_nan_to_logical_conversion (void) |
39 { | 43 { |
40 (*current_liboctave_error_handler) | 44 (*current_liboctave_error_handler) |
164 { | 168 { |
165 (*current_liboctave_error_handler) | 169 (*current_liboctave_error_handler) |
166 ("A(I,J,...) = X: dimensions mismatch"); | 170 ("A(I,J,...) = X: dimensions mismatch"); |
167 } | 171 } |
168 | 172 |
173 void | |
174 gripe_singular_matrix (double rcond) | |
175 { | |
176 if (rcond == 0.0) | |
177 { | |
178 (*current_liboctave_warning_with_id_handler) | |
179 (warning_id_singular_matrix, | |
180 "matrix singular to machine precision"); | |
181 } | |
182 else | |
183 { | |
184 (*current_liboctave_warning_with_id_handler) | |
185 (warning_id_nearly_singular_matrix, | |
186 "matrix singular to machine precision, rcond = %g", rcond); | |
187 } | |
188 } |