tJcs@s dZddkZddklZdefdYZdefdYZeded ei 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`dadbdcdddedfdgdhdidjdkdldmgddnei dodpdqdrdsdtdudvdwdxdydzd{d|d}d~ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddgdded ei dddddddddddddddddddddddddddddddddg!dnei dddddddddddddddddddddddddddddddddg!ded ei dddddddddddddddddddddddddgdnei dddddddddddddddddddddddddgd ed ei 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`dadbdcdddedfdgdhdidjdkdldmgddnei dndodpdqdrdsdtdudvdwdxdydzd{d|d}d~dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddgdded ei dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddgQdnei 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 ti|||||_dS(N(tdictt__init__t__dict__(tselftargstkwds((sC/usr/lib64/python2.6/site-packages/matplotlib/delaunay/testfuncs.pyR s(t__name__t __module__R(((sC/usr/lib64/python2.6/site-packages/matplotlib/delaunay/testfuncs.pyR st TestDataSetcBseZdZRS(cKs|ii|dS(N(Rtupdate(RR((sC/usr/lib64/python2.6/site-packages/matplotlib/delaunay/testfuncs.pyRs(RR R(((sC/usr/lib64/python2.6/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?cCsti|i|iS(N(tnptonestshapetdtype(R R((sC/usr/lib64/python2.6/site-packages/matplotlib/delaunay/testfuncs.pytconstantstConstantcCs|S(N((R R((sC/usr/lib64/python2.6/site-packages/matplotlib/delaunay/testfuncs.pytxrampssX RampcCs|S(N((R R((sC/usr/lib64/python2.6/site-packages/matplotlib/delaunay/testfuncs.pytyrampssY Rampc Cs|d}|d}|d}|d}|d}|d}|d}|d}|d}|d} dti|||| ddti| |d|d d ti|||| dd ti| || | } | S( Ni g?g@g@g@g@g?gH@g$@g?g?(Rtexp( R Rtx1tx2tx4tx7ty1ty2ty3ty7tf((sC/usr/lib64/python2.6/site-packages/matplotlib/delaunay/testfuncs.pyt exponentials          e!sExponential and Some GaussianscCs#tid||dd}|S(Ng"@g?(Rttanh(R RR$((sC/usr/lib64/python2.6/site-packages/matplotlib/delaunay/testfuncs.pytcliffstCliffcCs3dtid|ddd|dd}|S(Ng?g@g@ig?i(Rtcos(R RR$((sC/usr/lib64/python2.6/site-packages/matplotlib/delaunay/testfuncs.pytsaddles/tSaddlecCs/tid|dd|ddd}|S(Ng@g?ig@(RR(R RR$((sC/usr/lib64/python2.6/site-packages/matplotlib/delaunay/testfuncs.pytgentles+s Gentle PeakcCs/tid|dd|ddd}|S(Ng@4g?ig@(RR(R RR$((sC/usr/lib64/python2.6/site-packages/matplotlib/delaunay/testfuncs.pytsteeps+s Steep PeakcCs]dd|dd|dd}ti|djtiti|dddd}|S(Ni@iQg?iiidg(Rtwheretsqrttclip(R RtcircleR$((sC/usr/lib64/python2.6/site-packages/matplotlib/delaunay/testfuncs.pytspheres"7tSpherecCsAdtid|tid|tid||}|S(Ng@g$@(RR)tsin(R RR$((sC/usr/lib64/python2.6/site-packages/matplotlib/delaunay/testfuncs.pyttrigs=sCosines and SinescCsfdd|}dd|}ti| |d}ti| |d}|d|d|}|S(Ng@g$@ig?i(RR(R Rtg1tg2R$((sC/usr/lib64/python2.6/site-packages/matplotlib/delaunay/testfuncs.pytgausss s!Gaussian Peak and Gaussian RidgescCstidd|d}tidd|d}dd|}dd|}ddd||d||d|d||d|}|S( Ng$@g4@g@g?iiig@(RR(R RtexteytlogitxtlogityR$((sC/usr/lib64/python2.6/site-packages/matplotlib/delaunay/testfuncs.pyt cloverleaf s >t CloverleafcCsJtid|dd|d}tid|tid|}|S(NiPgD@iZgF@g{Gzg333333?(RthypotRR)(R RR1R$((sC/usr/lib64/python2.6/site-packages/matplotlib/delaunay/testfuncs.pyt cosine_peaks"$s Cosine Peakt LinearTestercBsDeZdZd d dddZdZdZedd ZRS( tLineargg?ieicCs||_||_||_||_tiid}|i|d|dd||_|i|d|dd||_ t |i|i |_ dS(NiIiitsize( txrangetyrangetnrangetnpointsRtrandomt RandomStatetuniformR RRttri(RRDRERFRGtrng((sC/usr/lib64/python2.6/site-packages/matplotlib/delaunay/testfuncs.pyRs    ##cCs4|i|_|i|_t|i|i|_dS(N(R RRRK(Rtdataset((sC/usr/lib64/python2.6/site-packages/matplotlib/delaunay/testfuncs.pyt replace_data)s  cCs5||i|i}|ii|d|i|iS(Ntbbox(R RRKtlinear_extrapolatorRDRE(Rtfunctz((sC/usr/lib64/python2.6/site-packages/matplotlib/delaunay/testfuncs.pyt interpolator.stimshowc Cs>ddk}ddkl}|oi|i|}||id|idtd|i|id|idtd|if}noti|id|idtd|i|id|idtd|if\}} || |}ti ti |d|}|id|id|id|idf} |i |i |i |djo,|iti|ddd | d d n|d joti|id|idtd|i|id|idtd|if\} } |iti| ti| |d n|i} |i}|iitig} |iiD]5\}}| | |||f| |||ffqg~ ddg}|i}|i||od|i}nd}t|do|id|i|fn|i||i|i dS(Ni(tpylabiigRTt interpolationtnearesttextenttorigintlowertcontouritcolorsg?s%s Interpolantt Referencettitles%s: %s(iiig?(!t matplotlibRURSREtcomplexRFRDRtmgridR.tisinftiofftclfthotRTt nan_to_numtogridR[travelR Rt collectionstLineCollectiontarrayRKtedge_dbtgcatadd_collectiontnamethasattrR^tshowtion(RRQtinterptplottertmpltpltlpiRRRR RXtYtXt_[1]titjtlctaxR^((sC/usr/lib64/python2.6/site-packages/matplotlib/delaunay/testfuncs.pytplot2sF )1,3    , ,3,  W    (gg?(gg?(RR RoRRNRStTrueR(((sC/usr/lib64/python2.6/site-packages/matplotlib/delaunay/testfuncs.pyRAs   tNNTestercBseZdZdZRS(sNatural NeighborscCs5||i|i}|ii|d|i|iS(NRO(R RRKtnn_extrapolatorRDRE(RRQRR((sC/usr/lib64/python2.6/site-packages/matplotlib/delaunay/testfuncs.pyRS`s(RR RoRS(((sC/usr/lib64/python2.6/site-packages/matplotlib/delaunay/testfuncs.pyR^scCsmddkl}|itdd}tdd}x$|D]}|iGH|i|dtdd|id|i |i|dt dd|id |i |i|dt dd|id |i |i|dtdd |id |i |i|dt dd |id |i |i|dt dd |id|i q?W|i 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^RtFalsetsavefigt func_nameRRr(tallfuncsRvtnnttlptRQ((sC/usr/lib64/python2.6/site-packages/matplotlib/delaunay/testfuncs.pyt plotallfuncsds( c Csddk}ddkl}|djo dg}n|iitig}|iD]A\}}||i||i |f|i||i |ffqS~d|}|i }|i ||i dS(Ni(RUig?R\(iiig?( R_RUtNoneRiRjRRkRlR RRmRntdraw_if_interactive( RKR\RuRvRzR{R|R}R~((sC/usr/lib64/python2.6/site-packages/matplotlib/delaunay/testfuncs.pytplot_dtys   ]  c Csddk}ddkl}|djo dg}n|iitig}tt|i D]F}|i |D]2}|djo||i ||i |fqpqpq_~d|}|i }|i ||i dS(Ni(RUiig?R\(iiig?(R_RURRiRjRRkRDtlent circumcentersttriangle_neighborsRmRnR( RKR\RuRvRzR{R|R}R~((sC/usr/lib64/python2.6/site-packages/matplotlib/delaunay/testfuncs.pytplot_vos   L   c Cs2ddk}ddkl}|djo d }ntig}|iD]*\}}}||i||i|fqG~|i}ti |dddf|dddf} |i } x_t t | D]K}|i i|i|| |ddd|d d d d} | i| qW|idS( Ni(RUiig?t resolutionidt edgecolort facecolort linewidth(iiig?(iiii(R_RURRRkttriangle_nodesR RRR?RmRDRtpatchestCirclet add_patchR( RKRRuRvRzR{R|tktdxytrR~tp((sC/usr/lib64/python2.6/site-packages/matplotlib/delaunay/testfuncs.pytplot_ccs   G 2 )tnni!cCsS||i|i}t|i|i}t||d|dd}tiddtd|ddtd|f\}}|||} |ddtd|ddtd|f} ||} | | d} ti| i} ti| i| }| |d}ti|i}d| |}|i 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((sC/usr/lib64/python2.6/site-packages/matplotlib/delaunay/testfuncs.pytqualitys=4 c Csvh}|i}|ixS|D]K\}}|i|g}x*|D]"} |it| |||qHWq#W|S(N(titemstsortt setdefaulttappendR( RSRtdataRtresultstkvRoRtreslistRQ((sC/usr/lib64/python2.6/site-packages/matplotlib/delaunay/testfuncs.pyt allqualitys   $cCstidddddg}tidddddg}d }d }t||}tti||gfti||gf}||fS( Ng?g333333?g?g333333?g?gffffff?gg?gq= ףp?gq= ףp?(RRkRthstack(tx0ty0ttxttytt0tt1((sC/usr/lib64/python2.6/site-packages/matplotlib/delaunay/testfuncs.pytfunkys3($t__doc__tnumpyRt triangulateRRRtobjectR RkRRR^RRR%R'R*R,R-R2R5R8R=R@RRARRRRRRRRR(((sC/usr/lib64/python2.6/site-packages/matplotlib/delaunay/testfuncs.pyts                   !                                                                            $B