GNU Octave  4.4.1
A high-level interpreted language, primarily intended for numerical computations, mostly compatible with Matlab
octave::type_info Class Reference

#include "ov-typeinfo.h"

Collaboration diagram for octave::type_info:

Public Types

typedef octave_value(* assign_op_fcn) (octave_base_value &, const octave_value_list &, const octave_base_value &)
 
typedef octave_value(* assignany_op_fcn) (octave_base_value &, const octave_value_list &, const octave_value &)
 
typedef octave_value(* binary_class_op_fcn) (const octave_value &, const octave_value &)
 
typedef octave_value(* binary_op_fcn) (const octave_base_value &, const octave_base_value &)
 
typedef octave_value(* cat_op_fcn) (octave_base_value &, const octave_base_value &, const Array< octave_idx_type > &ra_idx)
 
typedef void(* non_const_unary_op_fcn) (octave_base_value &)
 
typedef octave_value(* unary_class_op_fcn) (const octave_value &)
 
typedef octave_value(* unary_op_fcn) (const octave_base_value &)
 

Public Member Functions

 type_info (int init_tab_sz=16)
 
 type_info (const type_info &)=delete
 
 ~type_info (void)=default
 
octave_scalar_map assign_ops_map (void) const
 
octave_scalar_map assignany_ops_map (void) const
 
octave_scalar_map binary_ops_map (void) const
 
octave_scalar_map compound_binary_ops_map (void) const
 
bool install_assign_op (octave_value::assign_op op, int t_lhs, int t_rhs, assign_op_fcn f)
 
bool install_assignany_op (octave_value::assign_op op, int t_lhs, assignany_op_fcn f)
 
bool install_binary_class_op (octave_value::binary_op op, binary_class_op_fcn f)
 
bool install_binary_class_op (octave_value::compound_binary_op op, binary_class_op_fcn f)
 
bool install_binary_op (octave_value::binary_op op, int t1, int t2, binary_op_fcn f)
 
bool install_binary_op (octave_value::compound_binary_op op, int t_lhs, int t_rhs, binary_op_fcn f)
 
bool install_cat_op (int t1, int t2, cat_op_fcn f)
 
bool install_non_const_unary_op (octave_value::unary_op op, int t, non_const_unary_op_fcn f)
 
bool install_pref_assign_conv (int t_lhs, int t_rhs, int t_result)
 
bool install_unary_class_op (octave_value::unary_op op, unary_class_op_fcn f)
 
bool install_unary_op (octave_value::unary_op op, int t, unary_op_fcn f)
 
bool install_widening_op (int t, int t_result, octave_base_value::type_conv_fcn f)
 
octave_scalar_map installed_type_info (void) const
 
string_vector installed_type_names (void) const
 
assign_op_fcn lookup_assign_op (octave_value::assign_op, int, int)
 
assignany_op_fcn lookup_assignany_op (octave_value::assign_op, int)
 
binary_class_op_fcn lookup_binary_class_op (octave_value::binary_op)
 
binary_class_op_fcn lookup_binary_class_op (octave_value::compound_binary_op)
 
binary_op_fcn lookup_binary_op (octave_value::binary_op, int, int)
 
binary_op_fcn lookup_binary_op (octave_value::compound_binary_op, int, int)
 
cat_op_fcn lookup_cat_op (int, int)
 
non_const_unary_op_fcn lookup_non_const_unary_op (octave_value::unary_op, int)
 
int lookup_pref_assign_conv (int, int)
 
octave_value lookup_type (const std::string &nm)
 
unary_class_op_fcn lookup_unary_class_op (octave_value::unary_op)
 
unary_op_fcn lookup_unary_op (octave_value::unary_op, int)
 
octave_base_value::type_conv_fcn lookup_widening_op (int, int)
 
octave_scalar_map non_const_unary_ops_map (void) const
 
type_infooperator= (const type_info &)=delete
 
bool register_assign_op (octave_value::assign_op, int, int, assign_op_fcn, bool abort_on_duplicate=false)
 
bool register_assignany_op (octave_value::assign_op, int, assignany_op_fcn, bool abort_on_duplicate=false)
 
bool register_binary_class_op (octave_value::binary_op, binary_class_op_fcn, bool abort_on_duplicate=false)
 
bool register_binary_class_op (octave_value::compound_binary_op, binary_class_op_fcn, bool abort_on_duplicate=false)
 
bool register_binary_op (octave_value::binary_op, int, int, binary_op_fcn, bool abort_on_duplicate=false)
 
bool register_binary_op (octave_value::compound_binary_op, int, int, binary_op_fcn, bool abort_on_duplicate=false)
 
bool register_cat_op (int, int, cat_op_fcn, bool abort_on_duplicate=false)
 
bool register_non_const_unary_op (octave_value::unary_op, int, non_const_unary_op_fcn, bool abort_on_duplicate=false)
 
bool register_pref_assign_conv (int, int, int, bool abort_on_duplicate=false)
 
int register_type (const std::string &, const std::string &, const octave_value &, bool abort_on_duplicate=false)
 
bool register_unary_class_op (octave_value::unary_op, unary_class_op_fcn, bool abort_on_duplicate=false)
 
bool register_unary_op (octave_value::unary_op, int, unary_op_fcn, bool abort_on_duplicate=false)
 
bool register_widening_op (int, int, octave_base_value::type_conv_fcn, bool abort_on_duplicate=false)
 
octave_scalar_map unary_ops_map (void) const
 

Private Attributes

Array< void * > assign_ops
 
Array< void * > assignany_ops
 
Array< void * > binary_class_ops
 
Array< void * > binary_ops
 
Array< void * > cat_ops
 
Array< void * > compound_binary_class_ops
 
Array< void * > compound_binary_ops
 
Array< void * > non_const_unary_ops
 
int num_types
 
Array< int > pref_assign_conv
 
Array< std::stringtypes
 
Array< void * > unary_class_ops
 
Array< void * > unary_ops
 
Array< octave_value * > vals
 
Array< void * > widening_ops
 

Detailed Description

Definition at line 39 of file ov-typeinfo.h.

Member Typedef Documentation

◆ assign_op_fcn

typedef octave_value(* octave::type_info::assign_op_fcn) (octave_base_value &, const octave_value_list &, const octave_base_value &)

Definition at line 60 of file ov-typeinfo.h.

◆ assignany_op_fcn

typedef octave_value(* octave::type_info::assignany_op_fcn) (octave_base_value &, const octave_value_list &, const octave_value &)

Definition at line 63 of file ov-typeinfo.h.

◆ binary_class_op_fcn

typedef octave_value(* octave::type_info::binary_class_op_fcn) (const octave_value &, const octave_value &)

Definition at line 50 of file ov-typeinfo.h.

◆ binary_op_fcn

typedef octave_value(* octave::type_info::binary_op_fcn) (const octave_base_value &, const octave_base_value &)

Definition at line 53 of file ov-typeinfo.h.

◆ cat_op_fcn

typedef octave_value(* octave::type_info::cat_op_fcn) (octave_base_value &, const octave_base_value &, const Array< octave_idx_type > &ra_idx)

Definition at line 56 of file ov-typeinfo.h.

◆ non_const_unary_op_fcn

typedef void(* octave::type_info::non_const_unary_op_fcn) (octave_base_value &)

Definition at line 47 of file ov-typeinfo.h.

◆ unary_class_op_fcn

typedef octave_value(* octave::type_info::unary_class_op_fcn) (const octave_value &)

Definition at line 43 of file ov-typeinfo.h.

◆ unary_op_fcn

typedef octave_value(* octave::type_info::unary_op_fcn) (const octave_base_value &)

Definition at line 45 of file ov-typeinfo.h.

Constructor & Destructor Documentation

◆ type_info() [1/2]

octave::type_info::type_info ( int  init_tab_sz = 16)
explicit

Definition at line 64 of file ov-typeinfo.cc.

References install_ops(), and install_types().

◆ type_info() [2/2]

octave::type_info::type_info ( const type_info )
delete

◆ ~type_info()

octave::type_info::~type_info ( void  )
default

Member Function Documentation

◆ assign_ops_map()

octave_scalar_map octave::type_info::assign_ops_map ( void  ) const

◆ assignany_ops_map()

octave_scalar_map octave::type_info::assignany_ops_map ( void  ) const

◆ binary_ops_map()

octave_scalar_map octave::type_info::binary_ops_map ( void  ) const

◆ compound_binary_ops_map()

octave_scalar_map octave::type_info::compound_binary_ops_map ( void  ) const

◆ install_assign_op()

bool octave::type_info::install_assign_op ( octave_value::assign_op  op,
int  t_lhs,
int  t_rhs,
assign_op_fcn  f 
)
inline

Definition at line 123 of file ov-typeinfo.h.

References f, and register_assign_op().

◆ install_assignany_op()

bool octave::type_info::install_assignany_op ( octave_value::assign_op  op,
int  t_lhs,
assignany_op_fcn  f 
)
inline

Definition at line 129 of file ov-typeinfo.h.

References f, and register_assignany_op().

◆ install_binary_class_op() [1/2]

bool octave::type_info::install_binary_class_op ( octave_value::binary_op  op,
binary_class_op_fcn  f 
)
inline

Definition at line 94 of file ov-typeinfo.h.

References f, and register_binary_class_op().

◆ install_binary_class_op() [2/2]

bool octave::type_info::install_binary_class_op ( octave_value::compound_binary_op  op,
binary_class_op_fcn  f 
)
inline

Definition at line 106 of file ov-typeinfo.h.

References f, and register_binary_class_op().

◆ install_binary_op() [1/2]

bool octave::type_info::install_binary_op ( octave_value::binary_op  op,
int  t1,
int  t2,
binary_op_fcn  f 
)
inline

Definition at line 100 of file ov-typeinfo.h.

References f, and register_binary_op().

◆ install_binary_op() [2/2]

bool octave::type_info::install_binary_op ( octave_value::compound_binary_op  op,
int  t_lhs,
int  t_rhs,
binary_op_fcn  f 
)
inline

Definition at line 112 of file ov-typeinfo.h.

References f, and register_binary_op().

◆ install_cat_op()

bool octave::type_info::install_cat_op ( int  t1,
int  t2,
cat_op_fcn  f 
)
inline

Definition at line 118 of file ov-typeinfo.h.

References f, and register_cat_op().

◆ install_non_const_unary_op()

bool octave::type_info::install_non_const_unary_op ( octave_value::unary_op  op,
int  t,
non_const_unary_op_fcn  f 
)
inline

Definition at line 88 of file ov-typeinfo.h.

References f, register_non_const_unary_op(), and t.

◆ install_pref_assign_conv()

bool octave::type_info::install_pref_assign_conv ( int  t_lhs,
int  t_rhs,
int  t_result 
)
inline

Definition at line 135 of file ov-typeinfo.h.

References register_pref_assign_conv().

◆ install_unary_class_op()

bool octave::type_info::install_unary_class_op ( octave_value::unary_op  op,
unary_class_op_fcn  f 
)
inline

Definition at line 77 of file ov-typeinfo.h.

References f, and register_unary_class_op().

◆ install_unary_op()

bool octave::type_info::install_unary_op ( octave_value::unary_op  op,
int  t,
unary_op_fcn  f 
)
inline

Definition at line 83 of file ov-typeinfo.h.

References f, register_unary_op(), and t.

◆ install_widening_op()

bool octave::type_info::install_widening_op ( int  t,
int  t_result,
octave_base_value::type_conv_fcn  f 
)
inline

Definition at line 140 of file ov-typeinfo.h.

References f, register_widening_op(), and t.

◆ installed_type_info()

◆ installed_type_names()

string_vector octave::type_info::installed_type_names ( void  ) const

Definition at line 579 of file ov-typeinfo.cc.

References i, num_types, retval, and types.

Referenced by installed_type_info(), and octave_value_typeinfo::installed_type_names().

◆ lookup_assign_op()

type_info::assign_op_fcn octave::type_info::lookup_assign_op ( octave_value::assign_op  op,
int  t_lhs,
int  t_rhs 
)

◆ lookup_assignany_op()

type_info::assignany_op_fcn octave::type_info::lookup_assignany_op ( octave_value::assign_op  op,
int  t_lhs 
)

◆ lookup_binary_class_op() [1/2]

type_info::binary_class_op_fcn octave::type_info::lookup_binary_class_op ( octave_value::binary_op  op)

◆ lookup_binary_class_op() [2/2]

type_info::binary_class_op_fcn octave::type_info::lookup_binary_class_op ( octave_value::compound_binary_op  op)

Definition at line 529 of file ov-typeinfo.cc.

References Array< T >::checkelem(), compound_binary_class_ops, and f.

◆ lookup_binary_op() [1/2]

type_info::binary_op_fcn octave::type_info::lookup_binary_op ( octave_value::binary_op  op,
int  t1,
int  t2 
)

◆ lookup_binary_op() [2/2]

type_info::binary_op_fcn octave::type_info::lookup_binary_op ( octave_value::compound_binary_op  op,
int  t1,
int  t2 
)

Definition at line 536 of file ov-typeinfo.cc.

References Array< T >::checkelem(), compound_binary_ops, and f.

◆ lookup_cat_op()

type_info::cat_op_fcn octave::type_info::lookup_cat_op ( int  t1,
int  t2 
)

Definition at line 544 of file ov-typeinfo.cc.

References cat_ops, Array< T >::checkelem(), and f.

Referenced by octave_value_typeinfo::lookup_cat_op(), and register_cat_op().

◆ lookup_non_const_unary_op()

◆ lookup_pref_assign_conv()

int octave::type_info::lookup_pref_assign_conv ( int  t_lhs,
int  t_rhs 
)

◆ lookup_type()

octave_value octave::type_info::lookup_type ( const std::string nm)

◆ lookup_unary_class_op()

◆ lookup_unary_op()

type_info::unary_op_fcn octave::type_info::lookup_unary_op ( octave_value::unary_op  op,
int  t 
)

◆ lookup_widening_op()

octave_base_value::type_conv_fcn octave::type_info::lookup_widening_op ( int  t,
int  t_result 
)

◆ non_const_unary_ops_map()

octave_scalar_map octave::type_info::non_const_unary_ops_map ( void  ) const

◆ operator=()

type_info& octave::type_info::operator= ( const type_info )
delete

◆ register_assign_op()

bool octave::type_info::register_assign_op ( octave_value::assign_op  op,
int  t_lhs,
int  t_rhs,
type_info::assign_op_fcn  f,
bool  abort_on_duplicate = false 
)

◆ register_assignany_op()

bool octave::type_info::register_assignany_op ( octave_value::assign_op  op,
int  t_lhs,
type_info::assignany_op_fcn  f,
bool  abort_on_duplicate = false 
)

◆ register_binary_class_op() [1/2]

◆ register_binary_class_op() [2/2]

bool octave::type_info::register_binary_class_op ( octave_value::compound_binary_op  op,
type_info::binary_class_op_fcn  f,
bool  abort_on_duplicate = false 
)

◆ register_binary_op() [1/2]

bool octave::type_info::register_binary_op ( octave_value::binary_op  op,
int  t1,
int  t2,
type_info::binary_op_fcn  f,
bool  abort_on_duplicate = false 
)

◆ register_binary_op() [2/2]

bool octave::type_info::register_binary_op ( octave_value::compound_binary_op  op,
int  t1,
int  t2,
type_info::binary_op_fcn  f,
bool  abort_on_duplicate = false 
)

◆ register_cat_op()

bool octave::type_info::register_cat_op ( int  t1,
int  t2,
type_info::cat_op_fcn  f,
bool  abort_on_duplicate = false 
)

◆ register_non_const_unary_op()

◆ register_pref_assign_conv()

bool octave::type_info::register_pref_assign_conv ( int  t_lhs,
int  t_rhs,
int  t_result,
bool  abort_on_duplicate = false 
)

◆ register_type()

◆ register_unary_class_op()

◆ register_unary_op()

bool octave::type_info::register_unary_op ( octave_value::unary_op  op,
int  t,
unary_op_fcn  f,
bool  abort_on_duplicate = false 
)

◆ register_widening_op()

bool octave::type_info::register_widening_op ( int  t,
int  t_result,
octave_base_value::type_conv_fcn  f,
bool  abort_on_duplicate = false 
)

◆ unary_ops_map()

Member Data Documentation

◆ assign_ops

Array<void *> octave::type_info::assign_ops
private

Definition at line 257 of file ov-typeinfo.h.

Referenced by assign_ops_map(), lookup_assign_op(), register_assign_op(), and register_type().

◆ assignany_ops

Array<void *> octave::type_info::assignany_ops
private

◆ binary_class_ops

Array<void *> octave::type_info::binary_class_ops
private

Definition at line 247 of file ov-typeinfo.h.

Referenced by lookup_binary_class_op(), and register_binary_class_op().

◆ binary_ops

Array<void *> octave::type_info::binary_ops
private

Definition at line 249 of file ov-typeinfo.h.

Referenced by binary_ops_map(), lookup_binary_op(), register_binary_op(), and register_type().

◆ cat_ops

Array<void *> octave::type_info::cat_ops
private

Definition at line 255 of file ov-typeinfo.h.

Referenced by installed_type_info(), lookup_cat_op(), register_cat_op(), and register_type().

◆ compound_binary_class_ops

Array<void *> octave::type_info::compound_binary_class_ops
private

Definition at line 251 of file ov-typeinfo.h.

Referenced by lookup_binary_class_op(), and register_binary_class_op().

◆ compound_binary_ops

Array<void *> octave::type_info::compound_binary_ops
private

◆ non_const_unary_ops

Array<void *> octave::type_info::non_const_unary_ops
private

◆ num_types

◆ pref_assign_conv

Array<int> octave::type_info::pref_assign_conv
private

◆ types

◆ unary_class_ops

Array<void *> octave::type_info::unary_class_ops
private

Definition at line 241 of file ov-typeinfo.h.

Referenced by lookup_unary_class_op(), and register_unary_class_op().

◆ unary_ops

Array<void *> octave::type_info::unary_ops
private

Definition at line 243 of file ov-typeinfo.h.

Referenced by lookup_unary_op(), register_type(), register_unary_op(), and unary_ops_map().

◆ vals

Array<octave_value *> octave::type_info::vals
private

Definition at line 239 of file ov-typeinfo.h.

Referenced by lookup_type(), and register_type().

◆ widening_ops

Array<void *> octave::type_info::widening_ops
private

The documentation for this class was generated from the following files: