module Khiva::Utils

Public Class Methods

bool_ptr(v) click to toggle source
# File lib/khiva/utils.rb, line 24
def bool_ptr(v)
  Fiddle::Pointer[[v ? 1 : 0].pack("c")]
end
create_ptr() click to toggle source
# File lib/khiva/utils.rb, line 4
def create_ptr
  Fiddle::Pointer.malloc(Fiddle::SIZEOF_VOIDP)
end
double_ptr(v) click to toggle source
# File lib/khiva/utils.rb, line 20
def double_ptr(v)
  Fiddle::Pointer[[v].pack("d")]
end
float_ptr(v) click to toggle source
# File lib/khiva/utils.rb, line 16
def float_ptr(v)
  Fiddle::Pointer[[v].pack("f")]
end
int_ptr(v) click to toggle source
# File lib/khiva/utils.rb, line 8
def int_ptr(v)
  Fiddle::Pointer[[v].pack("i")]
end
long_ptr(v) click to toggle source
# File lib/khiva/utils.rb, line 12
def long_ptr(v)
  Fiddle::Pointer[[v].pack("L!")]
end
reshape(arr, dims) click to toggle source

TODO make more efficient

# File lib/khiva/utils.rb, line 29
def reshape(arr, dims)
  arr = arr.flatten
  dims[1..-1].reverse.each do |dim|
    arr = arr.each_slice(dim)
  end
  arr.to_a
end