Add logs for ran2c and fix fourt doc

improvement-remove_generate_array-logs
chortas 3 years ago
parent 04f00afeee
commit ab2b81e569

@ -71,9 +71,7 @@
/* IFRWD IS AN INTEGER USED TO INDICATE THE DIRECTION OF THE FOURIER */
/* TRANSFORM. IT IS NON-ZERO TO INDICATE A FORWARD TRANSFORM */
/* (EXPONENTIAL SIGN IS -) AND ZERO TO INDICATE AN INVERSE TRANSFORM */
/* (SI
#include "log.h"
#include "memory.h"GN IS +). ICPLX IS AN INTEGER TO INDICATE WHETHER THE DATA */
/* (SIGN IS +). ICPLX IS AN INTEGER TO INDICATE WHETHER THE DATA */
/* ARE REAL OR COMPLEX. IT IS NON-ZERO FOR COMPLEX, ZERO FOR REAL. */
/* IF IT IS ZERO (REAL) THE CONTENTS OF ARRAY DATAI WILL BE ASSUMED */
/* TO BE ZERO, AND NEED NOT BE EXPLICITLY SET TO ZERO. AS EXPLAINED */

@ -24,15 +24,15 @@ double gasdev(long* idum, long* idum2, long* iy, long iv[NTAB], int cores) {
get_stats(&initial[i], i - 1);
}
double ran2(long* idum, long* idum2, long* iy, long iv[NTAB]);
double ran2(long* idum, long* idum2, long* iy, long iv[NTAB], int cores);
static int iset = 0;
static double gset;
double fac, rsq, v1, v2;
if (iset == 0) {
do {
v1 = 2.0 * ran2(idum, idum2, iy, iv) - 1.0;
v2 = 2.0 * ran2(idum, idum2, iy, iv) - 1.0;
v1 = 2.0 * ran2(idum, idum2, iy, iv, cores) - 1.0;
v2 = 2.0 * ran2(idum, idum2, iy, iv, cores) - 1.0;
rsq = v1 * v1 + v2 * v2;
} while (rsq >= 1.0 || rsq == 0.0);

@ -543,7 +543,7 @@ double power(double h, double alpha);
/*generates uniform deviates between 0 and 1*/
/*idum: seed */
double ran2(long* idum, long* idum2, long* iy, long* iv);
double ran2(long* idum, long* idum2, long* iy, long* iv, int cores);
/*calculates bt.b */
/* b : vector, bi, i = [0...n-1] */

@ -18,10 +18,24 @@
#define EPS 1.2e-7
#define RNMX (1.0 - EPS)
double ran2(long* idum, long* idum2, long* iy, long iv[NTAB]) {
double ran2(long* idum, long* idum2, long* iy, long iv[NTAB], int cores) {
double* used_ram_t0 = malloc(sizeof(double));
getVirtualMemUsed(used_ram_t0);
clock_t t = clock();
int j;
long k;
double temp;
log_info("RESULT = in progress, idum = %f, idum2 = %f, iy = %f", *idum, *idum2, *iy);
struct cpustat initial[cores];
struct cpustat final[cores];
for (int i = 0; i < cores; i++) {
get_stats(&initial[i], i - 1);
}
if (*idum <= 0) {
if (-(*idum) < 1)
@ -54,10 +68,30 @@ double ran2(long* idum, long* idum2, long* iy, long iv[NTAB]) {
if (*iy < 1)
(*iy) += IMM1;
t = clock() - t;
double time_taken = ((double)t)/CLOCKS_PER_SEC; // calculate the elapsed time
for (int i = 0; i < cores; i++) {
get_stats(&final[i], i - 1);
}
for (int i = 0; i < cores; i++) {
log_info("CPU %d: %lf%%", i, calculate_load(&initial[i], &final[i]));
}
double* used_ram_tf = malloc(sizeof(double));
getVirtualMemUsed(used_ram_tf);
if ((temp = AM * (*iy)) > RNMX) {
log_info("RESULT = success, RNMX = %f, ELAPSED = %f, DIF USED VIRTUAL MEM = %5.1f MB", RNMX, time_taken, *used_ram_tf - *used_ram_t0);
free(used_ram_t0);
free(used_ram_tf);
return (RNMX);
}
else {
log_info("RESULT = success, RNMX = %f, ELAPSED = %f, DIF USED VIRTUAL MEM = %5.1f MB", RNMX, time_taken, *used_ram_tf - *used_ram_t0);
free(used_ram_t0);
free(used_ram_tf);
return temp;
}
}

Loading…
Cancel
Save