;ò
¿¾“Ac           @   s-   d  k  Z  e  i ƒ  d e f d „  ƒ  YZ d  S(   Ns   Matrixc           B   s&   t  Z e d „ Z d „  Z d „  Z RS(   Nc         C   s‰   | |  _ | |  _ | t j o2 g  i } | D] } | | | ƒ q- ~ |  _
 n5 g  i } t | | ƒ D] } | d ƒ qi ~ |  _
 d S(   sÕ   
        Create a matrix over a finite field.
        INPUT:
            p -- prime
            n -- positive integer
            entries -- entries of the matrix (defaults to None, which means 0 matrix).
        i    N(   s   ns   selfs
   _Matrix__ns   ps
   _Matrix__ps   entriess   Nones   appends   _[1]s   xs   _Matrix__entriess   ranges   _(   s   selfs   ps   ns   entriess   _[1]s   xs   _(    (    s   mult3.pys   __init__   s     		2c         C   sl   d } |  i } xR t | ƒ D]D } x1 t | ƒ D]# } | d |  i | | | 7} q/ W| d 7} q W| Sd  S(   Ns    s   %s, s   
(   s   ss   selfs
   _Matrix__ns   ns   ranges   is   js   _Matrix__entries(   s   selfs   is   js   ss   n(    (    s   mult3.pys   __repr__   s    	  !c   	   	   C   sý   t  | t ƒ o# |  i | i j o |  i | i j p
 t d ‚ g  } |  i } x” t	 | ƒ D]† } x} t	 | ƒ D]o } g  i } t	 | ƒ D]2 } | |  i | | | | i | | | ƒ q‰ ~ } | i t | ƒ |  i ƒ qo Wq\ Wt |  i | | ƒ Sd  S(   Ns   Incompatible multiply.(   s
   isinstances   others   Matrixs   selfs
   _Matrix__ps
   _Matrix__ns   AssertionErrors   anss   ns   ranges   is   js   appends   _[1]s   ks   _Matrix__entriess   vs   sum(	   s   selfs   others   vs   is   js   ns   _[1]s   anss   k(    (    s   mult3.pys   __mul__   s    @	  O"(   s   __name__s
   __module__s   Nones   __init__s   __repr__s   __mul__(    (    (    s   mult3.pys   Matrix   s   		(   s   psycos   fulls   objects   Matrix(   s   psycos   Matrix(    (    s   mult3.pys   ?   s   	
