Class: Svm::NodeStruct

Inherits:
FFI::Struct
  • Object
show all
Defined in:
lib/svm.rb

Class Method Summary collapse

Class Method Details

.node_array_from(sample_xs) ⇒ Object



19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# File 'lib/svm.rb', line 19

def self.node_array_from(sample_xs)
  num_features = sample_xs.size

  nodes_ptr = FFI::MemoryPointer.new(NodeStruct, num_features + 1)

  num_features.times.each do |j|
    node = NodeStruct.new(nodes_ptr + j * NodeStruct.size)
    node[:index] = j
    node[:value] = sample_xs[j].to_f
  end

  # Last node is a terminator. See libsvm README.
  node = NodeStruct.new(nodes_ptr + num_features * NodeStruct.size)
  node[:index] = -1
  node[:value] = 0

  nodes_ptr
end