# quotientRemainder -- matrix quotient and remainder

## Synopsis

• Usage:
(q,r) = quotientRemainder(f,g)
• Inputs:
• f,
• g, or , with the same target as f
• Outputs:
• q, the quotient of f upon division by g
• r, the remainder of f upon division by g

## Description

The equation g*q+r == f will hold. The source of f should be a free module.
 i1 : R = ZZ[x,y] o1 = R o1 : PolynomialRing i2 : f = random(R^2,R^{2:-1}) o2 = | 8x+y 8x+3y | | 3x+7y 3x+7y | 2 2 o2 : Matrix R <--- R i3 : g = vars R ++ vars R o3 = | x y 0 0 | | 0 0 x y | 2 4 o3 : Matrix R <--- R i4 : (q,r) = quotientRemainder(f,g) o4 = ({1} | 8 8 |, 0) {1} | 1 3 | {1} | 3 3 | {1} | 7 7 | o4 : Sequence i5 : g*q+r == f o5 = true i6 : f = f + map(target f, source f, id_(R^2)) o6 = | 8x+y+1 8x+3y | | 3x+7y 3x+7y+1 | 2 2 o6 : Matrix R <--- R i7 : (q,r) = quotientRemainder(f,g) o7 = ({1} | 8 8 |, | 1 0 |) {1} | 1 3 | | 0 1 | {1} | 3 3 | {1} | 7 7 | o7 : Sequence i8 : g*q+r == f o8 = true