import cmath
import math as rmath
from types import *
class MathSelector(object):
def __init__(self, fn):
self.fn = fn
def __call__(self,*args):
try:
return getattr(rmath,self.fn)(*args)
except:
return getattr(cmath,self.fn)(*args)
class Math(object):
def __getattr__(self, fn):
return MathSelector(fn)
math = Math()
print math.sqrt(-1)
print math.exp(complex(0,1))
print math.sin(2.5)
aW1wb3J0IGNtYXRoCmltcG9ydCBtYXRoIGFzIHJtYXRoCmZyb20gdHlwZXMgaW1wb3J0ICoKCmNsYXNzIE1hdGhTZWxlY3RvcihvYmplY3QpOgogICAgZGVmIF9faW5pdF9fKHNlbGYsIGZuKToKICAgICAgICBzZWxmLmZuID0gZm4KICAgIGRlZiBfX2NhbGxfXyhzZWxmLCphcmdzKToKICAgICAgICB0cnk6CiAgICAgICAgICAgIHJldHVybiBnZXRhdHRyKHJtYXRoLHNlbGYuZm4pKCphcmdzKQogICAgICAgIGV4Y2VwdDoKICAgICAgICAgICAgcmV0dXJuIGdldGF0dHIoY21hdGgsc2VsZi5mbikoKmFyZ3MpCgpjbGFzcyBNYXRoKG9iamVjdCk6CiAgICBkZWYgX19nZXRhdHRyX18oc2VsZiwgZm4pOgogICAgICAgIHJldHVybiBNYXRoU2VsZWN0b3IoZm4pCiAgICAgICAgCm1hdGggPSBNYXRoKCkKICAgICAgICAKcHJpbnQgbWF0aC5zcXJ0KC0xKQpwcmludCBtYXRoLmV4cChjb21wbGV4KDAsMSkpCnByaW50IG1hdGguc2luKDIuNSk=