def run(self, context): if isinstance(self.body, SinOperation): return math.asin(self.body.body.run(context)) if isinstance(self.body, CosOperation): return math.acos(self.body.body.run(context)) if isinstance(self.body, TanOperation): return math.atan(self.body.body.run(context)) if isinstance(self.body, SecOperation): return mpmath.asec(self.body.body.run(context)) if isinstance(self.body, CscOperation): return mpmath.acsc(self.body.body.run(context)) if isinstance(self.body, CotOperation): return mpmath.acot(self.body.body.run(context)) raise Exception("Unsupported inversion operation.")
def F(x, k): 'cdf' x = np.asarray(x) F = np.zeros(x.shape) F += (x >= 2 * (k + 1)**2) * 1 F += ((x >= (k + 1)**2 + 1) & (x < 2 * (k + 1)**2)) * (1 / (4 * k**2)) * (-4 - 8 * k + 4 * (k + 1) * (-(k + 1)**2 + x)**0.5 - np.pi * x + 4 * x * np.arctan( (k + 1) / (-(k + 1)**2 + x)**0.5)) F += ((x >= 2) & (x < (k + 1)**2 + 1)) * (1 / (2 * k**2)) * ( 2 - 2 * (-1 + x)**0.5 - x * float(mpmath.acsc(x**0.5)) + x * np.arctan( (-1 + x)**0.5)) return F
def cdf(x, k): if x >= 2 * (k + 1)**2: return 1 if x >= (k + 1)**2 + 1 and x < 2 * (k + 1)**2: return (1 / (4 * k**2)) * (-4 - 8 * k + 4 * (k + 1) * (-(k + 1)**2 + x)**0.5 - np.pi * x + 4 * x * np.arctan( (k + 1) / (-(k + 1)**2 + x)**0.5)) if x >= 2 and x < (k + 1)**2 + 1: return (1 / (2 * k**2)) * (2 - 2 * (-1 + x)**0.5 - x * float(mpmath.acsc(x**0.5)) + x * np.arctan( (-1 + x)**0.5)) else: return 0
# -*- coding: utf-8 -*- """ Created by libsedmlscript v0.0.1 """ from sed_roadrunner import model, task, plot from mpmath import acsc #---------------------------------------------- acsc(0.5)
def eval(self, z): return mpmath.acsc(z)
None]], # sqrt(x**2+y**2) # 'sin': ['primitive', [lambda x, y: mp.sin(x), None]], 'cos': ['primitive', [lambda x, y: mp.cos(x), None]], 'tan': ['primitive', [lambda x, y: mp.tan(x), None]], 'sinpi': ['primitive', [lambda x, y: mp.sinpi(x), None]], #sin(x * pi) 'cospi': ['primitive', [lambda x, y: mp.cospi(x), None]], 'sec': ['primitive', [lambda x, y: mp.sec(x), None]], 'csc': ['primitive', [lambda x, y: mp.csc(x), None]], 'cot': ['primitive', [lambda x, y: mp.cot(x), None]], 'asin': ['primitive', [lambda x, y: mp.asin(x), None]], 'acos': ['primitive', [lambda x, y: mp.acos(x), None]], 'atan': ['primitive', [lambda x, y: mp.atan(x), None]], 'atan2': ['primitive', [lambda x, y: mp.atan2(y[0], x), None]], 'asec': ['primitive', [lambda x, y: mp.asec(x), None]], 'acsc': ['primitive', [lambda x, y: mp.acsc(x), None]], 'acot': ['primitive', [lambda x, y: mp.acot(x), None]], 'sinc': ['primitive', [lambda x, y: mp.sinc(x), None]], 'sincpi': ['primitive', [lambda x, y: mp.sincpi(x), None]], 'degrees': ['primitive', [lambda x, y: mp.degrees(x), None]], #radian - >degree 'radians': ['primitive', [lambda x, y: mp.radians(x), None]], #degree - >radian # 'exp': ['primitive', [lambda x, y: mp.exp(x), None]], 'expj': ['primitive', [lambda x, y: mp.expj(x), None]], #exp(x*i) 'expjpi': ['primitive', [lambda x, y: mp.expjpi(x), None]], #exp(x*i*pi) 'expm1': ['primitive', [lambda x, y: mp.expm1(x), None]], #exp(x)-1 'power': ['primitive', [lambda x, y: mp.power(x, y[0]), None]], 'powm1': ['primitive', [lambda x, y: mp.powm1(x, y[0]), None]], #pow(x, y) - 1