Skip to content

Commit

Permalink
temporary fix of a vector space function
Browse files Browse the repository at this point in the history
When one creates a "row space" of vector objects then the base domain
of the generators must contain the given left acting domain,
otherwise not all scalar multiples of the vectors can be created.
Thus it may be necessary to replace the given generators by vectors
whose base domain is large enough.
(Alternatively, one could signal an error.)

As far as I understand, pull request #4797 had added/changed
some code in `lib/vspcrow.gi` that makes it possible to deal with
"row vector spaces" whose elements are in `IsVectorObj` (but not lists).

A lot of functionality for that is still missing,
the current change just makes one test pass that had not failed before
because of missing consistency checks.
  • Loading branch information
ThomasBreuer authored and fingolfin committed Feb 2, 2023
1 parent aa7b893 commit 51aa81e
Showing 1 changed file with 9 additions and 1 deletion.
10 changes: 9 additions & 1 deletion lib/vspcrow.gi
Original file line number Diff line number Diff line change
Expand Up @@ -161,16 +161,24 @@ InstallOtherMethod( LeftModuleByGenerators,
[ IsDivisionRing, IsList ],
# ensure it ranks above the generic method
function( F, mat )
local V,typ;
local V, typ, K, row;

# filter for vector objects, not compressed FF vectors
if not ForAll(mat,x->IsVectorObj(x) and not IsDataObjectRep(x)) then
TryNextMethod();
fi;
typ:=IsAttributeStoringRep and HasIsEmpty and IsFiniteDimensional;
if ForAll( mat, row -> IsSubset( F, BaseDomain(row) ) ) then
# Replace 'mat' by vector objects with base domain 'F'.
mat:= List( mat, v -> ChangedBaseDomain( v, F ) );
typ:=typ and IsGaussianRowSpace;
else
# Replace 'mat' by vector objects with base domain containing 'F'.
K:= F;
for row in mat do
K:= ClosureDivisionRing( K, BaseDomain( row ) );
od;
mat:= List( mat, v -> ChangedBaseDomain( v, K ) );
typ:=typ and IsVectorSpace and IsRowModule and IsNonGaussianRowSpace;
fi;

Expand Down

0 comments on commit 51aa81e

Please sign in to comment.