Пример #1
0
def test_parallel_dict_from_expr():
    parallel_dict_from_expr([Eq(x, 1), Eq(x**2, 2)]) == ([{
        (1, ): Integer(1)
    }, {
        (2, ): Integer(2)
    }], (x, ))
    raises(PolynomialError, lambda: parallel_dict_from_expr([A * B - B * A]))
Пример #2
0
def test__parallel_dict_from_expr_no_gens():
    assert parallel_dict_from_expr([x * y, Integer(3)]) == (
        [{
            (1, 1): Integer(1)
        }, {
            (0, 0): Integer(3)
        }],
        (x, y),
    )
    assert parallel_dict_from_expr([x * y, 2 * z, Integer(3)]) == (
        [{
            (1, 1, 0): Integer(1)
        }, {
            (0, 0, 1): Integer(2)
        }, {
            (0, 0, 0): Integer(3)
        }],
        (x, y, z),
    )
    assert parallel_dict_from_expr((Mul(x, x**2, evaluate=False), )) == (
        [{
            (3, ): 1
        }],
        (x, ),
    )
Пример #3
0
def test__parallel_dict_from_expr_no_gens():
    assert parallel_dict_from_expr([x*y, Integer(3)]) == \
        ([{(1, 1): Integer(1)}, {(0, 0): Integer(3)}], (x, y))
    assert parallel_dict_from_expr([x*y, 2*z, Integer(3)]) == \
        ([{(1, 1, 0): Integer(
            1)}, {(0, 0, 1): Integer(2)}, {(0, 0, 0): Integer(3)}], (x, y, z))
    assert parallel_dict_from_expr((Mul(x, x**2, evaluate=False),)) == \
        ([{(3,): 1}], (x,))
Пример #4
0
def test__parallel_dict_from_expr_if_gens():
    assert parallel_dict_from_expr(
        [x + 2 * y + 3 * z, Integer(7)], gens=(x, )) == (
            [{
                (1, ): Integer(1),
                (0, ): 2 * y + 3 * z
            }, {
                (0, ): Integer(7)
            }],
            (x, ),
        )
Пример #5
0
def sdm_from_vector(vec, O, K, **opts):
    """
    Create an sdm from an iterable of expressions.

    Coefficients are created in the ground field ``K``, and terms are ordered
    according to monomial order ``O``. Named arguments are passed on to the
    polys conversion code and can be used to specify for example generators.

    Examples
    ========

    >>> from sympy.polys.distributedmodules import sdm_from_vector
    >>> from sympy.abc import x, y, z
    >>> from sympy.polys import QQ, lex
    >>> sdm_from_vector([x**2+y**2, 2*z], lex, QQ)
    [((1, 0, 0, 1), 2), ((0, 2, 0, 0), 1), ((0, 0, 2, 0), 1)]
    """
    dics, gens = parallel_dict_from_expr(sympify(vec), **opts)
    dic = {}
    for i, d in enumerate(dics):
        for k, v in d.items():
            dic[(i, ) + k] = K.convert(v)
    return sdm_from_dict(dic, O)
Пример #6
0
def sdm_from_vector(vec, O, K, **opts):
    """
    Create an sdm from an iterable of expressions.

    Coefficients are created in the ground field ``K``, and terms are ordered
    according to monomial order ``O``. Named arguments are passed on to the
    polys conversion code and can be used to specify for example generators.

    Examples
    ========

    >>> from sympy.polys.distributedmodules import sdm_from_vector
    >>> from sympy.abc import x, y, z
    >>> from sympy.polys import QQ, lex
    >>> sdm_from_vector([x**2+y**2, 2*z], lex, QQ)
    [((1, 0, 0, 1), 2/1), ((0, 2, 0, 0), 1/1), ((0, 0, 2, 0), 1/1)]
    """
    dics, gens = parallel_dict_from_expr(sympify(vec), **opts)
    dic = {}
    for i, d in enumerate(dics):
        for k, v in d.iteritems():
            dic[(i,) + k] = K.convert(v)
    return sdm_from_dict(dic, O)
Пример #7
0
def test__parallel_dict_from_expr_no_gens():
    assert parallel_dict_from_expr([x*y, Integer(3)]) == \
        ([{(1,1): Integer(1)}, {(0,0): Integer(3)}], (x,y))
    assert parallel_dict_from_expr([x*y, 2*z, Integer(3)]) == \
        ([{(1,1,0): Integer(1)}, {(0,0,1): Integer(2)}, {(0,0,0): Integer(3)}], (x,y,z))
Пример #8
0
def test_parallel_dict_from_expr():
    assert parallel_dict_from_expr([Eq(x, 1), Eq(
        x**2, 2)]) == ([{(0,): -Integer(1), (1,): Integer(1)},
                        {(0,): -Integer(2), (2,): Integer(1)}], (x,))
    raises(PolynomialError, lambda: parallel_dict_from_expr([A*B - B*A]))
Пример #9
0
def test__parallel_dict_from_expr_no_gens():
    assert parallel_dict_from_expr([x*y, Integer(3)]) == \
        ([{(1, 1): Integer(1)}, {(0, 0): Integer(3)}], (x, y))
    assert parallel_dict_from_expr([x*y, 2*z, Integer(3)]) == \
        ([{(1, 1, 0): Integer(
            1)}, {(0, 0, 1): Integer(2)}, {(0, 0, 0): Integer(3)}], (x, y, z))
Пример #10
0
def test__parallel_dict_from_expr_if_gens():
    assert parallel_dict_from_expr([x + 2*y + 3*z, Integer(7)], gens=(x,)) == \
        ([{(1,): Integer(1), (0,): 2*y + 3*z}, {(0,): Integer(7)}], (x,))
Пример #11
0
def test_parallel_dict_from_expr():
    parallel_dict_from_expr([Eq(x, 1), Eq(x**2, 2)]) == ([{(1,): Integer(1)}, {(2,): Integer(2)}], (x,))
    raises(PolynomialError, "parallel_dict_from_expr([A*B - B*A])")