Algorithm-SVMLight
view release on metacpan or search on metacpan
lib/Algorithm/SVMLight.xs view on Meta::CPAN
*/
ENTER;
SAVETMPS;
PUSHMARK(SP);
XPUSHs(sv_2mortal(newSVnv(rankvalue[i])));
XPUSHs(sv_2mortal(newSVnv(rankvalue[j])));
XPUSHs(sv_2mortal(newSVnv(docs[i]->costfactor)));
XPUSHs(sv_2mortal(newSVnv(docs[j]->costfactor)));
PUTBACK ;
count = call_sv(callback, G_SCALAR);
SPAGAIN;
if (count != 1)
croak("Expected 1 return value from ranking callback, but got %d", count);
result = POPn;
PUTBACK;
FREETMPS;
LEAVE;
return result;
}
SV **
self_store(SV *self, void *ptr, const char *slot, int make_readonly) {
HV *self_hash = (HV*) SvRV(self);
lib/Algorithm/SVMLight.xs view on Meta::CPAN
WORD *words = create_word_array(indices_av, values_av, NULL);
DOC *d = create_example(-1, 0, 0, 0.0, create_svector(words, "", 1.0));
double dist = (model->kernel_parm.kernel_type == 0
? classify_example_linear(model, d)
: classify_example(model, d));
RETVAL = dist;
}
OUTPUT:
RETVAL
void
_write_model(SV *self, char *modelfile)
CODE:
{
MODEL *m = (MODEL*) self_fetch(self, "_model");
write_model(modelfile, m);
}
lib/Algorithm/SVMLight.xs view on Meta::CPAN
result = newAV();
av_push(result, newSVnv(m->b));
for (i=1; i<m->totwords+1; i++) {
av_push(result, newSVnv(m->lin_weights[i]));
}
RETVAL = newRV_noinc((SV*) result);
}
OUTPUT:
RETVAL
void
_read_model(SV *self, char *modelfile)
CODE:
{
MODEL *m = read_model(modelfile);
corpus *c = get_corpus(self);
if (m->kernel_parm.kernel_type == 0) { /* linear kernel */
lib/Algorithm/SVMLight.xs view on Meta::CPAN
now so DESTROY doesn't get confused later. */
Safefree(c->docs);
c->docs = NULL;
}
int
num_features (SV *self)
CODE:
RETVAL = (get_corpus(self))->num_features;
OUTPUT:
RETVAL
int
num_instances (SV *self)
CODE:
RETVAL = (get_corpus(self))->num_docs;
OUTPUT:
RETVAL
void
DESTROY(SV *self)
CODE:
{
corpus *c = get_corpus(self);
MODEL *m;
int i;
lib/Algorithm/param_set.c.PL view on Meta::CPAN
print <<EOF;
void
set_$p (SV *self, $type val)
CODE:
((LEARN_PARM*) self_fetch(self, "_learn_parm"))->$p = val;
$type
get_$p (SV *self)
CODE:
RETVAL = ((LEARN_PARM*) self_fetch(self, "_learn_parm"))->$p;
OUTPUT:
RETVAL
EOF
}
foreach my $p (sort keys %kernel_parms) {
my $type = $kernel_parms{$p};
print <<EOF;
void
set_$p (SV *self, $type val)
CODE:
((KERNEL_PARM*) self_fetch(self, "_kernel_parm"))->$p = val;
$type
get_$p (SV *self)
CODE:
RETVAL = ((KERNEL_PARM*) self_fetch(self, "_kernel_parm"))->$p;
OUTPUT:
RETVAL
EOF
}
# A couple special cases for strings
print <<'EOF'
void
set_predfile (SV *self, char *predfile)
( run in 0.404 second using v1.01-cache-2.11-cpan-501359838a1 )