mò
ð›yBc           @   sb   d  k  Td „  Z d d „ Z d d d „ Z e d „ Z d „  Z d d d	 d
 „ Z d d „ Z d S(   (   t   *c         c   sš   t  |  d ƒ i ƒ  } g  } |  d D] } | t  | ƒ i ƒ  q% ~ } xL | D]D } y0 | g g  } | D] } | | i	 ƒ  qh ~ VWqN d  SqN XqN Wd  S(   Ni    i   (
   t   opent   filest
   xreadlinest   F0t   _[1]t   filet   Ft   Lt   Xt   next(   R   R   R   R   R   R   R	   (    (    t
   analyze.pyt
   multi_iter   s    1 0s   surj.1-1000c         c   sŽ   x‡ t  |  ƒ i ƒ  D]s } | i ƒ  \ } } } } } } t | ƒ } t | ƒ } t | ƒ } t | ƒ } t | ƒ } | | | | | f Vq Wd  S(   N(   R   R   R   t   linet   splitt   Nt   isot   numt   rt   ainvst   vt   intt   eval(   R   R   R   R   R   R   R   R   (    (    R   t   iterate   s     i   c         C   s‡   g  } xz t |  ƒ D]l } | GHx^ | d D]R \ } } | | j o9 t | t ƒ p | i	 d ƒ d j o | i
 | ƒ Pq) q) Wq W| S(   Ni   t   toriÿÿÿÿ(   R	   R   R   t   Et   pt   whyt   pmint
   isinstancet   strt   findt   append(   R   R   R   R   R	   R   (    (    R   t   nontor_nonsurj   s      4c         C   sÈ  g  } x»t d d g ƒ D]§\ } } | i ƒ  \ } } } }
 } } t | ƒ } t |
 ƒ }
 t | ƒ } t | ƒ } | i ƒ  \ } } } } } } t | ƒ } t | ƒ } t | ƒ } | | j p t | | j ‚ g  } xI | d D]= }	 t |	 ƒ }	 |	 d j o |	 | j o | i |	 ƒ qã qã W| i ƒ  |
 d j o q n x{ | D]s \ }	 } |	 d j o qIn | |	 d j oB |	 d j o5 |  p |	 | j o  | i | | |	 | | f ƒ qIqIWq W| S(   Ns   surj.1-1000s   allisog.1-1000i    i   (   R	   R   t   surjt   isogR   R   R   t   _R   R   R   R   R   t   N1t   iso1t   ainvs1t   matrixt   AssertionErrort   BR   R    t   sortR   t	   omit_isog(   R,   R*   R   R(   R#   R"   R%   R   R&   R   R   R   R'   R   R	   R   R$   (    (    R   t   bad_kato!   s0     0$ 
  3(c         C   sH   d } x; t |  i ƒ  ƒ D]' \ } } | d j  o | | 9} q q W| S(   Ni   i    (   R*   t   factorR   t   j_invariantR   t   e(   R   R   R*   R0   (    (    R   t   geom_compgrp_prod7   s     i    iè  c         C   sŠ  h  } xj t d ƒ i ƒ  D]V } | i ƒ  \ }
 } } } t	 |
 ƒ }
 |
 | j o Pn t	 | ƒ | d |
 | f <q Wg  } x
t |  ƒ D]ü }	 |	 d | j o q† n |	 d | j o Pn d |	 d |	 d f } t | ƒ } | i ƒ  o q† n | | } xƒ |	 d D]w \ } } | d j o qn | d j o | i | |	 f ƒ q| | d j o" | i | |	 f ƒ | |	 f GHqqWq† W| S(   sO   
    List the non-surjective irreducible reps associated to rank r curves.
    s   isogdegs.1-40000s   %s%si   i    i   i   N(   t   DR   R   R   R   R   R   R   t   PR   t	   max_levelR	   R   R   R   R   t   labelt   EllipticCurveR0   t   has_cmR*   R   R   R    (   R   R   R4   R*   R   R2   R   R   R   R   R   R3   R   R	   R5   R0   (    (    R   t   nonsurj_irred>   s>       
  s   allisog.1-40000c         C   sþ   t  d |  d ƒ } t  |  d ƒ } xÕ | i ƒ  D]Ç } | i ƒ  \ } } } } } } d } t t | ƒ g  ƒ } xO | D]G } | o: x7 t | ƒ D]% \ }	 } | |	 o | |	 9} q� q� Wqu qu Wd | | | | f }
 | i |
 d ƒ | i ƒ  |
 GHq/ Wd  S(   Ns   isog_degrees-%st   wR   i   s   %s %s %s 	%ss   
(   R   R   t   Ot   IR   R   R   R   R   R   R   t   curvesR#   R*   t   sumR   t   Gt   nR.   R   R$   t   st   writet   flush(   R   R*   R   R>   R#   R;   R   R:   R   R   R@   R   R   R<   R?   R$   (    (    R   t   isogeny_degs^   s$       
N(	   t   sage.allR   R   R!   t   TrueR-   R1   R8   RC   (   R1   RC   R8   R-   R   R   R!   (    (    R   t   ?   s   	


	 