HP Forums
polynomial calculations over Z/Zp (for prime p)? - Printable Version

+- HP Forums (https://www.hpmuseum.org/forum)
+-- Forum: HP Calculators (and very old HP Computers) (/forum-3.html)
+--- Forum: HP Prime (/forum-5.html)
+--- Thread: polynomial calculations over Z/Zp (for prime p)? (/thread-221.html)



polynomial calculations over Z/Zp (for prime p)? - Jeff Nye - 12-24-2013 04:00 AM

Hi,

Does the Prime have some way to compute with polynomials whose coefficients are in Z/pZ (for prime p)? If so, I'd be grateful for an example.

thank you,
Jeff


RE: polynomial calculations over Z/Zp (for prime p)? - Han - 12-24-2013 04:09 AM

You have several ways of implementing \( \mathbb{Z}/\mathbb{Z}_p[x]\). You can use vectors (of coefficients), actual symbolic expressions, or the "poly" type:
Code:

p:=3;

// examples below
p1:=[ 12 13 -20 5 ] % p;
p2:=(12x^3 + 13x^2 - 20x + 5) % p;
p3:=poly[ 12 13 -20 5 ] % p;



RE: polynomial calculations over Z/Zp (for prime p)? - Alberto Candel - 12-24-2013 07:04 AM

Hi,
What are the CAS settings for this to work? For example, quo() is documented in the xcas manual (2.25.3), but I cannot get it to work in the HP prime:
quo( (x^3+3x)%5,(2x^2+6x-5)%5)
should output -2x+1 but I get an error. Same if % is replaced by MOD (or mod). In fact, the HP prime example in the Help for MOD is 9 mod 5 results in an error. Maybe my CAS settings are wrong.


RE: polynomial calculations over Z/Zp (for prime p)? - Jeff Nye - 12-24-2013 11:56 AM

(12-24-2013 04:09 AM)Han Wrote:  
Code:

p:=3;
p1:=[ 12 13 -20 5 ] % p;
p2:=(12x^3 + 13x^2 - 20x + 5) % p;
p3:=poly[ 12 13 -20 5 ] % p;

These didn't work for me (using the latest firmware).

However, last night I stumbled upon the CAS %%(n,p) operator, which seems to be the % operator in xcas. With %% instead of %, example p1 worked fine. Example p2 produces a polynomial with non-modular coefficients. For example p3, I needed to say poly([ 12 13 -20 5 ] %% p).

Linear algebra seems to work with integers mod p. The expression [[4,3],[5,1]]%%3 defines a matrix of integers mod 3.


RE: polynomial calculations over Z/Zp (for prime p)? - Alberto Candel - 12-24-2013 03:39 PM

Yes, %% does the job. The single % is for percentage in the Prime. Very convoluted notation thou.


RE: polynomial calculations over Z/Zp (for prime p)? - Han - 12-24-2013 03:49 PM

(12-24-2013 11:56 AM)Jeff Nye Wrote:  
(12-24-2013 04:09 AM)Han Wrote:  
Code:

p:=3;
p1:=[ 12 13 -20 5 ] % p;
p2:=(12x^3 + 13x^2 - 20x + 5) % p;
p3:=poly[ 12 13 -20 5 ] % p;

These didn't work for me (using the latest firmware).

However, last night I stumbled upon the CAS %%(n,p) operator, which seems to be the % operator in xcas. With %% instead of %, example p1 worked fine. Example p2 produces a polynomial with non-modular coefficients. For example p3, I needed to say poly([ 12 13 -20 5 ] %% p).

Linear algebra seems to work with integers mod p. The expression [[4,3],[5,1]]%%3 defines a matrix of integers mod 3.

Thank you for the corrections


RE: polynomial calculations over Z/Zp (for prime p)? - Alberto Candel - 12-24-2013 04:10 PM

I wonder if one has a choice of residue system used. The %% uses the minimal residue system mod n. Is there a way to display results using the common (or least) residue system mod n (that is, {0,1,...,n-1})? The negative signs combined with the double %% make the results rather cumbersome to read.


RE: polynomial calculations over Z/Zp (for prime p)? - parisse - 12-25-2013 07:55 AM

You can remove the %% by the %% 0 command, then run irem on each coefficient.