Skip to content

start of my comments#90

Open
cdwensley wants to merge 2 commits intomasterfrom
straight
Open

start of my comments#90
cdwensley wants to merge 2 commits intomasterfrom
straight

Conversation

@cdwensley
Copy link
Copy Markdown
Collaborator

@ThomasBreuer
This is about some changes that I intend to suggest, as time permits.
I am approaching this addition to Utils from the position of someone who knows nothing about straight line programs.
It would be useful if this Chapter 10 was relatively self-contained, rather than it being necessary to refer to the reference manual. So here I would like to add a simple example of an slp, and convert one to a gslp.

But, before that, there are some comments to be made on the implementation - see later.

@codecov
Copy link
Copy Markdown

codecov bot commented Apr 1, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 85.21%. Comparing base (63ccff0) to head (801da3c).

Additional details and impacted files
@@           Coverage Diff           @@
##           master      #90   +/-   ##
=======================================
  Coverage   85.21%   85.21%           
=======================================
  Files          32       32           
  Lines        1867     1867           
=======================================
  Hits         1591     1591           
  Misses        276      276           
Files with missing lines Coverage Δ
lib/gslp.gd 100.00% <ø> (ø)
lib/gslp.gi 99.25% <ø> (ø)
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@ThomasBreuer
Copy link
Copy Markdown
Contributor

@cdwensley I do not catch the point.
Gslps are intended as a generalization of the slps in the GAP library, which are special cases of gslps.
In particular, there is no conversion of slps into gslps.
In order to make the description of gslps self-contained, we would have to repeat the relevant parts from the description of slps.
Why would this make sense?

@cdwensley
Copy link
Copy Markdown
Collaborator Author

Does it make sense to allow: GeneralizedStraightLineProgram( slp );
rather than having to do: GeneralizedStraightLineProgram( LinesOf...) ?

@ThomasBreuer
Copy link
Copy Markdown
Contributor

Does it make sense to allow: GeneralizedStraightLineProgram( slp );
rather than having to do: GeneralizedStraightLineProgram( LinesOf...) ?

Currently GeneralizedStraightLineProgram( slp ) is not supported.
The only meaningful definition would be to return slp.
Why would this be useful?

@cdwensley
Copy link
Copy Markdown
Collaborator Author

It may not be 'useful', but the chapter in the manual starts off by saying that a glsp has one of three forms, the first being a straight line program. So it should be a simple matter to convert an slp into a glsp.

@cdwensley
Copy link
Copy Markdown
Collaborator Author

I was not at all sure that GeneralizedStraightLineProgram( "union", [slp1, slp2] ); should work,
though intuitively it should, but it seems to partially:

gap> slp := StraightLineProgram( [ [[1,3,2,3],3], [3,1,2,1,1,1,3,1] ], 2 );
<straight line program>
gap> res := ResultOfStraightLineProgram( slp, gens );            
x^3*y^4*x^4*y^3
gap> gslp := GeneralizedStraightLineProgram( "union", [ slp, slp ] );
<generalized straight line program>
gap> gres := ResultOfGeneralizedStraightLineProgram( gslp, gens );
Error, here at lib/gslp.gi:126 called from
<function "ResultOfStraightLineProgram [ IsGeneralizedStraightLineProgram, IsH\
omogeneousList ]">( <arguments> )
 called from read-eval loop at *stdin*:155
you can 'quit;' to quit to outer loop, or
you can 'return;' to continue
brk> '''
In this case it appears that data[2] = [ x^3*y^4*x^4*y^3, x^3*y^4*x^4*y^3 ], which is not a list of lists.

@cdwensley
Copy link
Copy Markdown
Collaborator Author

This is the addition to the manual which I had in mind.
If you do not like it, we can easily delete this branch.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants