def main(argv: List[str]) -> int: """Program entry point. :param argv: command-line arguments :type argv: :class:`list` """ author_strings = [] for name, email in zip(metadata.authors, metadata.emails): author_strings.append('Author: {0} <{1}>'.format(name, email)) epilog = ''' {project} {version} {authors} URL: <{url}> '''.format(project=metadata.project, version=metadata.version, authors='\n'.join(author_strings), url=metadata.url) arg_parser = argparse.ArgumentParser( prog=argv[0], formatter_class=argparse.RawDescriptionHelpFormatter, description=metadata.description, epilog=epilog) arg_parser.add_argument('-V', '--version', action='version', version='{0} {1}'.format(metadata.project, metadata.version)) arg_parser.parse_args(args=argv[1:]) x, y, z = (make_dot_variable(t) for t in ['x', 'y', 'z']) times = Operation.new('*', Arity.binary, 'times', infix=True) i = Operation.new('i', Arity.unary) e = Symbol('e') order = KnuthBendixOrdering({ times: 0, i: 0, e: 1 }, 1, {(i, times), (times, e)}) equations = [(times(times(x, y), z), times(x, times(y, z))), (times(e, x), x), (times(i(x), x), e)] print("Equations:") for s, t in equations: print(str(s), "=", str(t)) system = RewriteSystem.from_equations(order, equations) system.complete(order) print("Completed rules:") for r in system.rules: print(str(r)) return 0
ManyToOneReplacer, OneIdentityOperation, CustomConstraint) from matchpy.expressions.functions import register_operation_iterator, register_operation_factory from sympy import Pow, Add, Integral, Basic, Mul, S, Function, E from sympy.functions import ( log, sin, cos, tan, cot, csc, sec, sqrt, erf, exp as sym_exp, gamma, acosh, asinh, atanh, acoth, acsch, asech, cosh, sinh, tanh, coth, sech, csch, atan, acsc, asin, acot, acos, asec, fresnels, fresnelc, erfc, erfi, Ei, uppergamma, polylog, zeta, factorial, polygamma, digamma, li, expint, LambertW, loggamma) from sympy.integrals.rubi.utility_function import (Gamma, exp, log, ProductLog, PolyGamma, rubi_unevaluated_expr, process_trig) Operation.register(Integral) register_operation_iterator(Integral, lambda a: (a._args[0], ) + a._args[1], lambda a: len( (a._args[0], ) + a._args[1])) Operation.register(Pow) OneIdentityOperation.register(Pow) register_operation_iterator(Pow, lambda a: a._args, lambda a: len(a._args)) Operation.register(Add) OneIdentityOperation.register(Add) CommutativeOperation.register(Add) AssociativeOperation.register(Add) register_operation_iterator(Add, lambda a: a._args, lambda a: len(a._args)) Operation.register(Mul)
from sympy.utilities.decorator import doctest_depends_on import inspect, re if matchpy: from matchpy import (Operation, CommutativeOperation, AssociativeOperation, ManyToOneReplacer, OneIdentityOperation, CustomConstraint) from matchpy.expressions.functions import register_operation_iterator, register_operation_factory from sympy import Pow, Add, Integral, Basic, Mul, S from sympy.functions import (log, sin, cos, tan, cot, csc, sec, sqrt, erf, exp, log, gamma, acosh, asinh, atanh, acoth, acsch, asech, cosh, sinh, tanh, coth, sech, csch, atan, acsc, asin, acot, acos, asec, fresnels, fresnelc, erfc, erfi) Operation.register(Integral) register_operation_iterator(Integral, lambda a: (a._args[0], ) + a._args[1], lambda a: len( (a._args[0], ) + a._args[1])) Operation.register(Pow) OneIdentityOperation.register(Pow) register_operation_iterator(Pow, lambda a: a._args, lambda a: len(a._args)) Operation.register(Add) OneIdentityOperation.register(Add) CommutativeOperation.register(Add) AssociativeOperation.register(Add) register_operation_iterator(Add, lambda a: a._args, lambda a: len(a._args)) Operation.register(Mul)
from sympy.external import import_module matchpy = import_module("matchpy") from sympy.utilities.decorator import doctest_depends_on import inspect, re if matchpy: from matchpy import (Operation, CommutativeOperation, AssociativeOperation, ManyToOneReplacer, OneIdentityOperation, CustomConstraint) from matchpy.expressions.functions import register_operation_iterator, register_operation_factory from sympy import Pow, Add, Integral, Basic, Mul, S from sympy.functions import (log, sin, cos, tan, cot, csc, sec, sqrt, erf, exp, log, gamma, acosh, asinh, atanh, acoth, acsch, asech, cosh, sinh, tanh, coth, sech, csch, atan, acsc, asin, acot, acos, asec, fresnels, fresnelc, erfc, erfi) Operation.register(Integral) register_operation_iterator(Integral, lambda a: (a._args[0],) + a._args[1], lambda a: len((a._args[0],) + a._args[1])) Operation.register(Pow) OneIdentityOperation.register(Pow) register_operation_iterator(Pow, lambda a: a._args, lambda a: len(a._args)) Operation.register(Add) OneIdentityOperation.register(Add) CommutativeOperation.register(Add) AssociativeOperation.register(Add) register_operation_iterator(Add, lambda a: a._args, lambda a: len(a._args)) Operation.register(Mul) OneIdentityOperation.register(Mul) CommutativeOperation.register(Mul)
from sympy import powsimp if matchpy: from matchpy import (Operation, CommutativeOperation, AssociativeOperation, ManyToOneReplacer, OneIdentityOperation, CustomConstraint) from matchpy.expressions.functions import register_operation_iterator, register_operation_factory from sympy import Pow, Add, Integral, Basic, Mul, S, Function, E from sympy.functions import (log, sin, cos, tan, cot, csc, sec, sqrt, erf, exp as sym_exp, gamma, acosh, asinh, atanh, acoth, acsch, asech, cosh, sinh, tanh, coth, sech, csch, atan, acsc, asin, acot, acos, asec, fresnels, fresnelc, erfc, erfi, Ei, uppergamma, polylog, zeta, factorial, polygamma, digamma, li, expint, LambertW, loggamma) from sympy.integrals.rubi.utility_function import (Gamma, exp, log, ProductLog, PolyGamma, rubi_unevaluated_expr, process_trig) Operation.register(Integral) register_operation_iterator(Integral, lambda a: (a._args[0],) + a._args[1], lambda a: len((a._args[0],) + a._args[1])) Operation.register(Pow) OneIdentityOperation.register(Pow) register_operation_iterator(Pow, lambda a: a._args, lambda a: len(a._args)) Operation.register(Add) OneIdentityOperation.register(Add) CommutativeOperation.register(Add) AssociativeOperation.register(Add) register_operation_iterator(Add, lambda a: a._args, lambda a: len(a._args)) Operation.register(Mul) OneIdentityOperation.register(Mul) CommutativeOperation.register(Mul)
def __init__(self, operands, **kwargs): Operation.__init__(self, operands) TransformerBase.__init__(self, **kwargs) models = operands self.models = list( map(lambda x : get_transformer(x), models) )
def __init__(self, operands, **kwargs): assert 2 == len(operands) Operation.__init__(self, operands) TransformerBase.__init__(self, **kwargs) self.left = operands[0] self.right = operands[1]
def __init__(self, rtr, **kwargs): Operation.__init__(self, []) TransformerBase.__init__(self, **kwargs) self.operands=[] self.rtr = rtr[0]
def __init__(self, *args, **kwargs): Operation.__init__(self, []) TransformerBase.__init__(self, **kwargs)