
    "`ȑ                         d dl mZmZ ed        Zed        Zed        Zed        Zed        Zed        Zed        Z	ed	        Z
edd
       Zedd       Zy)   )defundefun_wrappedc                 h   d}d}d}|| j                   k(  r| j                  |      s| j                  |z   }| j                  | j	                  |      |      }||z  |z	  }|x}	}
|}t        |	      |kD  r$|
|z  |z	  }
|	|
z  |z	  }	||	z  }t        |	      |kD  r$d|dz   z  |dz  z   }| j                  ||       }
n| j                  |z   }| j                  | j	                  |      |      }| j                  | j                  |      |      }||z  ||z  z
  |z	  }||z  |dz
  z	  }|x}}|x}}d|z  |z   }|}|dz  |dz  z   |kD  rQ||z  ||z  z
  |z	  ||z  ||z  z   |z	  }}||z  ||z  z
  |z	  ||z  ||z  z   |z	  }}||z  }||z  }|dz  |dz  z   |kD  rQ|dz  }|dz  }| j                  ||       }| j                  ||       }| j                  ||      }	n| j                  |      s^| j                  |      sL| j                  |z   }| j                  | j	                  |      |      }||z  |z	  }|x}	}
| j                  | j	                  |      |      \  }}| j                  ||      x}}| j                  ||      x}}||z  ||z  z
  |z	  }||z  |dz
  z	  }||z  ||z  z
  |z	  ||z  ||z  z   |z	  }}||	|z  |z	  z   }t        |	      |kD  rF|
|z  |z	  }
|	|
z  |z	  }	||z  ||z  z
  |z	  ||z  ||z  z   |z	  }}||	|z  |z	  z  }t        |	      |kD  rF|dz  }| j                  ||       }|| j                  |d      z  }|S | j                  |      s| j                  |z   }| j                  | j	                  |      |      }| j                  | j                  |      |      }||z  ||z  z
  |z	  }||z  |dz
  z	  }|x}}|x}}| j                  | j	                  |      |      \  }}| j                  ||      x}}| j                  ||      x}}||z  ||z  z
  |z	  }||z  |dz
  z	  }||z  ||z  z
  |z	  ||z  ||z  z   |z	  }}|||z  |z	  z   }||z  |z	  }|dz  |dz  z   |kD  ry||z  ||z  z
  |z	  ||z  ||z  z   |z	  }}||z  ||z  z
  |z	  ||z  ||z  z   |z	  }}||z  ||z  z
  |z	  ||z  ||z  z   |z	  }}|||z  |z	  z  }|||z  |z	  z  }|dz  |dz  z   |kD  ry|dz  }|dz  }| j                  ||       }| j                  ||       }| j                  ||      }no| j                  |      s| j                  |z   }| j                  | j	                  |      |      }||z  |z	  }|x}	}
| j                  }|| _        | j                  |      \  }}|| _        | j                  | j	                  |      |      x}}| j                  | j                  |      |      x}} | j                  | j	                  |      |      x}!}"| j                  | j                  |      |      x}#}$||z  | | z  z
  |"|"z  z
  |$|$z  z   |z	  }%|| z  |"|$z  z
  |dz
  z	  }&||"z  | |$z  z
  |dz
  z	  }'||$z  | |"z  z   |dz
  z	  }(||%z  ||&z  z
  |!|'z  z
  |#|(z  z   |z	  })||&z  ||%z  z   |!|(z  z
  |#|'z  z
  |z	  }*|!|%z  |#|&z  z
  ||'z  z   ||(z  z
  |z	  }+|!|&z  |#|%z  z   ||(z  z   ||'z  z   |z	  },|)}|*}|+}!|,}#||	|z  |z	  z   }| |	|z  |z	  z   }t        |	      |kD  r|
|z  |z	  }
|	|
z  |z	  }	||%z  ||&z  z
  |!|'z  z
  |#|(z  z   |z	  })||&z  ||%z  z   |!|(z  z
  |#|'z  z
  |z	  }*|!|%z  |#|&z  z
  ||'z  z   ||(z  z
  |z	  }+|!|&z  |#|%z  z   ||(z  z   ||'z  z   |z	  },|)}|*}|+}!|,}#||	|z  |z	  z  }||	|z  |z	  z  }t        |	      |kD  r|dz  }|dz  }| j                  ||       }| j                  ||       }| j                  ||      }n| j                  |z   }| j                  | j	                  |      |      }| j                  | j                  |      |      }||z  ||z  z
  |z	  }||z  |dz
  z	  }|x}}|x}}| j                  }|| _        | j                  |      \  }}|| _        | j                  | j	                  |      |      x}}| j                  | j                  |      |      x}} | j                  | j	                  |      |      x}!}"| j                  | j                  |      |      x}#}$||z  | | z  z
  |"|"z  z
  |$|$z  z   |z	  }%|| z  |"|$z  z
  |dz
  z	  }&||"z  | |$z  z
  |dz
  z	  }'||$z  | |"z  z   |dz
  z	  }(||%z  ||&z  z
  |!|'z  z
  |#|(z  z   |z	  })||&z  ||%z  z   |!|(z  z
  |#|'z  z
  |z	  }*|!|%z  |#|&z  z
  ||'z  z   ||(z  z
  |z	  }+|!|&z  |#|%z  z   ||(z  z   ||'z  z   |z	  },|)}|*}|+}!|,}#d}-|}.| }/|||z  ||z  z
  |z	  z   }| ||z  ||z  z   |z	  z   }d}-||z  ||z  z
  |z	  }.||z  ||z  z   |z	  }/|||z  ||z  z
  |z	  z   }| ||z  ||z  z   |z	  z   }d}-|dz  |dz  z   |kD  r||z  ||z  z
  |z	  ||z  ||z  z   |z	  }}||z  ||z  z
  |z	  ||z  ||z  z   |z	  }}||%z  ||&z  z
  |!|'z  z
  |#|(z  z   |z	  })||&z  ||%z  z   |!|(z  z
  |#|'z  z
  |z	  }*|!|%z  |#|&z  z
  ||'z  z   ||(z  z
  |z	  }+|!|&z  |#|%z  z   ||(z  z   ||'z  z   |z	  },|)}|*}|+}!|,}#||z  ||z  z
  |z	  }.||z  ||z  z   |z	  }/|||z  ||z  z
  |z	  z  }|||z  ||z  z   |z	  z  }|-dz  }-|dz  |dz  z   |kD  r|dz  }|dz  }| j                  ||       }| j                  ||       }| j                  ||      }|| j                  |d      z  }|S )	N
         r   prec         )
zero_imr
   to_fixed_reabsldexpmpccos_sinnthroot)0ctxzqextra1extra2MINwpxx2absxreximx2rex2imarebreaimbimsresimc1s1cnsnc2s2prec0cnrec1recnimc1imsnres1resnims1imc2rec2ims2res2imt1t2t3t4ntermretermims0                                                   8/usr/lib/python3/dist-packages/mpmath/functions/theta.py_jacobi_theta2rH      s   FF
 CCHH}
F"BSWWQZ,AA#"BJAAa&3,rTbLqSRKQ a&3, r!ta(A		!bS!AF"B,,swwqz2.C,,swwqz2.CGc#g%",DGA&DC#C#b5C-CCq&36/C'$Jt3:$Jt3: #Ic	1b8#Ic	1b8 s
s
 q&36/C' !8C!8C))C"%C))C"%CS!A
SWWQZF"BSWWQZ,AA#"BJA[["[5FBll2r**Bll2r**BR%"R%-B&Br'rAv&Bebem*RURU]r,ABq2v"n%Aa&3,rTbLqSRKR%"R%-B.BB20EBa"f^#	 a&3,
 aA		!bS!AQ""AHF"B,,swwqz2.C,,swwqz2.CGc#g%",DGa(DC#C#[["[5FBll2r**Bll2r**BR%"R%-B&Br'rAv&Bebem*RURU]r,ABrb()C"H#Cq&36/C'$Jt3:$Jt3: #Ic	1b8#Ic	1b8 R%"R%-B.BB20EBrb()rb() q&36/C' !8C!8C))C"%C))C"%CS!AF"BSWWQZ,AA#"BJAHHECH[[^FBCH,,swwr{B77D4,,swwr{B77D4,,swwr{B77D4,,swwr{B77D4IT	)DI5T	AbHDIT	)rAv6DIT	)rAv6DIT	)rAv6Dt)d4i'$t)3d4i?BFBt)d4i'$t)3d4i?BFBt)d4i'$t)3d4i?BFBt)d4i'$t)3d4i?BFBDDDD1t8*+C1t8*+Ca&3,rTbLqSRK4i$t)+d4i7$t)CJ4i$t)+d4i7$t)CJ4i$t)+d4i7$t)CJ4i$t)+d4i7$t)CJTb()Tb() a&3, !8C!8C))C"%C))C"%CS!A F"B,,swwqz2.C,,swwqz2.CGc#g%",DGa(DC#C#HHECH[[^FBCH,,swwr{B77D4,,swwr{B77D4,,swwr{B77D4,,swwr{B77D4IT	)DI5T	AbHDIT	)rAv6DIT	)rAv6DIT	)rAv6Dt)d4i'$t)3d4i?BFBt)d4i'$t)3d4i?BFBt)d4i'$t)3d4i?BFBt)d4i'$t)3d4i?BFBDDDDAFF3:d
2r9:C3:d
2r9:CATzC$J.25FTzC$J.25F3:d
2r9:C3:d
2r9:CAq&36/C'$Jt3:$Jt3: #Ic	1b8#Ic	1b8  4i$t)+d4i7$t)CJ4i$t)+d4i7$t)CJ4i$t)+d4i7$t)CJ4i$t)+d4i7$t)CJ:d
2r9:d
2r9tcDj0R78tcDj0R78Q% q&36/C'& !8C!8C))C"%C))C"%CS!AQ	AH    c                 n   d}d}d}| j                  |      s| j                  |      s| j                  |z   }| j                  | j                  |      |      }||z  |z	  }	|	x}
}| j	                  | j                  |      |      \  }}| j                  ||      x}}| j                  ||      x}}||z  ||z  z
  |z	  }||z  |dz
  z	  }||z  ||z  z
  |z	  ||z  ||z  z   |z	  }}|dz  r||
|z  d|z  z  |z	  z   }n||
|z  d|z  z  |z	  z   }d}t        |
      |kD  rt||	z  |z	  }|
|z  |z	  }
||z  ||z  z
  |z	  ||z  ||z  z   |z	  }}|dz  r||
|z  d|z  dz   |z  z  |z	  z  }n||
|z  d|z  dz   |z  z  |z	  z  }|dz  }t        |
      |kD  rt|dz   }| j                  ||       }	nT| j                  |      s@| j                  |z   }| j                  | j                  |      |      }| j                  | j                  |      |      }||z  ||z  z
  |z	  }||z  |dz
  z	  }|x}}|x}}| j	                  | j                  |      |      \  }}| j                  ||      x}}| j                  ||      x}}||z  ||z  z
  |z	  }||z  |dz
  z	  }||z  ||z  z
  |z	  ||z  ||z  z   |z	  }}|dz  r |||z  d|z  z  |z	  z   }||z  d|z  z  |z	  }n|||z  d|z  z  |z	  z   }||z  d|z  z  |z	  }d}|dz  |dz  z   |kD  r||z  ||z  z
  |z	  ||z  ||z  z   |z	  }}||z  ||z  z
  |z	  ||z  ||z  z   |z	  }}||z  ||z  z
  |z	  ||z  ||z  z   |z	  }}|dz  r#|||z  ||z  z  |z	  z  }|||z  ||z  z  |z	  z  }n"|||z  ||z  z  |z	  z  }|||z  ||z  z  |z	  z  }|dz  }|dz  |dz  z   |kD  r|dz   }|dz   }| j                  ||       }| j                  ||       }| j                  ||      }n| j                  |      s1| j                  |z   }| j                  | j                  |      |      }||z  |z	  }	|	x}
}| j                  }|| _        | j	                  |      \  }}|| _        | j                  | j                  |      |      x}} | j                  | j                  |      |      x}!}"| j                  | j                  |      |      x}#}$| j                  | j                  |      |      x}%}&| | z  |"|"z  z
  |$|$z  z
  |&|&z  z   |z	  }'| |"z  |$|&z  z
  |dz
  z	  }(| |$z  |"|&z  z
  |dz
  z	  })| |&z  |"|$z  z   |dz
  z	  }*||'z  |!|(z  z
  |#|)z  z
  |%|*z  z   |z	  }+||(z  |!|'z  z   |#|*z  z
  |%|)z  z
  |z	  },|#|'z  |%|(z  z
  ||)z  z   |!|*z  z
  |z	  }-|#|(z  |%|'z  z   ||*z  z   |!|)z  z   |z	  }.|+}|,}!|-}#|.}%|dz  r#|$|
|#z  d|z  z  |z	  z   }|&|
|%z  d|z  z  |z	  z   }n"| |
|z  d|z  z  |z	  z   }|"|
|!z  d|z  z  |z	  z   }d}t        |
      |kD  r||	z  |z	  }|
|z  |z	  }
||'z  |!|(z  z
  |#|)z  z
  |%|*z  z   |z	  }+||(z  |!|'z  z   |#|*z  z
  |%|)z  z
  |z	  },|#|'z  |%|(z  z
  ||)z  z   |!|*z  z
  |z	  }-|#|(z  |%|'z  z   ||*z  z   |!|)z  z   |z	  }.|+}|,}!|-}#|.}%|dz  r#||
|#z  ||z  z  |z	  z  }||
|%z  ||z  z  |z	  z  }n"||
|z  ||z  z  |z	  z  }||
|!z  ||z  z  |z	  z  }|dz  }t        |
      |kD  r|dz   }|dz   }| j                  ||       }| j                  ||       }| j                  ||      }n| j                  |z   }| j                  | j                  |      |      }| j                  | j                  |      |      }||z  ||z  z
  |z	  }||z  |dz
  z	  }|x}}|x}}| j                  }|| _        | j	                  |      \  }}|| _        | j                  | j                  |      |      x}} | j                  | j                  |      |      x}!}"| j                  | j                  |      |      x}#}$| j                  | j                  |      |      x}%}&| | z  |"|"z  z
  |$|$z  z
  |&|&z  z   |z	  }'| |"z  |$|&z  z
  |dz
  z	  }(| |$z  |"|&z  z
  |dz
  z	  })| |&z  |"|$z  z   |dz
  z	  }*||'z  |!|(z  z
  |#|)z  z
  |%|*z  z   |z	  }+||(z  |!|'z  z   |#|*z  z
  |%|)z  z
  |z	  },|#|'z  |%|(z  z
  ||)z  z   |!|*z  z
  |z	  }-|#|(z  |%|'z  z   ||*z  z   |!|)z  z   |z	  }.|+}|,}!|-}#|.}%|dz  r/|$||#z  ||%z  z
  d|z  z  |z	  z   }|&||%z  ||#z  z   d|z  z  |z	  z   }n.| ||z  ||!z  z
  d|z  z  |z	  z   }|"||!z  ||z  z   d|z  z  |z	  z   }d}|dz  |dz  z   |kD  r||z  ||z  z
  |z	  ||z  ||z  z   |z	  }}||z  ||z  z
  |z	  ||z  ||z  z   |z	  }}||'z  |!|(z  z
  |#|)z  z
  |%|*z  z   |z	  }+||(z  |!|'z  z   |#|*z  z
  |%|)z  z
  |z	  },|#|'z  |%|(z  z
  ||)z  z   |!|*z  z
  |z	  }-|#|(z  |%|'z  z   ||*z  z   |!|)z  z   |z	  }.|+}|,}!|-}#|.}%|dz  r/|||#z  ||%z  z
  ||z  z  |z	  z  }|||#z  ||%z  z   ||z  z  |z	  z  }n.|||z  ||!z  z
  ||z  z  |z	  z  }|||z  ||!z  z   ||z  z  |z	  z  }|dz  }|dz  |dz  z   |kD  r|dz   }|dz   }| j                  ||       }| j                  ||       }| j                  ||      }|| j                  |d      z  }|dz  rd	|dz  z  |z  S d	d|dz  z   z  |z  S )
Nr   r   r   r	   r   r   r   r   )	r   r
   r   r   r   r   r   r   r   )/r   r   r   ndr   r   r   r   r   r   r    r!   r-   r.   r/   r0   r1   r2   r"   rD   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r3   r4   r5   r6   r7   r8   r9   r:   r;   r<   r=   r>   r?   r@   rA   rB   rC   s/                                                  rG   _djacobi_theta2rM      s   
CFFGGAJXXLLR(cb[
ASWWQZb1B,,r2&&R,,r2&&Rebem"2g26"R%"R%-B&BB2(=BqDq2v2~",-Aq2v2~",-A!fsl2"A1Aebem*RURU]r,AB!ta"f!A{*r11a"f!A{*r11FA !fsl 1fIIIa"WWQZXXll3771:r*ll3771:r*C#c'!b(CR!V$ccSWWQZb1B,,r2&&R,,r2&&Rebem"2g26"R%"R%-B&BB2(=BqDrArE)b01C"Hq"u$+CrArE)b01C"Hq"u$+C1fsAvo#d
S4Z/B6d
S4Z/B6 Cc	C#I-"4c	C#I-"4 Cebem*RURU]r,AB1rArE)b01rArE)b01rArE)b01rArE)b01FA 1fsAvo# qkqkiibS!iibS!GGCWWQZXXLLR(cb[
AQBll3772;33tll3772;33tll3772;33tll3772;33tT	DI%T	1DI="DT	DI%262T	DI%262T	DI%2624i$t)#d4i/$t);B4i$t)#d4i/$t);B4i$t)#d4i/$t);B4i$t)#d4i/$t);BqD1t8ae+23C1t8ae+23C1t8ae+23C1t8ae+23C!fsl2"A1At)d4i'$t)3d4i?BFBt)d4i'$t)3d4i?BFBt)d4i'$t)3d4i?BFBt)d4i'$t)3d4i?BFBDDDD1TArE)b01TArE)b01TArE)b01TArE)b01FA# !fsl$ qkqkiibS!iibS!GGC XXll3771:r*ll3771:r*C#c'!b(CR!V$ccQBll3772;33tll3772;33tll3772;33tll3772;33tT	DI%T	1DI="DT	DI%262T	DI%262T	DI%2624i$t)#d4i/$t);B4i$t)#d4i/$t);B4i$t)#d4i/$t);B4i$t)#d4i/$t);BqDC$Jt3q"u<CDCC$Jt3ae;BCCC$Jt3q"u<CDCC$Jt3ae;BCC1fsAvo#d
S4Z/B6d
S4Z/B6 Cc	C#I-"4c	C#I-"4 C t)d4i'$t)3d4i?BFBt)d4i'$t)3d4i?BFBt)d4i'$t)3d4i?BFBt)d4i'$t)3d4i?BFBDDDD1#*sTz1QU:rAB#*sTz1QU:rAB#*sTz1QU:rAB#*sTz1QU:rABFA) 1fsAvo#* qkqkiibS!iibS!GGCQ	A
1b!e}q  a"a%i 1$$rI   c                    d}d}d}|| j                   k(  r| j                  |      s| j                  |z   }| j                  | j	                  |      |      }|}|x}	}
||z  |z	  }t        |	      |kD  r$|
|z  |z	  }
|	|
z  |z	  }	||	z  }t        |	      |kD  r$d|z  |dz  z   }| j                  ||       }|S | j                  |z   }| j                  | j	                  |      |      }| j                  | j                  |      |      }||z  ||z  z
  |z	  }||z  |dz
  z	  }|x}x}}|x}x}}|dz  |dz  z   |kD  rQ||z  ||z  z
  |z	  ||z  ||z  z   |z	  }}||z  ||z  z
  |z	  ||z  ||z  z   |z	  }}||z  }||z  }|dz  |dz  z   |kD  rQd|z  |dz  z   }|dz  }| j                  ||       }| j                  ||       }| j                  ||      }|S | j                  |      s| j                  |      sd}| j                  |z   }| j                  | j	                  |      |      }|x}	}
||z  |z	  }| j                  | j	                  |      dz  |      \  }}| j                  ||      }| j                  ||      }|}|}||	|z  |z	  z  }t        |	      |kD  rF|
|z  |z	  }
|	|
z  |z	  }	||z  ||z  z
  |z	  ||z  ||z  z   |z	  }}||	|z  |z	  z  }t        |	      |kD  rFd|z  |dz  z   }| j                  ||       }|S | j                  |      s| j                  |z   }| j                  | j	                  |      |      }| j                  | j                  |      |      }||z  ||z  z
  |z	  }||z  |dz
  z	  }|x}}|x}}| j                  | j	                  |      dz  |      \  }}| j                  ||      }| j                  ||      }|}|}||z  |z	  }||z  |z	  }|dz  |dz  z   |kD  ry||z  ||z  z
  |z	  ||z  ||z  z   |z	  }}||z  ||z  z
  |z	  ||z  ||z  z   |z	  }}||z  ||z  z
  |z	  ||z  ||z  z   |z	  }}|||z  |z	  z  }|||z  |z	  z  }|dz  |dz  z   |kD  ryd|z  |dz  z   }|dz  }| j                  ||       }| j                  ||       }| j                  ||      }|S | j                  |      s| j                  |z   }| j                  | j	                  |      |      }|x}	}
||z  |z	  }| j                  }|| _        | j                  d|z        \  }}|| _        | j                  | j	                  |      |      x}}| j                  | j                  |      |      x}}| j                  | j	                  |      |      x}} | j                  | j                  |      |      x}!}"|	|z  |z	  }|	|z  |z	  }t        |	      |kD  r|
|z  |z	  }
|	|
z  |z	  }	||z  ||z  z
  || z  z
  |!|"z  z   |z	  }#||z  ||z  z   ||"z  z
  |!| z  z
  |z	  }$||z  |!|z  z
  || z  z   ||"z  z
  |z	  }%||z  |!|z  z   ||"z  z   || z  z   |z	  }&|#}|$}|%}|&}!||	|z  |z	  z  }||	|z  |z	  z  }t        |	      |kD  rd|z  |dz  z   }|dz  }| j                  ||       }| j                  ||       }| j                  ||      }|S | j                  |z   }| j                  | j	                  |      |      }| j                  | j                  |      |      }||z  ||z  z
  |z	  }||z  |dz
  z	  }|x}}|x}}| j                  }|| _        | j                  d|z        \  }}|| _        | j                  | j	                  |      |      x}}| j                  | j                  |      |      x}}| j                  | j	                  |      |      x}} | j                  | j                  |      |      x}!}"||z  ||z  z
  |z	  }||z  ||z  z   |z	  }|dz  |dz  z   |kD  r||z  ||z  z
  |z	  ||z  ||z  z   |z	  }}||z  ||z  z
  |z	  ||z  ||z  z   |z	  }}||z  ||z  z
  || z  z
  |!|"z  z   |z	  }#||z  ||z  z   ||"z  z
  |!| z  z
  |z	  }$||z  |!|z  z
  || z  z   ||"z  z
  |z	  }%||z  |!|z  z   ||"z  z   || z  z   |z	  }&|#}|$}|%}|&}!|||z  ||z  z
  |z	  z  }|||z  ||z  z   |z	  z  }|dz  |dz  z   |kD  rd|z  |dz  z   }|dz  }| j                  ||       }| j                  ||       }| j                  ||      }|S )Nr   r   r   r       r	   )	r   r   r
   r   r   r   r   r   r   )'r   r   r   r   r   r   r   r   r"   r    r!   r   r#   r$   r%   r&   r+   r'   r(   r,   r)   r*   r-   r.   r/   r0   r3   r4   r5   r6   r7   r8   r9   r:   r;   r@   rA   rB   rC   s'                                          rG   _jacobi_theta3rP     s:   FF
CCHH}wwqzF"BSWWQZ,AAIAA#"Ba&3,rTbLqSRKQ a&3, bQ!V$A		!bS!AHF"B,,swwqz2.C,,swwqz2.CGc#g%",DGa(D!!C!#!!C!#q&36/C'$Jt3:$Jt3: #Ic	1b8#Ic	1b8 s
s
 q&36/C' 7sax(C!8C))C"%C))C"%CS!AH
SWWQZAF"BSWWQZ,AIAA#"B[[AB[7FBb"%Bb"%BBB!b&RAa&3,rTbLqSRKR%"R%-B.BB20EBa"f^#	 a&3,
 bQ!V$A		!bS!AHF"B,,swwqz2.C,,swwqz2.CGc#g%",DGa(DOC#OC#[[AB[7FBb"%Bb"%BBB8"C8"Cq&36/C'$Jt3:$Jt3: #Ic	1b8#Ic	1b8 R%"R%-B.BB20EBbR''bR'' q&36/C' 7sax(C!8C))C"%C))C"%CS!AHF"BSWWQZ,AIAA#"BHHECH[[1%FBCH,,swwr{B77D4,,swwr{B77D4,,swwr{B77D4,,swwr{B77D4t8"Ct8"Ca&3,rTbLqSRK4i$t)+d4i7$t)CJ4i$t)+d4i7$t)CJ4i$t)+d4i7$t)CJ4i$t)+d4i7$t)CJDR''DR'' a&3, 7sax(C!8C))C"%C))C"%CS!AH F"B,,swwqz2.C,,swwqz2.CGc#g%",DGa(DOC#OC#HHECH[[1%FBCH,,swwr{B77D4,,swwr{B77D4,,swwr{B77D4,,swwr{B77D4:d
*r1C:d
*r1Cq&36/C'$Jt3:$Jt3: #Ic	1b8#Ic	1b8 4i$t)+d4i7$t)CJ4i$t)+d4i7$t)CJ4i$t)+d4i7$t)CJ4i$t)+d4i7$t)CJd
S4Z/B66d
S4Z/B66 q&36/C' 7sax(C!8C))C"%C))C"%CS!AHrI   c                    d}d}d}| j                  |      sR| j                  |      s@d}| j                  |z   }| j                  | j                  |      |      }	|	x}
}|	|	z  |z	  }| j	                  | j                  |      dz  |      \  }}| j                  ||      }| j                  ||      }|}|}|dz  r||
|z  |z	  z  }n||
|z  |z	  z  }d}t        |
      |kD  rh||z  |z	  }|
|z  |z	  }
||z  ||z  z
  |z	  ||z  ||z  z   |z	  }}|dz  r||
|z  ||z  z  |z	  z  }n||
|z  ||z  z  |z	  z  }|dz  }t        |
      |kD  rh||dz   z   }| j                  ||       }nZ| j                  |      s| j                  |z   }| j                  | j                  |      |      }| j                  | j                  |      |      }||z  ||z  z
  |z	  }||z  |dz
  z	  }|x}}|x}}| j	                  | j                  |      dz  |      \  }}| j                  ||      }| j                  ||      }|}|}|dz  r||z  |z	  }||z  |z	  }n||z  |z	  }||z  |z	  }d}|dz  |dz  z   |kD  r||z  ||z  z
  |z	  ||z  ||z  z   |z	  }}||z  ||z  z
  |z	  ||z  ||z  z   |z	  }}||z  ||z  z
  |z	  ||z  ||z  z   |z	  }}|dz  r#|||z  ||z  z  |z	  z  }|||z  ||z  z  |z	  z  }n"|||z  ||z  z  |z	  z  }|||z  ||z  z  |z	  z  }|dz  }|dz  |dz  z   |kD  r||dz   z   }||dz   z   }| j                  ||       }| j                  ||       }| j                  ||      }nR| j                  |      sY| j                  |z   }| j                  | j                  |      |      }	|	x}
}|	|	z  |z	  }| j                  }|| _        | j	                  d|z        \  }}|| _        | j                  | j                  |      |      x}}| j                  | j                  |      |      x}} | j                  | j                  |      |      x}!}"| j                  | j                  |      |      x}#}$|dz  r|
|!z  |z	  }|
|#z  |z	  }n|
|z  |z	  }|
|z  |z	  }d}t        |
      |kD  r||z  |z	  }|
|z  |z	  }
||z  || z  z
  |!|"z  z
  |#|$z  z   |z	  }%|| z  ||z  z   |!|$z  z
  |#|"z  z
  |z	  }&|!|z  |#| z  z
  ||"z  z   ||$z  z
  |z	  }'|!| z  |#|z  z   ||$z  z   ||"z  z   |z	  }(|%}|&}|'}!|(}#|dz  r#||
|!z  ||z  z  |z	  z  }||
|#z  ||z  z  |z	  z  }n"||
|z  ||z  z  |z	  z  }||
|z  ||z  z  |z	  z  }|dz  }t        |
      |kD  r||dz   z   }||dz   z   }| j                  ||       }| j                  ||       }| j                  ||      }n| j                  |z   }| j                  | j                  |      |      }| j                  | j                  |      |      }||z  ||z  z
  |z	  }||z  |dz
  z	  }|x}}|x}}| j                  }|| _        | j	                  d|z        \  }}|| _        | j                  | j                  |      |      x}}| j                  | j                  |      |      x}} | j                  | j                  |      |      x}!}"| j                  | j                  |      |      x}#}$|dz  r||!z  ||#z  z
  |z	  }||!z  ||#z  z   |z	  }n||z  ||z  z
  |z	  }||z  ||z  z   |z	  }d}|dz  |dz  z   |kD  r||z  ||z  z
  |z	  ||z  ||z  z   |z	  }}||z  ||z  z
  |z	  ||z  ||z  z   |z	  }}||z  || z  z
  |!|"z  z
  |#|$z  z   |z	  }%|| z  ||z  z   |!|$z  z
  |#|"z  z
  |z	  }&|!|z  |#| z  z
  ||"z  z   ||$z  z
  |z	  }'|!| z  |#|z  z   ||$z  z   ||"z  z   |z	  }(|%}|&}|'}!|(}#|dz  r/|||!z  ||#z  z
  ||z  z  |z	  z  }|||!z  ||#z  z   ||z  z  |z	  z  }n.|||z  ||z  z
  ||z  z  |z	  z  }|||z  ||z  z   ||z  z  |z	  z  }|dz  }|dz  |dz  z   |kD  r||dz   z   }||dz   z   }| j                  ||       }| j                  ||       }| j                  ||      }|dz  rd|dz  z  |z  S dd|dz  z   z  |z  S )z2nd=1,2,3 order of the derivative with respect to zr   r   r   rO   r	   r   rK   )r   r
   r   r   r   r   r   r   ))r   r   r   rL   r   r   r   r"   r   r   r    r!   r   r-   r.   r/   r0   rD   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r3   r4   r5   r6   r7   r8   r9   r:   r;   r@   rA   rB   rC   s)                                            rG   _djacobi_theta3rR   I  s,    CFFGGAJXXLLR(	Acb[SWWQZ\3B\\"b!\\"b!qD!b&RA!b&RA!fsl2"A1Aebem*RURU]r,AB!ta"fq"un++a"fq"un++FA !fsl BqDkNIIa"WWQZXXll3771:r*ll3771:r*C#c'!b(CR!V$ccSWWQZ\3B\\"b!\\"b!qD8"C8"C8"C8"C1fsAvo#d
S4Z/B6d
S4Z/B6 Cc	C#I-"4c	C#I-"4 Cebem*RURU]r,AB!tb1b5(R//b1b5(R//b1b5(R//b1b5(R//FA 1fsAvo# 11iibS!iibS!GGCWWQZXXLLR(	Acb[QqS!Bll3772;33tll3772;33tll3772;33tll3772;33tqDt8"Ct8"Ct8"Ct8"C!fsl2"A1At)d4i'$t)3d4i?BFBt)d4i'$t)3d4i?BFBt)d4i'$t)3d4i?BFBt)d4i'$t)3d4i?BFBDDDD1D1b5(R//D1b5(R//D1b5(R//D1b5(R//FA# !fsl$ 11iibS!iibS!GGC XXll3771:r*ll3771:r*C#c'!b(CR!V$ccQqS!Bll3772;33tll3772;33tll3772;33tll3772;33tqD:d
*r1C:d
*r1C:d
*r1C:d
*r1C1fsAvo#d
S4Z/B6d
S4Z/B6 Cc	C#I-"4c	C#I-"4 Ct)d4i'$t)3d4i?BFBt)d4i'$t)3d4i?BFBt)d4i'$t)3d4i?BFBt)d4i'$t)3d4i?BFBDDDD!ttcDj0ArE9b@@tcDj0ArE9b@@tcDj0ArE9b@@tcDj0ArE9b@@FA' 1fsAvo#( 11iibS!iibS!GGC
1b!e}q  a"a%i 1$$rI   c                 L   t        | j                  |      | j                  | j                  |            z  dz
        x}}| j	                  d|z        }| j	                  d|z  dz   |z        x}}|||z  |z   z  }||z  }	|	}
| j
                  t        |	      z  }	 |dz  }||z  }|||z  |z   z  |z  }	t        |	      |k  rn|
|	z  }
-|}| j	                  d|z        }|}	 |dz  }||z  }|||z  |z   z  |z  }	t        |	      |k  rn|
|	z  }
-|
| j                  |d      z  }
|
S )au  
    case ctx._im(z) != 0
    theta(2, z, q) =
    q**1/4 * Sum(q**(n*n + n) * exp(j*(2*n + 1)*z), n=-inf, inf)
    max term for minimum (2*n+1)*log(q).real - 2* ctx._im(z)
    n0 = int(ctx._im(z)/log(q).real - 1/2)
    theta(2, z, q) =
    q**1/4 * Sum(q**(n*n + n) * exp(j*(2*n + 1)*z), n=n0, inf) +
    q**1/4 * Sum(q**(n*n + n) * exp(j*(2*n + 1)*z), n, n0-1, -inf)
          ?r   r   r   )intr   r   logexpjepsr   r   )r   r   r   rD   n0e2ee0r    termr"   eps1s               rG   _jacobi_theta2ar`     s`    CGGCGGAJ//#566A	!A#BXXqs1uai  A	AaC!GAq5DA773t9D
	QF1Q37|at9t	T	  	A	"Q$B
A
	QF1Q37|at9t	T	  	
CKK1AHrI   c           
         t        | j                  |       t        | j                  | j	                  |                  z        x}}| j                  d|z        }| j                  d|z  |z        x}}|||z  z  |z  x}}	| j                  t        |	      z  }
	 |dz  }||z  }|||z  z  |z  }	t        |	      |
k  rn||	z  }*|}| j                  d|z        }|}	 |dz  }||z  }|||z  z  |z  }	t        |	      |
k  r	 |S ||	z  },)z
    case ctx._im(z) != 0
    theta3(z, q) = Sum(q**(n*n) * exp(j*2*n*z), n, -inf, inf)
    max term for n*abs(log(q).real) + ctx._im(z) ~= 0
    n0 = int(- ctx._im(z)/abs(log(q).real))
    r   r   rU   )rV   r   r   r   rW   rX   rY   )r   r   r   rD   rZ   r[   r\   r]   r"   r^   r_   s              rG   _jacobi_theta3arb     s5    #''!*S!45566A	!A#BXXac!e_A1Q3x!|A773t9D
	QF1Q3x!|t9t	T	  	A	"Q$B
A
	QF1Q3x!|t9tH 	
T	 rI   c                    t        | j                  |      | j                  | j                  |            z  dz
        x}}| j	                  d|z        }| j	                  d|z  dz   |z        x}}|||z  |z   z  }	d|z  dz   |z  |	z  |z  }
|
}| j
                  t        |
      z  }	 |dz  }||z  }d|z  dz   |z  |||z  |z   z  z  |z  }
t        |
      |k  rn||
z  }9|}| j	                  d|z        }|}	 |dz  }||z  }d|z  dz   |z  |||z  |z   z  z  |z  }
t        |
      |k  rn||
z  }9| j                  |z  |z  | j                  |d      z  S )z
    case ctx._im(z) != 0
    dtheta(2, z, q, nd) =
    j* q**1/4 * Sum(q**(n*n + n) * (2*n+1)*exp(j*(2*n + 1)*z), n=-inf, inf)
    max term for (2*n0+1)*log(q).real - 2* ctx._im(z) ~= 0
    n0 = int(ctx._im(z)/log(q).real - 1/2)
    rT   r   r   rU   r   )	rV   r   r   rW   rX   rY   r   jr   )r   r   r   rL   rD   rZ   r[   r\   r]   r    r^   r"   r_   s                rG   _djacobi_theta2are   <  s    CGGCGGAJ//#566A	!A#BXXqsQwk""A	AaC!GAaCEB;?QDA773t9D
	QF!A{Q1q\)A-t9t	T	  	A	"Q$B
A
	QF!A{Q1q\)A-t9t	T	  55"9q=3;;q!,,,rI   c           
         t        | j                  |       t        | j                  | j	                  |                  z        x}}| j                  d|z        }| j                  d|z  |z        x}}|||z  z  |z  }	||z  |	z  x}
}|dk7  r| j                  t        |      z  }n| j                  t        |	      z  }	 |dz  }||z  }|||z  z  |z  }	||z  |	z  }|dk7  rt        |      }nt        |	      }||k  rn|
|z  }
E|}| j                  d|z        }|}	 |dz  }||z  }|||z  z  |z  }	||z  |	z  }|dk7  rt        |      }nt        |	      }||k  rn|
|z  }
Ed| j                  z  |z  |
z  S )z
    case ctx._im(z) != 0
    djtheta3(z, q, nd) = (2*j)**nd *
      Sum(q**(n*n) * n**nd * exp(j*2*n*z), n, -inf, inf)
    max term for minimum n*abs(log(q).real) + ctx._im(z)
    r   rO   r   rU   )rV   r   r   r   rW   rX   rY   rd   )r   r   r   rL   rD   rZ   r[   r\   r]   r    r"   r^   r_   aterms                 rG   _djacobi_theta3arh   `  s    #''!*S!45566A	!A#BXXac!e_A	AaC1A"uqyAAvwws4y wws1v~
	QF!HqL"uqy6IEFE4<	T	  	A	"Q$B
A
	QF!HqL"uqy6IEFE4<	T	  ceeGb=1rI   c           	      2   |r| j                  ||||      S | j                  |      }| j                  |      }t        |      | j                  kD  rt	        d| j                  z        d}|r1| j                  |      }|dkD  s
|dk(  r|dk  r|dt        |      z  z  }d}d}| j                  }		 | xj                  |z  c_        |dk(  r| j                  |      rt        | j                  |            |t        | j                  | j                  |                  z  k  r9| xj                  |z  c_
        | j                  || j                  dz  z
  |      }
n| xj                  dz  c_
        | j                  || j                  dz  z
  |      }
nq| j                  || j                  dz  z
  |      }
nM|dk(  r| j                  |      rt        | j                  |            |t        | j                  | j                  |                  z  k  r)| xj                  |z  c_
        | j                  ||      }
n| xj                  dz  c_
        | j                  ||      }
n| j                  ||      }
n|d	k(  r| j                  |      rt        | j                  |            |t        | j                  | j                  |                  z  k  r)| xj                  |z  c_
        | j                  ||      }
n| xj                  dz  c_
        | j                  ||      }
n| j                  ||      }
n|d
k(  r| j                  |      rt        | j                  |            |t        | j                  | j                  |                  z  k  r)| xj                  |z  c_
        | j                  ||       }
nC| xj                  dz  c_
        | j                  ||       }
n| j                  ||       }
nt        |	| _        |
S # |	| _        w xY wNzabs(q) > THETA_Q_LIM = %fr   r   r   r   rT   2   r   r   )_djthetaconvertr   THETA_Q_LIM
ValueErrormagr
   r   r   rW   dpsrH   pir`   rP   rb   )r   rD   r   r   
derivativeextraMczr   r3   ress              rG   jthetary     sJ   ||Aq!Z00AAAA 1v4sFGGEGGAJq5Q!VBQs1vXE	BFHHE-E6wwqzswwqz?R#cggcggaj.A*B%BBGGv%G,,Q\1=CGGrMG--a#&&(lA>C((SVVAXq9!Vwwqzswwqz?R#cggcggaj.A*B%BBGGv%G,,Q2CGGrMG--a3C((A.!Vwwqzswwqz?R#cggcggaj.A*B%BBGGv%G,,Q2CGGrMG--a3C((A.!Vwwqzswwqz?R#cggcggaj.A*B%BBGGv%G,,Q3CGGrMG--a!4C((QB/J s   /MP 	Pc           	      \   | j                  |      }| j                  |      }t        |      }t        |      | j                  kD  rt	        d| j                  z        d| j
                  |z  dz  z   }|r1| j                  |      }|dkD  s
|dk7  r|dk  r|dt        |      z  z  }d}d}	| j
                  }
	 | xj
                  |z  c_        |dk(  r| j                  |      rt        | j                  |            |t        | j                  | j                  |                  z  k  r:| xj                  |	z  c_
        | j                  || j                  dz  z
  ||      }n| xj                  dz  c_
        | j                  || j                  dz  z
  ||      }n{| j                  || j                  dz  z
  ||      }nV|dk(  r| j                  |      rt        | j                  |            |t        | j                  | j                  |                  z  k  r*| xj                  |	z  c_
        | j                  |||      }n| xj                  dz  c_
        | j                  |||      }n| j                  |||      }n|d	k(  r| j                  |      rt        | j                  |            |t        | j                  | j                  |                  z  k  r*| xj                  |	z  c_
        | j                  |||      }n	| xj                  dz  c_
        | j                  |||      }n| j                  |||      }n|d
k(  r| j                  |      rt        | j                  |            |t        | j                  | j                  |                  z  k  r*| xj                  |	z  c_
        | j                  || |      }nE| xj                  dz  c_
        | j                  || |      }n| j                  || |      }nt        |
| _        |S # |
| _        w xY wrj   )rn   rV   r   ro   rp   r
   rq   r   r   rW   rr   rM   rs   re   rR   rh   )r   rD   r   r   rt   rL   ru   rv   rw   r   r3   rx   s               rG   rm   rm     se   AAAA	ZB
1v4sFGGB"$$EGGAJq5Q!VBQs1vXE	BFHHE-E6wwqzswwqz?R#cggcggaj.A*B%BBGGv%G--a#&&(lArBCGGrMG..q366!8|QCC))!cffQh,2>!Vwwqzswwqz?R#cggcggaj.A*B%BBGGv%G--aB7CGGrMG..q!R8C))!Q3!Vwwqzswwqz?R#cggcggaj.A*B%BBGGv%G--aB7CGGrMG..q!R8C))!Q3!Vwwqzswwqz?R#cggcggaj.A*B%BBGGv%G--a!R8CGGrMG..q1"b9C))!aR44K s   7M!P" "	P+N)rO   )r   )	functionsr   r   rH   rM   rP   rR   r`   rb   re   rh   ry   rm    rI   rG   <module>r}      s    +R Rh F% F%P e eN h% h%T % %N  > !- !-F + +Z J JX = =rI   