aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/hdf5-file.c4
-rw-r--r--src/render.c2
-rw-r--r--src/utils.c6
3 files changed, 7 insertions, 5 deletions
diff --git a/src/hdf5-file.c b/src/hdf5-file.c
index b1f78b3b..0e9453cf 100644
--- a/src/hdf5-file.c
+++ b/src/hdf5-file.c
@@ -246,8 +246,8 @@ int hdf5_read(struct hdfile *f, struct image *image)
image->width = f->ny;
/* FIXME: The following are basically made up... */
- image->x_centre = image->width/2;
- image->y_centre = image->height/2;
+ image->x_centre = image->width/2 - 19;
+ image->y_centre = image->height/2 - 35;
image->lambda = ph_en_to_lambda(eV_to_J(1793.0));
image->fmode = FORMULATION_CLEN;
image->camera_len = 75.0e-3; /* 75 mm camera length */
diff --git a/src/render.c b/src/render.c
index e2412e96..4de441f3 100644
--- a/src/render.c
+++ b/src/render.c
@@ -19,6 +19,7 @@
#include <stdint.h>
#include "hdf5-file.h"
+#include "render.h"
/* Set to 1 to measure mean intensity in a rectangle */
#define MEASURE_INT 0
@@ -80,6 +81,7 @@
if ( val > max ) p = 0.0; \
r = 255.0*p; g = 255.0*p; b = 255.0*p;
+
/* NB This function is shared between render_get_image() and
* render_get_colour_scale() */
static void render_free_data(guchar *data, gpointer p)
diff --git a/src/utils.c b/src/utils.c
index 1f72c558..cad7ff1b 100644
--- a/src/utils.c
+++ b/src/utils.c
@@ -102,11 +102,11 @@ int poisson_noise(double expected)
int k = 0;
double p = 1.0;
- L = exp(-expected);
-
/* For large values of the mean, we get big problems with arithmetic.
* In such cases, fall back on a Gaussian with the right variance. */
- if ( !isnormal(L) ) return fake_poisson_noise(expected);
+ if ( L > 100.0 ) return fake_poisson_noise(expected);
+
+ L = exp(-expected);
do {