| 1563 | } |
| 1564 | |
| 1565 | matrix id_Module2formatedMatrix(ideal mod,int rows, int cols, const ring R) |
| 1566 | { |
| 1567 | matrix result = mpNew(rows,cols); |
| 1568 | int i,cp,r=id_RankFreeModule(mod,R),c=IDELEMS(mod); |
| 1569 | poly p,h; |
| 1570 | |
| 1571 | if (r>rows) r = rows; |
| 1572 | if (c>cols) c = cols; |
| 1573 | for(i=0;i<c;i++) |
| 1574 | { |
| 1575 | p=pReverse(mod->m[i]); |
| 1576 | mod->m[i]=NULL; |
| 1577 | while (p!=NULL) |
| 1578 | { |
| 1579 | h=p; |
| 1580 | pIter(p); |
| 1581 | pNext(h)=NULL; |
| 1582 | cp = p_GetComp(h,R); |
| 1583 | if (cp<=r) |
| 1584 | { |
| 1585 | p_SetComp(h,0,R); |
| 1586 | p_SetmComp(h,R); |
| 1587 | MATELEM0(result,cp-1,i) = p_Add_q(MATELEM0(result,cp-1,i),h,R); |
| 1588 | } |
| 1589 | else |
| 1590 | p_Delete(&h,R); |
| 1591 | } |
| 1592 | } |
| 1593 | id_Delete(&mod,R); |
| 1594 | return result; |
| 1595 | } |
| 1596 | |
| 1597 | ideal id_ResizeModule(ideal mod,int rows, int cols, const ring R) |
| 1598 | { |
no test coverage detected