class Ent::RandomTest
Public Class Methods
new(p1 = v1)
click to toggle source
VALUE rb_rt_initialize(int argc, VALUE *argv, VALUE klass) { rt_ctx *ctx; VALUE binmode = Qnil; int _bmode = 0; rb_scan_args(argc, argv, "01", &binmode); if ((binmode != Qnil) && (binmode != Qfalse)) { Check_Type(binmode, T_TRUE); _bmode=1; } if(!(ctx = rt_new())) rb_sys_fail(0); ctx->binary = _bmode; return Data_Wrap_Struct(klass, rb_rt_mark, rt_free, ctx); }
Public Instance Methods
binary?()
click to toggle source
VALUE rb_rt_get_binmode(VALUE self) { rt_ctx *ctx; Data_Get_Struct(self, rt_ctx, ctx); if (ctx->binary) return Qtrue; else return Qfalse; }
chisquare()
click to toggle source
VALUE rb_rt_chisquare(VALUE self) { rt_ctx *ctx; Data_Get_Struct(self, rt_ctx, ctx); if(ctx->ended) return DBL2NUM(ctx->r_chisq); else return Qnil; }
chisquare!()
click to toggle source
VALUE rb_rt_chisquare_force(VALUE self) { rt_ctx *ctx; Data_Get_Struct(self, rt_ctx, ctx); if(! ctx->ended) rt_end(ctx); return DBL2NUM(ctx->r_chisq); }
chisquare_probability()
click to toggle source
VALUE rb_rt_chisquare_probability(VALUE self) { rt_ctx *ctx; double ret, chip; Data_Get_Struct(self, rt_ctx, ctx); if(! ctx->ended) return Qnil; chip = pochisq(ctx->r_chisq, (ctx->binary ? 1 : 255)); if (chip < 0.0001) ret = 0.009; else if (chip > 0.9999) ret = 99.991; else ret = chip * 100; return DBL2NUM(ret); }
chisquare_probability!()
click to toggle source
VALUE rb_rt_chisquare_probability_force(VALUE self) { rt_ctx *ctx; double ret, chip; Data_Get_Struct(self, rt_ctx, ctx); if(! ctx->ended) rt_end(ctx); chip = pochisq(ctx->r_chisq, (ctx->binary ? 1 : 255)); if (chip < 0.0001) ret = 0.009; else if (chip > 0.9999) ret = 99.991; else ret = chip * 100; return DBL2NUM(ret); }
entropy()
click to toggle source
VALUE rb_rt_entropy(VALUE self) { rt_ctx *ctx; Data_Get_Struct(self, rt_ctx, ctx); if(ctx->ended) return DBL2NUM(ctx->r_ent); else return Qnil; }
entropy!()
click to toggle source
VALUE rb_rt_entropy_force(VALUE self) { rt_ctx *ctx; Data_Get_Struct(self, rt_ctx, ctx); if(! ctx->ended) rt_end(ctx); return DBL2NUM(ctx->r_ent); }
finalize()
click to toggle source
VALUE rb_rt_final(VALUE self) { rt_ctx *ctx; Data_Get_Struct(self, rt_ctx, ctx); if (! ctx->ended) rt_end(ctx); return self; }
mean()
click to toggle source
VALUE rb_rt_mean(VALUE self) { rt_ctx *ctx; Data_Get_Struct(self, rt_ctx, ctx); if(ctx->ended) return DBL2NUM(ctx->r_mean); else return Qnil; }
mean!()
click to toggle source
VALUE rb_rt_mean_force(VALUE self) { rt_ctx *ctx; Data_Get_Struct(self, rt_ctx, ctx); if(! ctx->ended) rt_end(ctx); return DBL2NUM(ctx->r_mean); }
montepi()
click to toggle source
VALUE rb_rt_montepi(VALUE self) { rt_ctx *ctx; Data_Get_Struct(self, rt_ctx, ctx); if(ctx->ended) return DBL2NUM(ctx->r_montepicalc); else return Qnil; }
montepi!()
click to toggle source
VALUE rb_rt_montepi_force(VALUE self) { rt_ctx *ctx; Data_Get_Struct(self, rt_ctx, ctx); if(! ctx->ended) rt_end(ctx); return DBL2NUM(ctx->r_montepicalc); }
read(p1)
click to toggle source
VALUE rb_rt_read_string(VALUE self, VALUE rb_buf) { rt_ctx *ctx; Check_Type(rb_buf, T_STRING); Data_Get_Struct(self, rt_ctx, ctx); if(ctx->ended) rb_raise(rb_eIOError, "data cannot be added after finalizing"); rt_add(ctx, RSTRING_PTR(rb_buf), RSTRING_LEN(rb_buf)); return LONG2NUM(RSTRING_LEN(rb_buf)); }
Also aliased as: read_string
read_file(p1)
click to toggle source
VALUE rb_rt_read_file(VALUE self, VALUE rb_filename) { rt_ctx *ctx; FILE *fp; int oc; size_t fsz = 0; Check_Type(rb_filename, T_STRING); Data_Get_Struct(self, rt_ctx, ctx); if(ctx->ended) rb_raise(rb_eIOError, "data cannot be added after finalizing"); if ((fp = fopen(RSTRING_PTR(rb_filename), "rb")) == NULL) rb_sys_fail(0); while((oc=fgetc(fp)) != EOF) { unsigned char ocb = (unsigned char) oc; rt_add(ctx, &ocb, 1); fsz++; } fclose(fp); return LONG2NUM(fsz); }
result()
click to toggle source
VALUE rb_rt_result(VALUE self) { rt_ctx *ctx; VALUE ret; Data_Get_Struct(self, rt_ctx, ctx); if(! ctx->ended) rt_end(ctx); ret = rb_hash_new(); rb_hash_aset(ret, ID2SYM(rb_intern("entropy")), DBL2NUM(ctx->r_ent)); rb_hash_aset(ret, ID2SYM(rb_intern("mean")), DBL2NUM(ctx->r_mean)); rb_hash_aset(ret, ID2SYM(rb_intern("chisquare")), DBL2NUM(ctx->r_chisq)); rb_hash_aset(ret, ID2SYM(rb_intern("montepi")), DBL2NUM(ctx->r_montepicalc)); rb_hash_aset(ret, ID2SYM(rb_intern("scc")), DBL2NUM(ctx->r_scc)); return ret; }
scc()
click to toggle source
VALUE rb_rt_scc(VALUE self) { rt_ctx *ctx; Data_Get_Struct(self, rt_ctx, ctx); if(ctx->ended) return DBL2NUM(ctx->r_scc); else return Qnil; }
scc!()
click to toggle source
VALUE rb_rt_scc_force(VALUE self) { rt_ctx *ctx; Data_Get_Struct(self, rt_ctx, ctx); if(! ctx->ended) rt_end(ctx); return DBL2NUM(ctx->r_scc); }