This is interpolateArrays.c in view mode; [Download] [Up]
#include "../sms.h"
/*
* function to interpolate two arrays, the output is an array in between the
* two input ones
*
* float *pFArray1 pointer to first array
* int sizeArray1 size of first array
* float *pFArray2 pointer to second array
* int sizeArray2 size of second array
* float *pFArrayOut pointer to output array
* int sizeArrayOut size of output array
* float fInterpFactor interpolation factor
*/
int InterpolateArrays (float *pFArray1, int sizeArray1, float *pFArray2,
int sizeArray2, float *pFArrayOut, int sizeArrayOut,
float fInterpFactor)
{
int i;
float *pFArrayOne, *pFArrayTwo;
if ((pFArrayOne = (float *) calloc (sizeArrayOut, sizeof(float)))
== NULL)
return -1;
if ((pFArrayTwo = (float *) calloc (sizeArrayOut, sizeof(float)))
== NULL)
return -1;
/* make the two array of sizeArrayOut */
SpectralApprox (pFArray1, sizeArray1, sizeArray1, pFArrayOne, sizeArrayOut,
sizeArray1);
SpectralApprox (pFArray2, sizeArray2, sizeArray2, pFArrayTwo, sizeArrayOut,
sizeArray2);
/* interpolate the two arrays */
for (i = 0; i < sizeArrayOut; i++)
pFArrayOut[i] = pFArrayOne[i] + fInterpFactor *
(pFArrayTwo[i] - pFArrayOne[i]);
free (pFArrayOne);
free (pFArrayTwo);
return 1;
}These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.