This is longtap.c in view mode; [Download] [Up]
/******************************************************************************
* *
* Copyright (C) 1992,1993,1994 Tony Robinson *
* *
* See the file LICENSE for conditions on distribution and usage *
* *
******************************************************************************/
# include <math.h>
# include "shorten.h"
int find_longtap(buffer, blocksize, minlongtap, maxlongtap) int *buffer,
blocksize, minlongtap, maxlongtap; {
int i, sum, bestvar, longtap, besttap = 0;
sum = 0;
for(i = 0; i < blocksize; i++) sum += abs(buffer[i]);
bestvar = 0.6 * sum;
for(longtap = minlongtap; longtap < maxlongtap; longtap++) {
sum = 0;
for(i = 0; sum < bestvar && i < blocksize; i++)
sum += abs(buffer[i] - buffer[i - longtap]);
if(sum < bestvar) {
bestvar = sum;
besttap = longtap;
}
}
return(besttap);
}
void remove_longtap(buffer, blocksize, longtap) int *buffer, blocksize,
longtap; {
int i;
for(i = blocksize - 1; i >= 0; i--)
buffer[i] -= buffer[i - longtap];
}
void replace_longtap(buffer, blocksize, longtap) int *buffer, blocksize,
longtap; {
int i;
for(i = 0; i < blocksize; i++)
buffer[i] += buffer[i - longtap];
}
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.