Class: Rcf::Forest

Inherits:
Object
  • Object
show all
Defined in:
lib/rcf/forest.rb

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(dimensions, shingle_size: 1, sample_size: 256, number_of_trees: 100, random_seed: 42, parallel: false) ⇒ Forest

Returns a new instance of Forest.



3
4
5
6
7
8
9
10
11
12
13
14
# File 'lib/rcf/forest.rb', line 3

def initialize(dimensions, shingle_size: 1, sample_size: 256, number_of_trees: 100, random_seed: 42, parallel: false)
  @dimensions = dimensions

  @pointer = FFI.rcf_create(dimensions)
  ObjectSpace.define_finalizer(self, self.class.finalize(@pointer))

  set_param("shingle_size", shingle_size)
  set_param("sample_size", sample_size)
  set_param("number_of_trees", number_of_trees)
  set_param("random_seed", random_seed)
  set_param("parallel", parallel)
end

Class Method Details

.finalize(pointer) ⇒ Object



24
25
26
27
# File 'lib/rcf/forest.rb', line 24

def self.finalize(pointer)
  # must use proc instead of stabby lambda
  proc { FFI.rcf_free(pointer) }
end

Instance Method Details

#score(point) ⇒ Object



16
17
18
# File 'lib/rcf/forest.rb', line 16

def score(point)
  FFI.rcf_score(@pointer, point_ptr(point))
end

#update(point) ⇒ Object



20
21
22
# File 'lib/rcf/forest.rb', line 20

def update(point)
  FFI.rcf_update(@pointer, point_ptr(point))
end