MEX Compile Code

From VISTA LAB WIKI

Jump to: navigation, search

This page shows the status of MATLAB code designed to compile MEX files for the user, taking into account the operating system and MATLAB version, as well as test the files.

[edit] Goals for the project

  1. Write mrvCompile: a MATLAB function which compiles all C source-code files in the VISTASOFT repository, and produces MEX files appropriate for the installation. This function should determine the appropriate compiler to use, and offer to download anything necessary to get the compiler working.
  2. Write mrvMexTest: a MATLAB function which tests all MEX files, providing inputs for which the output is known, and checking that each MEX file gives the appropriate output. This should be written in such a way (lots of comments) that it can also serve as documentation: when testing each MEX file, it should briefly describe what the MEX file is supposed to do.
  3. Integrate these two files into mrvInstall, so that a new user (say, a first-year grad student in psychology) would be able to get up and running without needing to know intimate details of their operating system.

[edit] Rough Outline

  1. October 21-October 31 :
  • Create a mrvCompile which can compile any three C source-code files in the repository, and produce corresponding MEX files.
  • Create a mrvMexTest which tests all the above MEX files, and checks the each MEX file gives appropriate output for given input.
  1. November 3- November 14 :
  • Test and get the mrvCompile and mrvMexTest work (for ten MEX files) on different versions of Matlab on various operating systems.
  1. November 17- Nov 30 :
  • Test and get the mrvCompile and mrvMexTest work (for atleast fourty MEX files) on different versions of Matlab on various operating systems
  1. Dec 1 - Dec 14 :
  • Get the mrvCompile and mrvMexTest work on all the MEX files.

[edit] List of MEX files

Ran find 10/17/08, and found these C files (comments added later):

  • ./mrFlatMesh/CSource/mrManDist.c (This has produced erroneous answers without errors in the past)
  • ./mrFlatMesh/CSource/assignToNearest.c
  • ./mrAlign/regHistogram.c
  • ./mrAlign/C-code/mexglx/SagittalRot.c
  • ./mrAlign/C-code/mexglx/ObliqueRot.c
  • ./mrAlign/C-code/mexglx/myCinterp3.c
  • ./mrAlign/C-code/mexglx/myCinterp3-050499.c (This is old and can be deleted)
  • ./mrAlign/C-code/SagittalRot.c
  • ./mrAlign/C-code/.CSagittalRot.c
  • ./mrAlign/C-code/ObliqueRot.c
  • ./mrAlign/C-code/Version4/SagittalRot.c
  • ./mrAlign/C-code/myCinterp3.c
  • ./mrAlign/C-code/myCinterp3-050499.c (This is old and can be deleted)
  • ./mrAlign/regInplanes.c
  • ./mrLoadRet/Utilities/helperFunctions/pyrTools/MEX/corrDn.c
  • ./mrLoadRet/Utilities/helperFunctions/pyrTools/MEX/histo.c
  • ./mrLoadRet/Utilities/helperFunctions/pyrTools/MEX/mexglx/corrDn.c
  • ./mrLoadRet/Utilities/helperFunctions/pyrTools/MEX/mexglx/histo.c
  • ./mrLoadRet/Utilities/helperFunctions/pyrTools/MEX/mexglx/wrap.c
  • ./mrLoadRet/Utilities/helperFunctions/pyrTools/MEX/mexglx/convolve.c
  • ./mrLoadRet/Utilities/helperFunctions/pyrTools/MEX/mexglx/upConv.c
  • ./mrLoadRet/Utilities/helperFunctions/pyrTools/MEX/mexglx/range2.c
  • ./mrLoadRet/Utilities/helperFunctions/pyrTools/MEX/mexglx/edges-orig.c
  • ./mrLoadRet/Utilities/helperFunctions/pyrTools/MEX/mexglx/edges.c
  • ./mrLoadRet/Utilities/helperFunctions/pyrTools/MEX/mexglx/pointOp.c
  • ./mrLoadRet/Utilities/helperFunctions/pyrTools/MEX/wrap.c
  • ./mrLoadRet/Utilities/helperFunctions/pyrTools/MEX/convolve.c
  • ./mrLoadRet/Utilities/helperFunctions/pyrTools/MEX/upConv.c
  • ./mrLoadRet/Utilities/helperFunctions/pyrTools/MEX/range2.c
  • ./mrLoadRet/Utilities/helperFunctions/pyrTools/MEX/edges-orig.c
  • ./mrLoadRet/Utilities/helperFunctions/pyrTools/MEX/edges.c
  • ./mrLoadRet/Utilities/helperFunctions/pyrTools/MEX/pointOp.c
  • ./mrLoadRet/Utilities/helperFunctions/pyrTools/PCMex/corrDn.c
  • ./mrLoadRet/Utilities/helperFunctions/pyrTools/PCMex/histo.c
  • ./mrLoadRet/Utilities/helperFunctions/pyrTools/PCMex/wrap.c
  • ./mrLoadRet/Utilities/helperFunctions/pyrTools/PCMex/convolve.c
  • ./mrLoadRet/Utilities/helperFunctions/pyrTools/PCMex/upConv.c
  • ./mrLoadRet/Utilities/helperFunctions/pyrTools/PCMex/range2.c
  • ./mrLoadRet/Utilities/helperFunctions/pyrTools/PCMex/edges-orig.c
  • ./mrLoadRet/Utilities/helperFunctions/pyrTools/PCMex/edges.c
  • ./mrLoadRet/Utilities/helperFunctions/pyrTools/PCMex/pointOp.c
  • ./mrLoadRet/Analysis/retinotopyModel_old/Misc/varOfNeighbors.c
  • ./mrLoadRet/Analysis/MotionComp/MI/MI/Joint_Histogram/spm_hist2_weighted.c
  • ./mrLoadRet/Analysis/MotionComp/MI/MI/Joint_Histogram/spm_hist2_weighted_MI.c
  • ./mrLoadRet/Analysis/Copreview/coranal.c
  • ./mrLoadRet/Analysis/SignalProc/sumOfNeighbors.c
  • ./mrLoadRet/Analysis/Atlas/updateTinC.c
  • ./mrLoadRet/Analysis/retinotopyModel/Misc/varOfNeighbors.c
  • ./mrDiffusion/src/dtiFitTensor.c
  • ./mrDiffusion/src/dtiJointHist.c
  • ./mrDiffusion/src/dtiSplitTensor.c
  • ./mrDiffusion/src/dtiTensorInterp_Pajevic.c
  • ./mrDiffusion/src/ndfun.c
  • ./mrDiffusion/src/magicwand1.c
  • ./mrDiffusion/xform/fastDeformation/initInvDiagsInC.c
  • ./mrDiffusion/xform/fastDeformation/trilin.c
  • ./mrDiffusion/file/dtiLoadConTrackPaths.c
  • ./mrAnatomy/VolumeUtilities/mrAnatFastInterp3.c
  • ./mrAnatomy/VolumeUtilities/myCinterp3.c
  • ./mrAnatomy/mrMesh/findNearest.c
  • ./mrAnatomy/mrMesh/tcpToolbox/pnet.c
  • ./mrAnatomy/ManifoldUtilities/Csource/mrManDist.c
  • ./mrAnatomy/ManifoldUtilities/Csource/assignToNearest.c
  • ./mrAnatomy/ManifoldUtilities/Csource/edgesCross2d.c
  • ./mrAnatomy/ManifoldUtilities/Csource/mCheck.c
  • ./mrAnatomy/ManifoldUtilities/Csource/mrCheckNode2dIntersect.c
  • ./fileFilters/nifti/matToQuat.c
  • ./fileFilters/nifti/znzlib.c
  • ./fileFilters/nifti/nifti1_io.c
  • ./fileFilters/nifti/readFileNifti.c
  • ./fileFilters/nifti/writeFileNifti.c
  • ./mrVista2/file/src/znzlib_stable.c
  • ./mrVista2/file/src/nifti1_io_stable.c
  • ./mrVista2/mrMethods/svm/cawleyTools/@rbf/evaluate.c
Personal tools