Skip to content

Commit ece1ce5

Browse files
committed
fix: rCompose/NegOffset for ordering am/
1 parent f93c5e9 commit ece1ce5

File tree

2 files changed

+21
-1
lines changed

2 files changed

+21
-1
lines changed

Singular/ipshell.cc

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2318,6 +2318,19 @@ ring rCompose(const lists L)
23182318
R->wvhdl[j][i]=(*iv)[i];
23192319
}
23202320
break;
2321+
case ringorder_am:
2322+
R->wvhdl[j] =( int *)omAlloc((iv->length()+1)*sizeof(int));
2323+
for (i=0; i<iv_len;i++)
2324+
{
2325+
R->wvhdl[j][i]=(*iv)[i];
2326+
}
2327+
R->wvhdl[j][i]=iv->length() - iv_len;
2328+
//printf("ivlen:%d,iv->len:%d,mod:%d\n",iv_len,iv->length(),R->wvhdl[j][i]);
2329+
for (; i<iv->length(); i++)
2330+
{
2331+
R->wvhdl[j][i+1]=(*iv)[i];
2332+
}
2333+
break;
23212334
case ringorder_M:
23222335
R->wvhdl[j] =( int *)omAlloc((iv->length())*sizeof(int));
23232336
for (i=0; i<iv->length();i++) R->wvhdl[j][i]=(*iv)[i];

libpolys/polys/monomials/ring.cc

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3346,7 +3346,9 @@ static void rSetNegWeight(ring r)
33463346
l=0;
33473347
for(i=0;i<r->OrdSize;i++)
33483348
{
3349-
if(r->typ[i].ord_typ==ro_wp_neg) l++;
3349+
if((r->typ[i].ord_typ==ro_wp_neg)
3350+
||(r->typ[i].ord_typ==ro_am))
3351+
l++;
33503352
}
33513353
if (l>0)
33523354
{
@@ -3360,6 +3362,11 @@ static void rSetNegWeight(ring r)
33603362
r->NegWeightL_Offset[l]=r->typ[i].data.wp.place;
33613363
l++;
33623364
}
3365+
else if(r->typ[i].ord_typ==ro_am)
3366+
{
3367+
r->NegWeightL_Offset[l]=r->typ[i].data.am.place;
3368+
l++;
3369+
}
33633370
}
33643371
return;
33653372
}

0 commit comments

Comments
 (0)