Skip to content

Commit 5a41ecf

Browse files
committed
fix: tidy xspec wrapper normalisation and paths
1 parent 80a8e0a commit 5a41ecf

File tree

1 file changed

+8
-6
lines changed

1 file changed

+8
-6
lines changed

src/xspec-wrapper.zig

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ const lineprofile = @import("line-profile.zig");
55

66
// number of parameters in the table
77
const NPARAMS = 2;
8-
const MODELPATH = "kerr-transfer-functions.fits";
8+
const MODELPATH = "./kerr-transfer-functions.fits";
99

1010
// refinement for the energy grid
1111
const REFINEMENT = 5;
@@ -61,7 +61,7 @@ fn setup() !void {
6161
);
6262

6363
// build r grid
64-
r_grid = try util.inverse_grid(f32, allocator, 3.0, 50.0, 1000);
64+
r_grid = try util.inverse_grid(f32, allocator, 1.0, 50.0, 2000);
6565
errdefer allocator.free(r_grid);
6666

6767
// build some g grid, it will be refined anyway
@@ -118,6 +118,7 @@ fn integrate_lineprofile(
118118

119119
// rebin for output
120120
var j: usize = 0;
121+
var total_flux: f64 = 0;
121122
for (0..flux.len) |i| {
122123
// ensure it is zeroed
123124
flux[i] = 0;
@@ -132,9 +133,10 @@ fn integrate_lineprofile(
132133
// normalize to counts per bin
133134
const e_midpoint = 0.5 * (energy[i + 1] + energy[i]);
134135
flux[i] = flux[i] / e_midpoint;
136+
total_flux += flux[i];
135137
}
136138
// normalize output by area
137-
util.normalize(f64, flux);
139+
for (flux) |*f| f.* /= total_flux;
138140
}
139141

140142
export fn kerrlineprofile(
@@ -148,15 +150,15 @@ export fn kerrlineprofile(
148150
init_ptr: *const u8,
149151
) callconv(.C) void {
150152
// unused
151-
_ = init_ptr;
152-
_ = flux_variance_ptr;
153153
_ = spectrum;
154+
_ = flux_variance_ptr;
155+
_ = init_ptr;
154156

155157
const N = @intCast(usize, n_flux);
156158
// convert to slices
157159
const energy = @ptrCast([*]const f64, energy_ptr)[0 .. N + 1];
158160
var flux = @ptrCast([*]f64, flux_ptr)[0..N];
159161

160-
var parameters = Parameters(f32).from_ptr(parameters_ptr);
162+
const parameters = Parameters(f32).from_ptr(parameters_ptr);
161163
integrate_lineprofile(f32, energy, flux, parameters);
162164
}

0 commit comments

Comments
 (0)