Polynomial Homogeneous Test (CAS)
08-06-2016, 01:22 AM
Post: #1
 Eddie W. Shore Senior Member Posts: 927 Joined: Dec 2013
Polynomial Homogeneous Test (CAS)
A polynomial is homogeneous if all of the nonzero terms has the same degree. Tests a polynomial of four variables x, y, z, and t and their combinations (x*y, x*z, x*y*z, etc). If the polynomial in question is homogeneous, the program returns a 1 (for true), otherwise 0 is returned (for false).

HP Prime Program ishomogeneous
Code:
#cas ishomogeneous(poly):= BEGIN // 2016-08-03 EWS // x,y,z,t LOCAL tms,cnt,pt,lst,wp,dg,dgr; tms:=part(poly); lst:={}; FOR pt FROM 1 TO tms DO wp:=part(poly,pt); dg:=degree(wp,x)+degree(wp,y)+ degree(wp,z)+degree(wp,t); lst:=concat(lst,{dg}); // test IF pt≥2 THEN IF lst(pt)≠lst(pt-1) THEN RETURN 0; KILL; END; END; END; return 1; END; #end

Examples:
ishomogeneous(x^2 + 3) returns 0
ishomogeneous(x^2 + 3*y^2) returns 1 (all terms are of degree 2)
ishomogeneous(x^2*z – 3*y^2*t + x^3) returns 1 (all terms are of degree 3)
ishomogeneous(x^2*z – 3*y^2) returns 0

Source:

Avner Ash and Robert Gross. “Elliptic Tales. Curves, Counting, and Number Theory” Princeton University Press, New Jersey 2016.
 « Next Oldest | Next Newest »

User(s) browsing this thread: 1 Guest(s)