Como representar polinômios com vetores numéricos em R

Em R, como um deles representaria expressões polinomiais e faria uma matemática polinomial com os objetos vetoriais numéricos? Por exemplo:

x1 <- c(2,1)  # 2 + x
x2 <- c(-1,3)  # -1 + 3*x

E quer:

x1 * x2 # to return -2 + 5*x + 3*x^2 

Nota: Eu respondi uma pergunta esta manhã e, em seguida, o cartaz aparentemente apagou (fazendo-me saber se era lição de casa). Então, eu estou postando novamente a pergunta da memória.

questionAnswers(3)

yourAnswerToTheQuestion