Пример #1
0
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
Пример #2
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)
Пример #3
0
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)
Пример #4
0
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)
Пример #5
0
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)
Пример #6
0
 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) )
Пример #7
0
 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]
Пример #8
0
 def __init__(self, rtr, **kwargs):
     Operation.__init__(self, [])
     TransformerBase.__init__(self, **kwargs)
     self.operands=[]
     self.rtr = rtr[0]
Пример #9
0
 def __init__(self, *args, **kwargs):
     Operation.__init__(self, [])
     TransformerBase.__init__(self, **kwargs)