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> 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 ] ] > ] </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> sub := Group([ [ [ 0, -1 ], [ -1, 0 ] ] ]); @@ -590,7 +591,7 @@ <p> <pre> gap> WyckoffTranslation( W[3] ); -[ 1/3, 2/3 ] +[ 2/3, 1/3 ] </pre> <p> <a name = "SSEC007.6"></a> @@ -632,15 +633,15 @@ <pre> 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 ] ] > ] </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) );
