Anonymous user
Roots of unity: Difference between revisions
→{{header|Ada}}: Ada example fixed
(→{{header|C}}: Syntax highlighting + minor mods) |
(→{{header|Ada}}: Ada example fixed) |
||
Line 2:
=={{header|Ada}}==
<ada>
with Ada.Text_IO; use Ada.Text_IO;
with Ada.Numerics.Complex_Types; use Ada.Numerics.Complex_Types;
procedure Roots_Of_Unity is
Root : Complex;
begin
for N in 2..10 loop
Put_Line ("N =" & Integer'Image (N));
for K in 0..N - 1 loop
Root :=
Compose_From_Polar
( Modulus => 1.0,
Argument => Float (K),
Cycle => Float (N)
Put_Line
( " k =" & Integer'Image (K) & ", "
& Float'Image (Re (Root)) & " +"
& Float'Image (Im (Root)) & "i"
end
end Roots_Of_Unity;
</ada>
[[Ada]] provides a direct implementation of polar composition of complex numbers ''x e''<sup>2π''i y''</sup>. The function Compose_From_Polar is used to compose roots. The third argument of the function is the cycle. Instead of the standard cycle 2π, N is used. Sample output:
<pre style="height:30ex;overflow:scroll">
N = 2
k = 0, 1.00000E+00 + 0.00000E+00i
k = 1, -1.00000E+00 + 0.00000E+00i
N = 3
N = 4
k = 1, 0.00000E+00 + 1.00000E+00i
k = 2, -1.00000E+00 + 0.00000E+00i
k = 3, 0.00000E+00 +-1.00000E+00i
N = 5
k = 0, 1.00000E+00 + 0.00000E+00i
k = 1, 3.09017E-01 + 9.51057E-01i
k = 2, -8.09017E-01 + 5.87785E-01i
k = 3, -8.09017E-01 +-5.87785E-01i
k = 4, 3.09017E-01 +-9.51056E-01i
N = 6
k = 0, 1.00000E+00 + 0.00000E+00i
k = 1, 5.00000E-01 + 8.66025E-01i
k = 2, -5.00000E-01 + 8.66025E-01i
k = 3, -1.00000E+00 + 0.00000E+00i
k = 4, -5.00000E-01 +-8.66025E-01i
k = 5, 5.00000E-01 +-8.66025E-01i
N = 7
k = 0, 1.00000E+00 + 0.00000E+00i
k = 1, 6.23490E-01 + 7.81832E-01i
k = 2, -2.22521E-01 + 9.74928E-01i
k = 3, -9.00969E-01 + 4.33884E-01i
k = 4, -9.00969E-01 +-4.33884E-01i
k = 5, -2.22521E-01 +-9.74928E-01i
k = 6, 6.23490E-01 +-7.81831E-01i
N = 8
k = 0, 1.00000E+00 + 0.00000E+00i
k = 1, 7.07107E-01 + 7.07107E-01i
k = 2, 0.00000E+00 + 1.00000E+00i
k = 3, -7.07107E-01 + 7.07107E-01i
k = 4, -1.00000E+00 + 0.00000E+00i
k = 5, -7.07107E-01 +-7.07107E-01i
k = 6, 0.00000E+00 +-1.00000E+00i
k = 7, 7.07107E-01 +-7.07107E-01i
N = 9
k = 0, 1.00000E+00 + 0.00000E+00i
k = 1, 7.66044E-01 + 6.42788E-01i
k = 2, 1.73648E-01 + 9.84808E-01i
k = 3, -5.00000E-01 + 8.66025E-01i
k = 4, -9.39693E-01 + 3.42020E-01i
k = 5, -9.39693E-01 +-3.42020E-01i
k = 6, -5.00000E-01 +-8.66025E-01i
k = 7, 1.73648E-01 +-9.84808E-01i
k = 8, 7.66045E-01 +-6.42788E-01i
N = 10
k = 0, 1.00000E+00 + 0.00000E+00i
k = 1, 8.09017E-01 + 5.87785E-01i
k = 2, 3.09017E-01 + 9.51057E-01i
k = 3, -3.09017E-01 + 9.51056E-01i
k = 4, -8.09017E-01 + 5.87785E-01i
k = 5, -1.00000E+00 + 0.00000E+00i
k = 6, -8.09017E-01 +-5.87785E-01i
k = 7, -3.09017E-01 +-9.51057E-01i
k = 8, 3.09017E-01 +-9.51056E-01i
k = 9, 8.09017E-01 +-5.87785E-01i
</pre>
=={{header|ALGOL 68}}==
|