def __init__(self, base, exponent, *, styles=None): r''' Raise base to exponent power. ''' self.base = base self.exponent = exponent NumberOperation.__init__(self, Exp._operator_, (base, exponent), styles=styles)
def __init__(self, numerator, denominator, *, styles=None): r''' Divide two operands. ''' NumberOperation.__init__(self, Div._operator_, [numerator, denominator], styles=styles) self.numerator = self.operands[0] self.denominator = self.operands[1]
def shallow_simplification(self, *, must_evaluate=False, **defaults_config): if self.base == self.antilog: from . import log_eq_1 return log_eq_1.instantiate({a: self.base}) return NumberOperation.shallow_simplification( self, must_evaluate=must_evaluate)
def latex(self, **kwargs): if self.get_style('division') == 'fraction': # only fence if force_fence=True (a fraction within an # exponentiation is an example of when fencing should be forced) kwargs['fence'] = kwargs[ 'force_fence'] if 'force_fence' in kwargs else False return maybe_fenced_latex( r'\frac{' + self.numerator.latex() + '}{' + self.denominator.latex() + '}', **kwargs) else: # normal division return NumberOperation.latex(self, **kwargs)
def style_options(self): ''' Return the StyleOptions object for this Div. ''' options = NumberOperation.style_options(self) options.add_option(name='division', description=("'inline': uses '/'; 'fraction': " "numerator over the denominator " "(also see 'frac' function)"), default='fraction', related_methods=('with_inline_style', 'with_fraction_style')) return options
def __init__(self, *operands, styles=None): NumberOperation.__init__(self, Min._operator_, operands, styles=styles)
def __init__(self, A, *, styles=None): NumberOperation.__init__(self, Abs._operator_, A, styles=styles)
def __init__(self, dividend, divisor, *, styles=None): NumberOperation.__init__(self, Mod._operator_, (dividend, divisor), styles=styles) self.dividend = self.operands[0] self.divisor = self.operands[1]