本文整理汇总了Python中sympy.polys.densebasic.dmp_strip函数的典型用法代码示例。如果您正苦于以下问题:Python dmp_strip函数的具体用法?Python dmp_strip怎么用?Python dmp_strip使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了dmp_strip函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Python代码示例。
示例1: test_dmp_strip
def test_dmp_strip():
assert dmp_strip([0,1,0], 0) == [1,0]
assert dmp_strip([[]], 1) == [[]]
assert dmp_strip([[], []], 1) == [[]]
assert dmp_strip([[], [], []], 1) == [[]]
assert dmp_strip([[[]]], 2) == [[[]]]
assert dmp_strip([[[]], [[]]], 2) == [[[]]]
assert dmp_strip([[[]], [[]], [[]]], 2) == [[[]]]
assert dmp_strip([[[1]]], 2) == [[[1]]]
assert dmp_strip([[[]], [[1]]], 2) == [[[1]]]
assert dmp_strip([[[]], [[1]], [[]]], 2) == [[[1]], [[]]]
开发者ID:TeddyBoomer,项目名称:wxgeometrie,代码行数:14,代码来源:test_densebasic.py
示例2: dmp_eval_tail
def dmp_eval_tail(f, A, u, K):
"""
Evaluate a polynomial at ``x_j = a_j, ...`` in ``K[X]``.
Examples
========
>>> from sympy.polys import ring, ZZ
>>> R, x,y = ring("x,y", ZZ)
>>> f = 2*x*y + 3*x + y + 2
>>> R.dmp_eval_tail(f, [2])
7*x + 4
>>> R.dmp_eval_tail(f, [2, 2])
18
"""
if not A:
return f
if dmp_zero_p(f, u):
return dmp_zero(u - len(A))
e = _rec_eval_tail(f, 0, A, u, K)
if u == len(A) - 1:
return e
else:
return dmp_strip(e, u - len(A))
开发者ID:asmeurer,项目名称:sympy,代码行数:30,代码来源:densetools.py
示例3: dmp_sub
def dmp_sub(f, g, u, K):
"""Subtract dense polynomials in `K[X]`. """
if not u:
return dup_sub(f, g, K)
df = dmp_degree(f, u)
if df < 0:
return dmp_neg(g, u, K)
dg = dmp_degree(g, u)
if dg < 0:
return f
v = u-1
if df == dg:
return dmp_strip([ dmp_sub(a, b, v, K) for a, b in zip(f, g) ], u)
else:
k = abs(df - dg)
if df > dg:
h, f = f[:k], f[k:]
else:
h, g = dmp_neg(g[:k], u, K), g[k:]
return h + [ dmp_sub(a, b, v, K) for a, b in zip(f, g) ]
开发者ID:Aang,项目名称:sympy,代码行数:28,代码来源:densearith.py
示例4: dmp_eval_tail
def dmp_eval_tail(f, A, u, K):
"""
Evaluate a polynomial at ``x_j = a_j, ...`` in ``K[X]``.
Examples
========
>>> from sympy.polys.domains import ZZ
>>> from sympy.polys.densetools import dmp_eval_tail
>>> f = ZZ.map([[2, 3], [1, 2]])
>>> dmp_eval_tail(f, (2, 2), 1, ZZ)
18
>>> dmp_eval_tail(f, (2,), 1, ZZ)
[7, 4]
"""
if not A:
return f
if dmp_zero_p(f, u):
return dmp_zero(u - len(A))
e = _rec_eval_tail(f, 0, A, u, K)
if u == len(A) - 1:
return e
else:
return dmp_strip(e, u - len(A))
开发者ID:jenshnielsen,项目名称:sympy,代码行数:30,代码来源:densetools.py
示例5: dmp_add_term
def dmp_add_term(f, c, i, u, K):
"""
Add ``c(x_2..x_u)*x_0**i`` to ``f`` in ``K[X]``.
**Examples**
>>> from sympy.polys.domains import ZZ
>>> from sympy.polys.densearith import dmp_add_term
>>> f = ZZ.map([[1, 0], [1]])
>>> c = ZZ.map([2])
>>> dmp_add_term(f, c, 2, 1, ZZ)
[[2], [1, 0], [1]]
"""
if not u:
return dup_add_term(f, c, i, K)
v = u-1
if dmp_zero_p(c, v):
return f
n = len(f)
m = n-i-1
if i == n-1:
return dmp_strip([dmp_add(f[0], c, v, K)] + f[1:], u)
else:
if i >= n:
return [c] + dmp_zeros(i-n, v, K) + f
else:
return f[:m] + [dmp_add(f[m], c, v, K)] + f[m+1:]
开发者ID:101man,项目名称:sympy,代码行数:34,代码来源:densearith.py
示例6: dmp_add_term
def dmp_add_term(f, c, i, u, K):
"""
Add ``c(x_2..x_u)*x_0**i`` to ``f`` in ``K[X]``.
Examples
========
>>> from sympy.polys import ring, ZZ
>>> R, x,y = ring("x,y", ZZ)
>>> R.dmp_add_term(x*y + 1, 2, 2)
2*x**2 + x*y + 1
"""
if not u:
return dup_add_term(f, c, i, K)
v = u - 1
if dmp_zero_p(c, v):
return f
n = len(f)
m = n - i - 1
if i == n - 1:
return dmp_strip([dmp_add(f[0], c, v, K)] + f[1:], u)
else:
if i >= n:
return [c] + dmp_zeros(i - n, v, K) + f
else:
return f[:m] + [dmp_add(f[m], c, v, K)] + f[m + 1:]
开发者ID:QuaBoo,项目名称:sympy,代码行数:32,代码来源:densearith.py
示例7: _rec_diff_in
def _rec_diff_in(g, m, v, i, j, K):
"""Recursive helper for :func:`dmp_diff_in`."""
if i == j:
return dmp_diff(g, m, v, K)
w, i = v - 1, i + 1
return dmp_strip([ _rec_diff_in(c, m, w, i, j, K) for c in g ], v)
开发者ID:asmeurer,项目名称:sympy,代码行数:8,代码来源:densetools.py
示例8: _rec_diff_eval
def _rec_diff_eval(g, m, a, v, i, j, K):
"""Recursive helper for :func:`dmp_diff_eval`."""
if i == j:
return dmp_eval(dmp_diff(g, m, v, K), a, v, K)
v, i = v - 1, i + 1
return dmp_strip([ _rec_diff_eval(c, m, a, v, i, j, K) for c in g ], v)
开发者ID:asmeurer,项目名称:sympy,代码行数:8,代码来源:densetools.py
示例9: _rec_eval_in
def _rec_eval_in(g, a, v, i, j, K):
"""Recursive helper for :func:`dmp_eval_in`."""
if i == j:
return dmp_eval(g, a, v, K)
v, i = v - 1, i + 1
return dmp_strip([ _rec_eval_in(c, a, v, i, j, K) for c in g ], v)
开发者ID:asmeurer,项目名称:sympy,代码行数:8,代码来源:densetools.py
示例10: dmp_sqr
def dmp_sqr(f, u, K):
"""
Square dense polynomials in ``K[X]``.
Examples
========
>>> from sympy.polys.domains import ZZ
>>> from sympy.polys.densearith import dmp_sqr
>>> f = ZZ.map([[1], [1, 0], [1, 0, 0]])
>>> dmp_sqr(f, 1, ZZ)
[[1], [2, 0], [3, 0, 0], [2, 0, 0, 0], [1, 0, 0, 0, 0]]
"""
if not u:
return dup_sqr(f, K)
df = dmp_degree(f, u)
if df < 0:
return f
h, v = [], u-1
for i in xrange(0, 2*df+1):
c = dmp_zero(v)
jmin = max(0, i-df)
jmax = min(i, df)
n = jmax - jmin + 1
jmax = jmin + n // 2 - 1
for j in xrange(jmin, jmax+1):
c = dmp_add(c, dmp_mul(f[j], f[i-j], v, K), v, K)
c = dmp_mul_ground(c, K(2), v, K)
if n & 1:
elem = dmp_sqr(f[jmax+1], v, K)
c = dmp_add(c, elem, v, K)
h.append(c)
return dmp_strip(h, u)
开发者ID:SwaathiRamesh,项目名称:sympy,代码行数:48,代码来源:densearith.py
示例11: dmp_trunc
def dmp_trunc(f, p, u, K):
"""
Reduce ``K[X]`` polynomial modulo a polynomial ``p`` in ``K[Y]``.
**Examples**
>>> from sympy.polys.domains import ZZ
>>> from sympy.polys.densetools import dmp_trunc
>>> f = ZZ.map([[3, 8], [5, 6], [2, 3]])
>>> g = ZZ.map([1, -1])
>>> dmp_trunc(f, g, 1, ZZ)
[[11], [11], [5]]
"""
return dmp_strip([ dmp_rem(c, p, u-1, K) for c in f ], u)
开发者ID:Jerryy,项目名称:sympy,代码行数:17,代码来源:densetools.py
示例12: dmp_sqr
def dmp_sqr(f, u, K):
"""
Square dense polynomials in ``K[X]``.
Examples
========
>>> from sympy.polys import ring, ZZ
>>> R, x,y = ring("x,y", ZZ)
>>> R.dmp_sqr(x**2 + x*y + y**2)
x**4 + 2*x**3*y + 3*x**2*y**2 + 2*x*y**3 + y**4
"""
if not u:
return dup_sqr(f, K)
df = dmp_degree(f, u)
if df < 0:
return f
h, v = [], u - 1
for i in xrange(0, 2*df + 1):
c = dmp_zero(v)
jmin = max(0, i - df)
jmax = min(i, df)
n = jmax - jmin + 1
jmax = jmin + n // 2 - 1
for j in xrange(jmin, jmax + 1):
c = dmp_add(c, dmp_mul(f[j], f[i - j], v, K), v, K)
c = dmp_mul_ground(c, K(2), v, K)
if n & 1:
elem = dmp_sqr(f[jmax + 1], v, K)
c = dmp_add(c, elem, v, K)
h.append(c)
return dmp_strip(h, u)
开发者ID:QuaBoo,项目名称:sympy,代码行数:46,代码来源:densearith.py
示例13: dmp_diff
def dmp_diff(f, m, u, K):
"""
``m``-th order derivative in ``x_0`` of a polynomial in ``K[X]``.
Examples
========
>>> from sympy.polys.domains import ZZ
>>> from sympy.polys.densetools import dmp_diff
>>> f = ZZ.map([[1, 2, 3], [2, 3, 1]])
>>> dmp_diff(f, 1, 1, ZZ)
[[1, 2, 3]]
>>> dmp_diff(f, 2, 1, ZZ)
[[]]
"""
if not u:
return dup_diff(f, m, K)
if m <= 0:
return f
n = dmp_degree(f, u)
if n < m:
return dmp_zero(u)
deriv, v = [], u - 1
if m == 1:
for coeff in f[:-m]:
deriv.append(dmp_mul_ground(coeff, K(n), v, K))
n -= 1
else:
for coeff in f[:-m]:
k = n
for i in xrange(n - 1, n - m, -1):
k *= i
deriv.append(dmp_mul_ground(coeff, K(k), v, K))
n -= 1
return dmp_strip(deriv, u)
开发者ID:jenshnielsen,项目名称:sympy,代码行数:45,代码来源:densetools.py
示例14: dmp_diff
def dmp_diff(f, m, u, K):
"""
``m``-th order derivative in ``x_0`` of a polynomial in ``K[X]``.
Examples
========
>>> from sympy.polys import ring, ZZ
>>> R, x,y = ring("x,y", ZZ)
>>> f = x*y**2 + 2*x*y + 3*x + 2*y**2 + 3*y + 1
>>> R.dmp_diff(f, 1)
y**2 + 2*y + 3
>>> R.dmp_diff(f, 2)
0
"""
if not u:
return dup_diff(f, m, K)
if m <= 0:
return f
n = dmp_degree(f, u)
if n < m:
return dmp_zero(u)
deriv, v = [], u - 1
if m == 1:
for coeff in f[:-m]:
deriv.append(dmp_mul_ground(coeff, K(n), v, K))
n -= 1
else:
for coeff in f[:-m]:
k = n
for i in range(n - 1, n - m, -1):
k *= i
deriv.append(dmp_mul_ground(coeff, K(k), v, K))
n -= 1
return dmp_strip(deriv, u)
开发者ID:asmeurer,项目名称:sympy,代码行数:45,代码来源:densetools.py
示例15: dmp_trunc
def dmp_trunc(f, p, u, K):
"""
Reduce a ``K[X]`` polynomial modulo a polynomial ``p`` in ``K[Y]``.
Examples
========
>>> from sympy.polys import ring, ZZ
>>> R, x,y = ring("x,y", ZZ)
>>> f = 3*x**2*y + 8*x**2 + 5*x*y + 6*x + 2*y + 3
>>> g = (y - 1).drop(x)
>>> R.dmp_trunc(f, g)
11*x**2 + 11*x + 5
"""
return dmp_strip([ dmp_rem(c, p, u - 1, K) for c in f ], u)
开发者ID:asmeurer,项目名称:sympy,代码行数:18,代码来源:densetools.py
示例16: dmp_mul
def dmp_mul(f, g, u, K):
"""
Multiply dense polynomials in ``K[X]``.
Examples
========
>>> from sympy.polys.domains import ZZ
>>> from sympy.polys.densearith import dmp_mul
>>> f = ZZ.map([[1, 0], [1]])
>>> g = ZZ.map([[1], []])
>>> dmp_mul(f, g, 1, ZZ)
[[1, 0], [1], []]
"""
if not u:
return dup_mul(f, g, K)
if f == g:
return dmp_sqr(f, u, K)
df = dmp_degree(f, u)
if df < 0:
return f
dg = dmp_degree(g, u)
if dg < 0:
return g
h, v = [], u-1
for i in xrange(0, df+dg+1):
coeff = dmp_zero(v)
for j in xrange(max(0, i-dg), min(df, i)+1):
coeff = dmp_add(coeff, dmp_mul(f[j], g[i-j], v, K), v, K)
h.append(coeff)
return dmp_strip(h, u)
开发者ID:SwaathiRamesh,项目名称:sympy,代码行数:44,代码来源:densearith.py
示例17: dmp_sub
def dmp_sub(f, g, u, K):
"""
Subtract dense polynomials in ``K[X]``.
Examples
========
>>> from sympy.polys.domains import ZZ
>>> from sympy.polys.densearith import dmp_sub
>>> f = ZZ.map([[1], [], [1, 0]])
>>> g = ZZ.map([[1, 0], [1], []])
>>> dmp_sub(f, g, 1, ZZ)
[[-1, 1], [-1], [1, 0]]
"""
if not u:
return dup_sub(f, g, K)
df = dmp_degree(f, u)
if df < 0:
return dmp_neg(g, u, K)
dg = dmp_degree(g, u)
if dg < 0:
return f
v = u-1
if df == dg:
return dmp_strip([ dmp_sub(a, b, v, K) for a, b in zip(f, g) ], u)
else:
k = abs(df - dg)
if df > dg:
h, f = f[:k], f[k:]
else:
h, g = dmp_neg(g[:k], u, K), g[k:]
return h + [ dmp_sub(a, b, v, K) for a, b in zip(f, g) ]
开发者ID:SwaathiRamesh,项目名称:sympy,代码行数:43,代码来源:densearith.py
示例18: dmp_sub_term
def dmp_sub_term(f, c, i, u, K):
"""Subtract `c(x_2..x_u)*x_0**i` from `f` in `K[X]`. """
if not u:
return dup_add_term(f, -c, i, K)
v = u-1
if dmp_zero_p(c, v):
return f
n = len(f)
m = n-i-1
if i == n-1:
return dmp_strip([dmp_sub(f[0], c, v, K)] + f[1:], u)
else:
if i >= n:
return [dmp_neg(c, v, K)] + dmp_zeros(i-n, v, K) + f
else:
return f[:m] + [dmp_sub(f[m], c, v, K)] + f[m+1:]
开发者ID:Aang,项目名称:sympy,代码行数:20,代码来源:densearith.py
示例19: dmp_mul
def dmp_mul(f, g, u, K):
"""
Multiply dense polynomials in ``K[X]``.
Examples
========
>>> from sympy.polys import ring, ZZ
>>> R, x,y = ring("x,y", ZZ)
>>> R.dmp_mul(x*y + 1, x)
x**2*y + x
"""
if not u:
return dup_mul(f, g, K)
if f == g:
return dmp_sqr(f, u, K)
df = dmp_degree(f, u)
if df < 0:
return f
dg = dmp_degree(g, u)
if dg < 0:
return g
h, v = [], u - 1
for i in xrange(0, df + dg + 1):
coeff = dmp_zero(v)
for j in xrange(max(0, i - dg), min(df, i) + 1):
coeff = dmp_add(coeff, dmp_mul(f[j], g[i - j], v, K), v, K)
h.append(coeff)
return dmp_strip(h, u)
开发者ID:QuaBoo,项目名称:sympy,代码行数:41,代码来源:densearith.py
示例20: dmp_ground_trunc
def dmp_ground_trunc(f, p, u, K):
"""
Reduce ``K[X]`` polynomial modulo a constant ``p`` in ``K``.
**Examples**
>>> from sympy.polys.domains import ZZ
>>> from sympy.polys.densetools import dmp_ground_trunc
>>> f = ZZ.map([[3, 8], [5, 6], [2, 3]])
>>> dmp_ground_trunc(f, ZZ(3), 1, ZZ)
[[-1], [-1, 0], [-1, 0]]
"""
if not u:
return dup_trunc(f, p, K)
v = u-1
return dmp_strip([ dmp_ground_trunc(c, p, v, K) for c in f ], u)
开发者ID:Jerryy,项目名称:sympy,代码行数:21,代码来源:densetools.py
注:本文中的sympy.polys.densebasic.dmp_strip函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论