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.