function newmoms=vandermonconv(moms,dmoms)
  if (length(moms) >= 1)
    newmoms(1) = dmoms(1)*moms(1);
  end
  if (length(moms) >= 2)
    newmoms(2) = dmoms(1)*moms(2) + dmoms(2)*moms(1)^2;
  end
  if (length(moms) >= 3)
    newmoms(3) = dmoms(1)*moms(3) + 3*dmoms(2)*moms(2)*moms(1) + dmoms(3)*moms(1)^3;
  end
  if (length(moms) >= 4)
    newmoms(4) = dmoms(1)*moms(4) + 4*dmoms(2)*moms(3)*moms(1) + (8/3)*dmoms(2)*moms(2)^2 + 6*dmoms(3)*moms(2)*moms(1)^2 + dmoms(4)*moms(1)^4;
  end
  if (length(moms) >= 5)
    newmoms(5) = dmoms(1)*moms(5) + 5*dmoms(2)*moms(4)*moms(1) + (25/3)*dmoms(2)*moms(3)*moms(2) + 10*dmoms(3)*moms(3)*moms(1)^2 ...
                 + (40/3)*dmoms(3)*moms(2)^2*moms(1) + 10*dmoms(4)*moms(2)*moms(1)^3 + dmoms(5)*moms(1)^5;
  end
  if (length(moms) >= 6)
    newmoms(6) = dmoms(1)*moms(6) + 6*dmoms(2)*moms(5)*moms(1) + 12*dmoms(2)*moms(4)*moms(2) + 15*dmoms(3)*moms(4)*moms(1)^2 + (151/20)*dmoms(2)*moms(3)^2 ...
                 + 50*dmoms(3)*moms(3)*moms(2)*moms(1) + 20*dmoms(4)*moms(3)*moms(1)^3 + 11*dmoms(3)*moms(2)^3 + 40*dmoms(4)*moms(2)^2*moms(1)^2 ...
                 +15*dmoms(5)*moms(2)*moms(1)^4 + dmoms(6)*moms(1)^6;
  end
  if (length(moms) >= 7)
    newmoms(7) = dmoms(1)*moms(7) + 7*dmoms(2)*moms(6)*moms(1) + (49/3)*dmoms(2)*moms(5)*moms(2) + 21*dmoms(3)*moms(5)*moms(1)^2 ...
                 + (497/20)*dmoms(2)*moms(4)*moms(3) + 84*dmoms(3)*moms(4)*moms(2)*moms(1) + 35*dmoms(4)*moms(4)*moms(1)^3 ...
                 + (1057/20)*dmoms(3)*moms(3)^2*moms(1) + (693/10)*dmoms(3)*moms(3)*moms(2)^2 + 175*dmoms(4)*moms(3)*moms(2)*moms(1)^2 ...
                 + 35*dmoms(5)*moms(3)*moms(1)^4 + 77*dmoms(4)*moms(2)^3*moms(1) + (280/3)*dmoms(5)*moms(2)^2*moms(1)^3 ...
                 + 21*dmoms(6)*moms(2)*moms(1)^5 + dmoms(7)*moms(1)^7;
  end