ó
±éRc        q   @  s·
  d  Z  d d l m Z d d l Z d d l m Z d e f d „  ƒ  YZ d e	 f d „  ƒ  YZ
 e d	 e
 d
 e j d d d d d d d d d d d d d d d d d d d d d d  d! d" d# d$ d% d& d' d( d) d* d+ d, d- d. d/ d0 d1 d2 d3 d4 d5 d6 d7 d8 d9 d: d; d< d= d> d? d@ dA dB dC dD dE dF dG dH dI dJ dK dL dM dN dO dP dQ dR dS dT dU dV dW dX dY dZ d[ d\ d] d^ d_ d` da db dc dd de df dg dh di dj dk dl dm dn gd ƒ do e j dp dq dr ds dt du dv dw dx dy dz d{ d| d} d~ d d€ d� d‚ dƒ d„ d… d† d‡ dˆ d‰ dŠ d‹ dŒ d� dŽ d� d� d‘ d’ d“ d” d• d– d— d˜ d™ dš d› dœ d� dž dŸ d  d¡ d¢ d£ d¤ d¥ d¦ d§ d¨ d© dª d« d¬ d­ d® d¯ d° d± d² d³ d´ dµ d¶ d· d¸ d¹ dº d» d¼ d½ d¾ d¿ dÀ dÁ dÂ dÃ dÄ dÅ dÆ dÇ dÈ dÉ dÊ dË dÌ dÍ dÎ dÏ dÐ dÑ dÒ dÓ gd ƒ ƒ dÔ e
 d
 e j dÕ dÖ dÖ dÖ d× d× dØ dÙ dÚ dÛ dÜ dÝ dÝ dÞ dß dß dß dà dá dá dá dâ dâ dâ dã dã dä då då dæ dç dç dç g! ƒ do e j dè dÝ dç dÖ dØ dâ dÛ d× dÙ dÜ dä dÖ dç dæ dÚ dà dä dá dÙ dà då d× dÜ dä dé dà dÚ dÜ dã då dÖ dÝ dç g! ƒ ƒ dê e
 d
 e j dë dì dí dî dï dð dÕ dè dñ dò dó dô dí dä dá dõ dè dö dè dç dÝ dô d÷ dø d× g ƒ do e j dù dú dû dü dý dþ dï dÿ dÞ dã dâ d dÞ dddddô dó dddddd	g ƒ ƒ d
e
 d
 e j dddddddddddddddddddddd d!d"d#d$d%d&d'd(d)d*d+d,d-d.d/d0d1d2d3d4d5d6d7d8d9d:d;d<d=d>d?d@dAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd[d\d]d^d_d`dadbdcdddedfdgdhdidjdkdldmdngd ƒ do e j dodpdqdrdsdtdudvdwdxdydzd{d|d}d~dd€d�d‚dƒd„d…d†d‡dˆd‰dŠd‹dŒd�dŽd�d�d‘d’d“d”d•d–d—d˜d™dšd›dœd�dždŸd d¡d¢d£d¤d¥d¦d§d¨d©dªd«d¬d­d®d¯d°d±d²d³d´dµd¶d·d¸d¹dºd»d¼d½d¾d¿dÀdÁdÂdÃdÄdÅdÆdÇdÈdÉdÊdËdÌdÍdÎdÏdÐdÑdÒgd ƒ ƒ dÓe
 d
 e j ddÖ dÖ dÖ dÖ dÖ dÖ dÖ dÖ dÖ dddddddddÚ dÚ dÚ dÚ dÚ dÚ dÚ dÚ dÚ dÔdÔdÔdÔdÔdÔdÔdÔdÔdÝ dÝ dÝ dÝ dÝ dÝ dÝ dÝ dÝ dÕdÕdÕdÕdÕdÕdÕdÕdÕdâ dâ dâ dâ dâ dâ dâ dâ dâ dÖdÖdÖdÖdÖdÖdÖdÖdÖdç dç dç dç dç dç dç dç dç gQ ƒ do e j dÖ ddÚ dÔdÝ dÕdâ dÖdç dÖ ddÚ dÔdÝ dÕdâ dÖdç dÖ ddÚ dÔdÝ dÕdâ dÖdç dÖ ddÚ dÔdÝ dÕdâ dÖdç dÖ ddÚ dÔdÝ dÕdâ dÖdç dÖ ddÚ dÔdÝ dÕdâ dÖdç dÖ ddÚ dÔdÝ dÕdâ dÖdç dÖ ddÚ dÔdÝ dÕdâ dÖdç dÖ ddÚ dÔdÝ dÕdâ dÖdç gQ ƒ ƒ ƒ Z d×„  Z dØe _ dÙ„  Z dÚe _ dÛ„  Z dÜe _ dÝ„  Z dÞe _ dß„  Z dàe _ dá„  Z dâe _ dã„  Z däe _ då„  Z dæe _ dç„  Z dèe _ dé„  Z dêe _ dë„  Z dìe _ dí„  Z dîe _ dï„  Z dðe _ e e e e e e e e e e g
 Z dñe	 f dò„  ƒ  YZ dóe f dô„  ƒ  YZ e dõ„ Z d dö„ Z  d d÷„ Z! d dø„ Z" dùdúdû„ Z# dùe e dúdü„ Z$ dý„  Z% d S(þ  s€   Some test functions for bivariate interpolation.

Most of these have been yoinked from ACM TOMS 792.
http://netlib.org/toms/792
iÿÿÿÿ(   t   print_functionN(   t   Triangulationt   TestDatac           B  s   e  Z d  „  Z RS(   c         O  s    t  j |  | | Ž |  |  _ d  S(   N(   t   dictt   __init__t   __dict__(   t   selft   argst   kwds(    (    sW   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/delaunay/testfuncs.pyR      s    (   t   __name__t
   __module__R   (    (    (    sW   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/delaunay/testfuncs.pyR      s   t   TestDataSetc           B  s   e  Z d  „  Z RS(   c         K  s   |  j  j | ƒ d  S(   N(   R   t   update(   R   R   (    (    sW   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/delaunay/testfuncs.pyR      s    (   R	   R
   R   (    (    (    sW   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/delaunay/testfuncs.pyR      s   t	   franke100t   xg„Ù–?—?gˆX³„k¤«?gj*0	¼8–?g1PÓæî‘?gD­QW-_?g$š@‹ª¿gj!·±>¤?gÄ=;…ð¨¿g�r;êž+ ?gj¢ÏGq¥¿gX§o>óÀ?g]²à43é»?gîÈý³‹À?g¥-®ñ™ì·?g1�¶0f¦³?gYHe/€•Â?g’0„Ê	°?gèFýšQ˜Â?g­ÅºŠ¸?g¸l¾[jÎ±?g ¯´ç�îÐ?gØ�î<ñœÎ?gªc•Ò3½Ê?g‹ÎèýµÑ?gÑ}”lÐòÅ?gà¹ÉÍ?g@ypÈ?gTFÛççÇ?gMeöÓÍ?gŽ�å<Ï?g‚lþ¼q×?g‘½9·d°Ø?gœä¢µý†Ø?g»Ig»�XÔ?gršOg8/Ö?gÔZâ‘+Ø?g±!î ÈÉØ?gœoMgØ?gŽi
SJØ?g^œøjGñÑ?gä°EüŽÚ?gŽÔ1�Œ`Û?gcÒßKáÚ?gUê£�äØÝ?gÃ–Ã“‚ß?gù
`0Ú?g–Vè(¬Þ?gypÌÞ?gåX(ã)uÙ?ge)£Û\ÆÙ?gKg?·â?gœ€ËVâ?g`ž„ˆŠgã?g9ôqÈaà?gjºC/H_â?gM
JÑŠã?gM½n+ã?gUòVÎ7á?gúT_§¢‚ã?g<Z‹tà?gõÿ`–,å?gôöŒé®‘ä?g+û®þwä?g>€ûðâså?gÎÚ^gæ?gŒôzDä?gõY¯3Ïæ?gî,0èæ?g	t�&€å?go*Raláå?g”«³µÂè?g• m-Ýnè?ga�ž¶ç?gaƒ*ÚÁmê?gÃ«aaç?gÄ¹áÒŒàé?g†TöXIê?g7–~Tç?g	²TÍbØé?gd‡Ÿ¤%ê?g�óHÍhõê?gÈ‰eéùÉë?g§*î.Æê?gF¯«nš#î?gAËG!ë?gj�ÍDÇ„ë?g”M¹Â»\í?g€4R¥‚ë?g&„³ ²í?gógš°=ë?gì‰®?¸ð?gYcuP.òî?g[ÖX”‹ï?g9À‚êÕöî?g²?šûõ4ð?gk¹3çî?g0™ò!ð?gHg+“ð?grõÚ©ð?g{`lÆOî?t   ygMZ:ÝÃŸ¿güÜ©oOÄ?gC`›C~Ð?gWÀóA…ÙÕ?gN¬�r–£ß?g#bP�â?gˆ9÷aæ?gH�:•çç?gÞ{nü$í?gXªx™áï?g¢–æV«©?gª-u�×ƒ·?gÿ:Ü³S˜Ð?g„Û5|f¤Õ?gà-� ø±Ú?gÅ›ëêDøá?gÐBF—÷ä?gül‰·è?gþÁvæÔDí?gì+´áÒî?g%¡ãY8ÿ�?g¦ßt��Ö®?gÞÅ ¸ˆÑ?gÿJ�6™§×?gÌXÙã*»Þ?g~Œ‰ã?g!¢âIæ?gO�<µŸ1ê?gU¶Yæòì?gÖ-Lð—`ï?g±Ã˜ô÷R¤?g«©v—Õ…±?g»qœ%–Î?g N­’þÓ?gò0£aß?gbVÞD£à?g¤òÀîŸä?g³‚:@‹@ê?g‹mšì?gñi©×ï?ge½½%�¿gu‘BYøúÃ?g»L¨;ªõÌ?g—KòRÔ?gE¡À–²çØ?gkÙµ—Eà?gó×u¹Ò<ä?g-ÐU	è?g6Þg¦Å*ë?g£,2ð’îï?gË+|"ôØ›¿g �Ò¥IÀ?g�ÓÆÇÝVÑ?gèœØèAÖ?ge¿£BÛ?gèôab˜xã?g¹öª:PŒå?g€ª9'ç?gcÏCb“í?g™˜Ó
x~ð?g‘¥ÅÏ5š?g¸®˜Þ²?gšøWê´É?gàšà@íÜÔ?gÎC\ïíLß?gwl_›èNà?gœh>çnå?gš`“�£Ôè?gÔ#²´øí?g'0þlð?g³úÙ~è8�?gk‡àÝ%º?gò€ãÉÉÈ?g,g~µÔ?g®%‰Ê+Þ?gÛ†Q<~ã?gC|:edå?gÏ­ÆÈH¬é?g1Ðµ/ ë?gYxMþÝÑð?g”m;ÈF{£?gb5ñi©·?g±[º8à©Ê?g
@í=Õ?g_ñ/Ý¿Û?g¿gû•éâ?gXµZ/ä?gt•“õ@ê?g¦ð Ùuïì?gÆOãÞüï?g¦~ÞT¤Âˆ¿gðôïŸÁ?gÁ`íÞ@Ñ?gánZ:0JØ?g§G	°~"Ü?g£Ì™d$à?g´™ž~6æ?g—+r>+ßç?gÝésZ\Èë?g­ßrP]ï?t   franke33gš™™™™™©?g        gš™™™™™¹?g333333Ã?gš™™™™™É?g      Ð?g333333Ó?gffffffÖ?g      à?gš™™™™™á?g333333ã?gÍÌÌÌÌÌä?gffffffæ?g      è?gš™™™™™é?g333333ë?gÍÌÌÌÌÌì?gffffffî?g      ð?gÍÌÌÌÌÌÜ?gš™™™™™Ù?t   lawson25gš™™™™™Á?g333333í?gÍÌÌÌÌÌæ?gÍÌÌÌÌÌÌ?gš™™™™™©¿gffffffÞ?gffffffñ?g333333á?g333333£¿g      È?gš™™™™™Ñ?g      ê?gÍÌÌÌÌÌâ?gÍÌÌÌÌÌð?g333333ï?gš™™™™™ï?gffffffè?gÍÌÌÌÌÌê?gffffffÚ?gffffffä?gš™™™™™ð?gffffffâ?g      Ü?g      Ô?g333333Û?gffffffÒ?gÍÌÌÌÌÌÐ?gš™™™™™Ý?g      À?g\�Âõ(\¯¿gÍÌÌÌÌÌ¼?t	   random100g…¸Í¯Aºƒ?gÍnÒÙn'–?gˆLùT�ž?g¥
�²�_¥?g»YÍ„p¨?gä.ÂåÒ¬?g{Ôö=�°?g‰Ê+|"ô²?gí{y¦<_¶?g™µ¹Öƒî·?g¦¤=»lº?gìÈGA¦k¼?gýÂ†=¾?g¿¯6k•À?gÀËeýÀ?g‹RmÂ?g±¨ãŒ¼Ä?g•èv@#"Å?g+¸~ÜÆ?g@½5_%È?gHÈ›WÐÉ?g¡3ÄèàÊ?gnx§L{Ë?gä‰{‡6Ì?gÂ¦Î£âÿÍ?gøU¹Pù×Î?g×ÜÑÿr-Ð?g' µtÐ?gf`X~Ñ?gŠÅQ¸CÒ?g½m¦B<’Ò?gbt/æ�ùÒ?g¤¥òv„SÓ?gYˆ�#Ô?g•C0³t*Õ?gt1¼HWŸÕ?g"F»ŽÖ?gÎŽ¯˜l—Ö?g¬¼'jD×?gGØ?gg4¨ìªvØ?gJ<E³WÄØ?g$-ðp–mÙ?g«u‡¹I±Ú?g®™!úZ<Û?gÔ˜µ¹ÖƒÛ?g5OdœuüÛ?g³>Šß¹Þ?gO•ï‰PÞ?g.eÏT>:ß?g£êW:žß?gA0¢HR-à?gò/892…à?g+rŽ•³à?gÚv5Ôƒá?ghfÙ‹á?gÐÌ8²—Òá?g’ÿn&â?g.a#ÿ‚â?g¤6qr¿Ãâ?ghju(ùâ?gùá{Ú<)ã?g¸T‡�“ã?g™·��áä?g @+ÕªBä?g µ‘¡zä?g<éŽÄÃä?g2½æÀüä?g¹Þ6S!^å?g•HäÎå?g60ß~
æ?g‘Ì�dû5æ?gÇ®þï˜æ?g�Ì‰‡Aêæ?gTäqsjç?gßYq`(–ç?g´ª%åàç?g1Ã�æÙ6è?g9¦ÝžÖ£è?g7FüÔÂ6é?g±|¼ké?g4�
U ê?g+©n‰7ê?g7ünºeÇê?gŸG{r4ë?g0o�{ë?gÁûO£5«ë?gÑ&â­"ì?gÍ7¡µGì?g�–mñzì?g*z;#´ì?g5à“˜ñì?gë‚Ã‘í?g �*Ôäsí?g…vóùÍéí?g…+û	Â0î?gšÚz^î?g�™dŸî?g Ó=üFEï?g÷€/;zòï?gÑÃu1r»Ó?gûáŒ•]Ï?gíÊx¥v�ë?gäZþ�‡¹?g"Þ:ÿvY×?gþ�yææ?gÙS¼Ûÿà?gü›a´Ø7ï?g­yD;]ÌÆ?g°†Õiîrá?g/sæ˜‡Ä?g¬u=,/é?g<.ªEDñï?gò‚ã�'æ?gt	‡Þº?gd4<à0ê?gôßƒ×.­æ?gÐ ª•®…Ü?gÈ®YÓa*¾?gÓˆZähÔ?gñ*dðî?gê^‚®Ø:è?gÆ}õýÏÉ?g~^§G	°Ô?g1ßƒ|õÛ?g/‘f‡S�ì?gìm3â‘°?gD–»…d7â?gÜ¾¢¶hÜÒ?gúŽ+?ºÛ?gü	*|lÕ?gÌLÉÍËç?gÃcÒßK»?gzŸôÏNì?gvü‚à?g8²<Y{)î?gÏ³£‚Ô·Þ?g¢X°ÂÒÆ?g0×¢h[½?gÍO»©’Rê?gM’ø&—Í?g_ ­Ö.Ú?g^-wfì?g_2àÑkè?g6#Þ•¸éï?gâ€L!F¾ß?gNÉƒ>¢ÓÕ?g3ýñÖùÏ?gäxO/B‚ä?gq©;»?ggJF)|Qá?g”ÁÒ¯c‚?gÂ=…ì?giW|žš¦á?gpºÀ@kÙÙ?gxr—ç+Å?gbÓïgúÒ?gÀýÊ” m×?g��q Ä¢?gæ#)éahî?gõ¯öÁCâÐ?g”GÜ°í?gîC9,h5á?gì�û¦U™ç?gd&¬èêÝ?gØø§¯Beí?gÁ>•.X¥?gÍ¨žq†À?gI^BªÍ¤å?gtÙž…ë?gtºEóÔ?g
aÚÜ=È?gµËø‰°?gÒ•crr’?g:§£-ø~ì?gðAAÎ Ú?g�gsÞ?gÂ˜>…mÕË?g…«¨f{Yâ?gš`“�£Tì?g’8Ðè³¨é?gqo#
Òqä?gG¢áÞF”ì?gnÆÄA�¹?gáÅžSÚÑ?g>¤AÀí?gÅï\ÎÛÔ?g~ÕÛ°·žê?g*ë|.	ª?g†�ˆ)ï?gtPx¿Àbà?gBmeÓ[MÒ?gÕp6ÂG©î?gp×¦wÉã?gk¥Æ:1Ø?gû´R­ªÙ?g5ÐrêTî?gGHõÂç?gj$SO0mì?g»¸�ð–á?t   uniform9g      Ø?g      ä?g      ì?c         C  s   t  j |  j |  j ƒ S(   N(   t   npt   onest   shapet   dtype(   R   R   (    (    sW   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/delaunay/testfuncs.pyt   constantÅ   s    t   Constantc         C  s   |  S(   N(    (   R   R   (    (    sW   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/delaunay/testfuncs.pyt   xrampÊ   s    s   X Rampc         C  s   | S(   N(    (   R   R   (    (    sW   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/delaunay/testfuncs.pyt   yrampÏ   s    s   Y Rampc         C  sî   |  d }  | d } |  d } |  d } |  d } |  d } |  d } | d } | d } | d }	 d t  j | | | | d ƒ d t  j | | d | d	 ƒ d
 t  j | | | | d ƒ d t  j | | |	 |	 ƒ }
 |
 S(   Ni	   g      ð?g       @g      @g      @g      @g      è?g     €H@g      $@g      à?gš™™™™™É?(   R   t   exp(   R   R   t   x1t   x2t   x4t   x7t   y1t   y2t   y3t   y7t   f(    (    sW   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/delaunay/testfuncs.pyt   exponentialÔ   s    









e!s   Exponential and Some Gaussiansc         C  s#   t  j d | |  d ƒ d } | S(   Ng      "@g      ð?(   R   t   tanh(   R   R   R%   (    (    sW   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/delaunay/testfuncs.pyt   cliffç   s    t   Cliffc         C  s3   d t  j d | ƒ d d d |  d d } | S(   Ng      ô?gš™™™™™@g      @i   g      ð?i   (   R   t   cos(   R   R   R%   (    (    sW   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/delaunay/testfuncs.pyt   saddleí   s    /t   Saddlec         C  s/   t  j d |  d d | d d ƒ d } | S(   Ng     @Àg      à?i   g      @(   R   R   (   R   R   R%   (    (    sW   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/delaunay/testfuncs.pyt   gentleó   s    +s   Gentle Peakc         C  s/   t  j d |  d d | d d ƒ d } | S(   Ng     @4Àg      à?i   g      @(   R   R   (   R   R   R%   (    (    sW   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/delaunay/testfuncs.pyt   steepù   s    +s
   Steep Peakc         C  s]   d d |  d d | d d } t  j | d k t  j t  j | d d ƒ ƒ d d ƒ } | S(   Ni@   iQ   g      à?i   i    id   g        (   R   t   wheret   sqrtt   clip(   R   R   t   circleR%   (    (    sW   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/delaunay/testfuncs.pyt   sphereÿ   s    "7t   Spherec         C  sA   d t  j d |  ƒ t  j d | ƒ t  j d |  | ƒ } | S(   Ng       @g      $@(   R   R*   t   sin(   R   R   R%   (    (    sW   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/delaunay/testfuncs.pyt   trig  s    =s   Cosines and Sinesc         C  sf   d d |  }  d d | } t  j |  |  d ƒ } t  j | | d ƒ } | d | d | } | S(   Ng      @g      $@i   g      è?i   (   R   R   (   R   R   t   g1t   g2R%   (    (    sW   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/delaunay/testfuncs.pyt   gauss  s    s!   Gaussian Peak and Gaussian Ridgesc         C  s”   t  j d d |  d ƒ } t  j d d | d ƒ } d d | } d d | } d d d | | d | | d | d | | d | } | S(	   Ng      $@g      4@g      @g      ð?i   i   i   g       @(   R   R   (   R   R   t   ext   eyt   logitxt   logityR%   (    (    sW   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/delaunay/testfuncs.pyt
   cloverleaf  s    >t
   Cloverleafc         C  sJ   t  j d |  d d | d ƒ } t  j d | ƒ t  j d | ƒ } | S(   NiP   g      D@iZ   g     €F@g{®Gáz¤¿g333333Ã?(   R   t   hypotR   R*   (   R   R   R2   R%   (    (    sW   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/delaunay/testfuncs.pyt   cosine_peak!  s    "$s   Cosine Peakt   LinearTesterc           B  sD   e  Z d  Z d
 d d d d „ Z d „  Z d „  Z e d d	 „ Z RS(   t   Linearg        g      ð?ie   iú   c         C  s˜   | |  _  | |  _ | |  _ | |  _ t j j d ƒ } | j | d | d d | ƒ|  _ | j | d | d d | ƒ|  _	 t
 |  j |  j	 ƒ |  _ d  S(   NiÒ–Ii    i   t   size(   t   xranget   yranget   nranget   npointsR   t   randomt   RandomStatet   uniformR   R   R   t   tri(   R   RE   RF   RG   RH   t   rng(    (    sW   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/delaunay/testfuncs.pyR   .  s    				##c         C  s4   | j  |  _  | j |  _ t |  j  |  j ƒ |  _ d  S(   N(   R   R   R   RL   (   R   t   dataset(    (    sW   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/delaunay/testfuncs.pyt   replace_data:  s    c         C  s5   | |  j  |  j ƒ } |  j j | d |  j |  j ƒS(   Nt   bbox(   R   R   RL   t   linear_extrapolatorRE   RF   (   R   t   funct   z(    (    sW   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/delaunay/testfuncs.pyt   interpolator?  s    t   imshowc         C  s,  d d  l  } d d l  m } | rŠ |  j | ƒ } | |  j d |  j d t d |  j ƒ … |  j d |  j d t d |  j ƒ … f } nn t j |  j d |  j d t d |  j ƒ … |  j d |  j d t d |  j ƒ … f \ } }	 | |	 | ƒ } t j	 t j
 | ƒ d | ƒ } |  j d |  j d |  j d |  j d f }
 | j ƒ  | j ƒ  | j ƒ  | d k r™| j t j | ƒ d d d	 |
 d
 d ƒn– | d k r/t j |  j d |  j d t d |  j ƒ … |  j d |  j d t d |  j ƒ … f \ } } | j t j | ƒ t j | ƒ | d ƒ n  |  j }	 |  j } | j j t j g  |  j j D]4 \ } } |	 | | | f |	 | | | f f ^ q]ƒ d d g ƒ} | j ƒ  } | j | ƒ | rÕd |  j } n d } t | d ƒ r| j d | j | f ƒ n | j | ƒ | j ƒ  | j  ƒ  d  S(   Niÿÿÿÿ(   t   pylabi    i   g        RU   t   interpolationt   nearestt   extentt   origint   lowert   contouri   t   colorsgš™™™™™É?s   %s Interpolantt	   Referencet   titles   %s: %s(   i    i    i    gš™™™™™É?(!   t
   matplotlibRV   RT   RF   t   complexRG   RE   R   t   mgridR/   t   isinft   iofft   clft   hotRU   t
   nan_to_numt   ogridR\   t   ravelR   R   t   collectionst   LineCollectiont   arrayRL   t   edge_dbt   gcat   add_collectiont   namet   hasattrR_   t   showt   ion(   R   RR   t   interpt   plottert   mplt   plt   lpiRS   R   R   RY   t   Yt   Xt   it   jt   lct   axR_   (    (    sW   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/delaunay/testfuncs.pyt   plotC  sP    )0&3


!
&3+				G
(   g        g      ð?(   g        g      ð?(   R	   R
   Rp   R   RO   RT   t   TrueR   (    (    (    sW   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/delaunay/testfuncs.pyRB   +  s   		t   NNTesterc           B  s   e  Z d  Z d „  Z RS(   s   Natural Neighborsc         C  s5   | |  j  |  j ƒ } |  j j | d |  j |  j ƒS(   NRP   (   R   R   RL   t   nn_extrapolatorRE   RF   (   R   RR   RS   (    (    sW   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/delaunay/testfuncs.pyRT   x  s    (   R	   R
   Rp   RT   (    (    (    sW   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/delaunay/testfuncs.pyR�   u  s   c         C  sr  d d l  m } | j ƒ  t d d ƒ } t d d ƒ } x)|  D]!} t | j ƒ | j | d t d d ƒ| j	 d | j
 ƒ | j | d t d d ƒ| j	 d	 | j
 ƒ | j | d t d d ƒ| j	 d
 | j
 ƒ | j | d t d d ƒ| j	 d | j
 ƒ | j | d t d d ƒ| j	 d | j
 ƒ | j | d t d d ƒ| j	 d | j
 ƒ q? W| j ƒ  d  S(   Niÿÿÿÿ(   RV   RH   iè  Rt   Ru   RU   s   %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`   RV   Rd   R�   RB   t   printR_   R   t   Falset   savefigt	   func_nameR€   Rs   (   t   allfuncsRw   t   nntt   lptRR   (    (    sW   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/delaunay/testfuncs.pyt   plotallfuncs}  s&    
c         C  sÆ   d d  l  } d d l  m } | d  k r4 d g } n  | j j t j g  |  j D]@ \ } } |  j | |  j	 | f |  j | |  j	 | f f ^ qM ƒ d | ƒ} | j
 ƒ  } | j | ƒ | j ƒ  d  S(   Niÿÿÿÿ(   RV   i    gš™™™™™É?R]   (   i    i    i    gš™™™™™É?(   R`   RV   t   NoneRj   Rk   R   Rl   Rm   R   R   Rn   Ro   t   draw_if_interactive(   RL   R]   Rv   Rw   R{   R|   R}   R~   (    (    sW   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/delaunay/testfuncs.pyt   plot_dt“  s    		P	c         C  sÒ   d d  l  } d d l  m } | d  k r4 d g } n  | j j t j g  t t |  j	 ƒ ƒ D]@ } |  j
 | D], } | d k rj |  j	 | |  j	 | f ^ qj qY ƒ d | ƒ} | j ƒ  } | j | ƒ | j ƒ  d  S(   Niÿÿÿÿ(   RV   i    i   gš™™™™™É?R]   (   i    i   i    gš™™™™™É?(   R`   RV   R‹   Rj   Rk   R   Rl   RE   t   lent   circumcenterst   triangle_neighborsRn   Ro   RŒ   (   RL   R]   Rv   Rw   R{   R|   R}   R~   (    (    sW   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/delaunay/testfuncs.pyt   plot_vo¡  s    C	c         C  s(  d d  l  } d d l  m } | d  k r1 d } n  t j g  |  j D]) \ } } } |  j | |  j | f ^ qA ƒ |  j } t j	 | d  d  … d f | d  d  … d f ƒ } | j
 ƒ  }	 x_ t t | ƒ ƒ D]K } | j j |  j | | | d d d | d	 d d
 d ƒ}
 |	 j |
 ƒ qË W| j ƒ  d  S(   Niÿÿÿÿ(   RV   i    i   gš™™™™™É?t
   resolutionid   t	   edgecolort	   facecolort	   linewidth(   i    i    i   gš™™™™™É?(   i   i   i   i    (   R`   RV   R‹   R   Rl   t   triangle_nodesR   R   R�   R@   Rn   RE   RŽ   t   patchest   Circlet	   add_patchRŒ   (   RL   R“   Rv   Rw   R{   R|   t   kt   dxyt   rR~   t   p(    (    sW   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/delaunay/testfuncs.pyt   plot_cc°  s    	?
2t   nni!   c         C  sT  |  | j  | j ƒ } t | j  | j ƒ } t | | d ƒ | d d ƒ} t j d d t d | ƒ … d d t d | ƒ … f \ } } |  | | ƒ }	 | d d t d | ƒ … d d t d | ƒ … f }
 | | } |	 |
 d } t j | j ƒ } t j |	 j ƒ | } |	 | d } t j | j ƒ } d | | } t	 |  j
 | | | | ƒ | S(	   sn   Compute a quality factor (the quantity r**2 from TOMS792).

    interpolator must be in ('linear', 'nn').
    t   _extrapolatorRP   g        g      ð?i    i   i   (   g        g      ð?g        g      ð?(   R   R   R   t   getattrR   Rb   Ra   t   sumt   flatRƒ   R†   (   RR   t   meshRT   t   nt   fzRL   t   intpRy   Rz   t   Zt   izt   numgoodt   SEt   SSEt   meanZt   SMt   SSMt   r2(    (    sW   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/delaunay/testfuncs.pyt   qualityÁ  s     =4
c   
      C  sv   i  } | j  ƒ  } | j ƒ  xS | D]K \ } } | j | g  ƒ } x* | D]" }	 | j t |	 | |  | ƒ ƒ qH Wq# W| S(   N(   t   itemst   sortt
   setdefaultt   appendR±   (
   RT   R‡   t   dataR¥   t   resultst   kvRp   R¤   t   reslistRR   (    (    sW   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/delaunay/testfuncs.pyt
   allqualityÜ  s    
$c          C  s”   t  j d d d d d g ƒ }  t  j d d d d d g ƒ } d	 } d
 } t |  | ƒ } t t  j |  | g f ƒ t  j | | g f ƒ ƒ } | | f S(   Ng      Ð?g333333Ó?g      à?g333333ã?gš™™™™™É?gffffffÖ?g        gÍÌÌÌÌÌä?gq=
×£pÝ?gq=
×£pÍ?(   R   Rl   R   t   hstack(   t   x0t   y0t   txt   tyt   t0t   t1(    (    sW   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/delaunay/testfuncs.pyt   funkyç  s    3(&   t   __doc__t
   __future__R    t   numpyR   t   triangulateR   R   R   t   objectR   Rl   R¶   R   R_   R   R   R&   R(   R+   R-   R.   R3   R6   R9   R>   RA   R‡   RB   R�   RŠ   R‹   R�   R‘   Rž   R±   Rº   RÂ   (    (    (    sW   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/matplotlib/delaunay/testfuncs.pyt   <module>   sª  																																																																																														J