GNU Octave  4.4.1
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::stringname (void) const
 
const jit_functionoverload (const signature_vec &types) const
 
template<typename ... Args>
const jit_functionoverload (signature_vec &args, jit_type *arg1, Args... other_args) const
 
template<typename ... Args>
const jit_functionoverload (jit_type *arg1, Args... other_args) const
 
jit_typeresult (const signature_vec &types) const
 
template<typename ... Args>
jit_typeresult (signature_vec &args, jit_type *arg1, Args... other_args) const
 
template<typename ... Args>
jit_typeresult (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 350 of file jit-typeinfo.h.

Member Typedef Documentation

◆ generated_map

◆ signature_vec

Constructor & Destructor Documentation

◆ jit_operation()

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

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

◆ ~jit_operation()

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

Definition at line 805 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 901 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 919 of file jit-typeinfo.cc.

Referenced by do_generate().

◆ name()

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

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

◆ overload() [1/3]

◆ overload() [2/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 373 of file jit-typeinfo.h.

◆ overload() [3/3]

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

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

◆ result() [1/3]

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

Definition at line 389 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 ( signature_vec args,
jit_type arg1,
Args...  other_args 
) const
inline

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

◆ result() [3/3]

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

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

◆ stash_name()

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

Definition at line 414 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 878 of file jit-typeinfo.cc.

References i, max(), and numel().

Member Data Documentation

◆ m_generated

generated_map octave::jit_operation::m_generated
mutableprivate

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

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

◆ m_name

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

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

◆ m_overloads

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

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


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