#include "libstd"

proc main()
{
    var mat = [
               [
                [1.,0.,-1.],
                [1.,1.,-1.],
                [0.,1.,-1.],
                [-1.,1.,-1.],
                [-1.,0.,-1.],
                [-1.,-1.,-1.],
                [0.,-1.,-1.],
                [1.,-1.,-1.]
               ],[
                [1.,0.,0.],
                [1.,1.,0.],
                [0.,1.,0.],
                [-1.,1.,0.],
                [-1.,0.,0.],
                [-1.,-1.,0.],
                [0.,-1.,0.],
                [1.,-1.,0.]
               ],[
                [1.,0.,1.],
                [1.,1.,1.],
                [0.,1.,1.],
                [-1.,1.,1.],
                [-1.,0.,1.],
                [-1.,-1.,1.],
                [0.,-1.,1.],
                [1.,-1.,1.]
               ]
              ];
    var pol = mat.polar();
    var cart = pol.cartesian();
    print("3(I2,X),F8.5,X,2(I4,X),3(I2,X)",
        Int(mat.round()),
        pol[:,:,0],
        Int((pol[:,:,1:]*180.0/math::PI).round()),
        Int(cart.round()));
}