Opened 14 years ago

Closed 13 years ago

## #168 closed bug (fixed)

# problems with command 'division'

Reported by: | seelisch | Owned by: | somebody |
---|---|---|---|

Priority: | minor | Milestone: | 3-1-1 |

Component: | dontKnow | Version: | 3-1-0 |

Keywords: | division | Cc: |

### Description

(This trac ticket is based on two emails from markus.lange.hegermann@… received Sept 23, 2009.) unexpected zero entries in U (see attachment); unexpected mismatching matrix dimensions (see attachment)

### Change History (2)

### comment:1 Changed 14 years ago by

### comment:2 Changed 13 years ago by

Resolution: | → fixed |
---|---|

Status: | new → closed |

2 problems: - size of result matrices in reduce and division: fixed

- shall U be filled with 1 in unused places ? yes (according to the manual)

**Note:**See TracTickets for help on using tickets.

example with polynomial entries: ========================================= ring RR = 0,(x,y,z),ds;

matrix M[5][6]=[0,x*y-x

^{3*y,0,x}4-x^{6,x}3*y-x^{5*y,x}3*z-x^{5*z, 0,y*z-x}2*y*z,0,x^{3*z-x}5*z,x^{2*y*z-x}4*y*z,x^{2*z}2-x^{4*z}2, 0,z-x^{2*z,x}2-x^{2*y+x*y}2-x^{4-x*y}3+x^{4*y,-x}2*y*z,x^{2*y*z-x*y}2*z+x*y^{3*z-x}4*y*z,-x*y*z^{2, 0,0,-x*y+x*y}2-y^{3+x}3*y+y^{4-x}3*y^{2,x}2*z+x*y^{2*z-x}4*z,x*y*z-x*y^{2*z+y}3*z-x^{3*y*z-y}4*z+x^{3*y}2*z,x*z^{2+y}2*z^{2-x}3*z^{2, 0,0,0,0,0,0 ]; }matrix N[5][5]=[0,x*y,0,x

^{4,x}3*y,x^{3*z, 0,y*z,0,x}3*z,x^{2*y*z,x}2*z^{2, -x*y,z,x}2-x^{2*y+x*y}2,-x^{2*y*z,x}2*y*z-x*y^{2*z,-x*y*z}2, y^{2,0,-x*y+x*y}2-y^{3,x}2*z+x*y^{2*z,x*y*z-x*y}2*z+y^{3*z,x*z}2+y^{2*z}2, 1-x^{2,0,-y}2+x^{2*y,-x}3*z,y^{2*z-x}2*y*z,-x^{2*z}2 ];list l=division(M,N);

matrix T=l[1]; matrix R=l[2]; matrix U=l[3];

U should be a diagonal matrix of units print(U);but the first column of M is zero print(M);=========================================== example with number entries: =========================================== ring RR = 0,(x),ds;

matrix M[2][2]=[1,0,0,0];

matrix NN[2][1]=[1,0]; module N=std(NN);

list l=division(M,N);

matrix T=l[1]; matrix R=l[2]; matrix U=l[3];

print("matrix(M)*U"); print(matrix(M)*U); print("matrix(N)*T+matrix(R)"); print(matrix(N)*T+matrix(R));

print("M"); print(M); print("N"); print(N); print("T"); print(T);

R should have the same dimension as M print("R"); print(R);here again a zero is given instead of a unit print("U"); print(U);matrix R2=reduce(M,N);

R2 should have the same dimension as M print("R2"); print(R2);