Esempio n. 1
0
SVECTOR* add_list_ss_r(SVECTOR *a, double min_non_zero) 
     /* computes the linear combination of the SVECTOR list weighted
	by the factor of each SVECTOR */
{
  SVECTOR *oldsum,*sum,*f;
  WORD    empty[2];
    
  if(!a) {
    empty[0].wnum=0;
    sum=create_svector(empty,NULL,1.0);
  }
  else if(a && (!a->next)) {
    sum=smult_s(a,a->factor);
  }
  else {
    sum=multadd_ss_r(a,a->next,a->factor,a->next->factor,min_non_zero);
    for(f=a->next->next;f;f=f->next) {
      oldsum=sum;
      sum=multadd_ss_r(oldsum,f,1.0,f->factor,min_non_zero);
      free_svector(oldsum);
    }
  }
  return(sum);
}
Esempio n. 2
0
SVECTOR* multadd_ss(SVECTOR *a, SVECTOR *b, double fa, double fb)
{
  return(multadd_ss_r(a,b,fa,fb,0));
}