Module: Khiva::Utils
- Defined in:
- lib/khiva/utils.rb
Class Method Summary collapse
- .bool_ptr(v) ⇒ Object
- .create_ptr ⇒ Object
- .double_ptr(v) ⇒ Object
- .float_ptr(v) ⇒ Object
- .int_ptr(v) ⇒ Object
- .long_ptr(v) ⇒ Object
-
.reshape(arr, dims) ⇒ Object
TODO make more efficient.
Class Method Details
.bool_ptr(v) ⇒ Object
24 25 26 |
# File 'lib/khiva/utils.rb', line 24 def bool_ptr(v) Fiddle::Pointer[[v ? 1 : 0].pack("c")] end |
.create_ptr ⇒ Object
4 5 6 |
# File 'lib/khiva/utils.rb', line 4 def create_ptr Fiddle::Pointer.malloc(Fiddle::SIZEOF_VOIDP) end |
.double_ptr(v) ⇒ Object
20 21 22 |
# File 'lib/khiva/utils.rb', line 20 def double_ptr(v) Fiddle::Pointer[[v].pack("d")] end |
.float_ptr(v) ⇒ Object
16 17 18 |
# File 'lib/khiva/utils.rb', line 16 def float_ptr(v) Fiddle::Pointer[[v].pack("f")] end |
.int_ptr(v) ⇒ Object
8 9 10 |
# File 'lib/khiva/utils.rb', line 8 def int_ptr(v) Fiddle::Pointer[[v].pack("i")] end |
.long_ptr(v) ⇒ Object
12 13 14 |
# File 'lib/khiva/utils.rb', line 12 def long_ptr(v) Fiddle::Pointer[[v].pack("L!")] end |
.reshape(arr, dims) ⇒ Object
TODO make more efficient
29 30 31 32 33 34 35 |
# 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 |