MINI MINI MANI MO
3
  \2k                 @   s  d dl mZ d dlmZmZ d dlm	Z
mZm
ZmZmZ d dlmZmZmZmZ d dlmZ d dlmZ m!Z" d dl#m$Z% d dl&Z'd dl(Z)d	d
ddd
ddddddddddddddddddd gZ*d!ed1 ed# Z+d#e Z,e
d$Z-d%e
d& Z.d'Z/d(e/  Z0d dl1Z1G d)d	 d	e1j2Z2G d*d  d e2Z3d+d, Z4d2d.d/Z5e2 Z6e6j7Z7e6j8Z8e6j9Z9e6j:Z:e6j;Z;e6j<Z<e6j=Z=e6j>Z>e6j?Z?e6j@Z@e6jAZAe6jBZBe6jCZCe6jDZDe6jEZEe6jFZFe6jGZGe6jHZHe6jIZIe6jJZJe6jKZKe6jLZLeMd0kre5  dS )3    )warn)
MethodTypeBuiltinMethodType)logexppieceil)sqrtacoscossin)urandom)SetSequence)sha512NRandomseedrandomuniformrandintchoicesample	randrangeshuffle
normalvariatelognormvariateexpovariatevonmisesvariategammavariate
triangulargaussbetavariate
paretovariateweibullvariategetstatesetstategetrandbitschoicesSystemRandom   g      ?g       @g      @g      ?g      @5      c                   s  e Zd ZdZd:ddZd; fdd	Z fdd	Z fd
dZdd
 Zdd Z	dd Z
ddefddZdd Z
ede>