comparison fft/fft.js/src/real.rb @ 25:66f9fd5ac611

Bring in some more of the third-party code
author Chris Cannam
date Wed, 07 Oct 2015 13:46:38 +0100
parents
children
comparison
equal deleted inserted replaced
24:e705de983b67 25:66f9fd5ac611
1 def load(offset = 0, i = nil, stride = nil)
2 "#{real(x, offset, i, stride)}"
3 end
4
5 def creal(x, offset = 0, i = nil, stride = nil)
6 if stride
7 "#{x}[2 * ((#{offset}) + (#{stride}) * (#{i}))]"
8 elsif i
9 "#{x}[2 * ((#{offset}) + (#{i}))]"
10 elsif offset
11 "#{x}[2 * (#{offset})]"
12 else
13 "#{x}[0]"
14 end
15 end
16
17 def cimag(x, offset = 0, i = nil, stride = nil)
18 if stride
19 "#{x}[2 * ((#{offset}) + (#{stride}) * (#{i})) + 1]"
20 elsif i
21 "#{x}[2 * ((#{offset}) + (#{i})) + 1]"
22 elsif offset
23 "#{x}[2 * (#{offset}) + 1]"
24 else
25 "#{x}[1]"
26 end
27 end
28
29 def cload(value, x, offset = 0, i = nil, stride = nil)
30 "var #{value}_r = #{real(x, offset, i, stride)}, #{value}_i = #{imag(x, offset, i, stride)}"
31 end
32
33 def cstore(value, x, offset = 0, i = nil, stride = nil)
34 "#{real(x, offset, i, stride)} = #{value}_r, #{imag(x, offset, i, stride)} = #{value}_i"
35 end
36
37 def cadd(result, a, b)
38 "var #{result}_r = #{a}_r + #{b}_r, #{result}_i = #{a}_i + #{b}_i"
39 end
40
41 def csub(result, a, b)
42 "var #{result}_r = #{a}_r - #{b}_r, #{result}_i = #{a}_i - #{b}_i"
43 end
44
45 def cmul(result, a, b)
46 "var #{result}_r = #{a}_r * #{b}_r - #{a}_i * #{b}_i, #{result}_i = #{a}_r * #{b}_i + #{a}_i * #{b}_r"
47 end