Changeset a138f8d in git
- Timestamp:
- Aug 9, 2004, 4:44:31 PM (19 years ago)
- Branches:
- (u'spielwiese', '0d6b7fcd9813a1ca1ed4220cfa2b104b97a0a003')
- Children:
- 44f44d4d66938c7ce97122658bd25e0434ecd70a
- Parents:
- 1b11d1e2918321346483d859f0c183f4403551b6
- Location:
- kernel
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/ring.cc
r1b11d1e ra138f8d 2 2 * Computer Algebra System SINGULAR * 3 3 ****************************************/ 4 /* $Id: ring.cc,v 1.1 2 2004-07-29 09:42:03Singular Exp $ */4 /* $Id: ring.cc,v 1.13 2004-08-09 14:44:31 Singular Exp $ */ 5 5 6 6 /* … … 3459 3459 } 3460 3460 3461 #include <ctype.h> 3462 3463 ring rOpp(ring src) 3464 { 3465 ring r=rCopy(src); 3466 // change vars v1..vN -> vN..v1 3467 int i; 3468 int i2=(rVar(r)-1)/2; 3469 for(int i=i2; i>=0; i--) 3470 { 3471 // exchange names 3472 char *p; 3473 int t; 3474 p=r->names[rVar(r)-i]; 3475 r->names[rVar(r)-i]=r->names[i]; 3476 r->names[i]=p; 3477 // exchange VarOffset 3478 t=r->VarOffset[i]; 3479 r->VarOffset[i]=r->VarOffset[rVar(r)-i]; 3480 r->VarOffset[rVar(r)-i]=t; 3481 } 3482 // change names: 3483 for (i=rVar(r)-1; i>=0; i--) 3484 { 3485 char *p=r->names[i]; 3486 if(isupper(*p)) *p=tolower(*p); 3487 else *p=toupper(*p); 3488 } 3489 // change ordering: listing 3490 // change ordering: compare 3491 for(i=0; r->typ[i].ord_typ!=ro_none; i++) 3492 { 3493 int t,tt; 3494 switch(r->typ[i].ord_typ) 3495 { 3496 case ro_dp: 3497 // 3498 t=r->typ[i].data.dp.start; 3499 r->typ[i].data.dp.start=rVar(r)+1-r->typ[i].data.dp.end; 3500 r->typ[i].data.dp.end=rVar(r)+1-t; 3501 break; 3502 case ro_wp: 3503 case ro_wp_neg: 3504 { 3505 t=r->typ[i].data.wp.start; 3506 r->typ[i].data.wp.start=rVar(r)+1-r->typ[i].data.wp.end; 3507 r->typ[i].data.wp.end=rVar(r)+1-t; 3508 // invert r->typ[i].data.wp.weights 3509 i2=(r->typ[i].data.wp.end+1-r->typ[i].data.wp.start)/2; 3510 int *w=r->typ[i].data.wp.weights; 3511 for(int j=0; j<=i2; j++) 3512 { 3513 t=w[j]; 3514 w[j]=w[r->typ[i].data.wp.end-r->typ[i].data.wp.start-j]; 3515 w[r->typ[i].data.wp.end-r->typ[i].data.wp.start-j]=t; 3516 } 3517 break; 3518 } 3519 //case ro_wp64: 3520 case ro_syzcomp: 3521 case ro_syz: 3522 WerrorS("not implemented in rOpp"); 3523 // should not happen 3524 break; 3525 3526 case ro_cp: 3527 t=r->typ[i].data.cp.start; 3528 r->typ[i].data.cp.start=rVar(r)+1-r->typ[i].data.cp.end; 3529 r->typ[i].data.cp.end=rVar(r)+1-t; 3530 break; 3531 case ro_none: 3532 default: 3533 WerrorS("unknown typ in rOpp"); 3534 break; 3535 } 3536 } 3537 // avoid printing changed stuff: 3538 r->order[0]=0; 3539 return r; 3540 } -
kernel/ring.h
r1b11d1e ra138f8d 7 7 * ABSTRACT - the interpreter related ring operations 8 8 */ 9 /* $Id: ring.h,v 1. 3 2004-04-28 16:38:04Singular Exp $ */9 /* $Id: ring.h,v 1.4 2004-08-09 14:44:30 Singular Exp $ */ 10 10 11 11 /* includes */ … … 28 28 void rKill(ring r); 29 29 ring rCopy(ring r); 30 ring rOpp(ring r); 30 31 31 32
Note: See TracChangeset
for help on using the changeset viewer.