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

#include "jit-typeinfo.h"

Inheritance diagram for octave::jit_paren_subsref:
Collaboration diagram for octave::jit_paren_subsref:

Public Types

typedef std::vector< jit_type * > signature_vec
 

Public Member Functions

 jit_paren_subsref (const jit_typeinfo &ti)
 
 ~jit_paren_subsref (void)
 
void add_overload (const jit_function &func)
 
void add_overload (const jit_function &func, const signature_vec &args)
 
void init_paren_scalar (void)
 
const std::string & name (void) const
 
const jit_functionoverload (const signature_vec &types) const
 
template<typename ... Args>
const jit_functionoverload (jit_type *arg1, Args... other_args) const
 
template<typename ... Args>
const jit_functionoverload (signature_vec &args, jit_type *arg1, Args... other_args) const
 
jit_typeresult (const signature_vec &types) const
 
template<typename ... Args>
jit_typeresult (jit_type *arg1, Args... other_args) const
 
template<typename ... Args>
jit_typeresult (signature_vec &args, jit_type *arg1, Args... other_args) const
 
void stash_name (const std::string &aname)
 

Protected Member Functions

llvm::Value * create_arg_array (llvm::IRBuilderD &builder, const jit_function &fn, size_t start_idx, size_t end_idx) const
 
virtual jit_functiongenerate (const signature_vec &types) const
 
virtual jit_functiongenerate_matrix (const signature_vec &types) const
 

Protected Attributes

const jit_typeinfom_typeinfo
 

Private Types

typedef std::map< const signature_vec *, jit_function *, signature_cmpgenerated_map
 

Private Member Functions

const jit_functiondo_generate (const signature_vec &types) const
 
Array< octave_idx_typeto_idx (const signature_vec &types) const
 

Private Attributes

generated_map m_generated
 
std::string m_name
 
std::vector< Array< jit_function > > m_overloads
 
jit_functionm_paren_scalar
 

Detailed Description

Definition at line 466 of file jit-typeinfo.h.

Member Typedef Documentation

◆ generated_map

typedef std::map<const signature_vec *, jit_function *, signature_cmp> octave::jit_operation::generated_map
privateinherited

Definition at line 433 of file jit-typeinfo.h.

◆ signature_vec

typedef std::vector<jit_type *> octave::jit_operation::signature_vec
inherited

Definition at line 359 of file jit-typeinfo.h.

Constructor & Destructor Documentation

◆ jit_paren_subsref()

octave::jit_paren_subsref::jit_paren_subsref ( const jit_typeinfo ti)

Definition at line 983 of file jit-typeinfo.cc.

◆ ~jit_paren_subsref()

octave::jit_paren_subsref::~jit_paren_subsref ( void  )

Definition at line 987 of file jit-typeinfo.cc.

References m_paren_scalar.

Member Function Documentation

◆ add_overload() [1/2]

void octave::jit_operation::add_overload ( const jit_function func)
inlineinherited

◆ add_overload() [2/2]

void octave::jit_operation::add_overload ( const jit_function func,
const signature_vec args 
)
inherited

◆ create_arg_array()

llvm::Value * octave::jit_index_operation::create_arg_array ( llvm::IRBuilderD builder,
const jit_function fn,
size_t  start_idx,
size_t  end_idx 
) const
protectedinherited

◆ do_generate()

const jit_function & octave::jit_operation::do_generate ( const signature_vec types) const
privateinherited

◆ generate()

jit_function * octave::jit_index_operation::generate ( const signature_vec types) const
protectedvirtualinherited

◆ generate_matrix()

◆ init_paren_scalar()

◆ name()

const std::string& octave::jit_operation::name ( void  ) const
inlineinherited

Definition at line 413 of file jit-typeinfo.h.

◆ overload() [1/3]

◆ overload() [2/3]

template<typename ... Args>
const jit_function& octave::jit_operation::overload ( jit_type arg1,
Args...  other_args 
) const
inlineinherited

Definition at line 382 of file jit-typeinfo.h.

◆ overload() [3/3]

template<typename ... Args>
const jit_function& octave::jit_operation::overload ( signature_vec args,
jit_type arg1,
Args...  other_args 
) const
inlineinherited

Definition at line 374 of file jit-typeinfo.h.

◆ result() [1/3]

jit_type* octave::jit_operation::result ( const signature_vec types) const
inlineinherited

Definition at line 390 of file jit-typeinfo.h.

References octave::jit_function::result().

Referenced by octave::jit_call::infer().

◆ result() [2/3]

template<typename ... Args>
jit_type* octave::jit_operation::result ( jit_type arg1,
Args...  other_args 
) const
inlineinherited

Definition at line 405 of file jit-typeinfo.h.

◆ result() [3/3]

template<typename ... Args>
jit_type* octave::jit_operation::result ( signature_vec args,
jit_type arg1,
Args...  other_args 
) const
inlineinherited

Definition at line 397 of file jit-typeinfo.h.

◆ stash_name()

void octave::jit_operation::stash_name ( const std::string &  aname)
inlineinherited

Definition at line 415 of file jit-typeinfo.h.

◆ to_idx()

Array< octave_idx_type > octave::jit_operation::to_idx ( const signature_vec types) const
privateinherited

Definition at line 873 of file jit-typeinfo.cc.

References max(), and numel().

Member Data Documentation

◆ m_generated

generated_map octave::jit_operation::m_generated
mutableprivateinherited

◆ m_name

std::string octave::jit_operation::m_name
privateinherited

Definition at line 439 of file jit-typeinfo.h.

◆ m_overloads

std::vector<Array<jit_function> > octave::jit_operation::m_overloads
privateinherited

Definition at line 437 of file jit-typeinfo.h.

◆ m_paren_scalar

jit_function* octave::jit_paren_subsref::m_paren_scalar
private

Definition at line 482 of file jit-typeinfo.h.

Referenced by ~jit_paren_subsref(), generate_matrix(), and init_paren_scalar().

◆ m_typeinfo

const jit_typeinfo& octave::jit_index_operation::m_typeinfo
protectedinherited

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