# Source Code Documentation of IPscatt—a MATLAB Toolbox for the Inverse Medium Problem in Scattering

This is the source code documentation of the toolbox IPscatt.

For a general overview of the software package IPscatt see readme.txt.

Source Code Level (1: public, 2: closed, 3: intern): 2.

The different source code levels are described in readmeLevels.txt.

The source code documentation is structured as follows:

- Read start.html for a brief introduction in the usage of IPscatt and the underlying theory of direct and inverse scattering from inhomogeneous media.
- See programStructure.html for dependencies of functions.
  (Note that this structure only refers to the routines that are available in the public source code, i.e. source code level 1.)
- Below is the structure of files in folders. We provide a source code documentation for each function.
- Furthermore, in setiRef.html are fields of the main structure array seti summarized in one file.
  (The fields are used as input and output and described in the source code documentation of each corresponding file too.)
  (Note that this only summarizes routines that are available in the public source code, i.e. source code level 1.)

## Structure of Files in Folders of IPscatt

#####

demo.m
docCreate.m
init.m
runtests.m
start.m
varalpha.m
varalphabeta.m
varbeta.m
vardelta.m
vartol.m

##### 3rdparty/

gmresKelley.m
gmresKelleyReadme.m

##### addAutoparamClosed/

autoparam3.m
autoparam3alpha.m
autoparam3beta.m
inAuto01init.m
inAuto02eval.m
inAuto03decAlpha.m
inAuto03decBeta.m
inAuto04plot.m

##### addFactClosed/

factMeth.m
factMethMask.m
factMethMaskInc.m
factorizationGuide.m

##### conv/

adjOfDer.m
derivative.m
forward.m
readmeConv.m

##### docCreate/

readmeDocCreate.m

##### docCreate/addMfiles/

programStructure.m
setiRef.m

##### guides/

guideAddNoise.m
guideAdjOfDer.m
guideBorn.m
guideBornInv.m
guideBornk.m
guideContrast.m
guideConvReconStoreLoadCont.m
guideConvSimLoad.m
guideConvSimSave.m
guideDerivative.m
guideExpSetup.m
guideExpSetupForAlgPaper.m
guideExpSetupForAlgPaperMan.m
guideExpSetupRece.m
guideExpSetupRece3D.m
guideExpSetupTrans.m
guideExpSetupTrans3D.m
guideExpSetupTransMan.m
guideForward.m
guideLin.m
guideLoadData.m
guideMatchIncField.m
guideRecon.m
guideRecon3D.m
guideReconDetails.m
guideReconOut.m
guideSetData.m
guideSetDataFresnel.m
guideSetGeomSim.m
guideSetGeomSimDisp.m
guideSetGrid.m
guideSetGrid3D.m
guideSeti.m
guideStop.m
guideWorkingFresnel.m
guideWorkingFresnelContrast.m
readmeGuides.m

##### guides/auxi/

freqID.m
freqToWaveNumber.m
matchIncFieldTrans.m
uSca.m

##### incontrasts/

incontrastsRef.m

##### incontrasts/2D/

corner2D.m
cornerBallSparse2D.m
cornerBallSparseMod2D.m
cross2D.m
empty2D.m
rectangle2D.m
referenceBall2D.m
referenceBallSmooth2D.m
shepp2D.m
triangle2D.m
twoCorners2D.m
twoCornersOneBall2D.m

##### incontrasts/2DClosed/

cornerBall2D.m
cornerCenter2D.m
factMethExample2D.m
ship2D.m
twoCornersOneBall2DnonConstant.m

##### incontrasts/2DClosed/poster/

corner2DPoster.m
twoCorners2DPoster.m
twoCornersOneBall2DPoster.m

##### incontrasts/2DFresnel/

fresnel_op1_dielTM.m
fresnel_op1_rectTM_cent.m
fresnel_op1_twodielTM.m

##### incontrasts/3D/

corner3D.m
cross3D.m
cubeLike3D.m
empty3D.m
referenceBall3D.m
twoTripods3D.m

##### incontrasts/3DClosed/

twoTripodsRealImag3D.m

##### inexpdata/

readmeInexpdata.m

##### inmat/

readmeInmat.m

##### inseti/

example.m
example3D.m
exampleMod.m
fresnel.m
guideConvSimSaveIn.m
readmeInseti.m
runInseti.m
tests.m

##### insetiClosed/

exampleShrink.m
readmeInsetiClosed.m

##### insetiClosed/compIPscatt/

fineDataPaper1default.m
fineDataPaperD3.m
fineDataPaperD3Zcross.m
paper0TolIn.m
paper0TolOut.m
paper1default.m
paper2TolOut.m
paper3TolIn.m
paper3TolInAlpha0.m
paper3TolInAlphaHigh.m
paper3TolInBeta0.m
paper3TolInBetaHigh.m
paper4TolInNonConstant.m
paper5gridScale.m
paperD3.m
paperD3TolIn.m
paperD3TolOut.m
paperD3Zcross.m
paperD3ZcrossTolIn.m
paperD3ZcrossTolOut.m
paperD3continue.m
paperF0default.m
paperF13.m
paperF13TolIn.m
paperF13TolOut.m
paperF15.m
paperF15TolIn.m
paperF15TolOut.m
paperF23.m
paperF23TolIn.m
paperF23TolOut.m
paperF25.m
paperF25TolIn.m
paperF25TolOut.m
paperFresnelSynth.m
paperRun.m
paperRun2Dfresnel.m
paperRun2Dsynth.m
paperRun3D.m
readmeCompIPscatt.m

##### insetiClosed/factMeth/

factMethExample.m
factMethExampleNoReg.m
factMethExampleNoRegNoBounds.m
factMethExampleNoRegNoBoundsNout100.m
readmeFactMeth.m

##### insetiClosed/some3D/

example3Dcross.m
example3Dcube.m
runSome3D.m

##### insetiClosed/tboxIPscatt/

algpaperRun.m
example3Dalg.m
fresnelPda.m
fresnelShrink.m
shipBorePda.m
shipBorePdaNlast.m
shipBoreShrink.m

##### insetiClosed/thesis/

pda3Dtau15.m
pda3Dtau15run.m
pda3Dtau15tolIn.m
pda3Dtau15tolOut.m
shipBoreShrinkWav.m

##### output/

readmeOutput.m

##### proc/auxi/

checkfield.m
setmessage.m

##### proc/auxiClosed/

ldwt.m
whiteNoiseCalc.m

##### proc/expData/

checkConsisExpData.m
expData.m
loadData.m
matchIncField.m
readRAWData.m

##### proc/expSetup/

dS2D.m
dS3D.m
expSetup.m
pntsGeometry.m
pntsGeometry3D.m
setIncField.m
setIncPnts.m
setMeasKer.m
setMeasPnts.m

##### proc/intOps/

helmholtz2Dc2cAdjointf.m
helmholtz2Dc2cf.m
helmholtz2Dr2data.m
helmholtz2Dr2dataAdjoint.m
helmholtz2Dr2r.m
helmholtz2Dr2rAdjoint.m
helmholtz3Dc2cAdjointf.m
helmholtz3Dc2cf.m
helmholtz3Dr2data.m
helmholtz3Dr2dataAdjoint.m
helmholtz3Dr2r.m
helmholtz3Dr2rAdjoint.m
intOpsFuncs.m

##### proc/norms/

innergrad.m
innerhs.m
innerinv.m
innerroi.m
normLp.m
normTVinv1.m
normTVinv2.m
normTVinvAux.m
norminv.m
norminv2.m
normroi.m
normroi2.m
normws.m
normws2.m
opNormNum.m

##### proc/operators/

ADFFqFast.m
diagsparse.m
extendROItoCD.m
gradientNeumann.m
gradientNeumannAdj.m
gridDown.m
gridUp.m
mimo.m
restrictCDtoROI.m
simo.m
solveLippmannSchwinger.m

##### proc/operatorsClosed/

FiW.m

##### proc/plots/

pdaPlot.m
plotAndSaveFigures.m
plotExpSetup.m
plotPredefinedContrast.m
subplots.m

##### proc/plotsAux/

cmapPrint.m
contourPlotROI.m
litman.m
plot2DstylePublish.m
plot3DstylePublish.m
savePngFig.m
savePngFigSimple.m

##### proc/plotsClosed/

plotFigsFromTestpad.m
plotInsidePda.m

##### proc/recon/

checkConsisRec.m
minPda.m
pda.m
recon.m
setFuncsPda.m
setInvType.m
setRecon.m
shrinkFuncs.m

##### proc/reconAux/

intProj.m
minTolIn.m
minTolOut.m
pdaChoosingStepsizes.m

##### proc/reconAuxClosed/

setWavelet.m
shrinkFuncComp.m

##### proc/reconClosed/

minShrink.m
setConSplitMerge.m
setFuncsShrink.m
shrinkage.m

##### proc/setData/

addNoise.m
setContrast.m
setData.m
setGeomSim.m
setGrid.m
setGridScale.m
setIdImagReal.m
setKernel.m
setReshapeVecMat.m

##### proc/setInput/

dirMake.m
setInput.m

##### tests/

testAdjointKdAndKg.m
testDerivative.m
testGridScale.m
testMimo.m
testMimoNearAndFar2D.m

##### tests/auxi/

referenceData2D.m
referenceData3D.m

##### testsClosed/

fresnelMiss.m
fresnelSynthNuMaxVarPublic.m
fresnelSynthPaper.m
runTestsClosed.m
testWavelet.m