Class: Ngt::Optimizer

Inherits:
Object
  • Object
show all
Includes:
Utils
Defined in:
lib/ngt/optimizer.rb

Instance Method Summary collapse

Methods included from Utils

ffi

Constructor Details

#initialize(outgoing: 10, incoming: 120, queries: 100, low_accuracy_from: 0.3, low_accuracy_to: 0.5, high_accuracy_from: 0.8, high_accuracy_to: 0.9, gt_epsilon: 0.1, merge: 0.2) ⇒ Optimizer

Returns a new instance of Optimizer.



5
6
7
8
9
10
11
12
13
14
# File 'lib/ngt/optimizer.rb', line 5

def initialize(outgoing: 10, incoming: 120, queries: 100, low_accuracy_from: 0.3, low_accuracy_to: 0.5, high_accuracy_from: 0.8, high_accuracy_to: 0.9, gt_epsilon: 0.1, merge: 0.2)
  @error = FFI.ngt_create_error_object
  FFI.add_finalizer(@error, :ngt_destroy_error_object)

  @optimizer = ffi(:ngt_create_optimizer, true)
  FFI.add_finalizer(@optimizer, :ngt_destroy_optimizer)

  ffi(:ngt_optimizer_set, @optimizer, outgoing, incoming, queries, low_accuracy_from,
    low_accuracy_to, high_accuracy_from, high_accuracy_to, gt_epsilon, merge)
end

Instance Method Details

#adjust_search_coefficients(index_path) ⇒ Object



20
21
22
# File 'lib/ngt/optimizer.rb', line 20

def adjust_search_coefficients(index_path)
  ffi(:ngt_optimizer_adjust_search_coefficients, @optimizer, path(index_path))
end

#execute(in_index_path, out_index_path) ⇒ Object



16
17
18
# File 'lib/ngt/optimizer.rb', line 16

def execute(in_index_path, out_index_path)
  ffi(:ngt_optimizer_execute, @optimizer, path(in_index_path), out_index_path)
end