# some curve fitting functions, Copyright (C) 2007-2010 Dennis Furey # # chord_fit (4594) # mp_chord_fit (4771) # mp_one_piece_polynomial (2717) # mp_sinusoid (6101) # multivariate (1431) # one_piece_polynomial (2181) # plin (973) # poly_dif (20205) # sinusoid (5784) # # compressed with granularity 116 # # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; version 3. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software Foundation, # Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA # {gvkviIvhJsfwOKvhifbsfrsHtozfruWkfx{faOowG{jaeivg_tcWf[awvhtwZfpyR?Omd[EzjvRzhw zfNfIE?Ri=VMzgggs{ggKivkffRex\`jCvgfv?j[cvXjovivkr_uosHbx`eLhcvBg]fwe@bTEzerkeFSjg>jsfrj]ce>D@CvBg =gnEnFeCw]PerdMznwFjgzg=qd]on\SDVdW>snBDowgEx_DJDLKfn]ftje[FgZwrj Gwad^<_SId@CidoPjgPBggwEzggkvfSEN\rxz^gAaF\NZrgAvdDVjenjLzFNp_{hgq@k@zErfFrN^_F Z`ZZf]fvuF^[hjiHdVv`okODYhsgnEHffhfViFdVji=Y=Z^Lz^hk\egXgKOiOooIPale>v>xHfLF]fv\`G{dmzgE wwbiLogAZaF`tmGLNDFfxK>F]fvbEzSeLSgxgMn^VjJxcOZNfKKm^gFg?lf]fv\d[EzdavfSGrPmgPx hkYo{FLtymjgFig>fBgfPAt@vNSgExrcf]gvagvSjjx{h_NtvOTff`ifdVhdE=sFmZfcv]s{bVoNhgw gsjfot`{pfGol_npgNNf]gfTuvHavnE{R=z[JegJOR]pjlsRZoFBFrsh^_Pmo^fgONvBjd{sfvzxyJKNGwk_Iivdm fdJFNkJGF>\hmv^>Ax[cmbGfxbkINY@{zq]fw?leYgophqOklhuH{pgEfpffvxxfd<=KJSfClC^d]fv bg`tuXcuxVh]fv?>^ateYh_yefaceFkIwF?EFGFknvfffffH[p=Ub<]fxbgqP{vfClCuadVhjfqndeZ GIPjIKFngK_iyFB>nfKDkqHffs=LWeb=\VhefIOW{v[H=UcxaDVfZHgDfiXgQyk^mXjnnBIhshhnogP dx_HffnpA{>d=f^VftXcuxW`nU\[zodViPFP\nh^iPxN{yWXkjhpyFw[NfIFiNgPnnf^n^]{<=hbh[? fCnCuZH^dCux?dBgjMdeNGkWjEz[OoRdYK?kjrooKvf?Ff>?PiHfgN>MZ]vVhj_I=Y=Z[td>CnCmdVy Vh`VkC@k@FCnCpS`PuVRxqF[vnBos[FiHj\]Nffpgcx>ef>xJ\`G{cu{H=Y=RLHRP_>nwgjA>lAp@go WKygFv{VcxVookvsSNhvhkOFfp]@Av>V`lXbEzSd[LSnU^c^KjJHFk?mCNU^qa]iK{iWRgWHpiHadJc kEcqNwwFhhdhhnffdU{EfHJ\d[E{LREzDfKzesYJwLlPId^dfOlrez[BgG_GPiStm>ykFJhFusKKKON hnfDn^fiD@[fVfZa=Z=J>QkXSNiNpoewNauzSc{HQGlHgtsfwHnhHfON\mV bekDi_e\[clJcyQnW^vw@I@k]WmVoK`KVxkV[b[ezUzRYpPJn@KsphyHgNnoP> QBhpsLc`yOvVO_nsCv=z>CwssQofJy{shnqOV oVfPoEfeBdL>f^uZZCiB=gKZAq=Y=RPcuxwWH^GdlpOQ^dnYtPGnpzKJfeusNl[=Co=x@[Llaaqvpgo N[Y{sqingFkFnoOhW]yHPmV{uoc_QfamqSLE>c_D[D[C]g>fvmuSQfj?PuHb_YPKONkQMpla]{R[y{[yNppoHgNpno@oOyHNj?Mz[Y[zbfg?FRg[HlEz[HU^zHl=f wYq@wpn@nLaoD_FkA`p_OYugFEfElyk\pjFVzWPLS\m[cD[qc{[q{GPpHOINphppQLKDpnVl]xUurmz [YYIPgSGRto>CnCpF_{cLVkPkotgmIPTSHGHzRy>luQqEi>LE>Li>CpAoLW ?M^k@txk@pkIH@pVYtPpRRsSUP[QnwMFyIY{KIeVPmwfaxd[p[s{QQPkFoNoQPpy<]Q ZMUe{wFjmbC{wHQPbpeglTqSwLKn]{R[sGPqQHiQPhlgKQqSzH\CuxgiSLFe{wFjqPgdiGASJAN[qaKGqfGgqPY?gsQAkWlf[hthyQ>MV=whxS=zS UtCrdBKyXE{tFS_TawhnpqPgOPdPnHbHn]y]u_PA]=\FF^CrCqX\FGQHvNPw<NFqLA]=\FFaFL{C_IQN>qCIMLwOahRdkcuynTCpKj^_@lkdYRPYbumLx\EzqXR rkNNZAj<>SjqDhS{yVl{cQIPINpoYCLDqLEDzB>fbVFqDBkMK\hgGqNY>_PsIPA?bvClCs]eGEsXJQY NVYjaWrQwh{Dfz=uO`RrkWA\Z{^=_zQN< SvwdRtPUzyIHoQQIDqQOQLCuyMMUWYYa_kOPXALGLmPXQ QRgkI]TSm[zghqXr=vYwMNgiHZIBwT@SWzB[x=YZQL\mPglhoIQnhiIPffCnCfPPpyKJGQNPg@jDxnJ Zh^FZTX?S{aAk?tOC=[Dgl>pDoLVj[lyOMV[clVk>wS_{wISIc>kUmzEMSQEyBwTH[QuUR{\? _SXPqQGToOPqQQ=Y=FdnKGNHbpX?QQl[OK=qC_K=zl[ash@serg\o[DwkOIlpxk=w=fxpuamDxd[wS_pvkSzEzDaJdmEMSP_QRKeLua^DeJQHfxIOOIHhhqIHlEPRV]PqDkPzw?Bk`a\`NZF\BktealEphAEIPcP]fs`nTPA^V\OCTPFKd[EyZJVNmwgPoJkQEubEfYf{bCnCasQitX[cpqWV[NBj{TzG@w?jrpiqJLSqbRzVbqq rAEGDqPqHgFqQQOxgQPh?_Q>TV]y]zL?EupCG^ec?[tBljsVCuZQtNK{S`RS^kg]fvCr[{^ZxIMQ^nQXp]x]tA`pU>dzzToFelR>LjCIIP]QXUQztnd^nILAp@EG<\Kzku\ P?Y[{NPUJOPSaYMqXuHQHoFniQP>AISpM=M\]x]yCuyrHVk` a]hEb^FU^bF]z[f{{]AtTK{u\OHoPPqNjiHyIqCLSLNd[TZTl]f{`nCtf@=T=t>woQLhlA]=uAKO?oorwPQn{JYSYLqHQPoPGQHtgQpb ThUdz=fmz[BHDFb>jxqM`^U\ClVkeA]gmbB]y]{]=o]tEJSPA\mCu yqKomb={^Clcd[T[QDMlOINl`FwLjPPtnPRPbWaUyOeA]NH`ohjqIQOIIHhnrxbP<[clVlA]=zdqvAplPUeLR?AqI_xcdyPhTU^\<]x]tNWqFpAp@^<]xA=bFPStcTflLcpApA{TNKbj\FCrZQeoM]>RxqIMU qOIIdIXfBgpCuygQFqGH\^{@T>FOpdF^BKz]P?T[lE>cu{ucTflLAdmkUnSSk_kjjQ?jdHQHpoDVibs Nnbq?Q@PHqDUFW neHWUQl{LkLD[LSUSX Kp={olyUq?SNGz?IMqWBCHBnAo`oOQDDB=?jY=Uczb\{Oil`S]][oUFAdHqLE\zPiWNCE HXIG@MbVOocuxynf>{{\>L@[{C?VqFh>zSKvRAmcEgDN[R=aILLHfNH@bBw\fCrCgc`JP]TSMdcuytS FdGkMrhErNsQotoflISXtUL]LpAt@wDcOmEwlbOF@hh J?Pea?Evk@PW]fn\b>LYmdvGtyELoG\PlNzGNhnBg]`w]gl>TuxgxDkJ__DVj?qDKj>`O^zuEBuPo]CjM`uCjO@t[jBMJAwhMZI]uLK`?t_t_v_tdznK_ TzLLzJK^LzHKg?uRK]@Kc?tP[h=zLct>[ect=AvctD[^ctHS\cv]ZF[^]ZnS]ezA=z`atB[]]ZB[_=Z J[^LSaau@c`GxFzItGz`ItBc\gt^zFk\oz>?ZFc\gv_ZFEtfZFcfeuNc]fZ@ ewNzM>z@gtP{]QtIz`QtCc\Bz=k\wtAs\JZ?k\bZ?cduuAk\Mc]utAceMuHz>Othz?StDQtjZ>Wt]c^utIC\ ovaZFUteC^mthZgKaES]Ec``ZOCbmtOCiOu@OtOK]QZ@Su=S`qtQc]BzLUuJZAMtXzBUtUC]mtxZAOt mS_BZHMtxZEMtpZiKaMS]Mca@ZSC@PUp=O@<