comparison src/data.cc @ 12570:1a93988610a3

Reverse changset cc8ccdfec424. Restore 3-input form of diag().
author Rik <octave@nomad.inbox5.com>
date Sun, 03 Apr 2011 07:00:34 -0700
parents cc8ccdfec424
children bed932910eb9
comparison
equal deleted inserted replaced
12569:6ef23b4a3402 12570:1a93988610a3
1262 if (error_state) 1262 if (error_state)
1263 error ("diag: invalid argument K"); 1263 error ("diag: invalid argument K");
1264 else 1264 else
1265 retval = args(0).diag(k); 1265 retval = args(0).diag(k);
1266 } 1266 }
1267 else if (nargin == 3)
1268 {
1269 octave_value arg0 = args(0);
1270 if (arg0.ndims () == 2 && (args(0).rows () == 1 || args(0).columns () == 1))
1271 {
1272 octave_idx_type m = args(1).int_value (), n = args(2).int_value ();
1273 if (! error_state)
1274 retval = arg0.diag ().resize (dim_vector (m, n));
1275 else
1276 error ("diag: invalid dimensions");
1277 }
1278 else
1279 error ("diag: V must be a vector");
1280 }
1267 else 1281 else
1268 print_usage (); 1282 print_usage ();
1269 1283
1270 return retval; 1284 return retval;
1271 } 1285 }
1302 %!assert(diag (int8([1, 0, 0; 0, 2, 0; 0, 0, 3])), int8([1; 2; 3])); 1316 %!assert(diag (int8([1, 0, 0; 0, 2, 0; 0, 0, 3])), int8([1; 2; 3]));
1303 %!assert(diag (int8([0, 1, 0, 0; 0, 0, 2, 0; 0, 0, 0, 3; 0, 0, 0, 0]), 1), int8([1; 2; 3])); 1317 %!assert(diag (int8([0, 1, 0, 0; 0, 0, 2, 0; 0, 0, 0, 3; 0, 0, 0, 0]), 1), int8([1; 2; 3]));
1304 %!assert(diag (int8([0, 0, 0, 0; 1, 0, 0, 0; 0, 2, 0, 0; 0, 0, 3, 0]), -1), int8([1; 2; 3])); 1318 %!assert(diag (int8([0, 0, 0, 0; 1, 0, 0, 0; 0, 2, 0, 0; 0, 0, 3, 0]), -1), int8([1; 2; 3]));
1305 1319
1306 %!error <Invalid call to diag.*> diag (); 1320 %!error <Invalid call to diag.*> diag ();
1307 %!error <Invalid call to diag.*> diag (ones(3, 1),0,1);
1308 1321
1309 */ 1322 */
1310 1323
1311 DEFUN (prod, args, , 1324 DEFUN (prod, args, ,
1312 "-*- texinfo -*-\n\ 1325 "-*- texinfo -*-\n\