Example #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
Example #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)
Example #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)
Example #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)
Example #5
0
File: rubi.py Project: Lenqth/sympy
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)
Example #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) )
Example #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]
Example #8
0
 def __init__(self, rtr, **kwargs):
     Operation.__init__(self, [])
     TransformerBase.__init__(self, **kwargs)
     self.operands=[]
     self.rtr = rtr[0]
Example #9
0
 def __init__(self, *args, **kwargs):
     Operation.__init__(self, [])
     TransformerBase.__init__(self, **kwargs)