You are an expert in writing code in many different languages. Your goal is to perform code completion for the following code, keeping in mind the rest of the code and the file meta data.
    Metadata details:
    filename: patchIND.m
    path of file: ./repos/GIBBON/lib
    
    the code of the file until where you have to start completion: function [IND_F,IND_V]=patchIND(F,V,formOpt)

% function [IND_F,IND_V]=patchIND(F,V,formOpt)
% ------------------------------------------------------------------------
%
% This function computes the neighbouring faces (read elements in the case
% of >3D tesselations) and vertices for the input tesselation specified by
% F and V. The function generates matrices whereby row entries correspond
% to vertices and column entries correspond to neighbouring (according to
% the connectivity in the tesselation specified) vertices in the case IND_V

    
function [IND_F,IND_V]=patchIND(F,V,formOpt)

% function [IND_F,IND_V]=patchIND(F,V,formOpt)
% ------------------------------------------------------------------------
%
% This function computes the neighbouring faces (read elements in the case
% of >3D tesselations) and vertices for the input tesselation specified by
% F and V. The function generates matrices whereby row entries correspond
% to vertices and column entries correspond to neighbouring (according to
% the connectivity in the tesselation specified) vertices in the case IND_V
% and faces in the case of IND_F. 
% If formOpt==2 the output arrays IND_F and IND_V are sparse arrays of size
% [size(V,1),size(V,1)] and [size(V,1),size(F,1)] respectively. However if
% formOpt==1 (DEFAULT) or not specified then the output array is instead a
% full array whose size in the column direction is smaller and depend