Changeset 311eaa in git


Ignore:
Timestamp:
Dec 17, 2018, 12:25:26 PM (5 years ago)
Author:
Hans Schoenemann <hannes@…>
Branches:
(u'spielwiese', 'fe61d9c35bf7c61f2b6cbf1b56e25e2f08d536cc')
Children:
908905bf1d33ff716b539be45540d26738ada72f
Parents:
ee3e7cd650e2cf6d6e770d6b57b1681594c7cda7fe8998fec9f89537d877f2b27d372fbe28e9b521
git-author:
Hans Schoenemann <hannes@mathematik.uni-kl.de>2018-12-17 12:25:26+01:00
git-committer:
GitHub <noreply@github.com>2018-12-17 12:25:26+01:00
Message:
Merge pull request #902 from levandov/spielwiese

new lib for Hilber over G-algebras and minor docu changes
Files:
1 added
22 edited

Legend:

Unmodified
Added
Removed
  • Singular/LIB/freegb.lib

    ree3e7cd r311eaa  
    55LIBRARY: freegb.lib   Two-sided Groebner bases in free algebras and tools via Letterplace approach
    66AUTHORS: Viktor Levandovskyy,   viktor.levandovskyy at math.rwth-aachen.de
    7          Grischa Studzinski,    grischa.studzinski at math.rwth-aachen.de
    8          Karim Abou Zeid,       karim.abou.zeid at rwth-aachen.de
     7@*       Karim Abou Zeid,       karim.abou.zeid at rwth-aachen.de
     8@*       Grischa Studzinski,    grischa.studzinski at math.rwth-aachen.de
    99
    1010OVERVIEW: For the theory, see chapter 'Letterplace' in the Singular Manual.
     11
    1112This library provides access to kernel functions and also contains legacy code (partially as
    1213 static procedures) for compatibility reasons.
     
    2223
    2324PROCEDURES:
    24 makeLetterplaceRing(d);          creates a ring with d blocks of shifted original variables
     25makeLetterplaceRing(d);          creates a Letterplace ring out of given data
    2526setLetterplaceAttributes(R,d,b); supplies ring R with the letterplace structure
    2627lieBracket(a,b[, N]);            Lie bracket ab-ba of two letterplace polynomials
     
    3233isVar(p);                        check whether p is a power of a single variable
    3334
    34 lpLmDivides(ideal I, poly p)     tests if there is a polynomial q in I with LM(q)|LM(p)
    35 lpVarAt(poly p, int pos)         returns the variable (as a poly) at position pos of the poly p
     35lpLmDivides(ideal I, poly p);    tests whether there exists q in I, such that LM(q)|LM(p)
     36lpVarAt(poly p, int pos);        returns the variable (as a poly) at position pos of the poly p
    3637
    3738SEE ALSO: fpadim_lib, fpaprops_lib, fpalgebras_lib, LETTERPLACE
  • Singular/iparith.cc

    rfe8998f r311eaa  
    18731873  res->data=(void*)id_Delete_Pos(I,pos-1,currRing);
    18741874  return res->data==NULL;
     1875}
     1876static BOOLEAN jjDET2(leftv res, leftv u, leftv v)
     1877{
     1878  matrix m=(matrix)u->Data();
     1879  DetVariant d=mp_GetAlgorithmDet((char*)v->Data());
     1880  res ->data = mp_Det(m,currRing,d);
     1881  return FALSE;
     1882}
     1883static BOOLEAN jjDET2_S(leftv res, leftv u, leftv v)
     1884{
     1885  DetVariant d=mp_GetAlgorithmDet((char*)v->Data());
     1886  ideal m=(ideal)u->Data();
     1887  res ->data = sm_Det(m,currRing,d);
     1888  return FALSE;
    18751889}
    18761890static BOOLEAN jjDIFF_P(leftv res, leftv u, leftv v)
     
    38673881{
    38683882  matrix m=(matrix)v->Data();
    3869   poly p;
    3870   if (sm_CheckDet((ideal)m,m->cols(),TRUE, currRing))
    3871   {
    3872     ideal I=id_Matrix2Module(mp_Copy(m, currRing),currRing);
    3873     p=sm_CallDet(I, currRing);
    3874     idDelete(&I);
    3875   }
    3876   else
    3877     p=singclap_det(m,currRing);
    3878   res ->data = (char *)p;
     3883  res ->data = mp_Det(m,currRing);
    38793884  return FALSE;
    38803885}
     
    39323937{
    39333938  ideal I=(ideal)v->Data();
    3934   poly p;
    3935   if (IDELEMS(I)<1) return TRUE;
    3936   if (!sm_CheckDet(I,IDELEMS(I),FALSE, currRing))
    3937   {
    3938     matrix m=id_Module2Matrix(id_Copy(I,currRing),currRing);
    3939     p=singclap_det(m,currRing);
    3940     idDelete((ideal *)&m);
    3941   }
    3942   else
    3943     p=sm_CallDet(I, currRing);
    3944   res->data = (char *)p;
     3939  res->data=(char*)sm_Det(I,currRing);
    39453940  return FALSE;
    39463941}
  • Singular/table.h

    rfe8998f r311eaa  
    120120,{D(jjDET_BI),     DET_CMD,         BIGINT_CMD,     BIGINTMAT_CMD , ALLOW_NC |ALLOW_RING}
    121121,{D(jjDET_I),      DET_CMD,         INT_CMD,        INTMAT_CMD    , ALLOW_NC |ALLOW_RING}
     122,{D(jjDET_S),      DET_CMD,         POLY_CMD,       SMATRIX_CMD   , NO_NC |NO_RING}
    122123,{D(jjDET),        DET_CMD,         POLY_CMD,       MATRIX_CMD    , NO_NC |ALLOW_RING}
    123 ,{D(jjDET_S),      DET_CMD,         POLY_CMD,       MODUL_CMD     , NO_NC |NO_RING}
    124124,{D(jjDIM),        DIM_CMD,         INT_CMD,        IDEAL_CMD     , ALLOW_PLURAL |ALLOW_RING}
    125125,{D(jjDIM),        DIM_CMD,         INT_CMD,        MODUL_CMD     , ALLOW_PLURAL |ALLOW_RING}
     
    616616,{D(jjDelete_ID), DELETE_CMD,     MODUL_CMD,      MODUL_CMD,  INT_CMD, ALLOW_NC |ALLOW_RING}
    617617,{D(lDelete),     DELETE_CMD,     LIST_CMD,       LIST_CMD,   INT_CMD, ALLOW_NC |ALLOW_RING}
     618,{D(jjDET2_S),    DET_CMD,        POLY_CMD,       SMATRIX_CMD,STRING_CMD, NO_NC |NO_RING}
     619,{D(jjDET2),      DET_CMD,        POLY_CMD,       MATRIX_CMD, STRING_CMD, NO_NC |ALLOW_RING}
    618620,{D(jjDIFF_P),    DIFF_CMD,       POLY_CMD,       POLY_CMD,   POLY_CMD, ALLOW_PLURAL |ALLOW_RING}
    619621,{D(jjDIFF_P),    DIFF_CMD,       VECTOR_CMD,     VECTOR_CMD, POLY_CMD, ALLOW_PLURAL |ALLOW_RING}
     
    10111013  { "delete",      0, DELETE_CMD ,        CMD_2},
    10121014  { "denominator", 0, DENOMINATOR_CMD ,   CMD_1},
    1013   { "det",         0, DET_CMD ,           CMD_1},
     1015  { "det",         0, DET_CMD ,           CMD_12},
    10141016  { "diff",        0, DIFF_CMD ,          CMD_2},
    10151017  { "dim",         0, DIM_CMD ,           CMD_12},
  • Tst/Buch/Example_2_6_15.res.gz.uu

    rfe8998f r311eaa  
    11begin 640 Example_2_6_15.res.gz
    2 M'XL(",(123X``T5X86UP;&5?,E\V7S$U+G)E<P"55VUOVS80_JY?013[(-N4
    3 M+5+O]>0A=A*@0.T!S=`O@9>ZMKP)<"1#5AQMP_[[[BB*I!*[P!1%HLCGCO?&
    4 MN_/#;[>?5H00-B.?/\W)A_I4CP_Y]P]3ZT&N\!F!R:>\R&M[,+7P368S<M=L
    5 MGH^'[(D_A4\L&!?9Z_A4;VI%YLV(&OMC<JS*+<F:.BMVV6Y55L^;PST\[>=-
    6 M7>4-60X4.!B3?]1'.(8'R8OZG&W).67C<5&5KR=[.9AJ]K$)>DT[Q,A`CXIM
    7 M>>B3,5>020%6Z;8LMIO:WE=9]ESN7@Z9W1$/*-`I,B[(5FE=;8K3L3QE-NR<
    8 M556VL_74:C`P2'QSIT5Z>OD.8WM%S_1LH%I=%^DAW]?V@KX39($\R612_YF!
    9 MLN>L.F4=SW)/%HI/;.YV:^[V:JC/6_5O+^EQ.S"!K<*'_%23+UFZH+=*9-XJ
    10 M5F7U2U787S*@TF2@SK_J(]+1P$&^\ECG96'#7@]S;0&>S$B5%W^0+ZE+[69`
    11 MP0J[HU[W7!&D'UK5^F'J,;V#!Q)W<?48K.%.&26,NN)/H3PAO'$YG#KO4/Y;
    12 M%'$IW)PR$Q5<1B'.0(774(#3FABV\F*ER4IIPBD1-\BJ<,D[S@P$1)S0O,/Y
    13 M[CN=)<X13X5CEW'L+8Y?V+=C1IC2R8=LL&P#>_4^L/&P#)?#E8;[,T@8$(YX
    14 M8"W'FP!+#GL'8A13%,>'IQ5,X.6$\._AT&&XSA!EH0RH//&HE)^@3'!9'E(Q
    15 M8!-'8H1X'L&#M'LA#-^2RA=Z*=D"[1X_5.ZY29=.,S14"W3<^H9'??"H.$J?
    16 MTTOI\,:@2C15X(ZE03X_LC5@7-J+(:$A6,?C@5IQX@GWO2A02+!9?Z;'!6P7
    17 M`K$339CGN@;1Q(^CH#?AF=_$8F$\82$7;!F*0!&$,\W(:U?0,3U9^)MOM+P?
    18 M="C<(W$IN`=$ZFTMUIN1E"$1W$U9'!XEG=X.GR3PZEM%<[G`5MI'6=W(*0'7
    19 M'N!K3(^-[_B--PH:#N^13W$+F3M,N^+5.)Q>67)%E%Y=<MLT<WD)%K5\1KT-
    20 M?!667QFF#7_=53<,'[CI<JA'_;'ZTI$80,AW_#CR8^M4@/A:EXD@-`2(9)#?
    21 MI_O-MBZK_.],V.T1LHC).)Z1^ZD%K#Y:H-43,F;MB*_3AH_DAP<?#K=@4N`P
    22 M%7'%PS@FH2L;C6-Y^.O7_5VQ*[L&8TYQCAQ5GQ$RH\\(11X#[Y)<"1?ZW=Q.
    23 MMA1&J0I%*E=G?UMF^_W)/M+SIK*94?K#V,#=/>[6<*=&EMAI:.0:T(6$W@B+
    24 M#>\T2DBZ+RL[3_DT_UF*!GDC'XV4<I&07:D7=87G+KT;SC6O6$XOTL7HYC'O
    25 M[Q0+>50)C\7&LM0OM-BQ;]3YV$B.L4Z.#ZGAD"6];V/G=VYPB72(,9:>ZIW]
    26 M,/S*#$#<E018QZ*01%%(F<>2`--VQ-R(,I]C6;#\.(XQ!T4\B*DEEKHD*4\2
    27 MSA&=TV,CAA)0^Y*\WMKHB1)FB,LOB)MP+2ZJ"<7+QP(*^SNBB%IXKE$JF/&Z
    28 M`3R9EBHQCG2BC_2\.\M@"`K<Z5?#C@DX8)?5&*KD[85'YQ=<Q78Q(`T)21N%
    29 M1!Z208N`'K"L2+G=OF`S"">`M,P/>9'!!A_)MVL[?%-B&,D@@60`?%ZVF;T<
    30 MHLQH+72BZ!;%F7<M<>!=10+.-DBX).%XL/H$(C=HNL2DDV0F58MCKJO$8RX;
    31 MZ\Y<="ASR(-SHY5EKG+F0BAM,1:X4!<C+P97QIP'D\2':!2QY;7S7CL%CK5P
    32 MG7MA0O%<!I).EFTV:2-WTL9N/]6;65^T+E#1/-J68"K6KZ%9(%JFMO-I7S]`
    33 MNU1/=//_#\VUK3S#M#IHS[)L@!/A-26&<2%B>R&]')X=/H2?1F9@,Q<BJN\?
    34 MM1+UO'/-.;YRTG67!'+PMASW^B1ISK=UN8>1S07_`48;VC!>;!@/6GK\W8T_
    35 2JE].4%2F/UG_`<J,H^FM#P``
     2M'XL("(HA$5P"`T5X86UP;&5?,E\V7S$U+G)E<P"55UMOXD84?O>O&*WZ8&`,
     3MGO'XMJFI$I)(*RU4VE3[$M$L"Z:U1#`R#G%;];_WS'@\<[R!;4N(/9?OW,^<
     4M,SS\<OMA00AA4_+QPPUY5Q_K\:[X^N[*>=`[?$I@\:G8%[4[N'+DFTRGY*Y9
     5M/1]V^1-_BIY8.-[GK^-CO:H-63`E9BS&Y%"5:Y(W=;[?Y)M%63VO=O?P=)]7
     6M=54T9#XPX'!,_C*3:`P/4NSK4[XFIXR-Q_NJ?#VZ\X%5,,&8UZP#C!!XM%^7
     7MNQX5\Q65%K_(UN5^O:K=;97GS^7F99>['>V`8C*NR!997:WVQT-YS%T0G%=5
     8MOG'MTF(P0"0"2YIEQY>O,'87]$1/"-5:.LMVQ;9V9_2-(C/)DTPF]>\YV'K*
     9MJV/>\2RW9&;X)%C:+9;V:J7QUOK;<V;<(MUY:^ZN.-;D4Y[-Z*W=:LVJ\OJE
     10MVKN?<D0$IOQM)K'-`PZZE8>Z*/<N"'JX023IE%3%_C?R*?.IVPPH>&!SL/N!
     11MK]+S76M6/T$#9B4$H&^748_A$KX9HX117_T95*!41Q^/4^\-2GR+(CZ%+Z<,
     12MH\+S*(E#J.@2"G#6$N2K(#&6+(PEG!+U!5T-+GW#F8&"$J<L[W#"?V.SQGGJ
     13M:7#L/(Y]B^-GY';,"#,V":@#\S:I%V^36AZ4X7RXL'`QA5(!N:C.JA=,@"4'
     14MV:$:)52J(^#IA!-X>1'\!W+H,;G/),J1.DCC24"U_D3J!!\GD%0,V"2Q&DD\
     15MC^%!6ED2)M^:2BB[C&ZA#8^(3'BNL[G7#)%IH<U;@2(J(*+J('W,SA7":T25
     16M6JK0'VN'?'QD2\#XM)=#RD+P3L!#L^,E$RZ".*0VA**_TN,"OHN`V(LG+/!]
     17M1#0121SV%@(\)PZ+D@F+N&++I`I4@N1*,PK:'1F8GB[\F[GTO`@[E)21^A3"
     18M`RKU1*O]9J1U2!5WK(O'X[2SV^.3%%Y]KU@N9]AJ_QBOHYH2<AL!+B/0"$\T
     19MP2AL.+Q'@DH)NG1@M\I/XW%Z8<M727IQRV^KS/DMV+3JH48;"I.5GYFL&F+9
     20M-3:9/?"E\Z$=]<=F9A,QA(SO^'')CRTS!>)+BXF0_%BG^'VV7:WKLBK^S)77
     21M'J&&8+[)E-Q?.<#IO0-&/4F^K!WQ9=;PD9X$,/&X`XL*)PL1-SS0(8E\?<$X
     22ME+L_?M[>[3=E=[&XH7*-',S](F+H?A&I*@:Q)851+A+=VD;?)5"CBE0A-R=_
     23M7>;;[=$]T-.J<AEJG%&"<'>/FR5\,U0C-A8:^P@ZT]!KY;'AG44I3;=EY189
     24MORI^U*I!U2A&(V-<K'0WYL5=V[G+[H8WEE>BEV?9;'3]6/0E)4H?T\`3)5BW
     25M^9E5.Q&HRR>H-":V-#YD*"!S>M^FSJ\<<8EMAC&6'>N-^S#\S!`@Z1H"[,N6
     26MD,9Q1%G`TE`6[9CY,66"RZ;@B"1)9`6*>9A01VUU)5(?)+F&*GJ"<B@%L\_I
     27M&Z"\31G2EI_1-N566VDE="XANR>(]U0'=>2IEDK!2M`-X,FL4BDZT*D]T#?=
     28M208_4.!./R,WIN#_35ZK3`7[?I(3>2T,24,BTN8<T4=BT"+@LE=6I%RO7^2M
     29M#_*=P/1K#AF6DY;KKMCGP/D]^:)9?S'BT)E/X<P#@Y=U[LZ'4C?I%1DK4$4=
     30M;-]1I]HW!!!11,`U`7]+H`J`I4LQG2;#5"V.^;Y1COEL;"_>ZA)R`[7.GF?F
     31MFX#)U&8L]*'KQ4$"L4HX#R>I@&Q3N1.TZT&[!)%SY#X/HI3*<Q=J.MV4V:3-
     32MS$F;F_U*CHNZNIA`OPIHVV"IVK^$9J&Z$%%]9]7[E]`^M0O=^O]#<^O)`'G5
     33M9N5)=P6('[RL6R$?>PD['YX\/H1?/#AMF0]Y="$N\7^(BS#QN1R-4`_\[\2@
     34J\R3['D;?&CC]%P^J-_);@OP&=W7Y4UK^3GXY0K^X^L'Y!VV`RI:`#P``
    3635`
    3736end
  • Tst/Buch/Example_2_6_15.stat

    rfe8998f r311eaa  
    1 1 >> tst_memory_0 :: 1044976067:2003021115:2-0-4:ix86-Linux:nepomuck:199584 1292524760:3120- 13145 :3-1-2:ix86-Linux:mamawutz:230300
    2 1 >> tst_memory_1 :: 1044976067:2003021115:2-0-4:ix86-Linux:nepomuck:707464 1292524760:3120- 13145 :3-1-2:ix86-Linux:mamawutz:667336
    3 1 >> tst_memory_2 :: 1044976067:2003021115:2-0-4:ix86-Linux:nepomuck:707464 1292524760:3120- 13145 :3-1-2:ix86-Linux:mamawutz:700120
    4 1 >> tst_timer_1 :: 1044976067:2003021115:2-0-4:ix86-Linux:nepomuck:6 1292524760:3120- 13145 :3-1-2:ix86-Linux:mamawutz:12
     11 >> tst_memory_0 :: 1544626571:4113, 64 bit:4.1.1:x86_64-Linux:nepomuck:187832
     21 >> tst_memory_1 :: 1544626571:4113, 64 bit:4.1.1:x86_64-Linux:nepomuck:2199552
     31 >> tst_memory_2 :: 1544626571:4113, 64 bit:4.1.1:x86_64-Linux:nepomuck:2215936
     41 >> tst_timer_1 :: 1544626571:4113, 64 bit:4.1.1:x86_64-Linux:nepomuck:4
  • Tst/Old/err4.res.gz.uu

    rfe8998f r311eaa  
    11begin 640 err4.res.gz
    2 M'XL("`5A15@``V5R<C0N<F5S`-U96Y.;QA)^]Z^82O(`!DG,A=MN:4^5?:IL
    3 M5V6=I#9/<3D.B]":&('"Q=&0RG]/]X`&9&FUVD0YQXD>0,Q\?9GN;WH:Z>;[
    4 M_[YZ30BA5V0VBW*2E&51DF))G&DP#2-BI'F=E%42UR3-2?P^*HEC/KGII=@4
    5 MI(P/9=)465(.XWQ*RC2_(^7<L8V-+>W6M(W8SM;FI<:(*_(1U(*UCP8UYV\V
    6 MTI+,WMCT[8!Q1QB&&&:U@)E(V]G!>2,<1UQK(V07Y%^15;%HLH1<S]&DC3IM
    7 M%!@PP8"IYE6],*Y'D^$5C%X^N:[>T+?S-ZA^P^1DPUIK(UM+HF>LG6PDFTAN
    8 M3S;<4M,M/KY%*::DI#_ATFLM+ETUU0H0]0`O16NQ#0PPU-%RN,+<IG41Q"$X
    9 MK9C(UD4D8*P>T[H6*)J`,+,0ASYQ\(+!-(!02&D>J93>A(&,Q;30!)5;K:?<
    10 MY,I-9=>SV%:Y@M@;I5NI1GT6N*.>$(((7#=:MA!H]5/@(<[R3@D8:X4R)#I#
    11 M$A>,"Q03=-WJM"M5$%:,G_K>F>Q##"CE-$;=:KOPNKTZKARTE$JNO&(V:E#2
    12 MF)R6*;S7X8>4`6L<-`I(!?![P&Z.$8)N6+V:H$-Q7+BEO.3=[%A5"*!N10`!
    13 M#T!+"T]JCCHPJ9Q#9VWEA.QFD&>2*[.@'MF!B,G&DG:/0$Z-V*[&,('#;E)#
    14 M&.K=S;-E-74TY5_/[Y(<MH.--]'=W('_%&J$K@;&=66_AKEW?V8O;!6R*_(A
    15 MS3)2#C8XUJ')7_IH76)Z3TUK\D6R3/-D0?)HE52D:.IU4Y,EH&ZS(OY`GNM2
    16 M1MU1*=O8QF)M/Q^%!`H/.#^;D;A(ELLT3I.\KB[(=]_A6-ZL;A-E^&-45N2"
    17 M4!SM/YTA4`'C1;E(E)'%>H08/A>]G_#9'%#!QBJ>:]_\_>@&9XQN>%]TXS*J
    18 MWE^017)G.";Y-:J(CK<.*W-0FAC/IM=16:?Y,$&/Q9L!8]9%)LER&`+&H*DE
    19 MH"94CXJ]Q3/W?(MGWM'%*R;=K=:SE`?>;/(-&Y;GW[?NX-"1N1@=F"S<KGUN
    20 M0`$P?Z14SW'8Q%5S6]7&$H+&0$A2:C$FJ0-71X86Y7`++)<%CO0M*OQ`8'4/
    21 M72^`^BP8$XX4_9U;+*">(YE%*?.$M)@C`FV*[D66L[\>61U:S@^&]A8[D;@H
    22 M2Z@])HGR13<<]Q'7<>2B"_#+Z<UT&-2;>/`9=FZZ2**,I/-1''U%IC))C-14
    23 M^WJ1KI*\2HN<&-$2.6R2.7'4C,(-PVI\JP<V&D@J)0,I.61PU62U&M98`;E+
    24 MYX[V0=`C/JS+XN>ILL7&/FR'85Q;$VSP@>M!/G)A@(HS)E"X!Q.XERGA=9EZ
    25 M7M3U;5,-XVJ+Z*=`H>JDJDD5E^FZ*]-04*'DKE9`!(T,QW*NLTVY4!O*H-,I
    26 M=4Q;XI?0M%N\!Z9I+]8Z\BY$OA2GEW/FGZ&>0R,*%X87CA>!%Q<O'EY\O`1X
    27 M"?$"2R`2122*2!21*")11**(1!&)(A)%6@2W"&X1W"*X17"+X!;!+8!//E5<
    28 M8!4NORZ-4M@L`!H!]C\J(7V`6(`'*L:IC/*[A$"@(5(*U5,BCAO8R`M\H\`C
    29 M-X&,)J0SD,%>`B,7Y*==*S]I!_BV_H@A<8J_Y`SD=8^3=Z9.LKY?T(QU[V&R
    30 MN\-D]S"3D0E@YA,RNSMD]H#,T'E!F0CUFCT@*\0'DU/5\TZ+D5IT.#`\AHC+
    31 M)_J9GRM*WN'.*AX??XM$42`O\NJ7)BH3'15/A9B\N'ZA1[RA/,/,TZ<$R($-
    32 M@QHC1C\W:/"WM?L5F:NCTF[EL&Q\AXL@,ANR(O.?H[BX-5Z-HA)B>:V-U9:Y
    33 MO:.";`C?=L)&I\!\%&N]$%C;J]9T]9V]X]*GY\J#SX[G(5T2.!EBLH[*:`6-
    34 M.TDK$JE0ZUCZ_--L^&+OL/3=PVWN#S_,H*UP^,'JR,]0'(DD[<FER;^G&?_,
    35 MO`3RJJ34>@0*PV_Z`39^EE8UN&=$63;P-H#&>'B`K/VN'Z#ZU4;9]0I?[KLZ
    36 M_L#;&E'Z;5*E;=*_DI0/"#D@]!27@6`H7P^"^\*$\/0$W5C;0@375?VNJJ.Z
    37 MJ=XM4]B'1W0#Y<4T3WZ=(EZ'`HBZ&[U_U>K^$00/AO=.=:L'U@;G*GQ!.)RE
    38 M45,74*[3F%1=)2_6-?3*U;9/3(NF4@6MVDJ'W<OGBV]G+V_T&&RO3M!0K.F5
    39 M7.!1]'V49NK^OBR:N_?;TRDA315!?P.[>;7620KAU.T50>)OZC*JDSLY[..0
    40 M7YUL:*3@`:-"*\V+PV;=T\T>-X4D[%Y4%>G@?7/40H?^GZ#H__1GD3`X5R#"
    41 MHXFFCG/^1%.'/I!HZK#SK(\Z_-/.A3KB:OSCS)!WZMS3(7P&/X11Q_L[$N$_
    42 MD/U'T.QTH^%#V:>/(-U14W3O9QZ*/]?VV3<<.S)W&8"_W!YF@!&9_W\24'$D
    43 M,(_-`W6/)Y\>8]RCC?D/)OT8UTY*=KB7;.8,R?;WDLWHO67>_RS2S8Y5P<=F
    44 M@/'CZ6;GY!9S'THW.X%=QTWL_3-`V;E:,\JZUBPNFFP!;_\U6:35.HODEA!+
    45 M<$7UZ!4QJBQ9UA\O+FY4TVN8V[=2RKL.[9MG0X=&^>X_`\!&U$*R.9VQR^P-
    46 F_M,+WS0:"/#UJV?D"VBZIUEZ^\7ET'T;U+S\ZLD?>+*E/OH>````
     2M'XL("$<A$5P"`V5R<C0N<F5S`-U96Y.;1A9^]Z_HRNX#&"31%VXSI=DJ>ZL<
     3M5^TX24V>XO(ZC$!C8@1:+HZ:K?WO.:=!#;(TTB0FN\GJ`8;N[USZG*]/'YB[
     4M[__^^@TAA-Z0Q2+*25*614F*-7'FP3R,B)'F=5)6R:HF:4Y6'Z*2..:SNUZ*
     5MS4'*^%@F394EY3#.YZ1,\P=2+AW;V-G2;DW;6-G9UKS6&'%#/H%:L/;)H.;R
     6M[4Y:DMD[F[X;,.X(PQ##K!8P,VD[!SAOA..(:VV$'(+\&[(IXB9+R.T23=JH
     7MTT:!`1,,F&I9U;%Q.YH,;V#T^MEM]9:^6[Y%]3LF9SO66CO96A(]8^UL)]E,
     8M<GNVXY::;O'Q'4HQ)27]&9=>:W'IJJE6@*@'>"E:B^U@@*&.EL,5YG:MBR`.
     9MP6G%3+8N(@%C]9C6M4#1#(29A3CTB8,7#*8!A$)*\TBE]&8,9"RFA6:HW&H]
     10MY297;BJ[GL7VRA7$WBG=2C7JL\`=]8001."ZT;*%0*N?`@]QEG=*P%@KE"'1
     11M&9*X8%R@F*'K5J==J8*P8OS4WYW)/L2`4DYCU*VV"Z_;J^/*04NIY,HK9J,&
     12M)8W):9G">QU^2!FPQD&C@%0`OP<<YA@AZ(;5JPDZ%,>%6\I+WLV.584`ZE8$
     13M$/``M+3PI.:H`Y/*.7365D[(;@9Y)KDR"^J1'8B8[2QI]PCDU(CM:@P3..PF
     14M-82A/MP\>U931U/^S?(AR6$[V'@3W<T=^$^A1NAJ8-Q6]AN8>_];]L)>(;LA
     15M'],L(^5@@V,=FGW13^L2\T=J6I/'R3K-DYCDT2:I2-'4VZ8F:T#=9\7J(WFI
     16M2QEU1Z5L9QOQUGXY"@D4'G!^L2"K(EFOTU6:Y'5U1;[[#L?R9G.?*,.?HK(B
     17M5X3B:/_K#($*&"_*.%%&XNT(,?RN>C_AMSNA@HU5O-2^^<?1#2:,;OA8=%=E
     18M5'VX(G'R8#@F^3FJB(ZW#BMS4)H8+^:W45FG^3!!S\6;`6.V12;)>A@"QJ"I
     19M-:!F5(^*H\4S=[K%,^_LXA63'C;;1<H#;S'[A@W+\Q];=W#JR(Q'!R8+]VM?
     20M&E``S']2JN<X;.*JN:]J8PU!8R`D*;48D]2!JR-#BW*X!9;+`D?Z%A5^(+"Z
     21MAZX70'T6C`E'BO[.+190SY',HI1Y0EK,$8$V18\BR]F71U:'EO.3H;W'3F15
     22ME"74'I-$>=P-K_J(ZSART07XZ_G=?!C4FWCP&79N&B=11M+E*(Z^(E.9)$9J
     23MJGT=IYLDK](B)T:T1@Z;9$D<-:-PP[`:W^N!C0:22LE`2@X9W#19K88U5D#N
     24MTJ6C?1#TC`_;LOAIKFRQL0_[81C7U@0;?.!ZD(]<&*!BP@0*]V0"CS(EO"Y3
     25M+XNZOF^J85QM$?T4*%2=5#6I5F6Z[<HT%%0HN9L-$$$CP[&<Z^Q3+M2&,NA\
     26M3AW3EOA':-HMW@/3M..MCKP+D2_%T\LY\R>HY]"(PH7AA>-%X,7%BX<7'R\!
     27M7D*\P!*(1!&)(A)%)(I(%)$H(E%$HHA$D1;!+8);!+<(;A'<(KA%<`O@)Y\J
     28M+K`*EU^71BEL%@"-`/LWE9`^0"S``Q7C5$;Y0T(@T!`IA>HIL5HUL)%C?*/`
     29M(S>!C":D,Y#!7@(C5^3'0RL_:@?XOOZ((7&*OV0"\KKGR;M0)UG?+VC&NH\P
     30MV3U@LGN:R<@$,/,9F=T#,GM`9NB\H$R$>LT>D!7B@\FIZF6GQ4@M.AP8'D/$
     31M]3/]S*>*DB?.1DFM*TX4!?(BK_[51&6BH^*I$)-7MZ_TB#>49YAY_IP`.;!A
     32M4&/$Z.<&#?Z^=K\F2W54VJT<EHWO<!%$9D<V9/E3M"KNC=>CJ(187FMCLV=N
     33M[Z@@.\+WG;#1*3!_%6N]$%C;J]9T]9VCX]*G4^7!9^?SD*X)G`PKLHW*:`.-
     34M.TDK$JE0ZUCZ_/-L^.+HL/3=TVWN#S\LH*UP^,GJR"<HCD22]LFER??^%%X"
     35M>552:CT"A>'?^@$V?I96-;AG1%DV\#:`QGAX@*S]1S]`]:N-LNL5_D+._N!M
     36MC2C]-JG2-NE?2<H+0@X(/<=E(!C*UT5P7Y@0GCY!-]:V$,%U5;^OZJANJO?K
     37M%/;A&=U`>3'/DY_GB->A`*(>1N__:G5_"H('PWNGNM4#:X.I"E\0#F=IU-0%
     38ME.MT1:JNDA?;&GKE:M\GID53J8)6[:7#[N7SU;>+K^_T&&RO3M!0K.F57.%1
     39M]'V49NK^H2R:AP_[TRDA315!?P.[>;/520KAU.T50>+OZC*JDP<Y[..0WSS9
     40MT$C!!:-"*\V+TV;=FXG6AR3L7E05Z>!]<]1"A_YOH.A_];-(&$P5B/!LHJGC
     41M3)]HZM`+B:8.FV9]U.&?=R[4$3?CCS-#WJGC_F$_A%''^ST2X5_(?O![&`TO
     42M99\Z$V6?'GWFH?BYML^^X=B1><@`_')[F@%&9/[O24#%F<#\VCQ0]WSRJ3>E
     43M,?]BTH/+YLZ;"(^2S9PAV?Y1LAE]M,S[?XAT,S9A!A@_GVXV);>8>RG=S/O"
     44M=#/_.-U3M6:4=:W9JFBR&-[^:Q*GU3:+Y)X0:W!%]>@5,:HL6=>?KJ[N5--K
     45MF/NW4LJ[#NV;%T.'1OGA?P:`C:B%9$NZ8-?96_Q/+_RET4"`?[Q^0;Z"IGN>
     466I?=?70_=MT'-Z[\^^P5XLJ4^^AX`````
    4747`
    4848end
  • Tst/Old/err4.stat

    rfe8998f r311eaa  
    1 1 >> tst_memory_0 :: 1480941829:4100, 64 bit:4.1.0:x86_64-Linux:nepomuck:105456
    2 1 >> tst_memory_1 :: 1480941829:4100, 64 bit:4.1.0:x86_64-Linux:nepomuck:2359296
    3 1 >> tst_memory_2 :: 1480941829:4100, 64 bit:4.1.0:x86_64-Linux:nepomuck:2375680
    4 1 >> tst_timer_1 :: 1480941829:4100, 64 bit:4.1.0:x86_64-Linux:nepomuck:1
     11 >> tst_memory_0 :: 1544626503:4113, 64 bit:4.1.1:x86_64-Linux:nepomuck:80528
     21 >> tst_memory_1 :: 1544626503:4113, 64 bit:4.1.1:x86_64-Linux:nepomuck:2277376
     31 >> tst_memory_2 :: 1544626503:4113, 64 bit:4.1.1:x86_64-Linux:nepomuck:2286496
     41 >> tst_timer_1 :: 1544626503:4113, 64 bit:4.1.1:x86_64-Linux:nepomuck:1
  • doc/NEWS.texi

    rfe8998f r311eaa  
    4040Changes in the kernel/build system:
    4141@itemize
     42@item improved heuristic for @code{det} (@nref{det})
    4243@item improved reading of long polynomials
    4344@item improved groebner bases over Z coefficients
  • gfanlib/gfanlib_mixedvolume.cpp

    rfe8998f r311eaa  
    55 *      Author: anders
    66 */
    7 
     7#include <stddef.h>
    88#include "gfanlib_mixedvolume.h"
    99
  • gfanlib/gfanlib_polyhedralfan.cpp

    rfe8998f r311eaa  
    66 */
    77
     8#include <stddef.h>
    89#include <sstream>
    910#include "gfanlib_polyhedralfan.h"
  • gfanlib/gfanlib_polymakefile.cpp

    rfe8998f r311eaa  
    55 *      Author: anders
    66 */
    7 
     7#include <stddef.h>
    88#include "gfanlib_polymakefile.h"
    99
  • gfanlib/gfanlib_symmetriccomplex.cpp

    rfe8998f r311eaa  
    66 */
    77
     8#include <stddef.h>
    89#include "gfanlib_symmetriccomplex.h"
    910#include "gfanlib_polymakefile.h"
  • gfanlib/gfanlib_symmetry.cpp

    rfe8998f r311eaa  
    55 *      Author: anders
    66 */
    7 
     7#include <stddef.h>
    88#include "gfanlib_symmetry.h"
    99#include <map>
  • gfanlib/gfanlib_traversal.cpp

    rfe8998f r311eaa  
     1#include <stddef.h>
    12#include "gfanlib_traversal.h"
    23#include "gfanlib_symmetry.h"
  • gfanlib/gfanlib_zcone.cpp

    rfe8998f r311eaa  
    55 *      Author: anders
    66 */
    7 
     7#include <stddef.h>
    88#include "gfanlib_zcone.h"
    99
  • gfanlib/gfanlib_zfan.cpp

    rfe8998f r311eaa  
    55 *      Author: anders
    66 */
    7 
     7#include <stddef.h>
    88#include "gfanlib_zfan.h"
    99#include "gfanlib_polymakefile.h"
  • libpolys/polys/matpol.cc

    rfe8998f r311eaa  
    2323#include "matpol.h"
    2424#include "prCopy.h"
     25#include "clapsing.h"
    2526
    2627#include "sparsmat.h"
     
    20292030
    20302031//  mu-Matrix
    2031 static void mu(matrix A, matrix &X, const ring R)
     2032static matrix mu(matrix A, const ring R)
    20322033{
    20332034  int n=MATROWS(A);
     
    20442045
    20452046    // X als n*n Null-Matrix initalisieren
    2046     X=mpNew(n,n);
     2047    matrix X=mpNew(n,n);
    20472048
    20482049    //  Diagonaleintraege von X berrechnen
     
    20532054        sum=p_Sub(sum,p_Copy(MATELEM0(A,i,i),R),R);
    20542055    }
     2056    p_Delete(&sum,R);
    20552057
    20562058    //  Eintraege aus dem oberen Dreieck von A nach X uebertragen
    2057     for (int i = 0; i < n; i++)
     2059    for (int i = n-1; i >=0; i--)
    20582060    {
    20592061        for (int j = i+1; j < n; j++)
     
    20622064        }
    20632065    }
     2066    return X;
    20642067}
    20652068
     
    20802083
    20812084    //speichere A ab:
    2082     matrix B=mp_Copy(A,R);
    2083     A=mp_Copy(A,R);
     2085    matrix workA=mp_Copy(A,R);
    20842086
    20852087    // berechen X = mu(X)*A
    20862088    matrix X;
    2087     for (int i = 0; i < n-1; i++)
    2088     {
    2089         mu(A,X,R);
    2090         id_Delete((ideal*)&A,R);
    2091         A=mp_Mult(X,B,R);
     2089    for (int i = n-1; i >0; i--)
     2090    {
     2091        X=mu(workA,R);
     2092        id_Delete((ideal*)&workA,R);
     2093        workA=mp_Mult(X,A,R);
    20922094        id_Delete((ideal*)&X,R);
    20932095    }
     
    20972099    if (n%2 == 0)
    20982100    {
    2099         res=p_Neg(MATELEM0(A,0,0),R);
     2101        res=p_Neg(MATELEM0(workA,0,0),R);
    21002102    }
    21012103    else
    21022104    {
    2103         res=MATELEM0(A,0,0);
    2104     }
    2105     MATELEM0(A,0,0)=NULL;
    2106     id_Delete((ideal*)&A,R);
     2105        res=MATELEM0(workA,0,0);
     2106    }
     2107    MATELEM0(workA,0,0)=NULL;
     2108    id_Delete((ideal*)&workA,R);
    21072109    return res;
    21082110}
    21092111
     2112DetVariant mp_GetAlgorithmDet(matrix m, const ring r)
     2113{
     2114  if (MATROWS(m)+2*r->N>20+5*rField_is_Zp(r)) return DetMu;
     2115  if (MATROWS(m)<10+5*rField_is_Zp(r)) return DetSBareiss;
     2116  BOOLEAN isConst=TRUE;
     2117  int s=0;
     2118  for(int i=MATCOLS(m)*MATROWS(m)-1;i>=0;i--)
     2119  {
     2120    poly p=m->m[i];
     2121    if (p!=NULL)
     2122    {
     2123      if(!p_IsConstant(p,r)) isConst=FALSE;
     2124      s++;
     2125    }
     2126  }
     2127  if (isConst && rField_is_Q(r)) return DetFactory;
     2128  if (s*2<MATCOLS(m)*MATROWS(m)) // few entries
     2129    return DetSBareiss;
     2130  return DetMu;
     2131}
     2132DetVariant mp_GetAlgorithmDet(const char *s)
     2133{
     2134  if (strcmp(s,"Bareiss")==0) return DetBareiss;
     2135  if (strcmp(s,"SBareiss")==0) return DetSBareiss;
     2136  if (strcmp(s,"Mu")==0) return DetMu;
     2137  if (strcmp(s,"Factory")==0) return DetFactory;
     2138  WarnS("unknown method for det");
     2139  return DetDefault;
     2140}
     2141
     2142
     2143poly mp_Det(matrix a, const ring r, DetVariant d/*=DetDefault*/)
     2144{
     2145  if ((MATCOLS(a)==0)
     2146  && (MATROWS(a)==0))
     2147    return p_One(r);
     2148  if (d==DetDefault) d=mp_GetAlgorithmDet(a,r);
     2149  switch (d)
     2150  {
     2151    case DetBareiss: return mp_DetBareiss(a,r);
     2152    case DetMu: return mp_DetMu(a,r);
     2153    case DetFactory: return singclap_det(a,r);
     2154    case DetSBareiss:
     2155    {
     2156      ideal I=id_Matrix2Module(mp_Copy(a, r),r);
     2157      poly p=sm_CallDet(I, r);
     2158      id_Delete(&I, r);
     2159      return p;
     2160    }
     2161    default:
     2162      WerrorS("unknown algorith for det");
     2163  }
     2164}
     2165
     2166poly sm_Det(ideal a, const ring r, DetVariant d/*=DetDefault*/)
     2167{
     2168  if ((MATCOLS(a)==0)
     2169  && (MATROWS(a)==0))
     2170    return p_One(r);
     2171  if (d==DetDefault) d=mp_GetAlgorithmDet((matrix)a,r);
     2172  if (d==DetSBareiss) return sm_CallDet(a,r);
     2173  matrix m=id_Module2Matrix(id_Copy(a,r),r);
     2174  poly p=mp_Det(m,r,d);
     2175  id_Delete((ideal *)&m,r);
     2176  return p;
     2177}
  • libpolys/polys/matpol.h

    rfe8998f r311eaa  
    3232};
    3333
     34enum DetVariant
     35{
     36  DetDefault=0,
     37  DetBareiss,
     38  DetSBareiss,
     39  DetMu,
     40  DetFactory
     41};
     42
    3443typedef ip_smatrix *       matrix;
    3544
     
    5968// BOOLEAN mpKoszul(leftv res,leftv b/*in*/, leftv c/*ip*/, leftv id=NULL);
    6069
     70poly mp_Det(matrix a, const ring r, DetVariant d=DetDefault);
    6171poly mp_DetBareiss (matrix a, const ring r);
    6272poly mp_DetMu(matrix A, const ring R);
     
    106116BOOLEAN sm_Equal(ideal a, ideal b, const ring R);
    107117ideal sm_Tensor(ideal A, ideal B, const ring r);
     118poly sm_Det(ideal I, const ring, DetVariant d=DetDefault);
     119DetVariant mp_GetAlgorithmDet(matrix m, const ring r);
     120DetVariant mp_GetAlgorithmDet(const char *s);
    108121
    109122#define SMATELEM(A,i,j,R) p_Vec2Poly(A->m[j],i+1,R)
  • libpolys/polys/sparsmat.cc

    rfe8998f r311eaa  
    295295}
    296296
    297 /*2
    298 * Bareiss or Chinese remainder ?
    299 * I is dXd
    300 * sw = TRUE  -> I Matrix
    301 *      FALSE -> I Module
    302 * return True  -> change Type
    303 *        FALSE -> same Type
    304 */
    305 BOOLEAN sm_CheckDet(ideal I, int d, BOOLEAN sw, const ring r)
    306 {
    307   int s,t,i;
    308   poly p;
    309 
    310   if (d>100)
    311     return TRUE;
    312   if (!rField_is_Q(r))
    313     return TRUE;
    314   s = t = 0;
    315   // now: field is Q, n<=100
    316   for(i=IDELEMS(I)-1;i>=0;i--)
    317   {
    318     p=I->m[i];
    319     if (p!=NULL)
    320     {
    321       if(!p_IsConstant(p,r))
    322         return TRUE;
    323       s++;
    324       t+=n_Size(pGetCoeff(p),r->cf);
    325     }
    326   }
    327   s*=15;
    328   if (t>s)
    329     return FALSE;// few large constanst entries
    330   else
    331     return TRUE; //many small entries
    332 }
    333 
    334297/* ----------------- basics (used from 'C') ------------------ */
    335298/*2
  • libpolys/polys/sparsmat.h

    rfe8998f r311eaa  
    3232void sm_KillModifiedRing(ring r);
    3333long sm_ExpBound(ideal, int, int, int, const ring);
    34 BOOLEAN sm_CheckDet(ideal, int, BOOLEAN, const ring);
    3534#endif
Note: See TracChangeset for help on using the changeset viewer.