polynomial programs