View/Edit #132:poly_mult

Switch to edit mode.

Name(s): poly_mult
1:  {@bignums} = args
2:  complex_list = {}
3:  maxloglen = 0.0
4:  for x in (bignums)
5:    for y in [1..length(x)]
6:      x[y] = {tofloat(x[y]), 0.0}
7:    endfor
8:    complex_list = {@complex_list, x}
9:    maxloglen = max(maxloglen, log(tofloat(length(x))) / log(2.0))
10: endfor
11: l = 2 ^ toint(ceil(maxloglen))
12: ffts = {}
13: for x in (complex_list)
14:   ffts = {@ffts, $complex_utils:fft({@$list_utils:make(l - length(x), {0.0, 0.0}), @x})}
15: endfor
16: r = {}
17: for x in [1..l]
18:   s = {1.0, 0.0}
19:   for y in (ffts)
20:     s = $complex_utils:product(s, y[x])
21:   endfor
22:   r = {@r, s}
23: endfor
24: answer = $complex_utils:unfft(r)
25: for x in [1..length(answer)]
26:   answer[x] = toint(answer[x][1])
27: endfor
28: return answer
29: "Last modified by manta (#7165) on Wed Feb 16 16:21:14 2000 MST."
30: "This verb previously owned by manta (#7165), and chowned to $slacker upon dewizarding (Sat Aug 17 14:50:05 2002 MDT)."
31: "Last modified by Dax (#789) on Sat Aug 17 14:50:05 2002 MDT."

Verb arguments: this none this
Verb perms: Readable eXecutable NOT-Debug
Verb owned by: Slacker (#55)

You are not logged in.

[home | help | who | search | setup | code]