Addition-chain exponentiation: Difference between revisions

Content added Content deleted
m (output)
Line 1,134: Line 1,134:
println("1.000025 + 0.000058i)^27182 = ", pow(Complex(1.000025, 0.000058), expchains[27182]))
println("1.000025 + 0.000058i)^27182 = ", pow(Complex(1.000025, 0.000058), expchains[27182]))
println("1.000022 + 0.000050i)^31415 = ", pow(Complex(1.000022, 0.000050), expchains[31415]))
println("1.000022 + 0.000050i)^31415 = ", pow(Complex(1.000022, 0.000050), expchains[31415]))
x = sqrt(1/2)
matrixA = [x 0 x 0 0 0; 0 x 0 x 0 0; 0 x 0 -x 0 0; -x 0 x 0 0 0; 0 0 0 0 0 1; 0 0 0 0 1 0]
println("matrix A ^ 27182 = ")
display(pow(matrixA, expchains[27182]))
println("matrix A ^ 31415 = ")
display(round.(pow(matrixA, expchains[31415]), digits=6))
println("(matrix A ^ 27182) ^ 31415 = ")
display(pow(pow(matrixA, expchains[27182]), expchains[31415]))
end
end


Line 1,162: Line 1,170:
1.000025 + 0.000058i)^27182 = -0.01128636963542673 + 1.9730308496660347im
1.000025 + 0.000058i)^27182 = -0.01128636963542673 + 1.9730308496660347im
1.000022 + 0.000050i)^31415 = 0.00016144681325535107 + 1.9960329014194498im
1.000022 + 0.000050i)^31415 = 0.00016144681325535107 + 1.9960329014194498im
matrix A ^ 27182 =
6×6 Matrix{Float64}:
-0.5 -0.5 -0.5 0.5 0.0 0.0
0.5 -0.5 -0.5 -0.5 0.0 0.0
-0.5 -0.5 0.5 -0.5 0.0 0.0
0.5 -0.5 0.5 0.5 0.0 0.0
0.0 0.0 0.0 0.0 1.0 0.0
0.0 0.0 0.0 0.0 0.0 1.0
matrix A ^ 31415 =
6×6 Matrix{Float64}:
0.707107 0.0 -0.0 -0.707107 0.0 0.0
-0.0 0.707107 0.707107 -0.0 0.0 0.0
0.707107 -0.0 -0.0 0.707107 0.0 0.0
0.0 0.707107 -0.707107 -0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 1.0
0.0 0.0 0.0 0.0 1.0 0.0
(matrix A ^ 27182) ^ 31415 =
6×6 Matrix{Float64}:
-0.5 0.5 -0.5 0.5 0.0 0.0
-0.5 -0.5 -0.5 -0.5 0.0 0.0
-0.5 -0.5 0.5 0.5 0.0 0.0
0.5 -0.5 -0.5 0.5 0.0 0.0
0.0 0.0 0.0 0.0 1.0 0.0
0.0 0.0 0.0 0.0 0.0 1.0
</pre>
</pre>