q = (kk == torch.arange(a.size(0) + b.size(0) - 1)[None, :])
return (mm * q).sum(0)
+def pol_eval(a, x):
+ d = torch.arange(a.size(0))
+ return (x[:, None].pow(d[None, :]) * a[None, :]).sum(1)
+
def pol_prim(a):
n = torch.arange(a.size(0) + 1).float()
n[1:] = a / n[1:]
b = torch.tensor([2., 5.])
print(pol_prod(a, b))
print(pol_prim(b))
+ print(pol_eval(a, torch.tensor([0.0, 1.0, 2.0])))