├── DataSet Proj ├── Alcatraz Courtyard.mat ├── Alcatraz Water Tower.mat ├── Buddah Tooth.mat ├── Cherub.mat ├── Corridor.mat ├── De Guerre.mat ├── Dino 319.mat ├── Dino 4983.mat ├── Dome.mat ├── Drinking Fountain.mat ├── Folke Filbyter.mat ├── Golden Statue.mat ├── Gustav Vasa.mat ├── House.mat ├── Jonas Ahls.mat ├── Nijo.mat ├── Park Gate.mat ├── Porta san Donato.mat ├── Pumpkin.mat ├── Skansen Kronan.mat ├── Smolny Cathedral.mat ├── Sphinx.mat ├── Sri Thendayuthapani.mat ├── Toronto University.mat └── Tsar Nikolai I.mat ├── GPSFM ├── 3rdparty │ ├── fromPPSFM │ │ ├── forSelfCalibration │ │ │ ├── SeDuMi_1_3 │ │ │ │ └── SeDuMi_1_3 │ │ │ │ │ ├── Amul.m │ │ │ │ │ ├── Changelog.txt │ │ │ │ │ ├── Contents.m │ │ │ │ │ ├── Install.txt │ │ │ │ │ ├── PopK.m │ │ │ │ │ ├── Readme.txt │ │ │ │ │ ├── Version.txt │ │ │ │ │ ├── ada_pcg.m │ │ │ │ │ ├── adendotd.c │ │ │ │ │ ├── adendotd.m │ │ │ │ │ ├── adendotd.mexa64 │ │ │ │ │ ├── adendotd.mexglx │ │ │ │ │ ├── adendotd.mexmaci │ │ │ │ │ ├── adendotd.mexmaci64 │ │ │ │ │ ├── adendotd.mexw32 │ │ │ │ │ ├── adendotd.mexw64 │ │ │ │ │ ├── adenscale.c │ │ │ │ │ ├── adenscale.mexa64 │ │ │ │ │ ├── adenscale.mexglx │ │ │ │ │ ├── adenscale.mexmaci │ │ │ │ │ ├── adenscale.mexmaci64 │ │ │ │ │ ├── adenscale.mexw32 │ │ │ │ │ ├── adenscale.mexw64 │ │ │ │ │ ├── asmDxq.m │ │ │ │ │ ├── auxfwdpr1.c │ │ │ │ │ ├── auxgivens.c │ │ │ │ │ ├── blkaux.c │ │ │ │ │ ├── blkchol.c │ │ │ │ │ ├── blkchol.m │ │ │ │ │ ├── blkchol.mexa64 │ │ │ │ │ ├── blkchol.mexglx │ │ │ │ │ ├── blkchol.mexmaci │ │ │ │ │ ├── blkchol.mexmaci64 │ │ │ │ │ ├── blkchol.mexw32 │ │ │ │ │ ├── blkchol.mexw64 │ │ │ │ │ ├── blkchol2.c │ │ │ │ │ ├── blkmul.c │ │ │ │ │ ├── blksdp.h │ │ │ │ │ ├── bwblkslv.c │ │ │ │ │ ├── bwblkslv.m │ │ │ │ │ ├── bwblkslv.mexa64 │ │ │ │ │ ├── bwblkslv.mexglx │ │ │ │ │ ├── bwblkslv.mexmaci │ │ │ │ │ ├── bwblkslv.mexmaci64 │ │ │ │ │ ├── bwblkslv.mexw32 │ │ │ │ │ ├── bwblkslv.mexw64 │ │ │ │ │ ├── bwblkslv2.c │ │ │ │ │ ├── bwdpr1.c │ │ │ │ │ ├── bwdpr1.m │ │ │ │ │ ├── bwdpr1.mexa64 │ │ │ │ │ ├── bwdpr1.mexglx │ │ │ │ │ ├── bwdpr1.mexmaci │ │ │ │ │ ├── bwdpr1.mexmaci64 │ │ │ │ │ ├── bwdpr1.mexw32 │ │ │ │ │ ├── bwdpr1.mexw64 │ │ │ │ │ ├── cellK.m │ │ │ │ │ ├── checkpars.m │ │ │ │ │ ├── cholsplit.c │ │ │ │ │ ├── cholsplit.mexa64 │ │ │ │ │ ├── cholsplit.mexglx │ │ │ │ │ ├── cholsplit.mexmaci │ │ │ │ │ ├── cholsplit.mexmaci64 │ │ │ │ │ ├── cholsplit.mexw32 │ │ │ │ │ ├── cholsplit.mexw64 │ │ │ │ │ ├── choltmpsiz.c │ │ │ │ │ ├── choltmpsiz.mexa64 │ │ │ │ │ ├── choltmpsiz.mexglx │ │ │ │ │ ├── choltmpsiz.mexmaci │ │ │ │ │ ├── choltmpsiz.mexmaci64 │ │ │ │ │ ├── choltmpsiz.mexw32 │ │ │ │ │ ├── choltmpsiz.mexw64 │ │ │ │ │ ├── conversion │ │ │ │ │ ├── Contents.m │ │ │ │ │ ├── blk2vec.m │ │ │ │ │ ├── feascpx.m │ │ │ │ │ ├── feasreal.m │ │ │ │ │ ├── frompack.m │ │ │ │ │ ├── fromsdpa.m │ │ │ │ │ ├── getproblem.m │ │ │ │ │ ├── prelp.m │ │ │ │ │ ├── sdpa2vec.m │ │ │ │ │ ├── sdpasplit.m │ │ │ │ │ └── writesdp.m │ │ │ │ │ ├── ddot.c │ │ │ │ │ ├── ddot.m │ │ │ │ │ ├── ddot.mexa64 │ │ │ │ │ ├── ddot.mexglx │ │ │ │ │ ├── ddot.mexmaci │ │ │ │ │ ├── ddot.mexmaci64 │ │ │ │ │ ├── ddot.mexw32 │ │ │ │ │ ├── ddot.mexw64 │ │ │ │ │ ├── deninfac.m │ │ │ │ │ ├── dimacserrors.m │ │ │ │ │ ├── doc │ │ │ │ │ ├── SeDuMi_Guide_105R5.pdf │ │ │ │ │ ├── SeDuMi_Guide_105R5.ps │ │ │ │ │ ├── SeDuMi_Guide_11.pdf │ │ │ │ │ └── SeDuMi_Guide_11.ps │ │ │ │ │ ├── dpr1fact.c │ │ │ │ │ ├── dpr1fact.m │ │ │ │ │ ├── dpr1fact.mexa64 │ │ │ │ │ ├── dpr1fact.mexglx │ │ │ │ │ ├── dpr1fact.mexmaci │ │ │ │ │ ├── dpr1fact.mexmaci64 │ │ │ │ │ ├── dpr1fact.mexw32 │ │ │ │ │ ├── dpr1fact.mexw64 │ │ │ │ │ ├── eigK.c │ │ │ │ │ ├── eigK.m │ │ │ │ │ ├── eigK.mexa64 │ │ │ │ │ ├── eigK.mexglx │ │ │ │ │ ├── eigK.mexmaci │ │ │ │ │ ├── eigK.mexmaci64 │ │ │ │ │ ├── eigK.mexw32 │ │ │ │ │ ├── eigK.mexw64 │ │ │ │ │ ├── examples │ │ │ │ │ ├── Examples.txt │ │ │ │ │ ├── OH_2Pi_STO-6GN9r12g1T2.mat │ │ │ │ │ ├── arch0.mat │ │ │ │ │ ├── control07.mat │ │ │ │ │ ├── nb.mat │ │ │ │ │ └── trto3.mat │ │ │ │ │ ├── extractA.c │ │ │ │ │ ├── extractA.m │ │ │ │ │ ├── extractA.mexa64 │ │ │ │ │ ├── extractA.mexglx │ │ │ │ │ ├── extractA.mexmaci │ │ │ │ │ ├── extractA.mexmaci64 │ │ │ │ │ ├── extractA.mexw32 │ │ │ │ │ ├── extractA.mexw64 │ │ │ │ │ ├── eyeK.c │ │ │ │ │ ├── eyeK.m │ │ │ │ │ ├── eyeK.mexa64 │ │ │ │ │ ├── eyeK.mexglx │ │ │ │ │ ├── eyeK.mexmaci │ │ │ │ │ ├── eyeK.mexmaci64 │ │ │ │ │ ├── eyeK.mexw32 │ │ │ │ │ ├── eyeK.mexw64 │ │ │ │ │ ├── findblks.c │ │ │ │ │ ├── findblks.m │ │ │ │ │ ├── findblks.mexa64 │ │ │ │ │ ├── findblks.mexglx │ │ │ │ │ ├── findblks.mexmaci │ │ │ │ │ ├── findblks.mexmaci64 │ │ │ │ │ ├── findblks.mexw32 │ │ │ │ │ ├── findblks.mexw64 │ │ │ │ │ ├── finsymbden.c │ │ │ │ │ ├── finsymbden.m │ │ │ │ │ ├── finsymbden.mexa64 │ │ │ │ │ ├── finsymbden.mexglx │ │ │ │ │ ├── finsymbden.mexmaci │ │ │ │ │ ├── finsymbden.mexmaci64 │ │ │ │ │ ├── finsymbden.mexw32 │ │ │ │ │ ├── finsymbden.mexw64 │ │ │ │ │ ├── frameit.m │ │ │ │ │ ├── fwblkslv.c │ │ │ │ │ ├── fwblkslv.m │ │ │ │ │ ├── fwblkslv.mexa64 │ │ │ │ │ ├── fwblkslv.mexglx │ │ │ │ │ ├── fwblkslv.mexmaci │ │ │ │ │ ├── fwblkslv.mexmaci64 │ │ │ │ │ ├── fwblkslv.mexw32 │ │ │ │ │ ├── fwblkslv.mexw64 │ │ │ │ │ ├── fwdpr1.c │ │ │ │ │ ├── fwdpr1.m │ │ │ │ │ ├── fwdpr1.mexa64 │ │ │ │ │ ├── fwdpr1.mexglx │ │ │ │ │ ├── fwdpr1.mexmaci │ │ │ │ │ ├── fwdpr1.mexmaci64 │ │ │ │ │ ├── fwdpr1.mexw32 │ │ │ │ │ ├── fwdpr1.mexw64 │ │ │ │ │ ├── getDAt.m │ │ │ │ │ ├── getDAtm.m │ │ │ │ │ ├── getada.m │ │ │ │ │ ├── getada1.c │ │ │ │ │ ├── getada1.m │ │ │ │ │ ├── getada1.mexa64 │ │ │ │ │ ├── getada1.mexglx │ │ │ │ │ ├── getada1.mexmaci │ │ │ │ │ ├── getada1.mexmaci64 │ │ │ │ │ ├── getada1.mexw32 │ │ │ │ │ ├── getada1.mexw64 │ │ │ │ │ ├── getada2.c │ │ │ │ │ ├── getada2.m │ │ │ │ │ ├── getada2.mexa64 │ │ │ │ │ ├── getada2.mexglx │ │ │ │ │ ├── getada2.mexmaci │ │ │ │ │ ├── getada2.mexmaci64 │ │ │ │ │ ├── getada2.mexw32 │ │ │ │ │ ├── getada2.mexw64 │ │ │ │ │ ├── getada3.c │ │ │ │ │ ├── getada3.m │ │ │ │ │ ├── getada3.mexa64 │ │ │ │ │ ├── getada3.mexglx │ │ │ │ │ ├── getada3.mexmaci │ │ │ │ │ ├── getada3.mexmaci64 │ │ │ │ │ ├── getada3.mexw32 │ │ │ │ │ ├── getada3.mexw64 │ │ │ │ │ ├── getdense.m │ │ │ │ │ ├── getsymbada.m │ │ │ │ │ ├── givens.h │ │ │ │ │ ├── givensrot.c │ │ │ │ │ ├── givensrot.m │ │ │ │ │ ├── givensrot.mexa64 │ │ │ │ │ ├── givensrot.mexglx │ │ │ │ │ ├── givensrot.mexmaci │ │ │ │ │ ├── givensrot.mexmaci64 │ │ │ │ │ ├── givensrot.mexw32 │ │ │ │ │ ├── givensrot.mexw64 │ │ │ │ │ ├── incorder.c │ │ │ │ │ ├── incorder.m │ │ │ │ │ ├── incorder.mexa64 │ │ │ │ │ ├── incorder.mexglx │ │ │ │ │ ├── incorder.mexmaci │ │ │ │ │ ├── incorder.mexmaci64 │ │ │ │ │ ├── incorder.mexw32 │ │ │ │ │ ├── incorder.mexw64 │ │ │ │ │ ├── install_sedumi.m │ │ │ │ │ ├── invcholfac.c │ │ │ │ │ ├── invcholfac.m │ │ │ │ │ ├── invcholfac.mexa64 │ │ │ │ │ ├── invcholfac.mexglx │ │ │ │ │ ├── invcholfac.mexmaci │ │ │ │ │ ├── invcholfac.mexmaci64 │ │ │ │ │ ├── invcholfac.mexw32 │ │ │ │ │ ├── invcholfac.mexw64 │ │ │ │ │ ├── iswnbr.c │ │ │ │ │ ├── iswnbr.m │ │ │ │ │ ├── iswnbr.mexa64 │ │ │ │ │ ├── iswnbr.mexglx │ │ │ │ │ ├── iswnbr.mexmaci │ │ │ │ │ ├── iswnbr.mexmaci64 │ │ │ │ │ ├── iswnbr.mexw32 │ │ │ │ │ ├── iswnbr.mexw64 │ │ │ │ │ ├── loopPcg.m │ │ │ │ │ ├── mJdetd.c │ │ │ │ │ ├── makereal.c │ │ │ │ │ ├── makereal.m │ │ │ │ │ ├── makereal.mexa64 │ │ │ │ │ ├── makereal.mexglx │ │ │ │ │ ├── makereal.mexmaci │ │ │ │ │ ├── makereal.mexmaci64 │ │ │ │ │ ├── makereal.mexw32 │ │ │ │ │ ├── makereal.mexw64 │ │ │ │ │ ├── mat.m │ │ │ │ │ ├── maxstep.m │ │ │ │ │ ├── minpsdeig.m │ │ │ │ │ ├── my_fprintf.m │ │ │ │ │ ├── optstep.m │ │ │ │ │ ├── ordmmd.c │ │ │ │ │ ├── ordmmdmex.c │ │ │ │ │ ├── ordmmdmex.m │ │ │ │ │ ├── ordmmdmex.mexa64 │ │ │ │ │ ├── ordmmdmex.mexglx │ │ │ │ │ ├── ordmmdmex.mexmaci │ │ │ │ │ ├── ordmmdmex.mexmaci64 │ │ │ │ │ ├── ordmmdmex.mexw32 │ │ │ │ │ ├── ordmmdmex.mexw64 │ │ │ │ │ ├── partitA.c │ │ │ │ │ ├── partitA.m │ │ │ │ │ ├── partitA.mexa64 │ │ │ │ │ ├── partitA.mexglx │ │ │ │ │ ├── partitA.mexmaci │ │ │ │ │ ├── partitA.mexmaci64 │ │ │ │ │ ├── partitA.mexw32 │ │ │ │ │ ├── partitA.mexw64 │ │ │ │ │ ├── postprocessSDP.m │ │ │ │ │ ├── posttransfo.m │ │ │ │ │ ├── preprocessSDP.m │ │ │ │ │ ├── pretransfo.m │ │ │ │ │ ├── psdeig.c │ │ │ │ │ ├── psdeig.m │ │ │ │ │ ├── psdfactor.c │ │ │ │ │ ├── psdfactor.m │ │ │ │ │ ├── psdframeit.c │ │ │ │ │ ├── psdframeit.mexa64 │ │ │ │ │ ├── psdframeit.mexglx │ │ │ │ │ ├── psdframeit.mexmaci │ │ │ │ │ ├── psdframeit.mexmaci64 │ │ │ │ │ ├── psdframeit.mexw32 │ │ │ │ │ ├── psdframeit.mexw64 │ │ │ │ │ ├── psdinvjmul.c │ │ │ │ │ ├── psdinvjmul.m │ │ │ │ │ ├── psdinvjmul.mexa64 │ │ │ │ │ ├── psdinvjmul.mexglx │ │ │ │ │ ├── psdinvjmul.mexmaci │ │ │ │ │ ├── psdinvjmul.mexmaci64 │ │ │ │ │ ├── psdinvjmul.mexw32 │ │ │ │ │ ├── psdinvjmul.mexw64 │ │ │ │ │ ├── psdinvscale.c │ │ │ │ │ ├── psdinvscale.m │ │ │ │ │ ├── psdjmul.c │ │ │ │ │ ├── psdjmul.m │ │ │ │ │ ├── psdscale.c │ │ │ │ │ ├── psdscale.m │ │ │ │ │ ├── qblkmul.c │ │ │ │ │ ├── qblkmul.m │ │ │ │ │ ├── qblkmul.mexa64 │ │ │ │ │ ├── qblkmul.mexglx │ │ │ │ │ ├── qblkmul.mexmaci │ │ │ │ │ ├── qblkmul.mexmaci64 │ │ │ │ │ ├── qblkmul.mexw32 │ │ │ │ │ ├── qblkmul.mexw64 │ │ │ │ │ ├── qframeit.m │ │ │ │ │ ├── qinvjmul.m │ │ │ │ │ ├── qjmul.m │ │ │ │ │ ├── qrK.c │ │ │ │ │ ├── qrK.mexa64 │ │ │ │ │ ├── qrK.mexglx │ │ │ │ │ ├── qrK.mexmaci │ │ │ │ │ ├── qrK.mexmaci64 │ │ │ │ │ ├── qrK.mexw32 │ │ │ │ │ ├── qrK.mexw64 │ │ │ │ │ ├── qreshape.c │ │ │ │ │ ├── qreshape.m │ │ │ │ │ ├── qreshape.mexa64 │ │ │ │ │ ├── qreshape.mexglx │ │ │ │ │ ├── qreshape.mexmaci │ │ │ │ │ ├── qreshape.mexmaci64 │ │ │ │ │ ├── qreshape.mexw32 │ │ │ │ │ ├── qreshape.mexw64 │ │ │ │ │ ├── quadadd.c │ │ │ │ │ ├── quadadd.m │ │ │ │ │ ├── quadadd.mexa64 │ │ │ │ │ ├── quadadd.mexglx │ │ │ │ │ ├── quadadd.mexmaci │ │ │ │ │ ├── quadadd.mexmaci64 │ │ │ │ │ ├── quadadd.mexw32 │ │ │ │ │ ├── quadadd.mexw64 │ │ │ │ │ ├── reflect.c │ │ │ │ │ ├── reflect.h │ │ │ │ │ ├── rotlorentz.m │ │ │ │ │ ├── sddir.m │ │ │ │ │ ├── sdfactor.m │ │ │ │ │ ├── sdinit.m │ │ │ │ │ ├── sdmauxCmp.c │ │ │ │ │ ├── sdmauxCone.c │ │ │ │ │ ├── sdmauxFill.c │ │ │ │ │ ├── sdmauxRdot.c │ │ │ │ │ ├── sdmauxScalarmul.c │ │ │ │ │ ├── sdmauxTriu.c │ │ │ │ │ ├── sdmauxTriudot.c │ │ │ │ │ ├── sedumi.m │ │ │ │ │ ├── sortnnz.c │ │ │ │ │ ├── sortnnz.m │ │ │ │ │ ├── sortnnz.mexa64 │ │ │ │ │ ├── sortnnz.mexglx │ │ │ │ │ ├── sortnnz.mexmaci │ │ │ │ │ ├── sortnnz.mexmaci64 │ │ │ │ │ ├── sortnnz.mexw32 │ │ │ │ │ ├── sortnnz.mexw64 │ │ │ │ │ ├── sparbwslv.m │ │ │ │ │ ├── sparfwslv.m │ │ │ │ │ ├── spars.m │ │ │ │ │ ├── spscale.c │ │ │ │ │ ├── sqrtinv.c │ │ │ │ │ ├── sqrtinv.m │ │ │ │ │ ├── sqrtinv.mexa64 │ │ │ │ │ ├── sqrtinv.mexglx │ │ │ │ │ ├── sqrtinv.mexmaci │ │ │ │ │ ├── sqrtinv.mexmaci64 │ │ │ │ │ ├── sqrtinv.mexw32 │ │ │ │ │ ├── sqrtinv.mexw64 │ │ │ │ │ ├── statsK.c │ │ │ │ │ ├── statsK.m │ │ │ │ │ ├── statsK.mexa64 │ │ │ │ │ ├── statsK.mexglx │ │ │ │ │ ├── statsK.mexmaci │ │ │ │ │ ├── statsK.mexmaci64 │ │ │ │ │ ├── statsK.mexw32 │ │ │ │ │ ├── statsK.mexw64 │ │ │ │ │ ├── stepdif.m │ │ │ │ │ ├── symbchol.c │ │ │ │ │ ├── symbchol.m │ │ │ │ │ ├── symbcholden.m │ │ │ │ │ ├── symbfwblk.c │ │ │ │ │ ├── symbfwblk.mexa64 │ │ │ │ │ ├── symbfwblk.mexglx │ │ │ │ │ ├── symbfwblk.mexmaci │ │ │ │ │ ├── symbfwblk.mexmaci64 │ │ │ │ │ ├── symbfwblk.mexw32 │ │ │ │ │ ├── symbfwblk.mexw64 │ │ │ │ │ ├── symfct.c │ │ │ │ │ ├── symfctmex.c │ │ │ │ │ ├── symfctmex.m │ │ │ │ │ ├── symfctmex.mexa64 │ │ │ │ │ ├── symfctmex.mexglx │ │ │ │ │ ├── symfctmex.mexmaci │ │ │ │ │ ├── symfctmex.mexmaci64 │ │ │ │ │ ├── symfctmex.mexw32 │ │ │ │ │ ├── symfctmex.mexw64 │ │ │ │ │ ├── tdet.m │ │ │ │ │ ├── triuaux.c │ │ │ │ │ ├── triuaux.h │ │ │ │ │ ├── triumtriu.c │ │ │ │ │ ├── triumtriu.m │ │ │ │ │ ├── trydif.m │ │ │ │ │ ├── updtransfo.m │ │ │ │ │ ├── urotorder.c │ │ │ │ │ ├── urotorder.m │ │ │ │ │ ├── urotorder.mexa64 │ │ │ │ │ ├── urotorder.mexglx │ │ │ │ │ ├── urotorder.mexmaci │ │ │ │ │ ├── urotorder.mexmaci64 │ │ │ │ │ ├── urotorder.mexw32 │ │ │ │ │ ├── urotorder.mexw64 │ │ │ │ │ ├── vec.m │ │ │ │ │ ├── veccomplex.m │ │ │ │ │ ├── vecsym.c │ │ │ │ │ ├── vecsym.m │ │ │ │ │ ├── vecsym.mexa64 │ │ │ │ │ ├── vecsym.mexglx │ │ │ │ │ ├── vecsym.mexmaci │ │ │ │ │ ├── vecsym.mexmaci64 │ │ │ │ │ ├── vecsym.mexw32 │ │ │ │ │ ├── vecsym.mexw64 │ │ │ │ │ ├── vectril.c │ │ │ │ │ ├── vectril.m │ │ │ │ │ ├── vectril.mexa64 │ │ │ │ │ ├── vectril.mexglx │ │ │ │ │ ├── vectril.mexmaci │ │ │ │ │ ├── vectril.mexmaci64 │ │ │ │ │ ├── vectril.mexw32 │ │ │ │ │ ├── vectril.mexw64 │ │ │ │ │ ├── whichcpx.c │ │ │ │ │ ├── whichcpx.m │ │ │ │ │ ├── whichcpx.mexa64 │ │ │ │ │ ├── whichcpx.mexglx │ │ │ │ │ ├── whichcpx.mexmaci │ │ │ │ │ ├── whichcpx.mexmaci64 │ │ │ │ │ ├── whichcpx.mexw32 │ │ │ │ │ ├── whichcpx.mexw64 │ │ │ │ │ ├── widelen.m │ │ │ │ │ ├── wrapPcg.m │ │ │ │ │ └── wregion.m │ │ │ ├── gloptipoly3.tar │ │ │ │ └── gloptipoly3 │ │ │ │ │ ├── @meas │ │ │ │ │ ├── display.m │ │ │ │ │ ├── double.m │ │ │ │ │ ├── indmeas.m │ │ │ │ │ ├── mass.m │ │ │ │ │ ├── meas.m │ │ │ │ │ ├── mext.m │ │ │ │ │ ├── mmat.m │ │ │ │ │ ├── mvec.m │ │ │ │ │ ├── set.m │ │ │ │ │ └── supcon.m │ │ │ │ │ ├── @mom │ │ │ │ │ ├── consistent.m │ │ │ │ │ ├── deg.m │ │ │ │ │ ├── diag.m │ │ │ │ │ ├── display.m │ │ │ │ │ ├── double.m │ │ │ │ │ ├── eq.m │ │ │ │ │ ├── ge.m │ │ │ │ │ ├── gt.m │ │ │ │ │ ├── indmeas.m │ │ │ │ │ ├── indvar.m │ │ │ │ │ ├── le.m │ │ │ │ │ ├── lt.m │ │ │ │ │ ├── max.m │ │ │ │ │ ├── min.m │ │ │ │ │ ├── minus.m │ │ │ │ │ ├── mom.m │ │ │ │ │ ├── mpol.m │ │ │ │ │ ├── mtimes.m │ │ │ │ │ ├── plus.m │ │ │ │ │ ├── reduce.m │ │ │ │ │ ├── split.m │ │ │ │ │ ├── times.m │ │ │ │ │ ├── trace.m │ │ │ │ │ └── uminus.m │ │ │ │ │ ├── @momcon │ │ │ │ │ ├── display.m │ │ │ │ │ ├── left.m │ │ │ │ │ ├── momcon.m │ │ │ │ │ ├── right.m │ │ │ │ │ ├── subs.m │ │ │ │ │ └── type.m │ │ │ │ │ ├── @mpol │ │ │ │ │ ├── assign.m │ │ │ │ │ ├── coef.m │ │ │ │ │ ├── consistent.m │ │ │ │ │ ├── deg.m │ │ │ │ │ ├── det.m │ │ │ │ │ ├── diag.m │ │ │ │ │ ├── diff.m │ │ │ │ │ ├── display.m │ │ │ │ │ ├── double.m │ │ │ │ │ ├── eq.m │ │ │ │ │ ├── ge.m │ │ │ │ │ ├── gt.m │ │ │ │ │ ├── indmeas.m │ │ │ │ │ ├── indvar.m │ │ │ │ │ ├── isequal.m │ │ │ │ │ ├── isvar.m │ │ │ │ │ ├── le.m │ │ │ │ │ ├── listvar.m │ │ │ │ │ ├── locate.m │ │ │ │ │ ├── lt.m │ │ │ │ │ ├── mass.m │ │ │ │ │ ├── mat.m │ │ │ │ │ ├── max.m │ │ │ │ │ ├── min.m │ │ │ │ │ ├── minus.m │ │ │ │ │ ├── mldivide.m │ │ │ │ │ ├── mmon.m │ │ │ │ │ ├── mpol.m │ │ │ │ │ ├── mpower.m │ │ │ │ │ ├── mrdivide.m │ │ │ │ │ ├── mtimes.m │ │ │ │ │ ├── plus.m │ │ │ │ │ ├── pow.m │ │ │ │ │ ├── power.m │ │ │ │ │ ├── prod.m │ │ │ │ │ ├── reduce.m │ │ │ │ │ ├── scale.m │ │ │ │ │ ├── subs.m │ │ │ │ │ ├── sum.m │ │ │ │ │ ├── times.m │ │ │ │ │ ├── trace.m │ │ │ │ │ ├── uminus.m │ │ │ │ │ ├── vec.m │ │ │ │ │ └── vectorize.m │ │ │ │ │ ├── @msdp │ │ │ │ │ ├── display.m │ │ │ │ │ ├── meas.m │ │ │ │ │ ├── momcon.m │ │ │ │ │ ├── msdp.m │ │ │ │ │ ├── msedumi.m │ │ │ │ │ ├── msol.m │ │ │ │ │ ├── msol.m~ │ │ │ │ │ ├── myalmip.m │ │ │ │ │ └── supcon.m │ │ │ │ │ ├── @supcon │ │ │ │ │ ├── display.m │ │ │ │ │ ├── left.m │ │ │ │ │ ├── right.m │ │ │ │ │ ├── subs.m │ │ │ │ │ ├── supcon.m │ │ │ │ │ └── type.m │ │ │ │ │ ├── doc │ │ │ │ │ └── gloptipoly3.pdf │ │ │ │ │ ├── genind.m │ │ │ │ │ ├── genmom.m │ │ │ │ │ ├── genpow.m │ │ │ │ │ ├── gloptipolydemo.m │ │ │ │ │ ├── gloptipolyversion.m │ │ │ │ │ ├── locpow.m │ │ │ │ │ ├── mass.m │ │ │ │ │ ├── mext.m │ │ │ │ │ ├── mset.m │ │ │ │ │ └── pow2ind.m │ │ │ └── runSelfCalibration.m │ │ ├── normtrans.m │ │ └── ppsfm_reproj_error.m │ └── vgg_code │ │ ├── vgg_KR_from_P.m │ │ ├── vgg_X_from_xP_lin.m │ │ ├── vgg_X_from_xP_nonlin.m │ │ ├── vgg_contreps.m │ │ └── vgg_rq.m ├── BAceres.mexa64 ├── BAceres.mexw64 ├── Preprocessing │ ├── Example.mat │ ├── ProcessScript.m │ ├── converPointInlier.m │ ├── getNormalizationMatBuilding.m │ └── preProcess.m ├── TripletError.m ├── buildTripletsAviodCollinearFast.m ├── compileMex │ ├── BAceres.cpp │ ├── compileMexLinux.m │ └── compileMexWindows.m ├── dilutePoint.m ├── extractTripletsFromViewingGraph.m ├── findHomography.m ├── get3Dpoint.m ├── getBigFfromCameras.m ├── getCameraMatrices.m ├── getCollinearityMeasurement.m ├── getCrossM.m ├── getNormalizationMatBigCondition.m ├── getProjectiveCameraMatrices.m ├── improveSolutionBACeres.m ├── makeMinimalGraph.m ├── normalizeF.m ├── normalizeForbineusNorm.m ├── optimizeGivenTriplets.m ├── optimizeTripletsIRLS.m ├── pnorm.m ├── prepareDataForRep.m ├── projectF.m ├── projectivePipeline.m ├── projectivePipelineSelfCalibrate.m ├── runAll.m └── runProjective.m └── README.md /DataSet Proj/Alcatraz Courtyard.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/DataSet Proj/Alcatraz Courtyard.mat -------------------------------------------------------------------------------- /DataSet Proj/Alcatraz Water Tower.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/DataSet Proj/Alcatraz Water Tower.mat -------------------------------------------------------------------------------- /DataSet Proj/Buddah Tooth.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/DataSet Proj/Buddah Tooth.mat -------------------------------------------------------------------------------- /DataSet Proj/Cherub.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/DataSet Proj/Cherub.mat -------------------------------------------------------------------------------- /DataSet Proj/Corridor.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/DataSet Proj/Corridor.mat -------------------------------------------------------------------------------- /DataSet Proj/De Guerre.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/DataSet Proj/De Guerre.mat -------------------------------------------------------------------------------- /DataSet Proj/Dino 319.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/DataSet Proj/Dino 319.mat -------------------------------------------------------------------------------- /DataSet Proj/Dino 4983.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/DataSet Proj/Dino 4983.mat -------------------------------------------------------------------------------- /DataSet Proj/Dome.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/DataSet Proj/Dome.mat -------------------------------------------------------------------------------- /DataSet Proj/Drinking Fountain.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/DataSet Proj/Drinking Fountain.mat -------------------------------------------------------------------------------- /DataSet Proj/Folke Filbyter.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/DataSet Proj/Folke Filbyter.mat -------------------------------------------------------------------------------- /DataSet Proj/Golden Statue.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/DataSet Proj/Golden Statue.mat -------------------------------------------------------------------------------- /DataSet Proj/Gustav Vasa.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/DataSet Proj/Gustav Vasa.mat -------------------------------------------------------------------------------- /DataSet Proj/House.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/DataSet Proj/House.mat -------------------------------------------------------------------------------- /DataSet Proj/Jonas Ahls.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/DataSet Proj/Jonas Ahls.mat -------------------------------------------------------------------------------- /DataSet Proj/Nijo.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/DataSet Proj/Nijo.mat -------------------------------------------------------------------------------- /DataSet Proj/Park Gate.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/DataSet Proj/Park Gate.mat -------------------------------------------------------------------------------- /DataSet Proj/Porta san Donato.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/DataSet Proj/Porta san Donato.mat -------------------------------------------------------------------------------- /DataSet Proj/Pumpkin.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/DataSet Proj/Pumpkin.mat -------------------------------------------------------------------------------- /DataSet Proj/Skansen Kronan.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/DataSet Proj/Skansen Kronan.mat -------------------------------------------------------------------------------- /DataSet Proj/Smolny Cathedral.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/DataSet Proj/Smolny Cathedral.mat -------------------------------------------------------------------------------- /DataSet Proj/Sphinx.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/DataSet Proj/Sphinx.mat -------------------------------------------------------------------------------- /DataSet Proj/Sri Thendayuthapani.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/DataSet Proj/Sri Thendayuthapani.mat -------------------------------------------------------------------------------- /DataSet Proj/Toronto University.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/DataSet Proj/Toronto University.mat -------------------------------------------------------------------------------- /DataSet Proj/Tsar Nikolai I.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/DataSet Proj/Tsar Nikolai I.mat -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/Changelog.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/Changelog.txt -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/Install.txt: -------------------------------------------------------------------------------- 1 | Welcome to SeDuMi 1.3 2 | 3 | SeDuMi 1.3 Installation instructions 4 | 5 | This version of SeDuMi comes with binaries for recent (tested up to Matlab 2009b) versions of Matlab in both 32 bit and 64 bit flavour under Windows, Linux and Mac OS. In case the binaries don't work for your system, try to run install_sedumi. Note that you may have to install a compiler for Matlab first. 6 | 7 | If you encounter any problems, you can post your question on the SeDuMi forum at http://sedumi.ie.lehigh.edu 8 | 9 | 10 | ==========> L e t Se Du Mi s e d u c e y o u t o o ! <========== 11 | Imre Polik 12 | April 6, 2010 13 | -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/Version.txt: -------------------------------------------------------------------------------- 1 | 1.30 2 | 20100405 3 | -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/ada_pcg.m: -------------------------------------------------------------------------------- 1 | %A dummy file for Yalmip. -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/adendotd.mexa64: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/adendotd.mexa64 -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/adendotd.mexglx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/adendotd.mexglx -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/adendotd.mexmaci: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/adendotd.mexmaci -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/adendotd.mexmaci64: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/adendotd.mexmaci64 -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/adendotd.mexw32: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/adendotd.mexw32 -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/adendotd.mexw64: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/adendotd.mexw64 -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/adenscale.mexa64: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/adenscale.mexa64 -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/adenscale.mexglx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/adenscale.mexglx -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/adenscale.mexmaci: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/adenscale.mexmaci -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/adenscale.mexmaci64: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/adenscale.mexmaci64 -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/adenscale.mexw32: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/adenscale.mexw32 -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/adenscale.mexw64: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/adenscale.mexw64 -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/blkchol.mexa64: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/blkchol.mexa64 -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/blkchol.mexglx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/blkchol.mexglx -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/blkchol.mexmaci: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/blkchol.mexmaci -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/blkchol.mexmaci64: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/blkchol.mexmaci64 -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/blkchol.mexw32: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/blkchol.mexw32 -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/blkchol.mexw64: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/blkchol.mexw64 -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/bwblkslv.m: -------------------------------------------------------------------------------- 1 | % BWBLKSLV Solves block sparse upper-triangular system. 2 | % y = bwblkslv(L,b) yields the same result as 3 | % y(L.perm,:) = L.L'\b 4 | % However, BWBLKSLV is faster than the built-in operator "\", 5 | % because it uses dense linear algebra and loop-unrolling on 6 | % supernodes. 7 | % 8 | % Typical use, with X sparse m x m positive definite and b is m x n: 9 | % L = sparchol(symbchol(X),X); 10 | % y = bwblkslv(L,fwblkslv(L,b)); 11 | % Then y solves X*y=b. 12 | % 13 | % See also symbchol, fwblkslv, mldivide, mrdivide 14 | 15 | function y = bwblkslv(L,b) 16 | 17 | 18 | % 19 | % This file is part of CholTool 1.00 20 | % Copyright (C) 1998 Jos F. Sturm 21 | % CRL, McMaster University, Canada. 22 | % Supported by the Netherlands Organization for Scientific Research (NWO). 23 | % 24 | % This program is free software; you can redistribute it and/or modify 25 | % it under the terms of the GNU General Public License as published by 26 | % the Free Software Foundation; either version 2 of the License, or 27 | % (at your option) any later version. 28 | % 29 | % This program is distributed in the hope that it will be useful, 30 | % but WITHOUT ANY WARRANTY; without even the implied warranty of 31 | % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 32 | % GNU General Public License for more details. 33 | % 34 | % You should have received a copy of the GNU General Public License 35 | % along with this program; if not, write to the Free Software 36 | % Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 37 | % 38 | 39 | error('At OS prompt, type "make" to create cholTool mex-files.') -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/bwblkslv.mexa64: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/bwblkslv.mexa64 -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/bwblkslv.mexglx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/bwblkslv.mexglx -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/bwblkslv.mexmaci: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/bwblkslv.mexmaci -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/bwblkslv.mexmaci64: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/bwblkslv.mexmaci64 -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/bwblkslv.mexw32: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/bwblkslv.mexw32 -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/bwblkslv.mexw64: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/bwblkslv.mexw64 -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/bwdpr1.mexa64: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/bwdpr1.mexa64 -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/bwdpr1.mexglx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/bwdpr1.mexglx -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/bwdpr1.mexmaci: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/bwdpr1.mexmaci -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/bwdpr1.mexmaci64: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/bwdpr1.mexmaci64 -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/bwdpr1.mexw32: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/bwdpr1.mexw32 -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/bwdpr1.mexw64: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/bwdpr1.mexw64 -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/cholsplit.mexa64: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/cholsplit.mexa64 -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/cholsplit.mexglx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/cholsplit.mexglx -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/cholsplit.mexmaci: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/cholsplit.mexmaci -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/cholsplit.mexmaci64: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/cholsplit.mexmaci64 -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/cholsplit.mexw32: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/cholsplit.mexw32 -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/cholsplit.mexw64: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/cholsplit.mexw64 -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/choltmpsiz.mexa64: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/choltmpsiz.mexa64 -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/choltmpsiz.mexglx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/choltmpsiz.mexglx -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/choltmpsiz.mexmaci: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/choltmpsiz.mexmaci -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/choltmpsiz.mexmaci64: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/choltmpsiz.mexmaci64 -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/choltmpsiz.mexw32: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/choltmpsiz.mexw32 -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/choltmpsiz.mexw64: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/choltmpsiz.mexw64 -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/conversion/blk2vec.m: -------------------------------------------------------------------------------- 1 | % x = blk2vec(X,nL) 2 | % 3 | % Converts a block diagonal matrix into a vector. 4 | % 5 | % ********** INTERNAL FUNCTION OF FROMPACK ********** 6 | 7 | function x = blk2vec(X,nL) 8 | 9 | % 10 | % This file is part of SeDuMi 1.1 by Imre Polik and Oleksandr Romanko 11 | % Copyright (C) 2005 McMaster University, Hamilton, CANADA (since 1.1) 12 | % 13 | % Copyright (C) 2001 Jos F. Sturm (up to 1.05R5) 14 | % Dept. Econometrics & O.R., Tilburg University, the Netherlands. 15 | % Supported by the Netherlands Organization for Scientific Research (NWO). 16 | % 17 | % Affiliation SeDuMi 1.03 and 1.04Beta (2000): 18 | % Dept. Quantitative Economics, Maastricht University, the Netherlands. 19 | % 20 | % Affiliations up to SeDuMi 1.02 (AUG1998): 21 | % CRL, McMaster University, Canada. 22 | % Supported by the Netherlands Organization for Scientific Research (NWO). 23 | % 24 | % This program is free software; you can redistribute it and/or modify 25 | % it under the terms of the GNU General Public License as published by 26 | % the Free Software Foundation; either version 2 of the License, or 27 | % (at your option) any later version. 28 | % 29 | % This program is distributed in the hope that it will be useful, 30 | % but WITHOUT ANY WARRANTY; without even the implied warranty of 31 | % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 32 | % GNU General Public License for more details. 33 | % 34 | % You should have received a copy of the GNU General Public License 35 | % along with this program; if not, write to the Free Software 36 | % Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 37 | % 02110-1301, USA % 38 | 39 | nblk = length(nL); 40 | sumnk = 0; 41 | x = []; 42 | for k = 1:nblk 43 | nk = nL(k); 44 | x = [x; vec(X(sumnk+1:sumnk + nk,sumnk+1:sumnk + nk))] ; 45 | sumnk = sumnk + nk; 46 | end 47 | -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/conversion/sdpasplit.m: -------------------------------------------------------------------------------- 1 | function [xir,xjc] = sdpasplit(xcol,maxnnz) 2 | % ------------------------------------------------------------ 3 | % Allocate enough space 4 | % ------------------------------------------------------------ 5 | n = length(xcol); 6 | if nargin < 2 7 | maxnnz = n; 8 | end 9 | xir = zeros(maxnnz,1); 10 | xjc = zeros(maxnnz+1,1); 11 | % ------------------------------------------------------------ 12 | % Find all nonempty blocks, and store their block start in xjc. 13 | % ------------------------------------------------------------ 14 | knz = 0; 15 | k = -1; 16 | for j = 1:n 17 | if xcol(j) > k 18 | knz = knz + 1; 19 | k = xcol(j); 20 | xir(knz) = k; 21 | xjc(knz) = j; 22 | end 23 | end 24 | % ------------------------------------------------------------ 25 | % Close last block in xjc and shrink xjc, xir to correct size 26 | % ------------------------------------------------------------ 27 | xjc(knz+1) = n+1; 28 | xjc = xjc(1:knz+1); 29 | xir = xir(1:knz); 30 | -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/ddot.mexa64: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/ddot.mexa64 -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/ddot.mexglx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/ddot.mexglx -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/ddot.mexmaci: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/ddot.mexmaci -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/ddot.mexmaci64: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/ddot.mexmaci64 -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/ddot.mexw32: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/ddot.mexw32 -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/ddot.mexw64: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/ddot.mexw64 -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/dimacserrors.m: -------------------------------------------------------------------------------- 1 | function err=dimacserrors(At,b,c,K,x,y) 2 | %Compute the DIMACS error measures for a given solution in SeDuMi format 3 | %Reload the original coefficients 4 | if ~isfield(K,'f') 5 | K.f=0; 6 | end 7 | s=c-At*sparse(y); %To make s sparse 8 | cx=sum(c.*x); %faster than c'*x 9 | by=sum(b.*y); 10 | xs=sum(x.*s); 11 | normb=norm(b,1); 12 | normc=norm(c,1); 13 | err=zeros(1,6); 14 | % Error measures. 15 | % Primal infeasibility 16 | err(1)=norm(x'*At-b',2)/(1+normb); 17 | % Primal cone infeasibility 18 | err(2)=max(0,-min(eigK(full(x(K.f+1:end)),K))/(1+normb)); 19 | % Dual infeasibility 20 | %info.err(3)=0.0; %s is not maintained explicitely 21 | % Dual cone infeasibility 22 | err(4)=max(0,-min(eigK(full(s(K.f+1:end)),K))/(1+normc)); 23 | % Relative duality gap 24 | err(5)=(cx-by)/(1+abs(cx)+abs(by)); 25 | % Relative complementarity 26 | err(6)=xs/(1+abs(cx)+abs(by)); 27 | -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/doc/SeDuMi_Guide_105R5.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/doc/SeDuMi_Guide_105R5.pdf -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/doc/SeDuMi_Guide_11.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/doc/SeDuMi_Guide_11.pdf -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/dpr1fact.mexa64: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/dpr1fact.mexa64 -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/dpr1fact.mexglx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/dpr1fact.mexglx -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/dpr1fact.mexmaci: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/dpr1fact.mexmaci -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/dpr1fact.mexmaci64: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/dpr1fact.mexmaci64 -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/dpr1fact.mexw32: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/dpr1fact.mexw32 -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/dpr1fact.mexw64: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/dpr1fact.mexw64 -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/eigK.mexa64: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/eigK.mexa64 -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/eigK.mexglx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/eigK.mexglx -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/eigK.mexmaci: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/eigK.mexmaci -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/eigK.mexmaci64: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/eigK.mexmaci64 -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/eigK.mexw32: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/eigK.mexw32 -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/eigK.mexw64: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/eigK.mexw64 -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/examples/OH_2Pi_STO-6GN9r12g1T2.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/examples/OH_2Pi_STO-6GN9r12g1T2.mat -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/examples/arch0.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/examples/arch0.mat -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/examples/control07.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/examples/control07.mat -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/examples/nb.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/examples/nb.mat -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/examples/trto3.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/examples/trto3.mat -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/extractA.mexa64: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/extractA.mexa64 -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/extractA.mexglx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/extractA.mexglx -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/extractA.mexmaci: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/extractA.mexmaci -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/extractA.mexmaci64: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/extractA.mexmaci64 -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/extractA.mexw32: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/extractA.mexw32 -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/extractA.mexw64: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/extractA.mexw64 -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/eyeK.mexa64: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/eyeK.mexa64 -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/eyeK.mexglx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/eyeK.mexglx -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/eyeK.mexmaci: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/eyeK.mexmaci -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/eyeK.mexmaci64: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/eyeK.mexmaci64 -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/eyeK.mexw32: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/eyeK.mexw32 -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/eyeK.mexw64: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/eyeK.mexw64 -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/findblks.mexa64: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/findblks.mexa64 -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/findblks.mexglx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/findblks.mexglx -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/findblks.mexmaci: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/findblks.mexmaci -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/findblks.mexmaci64: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/findblks.mexmaci64 -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/findblks.mexw32: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/findblks.mexw32 -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/findblks.mexw64: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/findblks.mexw64 -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/finsymbden.mexa64: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/finsymbden.mexa64 -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/finsymbden.mexglx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/finsymbden.mexglx -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/finsymbden.mexmaci: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/finsymbden.mexmaci -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/finsymbden.mexmaci64: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/finsymbden.mexmaci64 -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/finsymbden.mexw32: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/finsymbden.mexw32 -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/finsymbden.mexw64: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/finsymbden.mexw64 -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/frameit.m: -------------------------------------------------------------------------------- 1 | % x = frameit(lab,frmq,frms,K) 2 | % FRAMEIT 3 | % 4 | % ********** INTERNAL FUNCTION OF SEDUMI ********** 5 | % 6 | % See also sedumi 7 | 8 | 9 | function x = frameit(lab,frmq,frms,K) 10 | % 11 | % This file is part of SeDuMi 1.1 by Imre Polik and Oleksandr Romanko 12 | % Copyright (C) 2005 McMaster University, Hamilton, CANADA (since 1.1) 13 | % 14 | % Copyright (C) 2001 Jos F. Sturm (up to 1.05R5) 15 | % Dept. Econometrics & O.R., Tilburg University, the Netherlands. 16 | % Supported by the Netherlands Organization for Scientific Research (NWO). 17 | % 18 | % Affiliation SeDuMi 1.03 and 1.04Beta (2000): 19 | % Dept. Quantitative Economics, Maastricht University, the Netherlands. 20 | % 21 | % Affiliations up to SeDuMi 1.02 (AUG1998): 22 | % CRL, McMaster University, Canada. 23 | % Supported by the Netherlands Organization for Scientific Research (NWO). 24 | % 25 | % This program is free software; you can redistribute it and/or modify 26 | % it under the terms of the GNU General Public License as published by 27 | % the Free Software Foundation; either version 2 of the License, or 28 | % (at your option) any later version. 29 | % 30 | % This program is distributed in the hope that it will be useful, 31 | % but WITHOUT ANY WARRANTY; without even the implied warranty of 32 | % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 33 | % GNU General Public License for more details. 34 | % 35 | % You should have received a copy of the GNU General Public License 36 | % along with this program; if not, write to the Free Software 37 | % Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 38 | % 02110-1301, USA 39 | % 40 | x = [lab(1:K.l); qframeit(lab,frmq,K); psdframeit(lab,frms,K)]; -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/fwblkslv.mexa64: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/fwblkslv.mexa64 -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/fwblkslv.mexglx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/fwblkslv.mexglx -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/fwblkslv.mexmaci: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/fwblkslv.mexmaci -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/fwblkslv.mexmaci64: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/fwblkslv.mexmaci64 -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/fwblkslv.mexw32: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/fwblkslv.mexw32 -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/fwblkslv.mexw64: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/fwblkslv.mexw64 -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/fwdpr1.mexa64: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/fwdpr1.mexa64 -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/fwdpr1.mexglx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/fwdpr1.mexglx -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/fwdpr1.mexmaci: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/fwdpr1.mexmaci -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/fwdpr1.mexmaci64: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/fwdpr1.mexmaci64 -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/fwdpr1.mexw32: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/fwdpr1.mexw32 -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/fwdpr1.mexw64: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/fwdpr1.mexw64 -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/getada.m: -------------------------------------------------------------------------------- 1 | function absd=getada(A,K,d,DAt) 2 | %Computes the Newton system 3 | %incorporates getada1,2,3 4 | % INPUT: 5 | % ADA: only the sparsity pattern is used, not the values 6 | % A: The coefficient matrix, actually A', with the dense columns (actually rows) removed 7 | % K: The structure of the cone 8 | % d: The scaling elements 9 | % DAt: The scaled A matrix used in getada2 10 | 11 | global ADA 12 | %This is why ADA is not in the function calling sequence, it's global 13 | m = size(ADA,1); 14 | if spars(ADA) > 0.3 15 | %We convert it to a dense 0 matrix 16 | ADA = zeros(m,m); 17 | else 18 | %Create a sparse 0 matrix to accomodate the number of nonzeros needed 19 | ADA = sparse([],[],[],m,m,nnz(ADA)); 20 | end 21 | if spars(DAt.q > 0.2) 22 | %TODO: This conversion will have to move to getdatm.m 23 | DAt.q = full(DAt.q); 24 | end 25 | Alq = A(1:K.mainblks(3)-1,:); 26 | if spars(Alq) > 0.2 27 | Alq = full(Alq); 28 | end 29 | scalingvector = [d.l; -d.det; zeros(K.mainblks(3)-K.mainblks(2),1)]; 30 | for i = 1:length(d.det) 31 | scalingvector(K.qblkstart(i):K.qblkstart(i+1)-1) = d.det(i); 32 | end 33 | %getada2 34 | ADA = ADA+DAt.q'*DAt.q; 35 | clear DAt 36 | %getada1 37 | ADA = ADA+Alq'*diag(sparse(scalingvector))*Alq; 38 | clear Alq 39 | ADA = sparse(ADA); 40 | absd = full(diag(ADA)); -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/getada1.mexa64: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/getada1.mexa64 -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/getada1.mexglx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/getada1.mexglx -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/getada1.mexmaci: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/getada1.mexmaci -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/getada1.mexmaci64: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/getada1.mexmaci64 -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/getada1.mexw32: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/getada1.mexw32 -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/getada1.mexw64: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/getada1.mexw64 -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/getada2.mexa64: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/getada2.mexa64 -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/getada2.mexglx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/getada2.mexglx -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/getada2.mexmaci: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/getada2.mexmaci -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/getada2.mexmaci64: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/getada2.mexmaci64 -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/getada2.mexw32: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/getada2.mexw32 -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/getada2.mexw64: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/getada2.mexw64 -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/getada3.mexa64: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/getada3.mexa64 -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/getada3.mexglx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/getada3.mexglx -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/getada3.mexmaci: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/getada3.mexmaci -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/getada3.mexmaci64: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/getada3.mexmaci64 -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/getada3.mexw32: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/getada3.mexw32 -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/getada3.mexw64: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/getada3.mexw64 -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/givensrot.m: -------------------------------------------------------------------------------- 1 | % y = givensrot(gjc,g,x,K) 2 | % GIVENSROT 3 | % 4 | % ********** INTERNAL FUNCTION OF SEDUMI ********** 5 | % 6 | % See also sedumi 7 | 8 | 9 | function y = givensrot(gjc,g,x,K) 10 | % 11 | % This file is part of SeDuMi 1.1 by Imre Polik and Oleksandr Romanko 12 | % Copyright (C) 2005 McMaster University, Hamilton, CANADA (since 1.1) 13 | % 14 | % Copyright (C) 2001 Jos F. Sturm (up to 1.05R5) 15 | % Dept. Econometrics & O.R., Tilburg University, the Netherlands. 16 | % Supported by the Netherlands Organization for Scientific Research (NWO). 17 | % 18 | % Affiliation SeDuMi 1.03 and 1.04Beta (2000): 19 | % Dept. Quantitative Economics, Maastricht University, the Netherlands. 20 | % 21 | % Affiliations up to SeDuMi 1.02 (AUG1998): 22 | % CRL, McMaster University, Canada. 23 | % Supported by the Netherlands Organization for Scientific Research (NWO). 24 | % 25 | % This program is free software; you can redistribute it and/or modify 26 | % it under the terms of the GNU General Public License as published by 27 | % the Free Software Foundation; either version 2 of the License, or 28 | % (at your option) any later version. 29 | % 30 | % This program is distributed in the hope that it will be useful, 31 | % but WITHOUT ANY WARRANTY; without even the implied warranty of 32 | % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 33 | % GNU General Public License for more details. 34 | % 35 | % You should have received a copy of the GNU General Public License 36 | % along with this program; if not, write to the Free Software 37 | % Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 38 | % 02110-1301, USA 39 | % 40 | 41 | disp('The SeDuMi binaries are not installed.') 42 | disp('In Matlab, launch "install_sedumi" in the folder you put the SeDuMi files.') 43 | disp('For more information see the file Install.txt.') 44 | error(' ') -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/givensrot.mexa64: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/givensrot.mexa64 -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/givensrot.mexglx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/givensrot.mexglx -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/givensrot.mexmaci: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/givensrot.mexmaci -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/givensrot.mexmaci64: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/givensrot.mexmaci64 -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/givensrot.mexw32: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/givensrot.mexw32 -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/givensrot.mexw64: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/givensrot.mexw64 -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/incorder.mexa64: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/incorder.mexa64 -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/incorder.mexglx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/incorder.mexglx -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/incorder.mexmaci: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/incorder.mexmaci -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/incorder.mexmaci64: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/incorder.mexmaci64 -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/incorder.mexw32: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/incorder.mexw32 -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/incorder.mexw64: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/incorder.mexw64 -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/invcholfac.mexa64: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/invcholfac.mexa64 -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/invcholfac.mexglx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/invcholfac.mexglx -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/invcholfac.mexmaci: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/invcholfac.mexmaci -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/invcholfac.mexmaci64: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/invcholfac.mexmaci64 -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/invcholfac.mexw32: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/invcholfac.mexw32 -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/invcholfac.mexw64: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/invcholfac.mexw64 -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/iswnbr.mexa64: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/iswnbr.mexa64 -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/iswnbr.mexglx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/iswnbr.mexglx -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/iswnbr.mexmaci: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/iswnbr.mexmaci -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/iswnbr.mexmaci64: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/iswnbr.mexmaci64 -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/iswnbr.mexw32: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/iswnbr.mexw32 -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/iswnbr.mexw64: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/iswnbr.mexw64 -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/makereal.mexa64: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/makereal.mexa64 -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/makereal.mexglx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/makereal.mexglx -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/makereal.mexmaci: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/makereal.mexmaci -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/makereal.mexmaci64: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/makereal.mexmaci64 -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/makereal.mexw32: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/makereal.mexw32 -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/makereal.mexw64: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/makereal.mexw64 -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/my_fprintf.m: -------------------------------------------------------------------------------- 1 | function my_fprintf(fid, varargin) 2 | %This function is needed because Matlab R2006B does not support fprintf with 3 | %fid=0, i.e., no output. This is a workaround. 4 | % 5 | %Internal function of SeDuMi. 6 | 7 | % This file is part of SeDuMi 1.1 by Imre Polik and Oleksandr Romanko 8 | % Copyright (C) 2006 McMaster University, Hamilton, CANADA (since 1.1) 9 | % 10 | % Copyright (C) 2001 Jos F. Sturm (up to 1.05R5) 11 | % Dept. Econometrics & O.R., Tilburg University, the Netherlands. 12 | % Supported by the Netherlands Organization for Scientific Research (NWO). 13 | % 14 | % Affiliation SeDuMi 1.03 and 1.04Beta (2000): 15 | % Dept. Quantitative Economics, Maastricht University, the Netherlands. 16 | % 17 | % Affiliations up to SeDuMi 1.02 (AUG1998): 18 | % CRL, McMaster University, Canada. 19 | % Supported by the Netherlands Organization for Scientific Research (NWO). 20 | % 21 | % This program is free software; you can redistribute it and/or modify 22 | % it under the terms of the GNU General Public License as published by 23 | % the Free Software Foundation; either version 2 of the License, or 24 | % (at your option) any later version. 25 | % 26 | % This program is distributed in the hope that it will be useful, 27 | % but WITHOUT ANY WARRANTY; without even the implied warranty of 28 | % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 29 | % GNU General Public License for more details. 30 | % 31 | % You should have received a copy of the GNU General Public License 32 | % along with this program; if not, write to the Free Software 33 | % Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 34 | % 02110-1301, USA 35 | 36 | if fid, 37 | fprintf(fid, varargin{:}); 38 | end -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/ordmmdmex.m: -------------------------------------------------------------------------------- 1 | % perm = ordmmdmex(adjncy) 2 | % Computes multiple-minimum-degree permutation, for sparse 3 | % Cholesky. Adjncy is a sparse symmetric matrix; its diagonal 4 | % is irrelevant. 5 | % 6 | % Invokes SPARSPAK-A Release III. 7 | % 8 | % ********** INTERNAL FUNCTION OF CHOLTOOL ********** 9 | 10 | function perm = ordmmdmex(adjncy) 11 | 12 | % 13 | % This file is part of CholTool 1.00 14 | % Copyright (C) 1998 Jos F. Sturm 15 | % CRL, McMaster University, Canada. 16 | % Supported by the Netherlands Organization for Scientific Research (NWO). 17 | % 18 | % This program is free software; you can redistribute it and/or modify 19 | % it under the terms of the GNU General Public License as published by 20 | % the Free Software Foundation; either version 2 of the License, or 21 | % (at your option) any later version. 22 | % 23 | % This program is distributed in the hope that it will be useful, 24 | % but WITHOUT ANY WARRANTY; without even the implied warranty of 25 | % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 26 | % GNU General Public License for more details. 27 | % 28 | % You should have received a copy of the GNU General Public License 29 | % along with this program; if not, write to the Free Software 30 | % Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 31 | % 32 | 33 | error('At OS prompt, type "make" to create cholTool mex-files.') -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/ordmmdmex.mexa64: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/ordmmdmex.mexa64 -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/ordmmdmex.mexglx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/ordmmdmex.mexglx -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/ordmmdmex.mexmaci: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/ordmmdmex.mexmaci -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/ordmmdmex.mexmaci64: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/ordmmdmex.mexmaci64 -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/ordmmdmex.mexw32: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/ordmmdmex.mexw32 -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/ordmmdmex.mexw64: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/ordmmdmex.mexw64 -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/partitA.mexa64: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/partitA.mexa64 -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/partitA.mexglx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/partitA.mexglx -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/partitA.mexmaci: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/partitA.mexmaci -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/partitA.mexmaci64: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/partitA.mexmaci64 -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/partitA.mexw32: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/partitA.mexw32 -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/partitA.mexw64: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/partitA.mexw64 -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/psdframeit.mexa64: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/psdframeit.mexa64 -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/psdframeit.mexglx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/psdframeit.mexglx -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/psdframeit.mexmaci: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/psdframeit.mexmaci -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/psdframeit.mexmaci64: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/psdframeit.mexmaci64 -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/psdframeit.mexw32: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/psdframeit.mexw32 -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/psdframeit.mexw64: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/psdframeit.mexw64 -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/psdinvjmul.mexa64: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/psdinvjmul.mexa64 -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/psdinvjmul.mexglx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/psdinvjmul.mexglx -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/psdinvjmul.mexmaci: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/psdinvjmul.mexmaci -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/psdinvjmul.mexmaci64: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/psdinvjmul.mexmaci64 -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/psdinvjmul.mexw32: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/psdinvjmul.mexw32 -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/psdinvjmul.mexw64: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/psdinvjmul.mexw64 -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/qblkmul.mexa64: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/qblkmul.mexa64 -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/qblkmul.mexglx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/qblkmul.mexglx -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/qblkmul.mexmaci: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/qblkmul.mexmaci -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/qblkmul.mexmaci64: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/qblkmul.mexmaci64 -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/qblkmul.mexw32: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/qblkmul.mexw32 -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/qblkmul.mexw64: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/qblkmul.mexw64 -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/qframeit.m: -------------------------------------------------------------------------------- 1 | % x = qframeit(lab,frmq,K) 2 | % 3 | % *********************** INTERNAL FUNCTION OF SEDUMI ******************* 4 | % 5 | % See also sedumi 6 | 7 | % This file is part of SeDuMi 1.1 by Imre Polik and Oleksandr Romanko 8 | % Copyright (C) 2005 McMaster University, Hamilton, CANADA (since 1.1) 9 | % 10 | % Copyright (C) 2001 Jos F. Sturm (up to 1.05R5) 11 | % Dept. Econometrics & O.R., Tilburg University, the Netherlands. 12 | % Supported by the Netherlands Organization for Scientific Research (NWO). 13 | % 14 | % Affiliation SeDuMi 1.03 and 1.04Beta (2000): 15 | % Dept. Quantitative Economics, Maastricht University, the Netherlands. 16 | % 17 | % Affiliations up to SeDuMi 1.02 (AUG1998): 18 | % CRL, McMaster University, Canada. 19 | % Supported by the Netherlands Organization for Scientific Research (NWO). 20 | % 21 | % This program is free software; you can redistribute it and/or modify 22 | % it under the terms of the GNU General Public License as published by 23 | % the Free Software Foundation; either version 2 of the License, or 24 | % (at your option) any later version. 25 | % 26 | % This program is distributed in the hope that it will be useful, 27 | % but WITHOUT ANY WARRANTY; without even the implied warranty of 28 | % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 29 | % GNU General Public License for more details. 30 | % 31 | % You should have received a copy of the GNU General Public License 32 | % along with this program; if not, write to the Free Software 33 | % Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 34 | % 02110-1301, USA 35 | 36 | 37 | function x = qframeit(lab,frmq,K) 38 | lorN = length(K.q); 39 | if length(lab) > 2*lorN 40 | lab = lab(K.l+1:K.l+2*lorN); % Take out Lorentz spectral values 41 | end 42 | x = [(lab(1:lorN) + lab(lorN+1:end))/sqrt(2);... 43 | qblkmul(lab(lorN+1:end) - lab(1:lorN),frmq,K.qblkstart)]; -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/qrK.mexa64: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/qrK.mexa64 -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/qrK.mexglx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/qrK.mexglx -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/qrK.mexmaci: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/qrK.mexmaci -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/qrK.mexmaci64: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/qrK.mexmaci64 -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/qrK.mexw32: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/qrK.mexw32 -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/qrK.mexw64: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/qrK.mexw64 -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/qreshape.mexa64: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/qreshape.mexa64 -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/qreshape.mexglx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/qreshape.mexglx -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/qreshape.mexmaci: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/qreshape.mexmaci -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/qreshape.mexmaci64: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/qreshape.mexmaci64 -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/qreshape.mexw32: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/qreshape.mexw32 -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/qreshape.mexw64: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/qreshape.mexw64 -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/quadadd.mexa64: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/quadadd.mexa64 -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/quadadd.mexglx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/quadadd.mexglx -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/quadadd.mexmaci: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/quadadd.mexmaci -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/quadadd.mexmaci64: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/quadadd.mexmaci64 -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/quadadd.mexw32: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/quadadd.mexw32 -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/quadadd.mexw64: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/quadadd.mexw64 -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/rotlorentz.m: -------------------------------------------------------------------------------- 1 | % c = rotlorentz(c,K) 2 | % Rotates vectors from Qcone to Rcone or from Rcone into Qcone. 3 | % 4 | % ********** INTERNAL FUNCTION OF SEDUMI ********** 5 | % 6 | % See also sedumi 7 | 8 | function c = rotlorentz(c,K) 9 | 10 | % 11 | % This file is part of SeDuMi 1.1 by Imre Polik and Oleksandr Romanko 12 | % Copyright (C) 2005 McMaster University, Hamilton, CANADA (since 1.1) 13 | % 14 | % Copyright (C) 2001 Jos F. Sturm (up to 1.05R5) 15 | % Dept. Econometrics & O.R., Tilburg University, the Netherlands. 16 | % Supported by the Netherlands Organization for Scientific Research (NWO). 17 | % 18 | % Affiliation SeDuMi 1.03 and 1.04Beta (2000): 19 | % Dept. Quantitative Economics, Maastricht University, the Netherlands. 20 | % 21 | % Affiliations up to SeDuMi 1.02 (AUG1998): 22 | % CRL, McMaster University, Canada. 23 | % Supported by the Netherlands Organization for Scientific Research (NWO). 24 | % 25 | % This program is free software; you can redistribute it and/or modify 26 | % it under the terms of the GNU General Public License as published by 27 | % the Free Software Foundation; either version 2 of the License, or 28 | % (at your option) any later version. 29 | % 30 | % This program is distributed in the hope that it will be useful, 31 | % but WITHOUT ANY WARRANTY; without even the implied warranty of 32 | % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 33 | % GNU General Public License for more details. 34 | % 35 | % You should have received a copy of the GNU General Public License 36 | % along with this program; if not, write to the Free Software 37 | % Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 38 | % 02110-1301, USA 39 | % 40 | 41 | firstk = K.l + sum(K.q) + 1; 42 | M = [1 1; 1 -1]; 43 | for k = 1:length(K.r) 44 | c(firstk:firstk+1,:) = M*c(firstk:firstk+1,:)/ sqrt(2); 45 | firstk = firstk + K.r(k); 46 | end -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/sortnnz.mexa64: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/sortnnz.mexa64 -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/sortnnz.mexglx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/sortnnz.mexglx -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/sortnnz.mexmaci: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/sortnnz.mexmaci -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/sortnnz.mexmaci64: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/sortnnz.mexmaci64 -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/sortnnz.mexw32: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/sortnnz.mexw32 -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/sortnnz.mexw64: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/sortnnz.mexw64 -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/spars.m: -------------------------------------------------------------------------------- 1 | function sparsity=spars(x) 2 | %Returns the sparsity of the matrix/vector x. It works for sparse and dense 3 | %storage, too. 4 | 5 | % This file is part of SeDuMi 1.1 by Imre Polik and Oleksandr Romanko 6 | % Copyright (C) 2005 McMaster University, Hamilton, CANADA (since 1.1) 7 | % 8 | % Copyright (C) 2001 Jos F. Sturm (up to 1.05R5) 9 | % Dept. Econometrics & O.R., Tilburg University, the Netherlands. 10 | % Supported by the Netherlands Organization for Scientific Research (NWO). 11 | % 12 | % Affiliation SeDuMi 1.03 and 1.04Beta (2000): 13 | % Dept. Quantitative Economics, Maastricht University, the Netherlands. 14 | % 15 | % Affiliations up to SeDuMi 1.02 (AUG1998): 16 | % CRL, McMaster University, Canada. 17 | % Supported by the Netherlands Organization for Scientific Research (NWO). 18 | % 19 | % This program is free software; you can redistribute it and/or modify 20 | % it under the terms of the GNU General Public License as published by 21 | % the Free Software Foundation; either version 2 of the License, or 22 | % (at your option) any later version. 23 | % 24 | % This program is distributed in the hope that it will be useful, 25 | % but WITHOUT ANY WARRANTY; without even the implied warranty of 26 | % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 27 | % GNU General Public License for more details. 28 | % 29 | % You should have received a copy of the GNU General Public License 30 | % along with this program; if not, write to the Free Software 31 | % Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 32 | % 02110-1301, USA 33 | 34 | if ~isempty(x) 35 | sparsity=nnz(x)/prod(size(x)); 36 | else 37 | sparsity=0; 38 | end -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/sqrtinv.mexa64: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/sqrtinv.mexa64 -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/sqrtinv.mexglx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/sqrtinv.mexglx -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/sqrtinv.mexmaci: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/sqrtinv.mexmaci -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/sqrtinv.mexmaci64: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/sqrtinv.mexmaci64 -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/sqrtinv.mexw32: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/sqrtinv.mexw32 -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/sqrtinv.mexw64: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/sqrtinv.mexw64 -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/statsK.mexa64: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/statsK.mexa64 -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/statsK.mexglx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/statsK.mexglx -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/statsK.mexmaci: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/statsK.mexmaci -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/statsK.mexmaci64: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/statsK.mexmaci64 -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/statsK.mexw32: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/statsK.mexw32 -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/statsK.mexw64: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/statsK.mexw64 -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/symbfwblk.mexa64: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/symbfwblk.mexa64 -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/symbfwblk.mexglx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/symbfwblk.mexglx -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/symbfwblk.mexmaci: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/symbfwblk.mexmaci -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/symbfwblk.mexmaci64: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/symbfwblk.mexmaci64 -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/symbfwblk.mexw32: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/symbfwblk.mexw32 -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/symbfwblk.mexw64: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/symbfwblk.mexw64 -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/symfctmex.mexa64: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/symfctmex.mexa64 -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/symfctmex.mexglx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/symfctmex.mexglx -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/symfctmex.mexmaci: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/symfctmex.mexmaci -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/symfctmex.mexmaci64: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/symfctmex.mexmaci64 -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/symfctmex.mexw32: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/symfctmex.mexw32 -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/symfctmex.mexw64: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/symfctmex.mexw64 -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/tdet.m: -------------------------------------------------------------------------------- 1 | % tdetx = tdet(x,K) 2 | % TDET Computes twice determinant for Lorentz block 3 | % 4 | % ********** INTERNAL FUNCTION OF SEDUMI ********** 5 | % 6 | % See also sedumi 7 | 8 | function tdetx = tdet(x,K) 9 | % 10 | % This file is part of SeDuMi 1.1 by Imre Polik and Oleksandr Romanko 11 | % Copyright (C) 2005 McMaster University, Hamilton, CANADA (since 1.1) 12 | % 13 | % Copyright (C) 2001 Jos F. Sturm (up to 1.05R5) 14 | % Dept. Econometrics & O.R., Tilburg University, the Netherlands. 15 | % Supported by the Netherlands Organization for Scientific Research (NWO). 16 | % 17 | % Affiliation SeDuMi 1.03 and 1.04Beta (2000): 18 | % Dept. Quantitative Economics, Maastricht University, the Netherlands. 19 | % 20 | % Affiliations up to SeDuMi 1.02 (AUG1998): 21 | % CRL, McMaster University, Canada. 22 | % Supported by the Netherlands Organization for Scientific Research (NWO). 23 | % 24 | % This program is free software; you can redistribute it and/or modify 25 | % it under the terms of the GNU General Public License as published by 26 | % the Free Software Foundation; either version 2 of the License, or 27 | % (at your option) any later version. 28 | % 29 | % This program is distributed in the hope that it will be useful, 30 | % but WITHOUT ANY WARRANTY; without even the implied warranty of 31 | % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 32 | % GNU General Public License for more details. 33 | % 34 | % You should have received a copy of the GNU General Public License 35 | % along with this program; if not, write to the Free Software 36 | % Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 37 | % 02110-1301, USA 38 | % 39 | if isempty(K.q) 40 | tdetx = zeros(0,1); 41 | else 42 | ix = K.mainblks; 43 | tdetx = x(ix(1):ix(2)-1).^2 - ddot(x(ix(2):ix(3)-1),x,K.qblkstart); 44 | end -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/urotorder.mexa64: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/urotorder.mexa64 -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/urotorder.mexglx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/urotorder.mexglx -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/urotorder.mexmaci: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/urotorder.mexmaci -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/urotorder.mexmaci64: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/urotorder.mexmaci64 -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/urotorder.mexw32: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/urotorder.mexw32 -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/urotorder.mexw64: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/urotorder.mexw64 -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/vec.m: -------------------------------------------------------------------------------- 1 | % Y = VEC(x) Given an m x n matrix x, this produces the vector Y of length 2 | % m*n that contains the columns of the matrix x, stacked below each other. 3 | % 4 | % See also mat. 5 | 6 | function x = vec(X) 7 | 8 | % 9 | % This file is part of SeDuMi 1.1 by Imre Polik and Oleksandr Romanko 10 | % Copyright (C) 2005 McMaster University, Hamilton, CANADA (since 1.1) 11 | % 12 | % Copyright (C) 2001 Jos F. Sturm (up to 1.05R5) 13 | % Dept. Econometrics & O.R., Tilburg University, the Netherlands. 14 | % Supported by the Netherlands Organization for Scientific Research (NWO). 15 | % 16 | % Affiliation SeDuMi 1.03 and 1.04Beta (2000): 17 | % Dept. Quantitative Economics, Maastricht University, the Netherlands. 18 | % 19 | % Affiliations up to SeDuMi 1.02 (AUG1998): 20 | % CRL, McMaster University, Canada. 21 | % Supported by the Netherlands Organization for Scientific Research (NWO). 22 | % 23 | % This program is free software; you can redistribute it and/or modify 24 | % it under the terms of the GNU General Public License as published by 25 | % the Free Software Foundation; either version 2 of the License, or 26 | % (at your option) any later version. 27 | % 28 | % This program is distributed in the hope that it will be useful, 29 | % but WITHOUT ANY WARRANTY; without even the implied warranty of 30 | % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 31 | % GNU General Public License for more details. 32 | % 33 | % You should have received a copy of the GNU General Public License 34 | % along with this program; if not, write to the Free Software 35 | % Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 36 | % 02110-1301, USA 37 | % 38 | 39 | [m n] = size(X); 40 | x = reshape(X,m*n,1); -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/vecsym.mexa64: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/vecsym.mexa64 -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/vecsym.mexglx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/vecsym.mexglx -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/vecsym.mexmaci: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/vecsym.mexmaci -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/vecsym.mexmaci64: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/vecsym.mexmaci64 -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/vecsym.mexw32: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/vecsym.mexw32 -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/vecsym.mexw64: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/vecsym.mexw64 -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/vectril.m: -------------------------------------------------------------------------------- 1 | % y = vectril(x,K) 2 | % VECTRIL converts "PSD" blocks to lower triangular form. 3 | % 4 | % ********** INTERNAL FUNCTION OF SEDUMI ********** 5 | % 6 | % See also sedumi 7 | 8 | 9 | function y = vectril(x,K) 10 | % 11 | % This file is part of SeDuMi 1.1 by Imre Polik and Oleksandr Romanko 12 | % Copyright (C) 2005 McMaster University, Hamilton, CANADA (since 1.1) 13 | % 14 | % Copyright (C) 2001 Jos F. Sturm (up to 1.05R5) 15 | % Dept. Econometrics & O.R., Tilburg University, the Netherlands. 16 | % Supported by the Netherlands Organization for Scientific Research (NWO). 17 | % 18 | % Affiliation SeDuMi 1.03 and 1.04Beta (2000): 19 | % Dept. Quantitative Economics, Maastricht University, the Netherlands. 20 | % 21 | % Affiliations up to SeDuMi 1.02 (AUG1998): 22 | % CRL, McMaster University, Canada. 23 | % Supported by the Netherlands Organization for Scientific Research (NWO). 24 | % 25 | % This program is free software; you can redistribute it and/or modify 26 | % it under the terms of the GNU General Public License as published by 27 | % the Free Software Foundation; either version 2 of the License, or 28 | % (at your option) any later version. 29 | % 30 | % This program is distributed in the hope that it will be useful, 31 | % but WITHOUT ANY WARRANTY; without even the implied warranty of 32 | % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 33 | % GNU General Public License for more details. 34 | % 35 | % You should have received a copy of the GNU General Public License 36 | % along with this program; if not, write to the Free Software 37 | % Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 38 | % 02110-1301, USA 39 | % 40 | 41 | disp('The SeDuMi binaries are not installed.') 42 | disp('In Matlab, launch "install_sedumi" in the folder you put the SeDuMi files.') 43 | disp('For more information see the file Install.txt.') 44 | error(' ') -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/vectril.mexa64: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/vectril.mexa64 -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/vectril.mexglx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/vectril.mexglx -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/vectril.mexmaci: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/vectril.mexmaci -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/vectril.mexmaci64: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/vectril.mexmaci64 -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/vectril.mexw32: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/vectril.mexw32 -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/vectril.mexw64: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/vectril.mexw64 -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/whichcpx.mexa64: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/whichcpx.mexa64 -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/whichcpx.mexglx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/whichcpx.mexglx -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/whichcpx.mexmaci: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/whichcpx.mexmaci -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/whichcpx.mexmaci64: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/whichcpx.mexmaci64 -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/whichcpx.mexw32: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/whichcpx.mexw32 -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/whichcpx.mexw64: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/SeDuMi_1_3/SeDuMi_1_3/whichcpx.mexw64 -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/gloptipoly3.tar/gloptipoly3/@meas/double.m: -------------------------------------------------------------------------------- 1 | function sol = double(M) 2 | % @MEAS/DOUBLE - Extract points for a finitely supported measure 3 | % 4 | % See also @MPOL/ASSIGN 5 | 6 | % D. Henrion, 3 April 2006 7 | % Modified on 23 December 2006 8 | 9 | global MMM 10 | 11 | if length(M) > 1 12 | error('Scalar measures only') 13 | end 14 | if ~isfield(MMM,'M') 15 | error('Measure with undefined moments') 16 | end 17 | if ~isfield(MMM.M{M.meas},'sol') 18 | error('Measure with undefined support') 19 | end 20 | if isempty(MMM.M{M.meas}.sol) 21 | error('Measure with empty support') 22 | end 23 | 24 | sol = MMM.M{M.meas}.sol; 25 | 26 | 27 | -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/gloptipoly3.tar/gloptipoly3/@meas/indmeas.m: -------------------------------------------------------------------------------- 1 | function m = INDMEAS(x) 2 | % @MEAS/INDMEAS - Internal use only 3 | 4 | % INDMEAS(X) returns the label of a scalar measure 5 | 6 | % D. Henrion, 21 December 2006 7 | 8 | m = x(1).meas; 9 | -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/gloptipoly3.tar/gloptipoly3/@meas/mass.m: -------------------------------------------------------------------------------- 1 | function y = mass(x) 2 | % @MEAS/MASS - Measure mass 3 | % 4 | % MASS(X) returns the mass (type MOM) of measure X 5 | 6 | % D. Henrion, 15 March 2006 7 | % Last modified on 20 April 2006 8 | 9 | [nr,nc] = size(x); 10 | 11 | for r = 1:nr 12 | for c = 1:nc 13 | % Create moment of zeroth power of this measure 14 | y(r,c) = mom(1,x(r,c).meas); 15 | end 16 | end 17 | 18 | 19 | -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/gloptipoly3.tar/gloptipoly3/@meas/set.m: -------------------------------------------------------------------------------- 1 | function m = set(m) 2 | % @MEAS/SET - Internal use only 3 | 4 | % Set up internally a new measure 5 | % Modifies the global structure MMM.M{} 6 | % Used in @MPOL/SCALE, @MPOL/ASSIGN 7 | 8 | % D. Henrion, 22 May 2006 9 | % Last modified on 27 November 2006 10 | 11 | global MMM 12 | 13 | % Measure index 14 | mx = m.meas; 15 | 16 | erase = true; 17 | if isfield(MMM,'M') 18 | if length(MMM.M) >= mx 19 | if isfield(MMM.M{mx},'nvar') % already existing measure 20 | erase = false; % keep measure data 21 | end 22 | end 23 | end 24 | 25 | if erase 26 | 27 | % Variables associated with this measure 28 | pindvar = (MMM.indmeas == mx); 29 | nvar = sum(pindvar); 30 | pindvar = find(pindvar); 31 | 32 | % Relative indices wrt this measure 33 | relvar = zeros(size(MMM.indmeas)); 34 | relvar(pindvar) = 1:nvar; 35 | 36 | % Mask variables in this measure 37 | mask = false(size(MMM.indmeas)); 38 | mask(pindvar) = true; 39 | mask = mask(MMM.indmeas == mx); 40 | 41 | % Relative indices wrt this mask 42 | relmask = relvar; 43 | relmask(find(relvar)) = find(mask); 44 | 45 | % Update measure fields 46 | MMM.M{mx}.tnvar = nvar; % total number of variables 47 | MMM.M{mx}.nvar = nvar; % number of active variables 48 | MMM.M{mx}.indvar = pindvar; % indices of active variables 49 | MMM.M{mx}.mask = mask; % mask active variables 50 | MMM.M{mx}.relvar = relvar; % relative indices of variables 51 | MMM.M{mx}.relmask = relmask; % relative indices in this mask 52 | 53 | end 54 | -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/gloptipoly3.tar/gloptipoly3/@meas/supcon.m: -------------------------------------------------------------------------------- 1 | function sc = supcon(M) 2 | % @MEAS/SUPCON - Measure support constraint 3 | % 4 | % The instruction 5 | % 6 | % [SCEQ,SCGE] = SUPCON(M) 7 | % 8 | % returns column vectors SCEQ,SCGE of class SUPCON corresponding 9 | % respectively to localization equality and inequality constraints 10 | % on measure M. The constraints are arranged consistently with the 11 | % cell array of dual multipliers returned by function MSOL. 12 | 13 | % D. Henrion, 27 November 2006 14 | 15 | if length(M) > 1 16 | error('Please specify only one measure') 17 | end 18 | 19 | im = indmeas(M); 20 | sceq = []; 21 | for k = 1:length(P.supceq) 22 | if indmeas(P.supceq(k)) == im 23 | sceq = [sceq; P.supceq(k)]; 24 | end 25 | end 26 | scge = []; 27 | for k = 1:length(P.supcge) 28 | if indmeas(P.supcge(k)) == im 29 | scge = [scge; P.supcge(k)]; 30 | end 31 | end 32 | 33 | -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/gloptipoly3.tar/gloptipoly3/@mom/consistent.m: -------------------------------------------------------------------------------- 1 | function f = consistent(x) 2 | % @MOM/CONSISTENT - Internal use only 3 | 4 | % Check whether a scalar moment object is consistent with the 5 | % defined measures and variables - used in MDEF 6 | 7 | % D. Henrion, 23 March 2006 8 | 9 | p = x(1).split; 10 | m = x(1).meas; 11 | n = length(p); 12 | 13 | f = true(1,n); 14 | 15 | for k = 1:length(p) 16 | % Each polynomial should correspond to one measure only 17 | mp = indmeas(p(k)); 18 | if (length(mp) > 1) | ((mp ~= 0) & (mp ~= m(k))) 19 | f(k) = false; 20 | end 21 | end 22 | 23 | f = all(f); 24 | 25 | -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/gloptipoly3.tar/gloptipoly3/@mom/deg.m: -------------------------------------------------------------------------------- 1 | function d = deg(x) 2 | % @MOM/DEG - Internal use only 3 | 4 | d = deg(x(1).split); 5 | -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/gloptipoly3.tar/gloptipoly3/@mom/diag.m: -------------------------------------------------------------------------------- 1 | function d = diag(x) 2 | % @MOM/DIAG - Diagonal 3 | % 4 | % If X is a matrix, D = diag(X) returns the vector of its diagonal entries. 5 | % If X is a vector, D = diag(X) returns a square matrix such that diag(D) = X. 6 | 7 | % D. Henrion, 27 November 2006 8 | 9 | if length(x) > 1 10 | % Matrix 11 | d = x(1,1); 12 | for k = 2:min(size(x)) 13 | d = [d;x(k,k)]; 14 | end 15 | else 16 | % Vector 17 | n = length(x); 18 | d(n,n) = x(n); 19 | for k = 1:n-1 20 | d(k,k) = x(k); 21 | end 22 | end 23 | -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/gloptipoly3.tar/gloptipoly3/@mom/double.m: -------------------------------------------------------------------------------- 1 | function v = double(m) 2 | % @MOM/DOUBLE - Evaluate moment 3 | % 4 | % DOUBLE(M) returns the linear moment expression 5 | % last obtained by solving an SDP moment problem 6 | 7 | % D. Henrion, 28 March 2006 8 | % Last modified on 5 January 2007 9 | 10 | global MMM 11 | 12 | if isempty(m) 13 | v = []; 14 | return 15 | end 16 | 17 | [nr,nc] = size(m); 18 | v = zeros(nr,nc); 19 | 20 | for r = 1:nr 21 | for c = 1:nc 22 | 23 | % Scalar 24 | p = m(r,c).split; % scalar moment -> polynomial vector 25 | imp = m(r,c).meas; % measure indices 26 | nmom = length(p); % number of moments 27 | w = ones(1,nmom); % weights 28 | for k = 1:nmom 29 | mm = imp(k); 30 | if mm > 0 % not a constant 31 | if ~isfield(MMM,'M') 32 | error('Undefined measure: cannot evaluate moment') 33 | elseif length(MMM.M) < mm 34 | error('Undefined measure: cannot evaluate moment') 35 | elseif ~isfield(MMM.M{mm},'mass') 36 | error('Unassigned moments') 37 | end 38 | % convert powers to indices 39 | powp = locpow(p(k),mm); 40 | if isempty(powp) 41 | error(['Measure with some unassigned variables. ' 13 ... 42 | 'Cannot evaluate moment']); 43 | end 44 | mind = pow2ind(powp,mm); 45 | % retrieve numerical value of moment 46 | momp = MMM.M{mm}.mvec(mind-MMM.M{mm}.begind+1); 47 | w(k) = momp'*coef(p(k)); 48 | else 49 | % constant 50 | w(k) = coef(p(k)); 51 | end 52 | end 53 | 54 | v(r,c) = sum(w); 55 | 56 | end 57 | end 58 | 59 | 60 | 61 | -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/gloptipoly3.tar/gloptipoly3/@mom/eq.m: -------------------------------------------------------------------------------- 1 | function z = eq(x,y) 2 | % @MOM/EQ - Equal 3 | % 4 | % Given moments X and Y, EQ(X,Y) returns 5 | % the corresponding moment constraint X == Y 6 | % which is an object of type MOMCON 7 | 8 | % D. Henrion, December 4, 2003 9 | % Last modified on 15 March 2006 10 | 11 | z = momcon(x,y,'eq'); 12 | -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/gloptipoly3.tar/gloptipoly3/@mom/ge.m: -------------------------------------------------------------------------------- 1 | function z = ge(x,y) 2 | % @MOM/GE - Greater than or equal 3 | % 4 | % Given moments X and Y, GE(X,Y) returns 5 | % the corresponding moment constraint X >= Y 6 | % which is an object of type MOMCON 7 | 8 | % D. Henrion, December 4, 2003 9 | % Last modified on 15 March 2006 10 | 11 | z = momcon(x,y,'ge'); 12 | -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/gloptipoly3.tar/gloptipoly3/@mom/gt.m: -------------------------------------------------------------------------------- 1 | function z = gt(a,b) 2 | % @MOM/GT - Greater than 3 | 4 | % D. Henrion, December 4, 2003 5 | 6 | error('Please use non-strict inequalities'); 7 | 8 | -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/gloptipoly3.tar/gloptipoly3/@mom/indmeas.m: -------------------------------------------------------------------------------- 1 | function m = indmeas(x) 2 | % @MOM/INDMEAS - Internal use only 3 | 4 | m = x(1).meas; 5 | 6 | -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/gloptipoly3.tar/gloptipoly3/@mom/indvar.m: -------------------------------------------------------------------------------- 1 | function m = indvar(x) 2 | % @MOM/INDVAR - Internal use only 3 | 4 | m = indvar(x(1).split); 5 | 6 | 7 | -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/gloptipoly3.tar/gloptipoly3/@mom/le.m: -------------------------------------------------------------------------------- 1 | function z = le(x,y) 2 | % @MOM/LE - Less than or equal 3 | % 4 | % Given moments X and Y, LE(X,Y) returns 5 | % the corresponding moment constraint X <= Y 6 | % which is an object of type MOMCON 7 | 8 | % D. Henrion, December 4, 2003 9 | % Last modified on 15 March 2006 10 | 11 | z = momcon(x,y,'le'); 12 | 13 | -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/gloptipoly3.tar/gloptipoly3/@mom/lt.m: -------------------------------------------------------------------------------- 1 | function z = lt(a,b) 2 | % @MOM/LT - Less than 3 | 4 | % D. Henrion, December 4, 2003 5 | 6 | error('Please use non-strict inequalities'); 7 | 8 | -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/gloptipoly3.tar/gloptipoly3/@mom/max.m: -------------------------------------------------------------------------------- 1 | function z = max(x) 2 | % @MOM/MAX - Moment expression to be maximized 3 | % 4 | % MAX(X) returns the MONCON object corresponding 5 | % to the maximization of moments X 6 | 7 | % D. Henrion, 4 December 2003 8 | % Last modified on 15 March 2006 9 | 10 | z = momcon(x,'max'); 11 | -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/gloptipoly3.tar/gloptipoly3/@mom/min.m: -------------------------------------------------------------------------------- 1 | function z = min(x) 2 | % @MOM/MIN - Moment expression to be minimized 3 | % 4 | % MIN(X) returns the MONCON object corresponding 5 | % to the minimization of moments X 6 | 7 | % D. Henrion, 4 December 2003 8 | % Last modified on 15 March 2006 9 | 10 | z = momcon(x,'min'); 11 | -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/gloptipoly3.tar/gloptipoly3/@mom/minus.m: -------------------------------------------------------------------------------- 1 | function z = minus(x,y) 2 | % @MOM/MINUS - Subtract moments 3 | % 4 | % MINUS(X,Y) or X-Y substracts Y from X. 5 | % X and Y must have the same dimensions unless one is a scalar. 6 | 7 | % D. Henrion, November 30, 2003 8 | % Last modified 15 March 2006 9 | 10 | z = plus(x,uminus(y)); 11 | 12 | -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/gloptipoly3.tar/gloptipoly3/@mom/mom.m: -------------------------------------------------------------------------------- 1 | function y = mom(x,measx) 2 | % @MOM/MOM - Constructor of class MOM, linear combination of moments 3 | % 4 | % MOM(X) converts an MPOL polynomial X corresponding to a unique measure 5 | 6 | % MOM(X,MEASX) converts a DOUBLE X into a weighted mass of 7 | % the measure index MEASX, which can be zero - Internal use only 8 | 9 | % An MOM object X has the following internal structure: 10 | % X.MEAS = double vector, measure indices, zero points to a constant 11 | % X.SPLIT = double vector, MPOL objects corresponding to these measures 12 | 13 | % D. Henrion, 15 March 2006 14 | % Last modified on 1 March 2007 15 | 16 | global MMM 17 | 18 | if isa(x,'mpol') 19 | 20 | measx = indmeas(x); 21 | if (measx==0) & (nargin < 2) 22 | y = mom(x,measx); % constant 23 | end 24 | if length(measx) > 1 25 | error('Invalid partitioning of measures in moments') 26 | end 27 | 28 | elseif isa(x,'double') 29 | 30 | if nargin < 2 31 | measx = 0; 32 | y = mom(x,measx); % constant 33 | end 34 | if measx > 0 35 | ind = find(MMM.indmeas == measx); 36 | if isempty(ind) 37 | error('Undefined measure') 38 | end 39 | end 40 | 41 | else 42 | 43 | error('Invalid conversion') 44 | 45 | end 46 | 47 | [nrows,ncols] = size(x); 48 | measy = cell(nrows,ncols); 49 | splity = cell(nrows,ncols); 50 | 51 | for r = 1:nrows 52 | for c = 1:ncols 53 | measy{r,c} = measx; 54 | splity{r,c} = mpol(x(r,c)); 55 | end 56 | end 57 | 58 | superiorto('mpol'); 59 | y = struct('meas',measy,'split',splity); 60 | y = class(y,'mom'); 61 | 62 | y = reduce(y); % remove zero moments 63 | -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/gloptipoly3.tar/gloptipoly3/@mom/mpol.m: -------------------------------------------------------------------------------- 1 | function y = mpol(x) 2 | % @MOM/MPOL - Convert moment to polynomial 3 | 4 | % D. Henrion, 16 March 2006 5 | 6 | [nrows,ncols] = size(x); 7 | 8 | if max(nrows,ncols) > 1 9 | 10 | % Matrix 11 | 12 | y = mpol(zeros(nrows,ncols)); 13 | for r = 1:nrows 14 | for c = 1:ncols 15 | y(r,c) = mpol(x(r,c)); 16 | end 17 | end 18 | 19 | else 20 | 21 | % Scalar 22 | y = sum(x.split); % vector to scalar 23 | 24 | end 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/gloptipoly3.tar/gloptipoly3/@mom/mtimes.m: -------------------------------------------------------------------------------- 1 | function z = mtimes(x,y) 2 | % @MOM/MTIMES - Multiply MOM objects 3 | % 4 | % MTIMES(X,Y) or X*Y is the matrix product of X and Y. 5 | % The number of columns of X must equal the number of rows of Y, 6 | % unless X or Y is a scalar. 7 | 8 | % D. Henrion, 27 March 2006 9 | 10 | if size(x,2) ~= size(y,1) 11 | 12 | % Matrix times scalar 13 | 14 | if max(size(x)) == 1 15 | z = mom(zeros(size(y)),0); 16 | for r = 1:size(z,1) 17 | for c = 1:size(z,2) 18 | z(r,c) = times(x,y(r,c)); 19 | end 20 | end 21 | elseif max(size(y)) == 1 22 | z = mom(zeros(size(x)),0); 23 | for r = 1:size(z,1) 24 | for c = 1:size(z,2) 25 | z(r,c) = times(x(r,c),y); 26 | end 27 | end 28 | else 29 | error('Inner matrix dimensions must agree') 30 | end 31 | 32 | else 33 | 34 | % Matrix times matrix 35 | 36 | z = mom(zeros(size(x,1),size(y,2)),0); 37 | for r = 1:size(x,1) 38 | for c = 1:size(y,2) 39 | % Inner products 40 | z(r,c) = times(x(r,1),y(1,c)); 41 | for i = 2:size(x,2) 42 | z(r,c) = plus(z(r,c),times(x(r,i),y(i,c))); 43 | end 44 | end 45 | end 46 | end 47 | 48 | -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/gloptipoly3.tar/gloptipoly3/@mom/plus.m: -------------------------------------------------------------------------------- 1 | function z = plus(x,y) 2 | % @MOM/PLUS - Add MOM objects 3 | % 4 | % PLUS(X,Y) or X+Y adds X and Y 5 | % 6 | % X and Y must have the same dimensions unless one is a scalar, 7 | % in which case it is repeated entrywise 8 | 9 | % D. Henrion, 15 March 2006 10 | 11 | if any(size(x) ~= size(y)) 12 | 13 | % Matrix plus scalar 14 | 15 | if max(size(x)) == 1 16 | z = mom(zeros(size(y)),0); 17 | for r = 1:size(z,1) 18 | for c = 1:size(z,2) 19 | z(r,c) = plus(x,y(r,c)); 20 | end 21 | end 22 | elseif max(size(y)) == 1 23 | z = mom(zeros(size(x)),0); 24 | for r = 1:size(z,1) 25 | for c = 1:size(z,2) 26 | z(r,c) = plus(x(r,c),y); 27 | end 28 | end 29 | else 30 | error('Matrix dimensions must agree') 31 | end 32 | 33 | elseif max(size(x)) > 1 34 | 35 | % Matrix plus matrix 36 | 37 | z = mom(zeros(size(x)),0); 38 | for r = 1:size(x,1) 39 | for c = 1:size(x,2) 40 | z(r,c) = plus(x(r,c),y(r,c)); 41 | end 42 | end 43 | 44 | else 45 | 46 | % Scalar plus scalar 47 | 48 | if ~isa(x,'mom') 49 | 50 | if ~isa(x,'double') 51 | error('Invalid first input argument') 52 | end 53 | 54 | x = mom(x,0); 55 | 56 | elseif ~isa(y,'mom') 57 | 58 | if ~isa(y,'double') 59 | error('Invalid second input argument') 60 | end 61 | 62 | y = mom(y,0); 63 | 64 | end 65 | 66 | z = x; 67 | measy = y.meas; 68 | for k = 1:length(measy) 69 | indmeas = find(z.meas == measy(k)); 70 | if isempty(indmeas) 71 | % moments of new measure 72 | z.meas = [z.meas measy(k)]; 73 | z.split = [z.split y.split(k)]; 74 | % sort out according to measure indices 75 | [v,ind] = sort(z.meas); 76 | z.meas = z.meas(ind); 77 | z.split = z.split(ind); 78 | else 79 | % moments of existing measure 80 | z.split(indmeas) = z.split(indmeas) + y.split(k); 81 | end 82 | end 83 | z = reduce(z); 84 | 85 | end 86 | 87 | 88 | -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/gloptipoly3.tar/gloptipoly3/@mom/reduce.m: -------------------------------------------------------------------------------- 1 | function x = reduce(x) 2 | % @MOM/REDUCE - Internal use only 3 | 4 | % Remove zero moments 5 | 6 | % D. Henrion, 28 April 2006 7 | 8 | % Absolute value threshold for removing almost zero moments 9 | % (set TOL = 0 to prevent removing almost zero moments) 10 | tol = 0; 11 | 12 | for r = 1:size(x,1) 13 | for c = 1:size(x,2) 14 | p = x(r,c).split; % polynomial vector 15 | keep = true(length(p),1); 16 | for k = 1:length(p) 17 | if deg(p(k)) == 0 18 | if abs(coef(p(k))) <= tol 19 | keep(k) = false; 20 | end 21 | end 22 | end 23 | % remove zero polynomials 24 | x(r,c).meas = x(r,c).meas(keep); 25 | x(r,c).split = x(r,c).split(keep); 26 | if isempty(x(r,c).meas) % zero moment 27 | x(r,c).meas = 0; 28 | x(r,c).split = mpol(0); 29 | end 30 | end 31 | end 32 | 33 | -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/gloptipoly3.tar/gloptipoly3/@mom/split.m: -------------------------------------------------------------------------------- 1 | function s = split(x) 2 | % @MOM/SPLIT - Internal use only 3 | 4 | s = x(1).split; 5 | -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/gloptipoly3.tar/gloptipoly3/@mom/times.m: -------------------------------------------------------------------------------- 1 | function z = times(x,y,flag) 2 | % @MOM/TIMES - Multiply entrywise MOM objects 3 | % 4 | % TIMES(X,Y) or X.*Y is the entrywise product. 5 | % X and Y must have the same dimensions unless one is a scalar. 6 | % 7 | % If X or Y is a moment, then X.*Y is a moment 8 | 9 | % D. Henrion, 27 March 2006 10 | 11 | if any(size(x) ~= size(y)) 12 | 13 | % Matrix times scalar 14 | 15 | if max(size(x)) == 1 16 | z = mom(zeros(size(y)),0); 17 | for r = 1:size(z,1) 18 | for c = 1:size(z,2) 19 | z(r,c) = times(x,y(r,c)); 20 | end 21 | end 22 | elseif max(size(y)) == 1 23 | z = mom(zeros(size(x)),0); 24 | for r = 1:size(z,1) 25 | for c = 1:size(z,2) 26 | z(r,c) = times(x(r,c),y); 27 | end 28 | end 29 | else 30 | error('Inner matrix dimensions must agree') 31 | end 32 | 33 | elseif max(size(x)) > 1 34 | 35 | % Matrix times matrix 36 | 37 | z = mom(zeros(size(x)),0); 38 | for r = 1:size(x,1) 39 | for c = 1:size(x,2) 40 | z(r,c) = times(x(r,c),y(r,c)); 41 | end 42 | end 43 | 44 | else 45 | 46 | % Scalar times scalar 47 | 48 | if ~isa(x,'mom') 49 | 50 | if ~isa(x,'double') 51 | error('Invalid first input argument') 52 | end 53 | 54 | % First argument is constant 55 | z = y; 56 | z.split = z.split*x; % use @MPOL/TIMES 57 | 58 | elseif ~isa(y,'mpol') 59 | 60 | if isa(y,'mom') 61 | error('Invalid product of moments') 62 | elseif ~isa(y,'double') 63 | error('Invalid second input argument') 64 | end 65 | 66 | % Second argument is constant 67 | z = x; 68 | z.split = z.split*y; % use @MPOL/TIMES 69 | 70 | end 71 | 72 | z = reduce(z); 73 | 74 | end 75 | -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/gloptipoly3.tar/gloptipoly3/@mom/trace.m: -------------------------------------------------------------------------------- 1 | function t = trace(x) 2 | % @MOM/TRACE - Sum of diagonal elements 3 | % 4 | % TRACE(X) returns the sum of the diagonal elements of matrix X 5 | 6 | % D. Henrion, 27 November 2006 7 | 8 | t = x(1,1); 9 | for i = 2:min(size(x)) 10 | t = t+x(i,i); 11 | end 12 | -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/gloptipoly3.tar/gloptipoly3/@mom/uminus.m: -------------------------------------------------------------------------------- 1 | function x = uminus(x) 2 | % @MOM/UMINUS - Unary minus for MOM object 3 | 4 | % D. Henrion 30 November 2003 5 | % Last modified 15 March 2006 6 | 7 | [nrows,ncols] = size(x); 8 | 9 | for r = 1:nrows 10 | for c = 1:ncols 11 | for k = 1:length(x(r,c).split) 12 | x(r,c).split(k) = -x(r,c).split(k); 13 | end 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/gloptipoly3.tar/gloptipoly3/@momcon/left.m: -------------------------------------------------------------------------------- 1 | function y = left(x) 2 | % @MOMCON/LEFT - Extract left hand-side 3 | 4 | % D. Henrion, January 21, 2004 5 | % Last modified on 16 March 2006 6 | 7 | [nr,nc] = size(x); 8 | y = mom(zeros(nr,nc),0); 9 | for r = 1:nr 10 | for c = 1:nc 11 | y(r,c) = x(r,c).left; 12 | end 13 | end 14 | -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/gloptipoly3.tar/gloptipoly3/@momcon/right.m: -------------------------------------------------------------------------------- 1 | function y = right(x) 2 | % @MOMCON/RIGHT - Extract right hand-side 3 | 4 | % D. Henrion, January 21, 2004 5 | % Last modified on 19 December 2006 6 | 7 | [nr,nc] = size(x); 8 | y = mom(zeros(nr,nc),0); 9 | for r = 1:nr 10 | for c = 1:nc 11 | if strcmp(x(r,c).type,'min') | strcmp(x(r,c).type,'max') 12 | y(r,c) = x(r,c).left; 13 | else 14 | y(r,c) = x(r,c).right; 15 | end 16 | end 17 | end 18 | 19 | -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/gloptipoly3.tar/gloptipoly3/@momcon/subs.m: -------------------------------------------------------------------------------- 1 | function newmc = subs(mc, old, new) 2 | % @MOMCON/SUBS substitutes variables in a given moment constraint 3 | % 4 | % SUBS(MC, OLD, NEW) given the moment constraint MC of type momcon, substitutes 5 | % the vector of variables OLD with the vector of polynomials NEW 6 | 7 | % C. Savorgnan, 14 May 2008 8 | 9 | left = subs(mc.left, old, new); 10 | right = subs(mc.right, old, new); 11 | type = mc.type; 12 | 13 | newmc = momcon(left, right, type); 14 | -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/gloptipoly3.tar/gloptipoly3/@momcon/type.m: -------------------------------------------------------------------------------- 1 | function y = type(x) 2 | % @MOMCON/TYPE - Internal use only 3 | 4 | y = x(1).type; 5 | 6 | -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/gloptipoly3.tar/gloptipoly3/@mpol/coef.m: -------------------------------------------------------------------------------- 1 | function y = coef(x) 2 | % @MPOL/COEF - Internal use only 3 | 4 | % Returns the coefficient vector of polynomial X % Performs scaling appropriately 5 | 6 | % D. Henrion, 30 November 2003 7 | % Last modified by D. Henrion, 14 January 2008 8 | 9 | global MMM 10 | 11 | x = x(1); % scalar polynomials only 12 | 13 | m = indmeas(x); % measure index 14 | if length(m) > 1 15 | error('Scaling not available for polynomials refering to several measures') 16 | end 17 | 18 | % scaling ? 19 | scale = false; 20 | if isfield(MMM,'M') 21 | if m > 0 22 | if length(MMM.M) >= m 23 | if ~isempty(MMM.M{m}) & isfield(MMM.M{m},'indvar') & isfield(MMM.M{m},'scale') 24 | if any(MMM.M{m}.scale ~= 1) 25 | scale = true; 26 | end 27 | end 28 | end 29 | end 30 | end 31 | 32 | if scale 33 | % with scaling 34 | S = MMM.M{m}.scale(MMM.M{m}.relmask(x.var))'; 35 | y = x.coef.*prod(repmat(S,size(x.pow,1),1).^x.pow,2); 36 | else 37 | % without scaling 38 | y = x.coef; 39 | end 40 | 41 | -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/gloptipoly3.tar/gloptipoly3/@mpol/consistent.m: -------------------------------------------------------------------------------- 1 | function f = consistent(x) 2 | % @MPOL/CONSISTENT - Internal use only 3 | 4 | % Check whether a scalar polynomial object is consistent with the 5 | % defined measures and variables - used in MDEF 6 | 7 | % D. Henrion, 15 May 2006 8 | 9 | m = indmeas(x(1)); 10 | % should correspond to one measure only 11 | f = (length(m) == 1); 12 | -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/gloptipoly3.tar/gloptipoly3/@mpol/deg.m: -------------------------------------------------------------------------------- 1 | function d = deg(x, varargin) 2 | % @MPOL/DEG - Degree of a polynomial 3 | % 4 | % DEG(X) returns the overall degree of polynomial X 5 | % DEG(X,V) returns the maximal degree of the variable V (of type mpol) in X 6 | 7 | % D. Henrion, 2 December 2003 8 | % Last modified on 14 May 2008 by C. Savorgnan 9 | 10 | %input checking 11 | if nargin > 2 12 | error('only one or two input arguments'); 13 | end 14 | 15 | if nargin == 2 && ~(isa(varargin{1}, 'mpol') && isvar(varargin{1}) ) 16 | error('the second argument must be a variable of type mpol'); 17 | end 18 | 19 | 20 | x = x(:); 21 | d = 0; 22 | if nargin == 1 23 | for k = 1:length(x) 24 | d = max([d;full(sum(x(k).pow,2))]); 25 | end 26 | else 27 | for k = 1:length(x) 28 | vind = find(x(k).var==varargin{1}.var); 29 | if ~isempty(vind) 30 | d = max(d, max(x(k).pow(:, vind))); 31 | end 32 | end 33 | end 34 | 35 | 36 | 37 | -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/gloptipoly3.tar/gloptipoly3/@mpol/det.m: -------------------------------------------------------------------------------- 1 | function y = det(x) 2 | % @MPOL/DET - Determinant 3 | % 4 | % DET(X) is the determinant of the square matrix X 5 | 6 | % D. Henrion, August 3, 2004 7 | 8 | % Evaluate all the minors recursively wrt first row 9 | 10 | [nr,nc] = size(x); 11 | if nr ~= nc 12 | error('Matrix must be square') 13 | end 14 | 15 | if nr == 1 16 | % scalar 17 | y = x; 18 | else 19 | % matrix, evaluate recursively wrt first row 20 | y = mpol(0); 21 | for r = 1:nr 22 | y = y + (-1)^(r+1)*x(r,1)*det(x([1:r-1 r+1:nr],2:nc)); 23 | end 24 | end 25 | 26 | -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/gloptipoly3.tar/gloptipoly3/@mpol/diag.m: -------------------------------------------------------------------------------- 1 | function d = diag(x) 2 | % @MPOL/DIAG - Diagonal 3 | % 4 | % If X is a matrix, D = diag(X) returns the vector of its diagonal entries. 5 | % If X is a vector, D = diag(X) returns a square matrix such that diag(D) = X. 6 | 7 | % D. Henrion, 27 November 2006 8 | 9 | if length(x) > 1 10 | % Matrix 11 | d = x(1,1); 12 | for k = 2:min(size(x)) 13 | d = [d;x(k,k)]; 14 | end 15 | else 16 | % Vector 17 | n = length(x); 18 | d(n,n) = x(n); 19 | for k = 1:n-1 20 | d(k,k) = x(k); 21 | end 22 | end 23 | -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/gloptipoly3.tar/gloptipoly3/@mpol/diff.m: -------------------------------------------------------------------------------- 1 | function d = diff(p,v) 2 | % @MPOL/DIFF - Differentiate 3 | % 4 | % DIFF(P,V) differentiates a scalar, vector or matrix polynomial P 5 | % with respect to the variable V 6 | % 7 | % If V is a vector of several variables, then DIFF(P,V) returns 8 | % the Jacobian of the scalar or vector polynomial P with respect to V, 9 | % that is, the matrix whose (i,j)-th entry is DIFF(P(i),V(j)) 10 | % 11 | % DIFF(P) returns the Jacobian with respect to all variables in P 12 | 13 | % D. Henrion, 21 April 2006 14 | 15 | if nargin < 2 16 | v = indvar(p); 17 | else 18 | if ~isa(v,'mpol') 19 | error('Invalid second input argument') 20 | end 21 | v = indvar(v); 22 | end 23 | 24 | [nr,nc] = size(p); 25 | if min(nr,nc) == 0 26 | 27 | d = []; 28 | 29 | else 30 | 31 | if (min(nr,nc) > 1) & (length(v) > 1) 32 | error('Cannot generate Jacobian of a matrix polynomial') 33 | end 34 | 35 | n = nr*nc; 36 | nv = length(v); 37 | d = p(:); 38 | for i = 2:nv % for each variable 39 | d = [d d(:,1)]; 40 | end 41 | for ip = 1:n 42 | vp = indvar(p(ip)); 43 | cp = p(ip).coef; 44 | pp = p(ip).pow; 45 | for iv = 1:nv 46 | ic = find(vp == v(iv)); 47 | if isempty(ic) % not a variable 48 | d(ip,iv) = mpol(0); 49 | else % differentiate 50 | ir = find(pp(:,ic) > 0); 51 | if isempty(ir) % constant 52 | d(ip,iv) = mpol(0); 53 | else 54 | d(ip,iv).coef = cp(ir).*pp(ir,ic); 55 | d(ip,iv).pow = pp(ir,:); 56 | d(ip,iv).pow(:,ic) = d(ip,iv).pow(:,ic)-1; 57 | d(ip,iv) = reduce(d(ip,iv)); 58 | end 59 | end 60 | end 61 | end 62 | if min(nr,nc) > 1 % and hence nv = 1 63 | d = reshape(d,nr,nc); % matrix 64 | end 65 | end 66 | 67 | 68 | -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/gloptipoly3.tar/gloptipoly3/@mpol/eq.m: -------------------------------------------------------------------------------- 1 | function z = eq(x,y) 2 | % @MPOL/EQ - Equal 3 | % 4 | % Given polynomials X and Y, EQ(X,Y) returns 5 | % the corresponding measure support equality X == Y 6 | % which is an object of type SUPCON 7 | 8 | % D. Henrion, December 4, 2003 9 | % Last modified on 15 March 2006 10 | 11 | z = supcon(x,y,'eq'); 12 | -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/gloptipoly3.tar/gloptipoly3/@mpol/ge.m: -------------------------------------------------------------------------------- 1 | function z = ge(x,y) 2 | % @MPOL/GE - Greater than or equal 3 | % 4 | % Given polynomials X and Y, GE(X,Y) returns 5 | % the corresponding measure support inequality X >= Y 6 | % which is an object of type SUPCON 7 | 8 | % D. Henrion, December 4, 2003 9 | % Last modified on 15 March 2006 10 | 11 | z = supcon(x,y,'ge'); 12 | -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/gloptipoly3.tar/gloptipoly3/@mpol/gt.m: -------------------------------------------------------------------------------- 1 | function z = gt(a,b) 2 | % @MPOL/GT - Greater than 3 | 4 | % D. Henrion, December 4, 2003 5 | 6 | error('Please use non-strict inequalities'); 7 | 8 | -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/gloptipoly3.tar/gloptipoly3/@mpol/indmeas.m: -------------------------------------------------------------------------------- 1 | function m = INDMEAS(x) 2 | % @MPOL/INDMEAS - Internal use only 3 | 4 | % INDMEAS(X) returns indices of measures associated with variables in X 5 | % 6 | % If there is no measure associated with X, then INDMEAS(X) = 0 7 | 8 | % D. Henrion, 4 August 2004 9 | % Last modified on 31 March 2006 10 | 11 | global MMM 12 | 13 | m = 0; 14 | [nr,nc] = size(x); 15 | for r = 1:nr 16 | for c = 1:nc 17 | % Variable indices 18 | v = indvar(x(r,c)); 19 | % Measure indices 20 | if v 21 | m = [m MMM.indmeas(v)]; 22 | end 23 | end 24 | end 25 | 26 | % Sort and remove duplicate measure indices 27 | m = sort(m); 28 | d = [m 0]-[0 m]; 29 | d = d(2:end-1); 30 | i = 2:length(m); 31 | m = m([1 i(d>0)]); 32 | 33 | % Remove zero measure index 34 | if (length(m) > 1) & (m(1) == 0) 35 | m = m(2:end); 36 | end 37 | 38 | -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/gloptipoly3.tar/gloptipoly3/@mpol/indvar.m: -------------------------------------------------------------------------------- 1 | function v = indvar(x) 2 | % @MPOL/INDVAR - Internal use only 3 | 4 | % INDVAR(X) returns a row vector of sorted problem variable indices in X 5 | % 6 | % If X is a constant polynomial, then INDVAR(X) = 0 7 | 8 | % D. Henrion, 30 November 2003 9 | % Last modified on 21 April 2006 10 | 11 | % Retrieve variable indices 12 | v = []; 13 | [nr,nc] = size(x); 14 | for r = 1:nr 15 | for c = 1:nc 16 | v = [v x(r,c).var]; 17 | end 18 | end 19 | 20 | % Sort and remove duplicate variable indices 21 | v = sort(v); 22 | d = [v 0]-[0 v]; 23 | d = d(2:end-1); 24 | i = 2:length(v); 25 | v = v([1 i(d>0)]); 26 | 27 | % Remove zero variable index 28 | if (length(v) > 1) & (v(1) == 0) 29 | v = v(2:end); 30 | end 31 | 32 | -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/gloptipoly3.tar/gloptipoly3/@mpol/isequal.m: -------------------------------------------------------------------------------- 1 | function out = isequal(a, b) 2 | % @MPOL/ISEQUAL compares two variables of type mpol 3 | % 4 | % ISEQUAL(A, B) returns true if the polynomials A and B are equal, 5 | % false otherwise. 6 | 7 | % C. Savorgnan, 14 May 2008 8 | 9 | [nrowa, ncola]=size(a); 10 | [nrowb, ncolb]=size(b); 11 | 12 | 13 | if nrowa~=nrowb || ncola~=ncolb 14 | % a and b have different dimension 15 | out = false; 16 | else 17 | % checking for differencies 18 | for rind = 1:nrowa 19 | for cind = 1:ncola 20 | diff=a-b; 21 | if diff.coef(1)~=0 22 | out = false; 23 | return 24 | end 25 | end 26 | end 27 | % if this point is reached all the elements are equal 28 | out = true; 29 | end 30 | -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/gloptipoly3.tar/gloptipoly3/@mpol/isvar.m: -------------------------------------------------------------------------------- 1 | function f = isvar(p) 2 | % @MPOL/ISVAR - Scalar monic monomial 3 | 4 | % ISVAR(P) returns TRUE if P is a variable, 5 | % i.e. a scalar monic monomial 6 | 7 | % D. Henrion, 24 April 2006 8 | 9 | f = false; 10 | if length(p) == 1 11 | vp = p.var; 12 | if length(vp) == 1 13 | if vp 14 | pp = p.pow; 15 | if pp == 1 16 | cp = p.coef; 17 | if length(cp) == 1 18 | f = (cp == 1); 19 | end 20 | end 21 | end 22 | end 23 | end 24 | -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/gloptipoly3.tar/gloptipoly3/@mpol/le.m: -------------------------------------------------------------------------------- 1 | function z = le(x,y) 2 | % @MPOL/LE - Less than or equal 3 | % 4 | % Given polynomials X and Y, LE(X,Y) returns 5 | % the corresponding measure support inequality X <= Y 6 | % which is an object of type SUPCON 7 | 8 | % D. Henrion, December 4, 2003 9 | % Last modified on 15 March 2006 10 | 11 | z = supcon(x,y,'le'); 12 | 13 | -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/gloptipoly3.tar/gloptipoly3/@mpol/listvar.m: -------------------------------------------------------------------------------- 1 | function list = listvar(p) 2 | % @MPOL/LISTVAR builds a vector containing the variables defining the specified polynomial 3 | % 4 | % LISTVAR(P) returns a column vector containing the variables in 5 | % the polynomial P 6 | 7 | % C. Savorgnan, 14 May 2008 8 | 9 | [nrows, ncols] = size(p); 10 | 11 | var = []; %var will contain the id of all the variables in p 12 | 13 | for rind = 1:nrows 14 | for cind = 1:ncols 15 | tmpvar=p(rind, cind).var; 16 | for ind = 1:length(tmpvar) 17 | if isempty(find(var==tmpvar(ind))) && tmpvar(ind)~=0 18 | var=[var tmpvar(ind)]; 19 | end 20 | end 21 | end 22 | end 23 | 24 | % reordering of the elements in var (it is not necessary) 25 | [sv, iv]=sort(var); 26 | var=var(iv); 27 | 28 | list=[]; 29 | 30 | for ind = 1:length(var) 31 | % building the list element 32 | el = struct('var', var(ind), 'pow', 1, 'coef', 1); 33 | list = [list; mpol(el)]; 34 | end -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/gloptipoly3.tar/gloptipoly3/@mpol/locate.m: -------------------------------------------------------------------------------- 1 | function [varargout] = locate(p, x) 2 | % @MPOL/LOCATE locates the specified elements inside a polynomial 3 | % 4 | % I = LOCATE(P, X) when P is a vector of type mpol and X is a scalar (numeric or of mpol type), 5 | % the function returns the indices of the elements of P equal to X. 6 | % [I,J] = LOCATE(P, X) when P is a matrix of type mpol and X is a scalar (numeric or of type mpol), 7 | % the function returns the row indices (I) and column indices (J) of the elements of P equal to X. 8 | 9 | % C. Savorgnan, 14 May 2008 10 | 11 | %checking input 12 | msg = 'the second input must be a scalar (possibly of type mpol)'; 13 | 14 | if ~(isa(x, 'mpol') || isnumeric(x)) 15 | error(msg); 16 | end 17 | 18 | if ~( size(x,1)==1 && size(x,2)==1 ) 19 | error(msg); 20 | end 21 | 22 | %finding 23 | if nargout<=1 24 | i = []; 25 | for index = 1:length(p) 26 | if isequal(p(index), x) 27 | i = [i index]; 28 | end 29 | end 30 | varargout = {i}; 31 | else 32 | i = []; 33 | j = []; 34 | [nrows, ncols] = size(p); 35 | for rind = 1:nrows 36 | for cind = 1:ncols 37 | if isequal(p(rind, cind), x) 38 | i = [i rind]; 39 | j = [j cind]; 40 | end 41 | end 42 | end 43 | varargout = {i ,j}; 44 | end 45 | -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/gloptipoly3.tar/gloptipoly3/@mpol/lt.m: -------------------------------------------------------------------------------- 1 | function z = lt(a,b) 2 | % @MPOL/LT - Less than 3 | 4 | % D. Henrion, December 4, 2003 5 | 6 | error('Please use non-strict inequalities'); 7 | 8 | -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/gloptipoly3.tar/gloptipoly3/@mpol/mass.m: -------------------------------------------------------------------------------- 1 | function y = mass(x) 2 | % @MPOL/MASS - Measure mass 3 | % 4 | % MASS(X) returns the mass (type MOM) of the unique measure associated 5 | % with the polynomial X 6 | % 7 | % Equivalent to MASS(MEAS(X)) 8 | 9 | % D. Henrion, 15 March 2006 10 | 11 | global MMM 12 | 13 | measx = indmeas(x); 14 | 15 | if length(measx) > 1 16 | error('More than one measure associated with input argument') 17 | elseif measx == 0 18 | error('Undefined measure') 19 | else 20 | ind = find(MMM.indmeas == measx); 21 | if isempty(ind) 22 | error('Undefined measure') 23 | end 24 | % Create moment of zeroth power of this measure 25 | y = mom(1,measx); 26 | end 27 | -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/gloptipoly3.tar/gloptipoly3/@mpol/mat.m: -------------------------------------------------------------------------------- 1 | function X = mat(x) 2 | % @MPOL/MAT - Matrix whose columns are stacked within a vector 3 | % 4 | % Given a vector X with N^2 entries, the instruction Y = MAT(X) 5 | % returns an N-by-N matrix such that X = VEC(Y), i.e. such that 6 | % the columns of matrix Y are stacked within vector X. 7 | 8 | % D. Henrion, December 31, 2003 9 | 10 | n = floor(sqrt(length(x))); 11 | if n^2 ~= length(x) 12 | error('Invalid dimension of input vector') 13 | end 14 | X = reshape(x,n,n); 15 | -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/gloptipoly3.tar/gloptipoly3/@mpol/max.m: -------------------------------------------------------------------------------- 1 | function z = max(x) 2 | % @MPOL/MAX - Moment expression to be maximized 3 | % 4 | % Given a polynomial X, MIN(X) returns its moments 5 | % to be maximized, a MOMCON object 6 | 7 | % D. Henrion, 4 December 2003 8 | % Last modified on 15 March 2006 9 | 10 | z = momcon(x,'max'); 11 | -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/gloptipoly3.tar/gloptipoly3/@mpol/min.m: -------------------------------------------------------------------------------- 1 | function z = min(x) 2 | % @MPOL/MIN - Moment expression to be minimized 3 | % 4 | % Given a polynomial X, MIN(X) returns its moments 5 | % to be minimized, an MOMCON object 6 | 7 | % D. Henrion, 4 December 2003 8 | % Last modified on 15 March 2006 9 | 10 | z = momcon(x,'min'); 11 | -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/gloptipoly3.tar/gloptipoly3/@mpol/minus.m: -------------------------------------------------------------------------------- 1 | function z = minus(x,y) 2 | % @MPOL/MINUS - Subtract MPOL objects 3 | % 4 | % MINUS(X,Y) or X-Y substracts Y from X. 5 | % X and Y must have the same dimensions unless one is a scalar. 6 | 7 | % D. Henrion, November 30, 2003 8 | 9 | z = plus(x,uminus(y)); 10 | 11 | 12 | -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/gloptipoly3.tar/gloptipoly3/@mpol/mldivide.m: -------------------------------------------------------------------------------- 1 | function z = mldivide(y,x) 2 | % @MPOL/MLDIVIDE - Left matrix divide 3 | % 4 | % MLDIVIDE(Y,X) or Y\X is the matrix division of Y into X 5 | % Divisor Y must be a non-singular DOUBLE 6 | 7 | % D. Henrion, January 23, 2004 8 | 9 | if ~isa(y,'double') 10 | error('Divisor must be a DOUBLE') 11 | end 12 | z = inv(y)*x; 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/gloptipoly3.tar/gloptipoly3/@mpol/mmon.m: -------------------------------------------------------------------------------- 1 | function y = mmon(x,degmin,degmax) 2 | % @MPOL/MMON - Generate monomials 3 | % 4 | % MMON(X,DEG) returns a column vector containing all 5 | % the monomials of degrees up to DEG of the variables in X 6 | % 7 | % MMON(X,DEGMIN,DEGMAX) returns all the monomials of degrees 8 | % between DEGMIN and DEGMAX 9 | 10 | % D. Henrion, 10 April 2004 11 | % Last modified on 23 November 2006 12 | 13 | if nargin < 2 14 | error('Missing second input argument') 15 | end 16 | if ~isa(x,'mpol') 17 | error('Invalid first input argument') 18 | end 19 | if ~isa(degmin,'double') 20 | error('Invalid second input argument') 21 | end 22 | if nargin == 2 23 | degmax = degmin; 24 | degmin = 0; 25 | elseif ~isa(degmax,'double') 26 | error('Invalid third input argument') 27 | elseif degmax < degmin 28 | tmp = degmax; 29 | degmax = degmin; 30 | degmin = degmax; 31 | end 32 | degmin = floor(max(degmin,0)); 33 | degmax = floor(max(degmax,0)); 34 | 35 | iv = indvar(x); 36 | nvar = length(iv); % number of variables 37 | if nvar == 0 38 | error('No variables in first input argument') 39 | end 40 | 41 | % Generate powers 42 | vpow = []; 43 | for k = degmin:degmax 44 | vpow = [vpow;genpow(nvar,k)]; 45 | end 46 | 47 | % Build monomial vector entrywise 48 | % by calling constructor @MPOL/MPOL 49 | dm = size(vpow,1); 50 | var = cell(dm,1); 51 | pow = var; 52 | coef = var; 53 | for k = 1:dm 54 | var{k} = iv; 55 | pow{k} = vpow(k,:); 56 | coef{k} = 1; 57 | end 58 | y = struct('var',var,'pow',pow,'coef',coef); y = reduce(mpol(y)); 59 | -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/gloptipoly3.tar/gloptipoly3/@mpol/mpower.m: -------------------------------------------------------------------------------- 1 | function z = mpower(x,y) 2 | % @MPOL/MPOWER - Matrix power 3 | % 4 | % MPOWER(X,Y) or X^Y is the Y-th power of X if Y is a non-negative integer 5 | % and X is a square matrix 6 | 7 | % D. Henrion, November 30, 2003. 8 | 9 | if nargin < 1 10 | y = 1; 11 | end 12 | 13 | if (max(size(y)) > 1) | (y < 0) | (abs(round(y)-y) > 0) 14 | error('Exponent must be a nonnegative integer') 15 | end 16 | 17 | if size(x,1) ~= size(x,2) 18 | error('Matrix must be square') 19 | end 20 | 21 | if y == 0 22 | 23 | % Zero exponent 24 | z = mpol(eye(size(x))); 25 | 26 | elseif (max(size(x)) == 1) & (size(coef(x),1) == 1) 27 | 28 | % Only one scalar monomial 29 | z = x; 30 | z.pow = x.pow*y; 31 | z.coef = z.coef^y; 32 | 33 | else 34 | 35 | % Matrix power computed by repeated squarings 36 | z = x; 37 | for i = 2:y 38 | z = mtimes(z,x); 39 | end 40 | 41 | end 42 | 43 | 44 | 45 | -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/gloptipoly3.tar/gloptipoly3/@mpol/mrdivide.m: -------------------------------------------------------------------------------- 1 | function z = mrdivide(x,y) 2 | % @MPOL/MRDIVIDE - Right matrix divide 3 | % 4 | % MRDIVIDE(X,Y) or X/Y is the matrix division of Y into X 5 | % Divisor Y must be a non-singular DOUBLE 6 | 7 | % D. Henrion, January 23, 2004 8 | 9 | if ~isa(y,'double') 10 | error('Divisor must be a DOUBLE') 11 | end 12 | z = x*inv(y); 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/gloptipoly3.tar/gloptipoly3/@mpol/mtimes.m: -------------------------------------------------------------------------------- 1 | function z = mtimes(x,y) 2 | % @MPOL/MTIMES - Multiply MPOL objects 3 | % 4 | % MTIMES(X,Y) or X*Y is the matrix product of X and Y. 5 | % The number of columns of X must equal the number of rows of Y, 6 | % unless X or Y is a scalar. 7 | 8 | % D. Henrion, 30 November 2003 9 | % Last modified on 30 December 2006 10 | 11 | if size(x,2) ~= size(y,1) 12 | 13 | % Matrix times scalar 14 | 15 | if prod(size(x)) == 1 16 | z = mpol(zeros(size(y))); 17 | for r = 1:size(z,1) 18 | for c = 1:size(z,2) 19 | z(r,c) = times(x,y(r,c)); 20 | end 21 | end 22 | elseif prod(size(y)) == 1 23 | z = mpol(zeros(size(x))); 24 | for r = 1:size(z,1) 25 | for c = 1:size(z,2) 26 | z(r,c) = times(x(r,c),y); 27 | end 28 | end 29 | else 30 | error('Inner matrix dimensions must agree') 31 | end 32 | 33 | else 34 | 35 | % Matrix times matrix 36 | 37 | z = mpol(zeros(size(x,1),size(y,2))); 38 | for r = 1:size(x,1) 39 | for c = 1:size(y,2) 40 | % Inner products 41 | z(r,c) = times(x(r,1),y(1,c),'noreduce'); 42 | for i = 2:size(x,2) 43 | z(r,c) = plus(z(r,c),times(x(r,i),y(i,c),'noreduce'),'noreduce'); 44 | end 45 | % Monomial reduction performed only once at the end 46 | z(r,c) = reduce(z(r,c)); 47 | end 48 | end 49 | end 50 | 51 | 52 | 53 | 54 | -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/gloptipoly3.tar/gloptipoly3/@mpol/pow.m: -------------------------------------------------------------------------------- 1 | function y = pow(x) 2 | % @MPOL/POW - Internal use only 3 | 4 | % POW(X) returns a matrix of powers of monomials in scalar polynomial X. 5 | % 6 | % Note that powers corresponding to the zero variable 7 | % are indices of the mass of the measures 8 | 9 | % D. Henrion, November 30, 2003 10 | 11 | if max(size(x)) > 1 12 | error('Scalar polynomials only') 13 | end 14 | 15 | y = x.pow; 16 | 17 | -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/gloptipoly3.tar/gloptipoly3/@mpol/power.m: -------------------------------------------------------------------------------- 1 | function z = power(x,y) 2 | % @MPOL/POWER - Array power 3 | % 4 | % POWER(X,Y) or X.^Y is the element-by-element power 5 | 6 | % D. Henrion, December 2, 2003 7 | % Last modified on August 13, 2004 8 | 9 | if nargin < 1 10 | y = 1; 11 | end 12 | 13 | 14 | if any(size(x) ~= size(y)) 15 | 16 | % One scalar argument 17 | 18 | if max(size(y)) == 1 19 | z = mpol(zeros(size(x))); 20 | for r = 1:size(z,1) 21 | for c = 1:size(z,2) 22 | z(r,c) = mpower(x(r,c),y); 23 | end 24 | end 25 | elseif max(size(x)) == 1 26 | z = mpol(zeros(size(y))); 27 | for r = 1:size(z,1) 28 | for c = 1:size(z,2) 29 | z(r,c) = mpower(x,y(r,c)); 30 | end 31 | end 32 | else 33 | error('Matrix dimensions must agree') 34 | end 35 | 36 | else 37 | 38 | z = mpol(zeros(size(x))); 39 | for r = 1:size(x,1) 40 | for c = 1:size(x,2) 41 | z(r,c) = mpower(x(r,c),y(r,c)); 42 | end 43 | end 44 | 45 | end 46 | 47 | 48 | -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/gloptipoly3.tar/gloptipoly3/@mpol/prod.m: -------------------------------------------------------------------------------- 1 | function y = prod(x) 2 | % @MPOL/PROD - Product of elements 3 | % 4 | % For vectors, PROD(X) is the product of the elements of X. 5 | % For matrices, PROD(X) is a row vector with the product over each column. 6 | 7 | % D. Henrion, August 3, 2004 8 | 9 | [nr,nc] = size(x); 10 | if min(nr,nc) == 1 11 | y = x(1); 12 | for i = 2:max(nr,nc) 13 | y = y*x(i); 14 | end 15 | else 16 | y = x(1,:); 17 | for j = 1:nc 18 | for i = 2:nr 19 | y(j) = y(j)*x(i,j); 20 | end 21 | end 22 | end 23 | 24 | -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/gloptipoly3.tar/gloptipoly3/@mpol/subs.m: -------------------------------------------------------------------------------- 1 | function newp = subs(p, old, new) 2 | % @MPOL/SUBS substitutes variables in a given polynomial 3 | % 4 | % SUBS(P, OLD, NEW) given the variable P of type mpol, substitutes 5 | % the variable (or vector of variables) OLD with the polynomial (or 6 | % vector of polynomials) NEW 7 | 8 | % C. Savorgnan, 14 May 2008 9 | 10 | if ~isvector(old) 11 | error('the second argument must be a vector of variables of type mpol'); 12 | end 13 | 14 | for index = 1:length(old) 15 | if ~isa(old(index), 'mpol') || ~isvar(old(index)) 16 | error('the second argument must be a vector of variables of type mpol'); 17 | end 18 | end 19 | 20 | if ~isvector(new) 21 | error('the third argument must be a vector of variables of type mpol or a numeric vector'); 22 | end 23 | 24 | if ~isa(new, 'mpol') && ~isnumeric(new) 25 | error('the third argument must be a vector of variables of numeric or mpol type'); 26 | end 27 | 28 | if length(old)~=length(new) 29 | error('the second and third argument must have equal size'); 30 | end 31 | 32 | [nrows, ncols] = size(p); 33 | 34 | %substitution 35 | 36 | newp = p; 37 | 38 | for rind = 1:nrows 39 | for cind = 1:ncols 40 | var = listvar(p(rind, cind)); 41 | pow = p(rind, cind).pow; 42 | coef = p(rind, cind).coef; 43 | newp(rind, cind) = 0; 44 | for mind = 1:length(coef) % for all the monomials in p(rind, cind) 45 | tmp = coef(mind); 46 | for vind = 1:length(var) % for all the variables in p(rind, cind) 47 | ind = locate(old, var(vind)); 48 | if isempty(ind) 49 | tmp = tmp * var(vind)^pow(mind, vind); 50 | else 51 | tmp = tmp * new(ind)^pow(mind, vind); 52 | end 53 | end 54 | newp(rind, cind) = newp(rind, cind) + tmp; 55 | end 56 | end 57 | end 58 | -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/gloptipoly3.tar/gloptipoly3/@mpol/sum.m: -------------------------------------------------------------------------------- 1 | function s = sum(x) 2 | % @MPOL/SUM - Sum of elements 3 | % 4 | % SUM(X) returns the sum of the elements of vector X 5 | 6 | % D. Henrion, November 30, 2003 7 | 8 | if min(size(x)) > 1 9 | error('Vectors only'); 10 | else 11 | s = x(1); 12 | for i = 2:length(x) 13 | s = s+x(i); 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/gloptipoly3.tar/gloptipoly3/@mpol/trace.m: -------------------------------------------------------------------------------- 1 | function t = trace(x) 2 | % @MPOL/TRACE - Sum of diagonal elements 3 | % 4 | % TRACE(X) returns the sum of the diagonal elements of matrix X 5 | 6 | % D. Henrion, 27 November 2006 7 | 8 | t = x(1,1); 9 | for i = 2:min(size(x)) 10 | t = t+x(i,i); 11 | end 12 | -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/gloptipoly3.tar/gloptipoly3/@mpol/uminus.m: -------------------------------------------------------------------------------- 1 | function x = uminus(x) 2 | % @MPOL/UMINUS - Unary minus for MPOL object 3 | 4 | % D. Henrion, November 30, 2003 5 | 6 | [nrows,ncols] = size(x); 7 | 8 | for r = 1:nrows 9 | for c = 1:ncols 10 | 11 | x(r,c).coef = -x(r,c).coef; 12 | 13 | end 14 | end 15 | 16 | -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/gloptipoly3.tar/gloptipoly3/@mpol/vec.m: -------------------------------------------------------------------------------- 1 | function x = vec(X) 2 | % @MPOL/VEC - Vector of the columns of a matrix 3 | % 4 | % Given an M-by-N matrix Y, the instruction X = VEC(Y) 5 | % returns a vector X with M*N entries such that Y = MAT(X), i.e. such that 6 | % the columns of matrix Y are stacked within vector X. 7 | 8 | % D. Henrion, December 31, 2003 9 | 10 | [m n] = size(X); 11 | x = reshape(X,m*n,1); 12 | -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/gloptipoly3.tar/gloptipoly3/@mpol/vectorize.m: -------------------------------------------------------------------------------- 1 | function str = vectorize(p,varx,vary,varz) 2 | % @MPOL/VECTORIZE Vectorize polynomial 3 | % 4 | % IF P is a univariate, bivariate or trivariate polynomial (class MPOL), the instruction 5 | % 6 | % VECTORIZE(P) 7 | % 8 | % returns a character string (class CHAR) corresponding to the polynomial 9 | % with variables X (and Y and Z). If X (and Y and Z) are existing Matlab vectors 10 | % or matrices (class DOUBLE) then EVAL(VECTORIZE(P)) returns the evaluation 11 | % of P at the values of X (and Y and Z). 12 | % 13 | % With the syntax VECTORIZE(P,VARX,VARY,VARZ) the names of the 14 | % variables can be specified in strings VARX, VARY and VARZ. 15 | 16 | % D. Henrion, 6 April 2010 17 | % Last modified on 24 January 2014 18 | 19 | if nargin < 2 20 | varx = 'x'; 21 | end 22 | if nargin < 3 23 | vary = 'y'; 24 | end 25 | if nargin < 4 26 | varz = 'z'; 27 | end 28 | 29 | N = length(p); 30 | if N > 1 31 | error('Scalar polynomials only') 32 | end 33 | n = length(indvar(p)); 34 | if n > 3 35 | error('Univariate, bivariate or trivariate polynomials only') 36 | end 37 | pp = pow(p); cp = coef(p); 38 | [q,m] = size(pp); 39 | str = ''; 40 | for k = 1:q 41 | str = [str '+(' num2str(cp(k)) ').*' varx '.^(' int2str(pp(k,1)) ')']; 42 | if m > 1 43 | str = [str '.*' vary '.^(' int2str(pp(k,2)) ')']; 44 | end 45 | if m > 2 46 | str = [str '.*' varz '.^(' int2str(pp(k,3)) ')']; 47 | end 48 | end 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/gloptipoly3.tar/gloptipoly3/@msdp/meas.m: -------------------------------------------------------------------------------- 1 | function m = meas(p) 2 | % @MSDP/MEAS - Measures of a moment SDP problem 3 | % 4 | % The instruction 5 | % 6 | % M = MEAS(P) 7 | % 8 | % returns a vector of measures (class MEAS) associated 9 | % with problem P. The measures are arranged by increasing 10 | % index. 11 | 12 | % D. Henrion, 27 November 2006 13 | 14 | m = meas(p.indmeas); 15 | -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/gloptipoly3.tar/gloptipoly3/@msdp/momcon.m: -------------------------------------------------------------------------------- 1 | function [mceq,mcge] = momcon(P) 2 | % @MSDP/MOMCON - Moment constraints of a moment SDP problem 3 | % 4 | % Given a moment SDP problem P (class MSDP) previously defined by MDEF, 5 | % the instruction 6 | % 7 | % [MCEQ,MCGE] = MOMCON(P) 8 | % 9 | % returns column vectors MCEQ, MCGE of class MOMCON corresponding 10 | % to moment equality constraints MCEQ==0 and moment inequality 11 | % constraints MCGE>=0, in an order consistent with the vector of 12 | % dual multipliers returned by function MSOL. 13 | 14 | % D. Henrion, 27 November 2006 15 | 16 | mceq = (P.mmomceq==0); 17 | mcge = (P.mmomcge>=0); 18 | -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/gloptipoly3.tar/gloptipoly3/@msdp/msedumi.m: -------------------------------------------------------------------------------- 1 | function [A,b,c,K,b0,s] = msedumi(P) 2 | % @MSDP/MSEDUMI - Convert moment SDP problem to SeDuMi input format 3 | % 4 | % [A,b,c,K,b0,s] = MSEDUMI(P) translates a moment SDP problem P built with MDEF 5 | % into the SeDuMi input format A,b,c,K 6 | % 7 | % The SDP problem is in SeDuMi dual format 8 | % b0 + max(b'*y) s.t. z = c-A'*y \in K, if s = +1, and 9 | % -(b0 + max(b'*y)) = -b0 + min(-b'*y) s.t. z = c-A'*y \in K, if s = -1 10 | % where b0 is a constant shift 11 | 12 | % D. Henrion, 5 August 2004 13 | % Last modified on 30 September 2008 14 | 15 | A = P.A'; b = P.b'; c = P.c; K = P.K; b0 = P.objshift; s = P.objsign; 16 | -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/gloptipoly3.tar/gloptipoly3/@msdp/supcon.m: -------------------------------------------------------------------------------- 1 | function sc = supcon(P,M) 2 | % @MSDP/SUPCON - Measure support constraints of a moment SDP problem 3 | % 4 | % Given a moment SDP problem P (class MSDP) and a measure M (class MEAS) 5 | % previously defined by MDEF, the instruction 6 | % 7 | % SC = SUPCON(P,M) 8 | % 9 | % returns a column vector SC of class SUPCON corresponding 10 | % to localization constraints of measure M in P. Equality constraints 11 | % SC(K)==0 can be found at the top, and inequality constraints SC(K)>=0 12 | % at the bottom, in an order consistent with the cell array of dual 13 | % multipliers returned by function MSOL. 14 | 15 | % D. Henrion, 27 November 2006 16 | 17 | if nargin < 2 18 | error('Unspecified measure') 19 | end 20 | if ~isa(P,'msdp') 21 | old = P; P = M; M = P; 22 | end 23 | if ~isa(P,'msdp') 24 | error('Unspecified moment SDP problem') 25 | end 26 | if length(P) > 1 27 | error('First input argument must be a scalar') 28 | end 29 | if ~isa(M,'meas') 30 | error('Unspecified measure') 31 | end 32 | if length(M) > 1 33 | error('Second input argument must be a scalar') 34 | end 35 | 36 | im = indmeas(M); 37 | sc = []; 38 | for k = 1:length(P.supceq) 39 | if indmeas(P.supceq(k)) == im 40 | sc = [sc; P.supceq(k)]; 41 | end 42 | end 43 | for k = 1:length(P.supcge) 44 | if indmeas(P.supcge(k)) == im 45 | sc = [sc; P.supcge(k)]; 46 | end 47 | end 48 | 49 | -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/gloptipoly3.tar/gloptipoly3/@supcon/display.m: -------------------------------------------------------------------------------- 1 | function [id,str] = display(x) 2 | % @SUPCON/DISPLAY - Display measure support constraint 3 | % 4 | % [ID,STR] = DISPLAY(X) returns the string identifier ID 5 | % as well as a cell array STR of character strings 6 | 7 | % D. Henrion, 21 January 2004 8 | % Last modified on 12 December 2006 9 | 10 | % No screen output ? 11 | silent = nargout>0; 12 | 13 | [nrows,ncols] = size(x); 14 | 15 | if (min(nrows,ncols) < 1) | isempty(type(x)) 16 | 17 | id = 'Empty support constraint'; 18 | if ~silent 19 | disp(id); 20 | end 21 | 22 | else 23 | 24 | if (nrows == 1) & (ncols == 1) 25 | id = 'Scalar'; 26 | elseif min(nrows,ncols) == 1 27 | id = [int2str(nrows) '-by-' int2str(ncols) ... 28 | ' vector']; 29 | else 30 | id = [int2str(nrows) '-by-' int2str(ncols) ... 31 | ' matrix']; 32 | end 33 | 34 | switch type(x) 35 | case {'ge','le'} 36 | id = [id ' measure support inequality']; 37 | case 'eq' 38 | id = [id ' measure support equality']; 39 | end 40 | 41 | end 42 | 43 | if ~silent 44 | disp(id); 45 | end 46 | 47 | str = cell(nrows,ncols); 48 | 49 | for r = 1:nrows 50 | for c = 1:ncols 51 | 52 | if ~isempty(x(r,c).left) 53 | 54 | % left hand-side 55 | [u,lhs] = display(x(r,c).left); 56 | 57 | % operator 58 | switch type(x(r,c)) 59 | case 'ge' 60 | op = ' >= '; 61 | case 'eq' 62 | op = ' == '; 63 | case 'le' 64 | op = ' <= '; 65 | end 66 | 67 | % right hand-side 68 | [u,rhs] = display(right(x(r,c))); 69 | 70 | str{r,c} = [lhs{:} op rhs{:}]; 71 | 72 | else 73 | str{r,c} = 'empty'; 74 | end 75 | 76 | if ~silent 77 | if (nrows > 1) | (ncols > 1) 78 | disp(['(' int2str(r) ',' int2str(c) '):' str{r,c}]); 79 | else 80 | disp(str{r,c}); 81 | end 82 | end 83 | 84 | end 85 | end 86 | 87 | end 88 | -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/gloptipoly3.tar/gloptipoly3/@supcon/left.m: -------------------------------------------------------------------------------- 1 | function y = left(x) 2 | % @SUPCON/LEFT - Extract left hand-side 3 | 4 | % D. Henrion, January 21, 2004 5 | % Last modified on 16 March 2006 6 | 7 | [nr,nc] = size(x); 8 | y = mpol(zeros(nr,nc)); 9 | for r = 1:nr 10 | for c = 1:nc 11 | y(r,c) = x(r,c).left; 12 | end 13 | end 14 | 15 | -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/gloptipoly3.tar/gloptipoly3/@supcon/right.m: -------------------------------------------------------------------------------- 1 | function y = right(x) 2 | % @SUPCON/RIGHT - Extract right hand-side 3 | 4 | % D. Henrion, January 21, 2004 5 | % Last modified on 16 March 2006 6 | 7 | [nr,nc] = size(x); 8 | y = mpol(zeros(nr,nc)); 9 | for r = 1:nr 10 | for c = 1:nc 11 | y(r,c) = x(r,c).right; 12 | end 13 | end 14 | 15 | -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/gloptipoly3.tar/gloptipoly3/@supcon/subs.m: -------------------------------------------------------------------------------- 1 | function newsc = subs(sc, old, new) 2 | % @SUPCON/SUBS substitutes variables in a given support constraint 3 | % 4 | % SUBS(SC, OLD, NEW) given the support constraint SC of type supcon, substitutes 5 | % the vector of variables OLD with the vector of polynomials NEW 6 | 7 | % C. Savorgnan, 14 May 2008 8 | 9 | newsc=[]; 10 | 11 | for index=1:length(sc) 12 | left = subs(sc(index).left, old, new); 13 | right = subs(sc(index).right, old, new); 14 | type = sc(index).type; 15 | newsc = [newsc; supcon(left, right, type)]; 16 | end 17 | -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/gloptipoly3.tar/gloptipoly3/@supcon/type.m: -------------------------------------------------------------------------------- 1 | function y = type(x) 2 | % @SUPCON/TYPE - Internal use only 3 | 4 | y = x(1).type; 5 | 6 | -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/gloptipoly3.tar/gloptipoly3/doc/gloptipoly3.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/3rdparty/fromPPSFM/forSelfCalibration/gloptipoly3.tar/gloptipoly3/doc/gloptipoly3.pdf -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/gloptipoly3.tar/gloptipoly3/genmom.m: -------------------------------------------------------------------------------- 1 | function nvar = genmom(im,iv,ord) 2 | % GENMOM - Internal use only 3 | 4 | % GENMOM(IM,IV,ORD) generates moments for a measure. 5 | % 6 | % Updates measure info MMM.M 7 | % Used by MSDP 8 | % Uses GENIND 9 | 10 | % D. Henrion, 9 January 2004 11 | % Last modified on 27 April 2007 12 | 13 | global MMM 14 | 15 | % Total number of variables in this measure 16 | tnvar = sum(MMM.indmeas == im); 17 | 18 | % Variables associated with this measure 19 | iv = iv(MMM.indmeas(iv) == im); 20 | nvar = length(iv); 21 | 22 | if nvar 23 | 24 | % Relative indices wrt this measure 25 | relvar = zeros(size(MMM.indmeas)); 26 | relvar(iv) = 1:nvar; 27 | 28 | % Mask variables in this measure 29 | mask = false(size(MMM.indmeas)); 30 | mask(iv) = true; 31 | mask = mask(MMM.indmeas == im); 32 | 33 | % Relative indices wrt this mask 34 | relmask = relvar; 35 | relmask(find(relvar)) = find(mask); 36 | 37 | % Generate the moments and store index tables in MMM.T 38 | % or retrieve them from MMM.T if they already exist 39 | genind(nvar,2*ord); % generate indexing tables 40 | nm = MMM.T(nvar,ord).bin(end,2*ord+2); % number of moments 41 | 42 | % Store data relative to the measure 43 | MMM.M{im}.tnvar = tnvar; % total number of variables 44 | MMM.M{im}.nvar = nvar; % number of active variables 45 | MMM.M{im}.indvar = iv; % indices of active variables 46 | MMM.M{im}.mask = mask; % mask active variables 47 | MMM.M{im}.relvar = relvar; % relative indices of variables 48 | MMM.M{im}.relmask = relmask; % relative indices in this mask 49 | MMM.M{im}.ord = ord; % half maximum degree 50 | MMM.M{im}.nm = nm; % number of moments 51 | MMM.M{im}.sol = {}; % discrete support 52 | 53 | end 54 | 55 | -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/gloptipoly3.tar/gloptipoly3/genpow.m: -------------------------------------------------------------------------------- 1 | function v = genpow(ndig,sum) 2 | % GENPOW - Internal use only 3 | 4 | % Generate powers 5 | % 6 | % GENPOW(NDIG,SUM) returns a matrix whose rows are 7 | % all vectors with NDIG ndigits summing up to SUM 8 | % For example GENPOW(3,2) returns [2 0 0;1 1 0;1 0 1;0 2 0;0 1 1;0 0 2] 9 | % 10 | % Used by GENIND 11 | 12 | % D. Henrion, 20 November 2003 13 | % Last modified on 16 December 2006 14 | 15 | if ndig > 1 16 | v = zeros(1,ndig); 17 | if sum > 0 18 | r = 0; 19 | for k = sum:-1:0 20 | % Recursive call 21 | w = genpow(ndig-1,sum-k); rd = size(w,1); 22 | v(r+1:r+rd,1) = repmat(k,rd,1); 23 | v(r+1:r+rd,2:ndig) = w; 24 | r = r+rd; 25 | end 26 | end 27 | else 28 | v = sum; 29 | end 30 | 31 | -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/gloptipoly3.tar/gloptipoly3/gloptipolydemo.m: -------------------------------------------------------------------------------- 1 | clc 2 | echo on 3 | % Short demo of Gloptipoly 3 4 | % 5 | % Consider the classical problem of minimizing globally the 6 | % two-dimensional six-hump camel back function 7 | % 8 | % min g0(x) = 4x1^2+x1x2-4x2^2-2.1x1^4+4x2^4+x1^6/3 9 | % 10 | % The function has six local minima, two of them being global minima. 11 | % 12 | % This optimization problem can be modeled as a moment 13 | % problem as follows. 14 | % 15 | % First we define the variables 16 | % and the polynomial to be minimized 17 | 18 | mpol x1 x2 19 | g0 = 4*x1^2+x1*x2-4*x2^2-2.1*x1^4+4*x2^4+x1^6/3 20 | pause % Strike any key to continue. 21 | 22 | % Then we define the optimization problem 23 | 24 | P = msdp(min(g0)) 25 | pause % Strike any key to continue. 26 | 27 | % Once the moment problem is modeled, a semidefinite solver can be used to 28 | % solve it numerically with the command [status,obj] = msol(P) 29 | 30 | pause % Strike any key to continue. 31 | 32 | [status,obj] = msol(P) 33 | pause % Strike any key to continue. 34 | 35 | status 36 | 37 | % This means that the moment problem is solved successfully 38 | % that GloptiPoly can extract two globally optimal 39 | % solutions reaching the objective function: 40 | 41 | obj 42 | x = double([x1 x2]); 43 | -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/gloptipoly3.tar/gloptipoly3/gloptipolyversion.m: -------------------------------------------------------------------------------- 1 | function v = gloptipolyversion 2 | % GLOPTIPOLYVERSION - Current version of GloptiPoly 3 | 4 | % Used in @MSDP/MSDP and @MSDP/MSOL 5 | v = '3.8 of 15 December 2014'; 6 | -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/gloptipoly3.tar/gloptipoly3/locpow.m: -------------------------------------------------------------------------------- 1 | function lpow = locpow(p,measp) 2 | % LOCPOW - Internal use only 3 | 4 | % LPOW = LOCPOW(P,MEASP) returns a 3D vector of powers of scalar 5 | % polynomial P with variables indexed *relatively* to measure MEASP 6 | 7 | % D. Henrion, 27 April 2004 8 | % Last modified on 5 January 2007 9 | 10 | global MMM 11 | 12 | varp = indvar(p); 13 | powp = pow(p); 14 | nmon = size(powp,1); 15 | nvar = MMM.M{measp}.nvar; 16 | lpow = zeros(nmon,1,nvar); 17 | if varp(1) > 0 18 | ind = MMM.M{measp}.relvar(varp); 19 | if all(ind) 20 | lpow(:,:,MMM.M{measp}.relvar(varp)) = reshape(powp,nmon,1,length(varp)); 21 | else 22 | lpow = []; % some variables are not assigned 23 | end 24 | end 25 | -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/gloptipoly3.tar/gloptipoly3/mass.m: -------------------------------------------------------------------------------- 1 | function y = mass(x) 2 | % MASS - Mass of a measure 3 | % 4 | % MASS(X) returns the mass (type MOM) of measure number X 5 | 6 | % Uses @MEAS/MASS 7 | 8 | % D. Henrion, 15 March 2006 9 | % Last modified on 31 March 2006 10 | 11 | y = mass(meas(x)); 12 | -------------------------------------------------------------------------------- /GPSFM/3rdparty/fromPPSFM/forSelfCalibration/gloptipoly3.tar/gloptipoly3/pow2ind.m: -------------------------------------------------------------------------------- 1 | function mind = pow2ind(mpow,measp) 2 | % POW2IND - Internal use only 3 | 4 | % MIND = POW2IND(MPOW,MEASP) converts 3D matrix of powers MPOW 5 | % into 2D matrix of indices MIND *relative* to measure MEASP 6 | 7 | % D. Henrion, 27 April 2004 8 | % Last modified on 16 March 2006 9 | 10 | global MMM 11 | 12 | nvar = size(mpow,3); 13 | mind = ones(1,size(mpow,1)*size(mpow,2)); 14 | bin = MMM.T(nvar,MMM.M{measp}.ord).bin; 15 | for k = 1:nvar 16 | mind = mind + bin(nvar+1-k,1+sum(mpow(:,:,k:nvar),3)); 17 | end 18 | mind = reshape(mind,size(mpow,1),size(mpow,2)); 19 | mind = mind + MMM.M{measp}.begind - 1; 20 | 21 | -------------------------------------------------------------------------------- /GPSFM/3rdparty/vgg_code/vgg_KR_from_P.m: -------------------------------------------------------------------------------- 1 | %VGG_KR_FROM_P Extract K, R from camera matrix. 2 | % 3 | % [K,R,t] = VGG_KR_FROM_P(P [,noscale]) finds K, R, t such that P = K*R*[eye(3) -t]. 4 | % It is det(R)==1. 5 | % K is scaled so that K(3,3)==1 and K(1,1)>0. Optional parameter noscale prevents this. 6 | % 7 | % Works also generally for any P of size N-by-(N+1). 8 | % Works also for P of size N-by-N, then t is not computed. 9 | 10 | 11 | % Author: Andrew Fitzgibbon 12 | % Modified by werner. 13 | % Date: 15 May 98 14 | 15 | 16 | function [K, R, t] = vgg_KR_from_P(P, noscale) 17 | 18 | N = size(P,1); 19 | H = P(:,1:N); 20 | 21 | [K,R] = vgg_rq(H); 22 | 23 | if nargin < 2 24 | K = K / K(N,N); 25 | if K(1,1) < 0 26 | D = diag([-1 -1 ones(1,N-2)]); 27 | K = K * D; 28 | R = D * R; 29 | 30 | % test = K*R; 31 | % vgg_assert0(test/test(1,1) - H/H(1,1), 1e-07) 32 | end 33 | end 34 | 35 | if nargout > 2 36 | t = -P(:,1:N)\P(:,end); 37 | end 38 | 39 | return -------------------------------------------------------------------------------- /GPSFM/3rdparty/vgg_code/vgg_X_from_xP_lin.m: -------------------------------------------------------------------------------- 1 | %vgg_X_from_xP_lin Estimation of 3D point from image matches and camera matrices, linear. 2 | % X = vgg_X_from_xP_lin(x,P,imsize) computes projective 3D point X (column 4-vector) 3 | % from its projections in K images x (2-by-K matrix) and camera matrices P (K-cell 4 | % of 3-by-4 matrices). Image sizes imsize (2-by-K matrix) are needed for preconditioning. 5 | % By minimizing algebraic distance. 6 | % 7 | % See also vgg_X_from_xP_nonlin. 8 | 9 | % werner@robots.ox.ac.uk, 2003 10 | 11 | function X = vgg_X_from_xP_lin(u,P,imsize) 12 | 13 | if iscell(P) 14 | P = cat(3,P{:}); 15 | end 16 | K = size(P,3); 17 | 18 | if nargin>2 19 | for k = 1:K 20 | H = [2/imsize(1,k) 0 -1 21 | 0 2/imsize(2,k) -1 22 | 0 0 1]; 23 | P(:,:,k) = H*P(:,:,k); 24 | u(:,k) = H(1:2,1:2)*u(:,k) + H(1:2,3); 25 | end 26 | end 27 | 28 | A = []; 29 | for k = 1:K 30 | A = [A; vgg_contreps([u(:,k);1])*P(:,:,k)]; 31 | end 32 | % A = normx(A')'; 33 | [dummy,dummy,X] = svd(A,0); 34 | X = X(:,end); 35 | 36 | % Get orientation right 37 | s = reshape(P(3,:,:),[4 K])'*X; 38 | if any(s<0) 39 | X = -X; 40 | if any(s>0) 41 | % warning('Inconsistent orientation of point match'); 42 | end 43 | end 44 | 45 | return 46 | -------------------------------------------------------------------------------- /GPSFM/3rdparty/vgg_code/vgg_contreps.m: -------------------------------------------------------------------------------- 1 | function Y = vgg_contreps(X) 2 | 3 | % vgg_contreps Contraction with epsilon tensor. 4 | % 5 | % B = vgg_contreps(A) is tensor obtained by contraction of A with epsilon tensor. 6 | % However, it works only if the argument and result fit to matrices, in particular: 7 | % 8 | % - if A is row or column 3-vector ... B = [A]_x 9 | % - if A is skew-symmetric 3-by-3 matrix ... B is row 3-vector such that A = [B]_x 10 | % - if A is skew-symmetric 4-by-4 matrix ... then A can be interpreted as a 3D line Pluecker matrix 11 | % skew-symmetric 4-by-4 B as its dual Pluecker matrix. 12 | % - if A is row 2-vector ... B = [0 1; -1 0]*A', i.e., A*B=eye(2) 13 | % - if A is column 2-vector ... B = A'*[0 1; -1 0], i.e., B*A=eye(2) 14 | % 15 | % It is vgg_contreps(vgg_contreps(A)) = A. 16 | 17 | % werner@robots.ox.ac.uk, Oct 2001 18 | 19 | if prod(size(X)) == 3 % get [X]_\times 20 | Y = [0 X(3) -X(2) 21 | -X(3) 0 X(1) 22 | X(2) -X(1) 0]; 23 | elseif all(size(X) == [1 2]) 24 | Y = [0 1; -1 0]*X'; 25 | elseif all(size(X) == [2 1]) 26 | Y = X'*[0 1; -1 0]; 27 | elseif all(size(X) == [3 3]) % get X from [X]_\times 28 | Y = [X(2,3) X(3,1) X(1,2)]; 29 | elseif all(size(X) == [4 4]) % pluecker matrix dual 30 | Y = [0 X(3,4) X(4,2) X(2,3) 31 | X(4,3) 0 X(1,4) X(3,1) 32 | X(2,4) X(4,1) 0 X(1,2) 33 | X(3,2) X(1,3) X(2,1) 0 ]; 34 | else 35 | error('Wrong matrix size.') 36 | end -------------------------------------------------------------------------------- /GPSFM/3rdparty/vgg_code/vgg_rq.m: -------------------------------------------------------------------------------- 1 | % [R,Q] = vgg_rq(S) Just like qr but the other way around. 2 | % 3 | % If [R,Q] = vgg_rq(X), then R is upper-triangular, Q is orthogonal, and X==R*Q. 4 | % Moreover, if S is a real matrix, then det(Q)>0. 5 | 6 | % By awf 7 | 8 | function [U,Q] = rq(S) 9 | 10 | S = S'; 11 | [Q,U] = qr(S(end:-1:1,end:-1:1)); 12 | Q = Q'; 13 | Q = Q(end:-1:1,end:-1:1); 14 | U = U'; 15 | U = U(end:-1:1,end:-1:1); 16 | 17 | if det(Q)<0 18 | U(:,1) = -U(:,1); 19 | Q(1,:) = -Q(1,:); 20 | end 21 | 22 | return 23 | -------------------------------------------------------------------------------- /GPSFM/BAceres.mexa64: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/BAceres.mexa64 -------------------------------------------------------------------------------- /GPSFM/BAceres.mexw64: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/BAceres.mexw64 -------------------------------------------------------------------------------- /GPSFM/Preprocessing/Example.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amnonge/GPSFM-code/be7f3515b5a5c4da835c24999be50909111e0f72/GPSFM/Preprocessing/Example.mat -------------------------------------------------------------------------------- /GPSFM/Preprocessing/converPointInlier.m: -------------------------------------------------------------------------------- 1 | function newMat = converPointInlier(pointMatchesInliers) 2 | newMat = zeros(size(pointMatchesInliers)); 3 | for i = 1:size(pointMatchesInliers,1) 4 | for j = 1:size(pointMatchesInliers,2) 5 | newMat(i,j)= size(pointMatchesInliers{i,j,1},2); 6 | end 7 | end 8 | end -------------------------------------------------------------------------------- /GPSFM/Preprocessing/getNormalizationMatBuilding.m: -------------------------------------------------------------------------------- 1 | function [normMatA,normMatB] = getNormalizationMatBuilding(xa,xb) 2 | 3 | Points_mean = mean(xa,2); 4 | c_u = Points_mean(1); 5 | c_v = Points_mean(2); 6 | translated_points = xa - repmat(Points_mean,1,size(xa, 2)); 7 | temp_mean_from_origin = (mean(sum((translated_points.^2),1)))/1; 8 | %compute scale 9 | scale = sqrt(1/(temp_mean_from_origin)); 10 | %compute Transformation matrix as described in the project page 11 | normMatA = [scale 0 0 ;0 scale 0; 0 0 1] * [1 0 -c_u; 0 1 -c_v; 0 0 1]; 12 | 13 | normMatA = normMatA/normMatA(3,3); 14 | 15 | Points_mean = mean(xb,2); 16 | c_u = Points_mean(1); 17 | c_v = Points_mean(2); 18 | translated_points = xb - repmat(Points_mean,1,size(xb, 2)); 19 | temp_mean_from_origin = (mean(sum((translated_points.^2),1)))/1; 20 | %compute scale 21 | scale = sqrt(1/(temp_mean_from_origin)); 22 | %compute Transformation matrix as described in the project page 23 | normMatB = [scale 0 0 ;0 scale 0; 0 0 1] * [1 0 -c_u; 0 1 -c_v; 0 0 1]; 24 | 25 | normMatB = normMatB/normMatB(3,3); 26 | 27 | 28 | end -------------------------------------------------------------------------------- /GPSFM/TripletError.m: -------------------------------------------------------------------------------- 1 | function [ error ] = TripletError( F ) 2 | %SWEENYTRIPLETERROR Summary of this function goes here 3 | % Detailed explanation goes here 4 | 5 | 6 | [Xs] = optimizeGivenTriplets(F,[1 2 3],false); 7 | 8 | error=norm(Xs{1}-F,'fro'); 9 | 10 | end 11 | 12 | -------------------------------------------------------------------------------- /GPSFM/compileMex/compileMexLinux.m: -------------------------------------------------------------------------------- 1 | %This code compiles the mex BAceres 2 | %This code assumes that ceres library: http://ceres-solver.org/ 3 | %is already installed on the computer. 4 | %The library should be installed following the instructions here: 5 | %http://ceres-solver.org/installation.html#linux 6 | %(was tested on Ubuntu) 7 | 8 | mex BAceres.cpp -I/usr/include/eigen3/ -lceres -lglog -llapack -lblas -largeArrayDims 9 | -------------------------------------------------------------------------------- /GPSFM/compileMex/compileMexWindows.m: -------------------------------------------------------------------------------- 1 | %This code compiles the mex BAceres 2 | %This code assumes that ceres library: http://ceres-solver.org/ 3 | %is already installed on the computer. 4 | %In addition, it is assumed that this folder contains the files ceres.lib and glog.lib (the compiled libraries) 5 | 6 | %Change to the pathes in your computer 7 | pathCeres='C:\Users\ykasten\Documents\ceresWorking_10_2_2019\ceres-solver-1.14.0.tar/'; 8 | pathglog='C:\Users\ykasten\Documents\ceresWorking_10_2_2019\glog-masterb'; 9 | 10 | 11 | mex('-largeArrayDims', ['-I' pathCeres '\'],... 12 | ['-I' pathCeres '\ceres-solver\include'],... 13 | ['-I' pathCeres '\ceres-solver\internal'],... 14 | ['-I' pathCeres '\ceres-solver\internal\ceres'],... 15 | ['-I' pathCeres '\ceres-solverb\config'],... 16 | ['-I' pathglog ] ,... 17 | ['-I' pathglog '\src'], ... 18 | ['-I' pathglog 'src\windows'], ... 19 | 'BAceres.cpp','ceres.lib','glog.lib') -------------------------------------------------------------------------------- /GPSFM/dilutePoint.m: -------------------------------------------------------------------------------- 1 | function [newM,keep_pts,rm_pts] = dilutePoint(M) 2 | 3 | if size(M,2)> 20000 4 | param = 4; 5 | else 6 | param = 3; 7 | end 8 | visible = M ~= 0; 9 | visible = visible(1:2:end,:) & visible(2:2:end,:); 10 | 11 | rm_pts = sum(visible, 1) < param; 12 | keep_pts = ~rm_pts; 13 | newM = M(:,keep_pts); 14 | 15 | end -------------------------------------------------------------------------------- /GPSFM/extractTripletsFromViewingGraph.m: -------------------------------------------------------------------------------- 1 | function [triplpets]=extractTripletsFromViewingGraph(tripletGraph) 2 | L=laplacian(tripletGraph); 3 | 4 | triplpets=zeros(size(tripletGraph.Nodes,1)^2,3); 5 | counter = 0; 6 | for i=1:size(L,1) 7 | rel=find(L(i,i+1:end)<0); 8 | rel=rel+i; 9 | if length(rel)<2 10 | continue; 11 | end 12 | possiblePairs=nchoosek(rel,2); 13 | for j=1:size(possiblePairs,1) 14 | if L(possiblePairs(j,1),possiblePairs(j,2)) 15 | 16 | counter = counter +1; 17 | triplpets(counter,:) =[i possiblePairs(j,1) possiblePairs(j,2)]; 18 | 19 | end 20 | end 21 | end 22 | triplpets = triplpets(1:counter,:); 23 | end -------------------------------------------------------------------------------- /GPSFM/findHomography.m: -------------------------------------------------------------------------------- 1 | function [ Hf ,Psa] = findHomography( Ps,Pso ) 2 | Ps_s1=Ps{1}; 3 | Ps_s2=Ps{2}; 4 | Ps_d1=Pso{1}; 5 | Ps_d2=Pso{2}; 6 | 7 | 8 | csnosym=zeros(24,18); 9 | csnosym(1:3,1)=-Ps_s1(:,1); 10 | csnosym(13:15,1)=-Ps_s2(:,1); 11 | 12 | 13 | csnosym(4:6,2)=-Ps_s1(:,1); 14 | csnosym(16:18,2)=-Ps_s2(:,1); 15 | 16 | csnosym(7:9,3)=-Ps_s1(:,1); 17 | csnosym(19:21,3)=-Ps_s2(:,1); 18 | 19 | csnosym(10:12,4)=-Ps_s1(:,1); 20 | csnosym(22:24,4)=-Ps_s2(:,1); 21 | 22 | 23 | 24 | 25 | csnosym(1:3,5)=-Ps_s1(:,2); 26 | csnosym(13:15,5)=-Ps_s2(:,2); 27 | 28 | csnosym(4:6,6)=-Ps_s1(:,2); 29 | csnosym(16:18,6)=-Ps_s2(:,2); 30 | 31 | csnosym(7:9,7)=-Ps_s1(:,2); 32 | csnosym(19:21,7)=-Ps_s2(:,2); 33 | 34 | csnosym(10:12,8)=-Ps_s1(:,2); 35 | csnosym(22:24,8)=-Ps_s2(:,2); 36 | 37 | 38 | csnosym(1:3,9)=-Ps_s1(:,3); 39 | csnosym(13:15,9)=-Ps_s2(:,3); 40 | 41 | csnosym(4:6,10)=-Ps_s1(:,3); 42 | csnosym(16:18,10)=-Ps_s2(:,3); 43 | 44 | csnosym(7:9,11)=-Ps_s1(:,3); 45 | csnosym(19:21,11)=-Ps_s2(:,3); 46 | 47 | csnosym(10:12,12)=-Ps_s1(:,3); 48 | csnosym(22:24,12)=-Ps_s2(:,3); 49 | 50 | 51 | csnosym(1:3,13)=-Ps_s1(:,4); 52 | csnosym(13:15,13)=-Ps_s2(:,4); 53 | 54 | csnosym(4:6,14)=-Ps_s1(:,4); 55 | csnosym(16:18,14)=-Ps_s2(:,4); 56 | 57 | csnosym(7:9,15)=-Ps_s1(:,4); 58 | csnosym(19:21,15)=-Ps_s2(:,4); 59 | 60 | csnosym(10:12,16)=-Ps_s1(:,4); 61 | csnosym(22:24,16)=-Ps_s2(:,4); 62 | 63 | csnosym(1:12,17)=Ps_d1(:); 64 | csnosym(13:24,18)=Ps_d2(:); 65 | 66 | cs=csnosym; 67 | 68 | [u,d,v]=svd(cs); 69 | size(v); 70 | Hf=[v(1,end) v(2,end) v(3,end) v(4,end);v(5,end) v(6,end) v(7,end) v(8,end); 71 | v(9,end) v(10,end) v(11,end) v(12,end);v(13,end) v(14,end) v(15,end) v(16,end)]; 72 | Psa=cell(length(Ps),1); 73 | for i=1:length(Ps) 74 | Psa{i}=Ps{i}*Hf; 75 | Pso{i}*v(16+i,end); 76 | end 77 | 78 | 79 | 80 | end 81 | 82 | -------------------------------------------------------------------------------- /GPSFM/get3Dpoint.m: -------------------------------------------------------------------------------- 1 | function [Points3D, visible,MRep] = get3Dpoint(Ps,Mignored,Mfull) 2 | W=Mignored~=0; 3 | Points3D=zeros(4,size(Mignored,2)); 4 | 5 | for i=1:size(Mignored,2) 6 | xsss=[]; 7 | Pscc={}; 8 | eqs=[]; 9 | for j=1:size(Mignored,1)/2 10 | if(W((j-1)*2+1,i)) 11 | x1=Mignored((j-1)*2+1:(j-1)*2+2,i); 12 | curEqs=[x1(1)*Ps{j}(3,:)-Ps{j}(1,:);x1(2)*Ps{j}(3,:)-Ps{j}(2,:)]; 13 | eqs=[eqs;curEqs]; 14 | xsss=[xsss x1]; 15 | Pscc{length(Pscc)+1}=Ps{j}; 16 | end 17 | end 18 | [u,d,v]=svd(eqs); 19 | X=v(:,end); 20 | Points3D(:,i)=X(1:4)/X(4); 21 | 22 | X = vgg_X_from_xP_nonlin(xsss,Pscc,repmat([576 720 ]',length(Pscc))); 23 | 24 | Points3D(:,i)=X(1:4)/X(4); 25 | end 26 | visible = Mfull~=0; 27 | visible = visible(1:2:end,:); 28 | 29 | MRep = []; 30 | for i = 1:2:size(Mfull,1) 31 | MRep = [MRep;[Mfull(i:i+1,:);ones(1,size(Mfull,2))]]; 32 | end 33 | 34 | end -------------------------------------------------------------------------------- /GPSFM/getBigFfromCameras.m: -------------------------------------------------------------------------------- 1 | function [Fnew,Anew]=getBigFfromCameras(Ps,finalTriplets,nodesNum) 2 | Us=[]; 3 | Vs=[]; 4 | for i=1:nodesNum 5 | [is,js]=find(finalTriplets==i); 6 | curP=Ps{is(1)}{js(1)}; 7 | V4f=inv(curP(1:3,1:3))'; 8 | T4f=null(curP); 9 | T4f=T4f(1:3)/T4f(4); 10 | T4f=getCrossM(T4f); 11 | U4f=V4f*T4f; 12 | Us=[Us;U4f]; 13 | Vs=[Vs;V4f]; 14 | end 15 | 16 | for i=1:size(Vs,1)/3 17 | normalization=norm(Vs(3*i-2:3*i),'fro'); 18 | Vs(3*i-2:3*i,:)=Vs(3*i-2:3*i,:)/normalization; 19 | Us(3*i-2:3*i,:)=Us(3*i-2:3*i,:)/normalization; 20 | end 21 | Fnew=Vs*Us.'+Us*Vs.'; 22 | Anew=Vs*Us.'; -------------------------------------------------------------------------------- /GPSFM/getCollinearityMeasurement.m: -------------------------------------------------------------------------------- 1 | function [ output_args ] = getCollinearityMeasurement( e12,e13,e21,e23,e31,e32,center ) 2 | %GETCOLLINEARITYMEASUREMENT Summary of this function goes here 3 | % Detailed explanation goes here 4 | 5 | norm1=norm((e12+e13)/2-center); 6 | m1=norm(e12/norm1-e13/norm1); 7 | 8 | 9 | norm2=norm((e21+e23)/2-center); 10 | m2=norm(e21/norm2-e23/norm2); 11 | 12 | norm3=norm((e31+e32)/2-center); 13 | m3=norm(e31/norm3-e32/norm3); 14 | 15 | output_args=min([m1,m2,m3]); 16 | end 17 | 18 | -------------------------------------------------------------------------------- /GPSFM/getCrossM.m: -------------------------------------------------------------------------------- 1 | function [ res ] = getCrossM( v ) 2 | %GETCROSSM Summary of this function goes here 3 | % Detailed explanation goes here 4 | t1=cross(v,[1;0;0]); 5 | t2=cross(v,[0;1;0]); 6 | t3=cross(v,[0;0;1]); 7 | 8 | res=[t1 t2 t3]; 9 | end 10 | 11 | -------------------------------------------------------------------------------- /GPSFM/getNormalizationMatBigCondition.m: -------------------------------------------------------------------------------- 1 | function normMat = getNormalizationMatBigCondition(stdParam,M) 2 | newpoints = cell(size(M,1)/2,1); 3 | for i = 1:(size(M,1)/2) 4 | 5 | relcur=M(i*2-1:i*2,:); 6 | relcur=relcur(:,sum(abs(relcur))>0); 7 | newpoints{i}=relcur; 8 | end 9 | normMatTotal = zeros(size(M,1)/2); 10 | ttts=zeros(length(newpoints),1); 11 | for i = 1:length(newpoints) 12 | allPoints = newpoints{i}; 13 | Points_mean = mean(allPoints,2); 14 | translated_points = allPoints - repmat(Points_mean,1,size(allPoints, 2)); 15 | tt=mean(translated_points.^2,2); 16 | ttts(i) =(min(tt(1)/tt(2),tt(2)/tt(1))); 17 | end 18 | if mean(ttts)<0.4 19 | anisotropic=true; 20 | else 21 | anisotropic=false; 22 | end 23 | for i = 1:length(newpoints) 24 | allPoints = newpoints{i}; 25 | Points_mean = mean(allPoints,2); 26 | c_u = Points_mean(1); 27 | c_v = Points_mean(2); 28 | translated_points = allPoints - repmat(Points_mean,1,size(allPoints, 2)); 29 | if anisotropic==true 30 | [trans, ~] = normtrans(allPoints, false); 31 | else 32 | temp_mean_from_origin = (mean(sum((translated_points.^2),1)))/stdParam; 33 | scale = sqrt(1./(temp_mean_from_origin)); 34 | trans=[scale 0 0 ;0 scale 0; 0 0 1] * [1 0 -c_u; 0 1 -c_v; 0 0 1]; 35 | end 36 | 37 | normMat=inv(trans); 38 | close all; 39 | normMat = normMat/normMat(3,3); 40 | 41 | normMatTotal(3*i-2:3*i,3*i-2:3*i) = normMat; 42 | end 43 | normMat = normMatTotal; 44 | end -------------------------------------------------------------------------------- /GPSFM/getProjectiveCameraMatrices.m: -------------------------------------------------------------------------------- 1 | function Ps=getProjectiveCameraMatrices(Xs,v,finalTriplets) 2 | 3 | %GETPROJECTIVECAMERAMATRICES Summary of this function goes here 4 | % Detailed explanation goes here 5 | 6 | 7 | Ps={}; 8 | [ ~,~,~,Psc,~ ] = getCameraMatrices( projectF( Xs{1} ) );%getCameraMatrices( projectF( Xs{1} )); 9 | Ps{1}=Psc; 10 | 11 | 12 | 13 | for i=2:length(Xs) 14 | [ ~,~,~,Psc,~ ] = getCameraMatrices( projectF( Xs{i} ) ); 15 | Ps{i}=Psc; 16 | end 17 | for i=1:size(v,1) 18 | curEdge=v(i,:); 19 | [C,ia,ib]=intersect(finalTriplets(curEdge(1),1:3),finalTriplets(curEdge(2),1:3)); 20 | [H3]= findHomography({Ps{curEdge(2)}{ib(1)},Ps{curEdge(2)}{ib(2)}},{Ps{curEdge(1)}{ia(1)},Ps{curEdge(1)}{ia(2)}}); 21 | H3=double(H3); 22 | H3 = H3/norm(H3,'fro'); 23 | svd(Ps{curEdge(2)}{1}); 24 | Ps{curEdge(2)}{1}=Ps{curEdge(2)}{1}*(H3); 25 | Ps{curEdge(2)}{2}=Ps{curEdge(2)}{2}*(H3); 26 | Ps{curEdge(2)}{3}=Ps{curEdge(2)}{3}*(H3); 27 | end 28 | end 29 | 30 | -------------------------------------------------------------------------------- /GPSFM/normalizeF.m: -------------------------------------------------------------------------------- 1 | function [ FN ] = normalizeF( FN,normalization ) 2 | 3 | for i = 1:3:size(FN,1)-2 4 | for j = 1:3:size(FN,2)-2 5 | FN(i:i+2,j:j+2) = normalization'*FN(i:i+2,j:j+2)*normalization; 6 | end 7 | end 8 | 9 | end 10 | 11 | -------------------------------------------------------------------------------- /GPSFM/normalizeForbineusNorm.m: -------------------------------------------------------------------------------- 1 | function [ FN ] = normalizeForbineusNorm( FN ) 2 | %NORMALIZRFORBINEUSNORM Summary of this function goes here 3 | % Detailed explanation goes here 4 | nodesNum=size(FN,1)/3; 5 | for ii=1:(nodesNum-1) 6 | for jj=ii+1:nodesNum 7 | FN(jj*3-2:jj*3,ii*3-2:ii*3)=FN(jj*3-2:jj*3,ii*3-2:ii*3)/norm(FN(jj*3-2:jj*3,ii*3-2:ii*3),'fro'); 8 | FN(ii*3-2:ii*3,jj*3-2:jj*3)=FN(ii*3-2:ii*3,jj*3-2:jj*3)/norm(FN(ii*3-2:ii*3,jj*3-2:jj*3),'fro'); 9 | end 10 | end 11 | end 12 | 13 | -------------------------------------------------------------------------------- /GPSFM/pnorm.m: -------------------------------------------------------------------------------- 1 | function [ pointsNorm ] = pnorm( points ) 2 | %PNORM Summary of this function goes here 3 | % Detailed explanation goes here 4 | pointsNorm=points./repmat(points(end,:),size(points,1),1); 5 | 6 | end 7 | 8 | -------------------------------------------------------------------------------- /GPSFM/prepareDataForRep.m: -------------------------------------------------------------------------------- 1 | function [ Ps ,visible,MRep] = prepareDataForRep(PsList,Points3Dold,M) 2 | 3 | Ps = zeros(3*length(PsList),4); 4 | for i = 1:length(PsList) 5 | Ps(3*i-2:3*i,1:4) = PsList{i}; 6 | end 7 | 8 | visible = M~=0; 9 | visible = visible(1:2:end,:); 10 | 11 | MRep = []; 12 | for i = 1:2:size(M,1) 13 | MRep = [MRep;[M(i:i+1,:);ones(1,size(M,2))]]; 14 | end 15 | 16 | end -------------------------------------------------------------------------------- /GPSFM/projectF.m: -------------------------------------------------------------------------------- 1 | function [ Fc,A ] = projectF( F ) 2 | [V,D]=eig(F); 3 | 4 | dd=diag(D); 5 | [~,inds]=sort(abs(dd),'descend'); 6 | d=dd(inds(1:6)); 7 | pd=d(d>0); 8 | nd=d(d<0); 9 | 10 | DD=diag(d); 11 | VV=V(:,inds(1:6)); 12 | VP=VV(:,d>0); 13 | VN=VV(:,d<0); 14 | DDN=diag(nd); 15 | DDP=diag(pd); 16 | 17 | 18 | F-VV*DD*VV'; 19 | Fc=VP*DDP*VP'+VN*DDN*VN'; 20 | X=VP*DDP.^0.5; 21 | Y=VN*abs(DDN).^0.5; 22 | Fc2=X*X'-Y*Y'; 23 | 24 | Fc3= [[X+Y]*[X-Y]'+[X-Y]*[X+Y]']/2; 25 | 26 | A=[X+Y]*[X-Y]'/2; 27 | 28 | norm(F-Fc); 29 | end 30 | 31 | -------------------------------------------------------------------------------- /GPSFM/projectivePipeline.m: -------------------------------------------------------------------------------- 1 | clear 2 | addpath(genpath('.')); 3 | % mexopencv.make 4 | 5 | %Solved Data Sets 6 | % dataset = 'Dino 319' 7 | dataset = 'Dino 4983' 8 | % dataset = 'Corridor' 9 | % dataset = 'House' 10 | % dataset = 'Gustav Vasa' 11 | % dataset = 'Folke Filbyter' 12 | % dataset = 'Park Gate' 13 | % dataset = 'Nijo' 14 | % dataset = 'Drinking Fountain' 15 | % dataset = 'Golden Statue' 16 | % dataset = 'Jonas Ahls' 17 | % dataset = 'De Guerre' 18 | % dataset = 'Dome' 19 | % dataset = 'Alcatraz Courtyard' 20 | % dataset = 'Alcatraz Water Tower' 21 | % dataset = 'Cherub'; 22 | % dataset = 'Pumpkin' 23 | % dataset = 'Sphinx'; 24 | % dataset = 'Toronto University' 25 | % dataset = 'Sri Thendayuthapani' 26 | % dataset = 'Porta san Donato' 27 | % dataset = 'Buddah Tooth' 28 | % dataset = 'Tsar Nikolai I' 29 | % dataset = 'Smolny Cathedral' 30 | % dataset = 'Skansen Kronan' 31 | 32 | 33 | runProjective(dataset,0); 34 | -------------------------------------------------------------------------------- /GPSFM/projectivePipelineSelfCalibrate.m: -------------------------------------------------------------------------------- 1 | clear 2 | addpath(genpath('.')); 3 | % mexopencv.make 4 | 5 | %Solved Data Sets 6 | % dataset = 'Dino 319' 7 | % dataset = 'Dino 4983' 8 | % dataset = 'Corridor' 9 | % dataset = 'House' 10 | % dataset = 'Gustav Vasa' 11 | % dataset = 'Folke Filbyter' 12 | % dataset = 'Park Gate' 13 | % dataset = 'Nijo' 14 | % dataset = 'Drinking Fountain' 15 | dataset = 'Golden Statue' 16 | % dataset = 'Jonas Ahls' 17 | % dataset = 'De Guerre' 18 | % dataset = 'Dome' 19 | % dataset = 'Alcatraz Courtyard' 20 | % dataset = 'Alcatraz Water Tower' 21 | % dataset = 'Cherub'; 22 | % dataset = 'Pumpkin' 23 | % dataset = 'Sphinx'; 24 | % dataset = 'Toronto University' 25 | % dataset = 'Sri Thendayuthapani' 26 | % dataset = 'Porta san Donato' 27 | % dataset = 'Buddah Tooth' 28 | % dataset = 'Tsar Nikolai I' 29 | % dataset = 'Smolny Cathedral' 30 | % dataset = 'Skansen Kronan' 31 | 32 | 33 | 34 | runProjective(dataset,1); 35 | -------------------------------------------------------------------------------- /GPSFM/runAll.m: -------------------------------------------------------------------------------- 1 | clear 2 | close all 3 | addpath(genpath('.')); 4 | datasets ={ 'Dino 319' 5 | 'Dino 4983' 6 | 'Corridor' 7 | 'House' 8 | 'Gustav Vasa' 9 | 'Folke Filbyter' 10 | 'Park Gate' 11 | 'Nijo' 12 | 'Drinking Fountain' 13 | 'Golden Statue' 14 | 'Jonas Ahls' 15 | 'De Guerre' 16 | 'Dome' 17 | 'Alcatraz Courtyard' 18 | 'Alcatraz Water Tower' 19 | 'Cherub' 20 | 'Pumpkin' 21 | 'Sphinx' 22 | 'Toronto University' 23 | 'Sri Thendayuthapani' 24 | 'Porta san Donato' 25 | 'Buddah Tooth' 26 | 'Tsar Nikolai I' 27 | 'Smolny Cathedral' 28 | 'Skansen Kronan'}; 29 | 30 | 31 | result=struct; 32 | for i=1:length(datasets) 33 | [ repError,elapsedTime,sizes ] = runProjective( datasets{i},1 ); 34 | result(i).name= datasets{i}; 35 | result(i).repError= repError; 36 | result(i).elapsedTime= elapsedTime; 37 | 38 | result(i).sizes= sizes; 39 | end 40 | 41 | 42 | %% 43 | t=table({result.name}',[result.repError]',[result.elapsedTime]', reshape([result.sizes],2,[])', 'VariableNames',{'Dataset', 'Reprojection_Error' ,'Runtime', 'cameras_points'}); 44 | writetable(t,'table.csv'); --------------------------------------------------------------------------------