コード例 #1
0
ファイル: test_euclidtools.py プロジェクト: addisonc/sympy
def test_dmp_cancel():
    f = ZZ.map([[2], [0], [-2]])
    g = ZZ.map([[1], [-2], [1]])

    p = [[ZZ(2)], [ZZ(2)]]
    q = [[ZZ(1)], [-ZZ(1)]]

    assert dmp_cancel(f, g, 1, ZZ) == (p, q)
    assert dmp_cancel(f, g, 1, ZZ, multout=False) == (ZZ(1), ZZ(1), p, q)
コード例 #2
0
ファイル: polyclasses.py プロジェクト: fxkr/sympy
    def cancel(f, g, include=True):
        """Cancel common factors in a rational function ``f/g``. """
        lev, dom, per, F, G = f.unify(g)

        if include:
                    F, G = dmp_cancel(F, G, lev, dom, include=True)
        else:
            cF, cG, F, G = dmp_cancel(F, G, lev, dom, include=False)

        F, G = per(F), per(G)

        if include:
            return F, G
        else:
            return cF, cG, F, G
コード例 #3
0
ファイル: polyclasses.py プロジェクト: fxkr/sympy
    def __init__(self, rep, dom, lev=None):
        num, den, lev = self._parse(rep, dom, lev)
        num, den = dmp_cancel(num, den, lev, dom)

        self.num = num
        self.den = den
        self.lev = lev
        self.dom = dom
コード例 #4
0
ファイル: polyclasses.py プロジェクト: fxkr/sympy
            def per(num, den, cancel=True, kill=False):
                if kill:
                    if not lev:
                        return num/den
                    else:
                        lev = lev - 1

                if cancel:
                    num, den = dmp_cancel(num, den, lev, dom)

                return f.__class__.new((num, den), dom, lev)
コード例 #5
0
ファイル: polyclasses.py プロジェクト: fxkr/sympy
    def per(f, num, den, cancel=True, kill=False):
        """Create a DMF out of the given representation. """
        lev, dom = f.lev, f.dom

        if kill:
            if not lev:
                return num/den
            else:
                lev -= 1

        if cancel:
            num, den = dmp_cancel(num, den, lev, dom)

        return f.__class__.new((num, den), dom, lev)
コード例 #6
0
ファイル: test_euclidtools.py プロジェクト: dyao-vu/meta-core
def test_dmp_cancel():
    f = ZZ.map([[2], [0], [-2]])
    g = ZZ.map([[1], [-2], [1]])

    p = [[ZZ(2)], [ZZ(2)]]
    q = [[ZZ(1)], [-ZZ(1)]]

    assert dmp_cancel(f, g, 1, ZZ) == (p, q)
    assert dmp_cancel(f, g, 1, ZZ, include=False) == (ZZ(1), ZZ(1), p, q)

    assert dmp_cancel([[]], [[]], 1, ZZ) == ([[]], [[]])
    assert dmp_cancel([[]], [[]], 1, ZZ, include=False) == (ZZ(1), ZZ(1), [[]], [[]])

    assert dmp_cancel([[ZZ(1), ZZ(0)]], [[]], 1, ZZ) == ([[ZZ(1)]], [[]])
    assert dmp_cancel([[ZZ(1), ZZ(0)]], [[]], 1, ZZ, include=False) == (ZZ(1), ZZ(1), [[ZZ(1)]], [[]])

    assert dmp_cancel([[]], [[ZZ(1), ZZ(0)]], 1, ZZ) == ([[]], [[ZZ(1)]])
    assert dmp_cancel([[]], [[ZZ(1), ZZ(0)]], 1, ZZ, include=False) == (ZZ(1), ZZ(1), [[]], [[ZZ(1)]])
コード例 #7
0
    def per(f, num, den, cancel=True, kill=False, ring=None):
        """Create a DMF out of the given representation. """
        lev, dom = f.lev, f.dom

        if kill:
            if not lev:
                return num/den
            else:
                lev -= 1

        if cancel:
            num, den = dmp_cancel(num, den, lev, dom)

        if ring is None:
            ring = f.ring

        return f.__class__.new((num, den), dom, lev, ring=ring)
コード例 #8
0
ファイル: test_euclidtools.py プロジェクト: vperic/sympy
def test_dmp_cancel():
    f = ZZ.map([[2], [0], [-2]])
    g = ZZ.map([[1], [-2], [1]])

    p = [[ZZ(2)], [ZZ(2)]]
    q = [[ZZ(1)], [-ZZ(1)]]

    assert dmp_cancel(f, g, 1, ZZ) == (p, q)
    assert dmp_cancel(f, g, 1, ZZ, include=False) == (ZZ(1), ZZ(1), p, q)

    assert dmp_cancel([[]], [[]], 1, ZZ) == ([[]], [[]])
    assert dmp_cancel([[]], [[]], 1, ZZ,
                      include=False) == (ZZ(1), ZZ(1), [[]], [[]])

    assert dmp_cancel([[ZZ(1), ZZ(0)]], [[]], 1, ZZ) == ([[ZZ(1)]], [[]])
    assert dmp_cancel([[ZZ(1), ZZ(0)]], [[]], 1, ZZ,
                      include=False) == (ZZ(1), ZZ(1), [[ZZ(1)]], [[]])

    assert dmp_cancel([[]], [[ZZ(1), ZZ(0)]], 1, ZZ) == ([[]], [[ZZ(1)]])
    assert dmp_cancel([[]], [[ZZ(1), ZZ(0)]], 1, ZZ,
                      include=False) == (ZZ(1), ZZ(1), [[]], [[ZZ(1)]])