| hermann on Sat, 15 Nov 2025 17:24:00 +0100 |
[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]
| Re: PARI/GP vecsort/versearch and Mod() |
On 2025-11-15 17:01, Bill Allombert wrote:
On Sat, Nov 15, 2025 at 03:48:05PM +0100, hermann@stamm-wilbrandt.de wrote:I wanted to check four 2x2 matrixes with entries in ℤ/2ℤ to be closed undermatrix addition and multiplication.Because of missing order relation for Mod() using vecsort/vecsearch directlywas no option.You have three options: - Use Set and setsearch - use Map and mapisdefined - use vecsort/vecsearch but apply lift to the vectors/ elements to remove the Mod. Cheers, Bill.
Thanks, your 3rd option is what I described.
How to make this work and get rid of 1st } and 2nd { ?
So all in one outer pair of braces?
$ gp -q < F4.new.gp
{0,1,a,b} is closed under matrix +
$
$ cat F4.new.gp
assert(b,s="")={if(!(b),error(Str(s)))};
{
F4 = [[Mod(0,2),Mod(0,2); \\ 0
Mod(0,2),Mod(0,2)],
[Mod(1,2),Mod(0,2); \\ 1
Mod(0,2),Mod(1,2)],
[Mod(0,2),Mod(1,2); \\ a
Mod(1,2),Mod(1,2)],
[Mod(1,2),Mod(1,2); \\ b
Mod(1,2),Mod(0,2)]];
slF4 = vecsort(lift(F4));
}
inF4(M)={vecsearch(slF4,lift(M))};
{
foreach(F4,a,
foreach(F4,b,
assert(inF4(a+b),"add not closed")));
print("{0,1,a,b} is closed under matrix +");
}
$
Regards,
Hermann.