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