
TGc           @   s  d  d k  l Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d	   Z	 d
 g d a
 d
 d  d  d  Z d   Z e d j ogd d g d d g d d g d d g d
 d g d d g d
 d g d d g d d g d d g g
 d d g d d g d d g d  d
 d g d d g d
 d g d d g d d g d d g g
 d d g d d g d
 d g d d g d d g d d g d
 d g d d g d d g d  g
 f e d d d d  d
 d d d d d g
 d  d  d  d
 d d d  d d  d  g
 d  d  d d
 d d d  d  d d g
 d
  e d d d d  d d d
 d d d g
 d  d  d  d
 d d d  d d  d  g
 d  d  d d
 d  d  d d  d d g
 d
  g f Z e e d
 e d  Z e d d
 Z e d d Z d d d d d
 d
 d
 d d d g
 Z e e e d e e  Z e GHn d S(   i(   t   genc         C   sI   |  i  | i  j o. |  i | i j o |  i | i j o d Sn d Sd  S(   Ni   i    (   t   permt   xShiftt   yShift(   t   gen1t   gen2(    (    sK   C:\drorbn\projects\KnotTheory\svn\trunk\KnotTheory\HFK-Zurich\deepBdMap2.pyt   areGenEqual   s    9c         C   s   t  |  i |  i |  i d  S(   Ni    (   R    R   R   R   (   t   g(    (    sK   C:\drorbn\projects\KnotTheory\svn\trunk\KnotTheory\HFK-Zurich\deepBdMap2.pyt   copyGen   s    c         C   s  t  |  i  } d } x t |  D] } |  i | d j o | } | | |  i | d j  o& t | d | |  i | d  } n | | |  i | d j o& t | d | |  i | d  } q q" q" W| d j o | Sn x t |  D] } |  i | d j o |  i | |  i | d d } | | | d j o t | d | d  } n | | | d j o t | d | d  } qq q W| S(   Ni    ii   i   (   t   lenR   t   xranget   maxR   (   R    t   rectt   trt   nt   aget   it   tmp(    (    sK   C:\drorbn\projects\KnotTheory\svn\trunk\KnotTheory\HFK-Zurich\deepBdMap2.pyt   findAge
   s*     &.  #c         C   s   d } x t  |   D] \ } } | | | j o | d 8} n xg t |  D]Y } | d j oF |  | | j  o | d 7} n | | | | j  o | d 8} q qK qK Wq W| d j S(   Ni    i   ii   (   t	   enumerateR
   (   t   perm1t   perm2t   rest   jt   hR   (    (    sK   C:\drorbn\projects\KnotTheory\svn\trunk\KnotTheory\HFK-Zurich\deepBdMap2.pyt
   findIsPoss   s      /c         C   sX  t  |   } g  } x t |  D] } | d | d j or xo t |  D]] } | d | d j oB x? d d d d	 g D]' } | i | | | d | d f  qu WqG qG Wq q Wh  } x| D]} x| D]}	 | d |	 d j  og| d |	 d j  oRd }
 x t | d | d d d |	 d |	 d d d  D] } |	 d |	 d d d |  | d j o | d | d d d j n pN |	 d |	 d d d |  | d j o | d | d d d j n o d }
 Pq8q8W|
 d j oR | d |	 d | d |	 d f |	 d | d |	 d | d f f | | |	 f <qLq q Wq W| S(
   Ni    ii   i   i   (   i   i   (   i   i(   ii   (   ii(   R	   t   ranget   append(   R   t   ellR   t   coordt   xt   yt   sst   possRectt   llt   urt   b(    (    sK   C:\drorbn\projects\KnotTheory\svn\trunk\KnotTheory\HFK-Zurich\deepBdMap2.pyt   listPossRectMp(   s2       5  *8 	kc      
   C   s  t  |  i  } g  } g  } t |  D]. } | | |  i | |  i | |  i | f q& ~ } x| D]} |  i | d d j o qd n | | d o qd n x\t | d  D]J} |  i | d j o q n | | o q n | i | | | f  o d }	 xa t | d | d  D]H }
 |  i | |  i |
 j  o |  i | d j  n o d }	 PqqW|	 o q n t |   } | i | d | i | | i | <| i | d <| i | d | i | | i | <| i | d <| i | d f  q q Wqd W| S(   Ni    ii   (   R	   R   R
   R   R   t   has_keyR   R   (   R    R!   t   immobileR   R   t   _[1]R   t   ptsR   R$   t   kt   ng(    (    sK   C:\drorbn\projects\KnotTheory\svn\trunk\KnotTheory\HFK-Zurich\deepBdMap2.pyt   listRect<   s0    H   7	11c   
      C   s:  t  |  i  } g  } xt |  D]} |  i | d j o| | o| |  i | d d } | | |  i | d j o |  i | d j p0 | | |  i | d j o |  i | d j o t |   } | i | c d 9<|  i | | | d j p |  i | | | d j o
 d }	 n- d | |  i | d | i | d d }	 | i | |	 f  n |  i | |  i | d d } | | | d j o |  i | d j p) | | | d j ok |  i | d j oW t |   } | i | c d 9<d | d | i | d d }	 | i | |	 f  q2q" q" W| S(   Nii   i   i    (   R	   R   R
   R   R   R   R   (
   R    R   R   R'   R   R   R   R   R+   R   (    (    sK   C:\drorbn\projects\KnotTheory\svn\trunk\KnotTheory\HFK-Zurich\deepBdMap2.pyt	   listBigonR   s(      `8
, R!c   
      C   s  t  |  i  } g  } xt |  D]} |  i | d j o| | o| } | | |  i | d j  o |  i | d j p0 | | |  i | d j ov |  i | d j ob t |   } | i | c d 9<d | |  i | d | i | d d }	 | i | |	 f  n |  i | |  i | d d } | | | d j o |  i | d j p) | | | d j ok |  i | d j oW t |   } | i | c d 9<d | d | i | d d }	 | i | |	 f  qq" q" W| S(   Nii    i   i   (   R	   R   R
   R   R   R   R   (
   R    R   R   R'   R   R   R   R   R+   R   (    (    sK   C:\drorbn\projects\KnotTheory\svn\trunk\KnotTheory\HFK-Zurich\deepBdMap2.pyt   listReverseBigonf   s$      `, R!i    i   c         C   s  t  |  i | i  p d Sn | \ } }	 }
 | d j o t   } n g  } t |  |	 |
  } | d j o | d j o t |  |  Sn | | j p | d j o
 d } n | d j oM | g  } t |  |	 |
 |  D]" } | d | j o | | q q ~ 7} n | d j  o | t |  | |  7} n | g  } t |  |	 |
 |  D]D } | d | j o- | d d j p | d | j o | | qLqL~ 7} d } x| D]	} t | d i  t | d i	  t | d i
  f } | i |  o  | | | d j o qqn | d j o% t | d |  o | d 7} qn | d j o^ t | d | | d | | d | | d |  } | d j o | d | | <n | | 7} qqWt | c d 7<| S(   Ni    ii   (   R   R   t   dictR   R   R.   R,   R-   t   tupleR   R   R&   t   deepBdMapRect   debug(   t   genStartt   genGoalt   deptht   initR'   t   upDownt	   inheritedt   hmapR!   R   R   t   accR   R(   R$   t   _[2]t   parityR   t   tttR   (    (    sK   C:\drorbn\projects\KnotTheory\svn\trunk\KnotTheory\HFK-Zurich\deepBdMap2.pyR1   y   s<    
Mk 6!
1c         C   s   g  } t  t |    D] } | g  q ~ } xD t |   D]6 \ } } | | d i |  | | d i |  q: Wt |  |  |  | f S(   Ni    i   (   R
   R	   R   R   R%   (   R   R   R(   R   R   t   p(    (    sK   C:\drorbn\projects\KnotTheory\svn\trunk\KnotTheory\HFK-Zurich\deepBdMap2.pyt   initWith   s    - t   __main__i   i   i   i   i   i   i	   i   i   ic   N(   t   genGenR    R   R   R   R   R%   R,   R-   R.   R2   R1   R?   t   __name__t   dataR6   R   R   t   immoR   (    (    (    sK   C:\drorbn\projects\KnotTheory\svn\trunk\KnotTheory\HFK-Zurich\deepBdMap2.pys   <module>   s.   				
				#	]WZlu$