X-Git-Url: https://www.fleuret.org/cgi-bin/gitweb/gitweb.cgi?p=pytorch.git;a=blobdiff_plain;f=poly.py;h=1b157a82275b591efcdd74d0c10a08d584282ef8;hp=818742bbabcf365ae9aa886e7da4d3cb3a2af783;hb=7315192ca0a1d1fdbfcb85da97ee41b2c68cbc6e;hpb=e916a8624b6a09737696c124f35059030f0f20e4 diff --git a/poly.py b/poly.py index 818742b..1b157a8 100755 --- a/poly.py +++ b/poly.py @@ -19,6 +19,10 @@ def pol_prod(a, b): 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:] @@ -31,3 +35,4 @@ if __name__ == '__main__': 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])))