AI-DecisionTree
view release on metacpan or search on metacpan
Instance/Instance.xs view on Meta::CPAN
Instance *
new (class, values_ref, result, name)
char * class
SV * values_ref
int result
char * name
CODE:
{
int i;
Instance* instance;
AV* values = (AV*) SvRV(values_ref);
New(0, instance, 1, Instance);
instance->name = savepv(name);
instance->result = result;
instance->num_values = 1 + av_len(values);
New(0, instance->values, instance->num_values, int);
for(i=0; i<instance->num_values; i++) {
instance->values[i] = (int) SvIV( *av_fetch(values, i, 0) );
}
RETVAL = instance;
}
OUTPUT:
RETVAL
char *
name (instance)
Instance* instance
CODE:
{
RETVAL = instance->name;
}
OUTPUT:
RETVAL
void
set_result (instance, result)
Instance* instance
int result
CODE:
{
instance->result = result;
}
void
set_value (instance, attribute, value)
Instance* instance
int attribute
int value
PPCODE:
{
int *new_values;
int i;
if (attribute >= instance->num_values) {
if (!value) return; /* Nothing to do */
printf("Expanding from %d to %d places\n", instance->num_values, attribute);
Renew(instance->values, attribute, int);
if (!instance->values)
croak("Couldn't grab new memory to expand instance");
for (i=instance->num_values; i<attribute-1; i++)
instance->values[i] = 0;
instance->num_values = 1 + attribute;
}
instance->values[attribute] = value;
}
int
value_int (instance, attribute)
Instance * instance
int attribute
CODE:
{
if (attribute >= instance->num_values) {
RETVAL = 0;
}
else {
RETVAL = instance->values[attribute];
}
}
OUTPUT:
RETVAL
int
result_int (instance)
Instance * instance
CODE:
{
RETVAL = instance->result;
}
OUTPUT:
RETVAL
void
DESTROY (instance)
Instance * instance
PPCODE:
{
Safefree(instance->name);
Safefree(instance->values);
Safefree(instance);
}
int
tally (pkg, instances_r, tallies_r, totals_r, attr)
char * pkg
SV * instances_r
SV * tallies_r
SV * totals_r
int attr
CODE:
{
AV *instances = (AV*) SvRV(instances_r);
HV *tallies = (HV*) SvRV(tallies_r);
HV *totals = (HV*) SvRV(totals_r);
( run in 0.654 second using v1.01-cache-2.11-cpan-39bf76dae61 )