Changeset 86fcc0 in git for Singular/iparith.cc
- Timestamp:
- Nov 4, 2009, 6:59:51 PM (14 years ago)
- Branches:
- (u'spielwiese', 'd0474371d8c5d8068ab70bfb42719c97936b18a6')
- Children:
- 3580b7115f22b137b32322afb07cb8febdf9e80c
- Parents:
- c84406c7f927d46cedeb1e94024cd843f319713f
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
Singular/iparith.cc
rc84406 r86fcc0 1798 1798 { 1799 1799 lists c=(lists)u->CopyD(); // list of ideal 1800 intvec* p=(intvec*)v->Data(); 1801 int rl=p->length(); 1800 lists pl=NULL; 1801 intvec *p=NULL; 1802 if (v->Typ()==LIST_CMD) pl=(lists)v->Data(); 1803 else p=(intvec*)v->Data(); 1804 int rl=c->nr+1; 1802 1805 poly r=NULL,h; 1803 1806 ideal result; 1804 1807 ideal *x=(ideal *)omAlloc(rl*sizeof(ideal)); 1805 1808 int i; 1809 int return_type=c->m[0].Typ(); 1810 if ((return_type!=IDEAL_CMD) 1811 && (return_type!=MODUL_CMD) 1812 && (return_type!=MATRIX_CMD)) 1813 { 1814 WerrorS("ideal/module/matrix expected"); 1815 omFree(x); // delete c 1816 return TRUE; 1817 } 1806 1818 for(i=rl-1;i>=0;i--) 1807 1819 { 1808 if (c->m[i].Typ()!= IDEAL_CMD)1809 { 1810 Werror(" ideal expected at pos %d",i+1);1820 if (c->m[i].Typ()!=return_type) 1821 { 1822 Werror("%s expected at pos %d",Tok2Cmdname(return_type),i+1); 1811 1823 omFree(x); // delete c 1812 1824 return TRUE; … … 1815 1827 } 1816 1828 number *q=(number *)omAlloc(rl*sizeof(number)); 1817 for(i=rl-1;i>=0;i--) 1818 { 1819 q[i]=nlInit((*p)[i], currRing); 1829 if (p!=NULL) 1830 { 1831 for(i=rl-1;i>=0;i--) 1832 { 1833 q[i]=nlInit((*p)[i], currRing); 1834 } 1835 } 1836 else 1837 { 1838 for(i=rl-1;i>=0;i--) 1839 { 1840 if (pl->m[i].Typ()!=BIGINT_CMD) 1841 { 1842 Werror("bigint expected at pos %d",i+1); 1843 omFree(x); // delete c 1844 omFree(q); // delete pl 1845 return TRUE; 1846 } 1847 q[i]=(number)(pl->m[i].Data()); 1848 } 1820 1849 } 1821 1850 result=idChineseRemainder(x,q,rl); 1822 for(i=rl-1;i>=0;i--) 1823 { 1824 nlDelete(&(q[i]),currRing); 1851 if (p!=NULL) 1852 { 1853 for(i=rl-1;i>=0;i--) 1854 { 1855 nlDelete(&(q[i]),currRing); 1856 } 1825 1857 } 1826 1858 omFree(q); 1827 1859 res->data=(char *)result; 1860 res->rtyp=return_type; 1828 1861 return FALSE; 1829 1862 } … … 3398 3431 ,{jjCHINREM_BI,CHINREM_CMD, BIGINT_CMD, INTVEC_CMD, INTVEC_CMD, ALLOW_PLURAL |ALLOW_RING} 3399 3432 //,{jjCHINREM_P, CHINREM_CMD, POLY_CMD, LIST_CMD, INTVEC_CMD, ALLOW_PLURAL} 3400 ,{jjCHINREM_ID,CHINREM_CMD, IDEAL_CMD, LIST_CMD, INTVEC_CMD, ALLOW_PLURAL |NO_RING} 3433 ,{jjCHINREM_ID,CHINREM_CMD, IDEAL_CMD/*set by p*/,LIST_CMD,INTVEC_CMD, ALLOW_PLURAL |NO_RING} 3434 ,{jjCHINREM_ID,CHINREM_CMD, IDEAL_CMD/*set by p*/,LIST_CMD,LIST_CMD, ALLOW_PLURAL |NO_RING} 3401 3435 ,{jjCOEF, COEF_CMD, MATRIX_CMD, POLY_CMD, POLY_CMD, ALLOW_PLURAL |ALLOW_RING} 3402 3436 ,{jjCOEFFS_Id, COEFFS_CMD, MATRIX_CMD, IDEAL_CMD, POLY_CMD, ALLOW_PLURAL |ALLOW_RING}
Note: See TracChangeset
for help on using the changeset viewer.