Changeset 3216ec in git
- Timestamp:
- Aug 15, 2012, 1:44:30 PM (12 years ago)
- Branches:
- (u'spielwiese', 'fe61d9c35bf7c61f2b6cbf1b56e25e2f08d536cc')
- Children:
- d8b0997ff6f148513d95e2f2a5a075c7386c7168
- Parents:
- a8ead8e63f3539f8915726efa18791dcc052733a
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
Singular/iparith.cc
ra8ead8 r3216ec 1974 1974 inerror=3; 1975 1975 return TRUE; 1976 } 1977 static BOOLEAN jjEXTGCD_BI(leftv res, leftv u, leftv v) 1978 { 1979 number uu=(number)u->Data();number vv=(number)v->Data(); 1980 lists L=(lists)omAllocBin(slists_bin); 1981 number a,b; 1982 number p0=n_ExtGcd(uu,vv,&a,&b,coeffs_BIGINT); 1983 L->Init(3); 1984 L->m[0].rtyp=BIGINT_CMD; L->m[0].data=(void *)p0; 1985 L->m[1].rtyp=BIGINT_CMD; L->m[1].data=(void *)a; 1986 L->m[2].rtyp=BIGINT_CMD; L->m[2].data=(void *)b; 1987 res->rtyp=LIST_CMD; 1988 res->data=(char *)L; 1989 return FALSE; 1976 1990 } 1977 1991 static BOOLEAN jjEXTGCD_I(leftv res, leftv u, leftv v) -
Singular/table.h
ra8ead8 r3216ec 526 526 ,{D(jjEXPORTTO), EXPORTTO_CMD, NONE, PACKAGE_CMD, IDHDL, ALLOW_PLURAL |ALLOW_RING} 527 527 ,{D(jjEXTGCD_I), EXTGCD_CMD, LIST_CMD, INT_CMD, INT_CMD, ALLOW_PLURAL |ALLOW_RING} 528 ,{D(jjEXTGCD_BI), EXTGCD_CMD, LIST_CMD, BIGINT_CMD, BIGINT_CMD, ALLOW_PLURAL |ALLOW_RING} 528 529 #ifdef HAVE_FACTORY 529 530 ,{D(jjEXTGCD_P), EXTGCD_CMD, LIST_CMD, POLY_CMD, POLY_CMD, NO_PLURAL |NO_RING} -
libpolys/coeffs/coeffs.h
ra8ead8 r3216ec 143 143 BOOLEAN (*cfIsUnit)(number a,const coeffs r); 144 144 number (*cfGetUnit)(number a,const coeffs r); 145 number (*cfExtGcd)(number a, number b, number *s, number *t,const coeffs r);146 145 #endif 147 146 … … 181 180 number (*cfGetNumerator)(number &n, const coeffs r); 182 181 number (*cfGcd)(number a, number b, const coeffs r); 182 number (*cfExtGcd)(number a, number b, number *s, number *t,const coeffs r); 183 183 number (*cfLcm)(number a, number b, const coeffs r); 184 184 void (*cfDelete)(number * a, const coeffs r); -
libpolys/coeffs/longrat.cc
ra8ead8 r3216ec 2605 2605 } 2606 2606 2607 number nlExtGcd(number a, number b, number *s, number *t, const coeffs) 2608 { 2609 mpz_t aa,bb; 2610 *s=ALLOC_RNUMBER(); 2611 mpz_init((*s)->z); (*s)->s=3; 2612 (*t)=ALLOC_RNUMBER(); 2613 mpz_init((*t)->z); (*t)->s=3; 2614 number g=ALLOC_RNUMBER(); 2615 mpz_init(g->z); g->s=3; 2616 if (SR_HDL(a) & SR_INT) 2617 { 2618 mpz_init_set_si(aa,SR_TO_INT(a)); 2619 } 2620 else 2621 { 2622 mpz_init_set(aa,a->z); 2623 } 2624 if (SR_HDL(b) & SR_INT) 2625 { 2626 mpz_init_set_si(bb,SR_TO_INT(b)); 2627 } 2628 else 2629 { 2630 mpz_init_set(bb,b->z); 2631 } 2632 mpz_gcdext(g->z,(*s)->z,(*t)->z,aa,bb); 2633 mpz_clear(aa); 2634 mpz_clear(bb); 2635 (*s)=nlShort3((*s)); 2636 (*t)=nlShort3((*t)); 2637 g=nlShort3(g); 2638 return g; 2639 } 2640 2607 2641 void nlCoeffWrite (const coeffs, BOOLEAN /*details*/) 2608 2642 { … … 2816 2850 //r->cfIsUnit = NULL; // only for ring stuff 2817 2851 //r->cfGetUnit = NULL; // only for ring stuff 2818 //r->cfExtGcd = NULL; // only for ring stuff2819 2852 //r->cfDivBy = NULL; // only for ring stuff 2820 2853 #endif … … 2837 2870 r->cfGetNumerator = nlGetNumerator; 2838 2871 r->cfGcd = nlGcd; 2872 r->cfExtGcd = nlExtGcd; // only for ring stuff and Z 2839 2873 r->cfLcm = nlLcm; 2840 2874 r->cfDelete= nlDelete; -
libpolys/coeffs/longrat.h
ra8ead8 r3216ec 65 65 66 66 number nlGcd(number a, number b, const coeffs r); 67 number nlExtGcd(number a, number b, number *s, number *t, const coeffs); 67 68 number nlLcm(number a, number b, const coeffs r); /*special routine !*/ 68 69 BOOLEAN nlGreater(number a, number b, const coeffs r);
Note: See TracChangeset
for help on using the changeset viewer.