Mercurial > octave-nkf
comparison src/ov-range.cc @ 11586:12df7854fa7c
strip trailing whitespace from source files
author | John W. Eaton <jwe@octave.org> |
---|---|
date | Thu, 20 Jan 2011 17:24:59 -0500 |
parents | fd0a3ac60b0e |
children | 8f9702abe3e3 |
comparison
equal
deleted
inserted
replaced
11585:1473d0cf86d2 | 11586:12df7854fa7c |
---|---|
211 { | 211 { |
212 const Matrix matrix = range.matrix_value (); | 212 const Matrix matrix = range.matrix_value (); |
213 charNDArray retval (dims ()); | 213 charNDArray retval (dims ()); |
214 | 214 |
215 octave_idx_type nel = numel (); | 215 octave_idx_type nel = numel (); |
216 | 216 |
217 for (octave_idx_type i = 0; i < nel; i++) | 217 for (octave_idx_type i = 0; i < nel; i++) |
218 retval.elem (i) = static_cast<char>(matrix.elem (i)); | 218 retval.elem (i) = static_cast<char>(matrix.elem (i)); |
219 | 219 |
220 return retval; | 220 return retval; |
221 } | 221 } |
222 | 222 |
223 octave_value | 223 octave_value |
224 octave_range::all (int dim) const | 224 octave_range::all (int dim) const |
225 { | 225 { |
226 // FIXME -- this is a potential waste of memory. | 226 // FIXME -- this is a potential waste of memory. |
227 | 227 |
238 Matrix m = range.matrix_value (); | 238 Matrix m = range.matrix_value (); |
239 | 239 |
240 return m.any (dim); | 240 return m.any (dim); |
241 } | 241 } |
242 | 242 |
243 octave_value | 243 octave_value |
244 octave_range::diag (octave_idx_type k) const | 244 octave_range::diag (octave_idx_type k) const |
245 { | 245 { |
246 return (k == 0 | 246 return (k == 0 |
247 ? octave_value (DiagMatrix (DiagArray2<double> (range.matrix_value ()))) | 247 ? octave_value (DiagMatrix (DiagArray2<double> (range.matrix_value ()))) |
248 : octave_value (range.diag (k))); | 248 : octave_value (range.diag (k))); |
249 } | 249 } |
250 | 250 |
251 | 251 |
252 bool | 252 bool |
253 octave_range::is_true (void) const | 253 octave_range::is_true (void) const |
321 gripe_logical_conversion (); | 321 gripe_logical_conversion (); |
322 | 322 |
323 return boolNDArray (m); | 323 return boolNDArray (m); |
324 } | 324 } |
325 | 325 |
326 octave_value | 326 octave_value |
327 octave_range::resize (const dim_vector& dv, bool fill) const | 327 octave_range::resize (const dim_vector& dv, bool fill) const |
328 { | 328 { |
329 NDArray retval = array_value (); | 329 NDArray retval = array_value (); |
330 if (fill) | 330 if (fill) |
331 retval.resize (dv, NDArray::resize_fill_value ()); | 331 retval.resize (dv, NDArray::resize_fill_value ()); |
332 else | 332 else |
333 retval.resize (dv); | 333 retval.resize (dv); |
334 return retval; | 334 return retval; |
335 } | 335 } |
336 | 336 |
337 octave_value | 337 octave_value |
338 octave_range::convert_to_str_internal (bool pad, bool force, char type) const | 338 octave_range::convert_to_str_internal (bool pad, bool force, char type) const |
339 { | 339 { |
371 os << name << " ="; | 371 os << name << " ="; |
372 newline (os); | 372 newline (os); |
373 newline (os); | 373 newline (os); |
374 retval = true; | 374 retval = true; |
375 } | 375 } |
376 | 376 |
377 return retval; | 377 return retval; |
378 } | 378 } |
379 | 379 |
380 // Skip white space and comments on stream IS. | 380 // Skip white space and comments on stream IS. |
381 | 381 |
392 } | 392 } |
393 | 393 |
394 skip_until_newline (is, false); | 394 skip_until_newline (is, false); |
395 } | 395 } |
396 | 396 |
397 bool | 397 bool |
398 octave_range::save_ascii (std::ostream& os) | 398 octave_range::save_ascii (std::ostream& os) |
399 { | 399 { |
400 Range r = range_value (); | 400 Range r = range_value (); |
401 double base = r.base (); | 401 double base = r.base (); |
402 double limit = r.limit (); | 402 double limit = r.limit (); |
419 os << "\n"; | 419 os << "\n"; |
420 | 420 |
421 return true; | 421 return true; |
422 } | 422 } |
423 | 423 |
424 bool | 424 bool |
425 octave_range::load_ascii (std::istream& is) | 425 octave_range::load_ascii (std::istream& is) |
426 { | 426 { |
427 // # base, limit, range comment added by save (). | 427 // # base, limit, range comment added by save (). |
428 skip_comments (is); | 428 skip_comments (is); |
429 | 429 |
442 range = Range (base, inc, static_cast<octave_idx_type> (limit)); | 442 range = Range (base, inc, static_cast<octave_idx_type> (limit)); |
443 | 443 |
444 return true; | 444 return true; |
445 } | 445 } |
446 | 446 |
447 bool | 447 bool |
448 octave_range::save_binary (std::ostream& os, bool& /* save_as_floats */) | 448 octave_range::save_binary (std::ostream& os, bool& /* save_as_floats */) |
449 { | 449 { |
450 char tmp = LS_DOUBLE; | 450 char tmp = LS_DOUBLE; |
451 os.write (reinterpret_cast<char *> (&tmp), 1); | 451 os.write (reinterpret_cast<char *> (&tmp), 1); |
452 Range r = range_value (); | 452 Range r = range_value (); |
461 os.write (reinterpret_cast<char *> (&inc), 8); | 461 os.write (reinterpret_cast<char *> (&inc), 8); |
462 | 462 |
463 return true; | 463 return true; |
464 } | 464 } |
465 | 465 |
466 bool | 466 bool |
467 octave_range::load_binary (std::istream& is, bool swap, | 467 octave_range::load_binary (std::istream& is, bool swap, |
468 oct_mach_info::float_format /* fmt */) | 468 oct_mach_info::float_format /* fmt */) |
469 { | 469 { |
470 char tmp; | 470 char tmp; |
471 if (! is.read (reinterpret_cast<char *> (&tmp), 1)) | 471 if (! is.read (reinterpret_cast<char *> (&tmp), 1)) |
492 } | 492 } |
493 | 493 |
494 #if defined (HAVE_HDF5) | 494 #if defined (HAVE_HDF5) |
495 | 495 |
496 // The following subroutines creates an HDF5 representation of the way | 496 // The following subroutines creates an HDF5 representation of the way |
497 // we will store Octave range types (triplets of floating-point numbers). | 497 // we will store Octave range types (triplets of floating-point numbers). |
498 // NUM_TYPE is the HDF5 numeric type to use for storage (e.g. | 498 // NUM_TYPE is the HDF5 numeric type to use for storage (e.g. |
499 // H5T_NATIVE_DOUBLE to save as 'double'). Note that any necessary | 499 // H5T_NATIVE_DOUBLE to save as 'double'). Note that any necessary |
500 // conversions are handled automatically by HDF5. | 500 // conversions are handled automatically by HDF5. |
501 | 501 |
502 static hid_t | 502 static hid_t |
503 hdf5_make_range_type (hid_t num_type) | 503 hdf5_make_range_type (hid_t num_type) |
504 { | 504 { |
521 | 521 |
522 space_hid = H5Screate_simple (0, dimens, 0); | 522 space_hid = H5Screate_simple (0, dimens, 0); |
523 if (space_hid < 0) return false; | 523 if (space_hid < 0) return false; |
524 | 524 |
525 type_hid = hdf5_make_range_type (H5T_NATIVE_DOUBLE); | 525 type_hid = hdf5_make_range_type (H5T_NATIVE_DOUBLE); |
526 if (type_hid < 0) | 526 if (type_hid < 0) |
527 { | 527 { |
528 H5Sclose (space_hid); | 528 H5Sclose (space_hid); |
529 return false; | 529 return false; |
530 } | 530 } |
531 #if HAVE_HDF5_18 | 531 #if HAVE_HDF5_18 |
532 data_hid = H5Dcreate (loc_id, name, type_hid, space_hid, | 532 data_hid = H5Dcreate (loc_id, name, type_hid, space_hid, |
533 H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); | 533 H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); |
534 #else | 534 #else |
535 data_hid = H5Dcreate (loc_id, name, type_hid, space_hid, H5P_DEFAULT); | 535 data_hid = H5Dcreate (loc_id, name, type_hid, space_hid, H5P_DEFAULT); |
536 #endif | 536 #endif |
537 if (data_hid < 0) | 537 if (data_hid < 0) |
538 { | 538 { |
539 H5Sclose (space_hid); | 539 H5Sclose (space_hid); |
540 H5Tclose (type_hid); | 540 H5Tclose (type_hid); |
541 return false; | 541 return false; |
542 } | 542 } |
543 | 543 |
544 Range r = range_value (); | 544 Range r = range_value (); |
545 double range_vals[3]; | 545 double range_vals[3]; |
546 range_vals[0] = r.base (); | 546 range_vals[0] = r.base (); |
547 range_vals[1] = r.inc () != 0 ? r.limit () : r.nelem (); | 547 range_vals[1] = r.inc () != 0 ? r.limit () : r.nelem (); |
548 range_vals[2] = r.inc (); | 548 range_vals[2] = r.inc (); |
562 H5Sclose (space_hid); | 562 H5Sclose (space_hid); |
563 | 563 |
564 return retval; | 564 return retval; |
565 } | 565 } |
566 | 566 |
567 bool | 567 bool |
568 octave_range::load_hdf5 (hid_t loc_id, const char *name) | 568 octave_range::load_hdf5 (hid_t loc_id, const char *name) |
569 { | 569 { |
570 bool retval = false; | 570 bool retval = false; |
571 | 571 |
572 #if HAVE_HDF5_18 | 572 #if HAVE_HDF5_18 |
595 H5Dclose (data_hid); | 595 H5Dclose (data_hid); |
596 return false; | 596 return false; |
597 } | 597 } |
598 | 598 |
599 double rangevals[3]; | 599 double rangevals[3]; |
600 if (H5Dread (data_hid, range_type, H5S_ALL, H5S_ALL, H5P_DEFAULT, | 600 if (H5Dread (data_hid, range_type, H5S_ALL, H5S_ALL, H5P_DEFAULT, |
601 rangevals) >= 0) | 601 rangevals) >= 0) |
602 { | 602 { |
603 retval = true; | 603 retval = true; |
604 octave_idx_type nel; | 604 octave_idx_type nel; |
605 if (hdf5_get_scalar_attr (data_hid, H5T_NATIVE_IDX, | 605 if (hdf5_get_scalar_attr (data_hid, H5T_NATIVE_IDX, |
606 "OCTAVE_RANGE_NELEM", &nel)) | 606 "OCTAVE_RANGE_NELEM", &nel)) |
607 range = Range (rangevals[0], rangevals[2], nel); | 607 range = Range (rangevals[0], rangevals[2], nel); |
608 else | 608 else |
609 { | 609 { |
610 if (rangevals[2] != 0) | 610 if (rangevals[2] != 0) |
611 range = Range (rangevals[0], rangevals[1], rangevals[2]); | 611 range = Range (rangevals[0], rangevals[1], rangevals[2]); |
612 else | 612 else |
613 range = Range (rangevals[0], rangevals[2], | 613 range = Range (rangevals[0], rangevals[2], |
614 static_cast<octave_idx_type> (rangevals[1])); | 614 static_cast<octave_idx_type> (rangevals[1])); |
615 } | 615 } |
616 } | 616 } |
617 | 617 |
618 H5Tclose (range_type); | 618 H5Tclose (range_type); |