view fft/fft.js/src/real.rb @ 32:ebc87a62321d

Add Nayuki fft.c compiled to JS
author Chris Cannam
date Mon, 09 Nov 2015 11:46:47 +0000
parents 66f9fd5ac611
children
line wrap: on
line source
def load(offset = 0, i = nil, stride = nil)
  "#{real(x, offset, i, stride)}"
end

def creal(x, offset = 0, i = nil, stride = nil)
  if stride
    "#{x}[2 * ((#{offset}) + (#{stride}) * (#{i}))]"
  elsif i
    "#{x}[2 * ((#{offset}) + (#{i}))]"
  elsif offset
    "#{x}[2 * (#{offset})]"
  else
    "#{x}[0]"
  end
end

def cimag(x, offset = 0, i = nil, stride = nil)
  if stride
    "#{x}[2 * ((#{offset}) + (#{stride}) * (#{i})) + 1]"
  elsif i
    "#{x}[2 * ((#{offset}) + (#{i})) + 1]"
  elsif offset
    "#{x}[2 * (#{offset}) + 1]"
  else
    "#{x}[1]"
  end
end

def cload(value, x, offset = 0, i = nil, stride = nil)
  "var #{value}_r = #{real(x, offset, i, stride)}, #{value}_i = #{imag(x, offset, i, stride)}"
end

def cstore(value, x, offset = 0, i = nil, stride = nil)
  "#{real(x, offset, i, stride)} = #{value}_r, #{imag(x, offset, i, stride)} = #{value}_i"
end

def cadd(result, a, b)
  "var #{result}_r = #{a}_r + #{b}_r, #{result}_i = #{a}_i + #{b}_i"
end

def csub(result, a, b)
  "var #{result}_r = #{a}_r - #{b}_r, #{result}_i = #{a}_i - #{b}_i"
end

def cmul(result, a, b)
  "var #{result}_r = #{a}_r * #{b}_r - #{a}_i * #{b}_i, #{result}_i = #{a}_r * #{b}_i + #{a}_i * #{b}_r"
end