GNU Octave
4.2.1
A high-level interpreted language, primarily intended for numerical computations, mostly compatible with Matlab
|
#include <cfloat>
#include <csetjmp>
#include <cstdarg>
#include <cstdlib>
#include <cstring>
#include <cctype>
#include <set>
#include "f77-fcn.h"
#include "lo-ieee.h"
#include "oct-locbuf.h"
#include "Cell.h"
#include "call-stack.h"
#include "error.h"
#include "interpreter.h"
#include "mxarray.h"
#include "mexproto.h"
#include "oct-map.h"
#include "ovl.h"
#include "ov.h"
#include "ov-mex-fcn.h"
#include "ov-usr-fcn.h"
#include "pager.h"
#include "parse.h"
#include "unwind-prot.h"
#include "utils.h"
#include "variables.h"
#include "graphics.h"
Go to the source code of this file.
Classes | |
class | mex |
class | mxArray_cell |
class | mxArray_matlab |
class | mxArray_number |
class | mxArray_octave_value |
class | mxArray_sparse |
class | mxArray_struct |
Typedefs | |
typedef void(* | cmex_fptr )(int nlhs, mxArray **plhs, int nrhs, mxArray **prhs) |
typedef F77_RET_T(* | fmex_fptr )(int &nlhs, mxArray **plhs, int &nrhs, mxArray **prhs) |
Variables | |
mex * | mex_context = 0 |
std::map< std::string, int > | mex_lock_count |
|
static |
Definition at line 110 of file mex.cc.
References retval.
Referenced by mxArray_octave_value::calc_single_subscript(), and mxArray_matlab::calc_single_subscript().
octave_value_list call_mex | ( | bool | have_fmex, |
void * | f, | ||
const octave_value_list & | args, | ||
int | nargout_arg, | ||
octave_mex_function * | curr_mex_fcn | ||
) |
Definition at line 3069 of file mex.cc.
References mxArray::as_octave_value(), context, f, fcn, frame, octave_value_list::length(), mex::make_value(), nargin, nargout(), OCTAVE_LOCAL_BUFFER, action_container::protect_var(), octave_value_list::resize(), and retval.
Referenced by octave_mex_function::do_multi_index_op().
Definition at line 2503 of file mex.cc.
References mex::mark_array().
Referenced by mxCreateCellArray(), mxCreateCellMatrix(), mxCreateCharArray(), mxCreateCharMatrixFromStrings(), mxCreateDoubleMatrix(), mxCreateDoubleScalar(), mxCreateLogicalArray(), mxCreateLogicalMatrix(), mxCreateLogicalScalar(), mxCreateNumericArray(), mxCreateNumericMatrix(), mxCreateSparse(), mxCreateSparseLogicalMatrix(), mxCreateString(), mxCreateStructArray(), mxCreateStructMatrix(), mxCreateUninitNumericArray(), mxCreateUninitNumericMatrix(), and mxDuplicateArray().
|
inlinestatic |
Definition at line 2391 of file mex.cc.
References mex::mark_foreign().
Referenced by mxArray_octave_value::get_data(), mxArray_octave_value::get_ir(), and mxArray_octave_value::get_jc().
|
inlinestatic |
Definition at line 2409 of file mex.cc.
References mex::unmark().
Referenced by mexMakeMemoryPersistent(), mxSetData(), mxSetDimensions(), mxSetImagData(), mxSetIr(), mxSetJc(), mxSetPi(), and mxSetPr().
Definition at line 2400 of file mex.cc.
References mex::unmark_array().
Referenced by mexMakeArrayPersistent(), mxArray_cell::set_cell(), and mxArray_struct::set_field_by_number().
int mexAtExit | ( | void(*)(void) | f | ) |
Definition at line 3483 of file mex.cc.
References octave_mex_function::atexit(), mex::current_mex_function(), and f.
int mexCallMATLAB | ( | int | nargout, |
mxArray * | argout[], | ||
int | nargin, | ||
mxArray * | argin[], | ||
const char * | fname | ||
) |
Definition at line 3144 of file mex.cc.
References mxArray::as_octave_value(), feval(), octave_value_list::length(), mex::make_value(), nargin, recover_from_exception(), octave_value_list::resize(), retval, and mex::trap_feval_error.
Referenced by mexCallMATLABWithTrap().
mxArray* mexCallMATLABWithTrap | ( | int | nargout, |
mxArray * | argout[], | ||
int | nargin, | ||
mxArray * | argin[], | ||
const char * | fname | ||
) |
Definition at line 3207 of file mex.cc.
References mexCallMATLAB(), mexSetTrapFlag(), mxCreateCellMatrix(), mxCreateString(), mxCreateStructMatrix(), mxSetFieldByNumber(), string, and mex::trap_feval_error.
void mexErrMsgIdAndTxt | ( | const char * | id, |
const char * | fmt, | ||
... | |||
) |
Definition at line 3314 of file mex.cc.
References error(), fname, mexFunctionName(), OCTAVE_LOCAL_BUFFER, strlen(), and verror_with_id().
void mexErrMsgTxt | ( | const char * | s | ) |
Definition at line 3301 of file mex.cc.
References error(), mexFunctionName(), and strlen().
Referenced by mexGetVariable(), mexPutVariable(), and mxIsFromGlobalWS().
int mexEvalString | ( | const char * | s | ) |
Definition at line 3238 of file mex.cc.
References eval_string(), recover_from_exception(), and retval.
mxArray* mexEvalStringWithTrap | ( | const char * | s | ) |
Definition at line 3265 of file mex.cc.
References eval_string(), mxCreateCellMatrix(), mxCreateString(), mxCreateStructMatrix(), mxSetFieldByNumber(), recover_from_exception(), and string.
const char* mexFunctionName | ( | void | ) |
Definition at line 3138 of file mex.cc.
References mex::function_name().
Referenced by mexErrMsgIdAndTxt(), mexErrMsgTxt(), mexIsLocked(), mexLock(), mexUnlock(), and mexWarnMsgIdAndTxt().
Definition at line 3498 of file mex.cc.
References octave_value::as_mxArray(), get_property_from_handle(), octave_value::is_defined(), and m.
mxArray* mexGetVariable | ( | const char * | space, |
const char * | name | ||
) |
Definition at line 3372 of file mex.cc.
References action_container::add_fcn(), frame, get_global_value(), octave_call_stack::goto_base_frame(), octave_value::is_defined(), mex::make_value(), mexErrMsgTxt(), octave_call_stack::pop(), retval, mxArray::set_name(), octave::string::strcmp(), val, and symbol_table::varval().
Referenced by mexGetVariablePtr().
const mxArray* mexGetVariablePtr | ( | const char * | space, |
const char * | name | ||
) |
Definition at line 3418 of file mex.cc.
References mexGetVariable().
Definition at line 3511 of file mex.cc.
References mxIsFromGlobalWS().
int mexIsLocked | ( | void | ) |
Definition at line 3517 of file mex.cc.
References fname, mexFunctionName(), mislocked(), and retval.
void mexLock | ( | void | ) |
Definition at line 3534 of file mex.cc.
References fname, mexFunctionName(), and mlock().
void mexMakeArrayPersistent | ( | mxArray * | ptr | ) |
Definition at line 3471 of file mex.cc.
References maybe_unmark_array().
void mexMakeMemoryPersistent | ( | void * | ptr | ) |
Definition at line 3477 of file mex.cc.
References maybe_unmark().
int mexPrintf | ( | const char * | fmt, |
... | |||
) |
Definition at line 3361 of file mex.cc.
References octave_stdout, octave_vformat(), and retval.
Definition at line 3424 of file mex.cc.
References action_container::add_fcn(), mxArray::as_octave_value(), symbol_table::assign(), frame, mxArray::get_name(), octave_call_stack::goto_base_frame(), mexErrMsgTxt(), octave_call_stack::pop(), set_global_value(), and octave::string::strcmp().
Definition at line 3550 of file mex.cc.
References mxArray::as_octave_value(), and set_property_in_handle().
void mexSetTrapFlag | ( | int | flag | ) |
Definition at line 3231 of file mex.cc.
References mex::trap_feval_error.
Referenced by mexCallMATLABWithTrap().
void mexUnlock | ( | void | ) |
void mexWarnMsgIdAndTxt | ( | const char * | id, |
const char * | fmt, | ||
... | |||
) |
Definition at line 3342 of file mex.cc.
References fname, mexFunctionName(), OCTAVE_LOCAL_BUFFER, strlen(), and vwarning_with_id().
Definition at line 2983 of file mex.cc.
References mxArray::add_field().
char* mxArrayToString | ( | const mxArray * | ptr | ) |
Definition at line 3045 of file mex.cc.
References mxArray::array_to_string().
Definition at line 3051 of file mex.cc.
References mxArray::calc_single_subscript().
Definition at line 2475 of file mex.cc.
References mex::calloc().
Definition at line 2510 of file mex.cc.
References maybe_mark_array().
Definition at line 2516 of file mex.cc.
References maybe_mark_array().
Referenced by mexCallMATLABWithTrap(), and mexEvalStringWithTrap().
Definition at line 2522 of file mex.cc.
References maybe_mark_array(), and mxCHAR_CLASS.
Definition at line 2528 of file mex.cc.
References maybe_mark_array().
mxArray* mxCreateDoubleMatrix | ( | mwSize | m, |
mwSize | n, | ||
mxComplexity | flag | ||
) |
Definition at line 2534 of file mex.cc.
References maybe_mark_array(), and mxDOUBLE_CLASS.
Definition at line 2540 of file mex.cc.
References maybe_mark_array(), and mxDOUBLE_CLASS.
Definition at line 2546 of file mex.cc.
References maybe_mark_array(), and mxLOGICAL_CLASS.
Definition at line 2552 of file mex.cc.
References maybe_mark_array(), and mxLOGICAL_CLASS.
Definition at line 2558 of file mex.cc.
References maybe_mark_array(), and mxLOGICAL_CLASS.
mxArray* mxCreateNumericArray | ( | mwSize | ndims, |
const mwSize * | dims, | ||
mxClassID | class_id, | ||
mxComplexity | flag | ||
) |
Definition at line 2564 of file mex.cc.
References maybe_mark_array().
mxArray* mxCreateNumericMatrix | ( | mwSize | m, |
mwSize | n, | ||
mxClassID | class_id, | ||
mxComplexity | flag | ||
) |
Definition at line 2571 of file mex.cc.
References maybe_mark_array().
mxArray* mxCreateSparse | ( | mwSize | m, |
mwSize | n, | ||
mwSize | nzmax, | ||
mxComplexity | flag | ||
) |
Definition at line 2592 of file mex.cc.
References maybe_mark_array(), and mxDOUBLE_CLASS.
Definition at line 2598 of file mex.cc.
References maybe_mark_array(), and mxLOGICAL_CLASS.
mxArray* mxCreateString | ( | const char * | str | ) |
Definition at line 2604 of file mex.cc.
References maybe_mark_array().
Referenced by mexCallMATLABWithTrap(), and mexEvalStringWithTrap().
mxArray* mxCreateStructArray | ( | mwSize | ndims, |
const mwSize * | dims, | ||
int | num_keys, | ||
const char ** | keys | ||
) |
Definition at line 2610 of file mex.cc.
References maybe_mark_array().
Definition at line 2617 of file mex.cc.
References maybe_mark_array().
Referenced by mexCallMATLABWithTrap(), and mexEvalStringWithTrap().
mxArray* mxCreateUninitNumericArray | ( | mwSize | ndims, |
const mwSize * | dims, | ||
mxClassID | class_id, | ||
mxComplexity | flag | ||
) |
Definition at line 2578 of file mex.cc.
References maybe_mark_array().
mxArray* mxCreateUninitNumericMatrix | ( | mwSize | m, |
mwSize | n, | ||
mxClassID | class_id, | ||
mxComplexity | flag | ||
) |
Definition at line 2585 of file mex.cc.
References maybe_mark_array().
void mxDestroyArray | ( | mxArray * | ptr | ) |
Definition at line 2631 of file mex.cc.
References mex::free_value().
Definition at line 2624 of file mex.cc.
References mxArray::dup(), and maybe_mark_array().
void mxFree | ( | void * | ptr | ) |
Definition at line 2494 of file mex.cc.
References mex::free(), and xfree().
Referenced by mxArray_struct::add_field(), mxArray_octave_value::as_mxArray(), mxArray_struct::remove_field(), mxArray_matlab::set_class_name(), mxArray_matlab::set_dimensions(), mxArray::set_name(), mex::~mex(), mxArray::~mxArray(), mxArray_cell::~mxArray_cell(), mxArray_matlab::~mxArray_matlab(), mxArray_number::~mxArray_number(), mxArray_octave_value::~mxArray_octave_value(), mxArray_sparse::~mxArray_sparse(), and mxArray_struct::~mxArray_struct().
Definition at line 2933 of file mex.cc.
References mxArray::get_cell().
Definition at line 2861 of file mex.cc.
References mxArray::get_data(), and mxIsChar().
Definition at line 2914 of file mex.cc.
References mxArray::get_class_id().
const char* mxGetClassName | ( | const mxArray * | ptr | ) |
Definition at line 2920 of file mex.cc.
References mxArray::get_class_name().
void* mxGetData | ( | const mxArray * | ptr | ) |
Definition at line 2876 of file mex.cc.
References mxArray::get_data().
Definition at line 2803 of file mex.cc.
References mxArray::get_dimensions().
Definition at line 3057 of file mex.cc.
References mxArray::get_element_size().
Definition at line 2995 of file mex.cc.
References mxGetFieldByNumber(), and mxGetFieldNumber().
Definition at line 3002 of file mex.cc.
References mxArray::get_field_by_number().
Referenced by mxGetField().
Definition at line 3027 of file mex.cc.
References mxArray::get_field_name_by_number().
Definition at line 3033 of file mex.cc.
References mxArray::get_field_number().
Referenced by mxGetField(), and mxSetField().
void* mxGetImagData | ( | const mxArray * | ptr | ) |
Definition at line 2882 of file mex.cc.
References mxArray::get_imag_data().
double mxGetInf | ( | void | ) |
Definition at line 2462 of file mex.cc.
References lo_ieee_inf_value().
Definition at line 2946 of file mex.cc.
References mxArray::get_ir().
Definition at line 2952 of file mex.cc.
References mxArray::get_jc().
Definition at line 2870 of file mex.cc.
References mxArray::get_data().
Definition at line 2791 of file mex.cc.
References mxArray::get_m().
Definition at line 2797 of file mex.cc.
References mxArray::get_n().
double mxGetNaN | ( | void | ) |
Definition at line 2468 of file mex.cc.
References lo_ieee_nan_value().
Definition at line 2809 of file mex.cc.
References mxArray::get_number_of_dimensions().
Definition at line 2815 of file mex.cc.
References mxArray::get_number_of_elements().
Definition at line 3021 of file mex.cc.
References mxArray::get_number_of_fields().
Definition at line 2958 of file mex.cc.
References mxArray::get_nzmax().
Definition at line 2849 of file mex.cc.
References mxArray::get_imag_data().
Definition at line 2843 of file mex.cc.
References mxArray::get_data().
Definition at line 2855 of file mex.cc.
References mxArray::get_scalar().
Definition at line 3039 of file mex.cc.
References mxArray::get_string().
Definition at line 2639 of file mex.cc.
References mxArray::is_cell().
Definition at line 2651 of file mex.cc.
References mxArray::is_class().
Definition at line 2657 of file mex.cc.
References mxArray::is_complex().
Definition at line 2663 of file mex.cc.
References mxArray::is_double().
Definition at line 2768 of file mex.cc.
References mxArray::is_empty().
Definition at line 2438 of file mex.cc.
References lo_ieee_finite.
Definition at line 2669 of file mex.cc.
References mxArray::is_function_handle().
Definition at line 2444 of file mex.cc.
References lo_ieee_isinf.
Definition at line 2675 of file mex.cc.
References mxArray::is_int16().
Definition at line 2681 of file mex.cc.
References mxArray::is_int32().
Definition at line 2687 of file mex.cc.
References mxArray::is_int64().
Definition at line 2693 of file mex.cc.
References mxArray::is_int8().
Definition at line 2699 of file mex.cc.
References mxArray::is_logical().
Definition at line 2754 of file mex.cc.
References mxArray::is_logical_scalar().
Definition at line 2761 of file mex.cc.
References mxArray::is_logical_scalar_true().
Definition at line 2450 of file mex.cc.
References lo_ieee_isnan.
Definition at line 2705 of file mex.cc.
References mxArray::is_numeric().
Definition at line 2774 of file mex.cc.
References mxArray::is_scalar().
Definition at line 2711 of file mex.cc.
References mxArray::is_single().
Definition at line 2717 of file mex.cc.
References mxArray::is_sparse().
Definition at line 2723 of file mex.cc.
References mxArray::is_struct().
Definition at line 2729 of file mex.cc.
References mxArray::is_uint16().
Definition at line 2735 of file mex.cc.
References mxArray::is_uint32().
Definition at line 2741 of file mex.cc.
References mxArray::is_uint64().
Definition at line 2747 of file mex.cc.
References mxArray::is_uint8().
void* mxMalloc | ( | size_t | n | ) |
Definition at line 2481 of file mex.cc.
References malloc(), and mex::malloc().
void* mxRealloc | ( | void * | ptr, |
size_t | size | ||
) |
Definition at line 2487 of file mex.cc.
References mex::realloc().
Referenced by mxArray_struct::add_field().
Definition at line 2989 of file mex.cc.
References mxArray::remove_field().
Definition at line 2939 of file mex.cc.
References mxArray::set_cell().
void mxSetClassName | ( | mxArray * | ptr, |
const char * | name | ||
) |
Definition at line 2926 of file mex.cc.
References mxArray::set_class_name().
void mxSetData | ( | mxArray * | ptr, |
void * | pr | ||
) |
Definition at line 2901 of file mex.cc.
References maybe_unmark(), and mxArray::set_data().
Definition at line 2834 of file mex.cc.
References maybe_unmark(), and mxArray::set_dimensions().
Definition at line 3008 of file mex.cc.
References mxGetFieldNumber(), and mxSetFieldByNumber().
Definition at line 3015 of file mex.cc.
References mxArray::set_field_by_number().
Referenced by mexCallMATLABWithTrap(), mexEvalStringWithTrap(), and mxSetField().
void mxSetImagData | ( | mxArray * | ptr, |
void * | pi | ||
) |
Definition at line 2907 of file mex.cc.
References maybe_unmark(), and mxArray::set_imag_data().
Definition at line 2964 of file mex.cc.
References maybe_unmark(), and mxArray::set_ir().
Definition at line 2970 of file mex.cc.
References maybe_unmark(), and mxArray::set_jc().
Definition at line 2822 of file mex.cc.
References mxArray::set_m().
Definition at line 2828 of file mex.cc.
References mxArray::set_n().
Definition at line 2976 of file mex.cc.
References mxArray::set_nzmax().
Definition at line 2895 of file mex.cc.
References maybe_unmark(), and mxArray::set_imag_data().
Definition at line 2889 of file mex.cc.
References maybe_unmark(), and mxArray::set_data().
|
static |
Definition at line 84 of file mex.cc.
References retval, and strlen().
Referenced by mxArray_struct::add_field().
|
static |
Definition at line 62 of file mex.cc.
References free().
Referenced by mex::free(), mxFree(), and mex::~mex().
std::map<std::string,int> mex_lock_count |