Read-only forum archive

How to use NTL in singular?

How to use NTL in singular?

magichowlNew · Sun Aug 21, 2011 10:39 am

I want to generate a random element in a finite field, (may not be a prime field), do I have to write dynamic module? And I can't find a file to reference with the sourcecode written in the structure of dynamic module. Besides, how can I use NTL in singular? Should I write dynamic module too? Thank you

Re: How to use NTL in singular?

mlee · Mon Aug 22, 2011 12:06 pm

Hi,
you can use the function random in a prime field or sparsepoly in a non prime field (Please check the manual). NTL is used by default for univariate gcd and factorization. If you need NTL for anything besides this let me know.

Re: How to use NTL in singular?

magichowl · Thu Aug 25, 2011 11:43 am

but sparsepoly can not generate a random element of the field with equal posibility...

Re: How to use NTL in singular?

gorzel · Thu Aug 25, 2011 1:56 pm

What do you mean by

Quote:
but sparsepoly can not generate a random element of the field with equal posibility...


Use the command random for random integers within a specified range

http://www.singular.uni-kl.de/Manual/la ... htm#SEC340

Re: How to use NTL in singular?

magichowl · Sat Aug 27, 2011 7:51 am

Say, GF(3^3), I want randomly generate a element in this field, and each one with equal possibility to be outputted.

Re: How to use NTL in singular?

mlee · Mon Aug 29, 2011 11:36 am

Hi
Try something like
LIB "random.lib";
ring r= 3,x,dp;
poly f= sparsepoly (0,2,50,4);

ring s=(3,a),(x,y),dp;
minpoly= a3+2a+1;
map m= r,a;
m (f);
The sparsepoly (0,2,50,4) creates a random polynomial in x with coefficients in the range [1,4) of degree between 0 and 2. And each monomial is zero with probability 0,5.
The last 4 lines maps this polynomial to a ring s with coefficients from Z/3Z[a]/ (a3+2a+1).

Re: How to use NTL in singular?

magichowl · Tue Sep 27, 2011 4:01 am

Each coefficient of the monomial in f is zero with probability 1/3. So f must be defined as
poly f = sparsepoly (0,2,0,4);

Don't you think so?

Re: How to use NTL in singular?

mlee · Tue Sep 27, 2011 2:36 pm

If you want a uniformly random element of GF (3^3) you're right.

Re: How to use NTL in singular?

magichowl · Sat Oct 08, 2011 5:09 am

Thanks. But when I define a ring:
ring s=(9,a),(x,y),dp;
s;
// # ground field : 9
// primitive element : a
// minpoly : 1*a^2+2*a^1+2*a^0
// number of vars : 2
// block 1 : ordering dp
// : names x y
// block 2 : ordering C

then i can't reduce the elememts like a^6 or a7x2+a9y;
what i mean is to present the coefficients by the basis { 1, a },
in fact a^6 is (-a-1);

Re: How to use NTL in singular?

mlee · Tue Oct 11, 2011 2:24 pm

In your case GF (3^2) is represented by a primitive element. See http://www.singular.uni-kl.de/Manual/latest/sing_29.htm#SEC39 for an example of this.