Add files via upload

bulk data dump
This commit is contained in:
Jason Bou-Samra
2024-04-07 19:13:04 +10:00
committed by GitHub
commit 7ab5faae04
7 changed files with 20212 additions and 0 deletions
+73
View File
@@ -0,0 +1,73 @@
/************************************
** Display data file as Histogram **
** Jason Bou-Samra 06/04/2024 **
** Paragon Software **
************************************/
#include <stdio.h>
#include <math.h>
int main()
{
int N = 10000; // number of samples (data points)
int nbin = round(sqrt(N)); // number of bins ~ sqrt(N) (or nearest integer value if not perfect square)
float hist[nbin]; // histogram array
float x[N]; // array of data points
float xmax, xmin; // minimum & maximum x data point values
float summ; // used to normalise data
float dx; // dx = (xmax - xmin) / nbin (delta value)
int i,j; // index variables
FILE *fptr_r, *fptr_w; // read and write file pointers
fptr_r = fopen("uniform.dat", "r"); // data points (read in)
fptr_w = fopen("dist3.dat", "w"); // the histogram output file (write out)
if(fptr_r == NULL || fptr_w == NULL) {
perror("Error opening file");
return(-1);} // handle fopen error, if any
for (i = 0; i < N+1; i++)
{
fscanf(fptr_r, "%G", &x[i]);
}
xmin = x[1]; // search for xmin
for (i = 1 ; i < N+1 ; i++)
{
if (x[i] < xmin) {
xmin = x[i];
}
}
xmax = x[1]; // search for xmax
for (i = 1 ; i < N+1 ; i++)
{
if (x[i] > xmax) {
xmax = x[i];
}
}
dx = (xmax - xmin) / (float)(nbin); // calculate dx
for (j = 0 ; j < nbin+1 ; j++) // compute histogram
{
hist[j] = 0.0f;
for (i = 0 ; i < N+1 ; i++)
{
if ((x[i] >= (xmin + (j - 1) * dx) && x[i] < xmin + j * dx))
hist[j] = hist[j] + 1.0f;
}
}
//summ = 0.0f; // normalize
//for (i = 1 ; i < nbin ; i++) summ = summ + hist[i];
//for (i = 1 ; i < nbin ; i++) hist[i] = hist[i] / summ;
for (i = 1; i < nbin+1; i++)
{
fprintf(fptr_w, " %3.18f %3.18f\n", xmin+i*dx, hist[i]);
}
return 0;
}