comparison libinterp/octave-value/ov-range.cc @ 28634:e057dbd3c108

use m_ prefix for octave_range member variables * ov-range.h, ov-range.cc (class octave_range): Use m_ prefix for range and idx_cache member variables. Change all uses.
author John W. Eaton <jwe@octave.org>
date Tue, 04 Aug 2020 10:56:14 -0400
parents 70cdf8de553d
children a3db48e66ef8
comparison
equal deleted inserted replaced
28633:c897ec8fb5d1 28634:e057dbd3c108
83 octave_base_value * 83 octave_base_value *
84 octave_range::try_narrowing_conversion (void) 84 octave_range::try_narrowing_conversion (void)
85 { 85 {
86 octave_base_value *retval = nullptr; 86 octave_base_value *retval = nullptr;
87 87
88 switch (range.numel ()) 88 switch (m_range.numel ())
89 { 89 {
90 case 1: 90 case 1:
91 retval = new octave_scalar (range.base ()); 91 retval = new octave_scalar (m_range.base ());
92 break; 92 break;
93 93
94 case 0: 94 case 0:
95 retval = new octave_matrix (Matrix (1, 0)); 95 retval = new octave_matrix (Matrix (1, 0));
96 break; 96 break;
97 97
98 case -2: 98 case -2:
99 retval = new octave_matrix (range.matrix_value ()); 99 retval = new octave_matrix (m_range.matrix_value ());
100 break; 100 break;
101 101
102 default: 102 default:
103 break; 103 break;
104 } 104 }
144 144
145 try 145 try
146 { 146 {
147 idx_vector i = idx(0).index_vector (); 147 idx_vector i = idx(0).index_vector ();
148 148
149 if (i.is_scalar () && i(0) < range.numel ()) 149 if (i.is_scalar () && i(0) < m_range.numel ())
150 retval = range.elem (i(0)); 150 retval = m_range.elem (i(0));
151 else 151 else
152 retval = range.index (i); 152 retval = m_range.index (i);
153 } 153 }
154 catch (octave::index_exception& e) 154 catch (octave::index_exception& e)
155 { 155 {
156 // More info may be added later before displaying error. 156 // More info may be added later before displaying error.
157 157
161 161
162 return retval; 162 return retval;
163 } 163 }
164 else 164 else
165 { 165 {
166 octave_value tmp (new octave_matrix (range.matrix_value ())); 166 octave_value tmp (new octave_matrix (m_range.matrix_value ()));
167 167
168 return tmp.index_op (idx, resize_ok); 168 return tmp.index_op (idx, resize_ok);
169 } 169 }
170 } 170 }
171 171
172 idx_vector 172 idx_vector
173 octave_range::index_vector (bool require_integers) const 173 octave_range::index_vector (bool require_integers) const
174 { 174 {
175 if (idx_cache) 175 if (m_idx_cache)
176 return *idx_cache; 176 return *m_idx_cache;
177 else 177 else
178 { 178 {
179 if (require_integers || range.all_elements_are_ints ()) 179 if (require_integers || m_range.all_elements_are_ints ())
180 return set_idx_cache (idx_vector (range)); 180 return set_idx_cache (idx_vector (m_range));
181 else 181 else
182 { 182 {
183 warning_with_id ("Octave:noninteger-range-as-index", 183 warning_with_id ("Octave:noninteger-range-as-index",
184 "non-integer range used as index"); 184 "non-integer range used as index");
185 185
189 } 189 }
190 190
191 double 191 double
192 octave_range::double_value (bool) const 192 octave_range::double_value (bool) const
193 { 193 {
194 octave_idx_type nel = range.numel (); 194 octave_idx_type nel = m_range.numel ();
195 195
196 if (nel == 0) 196 if (nel == 0)
197 err_invalid_conversion ("range", "real scalar"); 197 err_invalid_conversion ("range", "real scalar");
198 198
199 warn_implicit_conversion ("Octave:array-to-scalar", 199 warn_implicit_conversion ("Octave:array-to-scalar",
200 "range", "real scalar"); 200 "range", "real scalar");
201 201
202 return range.base (); 202 return m_range.base ();
203 } 203 }
204 204
205 float 205 float
206 octave_range::float_value (bool) const 206 octave_range::float_value (bool) const
207 { 207 {
208 octave_idx_type nel = range.numel (); 208 octave_idx_type nel = m_range.numel ();
209 209
210 if (nel == 0) 210 if (nel == 0)
211 err_invalid_conversion ("range", "real scalar"); 211 err_invalid_conversion ("range", "real scalar");
212 212
213 warn_implicit_conversion ("Octave:array-to-scalar", 213 warn_implicit_conversion ("Octave:array-to-scalar",
214 "range", "real scalar"); 214 "range", "real scalar");
215 215
216 return range.base (); 216 return m_range.base ();
217 } 217 }
218 218
219 charNDArray 219 charNDArray
220 octave_range::char_array_value (bool) const 220 octave_range::char_array_value (bool) const
221 { 221 {
222 const Matrix matrix = range.matrix_value (); 222 const Matrix matrix = m_range.matrix_value ();
223 charNDArray retval (dims ()); 223 charNDArray retval (dims ());
224 224
225 octave_idx_type nel = numel (); 225 octave_idx_type nel = numel ();
226 226
227 for (octave_idx_type i = 0; i < nel; i++) 227 for (octave_idx_type i = 0; i < nel; i++)
233 octave_value 233 octave_value
234 octave_range::all (int dim) const 234 octave_range::all (int dim) const
235 { 235 {
236 // FIXME: this is a potential waste of memory. 236 // FIXME: this is a potential waste of memory.
237 237
238 Matrix m = range.matrix_value (); 238 Matrix m = m_range.matrix_value ();
239 239
240 return m.all (dim); 240 return m.all (dim);
241 } 241 }
242 242
243 octave_value 243 octave_value
244 octave_range::any (int dim) const 244 octave_range::any (int dim) const
245 { 245 {
246 // FIXME: this is a potential waste of memory. 246 // FIXME: this is a potential waste of memory.
247 247
248 Matrix m = range.matrix_value (); 248 Matrix m = m_range.matrix_value ();
249 249
250 return m.any (dim); 250 return m.any (dim);
251 } 251 }
252 252
253 octave_value 253 octave_value
254 octave_range::diag (octave_idx_type k) const 254 octave_range::diag (octave_idx_type k) const
255 { 255 {
256 return 256 return
257 (k == 0 257 (k == 0
258 ? octave_value (DiagMatrix (DiagArray2<double> (range.matrix_value ()))) 258 ? octave_value (DiagMatrix (DiagArray2<double> (m_range.matrix_value ())))
259 : octave_value (range.diag (k))); 259 : octave_value (m_range.diag (k)));
260 } 260 }
261 261
262 octave_value 262 octave_value
263 octave_range::diag (octave_idx_type m, octave_idx_type n) const 263 octave_range::diag (octave_idx_type m, octave_idx_type n) const
264 { 264 {
265 Matrix mat = range.matrix_value (); 265 Matrix mat = m_range.matrix_value ();
266 266
267 return mat.diag (m, n); 267 return mat.diag (m, n);
268 } 268 }
269 269
270 // Return true if this range has all true elements (non-zero, not NaN/NA). 270 // Return true if this range has all true elements (non-zero, not NaN/NA).
272 bool 272 bool
273 octave_range::is_true (void) const 273 octave_range::is_true (void) const
274 { 274 {
275 bool retval = false; 275 bool retval = false;
276 276
277 if (! range.isempty ()) 277 if (! m_range.isempty ())
278 { 278 {
279 if (dims ().numel () > 1) 279 if (dims ().numel () > 1)
280 warn_array_as_logical (dims ()); 280 warn_array_as_logical (dims ());
281 281
282 Range r = range_value (); 282 Range r = range_value ();
294 294
295 retval = (steps_to_zero != floor (steps_to_zero)); 295 retval = (steps_to_zero != floor (steps_to_zero));
296 */ 296 */
297 297
298 // FIXME: this is a waste of memory. 298 // FIXME: this is a waste of memory.
299 Matrix m ((range.matrix_value ().all ()).all ()); 299 Matrix m ((m_range.matrix_value ().all ()).all ());
300 300
301 retval = ! m.isempty () && m(0, 0) != 0.0; 301 retval = ! m.isempty () && m(0, 0) != 0.0;
302 } 302 }
303 } 303 }
304 304
306 } 306 }
307 307
308 Complex 308 Complex
309 octave_range::complex_value (bool) const 309 octave_range::complex_value (bool) const
310 { 310 {
311 octave_idx_type nel = range.numel (); 311 octave_idx_type nel = m_range.numel ();
312 312
313 if (nel == 0) 313 if (nel == 0)
314 err_invalid_conversion ("range", "complex scalar"); 314 err_invalid_conversion ("range", "complex scalar");
315 315
316 warn_implicit_conversion ("Octave:array-to-scalar", 316 warn_implicit_conversion ("Octave:array-to-scalar",
317 "range", "complex scalar"); 317 "range", "complex scalar");
318 318
319 return Complex (range.base (), 0); 319 return Complex (m_range.base (), 0);
320 } 320 }
321 321
322 FloatComplex 322 FloatComplex
323 octave_range::float_complex_value (bool) const 323 octave_range::float_complex_value (bool) const
324 { 324 {
325 float tmp = lo_ieee_float_nan_value (); 325 float tmp = lo_ieee_float_nan_value ();
326 326
327 FloatComplex retval (tmp, tmp); 327 FloatComplex retval (tmp, tmp);
328 328
329 octave_idx_type nel = range.numel (); 329 octave_idx_type nel = m_range.numel ();
330 330
331 if (nel == 0) 331 if (nel == 0)
332 err_invalid_conversion ("range", "complex scalar"); 332 err_invalid_conversion ("range", "complex scalar");
333 333
334 warn_implicit_conversion ("Octave:array-to-scalar", 334 warn_implicit_conversion ("Octave:array-to-scalar",
335 "range", "complex scalar"); 335 "range", "complex scalar");
336 336
337 retval = range.base (); 337 retval = m_range.base ();
338 338
339 return retval; 339 return retval;
340 } 340 }
341 341
342 boolNDArray 342 boolNDArray
343 octave_range::bool_array_value (bool warn) const 343 octave_range::bool_array_value (bool warn) const
344 { 344 {
345 Matrix m = range.matrix_value (); 345 Matrix m = m_range.matrix_value ();
346 346
347 if (m.any_element_is_nan ()) 347 if (m.any_element_is_nan ())
348 octave::err_nan_to_logical_conversion (); 348 octave::err_nan_to_logical_conversion ();
349 if (warn && m.any_element_not_one_or_zero ()) 349 if (warn && m.any_element_not_one_or_zero ())
350 warn_logical_conversion (); 350 warn_logical_conversion ();
364 } 364 }
365 365
366 octave_value 366 octave_value
367 octave_range::convert_to_str_internal (bool pad, bool force, char type) const 367 octave_range::convert_to_str_internal (bool pad, bool force, char type) const
368 { 368 {
369 octave_value tmp (range.matrix_value ()); 369 octave_value tmp (m_range.matrix_value ());
370 return tmp.convert_to_str (pad, force, type); 370 return tmp.convert_to_str (pad, force, type);
371 } 371 }
372 372
373 octave_value 373 octave_value
374 octave_range::as_double (void) const 374 octave_range::as_double (void) const
375 { 375 {
376 return range; 376 return m_range;
377 } 377 }
378 378
379 octave_value 379 octave_value
380 octave_range::as_single (void) const 380 octave_range::as_single (void) const
381 { 381 {
382 return FloatMatrix (range.matrix_value ()); 382 return FloatMatrix (m_range.matrix_value ());
383 } 383 }
384 384
385 octave_value 385 octave_value
386 octave_range::as_int8 (void) const 386 octave_range::as_int8 (void) const
387 { 387 {
388 return int8NDArray (range.matrix_value ()); 388 return int8NDArray (m_range.matrix_value ());
389 } 389 }
390 390
391 octave_value 391 octave_value
392 octave_range::as_int16 (void) const 392 octave_range::as_int16 (void) const
393 { 393 {
394 return int16NDArray (range.matrix_value ()); 394 return int16NDArray (m_range.matrix_value ());
395 } 395 }
396 396
397 octave_value 397 octave_value
398 octave_range::as_int32 (void) const 398 octave_range::as_int32 (void) const
399 { 399 {
400 return int32NDArray (range.matrix_value ()); 400 return int32NDArray (m_range.matrix_value ());
401 } 401 }
402 402
403 octave_value 403 octave_value
404 octave_range::as_int64 (void) const 404 octave_range::as_int64 (void) const
405 { 405 {
406 return int64NDArray (range.matrix_value ()); 406 return int64NDArray (m_range.matrix_value ());
407 } 407 }
408 408
409 octave_value 409 octave_value
410 octave_range::as_uint8 (void) const 410 octave_range::as_uint8 (void) const
411 { 411 {
412 return uint8NDArray (range.matrix_value ()); 412 return uint8NDArray (m_range.matrix_value ());
413 } 413 }
414 414
415 octave_value 415 octave_value
416 octave_range::as_uint16 (void) const 416 octave_range::as_uint16 (void) const
417 { 417 {
418 return uint16NDArray (range.matrix_value ()); 418 return uint16NDArray (m_range.matrix_value ());
419 } 419 }
420 420
421 octave_value 421 octave_value
422 octave_range::as_uint32 (void) const 422 octave_range::as_uint32 (void) const
423 { 423 {
424 return uint32NDArray (range.matrix_value ()); 424 return uint32NDArray (m_range.matrix_value ());
425 } 425 }
426 426
427 octave_value 427 octave_value
428 octave_range::as_uint64 (void) const 428 octave_range::as_uint64 (void) const
429 { 429 {
430 return uint64NDArray (range.matrix_value ()); 430 return uint64NDArray (m_range.matrix_value ());
431 } 431 }
432 432
433 void 433 void
434 octave_range::print (std::ostream& os, bool pr_as_read_syntax) 434 octave_range::print (std::ostream& os, bool pr_as_read_syntax)
435 { 435 {
438 } 438 }
439 439
440 void 440 void
441 octave_range::print_raw (std::ostream& os, bool pr_as_read_syntax) const 441 octave_range::print_raw (std::ostream& os, bool pr_as_read_syntax) const
442 { 442 {
443 octave_print_internal (os, range, pr_as_read_syntax, 443 octave_print_internal (os, m_range, pr_as_read_syntax,
444 current_print_indent_level ()); 444 current_print_indent_level ());
445 } 445 }
446 446
447 bool 447 bool
448 octave_range::print_name_tag (std::ostream& os, const std::string& name) const 448 octave_range::print_name_tag (std::ostream& os, const std::string& name) const
449 { 449 {
450 bool retval = false; 450 bool retval = false;
451 451
452 octave_idx_type n = range.numel (); 452 octave_idx_type n = m_range.numel ();
453 453
454 indent (os); 454 indent (os);
455 455
456 if (n == 0 || n == 1) 456 if (n == 0 || n == 1)
457 os << name << " = "; 457 os << name << " = ";
469 } 469 }
470 470
471 void 471 void
472 octave_range::short_disp (std::ostream& os) const 472 octave_range::short_disp (std::ostream& os) const
473 { 473 {
474 octave_idx_type len = range.numel (); 474 octave_idx_type len = m_range.numel ();
475 475
476 if (len == 0) 476 if (len == 0)
477 os << "[]"; 477 os << "[]";
478 else 478 else
479 { 479 {
480 os << range.base () << ':'; 480 os << m_range.base () << ':';
481 481
482 if (len > 1) 482 if (len > 1)
483 { 483 {
484 if (range.inc () != 1) 484 if (m_range.inc () != 1)
485 os << range.inc () << ':'; 485 os << m_range.inc () << ':';
486 486
487 os << range.limit (); 487 os << m_range.limit ();
488 } 488 }
489 } 489 }
490 } 490 }
491 491
492 // Skip white space and comments on stream IS. 492 // Skip white space and comments on stream IS.
515 std::string 515 std::string
516 octave_range::edit_display (const float_display_format& fmt, 516 octave_range::edit_display (const float_display_format& fmt,
517 octave_idx_type, octave_idx_type j) const 517 octave_idx_type, octave_idx_type j) const
518 { 518 {
519 std::ostringstream buf; 519 std::ostringstream buf;
520 octave_print_internal (buf, fmt, range.elem (j)); 520 octave_print_internal (buf, fmt, m_range.elem (j));
521 return buf.str (); 521 return buf.str ();
522 } 522 }
523 523
524 bool 524 bool
525 octave_range::save_ascii (std::ostream& os) 525 octave_range::save_ascii (std::ostream& os)
559 559
560 if (! is) 560 if (! is)
561 error ("load: failed to load range constant"); 561 error ("load: failed to load range constant");
562 562
563 if (inc != 0) 563 if (inc != 0)
564 range = Range (base, limit, inc); 564 m_range = Range (base, limit, inc);
565 else 565 else
566 range = Range (base, inc, static_cast<octave_idx_type> (limit)); 566 m_range = Range (base, inc, static_cast<octave_idx_type> (limit));
567 567
568 return true; 568 return true;
569 } 569 }
570 570
571 bool 571 bool
606 if (! is.read (reinterpret_cast<char *> (&inc), 8)) 606 if (! is.read (reinterpret_cast<char *> (&inc), 8))
607 return false; 607 return false;
608 if (swap) 608 if (swap)
609 swap_bytes<8> (&inc); 609 swap_bytes<8> (&inc);
610 if (inc != 0) 610 if (inc != 0)
611 range = Range (bas, lim, inc); 611 m_range = Range (bas, lim, inc);
612 else 612 else
613 range = Range (bas, inc, static_cast<octave_idx_type> (lim)); 613 m_range = Range (bas, inc, static_cast<octave_idx_type> (lim));
614 614
615 return true; 615 return true;
616 } 616 }
617 617
618 #if defined (HAVE_HDF5) 618 #if defined (HAVE_HDF5)
743 { 743 {
744 retval = true; 744 retval = true;
745 octave_idx_type nel; 745 octave_idx_type nel;
746 if (hdf5_get_scalar_attr (data_hid, H5T_NATIVE_IDX, 746 if (hdf5_get_scalar_attr (data_hid, H5T_NATIVE_IDX,
747 "OCTAVE_RANGE_NELEM", &nel)) 747 "OCTAVE_RANGE_NELEM", &nel))
748 range = Range (rangevals[0], rangevals[2], nel); 748 m_range = Range (rangevals[0], rangevals[2], nel);
749 else 749 else
750 { 750 {
751 if (rangevals[2] != 0) 751 if (rangevals[2] != 0)
752 range = Range (rangevals[0], rangevals[1], rangevals[2]); 752 m_range = Range (rangevals[0], rangevals[1], rangevals[2]);
753 else 753 else
754 range = Range (rangevals[0], rangevals[2], 754 m_range = Range (rangevals[0], rangevals[2],
755 static_cast<octave_idx_type> (rangevals[1])); 755 static_cast<octave_idx_type> (rangevals[1]));
756 } 756 }
757 } 757 }
758 758
759 H5Tclose (range_type); 759 H5Tclose (range_type);
790 } 790 }
791 791
792 octave_value 792 octave_value
793 octave_range::fast_elem_extract (octave_idx_type n) const 793 octave_range::fast_elem_extract (octave_idx_type n) const
794 { 794 {
795 return (n < range.numel ()) ? octave_value (range.elem (n)) 795 return (n < m_range.numel ()
796 : octave_value (); 796 ? octave_value (m_range.elem (n)) : octave_value ());
797 } 797 }