GNU Octave
4.0.0
A high-level interpreted language, primarily intended for numerical computations, mostly compatible with Matlab
|
#include <cassert>
#include <cctype>
#include <cstring>
#include <iomanip>
#include <iostream>
#include <fstream>
#include <sstream>
#include <string>
#include "Array.h"
#include "byte-swap.h"
#include "lo-ieee.h"
#include "lo-mappers.h"
#include "lo-utils.h"
#include "oct-locbuf.h"
#include "quit.h"
#include "singleton-cleanup.h"
#include "str-vec.h"
#include "error.h"
#include "gripes.h"
#include "input.h"
#include "oct-stdstrm.h"
#include "oct-stream.h"
#include "oct-obj.h"
#include "utils.h"
Go to the source code of this file.
Classes | |
class | printf_value_cache |
class | ultimate_element_type< T > |
class | ultimate_element_type< octave_int< T > > |
Macros | |
#define | BEGIN_C_CONVERSION() |
#define | BEGIN_CHAR_CLASS_CONVERSION() |
#define | BEGIN_S_CONVERSION() |
#define | DO_LITERAL_CONVERSION() |
#define | DO_PCT_CONVERSION() |
#define | DO_WHITESPACE_CONVERSION() |
#define | FILL_TABLE_ROW(T, V) |
#define | FINISH_CHARACTER_CONVERSION() |
#define | INSTANTIATE_WRITE(T) |
#define | OCTAVE_SCAN(is, fmt, arg) octave_scan (is, fmt, arg) |
#define | TABLE_ELT(T, U, V, W) conv_fptr_table[oct_data_conv::T][oct_data_conv::U] = convert_and_copy<V, W> |
Typedefs | |
typedef octave_value(* | conv_fptr )(std::list< void * > &input_buf_list, octave_idx_type input_buf_elts, octave_idx_type elts_read, octave_idx_type nr, octave_idx_type nc, bool swap, bool do_float_fmt_conv, bool do_NA_conv, oct_mach_info::float_format from_flt_fmt) |
Functions | |
template<class SRC_T , class DST_T > | |
static octave_value | convert_and_copy (std::list< void * > &input_buf_list, octave_idx_type input_buf_elts, octave_idx_type elts_read, octave_idx_type nr, octave_idx_type nc, bool swap, bool do_float_fmt_conv, bool do_NA_conv, oct_mach_info::float_format from_flt_fmt) |
template<class T , class V > | |
static void | convert_chars (const void *data, void *conv_data, octave_idx_type n_elts) |
template<class T > | |
static bool | convert_data (const T *data, void *conv_data, octave_idx_type n_elts, oct_data_conv::data_type output_type, oct_mach_info::float_format flt_fmt) |
template<class T , class V > | |
static void | convert_ints (const T *data, void *conv_data, octave_idx_type n_elts, bool swap) |
static int | convert_to_valid_int (const octave_value &tc, int &conv_err) |
template<class T > | |
int | do_printf_conv (std::ostream &os, const char *fmt, int nsa, int sa_1, int sa_2, T arg, const std::string &who) |
static size_t | do_printf_string (std::ostream &os, const printf_format_elt *elt, int nsa, int sa_1, int sa_2, const std::string &arg, const std::string &who) |
template<class T > | |
void | do_scanf_conv (std::istream &is, const scanf_format_elt &fmt, T valptr, Matrix &mval, double *data, octave_idx_type &idx, octave_idx_type &conversion_count, octave_idx_type nr, octave_idx_type max_size, bool discard) |
template void | do_scanf_conv (std::istream &, const scanf_format_elt &, double *, Matrix &, double *, octave_idx_type &, octave_idx_type &, octave_idx_type, octave_idx_type, bool) |
static std::string | expand_char_class (const std::string &s) |
static int | get_size (double d, const std::string &who) |
static void | get_size (const Array< double > &size, octave_idx_type &nr, octave_idx_type &nc, bool &one_elt_size_spec, const std::string &who) |
static void | gripe_invalid_file_id (int fid, const std::string &who) |
static bool | is_nan_or_inf (const octave_value &val) |
template<class T > | |
std::istream & | octave_scan (std::istream &is, const scanf_format_elt &fmt, T *valptr) |
template<> | |
std::istream & | octave_scan (std::istream &is, const scanf_format_elt &, char *valptr) |
template<> | |
std::istream & | octave_scan (std::istream &is, const scanf_format_elt &fmt, double *valptr) |
template<class T > | |
std::istream & | octave_scan_1 (std::istream &is, const scanf_format_elt &fmt, T *valptr) |
static bool | ok_for_signed_int_conv (const octave_value &val) |
static bool | ok_for_unsigned_int_conv (const octave_value &val) |
static std::string | switch_to_g_format (const printf_format_elt *elt) |
#define BEGIN_C_CONVERSION | ( | ) |
Definition at line 1335 of file oct-stream.cc.
Referenced by octave_base_stream::do_oscanf(), and octave_base_stream::do_scanf().
#define BEGIN_CHAR_CLASS_CONVERSION | ( | ) |
Definition at line 1403 of file oct-stream.cc.
Referenced by octave_base_stream::do_oscanf(), and octave_base_stream::do_scanf().
#define BEGIN_S_CONVERSION | ( | ) |
Definition at line 1355 of file oct-stream.cc.
Referenced by octave_base_stream::do_oscanf(), and octave_base_stream::do_scanf().
#define DO_LITERAL_CONVERSION | ( | ) |
Definition at line 1290 of file oct-stream.cc.
Referenced by octave_base_stream::do_oscanf(), and octave_base_stream::do_scanf().
#define DO_PCT_CONVERSION | ( | ) |
Definition at line 1317 of file oct-stream.cc.
Referenced by octave_base_stream::do_oscanf(), and octave_base_stream::do_scanf().
#define DO_WHITESPACE_CONVERSION | ( | ) |
Definition at line 1277 of file oct-stream.cc.
Referenced by octave_base_stream::do_oscanf(), and octave_base_stream::do_scanf().
#define FILL_TABLE_ROW | ( | T, | |
V | |||
) |
Definition at line 3245 of file oct-stream.cc.
Referenced by octave_stream::finalize_read().
#define FINISH_CHARACTER_CONVERSION | ( | ) |
Definition at line 1447 of file oct-stream.cc.
Referenced by octave_base_stream::do_scanf().
#define INSTANTIATE_WRITE | ( | T | ) |
Definition at line 3862 of file oct-stream.cc.
#define OCTAVE_SCAN | ( | is, | |
fmt, | |||
arg | |||
) | octave_scan (is, fmt, arg) |
Definition at line 1105 of file oct-stream.cc.
Referenced by octave_base_stream::do_oscanf(), and do_scanf_conv().
#define TABLE_ELT | ( | T, | |
U, | |||
V, | |||
W | |||
) | conv_fptr_table[oct_data_conv::T][oct_data_conv::U] = convert_and_copy<V, W> |
Definition at line 3242 of file oct-stream.cc.
typedef octave_value(* conv_fptr)(std::list< void * > &input_buf_list, octave_idx_type input_buf_elts, octave_idx_type elts_read, octave_idx_type nr, octave_idx_type nc, bool swap, bool do_float_fmt_conv, bool do_NA_conv, oct_mach_info::float_format from_flt_fmt) |
Definition at line 3237 of file oct-stream.cc.
|
static |
Definition at line 3162 of file oct-stream.cc.
References __lo_ieee_is_old_NA(), __lo_ieee_replace_old_NA(), and do_float_format_conversion().
|
static |
Definition at line 3576 of file oct-stream.cc.
References V.
|
static |
Definition at line 3625 of file oct-stream.cc.
References do_double_format_conversion(), do_float_format_conversion(), oct_data_conv::dt_char, oct_data_conv::dt_double, oct_data_conv::dt_int16, oct_data_conv::dt_int32, oct_data_conv::dt_int64, oct_data_conv::dt_int8, oct_data_conv::dt_schar, oct_data_conv::dt_single, oct_data_conv::dt_uchar, oct_data_conv::dt_uint16, oct_data_conv::dt_uint32, oct_data_conv::dt_uint64, oct_data_conv::dt_uint8, oct_mach_info::flt_fmt_ieee_big_endian, oct_mach_info::flt_fmt_ieee_little_endian, and oct_mach_info::words_big_endian().
Referenced by octave_stream::write().
|
static |
Definition at line 3588 of file oct-stream.cc.
References V.
|
static |
Definition at line 62 of file oct-stream.cc.
References octave_value::double_value(), error_state, lo_ieee_isnan, and NINT().
Referenced by octave_stream_list::do_get_file_number(), octave_stream_list::do_get_info(), octave_stream::getl(), octave_stream::gets(), octave_stream::seek(), and octave_stream::skipl().
int do_printf_conv | ( | std::ostream & | os, |
const char * | fmt, | ||
int | nsa, | ||
int | sa_1, | ||
int | sa_2, | ||
T | arg, | ||
const std::string & | who | ||
) |
Definition at line 2367 of file oct-stream.cc.
References error(), and octave_format().
Referenced by octave_base_stream::do_numeric_printf_conv().
|
static |
Definition at line 2395 of file oct-stream.cc.
References arg(), error(), printf_format_elt::flags, printf_format_elt::fw, left, and printf_format_elt::prec.
Referenced by octave_base_stream::do_printf().
void do_scanf_conv | ( | std::istream & | is, |
const scanf_format_elt & | fmt, | ||
T | valptr, | ||
Matrix & | mval, | ||
double * | data, | ||
octave_idx_type & | idx, | ||
octave_idx_type & | conversion_count, | ||
octave_idx_type | nr, | ||
octave_idx_type | max_size, | ||
bool | discard | ||
) |
Definition at line 1243 of file oct-stream.cc.
References Array< T >::fortran_vec(), OCTAVE_SCAN, and Matrix::resize().
Referenced by octave_base_stream::do_scanf().
template void do_scanf_conv | ( | std::istream & | , |
const scanf_format_elt & | , | ||
double * | , | ||
Matrix & | , | ||
double * | , | ||
octave_idx_type & | , | ||
octave_idx_type & | , | ||
octave_idx_type | , | ||
octave_idx_type | , | ||
bool | |||
) |
|
static |
Definition at line 274 of file oct-stream.cc.
Referenced by scanf_format_list::finish_conversion().
Definition at line 91 of file oct-stream.cc.
References error(), lo_ieee_isnan, NINT(), and xisinf().
Referenced by get_size(), octave_stream::read(), and octave_base_stream::scanf().
|
static |
Definition at line 115 of file oct-stream.cc.
References error(), error_state, get_size(), Array< T >::length(), size(), and xisinf().
|
static |
Definition at line 4255 of file oct-stream.cc.
References error().
Referenced by octave_stream_list::do_lookup(), and octave_stream_list::do_remove().
|
static |
Definition at line 2424 of file oct-stream.cc.
References octave_value::is_true(), octave_value::isinf(), and octave_value::isnan().
Referenced by octave_base_stream::do_numeric_printf_conv().
std::istream& octave_scan | ( | std::istream & | is, |
const scanf_format_elt & | fmt, | ||
T * | valptr | ||
) |
Definition at line 1174 of file oct-stream.cc.
References octave_scan_1(), and scanf_format_elt::width.
std::istream& octave_scan | ( | std::istream & | is, |
const scanf_format_elt & | , | ||
char * | valptr | ||
) |
Definition at line 1201 of file oct-stream.cc.
std::istream& octave_scan | ( | std::istream & | is, |
const scanf_format_elt & | fmt, | ||
double * | valptr | ||
) |
Definition at line 1209 of file oct-stream.cc.
References c1, and panic_impossible.
std::istream& octave_scan_1 | ( | std::istream & | is, |
const scanf_format_elt & | fmt, | ||
T * | valptr | ||
) |
Definition at line 1109 of file oct-stream.cc.
References c1, and scanf_format_elt::type.
Referenced by octave_scan().
|
static |
Definition at line 2433 of file oct-stream.cc.
References octave_value::double_value(), octave_value::is_integer_type(), octave_value::is_string(), octave_value::is_uint64_type(), max(), octave_value::uint64_scalar_value(), octave_int< T >::value(), and xround().
Referenced by octave_base_stream::do_numeric_printf_conv().
|
static |
Definition at line 2463 of file oct-stream.cc.
References do_binary_op(), octave_value::double_value(), octave_value::is_integer_type(), octave_value::is_string(), octave_value::is_true(), max(), octave_value::op_ge, and xround().
Referenced by octave_base_stream::do_numeric_printf_conv().
|
static |
Definition at line 2490 of file oct-stream.cc.
References printf_format_elt::text, and printf_format_elt::type.
Referenced by octave_base_stream::do_numeric_printf_conv().