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

#include "jit-typeinfo.h"

Inheritance diagram for octave::jit_operation:
Collaboration diagram for octave::jit_operation:

Classes

struct  signature_cmp
 

Public Types

typedef std::vector< jit_type * > signature_vec
 

Public Member Functions

 jit_operation (const std::string &aname)
 
virtual ~jit_operation (void)
 
void add_overload (const jit_function &func)
 
void add_overload (const jit_function &func, const signature_vec &args)
 
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

virtual jit_functiongenerate (const signature_vec &types) const
 

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
 

Detailed Description

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

Member Typedef Documentation

◆ generated_map

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

◆ signature_vec

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

Constructor & Destructor Documentation

◆ jit_operation()

octave::jit_operation::jit_operation ( const std::string &  aname)
inline

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

◆ ~jit_operation()

octave::jit_operation::~jit_operation ( void  )
virtual

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

References m_generated.

Member Function Documentation

◆ add_overload() [1/2]

◆ add_overload() [2/2]

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

◆ do_generate()

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

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

References find(), generate(), and m_generated.

◆ generate()

jit_function * octave::jit_operation::generate ( const signature_vec types) const
protectedvirtual

Reimplemented in octave::jit_index_operation.

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

Referenced by do_generate().

◆ name()

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

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
inline

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
inline

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

◆ result() [1/3]

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

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
inline

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
inline

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

◆ stash_name()

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

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
private

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
mutableprivate

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

Referenced by ~jit_operation(), and do_generate().

◆ m_name

std::string octave::jit_operation::m_name
private

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

◆ m_overloads

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

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


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