Bio-PhyloXS
view release on metacpan or search on metacpan
lib/Bio/PhyloXS/Forest/Tree.xs view on Meta::CPAN
initialize_listable((Listable*)self);
self->is_unrooted = 0;
self->is_default = 0;
((Identifiable*)self)->_type = _TREE_;
((Identifiable*)self)->_container = _FOREST_;
((Identifiable*)self)->_index = _TREE_IDX_;
}
Tree* set_as_unrooted(Tree* self){
self->is_unrooted = 1;
return self;
}
Tree* set_as_default(Tree* self) {
self->is_default = 1;
return self;
}
Tree* set_not_default(Tree* self) {
self->is_default = 0;
return self;
}
int is_default(Tree* self) {
return self->is_default;
}
Node* get_root(Tree* self) {
Listable* list = (Listable*)self;
SSize_t max = av_len(list->entities);
int i;
for ( i = 0; i <= max; i++ ) {
if ( av_exists(list->entities,i) ) {
SV* sv = *(av_fetch(list->entities, i, 0));
Node* node = (Node*)SvIV(SvRV(sv));
if ( node->parent == NULL ) {
return node;
}
}
}
return NULL;
}
void destroy_tree(Tree* self) {
destroy_listable((Listable*)self);
}
MODULE = Bio::PhyloXS::Forest::Tree PACKAGE = Bio::PhyloXS::Forest::Tree
PROTOTYPES: DISABLE
Tree *
create (classname)
const char * classname
void
initialize_tree (self)
Tree * self
PREINIT:
I32* temp;
PPCODE:
temp = PL_markstack_ptr++;
initialize_tree(self);
if (PL_markstack_ptr != temp) {
/* truly void, because dXSARGS not invoked */
PL_markstack_ptr = temp;
XSRETURN_EMPTY; /* return empty stack */
}
/* must have used dXSARGS; list context implied */
return; /* assume stack size is correct */
Tree *
set_as_unrooted (self)
Tree * self
Tree *
set_as_default (self)
Tree * self
Tree *
set_not_default (self)
Tree * self
int
is_default (self)
Tree * self
Node *
get_root (self)
Tree * self
void
destroy_tree (self)
Tree * self
PREINIT:
I32* temp;
PPCODE:
temp = PL_markstack_ptr++;
destroy_tree(self);
if (PL_markstack_ptr != temp) {
/* truly void, because dXSARGS not invoked */
PL_markstack_ptr = temp;
XSRETURN_EMPTY; /* return empty stack */
}
/* must have used dXSARGS; list context implied */
return; /* assume stack size is correct */
( run in 0.443 second using v1.01-cache-2.11-cpan-5511b514fd6 )