27 lines
670 B
C
27 lines
670 B
C
#include <stdio.h>
|
|
#include <math.h>
|
|
|
|
#define pi 3.14159265358979323846264338327950288419716939937510
|
|
#define e 2.71828182845904523536028747135266249775724709369995
|
|
|
|
int main( int argc, char **argv )
|
|
{
|
|
if ( argc < 3 ) return 1;
|
|
double sigma;
|
|
unsigned range;
|
|
sscanf(argv[1],"%u",&range);
|
|
sscanf(argv[2],"%lf",&sigma);
|
|
double kernel[range];
|
|
unsigned i;
|
|
for ( i=0; i<range; i++ )
|
|
{
|
|
kernel[i] = 1.0/sqrt(2*pi*sigma*sigma)
|
|
*pow(e,-((i*i)/(2*sigma*sigma)));
|
|
}
|
|
double sum = kernel[0];
|
|
for ( i=1; i<range; i++ ) sum += 2*kernel[i];
|
|
printf("sum: %.50lf\n",sum);
|
|
for ( i=0; i<range; i++ )
|
|
printf("%.6lf%s",kernel[i]/sum,(i<range-1)?", ":"\n");
|
|
return 0;
|
|
}
|