class Sooth::Predictor
Public Class Methods
new(p1)
click to toggle source
VALUE method_sooth_native_initialize(VALUE self, VALUE error_event) { SoothPredictor * predictor = NULL; Check_Type(error_event, T_FIXNUM); Data_Get_Struct(self, SoothPredictor, predictor); predictor->error_event = NUM2UINT(error_event); return self; }
Public Instance Methods
clear()
click to toggle source
VALUE method_sooth_native_clear(VALUE self) { SoothPredictor * predictor = NULL; Data_Get_Struct(self, SoothPredictor, predictor); sooth_predictor_clear(predictor); return Qnil; }
count(p1)
click to toggle source
VALUE method_sooth_native_count(VALUE self, VALUE context) { SoothPredictor * predictor = NULL; Check_Type(context, T_FIXNUM); Data_Get_Struct(self, SoothPredictor, predictor); uint32_t count = sooth_predictor_count(predictor, NUM2UINT(context)); return UINT2NUM(count); }
distribution(p1)
click to toggle source
VALUE method_sooth_native_distribution(VALUE self, VALUE context) { SoothPredictor * predictor = NULL; Check_Type(context, T_FIXNUM); Data_Get_Struct(self, SoothPredictor, predictor); uint32_t c_context = NUM2UINT(context); SoothStatistic * statistics = sooth_predictor_distribution(predictor, c_context); if (statistics == NULL) { return Qnil; } uint32_t size = sooth_predictor_size(predictor, c_context); double count = (double)sooth_predictor_count(predictor, c_context); VALUE r_array = rb_ary_new2(size); for (uint32_t i = 0; i < size; ++i) { SoothStatistic statistic = statistics[i]; VALUE pair = rb_ary_new2(2); rb_ary_store(pair, 0, UINT2NUM(statistic.event)); rb_ary_store(pair, 1, DBL2NUM((double)statistic.count/count)); rb_ary_store(r_array, i, pair); } return r_array; }
frequency(p1, p2)
click to toggle source
VALUE method_sooth_native_frequency(VALUE self, VALUE context, VALUE event) { SoothPredictor * predictor = NULL; Check_Type(context, T_FIXNUM); Check_Type(event, T_FIXNUM); Data_Get_Struct(self, SoothPredictor, predictor); return DBL2NUM(sooth_predictor_frequency(predictor, NUM2UINT(context), NUM2UINT(event))); }
load(p1)
click to toggle source
VALUE method_sooth_native_load(VALUE self, VALUE filename) { SoothPredictor * predictor = NULL; Check_Type(filename, T_STRING); Data_Get_Struct(self, SoothPredictor, predictor); if (!sooth_predictor_load(RSTRING_PTR(filename), predictor)) { rb_raise(rb_eIOError, "problem loading predictor"); } return Qnil; }
observe(p1, p2)
click to toggle source
VALUE method_sooth_native_observe(VALUE self, VALUE context, VALUE event) { SoothPredictor * predictor = NULL; Check_Type(context, T_FIXNUM); Check_Type(event, T_FIXNUM); Data_Get_Struct(self, SoothPredictor, predictor); uint32_t count = sooth_predictor_observe(predictor, NUM2UINT(context), NUM2UINT(event)); return UINT2NUM(count); }
save(p1)
click to toggle source
VALUE method_sooth_native_save(VALUE self, VALUE filename) { SoothPredictor * predictor = NULL; Check_Type(filename, T_STRING); Data_Get_Struct(self, SoothPredictor, predictor); if (!sooth_predictor_save(RSTRING_PTR(filename), predictor)) { rb_raise(rb_eIOError, "problem saving predictor"); } return Qnil; }
select(p1, p2)
click to toggle source
VALUE method_sooth_native_select(VALUE self, VALUE context, VALUE limit) { SoothPredictor * predictor = NULL; Check_Type(context, T_FIXNUM); Check_Type(limit, T_FIXNUM); Data_Get_Struct(self, SoothPredictor, predictor); uint32_t event = sooth_predictor_select(predictor, NUM2UINT(context), NUM2UINT(limit)); return UINT2NUM(event); }
size(p1)
click to toggle source
VALUE method_sooth_native_size(VALUE self, VALUE context) { SoothPredictor * predictor = NULL; Check_Type(context, T_FIXNUM); Data_Get_Struct(self, SoothPredictor, predictor); uint32_t size = sooth_predictor_size(predictor, NUM2UINT(context)); return UINT2NUM(size); }
surprise(p1, p2)
click to toggle source
VALUE method_sooth_native_surprise(VALUE self, VALUE context, VALUE event) { SoothPredictor * predictor = NULL; Check_Type(context, T_FIXNUM); Check_Type(event, T_FIXNUM); Data_Get_Struct(self, SoothPredictor, predictor); double surprise = sooth_predictor_surprise(predictor, NUM2UINT(context), NUM2UINT(event)); if (surprise < 0) { return Qnil; } return DBL2NUM(surprise); }
uncertainty(p1)
click to toggle source
VALUE method_sooth_native_uncertainty(VALUE self, VALUE context) { SoothPredictor * predictor = NULL; Check_Type(context, T_FIXNUM); Data_Get_Struct(self, SoothPredictor, predictor); double uncertainty = sooth_predictor_uncertainty(predictor, NUM2UINT(context)); if (uncertainty < 0) { return Qnil; } return DBL2NUM(uncertainty); }