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 }