class SET_POLYI_PRIM
****

__Expand_DPolyM_in_Zp[x]_to_PolyM_in_Z[x]_with_PolyM|PolyN
__with_simple_try&error.
1. Make value sa if substitute integer [-PolyN.degree/4..PolyN.degree/4]
____to_expected_factor.
2. And construct the factor.




Public


Readonly Shareds
shared DpolyMs:POLYS_INTI;
shared PolyF:POLYS_INTI;
**** factor
shared PolyN:POLYS_INTI;
****
shared TblS:ARRAY{INTI};
**** work table
shared V0,V1,V1nS:ARRAY{INTI};
shared V0,V1,V1nS:ARRAY{INTI};
shared V0,V1,V1nS:ARRAY{INTI};

Writable Shareds
shared DpolyMs:POLYS_INTI;
shared PolyF:POLYS_INTI;
**** factor
shared PolyN:POLYS_INTI;
****
shared TblS:ARRAY{INTI};
**** work table
shared V0,V1,V1nS:ARRAY{INTI};
shared V0,V1,V1nS:ARRAY{INTI};
shared V0,V1,V1nS:ARRAY{INTI};

Features
setPolyR(degD:CARD,prime:INTI, out polyF:POLYS_INTI):BOOL
**** TRUE if Set set polynomial PolyF[] from TblS[]
__From_dPolyM_in_Zp[x],_recover_polyF_in_Z[x].
local var: dv,dt,at, deg,diff,i, tbl0, tbl2
setPolyRPrimitive(prime:INTI, inout PolyNx, DpolyM:POLYS_INTI, out factor:POLYS_INTI):BOOL
setV0Tbl(degD:CARD)
**** make table PolyN. Elements are non-zero, because PolyN has no factor (x-a) in this range
setV1Tbl(degD:CARD)
**** make table DpolyMs
setVal(ite,degD:CARD, prime:INTI):BOOL
**** "true" if ffind a factor.
__Note_that_change_PolyN_and_PolyM.

The Sather Home Page