www.pudn.com > vcmatlab20060426WaterMark.zip > contours.cpp


// 
// MATLAB Compiler: 2.2 
// Date: Tue May 10 13:54:02 2005 
// Arguments: "-B" "macro_default" "-O" "all" "-O" "fold_scalar_mxarrays:on" "-O" "fold_non_scalar_mxarrays:on" "-O" "optimize_integer_for_loops:on" "-O" "array_indexing:on" "-O" "optimize_conditionals:on" "-B" "sglcpp" "-p" "-W" "main" "-L" "Cpp" "-t" "-T" "link:exe" "-h" "libmmfile.mlib" "-W" "mainhg" "libmwsglm.mlib" "-A" "line:on" "-g" "-G" "-A" "debugline:on" "-O" "none" "-O" "fold_scalar_mxarrays:off" "-O" "fold_non_scalar_mxarrays:off" "-O" "optimize_integer_for_loops:off" "-O" "array_indexing:off" "-O" "optimize_conditionals:off" "libmmfile.mlib" "libmwsglm.mlib" "-v" "-h" "show"  
// 
#include "contours.hpp" 
#include "libmatlbm.hpp" 
#include "libmmfile.hpp" 
 
void InitializeModule_contours() { 
} 
 
void TerminateModule_contours() { 
} 
 
static mwArray contours_veryclose(mwArray a = mwArray::DIN, mwArray b = mwArray::DIN); 
#ifdef __cplusplus 
extern "C" 
#endif 
void mlxContours_veryclose(int nlhs, mxArray * plhs[], int nrhs, mxArray * prhs[]); 
static mwArray Mcontours(mwArray * msg, int nargout_, mwArray varargin); 
static mwArray Mcontours_veryclose(int nargout_, mwArray a, mwArray b); 
 
static mexFunctionTableEntry local_function_table_[1] = { { "veryclose", mlxContours_veryclose, 2, 1, NULL } }; 
 
_mexLocalFunctionTable _local_function_table_contours = { 1, local_function_table_ }; 
 
// 
// The function "contours" contains the normal interface for the "contours" M-function from file "D:\matlab\matlab\toolbox\matlab\specgraph\contours.m" (lines 1-176). This function processes any input arguments and passes them to the implementation version of the function, appearing above. 
// 
mwArray contours(mwArray * msg, mwVarargin varargin) { 
    int nargout(1); 
    mwArray CS(mclGetUninitializedArray()); 
    mwArray msg__(mclGetUninitializedArray()); 
    if (msg != NULL) { 
        ++nargout; 
    } 
    CS = Mcontours(&msg__, nargout, varargin.ToArray()); 
    if (msg != NULL) { 
        *msg = msg__; 
    } 
    return CS; 
} 
 
// 
// The function "mlxContours" contains the feval interface for the "contours" M-function from file "D:\matlab\matlab\toolbox\matlab\specgraph\contours.m" (lines 1-176). The feval function calls the implementation version of contours through this function. This function processes any input arguments and passes them to the implementation version of the function, appearing above. 
// 
void mlxContours(int nlhs, mxArray * plhs[], int nrhs, mxArray * prhs[]) { 
    MW_BEGIN_MLX(); 
    { 
        mwArray mprhs[1]; 
        mwArray mplhs[2]; 
        int i; 
        mclCppUninitializeArrays(2, mplhs); 
        if (nlhs > 2) { 
            error(mwArray("Run-time Error: File: contours Line: 1 Column: 1 The function \"contours\" was called with more than the declared number of outputs (2).")); 
        } 
        mprhs[0] = mclCreateVararginCell(nrhs, prhs); 
        mplhs[0] = Mcontours(&mplhs[1], nlhs, mprhs[0]); 
        plhs[0] = mplhs[0].FreezeData(); 
        for (i = 1; i < 2 && i < nlhs; ++i) { 
            plhs[i] = mplhs[i].FreezeData(); 
        } 
    } 
    MW_END_MLX(); 
} 
 
// 
// The function "contours_veryclose" contains the normal interface for the "contours/veryclose" M-function from file "D:\matlab\matlab\toolbox\matlab\specgraph\contours.m" (lines 176-180). This function processes any input arguments and passes them to the implementation version of the function, appearing above. 
// 
static mwArray contours_veryclose(mwArray a, mwArray b) { 
    int nargout(1); 
    mwArray tf(mclGetUninitializedArray()); 
    tf = Mcontours_veryclose(nargout, a, b); 
    return tf; 
} 
 
// 
// The function "mlxContours_veryclose" contains the feval interface for the "contours/veryclose" M-function from file "D:\matlab\matlab\toolbox\matlab\specgraph\contours.m" (lines 176-180). The feval function calls the implementation version of contours/veryclose through this function. This function processes any input arguments and passes them to the implementation version of the function, appearing above. 
// 
void mlxContours_veryclose(int nlhs, mxArray * plhs[], int nrhs, mxArray * prhs[]) { 
    MW_BEGIN_MLX(); 
    { 
        mwArray mprhs[2]; 
        mwArray mplhs[1]; 
        int i; 
        mclCppUninitializeArrays(1, mplhs); 
        if (nlhs > 1) { 
            error(mwArray("Run-time Error: File: contours/veryclose Line: 176 Column: 1 The function \"contours/veryclose\" was called with more than the declared number of outputs (1).")); 
        } 
        if (nrhs > 2) { 
            error(mwArray("Run-time Error: File: contours/veryclose Line: 176 Column: 1 The function \"contours/veryclose\" was called with more than the declared number of inputs (2).")); 
        } 
        for (i = 0; i < 2 && i < nrhs; ++i) { 
            mprhs[i] = mwArray(prhs[i], 0); 
        } 
        for (; i < 2; ++i) { 
            mprhs[i].MakeDIN(); 
        } 
        mplhs[0] = Mcontours_veryclose(nlhs, mprhs[0], mprhs[1]); 
        plhs[0] = mplhs[0].FreezeData(); 
    } 
    MW_END_MLX(); 
} 
 
// 
// The function "Mcontours" is the implementation version of the "contours" M-function from file "D:\matlab\matlab\toolbox\matlab\specgraph\contours.m" (lines 1-176). It contains the actual compiled code for that M-function. It is a static function and must only be called from one of the interface functions, appearing below. 
// 
// 
// function [CS,msg]=contours(varargin) 
// 
#line 1 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
static mwArray Mcontours(mwArray * msg, int nargout_, mwArray varargin) { 
    #line 1 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
    mclMlineEnterFunction("D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m", "contours") 
    #line 1 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
    mwLocalFunctionTable save_local_function_table_(&_local_function_table_contours); 
    #line 1 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
    int nargin_(nargin(-1, mwVarargin(varargin))); 
    #line 1 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
    mwArray CS(mclGetUninitializedArray()); 
    #line 1 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
    mwArray dx(mclGetUninitializedArray()); 
    #line 1 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
    mwArray dy(mclGetUninitializedArray()); 
    #line 1 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
    mwArray Ibr(mclGetUninitializedArray()); 
    #line 1 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
    mwArray Itr(mclGetUninitializedArray()); 
    #line 1 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
    mwArray Itl(mclGetUninitializedArray()); 
    #line 1 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
    mwArray Ibl(mclGetUninitializedArray()); 
    #line 1 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
    mwArray fY(mclGetUninitializedArray()); 
    #line 1 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
    mwArray cY(mclGetUninitializedArray()); 
    #line 1 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
    mwArray fX(mclGetUninitializedArray()); 
    #line 1 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
    mwArray cX(mclGetUninitializedArray()); 
    #line 1 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
    mwArray Y(mclGetUninitializedArray()); 
    #line 1 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
    mwArray X(mclGetUninitializedArray()); 
    #line 1 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
    mwArray y(mclGetUninitializedArray()); 
    #line 1 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
    mwArray x(mclGetUninitializedArray()); 
    #line 1 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
    mwArray vy2(mclGetUninitializedArray()); 
    #line 1 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
    mwArray vx2(mclGetUninitializedArray()); 
    #line 1 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
    mwArray cpy(mclGetUninitializedArray()); 
    #line 1 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
    mwArray cpx(mclGetUninitializedArray()); 
    #line 1 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
    mwArray vy1(mclGetUninitializedArray()); 
    #line 1 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
    mwArray vx1(mclGetUninitializedArray()); 
    #line 1 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
    mwArray y2(mclGetUninitializedArray()); 
    #line 1 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
    mwArray x2(mclGetUninitializedArray()); 
    #line 1 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
    mwArray y1(mclGetUninitializedArray()); 
    #line 1 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
    mwArray x1(mclGetUninitializedArray()); 
    #line 1 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
    mwArray t(mclGetUninitializedArray()); 
    #line 1 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
    mwArray md(mclGetUninitializedArray()); 
    #line 1 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
    mwArray skewd(mclGetUninitializedArray()); 
    #line 1 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
    mwArray lev(mclGetUninitializedArray()); 
    #line 1 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
    mwArray nl(mclGetUninitializedArray()); 
    #line 1 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
    mwArray k(mclGetUninitializedArray()); 
    #line 1 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
    mwArray ii(mclGetUninitializedArray()); 
    #line 1 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
    mwArray Nx(mclGetUninitializedArray()); 
    #line 1 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
    mwArray Ny(mclGetUninitializedArray()); 
    #line 1 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
    mwArray zz(mclGetUninitializedArray()); 
    #line 1 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
    mwArray numarg_for_call(mclGetUninitializedArray()); 
    #line 1 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
    mwArray ans(mclGetUninitializedArray()); 
    // 
    // %CONTOURS Contouring over non-rectangular surface. 
    // %   CONTOURS calculates the contour matrix C for use by CONTOUR, 
    // %       CONTOUR3, or CONTOURF to draw the actual contour plot. 
    // %   CONTOURS(...) is the same as CONTOURC except CONTOURS(X,Y,Z,...) 
    // %       allows the specification of parametric surfaces (as for SURF). 
    // %   C = CONTOURS(Z) computes the contour matrix for a contour plot 
    // %      of matrix Z treating the values in Z as heights above a plane. 
    // %   C = CONTOURS(X,Y,Z), where X and Y are vectors, specifies the X-  
    // %      and Y-axes limits for Z. X and Y can also be matrices of the 
    // %      same size as Z, in which case they specify a surface as for SURF.  
    // %   CONTOURS(Z,N) and CONTOURS(X,Y,Z,N) compute N contour lines,  
    // %      overriding the default automatic value. 
    // %   CONTOURS(Z,V) and CONTOURS(X,Y,Z,V) compute LENGTH(V) contour  
    // %      lines at the values specified in vector V. 
    // %    
    // %   The contour matrix C is a two row matrix of contour lines. Each 
    // %   contiguous drawing segment contains the value of the contour,  
    // %   the number of (x,y) drawing pairs, and the pairs themselves.   
    // %   The segments are appended end-to-end as 
    // %  
    // %       C = [level1 x1 x2 x3 ... level2 x2 x2 x3 ...; 
    // %            pairs1 y1 y2 y3 ... pairs2 y2 y2 y3 ...] 
    // %  
    // %   See also CONTOUR, CONTOUR3 and CONTOURF. 
    //  
    // %   Copyright 1984-2001 The MathWorks, Inc.  
    // %   $Revision: 1.17 $  $Date: 2001/04/15 12:03:50 $ 
    //  
    // % Author: R. Pawlowicz (IOS) rich@ios.bc.ca 
    // %         12/12/94 
    //  
    // error(nargchk(1,4,nargin)); 
    // 
    #line 33 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
    mclMline(33); 
    #line 33 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
    error(mwVe(nargchk(mwArray(1), mwArray(4), mwArray(nargin_)))); 
    // 
    // msg = []; 
    // 
    #line 34 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
    mclMline(34); 
    #line 34 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
    *msg = empty(); 
    // 
    // if (nargin <=2), 
    // 
    #line 35 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
    mclMline(35); 
    #line 35 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
    if (tobool(mwArray(nargin_) <= mwArray(2))) { 
        // 
        // numarg_for_call = 1:nargin; 
        // 
        #line 36 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
        mclMline(36); 
        #line 36 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
        numarg_for_call = colon(mwArray(1), mwArray(nargin_)); 
        // 
        // if ~isa(varargin{1}, 'double') 
        // 
        #line 37 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
        mclMline(37); 
        #line 37 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
        if (tobool(~ mwVe(feval(mwValueVarargout(), mlxIsa, mwVarargin(mwVe(mwVsa(varargin, "varargin").cell(1)), "double"))))) { 
            // 
            // varargin{1} = double(varargin{1}); 
            // 
            #line 38 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
            mclMline(38); 
            #line 38 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
            varargin.cell(1) = feval(mwValueVarargout(), mlxDouble_func, mwVarargin(mwVe(mwVsa(varargin, "varargin").cell(1)))); 
        // 
        // end 
        // 
        #line 39 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
        mclMline(39); 
        #line 39 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
        } 
        // 
        // zz=varargin{1}; 
        // 
        #line 40 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
        mclMline(40); 
        #line 40 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
        zz = mwVsa(varargin, "varargin").cell(1); 
    // 
    // else 
    // 
    #line 41 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
    mclMline(41); 
    #line 41 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
    } else { 
        // 
        // numarg_for_call= 3:nargin; 
        // 
        #line 42 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
        mclMline(42); 
        #line 42 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
        numarg_for_call = colon(mwArray(3), mwArray(nargin_)); 
        // 
        // if ~isa(varargin{1}, 'double') 
        // 
        #line 43 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
        mclMline(43); 
        #line 43 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
        if (tobool(~ mwVe(feval(mwValueVarargout(), mlxIsa, mwVarargin(mwVe(mwVsa(varargin, "varargin").cell(1)), "double"))))) { 
            // 
            // varargin{1} = double(varargin{1}); 
            // 
            #line 44 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
            mclMline(44); 
            #line 44 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
            varargin.cell(1) = feval(mwValueVarargout(), mlxDouble_func, mwVarargin(mwVe(mwVsa(varargin, "varargin").cell(1)))); 
        // 
        // end 
        // 
        #line 45 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
        mclMline(45); 
        #line 45 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
        } 
        // 
        // if ~isa(varargin{2}, 'double') 
        // 
        #line 46 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
        mclMline(46); 
        #line 46 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
        if (tobool(~ mwVe(feval(mwValueVarargout(), mlxIsa, mwVarargin(mwVe(mwVsa(varargin, "varargin").cell(2)), "double"))))) { 
            // 
            // varargin{2} = double(varargin{2}); 
            // 
            #line 47 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
            mclMline(47); 
            #line 47 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
            varargin.cell(2) = feval(mwValueVarargout(), mlxDouble_func, mwVarargin(mwVe(mwVsa(varargin, "varargin").cell(2)))); 
        // 
        // end 
        // 
        #line 48 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
        mclMline(48); 
        #line 48 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
        } 
        // 
        // if ~isa(varargin{3}, 'double') 
        // 
        #line 49 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
        mclMline(49); 
        #line 49 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
        if (tobool(~ mwVe(feval(mwValueVarargout(), mlxIsa, mwVarargin(mwVe(mwVsa(varargin, "varargin").cell(3)), "double"))))) { 
            // 
            // varargin{3} = double(varargin{3}); 
            // 
            #line 50 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
            mclMline(50); 
            #line 50 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
            varargin.cell(3) = feval(mwValueVarargout(), mlxDouble_func, mwVarargin(mwVe(mwVsa(varargin, "varargin").cell(3)))); 
        // 
        // end 
        // 
        #line 51 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
        mclMline(51); 
        #line 51 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
        } 
        // 
        // zz=varargin{3}; 
        // 
        #line 52 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
        mclMline(52); 
        #line 52 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
        zz = mwVsa(varargin, "varargin").cell(3); 
        // 
        // msg = xyzchk(varargin{1:3}); 
        // 
        #line 53 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
        mclMline(53); 
        #line 53 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
        *msg = feval(mwValueVarargout(), mlxXyzchk, mwVarargin(mwVe(mwVsa(varargin, "varargin").cell(colon(1, 3))))); 
        // 
        // if ~isempty(msg), CS = []; return, end 
        // 
        #line 54 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
        mclMline(54); 
        #line 54 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
        if (tobool(~ mwVe(isempty(mwVv(*msg, "msg"))))) { 
            #line 54 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
            CS = empty(); 
            #line 54 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
            goto return_; 
        #line 54 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
        } 
    // 
    // end;  
    // 
    #line 55 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
    mclMline(55); 
    #line 55 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
    } 
    // 
    //  
    // CS=contourc(varargin{numarg_for_call}); 
    // 
    #line 57 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
    mclMline(57); 
    #line 57 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
    CS = Ncontourc(1, mwVarargin(mwVe(mwVsa(varargin, "varargin").cell(mwVsv(numarg_for_call, "numarg_for_call"))))); 
    // 
    // [Ny,Nx]=size(zz); 
    // 
    #line 58 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
    mclMline(58); 
    #line 58 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
    size(mwVarargout(Ny, Nx), mwVv(zz, "zz")); 
    // 
    //  
    // % Find data values and check curve orientation. 
    //  
    // ii= ones(1,size(CS,2))~=0; 
    // 
    #line 62 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
    mclMline(62); 
    #line 62 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
    ii = mwVe(ones(mwVarargin(1, mwVe(size(mwValueVarargout(), mwVv(CS, "CS"), 2))))) != 0; 
    // 
    // k=1; 
    // 
    #line 63 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
    mclMline(63); 
    #line 63 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
    k = 1; 
    // 
    // while (k < size(CS,2)), 
    // 
    #line 64 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
    mclMline(64); 
    #line 64 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
    while (tobool(mwVv(k, "k") < mwVe(size(mwValueVarargout(), mwVv(CS, "CS"), 2)))) { 
        // 
        // nl=CS(2,k); 
        // 
        #line 65 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
        mclMline(65); 
        #line 65 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
        nl = mwVsv(CS, "CS")(2, mwVsv(k, "k")); 
        // 
        //  
        // % Now this is a little bit of magic needed to make the filled contours 
        // % work. Essentially I draw the *closed* contours so that the "high" side is 
        // % always on the right. To test this, I take the cross product of the 
        // % first vector with a vector to a corner point and test the sign 
        // % against the elevation change. There are several special cases: 
        // % (1) If the contour line goes through a point (which happen when -Infs 
        // % are around), and (2) when the contour level equals the level on the high 
        // % side (this always seems to happen in 'simple test' cases!). We take 
        // % care of (1) by choosing other points, and we take care of (2) by adding 
        // % eps to the data before comparing with the contour data. 
        //  
        // if ( CS(:,k+1)==CS(:,k+nl) & nl>1 ), 
        // 
        #line 78 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
        mclMline(78); 
        #line 78 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
        { 
            #line 78 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
            mwArray a_(mwVe(mwVsv(CS, "CS")(colon(), mwVv(k, "k") + 1)) == mwVe(mwVsv(CS, "CS")(colon(), mwVv(k, "k") + mwVv(nl, "nl")))); 
            #line 78 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
            if (tobool(a_) && tobool(a_ & mwVv(nl, "nl") > 1)) { 
                // 
                // lev=CS(1,k); 
                // 
                #line 79 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
                mclMline(79); 
                #line 79 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
                lev = mwVsv(CS, "CS")(1, mwVsv(k, "k")); 
                // 
                //  
                // % Use manhattan distance to find a line segment that is the 
                // % farthest away from being on the grid (skewd is an integer 
                // % when a line segment is aligned with the grid so we look 
                // % for the "least integer-like" distance). 
                // skewd=abs(diff(CS(1,k+1:k+nl)))+abs(diff(CS(2,k+1:k+nl))); 
                // 
                #line 85 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
                mclMline(85); 
                #line 85 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
                skewd = mwVe(abs(mwVe(diff(mwVe(mwVsv(CS, "CS")(1, colon(mwVv(k, "k") + 1, mwVv(k, "k") + mwVv(nl, "nl")))))))) + mwVe(abs(mwVe(diff(mwVe(mwVsv(CS, "CS")(2, colon(mwVv(k, "k") + 1, mwVv(k, "k") + mwVv(nl, "nl")))))))); 
                // 
                // skewd=abs(skewd-round(skewd)); 
                // 
                #line 86 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
                mclMline(86); 
                #line 86 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
                skewd = abs(mwVv(skewd, "skewd") - mwVe(round(mwVv(skewd, "skewd")))); 
                // 
                // [md,t]=max(skewd); 
                // 
                #line 87 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
                mclMline(87); 
                #line 87 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
                md = max(&t, mwVv(skewd, "skewd")); 
                // 
                // if isempty(t), t = 1; end 
                // 
                #line 88 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
                mclMline(88); 
                #line 88 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
                if (tobool(mwVe(isempty(mwVv(t, "t"))))) { 
                    #line 88 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
                    t = 1; 
                #line 88 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
                } 
                // 
                //  
                // x1=CS(1,k+t); y1=CS(2,k+t); 
                // 
                #line 90 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
                mclMline(90); 
                #line 90 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
                x1 = mwVsv(CS, "CS")(1, mwVv(k, "k") + mwVv(t, "t")); 
                #line 90 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
                y1 = mwVsv(CS, "CS")(2, mwVv(k, "k") + mwVv(t, "t")); 
                // 
                // x2=CS(1,k+t+1); y2=CS(2,k+t+1); 
                // 
                #line 91 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
                mclMline(91); 
                #line 91 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
                x2 = mwVsv(CS, "CS")(1, mwVv(k, "k") + mwVv(t, "t") + 1); 
                #line 91 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
                y2 = mwVsv(CS, "CS")(2, mwVv(k, "k") + mwVv(t, "t") + 1); 
                // 
                // vx1=x2-x1; vy1=y2-y1; 
                // 
                #line 92 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
                mclMline(92); 
                #line 92 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
                vx1 = mwVv(x2, "x2") - mwVv(x1, "x1"); 
                #line 92 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
                vy1 = mwVv(y2, "y2") - mwVv(y1, "y1"); 
                // 
                // cpx=round(x1); cpy=round(y1); 
                // 
                #line 93 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
                mclMline(93); 
                #line 93 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
                cpx = round(mwVv(x1, "x1")); 
                #line 93 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
                cpy = round(mwVv(y1, "y1")); 
                // 
                // if veryclose([cpx cpy],[x1 y1]) 
                // 
                #line 94 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
                mclMline(94); 
                #line 94 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
                if (tobool(mwVe(contours_veryclose(horzcat(mwVarargin(mwVv(cpx, "cpx"), mwVv(cpy, "cpy"))), horzcat(mwVarargin(mwVv(x1, "x1"), mwVv(y1, "y1"))))))) { 
                    // 
                    // cpx=round(x2); cpy=round(y2); 
                    // 
                    #line 95 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
                    mclMline(95); 
                    #line 95 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
                    cpx = round(mwVv(x2, "x2")); 
                    #line 95 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
                    cpy = round(mwVv(y2, "y2")); 
                    // 
                    // if veryclose([cpx cpy],[x2 y2]), 
                    // 
                    #line 96 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
                    mclMline(96); 
                    #line 96 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
                    if (tobool(mwVe(contours_veryclose(horzcat(mwVarargin(mwVv(cpx, "cpx"), mwVv(cpy, "cpy"))), horzcat(mwVarargin(mwVv(x2, "x2"), mwVv(y2, "y2"))))))) { 
                        // 
                        // % If we've made it to here, the contour line is along a 
                        // % grid line.  It is also possible we're on a ridge or valley.   
                        // % If so, filled ridge or valley contours will be drawn  
                        // % with the same color on both sides. 
                        // if [cpx cpy]~=round([x1 y1]), % Diagonal contour 
                        // 
                        #line 101 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
                        mclMline(101); 
                        #line 101 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
                        if (tobool(horzcat(mwVarargin(mwVv(cpx, "cpx"), mwVv(cpy, "cpy"))) != mwVe(round(horzcat(mwVarargin(mwVv(x1, "x1"), mwVv(y1, "y1"))))))) { 
                            // 
                            // cpx=round(x1); 
                            // 
                            #line 102 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
                            mclMline(102); 
                            #line 102 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
                            cpx = round(mwVv(x1, "x1")); 
                        // 
                        // else % edge contour 
                        // 
                        #line 103 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
                        mclMline(103); 
                        #line 103 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
                        } else { 
                            // 
                            // cpx=round(x1)+round(y2-y1); 
                            // 
                            #line 104 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
                            mclMline(104); 
                            #line 104 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
                            cpx = mwVe(round(mwVv(x1, "x1"))) + mwVe(round(mwVv(y2, "y2") - mwVv(y1, "y1"))); 
                            // 
                            // cpy=round(y1)-round(x2-x1); 
                            // 
                            #line 105 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
                            mclMline(105); 
                            #line 105 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
                            cpy = mwVe(round(mwVv(y1, "y1"))) - mwVe(round(mwVv(x2, "x2") - mwVv(x1, "x1"))); 
                            // 
                            // % Make sure the values stay in bounds (stay at least one pixel 
                            // % away from the edge since filled contours put NaNs there). 
                            // if (cpx < 2) | (cpx > size(zz,2)-1) 
                            // 
                            #line 108 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
                            mclMline(108); 
                            #line 108 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
                            { 
                                #line 108 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
                                mwArray a_0(mwVv(cpx, "cpx") < 2); 
                                #line 108 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
                                if (tobool(a_0) || tobool(a_0 | mwVv(cpx, "cpx") > mwVe(size(mwValueVarargout(), mwVv(zz, "zz"), 2)) - 1)) { 
                                    // 
                                    // cpx=round(x1)-round(y2-y1); 
                                    // 
                                    #line 109 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
                                    mclMline(109); 
                                    #line 109 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
                                    cpx = mwVe(round(mwVv(x1, "x1"))) - mwVe(round(mwVv(y2, "y2") - mwVv(y1, "y1"))); 
                                #line 109 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
                                } else { 
                                #line 109 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
                                } 
                            // 
                            // end 
                            // 
                            #line 110 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
                            mclMline(110); 
                            #line 110 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
                            } 
                            // 
                            // if (cpy < 2) | (cpy > size(zz,1)-1) 
                            // 
                            #line 111 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
                            mclMline(111); 
                            #line 111 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
                            { 
                                #line 111 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
                                mwArray a_1(mwVv(cpy, "cpy") < 2); 
                                #line 111 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
                                if (tobool(a_1) || tobool(a_1 | mwVv(cpy, "cpy") > mwVe(size(mwValueVarargout(), mwVv(zz, "zz"), 1)) - 1)) { 
                                    // 
                                    // cpy=round(y1)+round(x2-x1); 
                                    // 
                                    #line 112 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
                                    mclMline(112); 
                                    #line 112 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
                                    cpy = mwVe(round(mwVv(y1, "y1"))) + mwVe(round(mwVv(x2, "x2") - mwVv(x1, "x1"))); 
                                #line 112 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
                                } else { 
                                #line 112 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
                                } 
                            // 
                            // end 
                            // 
                            #line 113 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
                            mclMline(113); 
                            #line 113 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
                            } 
                        // 
                        // end; 
                        // 
                        #line 114 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
                        mclMline(114); 
                        #line 114 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
                        } 
                    // 
                    // end; 
                    // 
                    #line 115 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
                    mclMline(115); 
                    #line 115 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
                    } 
                // 
                // end; 
                // 
                #line 116 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
                mclMline(116); 
                #line 116 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
                } 
                // 
                // vx2=cpx-x1; vy2=cpy-y1; 
                // 
                #line 117 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
                mclMline(117); 
                #line 117 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
                vx2 = mwVv(cpx, "cpx") - mwVv(x1, "x1"); 
                #line 117 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
                vy2 = mwVv(cpy, "cpy") - mwVv(y1, "y1"); 
                // 
                // if ( sign(zz(cpy,cpx)-lev+eps) == sign(vx1*vy2-vx2*vy1)  ), 
                // 
                #line 118 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
                mclMline(118); 
                #line 118 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
                if (tobool(mwVe(sign(mwVe(mwVsv(zz, "zz")(mwVsv(cpy, "cpy"), mwVsv(cpx, "cpx"))) - mwVv(lev, "lev") + 2.220446049250313e-16)) == mwVe(sign(mwVv(vx1, "vx1") * mwVv(vy2, "vy2") - mwVv(vx2, "vx2") * mwVv(vy1, "vy1"))))) { 
                    // 
                    // CS(:,k+(1:nl))=fliplr(CS(:,k+(1:nl))); 
                    // 
                    #line 119 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
                    mclMline(119); 
                    #line 119 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
                    CS(colon(), mwVv(k, "k") + colon(1, mwVv(nl, "nl"))) = fliplr(mwVe(mwVsv(CS, "CS")(colon(), mwVv(k, "k") + colon(1, mwVv(nl, "nl"))))); 
                // 
                // end;  
                // 
                #line 120 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
                mclMline(120); 
                #line 120 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
                } 
            #line 120 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
            } else { 
            #line 120 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
            } 
        // 
        // end; 
        // 
        #line 121 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
        mclMline(121); 
        #line 121 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
        } 
        // 
        // ii(k)=0; 
        // 
        #line 122 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
        mclMline(122); 
        #line 122 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
        ii(mwVsv(k, "k")) = 0; 
        // 
        // k=k+1+nl; 
        // 
        #line 123 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
        mclMline(123); 
        #line 123 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
        k = mwVv(k, "k") + 1 + mwVv(nl, "nl"); 
    // 
    // end; 
    // 
    #line 124 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
    mclMline(124); 
    #line 124 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
    } 
    // 
    //  
    // % Data from integer coords to data coords. There are 3 cases 
    // % (1) Matrix X/Y 
    // % (2) Vector X/Y 
    // % (3) no X/Y. (do nothing); 
    //  
    // if nargin>2, 
    // 
    #line 131 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
    mclMline(131); 
    #line 131 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
    if (tobool(mwArray(nargin_) > mwArray(2))) { 
        // 
        // x = varargin{1};   
        // 
        #line 132 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
        mclMline(132); 
        #line 132 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
        x = mwVsa(varargin, "varargin").cell(1); 
        // 
        // y = varargin{2}; 
        // 
        #line 133 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
        mclMline(133); 
        #line 133 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
        y = mwVsa(varargin, "varargin").cell(2); 
    // 
    // end 
    // 
    #line 134 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
    mclMline(134); 
    #line 134 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
    } 
    // 
    //  
    // if isempty(CS) 
    // 
    #line 136 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
    mclMline(136); 
    #line 136 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
    if (tobool(mwVe(isempty(mwVv(CS, "CS"))))) { 
    // 
    // % Nothing to do 
    // elseif (nargin > 2) & (min(size(varargin{1})) > 1), 
    // 
    #line 138 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
    mclMline(138); 
    #line 138 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
    } else { 
        #line 138 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
        mwArray a_(mwArray(nargin_) > mwArray(2)); 
        #line 138 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
        if (tobool(a_) && tobool(a_ & mwVe(min(mwVe(feval(mwValueVarargout(), mlxSize, mwVarargin(mwVe(mwVsa(varargin, "varargin").cell(1))))))) > 1)) { 
            // 
            //  
            // X=CS(1,ii)';   Y=CS(2,ii)'; 
            // 
            #line 140 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
            mclMline(140); 
            #line 140 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
            X = ctranspose(mwVe(mwVsv(CS, "CS")(1, mwVsv(ii, "ii")))); 
            #line 140 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
            Y = ctranspose(mwVe(mwVsv(CS, "CS")(2, mwVsv(ii, "ii")))); 
            // 
            // cX=ceil(X);    fX=floor(X); 
            // 
            #line 141 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
            mclMline(141); 
            #line 141 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
            cX = ceil(mwVv(X, "X")); 
            #line 141 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
            fX = floor(mwVv(X, "X")); 
            // 
            // cY=ceil(Y);    fY=floor(Y); 
            // 
            #line 142 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
            mclMline(142); 
            #line 142 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
            cY = ceil(mwVv(Y, "Y")); 
            #line 142 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
            fY = floor(mwVv(Y, "Y")); 
            // 
            //  
            //  
            // Ibl=cY+(fX-1)*Ny;    Itl=fY+(fX-1)*Ny; 
            // 
            #line 145 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
            mclMline(145); 
            #line 145 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
            Ibl = mwVv(cY, "cY") + (mwVv(fX, "fX") - 1) * mwVv(Ny, "Ny"); 
            #line 145 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
            Itl = mwVv(fY, "fY") + (mwVv(fX, "fX") - 1) * mwVv(Ny, "Ny"); 
            // 
            // Itr=fY+(cX-1)*Ny;    Ibr=cY+(cX-1)*Ny; 
            // 
            #line 146 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
            mclMline(146); 
            #line 146 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
            Itr = mwVv(fY, "fY") + (mwVv(cX, "cX") - 1) * mwVv(Ny, "Ny"); 
            #line 146 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
            Ibr = mwVv(cY, "cY") + (mwVv(cX, "cX") - 1) * mwVv(Ny, "Ny"); 
            // 
            //  
            // dy=cY-Y; dx=X-fX; 
            // 
            #line 148 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
            mclMline(148); 
            #line 148 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
            dy = mwVv(cY, "cY") - mwVv(Y, "Y"); 
            #line 148 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
            dx = mwVv(X, "X") - mwVv(fX, "fX"); 
            // 
            //  
            // CS(1,ii) = [ x(Ibl).*(1-dx).*(1-dy) + x(Itl).* (1-dx).*dy + ... 
            // 
            #line 150 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
            mclMline(150); 
            #line 150 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
            CS(1, mwVsv(ii, "ii")) = ctranspose(times(times(mwVe(mwVsv(x, "x")(mwVsv(Ibl, "Ibl"))), 1 - mwVv(dx, "dx")), 1 - mwVv(dy, "dy")) + times(times(mwVe(mwVsv(x, "x")(mwVsv(Itl, "Itl"))), 1 - mwVv(dx, "dx")), mwVv(dy, "dy")) + times(times(mwVe(mwVsv(x, "x")(mwVsv(Itr, "Itr"))), mwVv(dx, "dx")), mwVv(dy, "dy")) + times(times(mwVe(mwVsv(x, "x")(mwVsv(Ibr, "Ibr"))), mwVv(dx, "dx")), 1 - mwVv(dy, "dy"))); 
            // 
            // x(Itr).*dx.*dy + x(Ibr).*dx.*(1-dy) ]'; 
            // CS(2,ii) = [ y(Ibl).*(1-dx).*(1-dy) + y(Itl).*(1-dx).*dy + ... 
            // 
            #line 152 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
            mclMline(152); 
            #line 152 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
            CS(2, mwVsv(ii, "ii")) = ctranspose(times(times(mwVe(mwVsv(y, "y")(mwVsv(Ibl, "Ibl"))), 1 - mwVv(dx, "dx")), 1 - mwVv(dy, "dy")) + times(times(mwVe(mwVsv(y, "y")(mwVsv(Itl, "Itl"))), 1 - mwVv(dx, "dx")), mwVv(dy, "dy")) + times(times(mwVe(mwVsv(y, "y")(mwVsv(Itr, "Itr"))), mwVv(dx, "dx")), mwVv(dy, "dy")) + times(times(mwVe(mwVsv(y, "y")(mwVsv(Ibr, "Ibr"))), mwVv(dx, "dx")), 1 - mwVv(dy, "dy"))); 
        // 
        // y(Itr).*dx.*dy + y(Ibr).*dx.*(1-dy) ]'; 
        //  
        // elseif (nargin>2 & min(size(x))==1 ), 
        // 
        #line 155 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
        mclMline(155); 
        #line 155 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
        } else { 
            #line 155 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
            mwArray a_2(mwArray(nargin_) > mwArray(2)); 
            #line 155 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
            if (tobool(a_2) && tobool(a_2 & mwVe(min(mwVe(size(mwValueVarargout(), mwVv(x, "x"))))) == 1)) { 
                // 
                // X=CS(1,ii);  Y=CS(2,ii); 
                // 
                #line 156 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
                mclMline(156); 
                #line 156 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
                X = mwVsv(CS, "CS")(1, mwVsv(ii, "ii")); 
                #line 156 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
                Y = mwVsv(CS, "CS")(2, mwVsv(ii, "ii")); 
                // 
                // cX=ceil(X); fX=floor(X); 
                // 
                #line 157 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
                mclMline(157); 
                #line 157 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
                cX = ceil(mwVv(X, "X")); 
                #line 157 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
                fX = floor(mwVv(X, "X")); 
                // 
                // cY=ceil(Y); fY=floor(Y); 
                // 
                #line 158 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
                mclMline(158); 
                #line 158 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
                cY = ceil(mwVv(Y, "Y")); 
                #line 158 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
                fY = floor(mwVv(Y, "Y")); 
                // 
                //  
                // dy=cY-Y;    dx=X-fX; 
                // 
                #line 160 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
                mclMline(160); 
                #line 160 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
                dy = mwVv(cY, "cY") - mwVv(Y, "Y"); 
                #line 160 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
                dx = mwVv(X, "X") - mwVv(fX, "fX"); 
                // 
                //  
                // if (size(x,2)==1),  
                // 
                #line 162 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
                mclMline(162); 
                #line 162 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
                if (tobool(mwVe(size(mwValueVarargout(), mwVv(x, "x"), 2)) == 1)) { 
                    // 
                    // CS(1,ii)=[x(fX)'.*(1-dx)+x(cX)'.*dx]; 
                    // 
                    #line 163 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
                    mclMline(163); 
                    #line 163 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
                    CS(1, mwVsv(ii, "ii")) = times(ctranspose(mwVe(mwVsv(x, "x")(mwVsv(fX, "fX")))), 1 - mwVv(dx, "dx")) + times(ctranspose(mwVe(mwVsv(x, "x")(mwVsv(cX, "cX")))), mwVv(dx, "dx")); 
                // 
                // else 
                // 
                #line 164 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
                mclMline(164); 
                #line 164 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
                } else { 
                    // 
                    // CS(1,ii)=[x(fX).*(1-dx)+x(cX).*dx]; 
                    // 
                    #line 165 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
                    mclMline(165); 
                    #line 165 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
                    CS(1, mwVsv(ii, "ii")) = times(mwVe(mwVsv(x, "x")(mwVsv(fX, "fX"))), 1 - mwVv(dx, "dx")) + times(mwVe(mwVsv(x, "x")(mwVsv(cX, "cX"))), mwVv(dx, "dx")); 
                // 
                // end; 
                // 
                #line 166 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
                mclMline(166); 
                #line 166 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
                } 
                // 
                //  
                // if (size(y,2)==1),  
                // 
                #line 168 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
                mclMline(168); 
                #line 168 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
                if (tobool(mwVe(size(mwValueVarargout(), mwVv(y, "y"), 2)) == 1)) { 
                    // 
                    // CS(2,ii)=[y(fY)'.*dy+y(cY)'.*(1-dy)];  
                    // 
                    #line 169 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
                    mclMline(169); 
                    #line 169 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
                    CS(2, mwVsv(ii, "ii")) = times(ctranspose(mwVe(mwVsv(y, "y")(mwVsv(fY, "fY")))), mwVv(dy, "dy")) + times(ctranspose(mwVe(mwVsv(y, "y")(mwVsv(cY, "cY")))), 1 - mwVv(dy, "dy")); 
                // 
                // else 
                // 
                #line 170 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
                mclMline(170); 
                #line 170 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
                } else { 
                    // 
                    // CS(2,ii)=[y(fY).*dy+y(cY).*(1-dy)];  
                    // 
                    #line 171 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
                    mclMline(171); 
                    #line 171 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
                    CS(2, mwVsv(ii, "ii")) = times(mwVe(mwVsv(y, "y")(mwVsv(fY, "fY"))), mwVv(dy, "dy")) + times(mwVe(mwVsv(y, "y")(mwVsv(cY, "cY"))), 1 - mwVv(dy, "dy")); 
                // 
                // end; 
                // 
                #line 172 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
                mclMline(172); 
                #line 172 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
                } 
            #line 172 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
            } else { 
            #line 172 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
            } 
        #line 172 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
        } 
    // 
    //  
    // end; 
    // 
    #line 174 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
    mclMline(174); 
    #line 174 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
    } 
    // 
    //  
    // 
    #line 175 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
    mclMline(175); 
    #line 175 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
    return_: 
    #line 175 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
    mwValidateOutput(CS, 1, nargout_, "CS", "contours"); 
    #line 175 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
    mwValidateOutput(*msg, 2, nargout_, "msg", "contours"); 
    #line 175 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
    mclMlineFunctionReturn() 
    #line 175 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
    return CS; 
    #line 175 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
    mclMlineExitFunctionReturn(); 
    #line 175 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
} 
 
// 
// The function "Mcontours_veryclose" is the implementation version of the "contours/veryclose" M-function from file "D:\matlab\matlab\toolbox\matlab\specgraph\contours.m" (lines 176-180). It contains the actual compiled code for that M-function. It is a static function and must only be called from one of the interface functions, appearing below. 
// 
// 
// function tf = veryclose(a,b) 
// 
#line 176 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
static mwArray Mcontours_veryclose(int nargout_, mwArray a, mwArray b) { 
    #line 176 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
    mclMlineEnterFunction("D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m", "contours/veryclose") 
    #line 176 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
    mwLocalFunctionTable save_local_function_table_(&_local_function_table_contours); 
    #line 176 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
    mwArray tf(mclGetUninitializedArray()); 
    // 
    // % Return true if the two inputs are very close to each other 
    // tf = all(abs(a-b) <= sqrt(eps)*max(abs(a),abs(b))); 
    // 
    #line 178 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
    mclMline(178); 
    #line 178 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
    tf = all(mwVe(abs(mwVa(a, "a") - mwVa(b, "b"))) <= mwVe(sqrt(mwArray(2.220446049250313e-16))) * mwVe(max(mwVe(abs(mwVa(a, "a"))), mwVe(abs(mwVa(b, "b")))))); 
    #line 178 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
    mwValidateOutput(tf, 1, nargout_, "tf", "contours/veryclose"); 
    #line 178 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
    mclMlineFunctionReturn() 
    #line 178 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
    return tf; 
    // 
    //  
    // 
    #line 179 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
    mclMlineExitFunctionReturn(); 
    #line 179 "D:\\matlab\\matlab\\toolbox\\matlab\\specgraph\\contours.m" 
}