YAP MATLAB Package Interface

The MathWorks MATLAB is a widely used package for array processing.

YAP now includes a straightforward interface to MATLAB. To actually use it, you need to install YAP calling configure with the --with-matlab=DIR option, and you need to call use_module(library(lists)) command.

Accessing the matlab dynamic libraries can be complicated. In Linux machines, to use this interface, you may have to set the environment variable LD_LIBRARY_PATH. Next, follows an example using bash in a 64-bit Linux PC:


 export LD_LIBRARY_PATH= '' $MATLAB_HOME "/sys/os/glnxa64:''$MATLAB_HOME" /bin/glnxa64: '' $LD_LIBRARY_PATH "

where MATLAB_HOME is the directory where matlab is installed at. Please replace ax64 for x86 on a 32-bit PC.

Define:

1. MAT_ACCESS:

1. BUFSIZE:

1. OBUFSIZE:

Functions:

1. void init_matlab(void):

1. static mxArray * matlab_getvar(YAP_Term t):

1. static YAP_Term address2term(mxArray *mat):

1. static int cp_back(YAP_Term vart, mxArray *mat):

1. static int p_startmatlab(void):

1. static int p_matlabon(void):

1. static int p_closematlab(void):

1. static int p_evalstrin/2(void):

1. static int p_evalstrin/3(void):

1. static int p_create_cell_vector(void):

1. static int p_create_cell_array(void):

1. static int p_create_double_vector(void):

1. static int p_create_double_array(void):

1. static int p_create_double_arra/3(void):

1. static int p_set_int_array(void):

1. static int p_set_float_array(void):

1. static int p_set_float_vector(void):

1. static int p_set_int(void):

1. static int p_set_float(void):

1. static YAP_Term cp_ints/2(int ndims, int dims, INT32_T input, int factor, int base, YAP_Term t):

1. static YAP_Term cp_ints/4(int ndims, int dims, INT64_T input, int factor, int base, YAP_Term t):

1. static YAP_Term cp_cells(int ndims, int dims, mxArray mat, int factor, int base, YAP_Term t):

1. static YAP_Term cp_floats(int ndims, int dims, double input, int factor, int base, YAP_Term t):

1. static mxArray * get_array(YAP_Term ti):

1. static int p_get_variable(void):

1. static int ite/1(YAP_Term tvar, YAP_Term titem, int off):

1. static int p_item(void):

1. static int p_item/1(void):

1. static int ite/2(YAP_Term tvar, YAP_Term titem, int offx, int offy):

1. static int p_ite/2(void):

1. static int p_item2/1(void):

1. static int p_call_matlab(void):

1. static int p_create_cell_matrix_and_cop/1(void):

Var:

1. YAP_Functor MatlabAddress:

1. Engine* Meng: