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.244 second using v1.01-cache-2.11-cpan-4e96b696675 )