Changeset 7687d1f in git


Ignore:
Timestamp:
Mar 12, 2018, 2:09:33 PM (5 years ago)
Author:
Karim Abou Zeid <karim23697@…>
Branches:
(u'jengelh-datetime', 'ceac47cbc86fe4a15902392bdbb9bd2ae0ea02c6')(u'spielwiese', 'a657104b677b4c461d018cbf3204d72d34ad66a9')
Children:
9db8343e5043f1916262be4000d0b798d2cf2b8c
Parents:
d0a636833da147bea367c9ea4d6492e3e3812d2d
Message:
Add simple algebras
File:
1 edited

Legend:

Unmodified
Added
Removed
  • Singular/LIB/fpalgebras.lib

    rd0a6368 r7687d1f  
    4343LIB "general.lib";
    4444////////////////////////////////////////////////////////////////////
     45
     46////////////////////////////////////////////////////////////////////
     47// Simple Algebras /////////////////////////////////////////////////
     48////////////////////////////////////////////////////////////////////
     49
     50proc simpleAlgebra(string a, int d) // TODO name
     51"USAGE: simpleAlgebra(a,d); a a string, d an integer
     52RETURN: ring
     53NOTE: - the ring contains the ideal I, which contains the required relations
     54@*    - a gives the name of the algebra
     55@*    - d gives the degreebound for the Letterplace ring
     56@*
     57@*    a must be one of the following:
     58@*      integrodiff3
     59@*      toeplitz
     60@*      weyl1
     61@*      usl2
     62@*      usl2h
     63@*      shift1inverse
     64@*      exterior2
     65@*      quadrowmm
     66@*      shift1
     67@*      weyl1inverse
     68@*
     69"
     70{
     71  if (d < 2) {
     72    ERROR("Degbound d is too small. Must be at least 2.");
     73  }
     74  int baseringdef;
     75  if (defined(basering)) // if a basering is defined, it should be saved for later use
     76  {
     77    def save = basering;
     78    baseringdef = 1;
     79  }
     80
     81  if (a == "integrodiff3") {
     82    ring r = 0,(d,I,x),dp;
     83    def R = makeLetterplaceRing(d);
     84    setring(R);
     85    ideal I = d(1)*x(2)-x(1)*d(2)-1,
     86          I(1)*x(2)-x(1)*I(2)+I(1)*I(2),
     87          d(1)*I(2)-1;
     88  }
     89  if (a == "toeplitz") {
     90    ring r = 0,(y,x),dp;
     91    def R = makeLetterplaceRing(d);
     92    setring(R);
     93    ideal I = y(1)*x(2)-1;
     94  }
     95  if (a == "weyl1") {
     96    ring r = 0,(d,x),dp;
     97    def R = makeLetterplaceRing(d);
     98    setring(R);
     99    ideal I = d(1)*x(2)-x(1)*d(2)-1;
     100  }
     101  if (a == "usl2") {
     102    ring r = 0,(h,f,e),dp;
     103    def R = makeLetterplaceRing(d);
     104    setring(R);
     105    ideal I = f(1)*e(2)-e(1)*f(2)+h(1),
     106          h(1)*e(2)-e(1)*h(2)-2*e(1),
     107          h(1)*f(2)-f(1)*h(2)+2*f(1);
     108  }
     109  if (a == "usl2h") {
     110    ring r = 0,(H,h,f,e),dp;
     111    def R = makeLetterplaceRing(d);
     112    setring(R);
     113    ideal I = f(1)*e(2)-e(1)*f(2)+h(1)*H(2),
     114          h(1)*e(2)-e(1)*h(2)-2*e(1)*H(2),
     115          h(1)*f(2)-f(1)*h(2)+2*f(1)*H(2),
     116          f(1)*H(2)-H(1)*f(2),
     117          e(1)*H(2)-H(1)*e(2),
     118          h(1)*H(2)-H(1)*h(2);
     119  }
     120  if (a == "shift1inverse") {
     121    ring r = 0,(d,x,t),dp;
     122    def R = makeLetterplaceRing(d);
     123    setring(R);
     124    ideal I = d(1)*x(2)-x(1)*d(2)-d(1),
     125          t(1)*x(2)-1,
     126          x(1)*t(2)-1;
     127  }
     128  if (a == "exterior2") {
     129    ring r = 0,(y,x),dp;
     130    def R = makeLetterplaceRing(d);
     131    setring(R);
     132    ideal I = y(1)*x(2)+x(1)*y(2),
     133          x(1)*x(2),
     134          y(1)*y(2);
     135  }
     136  if (a == "quadrowmm") {
     137    ring r = 0,(y,x),dp;
     138    def R = makeLetterplaceRing(d);
     139    setring(R);
     140    ideal I = y(1)*x(2)-x(1)*y(2),
     141          x(1)*x(2),
     142          y(1)*y(2);
     143  }
     144  if (a == "shift1") {
     145    ring r = 0,(s,x),dp;
     146    def R = makeLetterplaceRing(d);
     147    setring(R);
     148    ideal I = s(1)*x(2)-x(1)*s(2)-s(1);
     149  }
     150  if (a == "weyl1inverse") {
     151    ring r = 0,(d,x,t),dp;
     152    def R = makeLetterplaceRing(d);
     153    setring(R);
     154    ideal I = d(1)*x(2)-x(1)*d(2)-1,
     155          t(1)*x(2)-1,
     156          x(1)*t(2)-1;
     157  }
     158
     159  if (!defined(I)) {
     160    ERROR("Illegal argument for algebra");
     161  }
     162
     163  export(I);
     164  if (baseringdef == 1) {setring save;}
     165  return(R);
     166}
    45167
    46168////////////////////////////////////////////////////////////////////
Note: See TracChangeset for help on using the changeset viewer.