#include "mex.h"
#include "mex_utils.h"
#include <stdlib.h>
#include "array.h"
#include "distances.h"
void mexFunction(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[]){
char msg[2000];
const char *docstring =
"signaldistfunction Pointwise distance Matrix between two signals.\n"
"[ distmat ] = signaldistfunction( signal1, signal2 );\n"
" Calculate a euclidean distance matrix.\n\n"
"[ distmat ] = signaldistfunction( signal1, signal2, metric, ... );\n"
" Calculate a distance matrix with another metric.\n"
" Valid values for metric are:\n"
" 'euclidean', ...\n"
" You can pass additional parameters for the distance function along.\n";
if(nrhs<2){
sprintf(msg, ">> Need at least 2 inputs.\n%s\n", docstring);
mexErrMsgTxt(msg);
} else if(!mxIsDouble(prhs[0]) || !mxIsDouble(prhs[1])){
sprintf(msg, ">> First and second Input must be double arrays.\n%s\n", docstring);
mexErrMsgTxt(msg);
}
Array *s1 = mex_mxarray_to_array( prhs[0] );
Array *s2 = mex_mxarray_to_array( prhs[1] );
Array *d=distmatrix_signaldist( vectordist_euclidean, s1, s2, NULL, NULL );
plhs[0]=mex_array_to_mxarray( d );
array_free( s1 );
array_free( s2 );
array_free( d );
return;
}