Changeset c4002e in git
- Timestamp:
- May 13, 2007, 8:29:43 PM (17 years ago)
- Branches:
- (u'spielwiese', 'fe61d9c35bf7c61f2b6cbf1b56e25e2f08d536cc')
- Children:
- 4fff0027b707c4e4fe290c3f5857fd4ed645a171
- Parents:
- 2dc99111cab6d0595e71ef5fbcff7ef4e101378b
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
Singular/LIB/nctools.lib
r2dc9911 rc4002e 1 1 /////////////////////////////////////////////////////////////////////////////// 2 version="$Id: nctools.lib,v 1.2 4 2007-02-24 15:15:26 SingularExp $";2 version="$Id: nctools.lib,v 1.25 2007-05-13 18:29:43 levandov Exp $"; 3 3 category="Noncommutative"; 4 4 info=" … … 6 6 AUTHORS: Levandovskyy V., levandov@mathematik.uni-kl.de, 7 7 @* Lobillo, F.J., jlobillo@ugr.es, 8 @* 8 @* Rabelo, C., crabelo@ugr.es. 9 9 10 10 SUPPORT: DFG (Deutsche Forschungsgesellschaft) and Metodos algebraicos y efectivos en grupos cuanticos, BFM2001-3141, MCYT, Jose Gomez-Torrecillas (Main researcher). … … 36 36 LIB "poly.lib"; // for newtonDiag 37 37 LIB "general.lib"; // for sort 38 // LIB "ncalg.lib"; 38 39 39 40 /////////////////////////////////////////////////////////////////////////////// … … 1204 1205 1205 1206 1206 proc rightStd( idealI)1207 "USAGE: rightStd(I); I an ideal 1207 proc rightStd(def I) 1208 "USAGE: rightStd(I); I an ideal/ module 1208 1209 PURPOSE: compute a right Groebner basis of I 1209 RETURN: ideal1210 RETURN: the same type as input 1210 1211 EXAMPLE: example rightStd; shows examples 1211 1212 " … … 1214 1215 def Aopp = opposite(A); 1215 1216 setring Aopp; 1216 idealIopp = oppose(A,I);1217 ideal Jopp = std(Iopp);1217 def Iopp = oppose(A,I); 1218 def Jopp = groebner(Iopp); 1218 1219 setring A; 1219 idealJ = oppose(Aopp,Jopp);1220 def J = oppose(Aopp,Jopp); 1220 1221 return(J); 1221 1222 } … … 1233 1234 RI; 1234 1235 } 1236 1237 1238 proc rightSyz(def I) 1239 "USAGE: rightSyz(I); I an ideal/ module 1240 PURPOSE: compute a right syzygy module of I 1241 RETURN: the same type as input 1242 EXAMPLE: example rightSyz; shows examples 1243 " 1244 { 1245 def A = basering; 1246 def Aopp = opposite(A); 1247 setring Aopp; 1248 def Iopp = oppose(A,I); 1249 def Jopp = syz(Iopp); 1250 setring A; 1251 def J = oppose(Aopp,Jopp); 1252 return(J); 1253 } 1254 example 1255 { "EXAMPLE:"; echo = 2; 1256 ring r = 0,(x,d),dp; 1257 ncalgebra(1,1); // the first Weyl algebra 1258 ideal I = x,d; 1259 module LS = syz(I); 1260 print(LS); 1261 module RS = rightSyz(I); 1262 print(RS); 1263 } 1264 1265 1266 proc rightNF(def v, def M) 1267 "USAGE: rightNF(I); v a poly/vector, M an ideal/module 1268 PURPOSE: compute a right normal form of v w.r.t. M 1269 RETURN: poly/vector (as of the 1st argument) 1270 EXAMPLE: example rightNF; shows examples 1271 " 1272 { 1273 def A = basering; 1274 def Aopp = opposite(A); 1275 setring Aopp; 1276 def vopp = oppose(A,v); 1277 def Mopp = oppose(A,M); 1278 Mopp = std(Mopp); 1279 def wopp = NF(vopp,Mopp); 1280 setring A; 1281 def w = oppose(Aopp,wopp); 1282 w = simplify(w,2); // skip zeros in ideal/module 1283 return(w); 1284 } 1285 example 1286 { "EXAMPLE:"; echo = 2; 1287 LIB "ncalg.lib"; 1288 ring r = 0,(x,d),dp; 1289 ncalgebra(1,1); // Weyl algebra 1290 ideal I = x; I = std(I); 1291 poly p = x*d+1; 1292 NF(p,I); // left normal form 1293 rightNF(p,I); // right normal form 1294 } 1295 1296 // ********************************** 1297 // * NF: Example for vector/module: * 1298 // ********************************** 1299 // module M = [x,0],[0,d]; M = std(M); 1300 // vector v = (x*d+1)*[1,1]; 1301 // print(NF(v,M)); 1302 // print(rightNF(v,M)); 1303 1304 proc rightModulo(def M, def N) 1305 "USAGE: rightModulo(M,N); M,N are ideals/modules 1306 PURPOSE: compute a right representation of the module (M+N)/N 1307 RETURN: module 1308 ASSUME: M,N are presentation matrices for right modules 1309 EXAMPLE: example rightModulo; shows examples 1310 " 1311 { 1312 def A = basering; 1313 def Aopp = opposite(A); 1314 setring Aopp; 1315 def Mopp = oppose(A,M); 1316 def Nopp = oppose(A,N); 1317 def Kopp = modulo(Mopp,Nopp); 1318 setring A; 1319 def K = oppose(Aopp,Kopp); 1320 return(K); 1321 } 1322 example 1323 { "EXAMPLE:"; echo = 2; 1324 LIB "ncalg.lib"; 1325 def A = makeUsl(2); 1326 setring A; 1327 option(redSB); 1328 option(redTail); 1329 ideal I = e2,f2,h2-1; 1330 I = twostd(I); 1331 print(matrix(I)); 1332 ideal E = std(e); 1333 ideal TL = e,h-1; // the result of left modulo 1334 TL; 1335 ideal T = rightModulo(E,I); 1336 T = rightStd(T+I); 1337 T = rightStd(rightNF(T,I)); // make the output canonic 1338 T; 1339 } 1340 1235 1341 //////////////////////////////////////////////////////////////////////
Note: See TracChangeset
for help on using the changeset viewer.