def ucc_circuit(theta):
    """
    Implements

    exp(-i theta X_{0}Y_{1})

    :param theta: rotation parameter
    :return: pyquil.Program
    """
    generator = sX(0) * sY(1)
    initial_prog = Program().inst(X(1), X(0))

    # compiled program
    program = initial_prog + exponentiate(float(theta) * generator)  # float is required because pyquil has weird casting behavior
    return program
Implements

    exp(-i theta X_{0}Y_{1})

    :param theta: rotation parameter
    :return: pyquil.Program