Changeset 3625cb in git

Ignore:
Timestamp:
Nov 15, 2013, 11:51:17 AM (9 years ago)
Branches:
(u'jengelh-datetime', 'ceac47cbc86fe4a15902392bdbb9bd2ae0ea02c6')(u'spielwiese', 'ad2543eab51733612ba7d118afc77edca719600e')
Children:
5313c099cf9db0abd520c21bc971ae22d8b655fd
Parents:
6416f83bfe7f396c6c5f1abec8092f44815d0a8f
git-author:
Hans Schoenemann <hannes@mathematik.uni-kl.de>2013-11-15 11:51:17+01:00
git-committer:
Hans Schoenemann <hannes@mathematik.uni-kl.de>2013-11-15 14:27:17+01:00
Message:
`pfister: modstd over algebraic extension fields`
File:
1 edited

Unmodified
Added
Removed
• Singular/LIB/modstd.lib

 r6416f83 } static proc algeModStd(ideal i,list #) { //reduces modStd over algebraic extensions to the one over a polynomial ring list L=#; def R=basering; int n=nvars(R); list rl=ringlist(R); poly p=minpoly; rl[2][n+1]=rl[1][2][1]; rl[1]=rl[1][1]; rl[3][size(rl[3])+1]=rl[3][size(rl[3])]; rl[3][size(rl[3])-1]=list("dp",1); def S=ring(rl); setring S; poly p=imap(R,p); ideal i=imap(R,i); i=i,p; ideal j=modStd(i,L); if(j[1]==p) { j[1]=0; } j=simplify(j,2); setring R; ideal j=imap(S,j); return(j); } ////////////////////////////// main procedures ///////////////////////////////// def R0 = basering; list rl = ringlist(R0); if((npars(R0) > 0) || (rl[1] > 0)) { int algebraic; if(size(#)>0) { if(#[1]<=0) { algebraic=1; #[1]=-#[1]; if(#[1]==0){list LK;#=LK;} } } if((npars(R0) > 0) || (rl[1][1] > 0)) { if(npars(R0)==1) { if(minpoly!=0) { list LM=#; if(size(LM)==0){LM[1]=0;} LM[1]=-LM[1]; return(algeModStd(I,LM)); } } ERROR("Characteristic of basering should be zero, basering should have no parameters."); } } if(algebraic){variant=2;} list P,T1,T2,T3,LL;
Note: See TracChangeset for help on using the changeset viewer.