
Calling Sequence


prem(a, b, x, 'm', 'q')
sprem(a, b, x, 'm', 'q')


Parameters


a, b



multivariate polynomials in the variable x

x



indeterminate

m, q



(optional) unevaluated names





Description


•

The function prem returns the pseudoremainder r such that

$ma=bq+r$

where $\mathrm{degree}\left(r\,x\right)<\mathrm{degree}\left(b\,x\right)$ and m (the multiplier) is:

$m={\mathrm{lcoeff}\left(b\,x\right)}^{\mathrm{degree}\left(a\,x\right)\mathrm{degree}\left(b\,x\right)+1}$
•

If the fourth argument is present it is assigned the value of the multiplier m defined above. If the fifth argument is present, it is assigned the pseudoquotient q defined above.

•

The function sprem has the same functionality as prem except that the multiplier m will be smaller, in general, equal to $\mathrm{lcoeff}\left(b\,x\right)$ to the power of the number of division steps performed rather than the degree difference. If both $a$ and $b$ are multivariate polynomials with integer coefficients, then m is the (unique) smallest possible multiplier with positive leading coefficient that makes the pseudodivision fraction free.

•

When sprem can be used it is preferred over prem because it is more efficient.



Examples


>

$a\u2254{x}^{4}+1\:$$b\u2254c{x}^{2}+1\:$

>

$r\u2254\mathrm{prem}\left(a\,b\,x\,'m'\,'q'\right)\:$

${c}{}\left({{c}}^{{2}}{+}{1}\right){,}{{c}}^{{3}}{,}{c}{}\left({c}{}{{x}}^{{2}}{}{1}\right)$
 (1) 
>

$r\u2254\mathrm{sprem}\left(a\,b\,x\,'m'\,'q'\right)\:$

${{c}}^{{2}}{+}{1}{,}{{c}}^{{2}}{,}{c}{}{{x}}^{{2}}{}{1}$
 (2) 
>

$f\u22544{x}^{2}+2x+1\:$$g\u22542x+1\:$

>

$r\u2254\mathrm{prem}\left(f\,g\,x\,'m'\,'q'\right)\:$

${4}{,}{4}{,}{8}{}{x}$
 (3) 
>

$r\u2254\mathrm{sprem}\left(f\,g\,x\,'m'\,'q'\right)\:$

${1}{,}{1}{,}{2}{}{x}$
 (4) 


