_3Lcq@s dZddlZddlmZdefdYZdefdYZeded ej d d d d ddddddddddddddddddd d!d"d#d$d%d&d'd(d)d*d+d,d-d.d/d0d1d2d3d4d5d6d7d8d9d:d;d<d=d>d?d@dAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd[d\d]d^d_d`dadbdcdddedfdgdhdidjdkdldmgddnej dodpdqdrdsdtdudvdwdxdydzd{d|d}d~ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddgdded ej dddddddddddddddddddddddddddddddddg!dnej dddddddddddddddddddddddddddddddddg!ded ej dddddddddddddddddddddddddgdnej dddddddddddddddddddddddddgd ed ej d d d d ddddddddddddddddddd d!d"d#d$d%d&d'd(d)d*d+d,d-d.d/d0d1d2d3d4d5d6d7d8d9d:d;d<d=d>d?d@dAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd[d\d]d^d_d`dadbdcdddedfdgdhdidjdkdldmgddnej dndodpdqdrdsdtdudvdwdxdydzd{d|d}d~dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddgdded ej dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddgQdnej dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddgQZ dZ de _ dZ de _ dZde_ dZde_ dZde_ dZde_ dZde_ dZde_ dZde_ dZde_ dZde_ dZde_ dZde_ eeeeeeeeeeg ZdefdYZdefdYZedZddZddZddZ dddZ!dee ddZ"dZ#dS(sSome test functions for bivariate interpolation. Most of these have been yoinked from ACM TOMS 792. http://netlib.org/toms/792 iN(t TriangulationtTestDatacBseZdZRS(cOs tj|||||_dS(N(tdictt__init__t__dict__(tselftargstkwds((sP/opt/alt/python27/lib64/python2.7/site-packages/matplotlib/delaunay/testfuncs.pyR s(t__name__t __module__R(((sP/opt/alt/python27/lib64/python2.7/site-packages/matplotlib/delaunay/testfuncs.pyR st TestDataSetcBseZdZRS(cKs|jj|dS(N(Rtupdate(RR((sP/opt/alt/python27/lib64/python2.7/site-packages/matplotlib/delaunay/testfuncs.pyRs(RR R(((sP/opt/alt/python27/lib64/python2.7/site-packages/matplotlib/delaunay/testfuncs.pyR st franke100txg??gXk?gj*0 8?g1P?gDQW-_?g$@gj!>?g=;gr;+?gjGqgXo>?g]43?g?g-?g10f?gYHe/?g0 ?gFQ?g?gl[jα?g?g؝s?g^g?gzD?gY3?g,0?g t&?go*Ral?g?g m-n?ga?ga*m?gaa?gĹҌ?gTXI?g7~T?g Tb?gd%?gHh?gȉe?g*.?gFn#?gA G!?gjDDŽ?gM»\?g4R?g&?gg=?g쉮 ??gYcuP.?g[X?g9?g?4?gk3 ?g0!?gHg+?grک?g{`lO?tygMZ:ßgܩoO?gC`C~?gWA?gNr?g #bP?g9 a?gH:?g{n$?gX x?gV?g-u׃?g:ܳS?g5|f?g-?gśD?gBF?gl?gvD?g+?g%Y8?gt֮?gŠ?gJ6?gX*?g~?g!I?gO<1?gUY?g-L`?gØR?gvՅ?gq%?g N?g0a?g bVD?g?g:@@?gm?gi?ge%guBY?gL;?g KR?gE?gkٵE?gun?g`?g#?g'0l?g~8?gk%?g ?g,g~?g%+?gۆQ<~?gC|:ed?gϭH?g1е/ ?gYxM?gm;F{?gb5i?g[8?g @=?g_/?gg?gXZ/?gt@?gu?gO?g~Tˆg?g `@?gnZ:0J?gG ~"?gd$?g ~6?g+r>+?gsZ\?grP]?tfranke33g?gg?g333333?g?g?g333333?gffffff?g?g?g333333?g?gffffff?g?g?g333333?g?gffffff?g?g?g?tlawson25g?g333333?g?g?ggffffff?gffffff?g333333?g333333g?g?g?g?g?g333333?g?gffffff?g?gffffff?gffffff?g?gffffff?g?g?g333333?gffffff?g?g?g?g\(\g̼?t random100gͯA?gnn'?gLT?g _?gŸ́p?g.Ҭ?g{=?g+|"?g{y<_?gփ?g=l?gGAk?g†=?g6k?g e?gRm?g㌼?gv@#"?g+~?g@5_%?gHțW?g3 ?gnxL{?g{6?g¦Σ?gUP?gr-?g't?gf`X~?gQC?gmB߹?gOP?g.eT>:?gW:?gA0HR-?g/892?g+r?gv5ԃ?ghfً?g8?gn& ?g.a#?g6qr?ghju(?g{<)?gT?g?g @+ժB?gz?g<?g2?g6S!^?gH?g60~ ?g̏d5?gǮ?g̉A?gTqsj?gYq`(?g%?g1Ð6?g9ݞ֣?g7F6?g|k?g4 U ?g+n7?g7ne?gG{r4?g0o{?gO5?g&"?g7G?gmz?g*z;#?g5?g Ñ?g *s?gv?g+ 0?gz^?gd?g=FE?g/;z?gu1r?g]?gxv?gZ?g":vY?gy?gS?ga7?gyD;]?gir?g/s昇?gu=,/?g<.ED?g'?gt ޺?gd4<0?g߃.?g ?gȮYa*?g Zh?g *d?g^:?g}?g~^G ?g1߃|?g/fS?gm3⑰?gDd7?gܾh?g+??g *|l?gL?gcK?gzN?gv?g8?g3?gxO/B?gq;?ggJF)|Q?gүc?g=?giW|?gp@k?gxr+?gbg?gʔ m?gq Ģ?g#)ah?gC?gG?gC9,h5?gU?gd&?gBe?g>.X?gͨq?gI^Bͤ?gtٞ?gtE?g a=?g?gҕc rr?g:-~?gAAΠ?gg s?g˜>m?gf{Y?g`T?g8賨?gqo# q?gGF?gnA?g S?g>A?g\?g~۰?g* |. ?g)?gtPxb?gBme[M?gp6G?gpצ w?gk: 1?gR?g5rT?gGH?gj$SO0m?g?tuniform9g?g?g?cCstj|j|jS(N(tnptonestshapetdtype(R R((sP/opt/alt/python27/lib64/python2.7/site-packages/matplotlib/delaunay/testfuncs.pytconstantstConstantcCs|S(N((R R((sP/opt/alt/python27/lib64/python2.7/site-packages/matplotlib/delaunay/testfuncs.pytxrampssX RampcCs|S(N((R R((sP/opt/alt/python27/lib64/python2.7/site-packages/matplotlib/delaunay/testfuncs.pytyrampssY Rampc Cs|d}|d}|d}|d}|d}|d}|d}|d}|d}|d} dtj|||| ddtj| |d|d d tj|||| dd tj| || | } | S( Ni g?g@g@g@g@g?gH@g$@g?g?(Rtexp( R Rtx1tx2tx4tx7ty1ty2ty3ty7tf((sP/opt/alt/python27/lib64/python2.7/site-packages/matplotlib/delaunay/testfuncs.pyt exponentials          e!sExponential and Some GaussianscCs#tjd||dd}|S(Ng"@g?(Rttanh(R RR$((sP/opt/alt/python27/lib64/python2.7/site-packages/matplotlib/delaunay/testfuncs.pytcliffstCliffcCs3dtjd|ddd|dd}|S(Ng?g@g@ig?i(Rtcos(R RR$((sP/opt/alt/python27/lib64/python2.7/site-packages/matplotlib/delaunay/testfuncs.pytsaddles/tSaddlecCs/tjd|dd|ddd}|S(Ng@g?ig@(RR(R RR$((sP/opt/alt/python27/lib64/python2.7/site-packages/matplotlib/delaunay/testfuncs.pytgentles+s Gentle PeakcCs/tjd|dd|ddd}|S(Ng@4g?ig@(RR(R RR$((sP/opt/alt/python27/lib64/python2.7/site-packages/matplotlib/delaunay/testfuncs.pytsteeps+s Steep PeakcCs]dd|dd|dd}tj|dktjtj|dddd}|S(Ni@iQg?iiidg(Rtwheretsqrttclip(R RtcircleR$((sP/opt/alt/python27/lib64/python2.7/site-packages/matplotlib/delaunay/testfuncs.pytspheres"7tSpherecCsAdtjd|tjd|tjd||}|S(Ng@g$@(RR)tsin(R RR$((sP/opt/alt/python27/lib64/python2.7/site-packages/matplotlib/delaunay/testfuncs.pyttrigs=sCosines and SinescCsfdd|}dd|}tj| |d}tj| |d}|d|d|}|S(Ng@g$@ig?i(RR(R Rtg1tg2R$((sP/opt/alt/python27/lib64/python2.7/site-packages/matplotlib/delaunay/testfuncs.pytgausss s!Gaussian Peak and Gaussian RidgescCstjdd|d}tjdd|d}dd|}dd|}ddd||d||d|d||d|}|S( Ng$@g4@g@g?iiig@(RR(R RtexteytlogitxtlogityR$((sP/opt/alt/python27/lib64/python2.7/site-packages/matplotlib/delaunay/testfuncs.pyt cloverleaf s >t CloverleafcCsJtjd|dd|d}tjd|tjd|}|S(NiPgD@iZgF@g{Gzg333333?(RthypotRR)(R RR1R$((sP/opt/alt/python27/lib64/python2.7/site-packages/matplotlib/delaunay/testfuncs.pyt cosine_peaks"$s Cosine Peakt LinearTestercBsDeZdZd d dddZdZdZedd ZRS( tLineargg?ieicCs||_||_||_||_tjjd}|j|d|dd||_|j|d|dd||_ t |j|j |_ dS(NiIiitsize( txrangetyrangetnrangetnpointsRtrandomt RandomStatetuniformR RRttri(RRDRERFRGtrng((sP/opt/alt/python27/lib64/python2.7/site-packages/matplotlib/delaunay/testfuncs.pyRs    ##cCs4|j|_|j|_t|j|j|_dS(N(R RRRK(Rtdataset((sP/opt/alt/python27/lib64/python2.7/site-packages/matplotlib/delaunay/testfuncs.pyt replace_data)s  cCs5||j|j}|jj|d|j|jS(Ntbbox(R RRKtlinear_extrapolatorRDRE(Rtfunctz((sP/opt/alt/python27/lib64/python2.7/site-packages/matplotlib/delaunay/testfuncs.pyt interpolator.stimshowcCs,ddl}ddlm}|r|j|}||jd|jdtd|j|jd|jdtd|jf}nntj|jd|jdtd|j|jd|jdtd|jf\}} || |}tj tj |d|}|jd|jd|jd|jdf} |j |j |j |dkr|jtj|ddd | d d n|d kr/tj|jd|jdtd|j|jd|jdtd|jf\} } |jtj| tj| |d n|j} |j}|jjtjg|jjD]4\} }| | || f| |||ff^q]ddg}|j}|j||rd|j}nd}t|dr|jd|j|fn |j||j|j dS(Ni(tpylabiigRTt interpolationtnearesttextenttorigintlowertcontouritcolorsg?s%s Interpolantt Referencettitles%s: %s(iiig?(!t matplotlibRURSREtcomplexRFRDRtmgridR.tisinftiofftclfthotRTt nan_to_numtogridR[travelR Rt collectionstLineCollectiontarrayRKtedge_dbtgcatadd_collectiontnamethasattrR^tshowtion(RRQtinterptplottertmpltpltlpiRRRR RXtYtXtitjtlctaxR^((sP/opt/alt/python27/lib64/python2.7/site-packages/matplotlib/delaunay/testfuncs.pytplot2sF )0,3    + ,3+  S    (gg?(gg?(RR RoRRNRStTrueR~(((sP/opt/alt/python27/lib64/python2.7/site-packages/matplotlib/delaunay/testfuncs.pyRAs   tNNTestercBseZdZdZRS(sNatural NeighborscCs5||j|j}|jj|d|j|jS(NRO(R RRKtnn_extrapolatorRDRE(RRQRR((sP/opt/alt/python27/lib64/python2.7/site-packages/matplotlib/delaunay/testfuncs.pyRS`s(RR RoRS(((sP/opt/alt/python27/lib64/python2.7/site-packages/matplotlib/delaunay/testfuncs.pyR^scCsmddlm}|jtdd}tdd}x$|D]}|jGH|j|dtdd|jd|j |j|dt dd|jd |j |j|dt dd|jd |j |j|dtdd |jd |j |j|dt dd |jd |j |j|dt dd |jd|j q?W|j dS(Ni(RURGiRsRtRTs%s-ref-img.pngs %s-nn-img.pngs%s-lin-img.pngR[s%s-ref-con.pngs %s-nn-con.pngs%s-lin-con.png( R_RURcRRAR^R~tFalsetsavefigt func_nameRRr(tallfuncsRvtnnttlptRQ((sP/opt/alt/python27/lib64/python2.7/site-packages/matplotlib/delaunay/testfuncs.pyt plotallfuncsds&  cCsddl}ddlm}|dkr4dg}n|jjtjg|jD]@\}}|j||j |f|j||j |ff^qMd|}|j }|j ||j dS(Ni(RUig?R\(iiig?( R_RUtNoneRiRjRRkRlR RRmRntdraw_if_interactive(RKR\RuRvRzR{R|R}((sP/opt/alt/python27/lib64/python2.7/site-packages/matplotlib/delaunay/testfuncs.pytplot_dtys   Y  cCsddl}ddlm}|dkr4dg}n|jjtjgtt|j D]@}|j |D],}|dkrj|j ||j |f^qjqYd|}|j }|j ||j dS(Ni(RUiig?R\(iiig?(R_RURRiRjRRkRDtlent circumcentersttriangle_neighborsRmRnR(RKR\RuRvRzR{R|R}((sP/opt/alt/python27/lib64/python2.7/site-packages/matplotlib/delaunay/testfuncs.pytplot_vos   C   c Cs(ddl}ddlm}|dkr1d }ntjg|jD])\}}}|j||j|f^qA|j}tj |dddf|dddf}|j } x_t t |D]K}|j j|j|||ddd|d d d d} | j| qW|jdS( Ni(RUiig?t resolutionidt edgecolort facecolort linewidth(iiig?(iiii(R_RURRRkttriangle_nodesR RRR?RmRDRtpatchestCirclet add_patchR( RKRRuRvRzR{tktdxytrR}tp((sP/opt/alt/python27/lib64/python2.7/site-packages/matplotlib/delaunay/testfuncs.pytplot_ccs   ? 2 )tnni!cCsS||j|j}t|j|j}t||d|dd}tjddtd|ddtd|f\}}|||} |ddtd|ddtd|f} ||} | | d} tj| j} tj| j| }| |d}tj|j}d| |}|j G|G| G|G| GH|S( snCompute a quality factor (the quantity r**2 from TOMS792). interpolator must be in ('linear', 'nn'). t _extrapolatorROgg?iii(gg?gg?( R RRtgetattrRRaR`tsumtflatR(RQtmeshRStntfzRKtintpRxRytZtiztnumgoodtSEtSSEtmeanZtSMtSSMtr2((sP/opt/alt/python27/lib64/python2.7/site-packages/matplotlib/delaunay/testfuncs.pytqualitys=4 c Csvi}|j}|jxS|D]K\}}|j|g}x*|D]"} |jt| |||qHWq#W|S(N(titemstsortt setdefaulttappendR( RSRtdataRtresultstkvRoRtreslistRQ((sP/opt/alt/python27/lib64/python2.7/site-packages/matplotlib/delaunay/testfuncs.pyt allqualitys   $cCstjdddddg}tjdddddg}d }d }t||}ttj||gftj||gf}||fS( Ng?g333333?g?g333333?g?gffffff?gg?gq= ףp?gq= ףp?(RRkRthstack(tx0ty0ttxttytt0tt1((sP/opt/alt/python27/lib64/python2.7/site-packages/matplotlib/delaunay/testfuncs.pytfunkys3($t__doc__tnumpyRt triangulateRRRtobjectR RkRRR^RRR%R'R*R,R-R2R5R8R=R@RRARRRRRRRRR(((sP/opt/alt/python27/lib64/python2.7/site-packages/matplotlib/delaunay/testfuncs.pyts                   !                                                                            $B