Changeset b8ad3a in git for libpolys/coeffs/flintcf_Qrat.cc
- Timestamp:
- Jan 4, 2024, 4:39:13 PM (4 months ago)
- Branches:
- (u'spielwiese', '98550b669234b32be762076c32b3be2c35188ac4')
- Children:
- 4b0877fd8b06e461f8c2450538a142d631260806
- Parents:
- dff47b7996ab7bb15ce9bd372c7fc531a02308f7
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
libpolys/coeffs/flintcf_Qrat.cc
rdff47b rb8ad3a 70 70 } 71 71 72 static void fmpq_rat_canonicalise(fmpq_rat_ptr a, const coeffs r)72 static void fmpq_rat_canonicalise(fmpq_rat_ptr a, const coeffs /*r*/) 73 73 { 74 74 fmpz_t n, d; … … 99 99 if (c->type == n) 100 100 { 101 const fmpq_ctx_ptr ctx = (fmpq_ctx_ptr) ((data_ptr)c->data)->ctx;102 101 const QaInfo *par=(QaInfo*)parameter; 103 102 if (par->N != c->iNumberOfParameters) return FALSE; … … 630 629 if (fmpq_mpoly_is_fmpq(x->den, ctx) && fmpq_mpoly_is_fmpq(x->num, ctx)) 631 630 { 632 long nl = 0;633 631 fmpq_t r; 634 632 fmpq_init(r); … … 1184 1182 } 1185 1183 1186 static number ExtGcd(number a, number b, number *s, number *t, const coeffs c)1184 static number ExtGcd(number /*a*/, number /*b*/, number* /*s*/, number* /*t*/, const coeffs /*c*/) 1187 1185 { 1188 1186 WerrorS("not a Euclidean ring: ExtGcd"); … … 1190 1188 } 1191 1189 1192 static number Lcm(number a, number b, const coeffs c)1190 static number Lcm(number /*a*/, number /*b*/, const coeffs /*c*/) 1193 1191 { 1194 1192 WerrorS("not yet: Lcm"); … … 1196 1194 } 1197 1195 1198 static number Q2Frac(number a, const coeffs src, const coeffs dst)1196 static number Q2Frac(number a, const coeffs /*src*/, const coeffs dst) 1199 1197 { 1200 1198 number res; … … 1222 1220 } 1223 1221 1224 static number Z2Frac(number a, const coeffs src, const coeffs dst)1222 static number Z2Frac(number a, const coeffs /*src*/, const coeffs dst) 1225 1223 { 1226 1224 return InitMPZ((mpz_ptr)a,dst); … … 1508 1506 { 1509 1507 const fmpq_rat_ptr x = (fmpq_rat_ptr) c; 1510 if ((x!=NULL) 1511 && ((x->num==NULL)||(x->den==NULL))) 1512 { 1513 dReportError("NULL num., or den.\n"); 1514 return FALSE; 1515 } 1516 const fmpq_ctx_ptr ctx = (fmpq_ctx_ptr) ((data_ptr)cf->data)->ctx; 1517 fmpq_mpoly_assert_canonical(x->num,ctx); 1518 fmpq_mpoly_assert_canonical(x->den,ctx); 1519 if (fmpq_mpoly_is_zero(x->den, ctx)) 1520 { 1521 dReportError("den.==0\n"); 1522 return FALSE; 1523 } 1524 fmpz_t n, d; 1525 fmpz_init(n); 1526 fmpz_init(d); 1527 fmpz_gcd(n, fmpq_numref(x->num->content), fmpq_numref(x->den->content)); 1528 fmpz_lcm(d, fmpq_denref(x->num->content), fmpq_denref(x->den->content)); 1529 if (!fmpz_is_one(d)) 1530 { 1531 dReportError("canon needed (1)"); 1532 return TRUE; 1533 } 1534 if (!fmpz_is_one(n)) 1535 { 1536 dReportError("canon needed (2)"); 1537 return TRUE; 1538 } 1539 fmpz_clear(n); 1540 fmpz_clear(d); 1541 #ifdef QA_DEBUG 1542 poly pp=convFlintMPSingP(x->num,ctx,((data_ptr)cf->data)->C->extRing); 1543 fraction f=(fraction)x->p; 1544 if (f==NULL) 1545 { 1546 dReportError("x->p==NULL\n"); 1547 return FALSE; 1548 } 1549 else 1550 { 1551 if (!p_EqualPolys(pp,NUM(f),((data_ptr)cf->data)->C->extRing)) 1552 { 1553 p_Write(pp,((data_ptr)cf->data)->C->extRing); 1554 PrintS("num, p="); 1555 p_Write(NUM(f),((data_ptr)cf->data)->C->extRing); 1556 dReportError("num wrong.\n"); 1508 if (x!=NULL) 1509 { 1510 const fmpq_ctx_ptr ctx = (fmpq_ctx_ptr) ((data_ptr)cf->data)->ctx; 1511 fmpq_mpoly_assert_canonical(x->num,ctx); 1512 fmpq_mpoly_assert_canonical(x->den,ctx); 1513 if (fmpq_mpoly_is_zero(x->den, ctx)) 1514 { 1515 dReportError("den.==0\n"); 1557 1516 return FALSE; 1558 1517 } 1559 if (DEN(f)!=NULL) 1560 { 1561 pp=convFlintMPSingP(x->den,ctx,((data_ptr)cf->data)->C->extRing); 1562 if (!p_EqualPolys(pp,DEN(f),((data_ptr)cf->data)->C->extRing)) 1518 fmpz_t n, d; 1519 fmpz_init(n); 1520 fmpz_init(d); 1521 fmpz_gcd(n, fmpq_numref(x->num->content), fmpq_numref(x->den->content)); 1522 fmpz_lcm(d, fmpq_denref(x->num->content), fmpq_denref(x->den->content)); 1523 if (!fmpz_is_one(d)) 1524 { 1525 dReportError("canon needed (1)"); 1526 return TRUE; 1527 } 1528 if (!fmpz_is_one(n)) 1529 { 1530 dReportError("canon needed (2)"); 1531 return TRUE; 1532 } 1533 fmpz_clear(n); 1534 fmpz_clear(d); 1535 #ifdef QA_DEBUG 1536 poly pp=convFlintMPSingP(x->num,ctx,((data_ptr)cf->data)->C->extRing); 1537 fraction f=(fraction)x->p; 1538 if (f==NULL) 1539 { 1540 dReportError("x->p==NULL\n"); 1541 return FALSE; 1542 } 1543 else 1544 { 1545 if (!p_EqualPolys(pp,NUM(f),((data_ptr)cf->data)->C->extRing)) 1563 1546 { 1564 1547 p_Write(pp,((data_ptr)cf->data)->C->extRing); 1565 PrintS(" den, p=");1548 PrintS("num, p="); 1566 1549 p_Write(NUM(f),((data_ptr)cf->data)->C->extRing); 1567 dReportError(" denwrong.\n");1550 dReportError("num wrong.\n"); 1568 1551 return FALSE; 1569 1552 } 1570 } 1571 } 1572 #endif 1553 if (DEN(f)!=NULL) 1554 { 1555 pp=convFlintMPSingP(x->den,ctx,((data_ptr)cf->data)->C->extRing); 1556 if (!p_EqualPolys(pp,DEN(f),((data_ptr)cf->data)->C->extRing)) 1557 { 1558 p_Write(pp,((data_ptr)cf->data)->C->extRing); 1559 PrintS("den, p="); 1560 p_Write(NUM(f),((data_ptr)cf->data)->C->extRing); 1561 dReportError("den wrong.\n"); 1562 return FALSE; 1563 } 1564 } 1565 } 1566 #endif 1567 } 1573 1568 return TRUE; 1574 1569 }
Note: See TracChangeset
for help on using the changeset viewer.