Patch title: Release 94 bulk changes
Abstract:
File: /pliant/graphic/misc/vector.c
Key:
    Removed line
    Added line
void vector_mul_add(int n,double *f,const float *v,float *s) {
  int i;
  for(i=0; i<n; i++)
    s[i] += (*f)*v[i]; }


int vector_apply_grid(int sdim,int ddim,int steps,const float *grid,unsigned char *src,float *dest) {
  int base; int gs[32]; float remain[32]; int n;
  int unit,d,v,i,u,index; float f; const float *p;
  base = 0; n = 0;
  unit = 1;
  for(d=0; d<sdim; d++) {
    v = src[d];
    if(v==0) {
    } else if(v==255) {
      base += (steps-1)*unit;
    } else {
      i = v*(steps-1)/255;
      if(i>steps-2)
        i = steps-2;
      gs[n] = unit;
      base += i*unit;
      remain[n] = (float)( v - i*255/(steps-1) ) / (float)( (i+1)*255/(steps-1) - i*255/(steps-1) );
      n += 1; }
    unit *= steps; }
  for(d=0; d<ddim; d++)
    dest[d] = 0;
  for(u=0; u<(1<<n); u++) {
    index = base; f = 1;
    for(d=0; d<n; d++)
      if(u & (1<<d)) {
        index += gs[d];
        f *= remain[d];
      } else {
        f *= 1-remain[d]; }
    p = grid+index*ddim;
    if(*(int *)p==-1) 
      return index;
    for(d=0; d<ddim; d++)
      dest[d] += f*p[d]; }
  return -1; }