def _integral(self, tex): start, end, var = util.validate(tex) start, end = self.compute(start), self.compute(end) if var is None: var = re_math.variable_name.findall(tex)[0] result, err = integrate.quad(lambda x : self.compute(tex['content'].replace(var, str(x))), start, end) return result
def _reduce(self, tex, symbol): start, end, var = util.validate(tex) start, end = np.int_(self.compute(start)), np.int_(self.compute(end)) if var is None: q = re_math.var_name.findall(tex['content']) if len(q) is 1: var = q[0] else: raise ValueError('Missing variable name in lower index') op = np.prod if symbol == '*' else np.sum return str( op([self.compute(tex['content'].replace(var, str(i))) for i in range(start, end + 1)]) )