Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package gap-cryst for openSUSE:Factory 
checked in at 2025-10-12 22:23:26
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/gap-cryst (Old)
 and      /work/SRC/openSUSE:Factory/.gap-cryst.new.18484 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "gap-cryst"

Sun Oct 12 22:23:26 2025 rev:2 rq:1310750 version:4.1.30

Changes:
--------
--- /work/SRC/openSUSE:Factory/gap-cryst/gap-cryst.changes      2023-12-28 
22:56:52.000358750 +0100
+++ /work/SRC/openSUSE:Factory/.gap-cryst.new.18484/gap-cryst.changes   
2025-10-12 22:28:23.991861301 +0200
@@ -1,0 +2,10 @@
+Sat Oct 11 17:49:14 UTC 2025 - Jan Engelhardt <[email protected]>
+
+- Update to release 4.1.30
+  * Standardized Wyckoff position representation, which is now
+    stable across GAP versions.
+  * Adaptions to new treatment of rational matrix groups.
+  * Replaced an incorrect implementation of IsSymmorphicSpaceGroup
+    by a correct one.
+
+-------------------------------------------------------------------

Old:
----
  cryst-4.1.27.tar.gz

New:
----
  _scmsync.obsinfo
  build.specials.obscpio
  cryst-4.1.30.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ gap-cryst.spec ++++++
--- /var/tmp/diff_new_pack.wJOFpx/_old  2025-10-12 22:28:24.499882573 +0200
+++ /var/tmp/diff_new_pack.wJOFpx/_new  2025-10-12 22:28:24.503882740 +0200
@@ -1,7 +1,7 @@
 #
 # spec file for package gap-cryst
 #
-# Copyright (c) 2023 SUSE LLC
+# Copyright (c) 2025 SUSE LLC and contributors
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -17,19 +17,19 @@
 
 
 Name:           gap-cryst
-Version:        4.1.27
+Version:        4.1.30
 Release:        0
 Summary:        GAP: Computing with crystallographic groups
 License:        GPL-2.0-or-later
 Group:          Productivity/Scientific/Math
 URL:            https://www.math.uni-bielefeld.de/~gaehler/gap/packages.php
 #Git-Clone:     https://github.com/gap-packages/cryst
-
 Source:         
https://www.math.uni-bielefeld.de/~gaehler/gap/Cryst/cryst-%version.tar.gz
 BuildArch:      noarch
 BuildRequires:  gap-rpm-devel
 BuildRequires:  xz
-Requires:       gap-core >= 4.11
+Requires:       gap-core >= 4.12
+Requires:       gap-polenta >= 1.3.10
 Requires:       gap-polycyclic >= 2.16
 Suggests:       gap-caratinterface >= 2.3.3
 Suggests:       gap-crystcat >= 1.1.9

++++++ _scmsync.obsinfo ++++++
mtime: 1760205016
commit: b6e5aff3f4088a7b07df9022136517c9ae18b3ac4eb672c8f462d12ae1a88549
url: https://src.opensuse.org/jengelh/gap-cryst
revision: master

++++++ build.specials.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/.gitignore new/.gitignore
--- old/.gitignore      1970-01-01 01:00:00.000000000 +0100
+++ new/.gitignore      2025-10-11 19:50:27.000000000 +0200
@@ -0,0 +1 @@
+.osc

++++++ cryst-4.1.27.tar.gz -> cryst-4.1.30.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cryst/Changelog new/cryst/Changelog
--- old/cryst/Changelog 2023-12-18 17:47:10.000000000 +0100
+++ new/cryst/Changelog 2025-09-22 18:21:27.000000000 +0200
@@ -1,3 +1,23 @@
+Version 4.1.30
+
+   - fixed a regression in WyckoffPositions (thanks to kiryph for reporting).
+
+Version 4.1.29
+
+   - fix an inconsistent numbering of stabilizer classes of WyckoffPositions
+     (thanks to Bernard Field for analyzing and reporting)
+
+   - replaced an incorrect implementation of IsSymmorphicSpaceGroup by a
+     correct one (thanks to Hongyi Zhao for analyzing and reporting)
+
+Version 4.1.28
+
+   - standardized Wyckoff position representation, which is now stable
+       across GAP versions
+
+   - adaptions to new treatment of rational matrix groups (we need
+     the polenta package now)
+
 Version 4.1.27
 
    - fixed incomplete conjugation of Wyckoff positions
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cryst/PackageInfo.g new/cryst/PackageInfo.g
--- old/cryst/PackageInfo.g     2023-12-18 17:48:29.000000000 +0100
+++ new/cryst/PackageInfo.g     2025-09-22 18:23:46.000000000 +0200
@@ -9,8 +9,8 @@
 
 Subtitle := "Computing with crystallographic groups",
 
-Version := "4.1.27",
-Date := "18/12/2023", # dd/mm/yyyy format
+Version := "4.1.30",
+Date := "22/09/2025", # dd/mm/yyyy format
 License := "GPL-2.0-or-later",
 
 ArchiveURL := Concatenation( 
@@ -99,8 +99,9 @@
 ),
 
 Dependencies := rec(
-  GAP := ">=4.11",
-  NeededOtherPackages := [ [ "polycyclic", ">=2.16" ] ],
+  GAP := ">=4.12",
+  NeededOtherPackages := [ [ "polycyclic", ">=2.16" ],
+                           [ "polenta", ">= 1.3.10" ] ],
   SuggestedOtherPackages := [ [ "CrystCat", ">=1.1.9" ],
                               [ "CaratInterface", ">=2.3.3" ],
                               [ "XGAP", ">=4.22" ] 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cryst/doc/cryst.tex new/cryst/doc/cryst.tex
--- old/cryst/doc/cryst.tex     2023-12-18 17:35:40.000000000 +0100
+++ new/cryst/doc/cryst.tex     2025-07-17 11:22:37.000000000 +0200
@@ -486,30 +486,31 @@
 gap> S := SpaceGroupIT(2,14);
 SpaceGroupOnRightIT(2,14,'1')
 gap> W := WyckoffPositions(S);
-[ < Wyckoff position, point group 3, translation := [ 0, 0 ], 
+[ < Wyckoff position, point group 1, translation := [ 0, 0 ], 
     basis := [  ] >
-    , < Wyckoff position, point group 3, translation := [ 2/3, 1/3 ], 
+    , < Wyckoff position, point group 1, translation := [ 1/3, 2/3 ], 
     basis := [  ] >
-    , < Wyckoff position, point group 3, translation := [ 1/3, 2/3 ], 
+    , < Wyckoff position, point group 1, translation := [ 2/3, 1/3 ], 
     basis := [  ] >
     , < Wyckoff position, point group 2, translation := [ 0, 0 ], 
     basis := [ [ 1, -1 ] ] >
-    , < Wyckoff position, point group 1, translation := [ 0, 0 ], 
+    , < Wyckoff position, point group 3, translation := [ 0, 0 ], 
     basis := [ [ 1, 0 ], [ 0, 1 ] ] >
      ]
 \endexample
 
 In the previous example, <S> has three kinds of special points
 (the basis is empty), whose representatives all have a stabilizer 
-with the same point group (with label 1), one kind of special line
-(the basis has length 1), and the general position.
+with the a point group in the same conjugacy class (with label 1),
+one kind of special line (the basis has length 1), and the general
+position.
 
 \>WyckoffPositionsByStabilizer( <S>, <sub> ) O
 
 where <S> is a space group and <sub> a subgroup of the point group or
 a list of such subgroups, determines only the Wyckoff positions whose
-representatives have a stabilizer with a point group equal to the 
-subgroup <sub> or contained in the list <sub>, respectively.
+representatives have a stabilizer with a point group conjugate to the 
+subgroup <sub> or to a subgroup contained in the list <sub>, respectively.
 
 \beginexample
 gap> sub := Group([ [ [ 0, -1 ], [ -1, 0 ] ] ]);
@@ -548,7 +549,7 @@
 
 \beginexample
 gap> WyckoffTranslation( W[3] );
-[ 1/3, 2/3 ]
+[ 2/3, 1/3 ]
 \endexample
 
 \>WyckoffSpaceGroup( <W> ) O
@@ -587,15 +588,15 @@
 \beginexample
 gap> orb := WyckoffOrbit( W[4] );
 [ < Wyckoff position, point group 2, translation := [ 0, 0 ], 
+    basis := [ [ -2, -1 ] ] >
+    , < Wyckoff position, point group 2, translation := [ 0, 0 ], 
     basis := [ [ 1, -1 ] ] >
     , < Wyckoff position, point group 2, translation := [ 0, 0 ], 
     basis := [ [ 1, 2 ] ] >
-    , < Wyckoff position, point group 2, translation := [ 0, 0 ], 
-    basis := [ [ -2, -1 ] ] >
      ]
 gap> Set(orb);
 [ < Wyckoff position, point group 2, translation := [ 0, 0 ], 
-    basis := [ [ 1, -1 ] ] >
+    basis := [ [ -2, -1 ] ] >
      ]
 \endexample
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cryst/doc/make_doc new/cryst/doc/make_doc
--- old/cryst/doc/make_doc      2022-05-18 16:27:41.000000000 +0200
+++ new/cryst/doc/make_doc      2025-09-15 10:47:09.000000000 +0200
@@ -2,14 +2,24 @@
 set -e
 
 echo "TeXing documentation"
-rm -f manual.aux manual.dvi manual.idx manual.ilg manual.ind manual.lab 
manual.log manual.six manual.toc
+# delete old stuff to avoid spurious or "hidden errors" caused by their 
presence
+rm -f manual.{aux,bbl,blg,dvi,idx,ilg,ind,lab,log,pdf,ps,six,toc}
+# TeX the manual
 tex manual
+# ... and build its bibliography
+#bibtex manual
+# TeX the manual again to incorporate the ToC
+tex manual
+# ... and build the index
 ../../../doc/manualindex manual
+# Finally TeX the manual again to get cross-references right
 tex manual
 
-echo "Creating PDF version"
-pdftex manual; pdftex manual
+# Create PDF version
+pdftex manual
+pdftex manual
 
-echo "Creating HTML documentation"
+# The HTML version of the manual
 mkdir -p ../htm
-../../../etc/convert.pl -c -i -u -n cryst . ../htm
+echo "Creating HTML documentation"
+../../../etc/convert.pl -i -u -c -n cryst . ../htm
Binary files old/cryst/doc/manual.pdf and new/cryst/doc/manual.pdf differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cryst/doc/manual.tex new/cryst/doc/manual.tex
--- old/cryst/doc/manual.tex    2023-12-18 17:51:21.000000000 +0100
+++ new/cryst/doc/manual.tex    2025-09-22 18:24:55.000000000 +0200
@@ -19,7 +19,7 @@
   \medskip
   \centerline{\subtitlefont A GAP4 Package}
   \bigskip\medskip
-  \centerline{\secfont Version 4.1.27}
+  \centerline{\secfont Version 4.1.30}
   \bigskip\medskip
   \vfill
 
@@ -36,7 +36,7 @@
   \centerline{\secfont{\Month} \Year}
 
   \vfill
-  \centerline{Copyright {\copyright} 1999--2023 by 
+  \centerline{Copyright {\copyright} 1999--2025 by 
               Bettina Eick, Franz G{\accent127 a}hler, and Werner Nickel}
 
   \bigskip
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cryst/gap/cryst.gi new/cryst/gap/cryst.gi
--- old/cryst/gap/cryst.gi      2023-12-18 17:35:40.000000000 +0100
+++ new/cryst/gap/cryst.gi      2025-07-18 10:45:14.000000000 +0200
@@ -544,7 +544,21 @@
 ##
 InstallMethod( IsSymmorphicSpaceGroup,
     "generic method", true, [ IsAffineCrystGroupOnLeftOrRight ], 0,
-    S -> CocVecs( S ) = [] );
+    function ( S )
+    local d, gen, mat, vec, sol;
+    d := DimensionOfMatrixGroup( S ) - 1;
+    gen := GeneratorsOfGroup( StandardAffineCrystGroup(S) );
+    gen := Filtered( List( gen, g -> g - One(S) ),
+                     m -> not IsZero( m{[1..d]}{[1..d]} ) );
+    if IsEmpty( gen ) then gen := [ One(S) ]; fi;
+    if IsAffineCrystGroupOnLeft(S) then
+        gen := List( gen, TransposedMat );
+    fi;
+    mat := List( [1..d], i -> Concatenation( List( gen, g -> g[i]{[1..d]} ) ) 
);
+    vec := List( Concatenation( List( gen, g -> g[d+1]{[1..d]} ) ), 
FractionModOne );
+    sol := SolveInhomEquationsModZ( mat, vec, true );
+    return not IsEmpty( sol[1] );
+end );
 
 #############################################################################
 ##
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cryst/gap/wyckoff.gd new/cryst/gap/wyckoff.gd
--- old/cryst/gap/wyckoff.gd    2018-01-25 15:01:01.000000000 +0100
+++ new/cryst/gap/wyckoff.gd    2025-07-18 10:53:05.000000000 +0200
@@ -100,3 +100,9 @@
 ##
 DeclareOperation( "WyckoffGraph", 
     [ IsAffineCrystGroupOnLeftOrRight, IsRecord ] );
+
+#############################################################################
+##
+#F  SolveInhomEquationsModZ( mat, vec, onRight ) . . . solve inhom. eq. mod Z 
+##
+DeclareGlobalFunction( "SolveInhomEquationsModZ" ); 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cryst/gap/wyckoff.gi new/cryst/gap/wyckoff.gi
--- old/cryst/gap/wyckoff.gi    2023-12-18 17:35:40.000000000 +0100
+++ new/cryst/gap/wyckoff.gi    2025-09-22 18:17:16.000000000 +0200
@@ -272,7 +272,7 @@
     fi;
     U := AffineCrystGroupOnRight( gen, One( S ) );
     r := rec( translation := t, basis := B, spaceGroup  := S );
-    o := Orbit( U, r, ImageAffineSubspaceLatticePointwise );
+    o := SortedList( Orbit( U, r, ImageAffineSubspaceLatticePointwise ) );
     s := List( o, x -> WyckoffPositionObject( 
                               rec( translation := x.translation, 
                                    basis       := x.basis, 
@@ -314,7 +314,7 @@
 ##         x * Q^-1 * D = b       with D a diagonal matrix.
 ##  Solving y * D = b we get x = y * Q.
 ##
-SolveInhomEquationsModZ := function( M, b, onRight )
+InstallGlobalFunction( SolveInhomEquationsModZ, function( M, b, onRight )
 
     local   Q,  j,  L,  space,  i,  v;
     
@@ -353,7 +353,7 @@
     L := List( L, l->List( l, q->FractionModOne(q) ) );
     
     return [ L, Q{[Length(M)+1..Length(Q)]} ];
-end;
+end );
 
 #############################################################################
 ##
@@ -463,9 +463,12 @@
                 w.basis       := w.basis * T;
             fi;
             w.spaceGroup  := S;
-            w.class       := i;
             ReduceAffineSubspaceLattice( w );
-            Add( W[dim], w );
+            w.class       := i;
+            if Size( WyckoffStabilizer( WyckoffPositionObject( ShallowCopy(w) 
) ) ) =
+               Size( stabs[i] ) then
+                Add( W[dim], w );
+            fi;
         od;
     od;
 
@@ -483,11 +486,12 @@
             s := lst[1];
             c := s.class;
             Unbind( s.class );
-            orb := Orbit( U, Immutable(s), ImageAffineSubspaceLattice );
+            orb := SortedList( Orbit( U, Immutable(s), 
ImageAffineSubspaceLattice ) );
             lst := Filtered( lst, 
                    x -> not rec( translation := x.translation,
                                  basis       := x.basis,
                                  spaceGroup  := x.spaceGroup   ) in orb );
+            s := ShallowCopy( orb[1] );
             s.class := c;
             Add( new, WyckoffPositionObject( s ) );
         od;
@@ -525,11 +529,12 @@
 ##
 WyPosStep := function( idx, G, M, b, lst )
 
-    local g, G2, M2, b2, F, c, added, stop, f, d, w, O;
+    local g, G2, ln, M2, b2, F, c, added, stop, f, d, w, O, o;
 
     g := lst.z[idx];
     if not g in G then
         G2 := ClosureGroup( G, g );
+        ln := Size( PointGroup(lst.S2) ) / Size( G2 );
         M2 := Concatenation( M, lst.mat[idx] );
         b2 := Concatenation( b, lst.vec[idx] );
         if M <> [] then
@@ -554,8 +559,8 @@
             f.spaceGroup  := lst.S;
             ReduceAffineSubspaceLattice( f );
             if not f in lst.sp[d] then
-                O := Orbit( lst.S2, Immutable(f), ImageAffineSubspaceLattice );
-                w := ShallowCopy( f );
+                O := SortedList( Orbit( lst.S2, Immutable(f), 
ImageAffineSubspaceLattice ) );
+                w := ShallowCopy( O[1] );
                 w.class := c;
                 UniteSet( lst.sp[d], O );
                 Add( lst.W[d], WyckoffPositionObject(w) );
@@ -596,7 +601,7 @@
 
     zz := []; mat := []; vec := [];
     for g in Zuppos( NiceObject( P ) ) do
-        if g <> () then
+        if not IsOne(g) then
             m := NiceToCrystStdRep(P,g);
             if IsAffineCrystGroupOnRight( S ) then
                 m := TransposedMat(m);
@@ -627,7 +632,7 @@
     lst.W := List( [1..d+1], x -> [] ); Add( lst.W[d+1], w );
 
     if 1 <= Length(lst.z) then
-        WyPosStep(1,TrivialGroup(IsPermGroup),[],[],lst);
+        WyPosStep(1,TrivialSubgroup(NiceObject( P )),[],[],lst);
     fi;
 
     return Flat(lst.W);
@@ -642,6 +647,8 @@
     true, [ IsAffineCrystGroupOnLeftOrRight ], 0,
 function( S )
 
+    local W, c1, c2, z, i, j;
+
     # check if we indeed have a space group
     if not IsSpaceGroup( S ) then
         Error("S must be a space group");
@@ -649,11 +656,25 @@
 
     # for small dimensions, the recursive method is faster
     if DimensionOfMatrixGroup( S ) < 6 then
-        return WyPosAT( S );
+        W := WyPosAT( S );
     else
-        return WyPosSGL( S );
+        W := WyPosSGL( S );
     fi;
 
+    W  := SortedList( W );
+    c1 := List( W, w -> w!.class ); c2 := [];
+    z  := 1;
+    for i in DuplicateFreeList( c1 ) do
+        for j in Positions( c1, i ) do
+            c2[j] := z;
+        od;
+        z := z + 1;
+    od;
+
+    return List( [1..Length(W)], i -> WyckoffPositionObject(
+        rec( basis := W[i]!.basis, spaceGroup := W[i]!.spaceGroup,
+             translation := W[i]!.translation, class := c2[i] ) ) );
+
 end );
 
 #############################################################################
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cryst/htm/CHAP001.htm new/cryst/htm/CHAP001.htm
--- old/cryst/htm/CHAP001.htm   2023-12-18 17:55:24.000000000 +0100
+++ new/cryst/htm/CHAP001.htm   2025-09-22 18:27:27.000000000 +0200
@@ -72,5 +72,5 @@
 <p>
 [<a href = "chapters.htm">Up</a>] [<a href ="CHAP002.htm">Next</a>] [<a href = 
"theindex.htm">Index</a>]
 <P>
-<address>cryst manual<br>Dezember 2023
+<address>cryst manual<br>September 2025
 </address></body></html>
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cryst/htm/CHAP002.htm new/cryst/htm/CHAP002.htm
--- old/cryst/htm/CHAP002.htm   2023-12-18 17:55:24.000000000 +0100
+++ new/cryst/htm/CHAP002.htm   2025-09-22 18:27:27.000000000 +0200
@@ -524,31 +524,32 @@
 gap&gt; S := SpaceGroupIT(2,14);
 SpaceGroupOnRightIT(2,14,'1')
 gap&gt; W := WyckoffPositions(S);
-[ &lt; Wyckoff position, point group 3, translation := [ 0, 0 ], 
+[ &lt; Wyckoff position, point group 1, translation := [ 0, 0 ], 
     basis := [  ] &gt;
-    , &lt; Wyckoff position, point group 3, translation := [ 2/3, 1/3 ], 
+    , &lt; Wyckoff position, point group 1, translation := [ 1/3, 2/3 ], 
     basis := [  ] &gt;
-    , &lt; Wyckoff position, point group 3, translation := [ 1/3, 2/3 ], 
+    , &lt; Wyckoff position, point group 1, translation := [ 2/3, 1/3 ], 
     basis := [  ] &gt;
     , &lt; Wyckoff position, point group 2, translation := [ 0, 0 ], 
     basis := [ [ 1, -1 ] ] &gt;
-    , &lt; Wyckoff position, point group 1, translation := [ 0, 0 ], 
+    , &lt; Wyckoff position, point group 3, translation := [ 0, 0 ], 
     basis := [ [ 1, 0 ], [ 0, 1 ] ] &gt;
      ]
 </pre>
 <p>
 In the previous example, <var>S</var> has three kinds of special points
 (the basis is empty), whose representatives all have a stabilizer 
-with the same point group (with label 1), one kind of special line
-(the basis has length 1), and the general position.
+with the a point group in the same conjugacy class (with label 1),
+one kind of special line (the basis has length 1), and the general
+position.
 <p>
 <a name = "SSEC007.2"></a>
 <li><code>WyckoffPositionsByStabilizer( </code><var>S</var><code>, 
</code><var>sub</var><code> ) O</code>
 <p>
 where <var>S</var> is a space group and <var>sub</var> a subgroup of the point 
group or
 a list of such subgroups, determines only the Wyckoff positions whose
-representatives have a stabilizer with a point group equal to the 
-subgroup <var>sub</var> or contained in the list <var>sub</var>, respectively.
+representatives have a stabilizer with a point group conjugate to the 
+subgroup <var>sub</var> or to a subgroup contained in the list <var>sub</var>, 
respectively.
 <p>
 <pre>
 gap&gt; sub := Group([ [ [ 0, -1 ], [ -1, 0 ] ] ]);
@@ -590,7 +591,7 @@
 <p>
 <pre>
 gap&gt; WyckoffTranslation( W[3] );
-[ 1/3, 2/3 ]
+[ 2/3, 1/3 ]
 </pre>
 <p>
 <a name = "SSEC007.6"></a>
@@ -632,15 +633,15 @@
 <pre>
 gap&gt; orb := WyckoffOrbit( W[4] );
 [ &lt; Wyckoff position, point group 2, translation := [ 0, 0 ], 
+    basis := [ [ -2, -1 ] ] &gt;
+    , &lt; Wyckoff position, point group 2, translation := [ 0, 0 ], 
     basis := [ [ 1, -1 ] ] &gt;
     , &lt; Wyckoff position, point group 2, translation := [ 0, 0 ], 
     basis := [ [ 1, 2 ] ] &gt;
-    , &lt; Wyckoff position, point group 2, translation := [ 0, 0 ], 
-    basis := [ [ -2, -1 ] ] &gt;
      ]
 gap&gt; Set(orb);
 [ &lt; Wyckoff position, point group 2, translation := [ 0, 0 ], 
-    basis := [ [ 1, -1 ] ] &gt;
+    basis := [ [ -2, -1 ] ] &gt;
      ]
 </pre>
 <p>
@@ -1008,5 +1009,5 @@
 <p>
 [<a href = "chapters.htm">Up</a>] [<a href ="CHAP001.htm">Previous</a>] [<a 
href = "theindex.htm">Index</a>]
 <P>
-<address>cryst manual<br>Dezember 2023
+<address>cryst manual<br>September 2025
 </address></body></html>
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cryst/htm/biblio.htm new/cryst/htm/biblio.htm
--- old/cryst/htm/biblio.htm    2023-12-18 17:55:24.000000000 +0100
+++ new/cryst/htm/biblio.htm    2025-09-22 18:27:27.000000000 +0200
@@ -28,5 +28,5 @@
 </dl><p>
 [<a href="chapters.htm">Up</a>]<p>
 <P>
-<address>cryst manual<br>Dezember 2023
+<address>cryst manual<br>September 2025
 </address></body></html>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cryst/htm/chapters.htm new/cryst/htm/chapters.htm
--- old/cryst/htm/chapters.htm  2023-12-18 17:55:24.000000000 +0100
+++ new/cryst/htm/chapters.htm  2025-09-22 18:27:27.000000000 +0200
@@ -13,5 +13,5 @@
 <li><a href="theindex.htm">Index</a>
 </ul><p>
 <P>
-<address>cryst manual<br>Dezember 2023
+<address>cryst manual<br>September 2025
 </address></body></html>
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cryst/htm/theindex.htm new/cryst/htm/theindex.htm
--- old/cryst/htm/theindex.htm  2023-12-18 17:55:24.000000000 +0100
+++ new/cryst/htm/theindex.htm  2025-09-22 18:27:27.000000000 +0200
@@ -135,5 +135,5 @@
 </dl><p>
 [<a href="chapters.htm">Up</a>]<p>
 <P>
-<address>cryst manual<br>Dezember 2023
+<address>cryst manual<br>September 2025
 </address></body></html>
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cryst/tst/cryst.tst new/cryst/tst/cryst.tst
--- old/cryst/tst/cryst.tst     2023-12-18 17:35:40.000000000 +0100
+++ new/cryst/tst/cryst.tst     2025-07-17 11:22:37.000000000 +0200
@@ -14,7 +14,7 @@
 gap> C := SpaceGroupIT( 3, 133 );
 SpaceGroupOnRightIT(3,133,'2')
 
-gap> P := PointGroup( C );
+gap> P := PointGroup( C );; Size( P );; P;
 <matrix group of size 16 with 4 generators>
 
 gap> NormalizerInGLnZ( P );
@@ -24,29 +24,29 @@
 SpaceGroupOnRightIT(3,68,'2')
 
 gap> pos := WyckoffPositions(G);
-[ < Wyckoff position, point group 3, translation := [ 0, 3/4, 1/4 ], 
+[ < Wyckoff position, point group 1, translation := [ 0, 0, 0 ], 
     basis := [  ] >
-    , < Wyckoff position, point group 3, translation := [ 0, 3/4, 3/4 ], 
+    , < Wyckoff position, point group 2, translation := [ 0, 1/4, 1/4 ], 
     basis := [  ] >
-    , < Wyckoff position, point group 6, translation := [ 0, 0, 1/2 ], 
+    , < Wyckoff position, point group 2, translation := [ 0, 1/4, 3/4 ], 
     basis := [  ] >
-    , < Wyckoff position, point group 6, translation := [ 1/4, 1/4, 1/2 ], 
+    , < Wyckoff position, point group 1, translation := [ 1/4, 1/4, 0 ], 
     basis := [  ] >
-    , < Wyckoff position, point group 2, translation := [ 1/4, 0, 0 ], 
+    , < Wyckoff position, point group 3, translation := [ 0, 1/4, 0 ], 
     basis := [ [ 0, 0, 1 ] ] >
-    , < Wyckoff position, point group 2, translation := [ 0, 3/4, 0 ], 
+    , < Wyckoff position, point group 3, translation := [ 1/4, 0, 0 ], 
     basis := [ [ 0, 0, 1 ] ] >
     , < Wyckoff position, point group 4, translation := [ 0, 0, 1/4 ], 
     basis := [ [ 0, 1, 0 ] ] >
-    , < Wyckoff position, point group 5, translation := [ 1/4, 1/4, 1/4 ], 
-    basis := [ [ 1, 0, 0 ] ] >
-    , < Wyckoff position, point group 1, translation := [ 0, 0, 0 ], 
+    , < Wyckoff position, point group 5, translation := [ 0, 0, 0 ], 
     basis := [ [ 1/2, 1/2, 0 ], [ 0, 1, 0 ], [ 0, 0, 1 ] ] >
+    , < Wyckoff position, point group 6, translation := [ 1/4, 1/4, 1/4 ], 
+    basis := [ [ 1, 0, 0 ] ] >
      ]
 
 gap> WyckoffStabilizer(pos[5]);
 Group(
-[ [ [ -1, 0, 0, 0 ], [ 0, -1, 0, 0 ], [ 0, 0, 1, 0 ], [ 1/2, 0, 0, 1 ] ] ])
+[ [ [ -1, 0, 0, 0 ], [ 0, -1, 0, 0 ], [ 0, 0, 1, 0 ], [ 0, 1/2, 0, 1 ] ] ])
 
 gap> S := SpaceGroupIT(2,7);
 SpaceGroupOnRightIT(2,7,'1')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cryst/tst/crystcat.tst new/cryst/tst/crystcat.tst
--- old/cryst/tst/crystcat.tst  2023-12-18 17:35:40.000000000 +0100
+++ new/cryst/tst/crystcat.tst  2025-07-17 11:22:37.000000000 +0200
@@ -43,7 +43,7 @@
 Group([ (2,4)(3,8)(5,6), (2,5,6,4)(3,7,8,9), (1,2,6)(3,7,5)(4,9,8), (1,3,8)
 (2,7,4)(5,9,6), (), (), (), () ])
 
-gap> P := PointGroup( C );
+gap> P := PointGroup( C );; Size( P );; P;
 <matrix group of size 72 with 4 generators>
 
 gap> IsColorGroup( P );
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cryst/tst/manual.tst new/cryst/tst/manual.tst
--- old/cryst/tst/manual.tst    2023-12-18 17:35:40.000000000 +0100
+++ new/cryst/tst/manual.tst    2025-07-17 11:22:37.000000000 +0200
@@ -68,15 +68,15 @@
 SpaceGroupOnRightIT(2,14,'1')
 
 gap> W := WyckoffPositions(S);
-[ < Wyckoff position, point group 3, translation := [ 0, 0 ], 
+[ < Wyckoff position, point group 1, translation := [ 0, 0 ], 
     basis := [  ] >
-    , < Wyckoff position, point group 3, translation := [ 2/3, 1/3 ], 
+    , < Wyckoff position, point group 1, translation := [ 1/3, 2/3 ], 
     basis := [  ] >
-    , < Wyckoff position, point group 3, translation := [ 1/3, 2/3 ], 
+    , < Wyckoff position, point group 1, translation := [ 2/3, 1/3 ], 
     basis := [  ] >
     , < Wyckoff position, point group 2, translation := [ 0, 0 ], 
     basis := [ [ 1, -1 ] ] >
-    , < Wyckoff position, point group 1, translation := [ 0, 0 ], 
+    , < Wyckoff position, point group 3, translation := [ 0, 0 ], 
     basis := [ [ 1, 0 ], [ 0, 1 ] ] >
      ]
 
@@ -98,7 +98,7 @@
 [ [ 1, -1 ] ]
 
 gap> WyckoffTranslation( W[3] );
-[ 1/3, 2/3 ]
+[ 2/3, 1/3 ]
 
 gap> WyckoffSpaceGroup( W[1] );
 SpaceGroupOnRightIT(2,14,'1')
@@ -111,15 +111,15 @@
 
 gap> orb := WyckoffOrbit( W[4] );
 [ < Wyckoff position, point group 2, translation := [ 0, 0 ], 
-    basis := [ [ 1, -1 ] ] >
-    , < Wyckoff position, point group 2, translation := [ 0, 0 ], 
+    basis := [ [ -2, -1 ] ] >,
+  < Wyckoff position, point group 2, translation := [ 0, 0 ], 
+    basis := [ [ 1, -1 ] ] >,
+  < Wyckoff position, point group 2, translation := [ 0, 0 ], 
     basis := [ [ 1, 2 ] ] >
-    , < Wyckoff position, point group 2, translation := [ 0, 0 ], 
-    basis := [ [ -2, -1 ] ] >
      ]
 gap> Set(orb);
 [ < Wyckoff position, point group 2, translation := [ 0, 0 ], 
-    basis := [ [ 1, -1 ] ] >
+    basis := [ [ -2, -1 ] ] >
      ]
 
 gap> G := Group(  (1,2,3), (2,3,4) );

Reply via email to