123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133 |
- #
- # This module contains some floating point functions and constants.
- #
- # Copyright (C) 2007-2010 Dennis Furey
- #
- # N (206)
- # Q (207)
- # Z (310)
- # abs (62)
- # acos (65)
- # ari (1389)
- # asin (65)
- # atan (63)
- # atanh (71)
- # bus (58)
- # correlation (2857)
- # cos (59)
- # covariance (1356)
- # cu_prod (172)
- # cu_sum (168)
- # derivative (131)
- # div (59)
- # eps (61)
- # eudist (372)
- # exp (58)
- # fleq (121)
- # float (342)
- # floatz (582)
- # geo (1530)
- # inf (58)
- # integral (138)
- # iprod (212)
- # levin_limit (271)
- # levin_sum (104)
- # ln (58)
- # max (129)
- # mean (581)
- # min (129)
- # minus (58)
- # nan (57)
- # negative (122)
- # ninf (58)
- # nth_deriv (1082)
- # nth_diff (950)
- # oprod (564)
- # pi (61)
- # plus (57)
- # pow (58)
- # printf (93)
- # rand (105)
- # root_finder (1004)
- # sgn (376)
- # sin (59)
- # sqr (65)
- # sqrt (66)
- # stdev (1372)
- # strtod (82)
- # tan (57)
- # tanh (65)
- # times (59)
- # variance (1304)
- # vid (59)
- # zeroid (79)
- #
- # compressed with granularity 99
- #
- #
- # 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
- #
- {kvWZtwzzxb{kzaJEIv[cvowhsfCxAww{kggzbAwav[Ez[ujvvWZ\clJ[JZFAx?vtjzkjHsfMT@AkyO
- Uzm{Kfzw^{Kfkzgbekzdn?=xLap{zgfjjgj[z_FGZ\`BF[cnf`mveUcuxBgrgfvggf[cvywkvDF]y]t
- z\TLNNd[<ZBgfvkfwfvjfCoCvxfvozz\lA]=_N]ko<RU]fpdVjBgdVkfxlA]]ZeXgGGKKYvbVH>^<Hb
- TBBfnBg]fvBg]fxbTEzgyEgGaHrxsfF\><^d=gFBg=gnBg=fx^fMzhY^pdeghiGzsf<d<VRBfBldVdV
- yD>t[g\q[bHztphbkJrfdVdV]z]fBl^<T[gh`jzg@jkHnuEgoKfdP]dA^B]z\Mzet`iCHg>vkMHzjNV
- wsfddT^B=ThcnuDgrPgfkfuPkzKw`bj{vgD><^==vzPrcgF{ftVjOEz[K{oztaSk{fhdd@kzNC[zNgj
- Bg]f{F]xUv[cmW{xztCs{k{fffFcuxj=z[Jfgg]ftVyoH=THN]xUwF[cmW{i`Zdz[Gz{zfnffCnCovC
- nCgnvjg]glWBmFU]h=THQF]xUwV[cwPlTIZmVjSGz{zfnfh=Y=O{lAp@gn]fzg]hD[op^fEbC\lA\mQ
- N]y]yj=aNZ>RgevjSgx{rffdebFez[BTjgf]ftVjCt@>PN<DfcEbCch=TNRiTLXkdVk\Rgexgcwz[vf
- ffF^fClC^d]fvdVhBg\R=Nd<Z^fXKEbBLqTDk<=ftDVkhSfxBjuyc{vgFf<o<RU\DVkFBfBg>OG_d<Z
- AdfBgPS^BkTVj<E=ftmMZ={csc{fhfeEb=\ViFBdVevkujVz\>btDJBm\BkVBg\BK^[z=U{cc{ffff^
- d=fn]dVyDkzBKcer_ITlCfBm\=gnJJT[azTCsczZ[zfnfn<BpdTVvFcuy{{ez?RwQ>=@CLBmoBlD[Ex
- ?>S{\[Z[uu{vgFgD[F<WxF]x]{zez[XoH^iBt>A=x?Eh=T=tFUz[t[{\SZ[uuyvfffdFf<x^lAp@[cq
- D[DZYFLnu{TLA<_BTbRD[<[<mCu{c{tA{cr[{VgFgDFiNebF]y]vlApA\<>iSEQmO^e^@=Ta\d[<[>=
- Cu{cszE{czz[vgFgHiNfF_<R@C=bGvfqPkM<d<=bex=ZC^]x=XDAcuzL[zEZX[U{Zfnfnf>>\Eb_>d{
- xhjEQT<Fa\BTHS<Sc^VClAw]z[FSu^Su{{sfhfhnv\f<<cuxfE[rP<\F\\U^=VlAux<]xEuU[{f[zEZ
- [s{{fpfhfnd<]y]veP[aR<TfD<U^=X=U=dU{{bET[cnatcyE{[q{fhfhf^h=TLXebCRC<=^dbUj<@Sc
- uy\\]xEUUzlKp>[pczZ[ZgFvgFFUdfszGTt<V^d>cvCmczLAfV\Atm{g<{LU{Uyc{rfnfhrfF\Fq{{I
- Ll<<DAx=THSzUa\UzPAsTmyd@SqB[u{scrgP^i>f\GV[cszG_j[BTUz[>f<H[eahJRCyj[j\m[uCuey
- c{fnff^fmN]x=uz[CUlGA^fD[DZ<<=X<bvv@Blt?A{NB[co={`M[a{{vdnfnfj@=Ub]x]uq_\E<@=Y=
- ExWvjFJjB[c\^Cmc^Uyzu{vSA{y{fngnfiMb=lApA_P[EbG^V=QVjOvj\AzPLA\m<H[{xM=z[>ZauZo
- y[ZiFgNfr>dBTkg\ptfDE?JBg]QVjUyzBTTTMz[a\]xMVM^SEZZ[Uy[iff^ffh\>d{{Sd<<^edVjo]f
- thS{nFdB]y]xy<RugFc^SxvCr[u{[FiFiFgN<cuyIPt=b]gnb]ftBUz[l<?<R@amubM<<l@eyjj@QOA
- yc{sZpiJiFg<D[BZRMOZTW>UdVh]D[^[\U]a]lf<w<Rovjf\E[PmzSk{zFhfgFnp=THMjMIx]{ZTVdb
- AvMZF]wZ<>Jaa[fuYuzt@An[m[{CyfgIfnfmbBZr?{`=UIx]f<cleZ<EwS<DZypBgeD>M{rUVMZEzYA
- uv{phhfnddFe_OF[clD?{`Beccam`^A]oIoTVjJFAmq<bj[eAzHauxs{vfnOiFd=tON]x]tcux=dHL?
- czL{``k?lVibB[_hTDmZj[{F{vCd[zk{NnnfNg{c=<SLN]x=t<D<A{`Yz`l\JBfV<=Zqd<Dz>HS{uJ[
- ap=>CmxkcSneDn`f[coUbFLAbTcuy\q{t\JBjW{zRX[<Dz[cl<]xac@Z]xCzIs]Dfff]y]xzF^U\V]x
- ]znCuxv^BzV[cxppA]{AvClClAfX>=O@D[{{{Zf_Nh=TLYKL>F\lAp@ZFCrCg\={zFCxcmuD]=]E{<R
- UbWD><oAs{=a{{yxfffUdryL<BTjNLA]=ftCuytTS\=xnDdgCmb=^dc\Euz[REzXa{[yvfpfF]{JFF_
- uBVJgd[@S{\cn@P=>>C^d<<=lVCrCsuCzLauU[S{zfff\ZS_E\Kz>d=fx=Wb[anmU\@m<<u<R@B[tFC
- {kc{nSpSyu{xgPfyEzoD[cl<VjU`L]xadEL=\BVEZ[\=[{t>d{e[cwezR[uu{wfffyR=Z>FCrC]flf@
- =VbZ>F]cxAz[Cuxt@[pK<F_uQ=Xy=YuyccS^gQgJFB[]<R@BBf<Uh\><<]xEXGAd[TZkB[e_\M{^UXR
- E{{=[czYqnfffHbHAub^BdfDLAvR=c<R@Bgd@SAAMcq<Ewo=cuxE{xA{_z{neLfoDuzF\B\=bAb]BVJ
- g_cuV?AwCvZjD[<[L[cmc{zBSs{tffdD\<O\=^f>>F\Bg\HQq\EPdCjC<@=UbnCpA\mX[czUxCscsfp
- h?z<=<<VjCQq?^UgIub=]<RE\ad[<[z<AtZ[U{yfpfdS\Vh_cKacx]QXF\UpZP=ZC{zb>A]{crz[vgF
- FctVertQqSzeb]T<fl>bTLSau{bDHS{]uu{c{viFI=JBiQiTJt[cqIlx<<>ecz[nS\B>[clNR=]yu{u
- {vgFG{]jILy?Qd[TZL?mT<HS<]x>S=d[TZCtNS{tSczZ[zgO<FAtYw_rkQlA]=\rx>S<SeTLA\m={]`
- [ctUy][uYccyfndeJ?PpmQepybVIzczMbAbU\cuxB]y]xEc]a{{czSuu{ph_KyhH>qDzqpF\ZItZ<df
- \\gd[DZH=TNR<M?amz[^=[z[ZSu{zgND]ZPdRtCvUR\?EqIb<=<=<SLLU]`tBR]y]ZEzS>=[{c{a{cS
- QG?czCnRIJqaS@jON=bFF]^>c<RBSvCrZEcuZGCs{cuYc{f`d<SP[_QdyUR?`s@`F^<DMbTuX@=T\Rf
- Cr[<DZ[cn<Su{_scqQ>[bCDTtqAuOJdtl>D>dBRU^<LA^=XMd[DZUz_C{mf[cyFvCKuAPcIQtWl?@<<
- e^jU^Tu<SLLH[\B[ao`C{awOP<P{{i`VwaQn_k`T<>jd=bF<AlD[UwtM[{u[XODCu[{u{oorwQlHWf<
- <<F^clAdmczuX[ctE[ZF^CzKcuxuqE[DaQqJxJFv<JEbT=auz<cd[H[nSlnnTS_CvCnCguYGNUjQcqH
- B\p<E>dU{E[HX=TTci_uoF>[@E{<SLNkwpAaJqeSqcTlt\<]x>SDBU\Cl_AyuHbZeAubGf{{cWlIASu
- QeS`\rLAvR<F`R@cwGmDHLFS^d]fuz[KatJDiOSaSaSOPU]U\JNHSxy@<cal>Bgd[LS[vy[=j=QWWSa
- Q<lf\\><cqUwl<utBgLA^Zo{zyP_OPU=i]QWZF<QbZ{oIh<==fbY=gz[coo^vRyr\qbLW[RD<MKWQFC
- nBlfl=Xz]xUvtnTcMUqOIIdIWeDv[Jt<cnC\<=F{<R?@gho[aLwf?AOIGxD=b{ExoF>\]HU]vj>D{Pt
- Hp`jdH?nCc@pQSPl?VFdBg\xleWbBiEGP{zZPwr<MM<<VkKkIMqWBCQF[a{ofIkPiTVxIXrE\zPiW<\
- ]xcs{LtPmwh>=hFmUNN[R=aIlA\Ccux<oeba>=zFrO<qYo]nU^VCrChP[Q\=UwNEdYSAzDfU<R@BR[z
- y>OJNJAkMRy<<BVGMz[CneMhQGoRKOq>d>d[B[_qDN<M?bPq`td@lA\mZj<g\qFULnTbT[zg\NzGNhn
- >fCuyfyCPJF>D<]x=tVk<va>@=UbBguxfBTBBgZIADf<Vgqd@<BoqJ<[JGN>_E`<oJ>H]P[kOqO^_Eh
- n>D<
|