本文整理汇总了Python中numpy.polynomial.polynomial.polymul方法的典型用法代码示例。如果您正苦于以下问题:Python polynomial.polymul方法的具体用法?Python polynomial.polymul怎么用?Python polynomial.polymul使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类numpy.polynomial.polynomial
的用法示例。
在下文中一共展示了polynomial.polymul方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: test_polydiv
# 需要导入模块: from numpy.polynomial import polynomial [as 别名]
# 或者: from numpy.polynomial.polynomial import polymul [as 别名]
def test_polydiv(self):
# check zero division
assert_raises(ZeroDivisionError, poly.polydiv, [1], [0])
# check scalar division
quo, rem = poly.polydiv([2], [2])
assert_equal((quo, rem), (1, 0))
quo, rem = poly.polydiv([2, 2], [2])
assert_equal((quo, rem), ((1, 1), 0))
# check rest.
for i in range(5):
for j in range(5):
msg = "At i=%d, j=%d" % (i, j)
ci = [0]*i + [1, 2]
cj = [0]*j + [1, 2]
tgt = poly.polyadd(ci, cj)
quo, rem = poly.polydiv(tgt, ci)
res = poly.polyadd(poly.polymul(quo, ci), rem)
assert_equal(res, tgt, err_msg=msg)
示例2: poly_mul
# 需要导入模块: from numpy.polynomial import polynomial [as 别名]
# 或者: from numpy.polynomial.polynomial import polymul [as 别名]
def poly_mul(op1, op2, poly_mod):
"""return multiplication of two polynomials with result % t(polynomial modulus)"""
# For non same size polynomials we have to shift the polynomials because numpy consider right
# side as lower order of polynomial and we consider right side as heigher order.
if len(op1) != len(op2):
if len(op1) > len(op2):
op2 = op2 + [0] * (len(op1) - len(op2))
else:
op1 = op1 + [0] * (len(op2) - len(op1))
poly_len = poly_mod
poly_mod = np.array([1] + [0] * (poly_len - 1) + [1])
result = (
poly.polydiv(
poly.polymul(np.array(op1, dtype="object"), np.array(op2, dtype="object")), poly_mod,
)[1]
).tolist()
if len(result) != poly_len:
result += [0] * (poly_len - len(result))
return [round(x) for x in result]
示例3: test_polydiv
# 需要导入模块: from numpy.polynomial import polynomial [as 别名]
# 或者: from numpy.polynomial.polynomial import polymul [as 别名]
def test_polydiv(self) :
# check zero division
assert_raises(ZeroDivisionError, poly.polydiv, [1], [0])
# check scalar division
quo, rem = poly.polydiv([2], [2])
assert_equal((quo, rem), (1, 0))
quo, rem = poly.polydiv([2, 2], [2])
assert_equal((quo, rem), ((1, 1), 0))
# check rest.
for i in range(5) :
for j in range(5) :
msg = "At i=%d, j=%d" % (i, j)
ci = [0]*i + [1, 2]
cj = [0]*j + [1, 2]
tgt = poly.polyadd(ci, cj)
quo, rem = poly.polydiv(tgt, ci)
res = poly.polyadd(poly.polymul(quo, ci), rem)
assert_equal(res, tgt, err_msg=msg)
示例4: test_polymul
# 需要导入模块: from numpy.polynomial import polynomial [as 别名]
# 或者: from numpy.polynomial.polynomial import polymul [as 别名]
def test_polymul(self):
for i in range(5):
for j in range(5):
msg = "At i=%d, j=%d" % (i, j)
tgt = np.zeros(i + j + 1)
tgt[i + j] += 1
res = poly.polymul([0]*i + [1], [0]*j + [1])
assert_equal(trim(res), trim(tgt), err_msg=msg)
示例5: test_polypow
# 需要导入模块: from numpy.polynomial import polynomial [as 别名]
# 或者: from numpy.polynomial.polynomial import polymul [as 别名]
def test_polypow(self):
for i in range(5):
for j in range(5):
msg = "At i=%d, j=%d" % (i, j)
c = np.arange(i + 1)
tgt = reduce(poly.polymul, [c]*j, np.array([1]))
res = poly.polypow(c, j)
assert_equal(trim(res), trim(tgt), err_msg=msg)
示例6: poly_mul_mod
# 需要导入模块: from numpy.polynomial import polynomial [as 别名]
# 或者: from numpy.polynomial.polynomial import polymul [as 别名]
def poly_mul_mod(op1, op2, coeff_mod, poly_mod):
"""Multiply two polynomials and modulo every coefficient with coeff_mod.
Args:
op1 (list): First Polynomail (Multiplicand).
op2 (list): Second Polynomail (Multiplier).
Returns:
A list with polynomial coefficients.
"""
# For non same size polynomials we have to shift the polynomials because numpy consider right
# side as lower order of polynomial and we consider right side as heigher order.
if len(op1) != poly_mod:
op1 += [0] * (poly_mod - len(op1))
if len(op2) != poly_mod:
op2 += [0] * (poly_mod - len(op2))
poly_len = poly_mod
poly_mod = np.array([1] + [0] * (poly_len - 1) + [1])
result = (
poly.polydiv(
poly.polymul(np.array(op1, dtype="object"), np.array(op2, dtype="object")) % coeff_mod,
poly_mod,
)[1]
% coeff_mod
).tolist()
if len(result) != poly_len:
result += [0] * (poly_len - len(result))
return [round(x) for x in result]
示例7: test_polymul
# 需要导入模块: from numpy.polynomial import polynomial [as 别名]
# 或者: from numpy.polynomial.polynomial import polymul [as 别名]
def test_polymul(self) :
for i in range(5) :
for j in range(5) :
msg = "At i=%d, j=%d" % (i, j)
tgt = np.zeros(i + j + 1)
tgt[i + j] += 1
res = poly.polymul([0]*i + [1], [0]*j + [1])
assert_equal(trim(res), trim(tgt), err_msg=msg)