In light of the link provided by R.E.Boss and x: on complex numbers
x: 1j1
|domain error
| x:1j1
|[-0]
We might define rational query as occurring when the denominator of the
rationalization is small and not an error
ratq=:(1e8>{:@:(2&x:)) :: 0:"0
ratq ?10$0
0 0 0 0 0 0 0 0 0 0
ratq 1001%~i.10
1 1 1 1 1 1 1 1 1 1
ratq 1 j. i.10
1 0 0 0 0 0 0 0 0 0
Then a number is a root of unity if its log divided by 2 pi i is rational
ruq=:ratq@:(0j2p1%~^.)
ruq i:2
0 1 0 1 0
ruq ^0j2p1 * (i.%[)13
1 1 1 1 1 1 1 1 1 1 1 1 1
ruq ?10$0
0 0 0 0 0 0 0 0 0 0
Obviously limited by floating precision. Other limitations??
Best, Cliff
On 6/2/2014 5:55 PM, R.E. Boss wrote:
http://mathworld.wolfram.com/RootofUnity.html seem to indicate you are right.
R.E. Boss
Date: Mon, 2 Jun 2014 13:59:10 -0600
From: [email protected]
To: [email protected]
Subject: Re: [Jprogramming] Identifying roots of unity
Is n below a primitive root of unity?
n=._1^3r8
*./2 x:(12 o. n)%o.2
48
n^48
1j_3.9968e_15
Yes.
On Mon, Jun 2, 2014 at 1:42 PM, Don Guinn <[email protected]> wrote:
I don't think that this is a complete test. If 1~:|n then it it is not a
primitive root of unity. But n must be a complex number when raised to an
*integer* power is 1. Maybe converting the complex number to polar then
checking the angle and seeing if it is a rational fraction of a circle.
Obviously computers will always find some rational number though it might
require raising n to a very large power. There should be some reasonable
limit as to how large the power may be.
On Mon, Jun 2, 2014 at 1:08 PM, Raul Miller <[email protected]> wrote:
1=|n
Thanks,
--
Raul
On Mon, Jun 2, 2014 at 2:54 PM, Dan Bron <[email protected]> wrote:
Given a complex number, how can I determine whether it is a primitive
root
of unity?
(This is a subtask of a code golf problem, so the shorter the better)
-Dan
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm
--
Clifford A. Reiter
Lafayette College, Easton, PA 18042
http://webbox.lafayette.edu/~reiterc/
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm