コード例 #1
0
    c.add_gate("displacement", n_params=0, fn=cav_zy)

    # ZZ rotation
    c.add_gate("snap", n_params=1, fn=snap_zz)

    # arbitrary one-qubit rotations
    c.add_gate("rotation")
    c.add_gate("displacement", n_params=1, fn=cav_xrot)
    c.add_gate("displacement", n_params=1, fn=cav_yrot)
    c.add_gate("displacement", n_params=1, fn=cav_xrot)


    np.set_printoptions(precision=3)
    np.set_printoptions(suppress=True)

    c.assemble()
    print()
    print("num free params: {}".format(c.n_params))
    print()

    rng = np.random.default_rng()
    params = rng.uniform(high=2*np.pi, size=c.n_params)
    print("param vector:\n{}".format(params))
    print()

    u = c.evaluate(params)
    print("resulting unitary:\n{}".format(u))
    print()

    tensor = c.get_tensor(params)
    print("resulting tensor:\n{}".format(tensor))