mCompLearn = rb_define_module("CompLearn");
mCompLearn = rb_const_get(rb_cObject, rb_intern("CompLearn"));
void Init_complearn4r(void){  mCompLearn = rb_define_module("CompLearn");  rb_require("matrix");  cMatrix = rb_const_get(rb_cObject, rb_intern("Matrix"));  cAdjA = rb_define_class_under(mCompLearn, "AdjA", rb_cObject);  rb_define_method(cAdjA, "initialize", rbadja_init, 0);  rb_define_singleton_method(cAdjA, "new", rbadja_new, 1);  rb_define_method(cAdjA, "initialize", rbadja_init, 0);  rb_define_method(cAdjA, "getneighbors", rbadja_getneighbors, 1);  rb_define_method(cAdjA, "getneighborcount", rbadja_getneighborcount, 1);  rb_define_method(cAdjA, "getconstate", rbadja_getconstate, 2);  rb_define_method(cAdjA, "setconstate", rbadja_setconstate, 3);  rb_define_method(cAdjA, "size", rbadja_size, 0);  rb_define_method(cAdjA, "spmmap", rbadja_spmmap, 0);  rb_define_method(cAdjA, "path", rbadja_path, 2);  cCompAdaptor = rb_define_class_under(mCompLearn,"CompAdaptor", rb_cObject);  rb_define_method(cCompAdaptor, "initialize", rbcompa_init, 0);  rb_define_singleton_method(cCompAdaptor, "new", rbcompa_new, 1);  rb_define_method(cCompAdaptor, "compfunc", rbcompa_compfunc, 1);  rb_define_method(cCompAdaptor, "shortname", rbcompa_shortname, 0);  rb_define_method(cCompAdaptor, "longname", rbcompa_longname, 0);  rb_define_method(cCompAdaptor, "apiver", rbcompa_apiver, 0);  cTreeAdaptor = rb_define_class_under(mCompLearn,"TreeAdaptor", rb_cObject);  rb_define_singleton_method(cTreeAdaptor, "new", rbtra_new, 1);  rb_define_method(cTreeAdaptor, "initialize", rbtra_init, 0);  rb_define_method(cTreeAdaptor, "adja", rbtra_getadja, 0);  rb_define_method(cTreeAdaptor, "nodes", rbtra_getnodes, 0);  rb_define_method(cTreeAdaptor, "isQuartetable", rbtra_isquartetable, 1);  rb_define_method(cTreeAdaptor, "isFlippable", rbtra_isflippable, 1);  rb_define_method(cTreeAdaptor, "columnToNode", rbtra_coltonode, 1);  rb_define_method(cTreeAdaptor, "nodeToColumn", rbtra_nodetocol, 1);  rb_define_method(cTreeAdaptor, "to_dot", rbtra_to_dot, 0);  rb_define_method(cTreeAdaptor, "mutate", rbtra_mutate, 0);  rb_define_method(cTreeAdaptor, "mutationCount", rbtra_mutationcount, 0);  rb_define_method(cTreeAdaptor, "perimeterPairs", rbtra_perimpairs, 1);  rb_define_method(cTreeAdaptor, "treeDifferenceScore", rbtra_diffscore, 1);  cTreeHolder = rb_define_class_under(mCompLearn,"TreeHolder", rb_cObject);  rb_define_singleton_method(cTreeHolder, "new", rbth_new, 2);  rb_define_method(cTreeHolder, "initialize", rbth_init, 0);  rb_define_method(cTreeHolder, "tree", rbth_tree, 0);  rb_define_method(cTreeHolder, "score", rbth_score, 0);  cTreeMaster = rb_define_class_under(mCompLearn,"TreeMaster", rb_cObject);  rb_define_singleton_method(cTreeMaster, "new", rbtm_new, 2);  rb_define_singleton_method(cTreeMaster, "loadMatrix", rbtm_loadMatrix, 1);  rb_define_method(cTreeMaster, "initialize", rbtm_init, 0);  rb_define_method(cTreeMaster, "findTree", rbtm_findtree, 0);  rb_define_method(cTreeMaster, "k", rbtm_k, 0);  rb_define_method(cTreeMaster, "labelcount", rbtm_labelcount, 0);  rb_define_method(cTreeMaster, "nodecount", rbtm_nodecount, 0);  rb_define_method(cTreeMaster, "examinedcount", rbtm_examinedcount, 0);  rb_define_method(cTreeMaster, "setTreeObserver", rbtm_settreeobserver, 1);  cTreeObserver = rb_define_class_under(mCompLearn,"TreeObserver", rb_cObject);  rb_define_method(cTreeObserver, "treeSearchStarted", rbto_searchstarted, 0);  rb_define_method(cTreeObserver, "treeImproved", rbto_improved, 1);  rb_define_method(cTreeObserver, "treeRejected", rbto_rejected, 0);  rb_define_method(cTreeObserver, "treeDone", rbto_done, 1);  cTreeMolder = rb_define_class_under(mCompLearn,"TreeMolder", rb_cObject);  rb_define_singleton_method(cTreeMolder, "new", rbtmo_new, 2);  rb_define_method(cTreeMolder, "initialize", rbtmo_init, 0);  rb_define_method(cTreeMolder, "tree", rbtmo_tree, 0);  rb_define_method(cTreeMolder, "score", rbtmo_score, 0);  cTreeBlaster = rb_define_class_under(mCompLearn,"TreeBlaster", rb_cObject);  rb_define_singleton_method(cTreeBlaster, "new", rbtbl_new, 2);  rb_define_method(cTreeBlaster, "initialize", rbtbl_init, 0);  rb_define_method(cTreeBlaster, "findTreeOrder", rbtbl_findtreeorder, 0);  rb_define_method(cTreeBlaster, "k", rbtbl_k, 0);  rb_define_method(cTreeBlaster, "nodecount", rbtbl_nodecount, 0);  rb_define_method(cTreeBlaster, "labelcount", rbtbl_labelcount, 0);  rb_define_method(cTreeBlaster, "setTreeOrderObserver", rbtbl_settreeorderobserver, 1);  cTreeOrderObserver = rb_define_class_under(mCompLearn,"TreeOrderObserver", rb_cObject);  rb_define_method(cTreeOrderObserver, "treeOrderSearchStarted", rbtoo_searchstarted, 0);  rb_define_method(cTreeOrderObserver, "treeOrderImproved", rbtoo_improved, 1);  rb_define_method(cTreeOrderObserver, "treeOrderDone", rbtoo_done, 1);}