fastlisaresponse 1.0.9__cp312-cp312-macosx_11_0_arm64.whl → 1.0.10__cp312-cp312-macosx_11_0_arm64.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of fastlisaresponse might be problematic. Click here for more details.
- fastlisaresponse/_version.py +1 -1
- fastlisaresponse/cutils/include/LISAResponse.hh +1 -1
- fastlisaresponse/cutils/pyresponse_cpu.cpython-312-darwin.so +0 -0
- fastlisaresponse/cutils/src/LISAResponse.cpp +50 -50
- fastlisaresponse/cutils/src/LISAResponse.cu +50 -50
- fastlisaresponse/cutils/src/responselisa.pyx +5 -3
- fastlisaresponse/response.py +42 -17
- {fastlisaresponse-1.0.9.dist-info → fastlisaresponse-1.0.10.dist-info}/METADATA +11 -4
- fastlisaresponse-1.0.10.dist-info/RECORD +17 -0
- {fastlisaresponse-1.0.9.dist-info → fastlisaresponse-1.0.10.dist-info}/WHEEL +1 -1
- fastlisaresponse-1.0.9.dist-info/RECORD +0 -17
- {fastlisaresponse-1.0.9.dist-info → fastlisaresponse-1.0.10.dist-info}/top_level.txt +0 -0
fastlisaresponse/_version.py
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
__version__ = "1.0.
|
|
1
|
+
__version__ = "1.0.10"
|
|
@@ -16,7 +16,7 @@ void get_response(double *y_gw, double *t_data, double *k_in, double *u_in, doub
|
|
|
16
16
|
int projections_start_ind,
|
|
17
17
|
Orbits *orbits);
|
|
18
18
|
|
|
19
|
-
void get_tdi_delays(double *delayed_links, double *input_links, int num_inputs, int num_delays, double *t_arr, int *tdi_base_link, int *tdi_link_combinations, int *tdi_signs_in, int *channels, int num_units, int num_channels,
|
|
19
|
+
void get_tdi_delays(double *delayed_links, double *input_links, int num_inputs, int num_delays, double *t_arr, int *unit_starts, int *unit_lengths, int *tdi_base_link, int *tdi_link_combinations, int *tdi_signs_in, int *channels, int num_units, int num_channels,
|
|
20
20
|
int order, double sampling_frequency, int buffer_integer, double *A_in, double deps, int num_A, double *E_in, int tdi_start_ind, Orbits *orbits);
|
|
21
21
|
|
|
22
22
|
#endif // __LISA_RESPONSE__
|
|
Binary file
|
|
@@ -236,11 +236,11 @@ void interp(double *result_hp, double *result_hc, cmplx *input, int h, int d, do
|
|
|
236
236
|
#define MAX_ORDER 40
|
|
237
237
|
|
|
238
238
|
CUDA_KERNEL
|
|
239
|
-
void TDI_delay(double *delayed_links, double *input_links, int num_inputs, int num_delays, double *t_arr, int *tdi_base_link, int *tdi_link_combinations, int *tdi_signs_in, int *channels, int num_units, int num_channels,
|
|
239
|
+
void TDI_delay(double *delayed_links, double *input_links, int num_inputs, int num_delays, double *t_arr, int *unit_starts, int *unit_lengths, int *tdi_base_link, int *tdi_link_combinations, int *tdi_signs_in, int *channels, int num_units, int num_channels,
|
|
240
240
|
int order, double sampling_frequency, int buffer_integer, double *A_in, double deps, int num_A, double *E_in, int tdi_start_ind, Orbits *orbits_in)
|
|
241
241
|
{
|
|
242
242
|
Orbits orbits = *orbits_in;
|
|
243
|
-
|
|
243
|
+
int start, end, increment;
|
|
244
244
|
#ifdef __CUDACC__
|
|
245
245
|
CUDA_SHARED double input[BUFFER_SIZE];
|
|
246
246
|
#endif
|
|
@@ -251,7 +251,6 @@ void TDI_delay(double *delayed_links, double *input_links, int num_inputs, int n
|
|
|
251
251
|
CUDA_SHARED double A_arr[MAX_A_VALS];
|
|
252
252
|
CUDA_SHARED double E_arr[MAX_ORDER];
|
|
253
253
|
|
|
254
|
-
int start, increment;
|
|
255
254
|
#ifdef __CUDACC__
|
|
256
255
|
start = threadIdx.x;
|
|
257
256
|
increment = blockDim.x;
|
|
@@ -297,60 +296,61 @@ void TDI_delay(double *delayed_links, double *input_links, int num_inputs, int n
|
|
|
297
296
|
// #pragma omp parallel for
|
|
298
297
|
#endif
|
|
299
298
|
|
|
300
|
-
|
|
301
|
-
{
|
|
302
|
-
int base_link = tdi_base_link[unit_i];
|
|
303
|
-
int base_link_index = orbits.get_link_ind(base_link);
|
|
304
|
-
|
|
305
|
-
int combination_link = tdi_link_combinations[unit_i];
|
|
306
|
-
|
|
307
|
-
int combination_link_index;
|
|
308
|
-
if (combination_link == -11)
|
|
309
|
-
{
|
|
310
|
-
combination_link_index = -1;
|
|
311
|
-
}
|
|
312
|
-
else
|
|
313
|
-
{
|
|
314
|
-
combination_link_index = orbits.get_link_ind(combination_link);
|
|
315
|
-
}
|
|
316
|
-
int sign = tdi_signs_in[unit_i];
|
|
317
|
-
int channel = channels[unit_i];
|
|
299
|
+
double t, L, delay;
|
|
318
300
|
|
|
319
|
-
|
|
320
|
-
|
|
301
|
+
double large_factor, pre_factor;
|
|
302
|
+
double clipped_delay, out, fraction;
|
|
303
|
+
double link_delayed_out;
|
|
304
|
+
int integer_delay, max_integer_delay, min_integer_delay;
|
|
321
305
|
|
|
322
|
-
|
|
306
|
+
int point_count = order + 1;
|
|
307
|
+
int half_point_count = int(point_count / 2);
|
|
308
|
+
int start2, increment2;
|
|
323
309
|
#ifdef __CUDACC__
|
|
324
|
-
|
|
325
|
-
|
|
310
|
+
start2 = tdi_start_ind + threadIdx.x + blockDim.x * blockIdx.x;
|
|
311
|
+
increment2 = blockDim.x * gridDim.x;
|
|
326
312
|
#else
|
|
327
|
-
|
|
328
|
-
|
|
313
|
+
start2 = tdi_start_ind;
|
|
314
|
+
increment2 = 1;
|
|
329
315
|
// #pragma omp parallel for
|
|
330
316
|
#endif
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
double t, L, delay;
|
|
336
|
-
|
|
337
|
-
double large_factor, pre_factor;
|
|
338
|
-
double clipped_delay, out, fraction;
|
|
339
|
-
double link_delayed_out;
|
|
340
|
-
int integer_delay, max_integer_delay, min_integer_delay;
|
|
341
|
-
int start, end, increment;
|
|
317
|
+
for (int i = start2;
|
|
318
|
+
i < num_delays - tdi_start_ind;
|
|
319
|
+
i += increment2)
|
|
320
|
+
{
|
|
342
321
|
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
322
|
+
t = t_arr[i];
|
|
323
|
+
for (int unit_i = start1; unit_i < num_units; unit_i += increment1)
|
|
324
|
+
{
|
|
325
|
+
int unit_start = unit_starts[unit_i];
|
|
326
|
+
int unit_length = unit_lengths[unit_i];
|
|
327
|
+
int base_link = tdi_base_link[unit_i];
|
|
328
|
+
int base_link_index = orbits.get_link_ind(base_link);
|
|
329
|
+
int channel = channels[unit_i];
|
|
330
|
+
int sign = tdi_signs_in[unit_i];
|
|
331
|
+
delay = t;
|
|
332
|
+
for (int sub_i = 0; sub_i < unit_length; sub_i += 1)
|
|
350
333
|
{
|
|
351
|
-
|
|
334
|
+
int combination_index = unit_start + sub_i;
|
|
335
|
+
int combination_link = tdi_link_combinations[combination_index];
|
|
336
|
+
int combination_link_index;
|
|
337
|
+
if (combination_link == -11)
|
|
338
|
+
{
|
|
339
|
+
combination_link_index = -1;
|
|
340
|
+
}
|
|
341
|
+
else
|
|
342
|
+
{
|
|
343
|
+
combination_link_index = orbits.get_link_ind(combination_link);
|
|
344
|
+
}
|
|
345
|
+
|
|
346
|
+
if (combination_link != -11)
|
|
347
|
+
{
|
|
348
|
+
delay -= orbits.get_light_travel_time(t, combination_link);
|
|
349
|
+
}
|
|
352
350
|
}
|
|
353
351
|
|
|
352
|
+
// at i = 0, delay ind should be at TDI_buffer = total_buffer - projection_buffer
|
|
353
|
+
|
|
354
354
|
// delays are still with respect to projection start
|
|
355
355
|
clipped_delay = delay;
|
|
356
356
|
integer_delay = (int)ceil(clipped_delay * sampling_frequency) - 1;
|
|
@@ -412,7 +412,7 @@ void TDI_delay(double *delayed_links, double *input_links, int num_inputs, int n
|
|
|
412
412
|
}
|
|
413
413
|
}
|
|
414
414
|
|
|
415
|
-
void get_tdi_delays(double *delayed_links, double *input_links, int num_inputs, int num_delays, double *t_arr, int *tdi_base_link, int *tdi_link_combinations, int *tdi_signs_in, int *channels, int num_units, int num_channels,
|
|
415
|
+
void get_tdi_delays(double *delayed_links, double *input_links, int num_inputs, int num_delays, double *t_arr, int *unit_starts, int *unit_lengths, int *tdi_base_link, int *tdi_link_combinations, int *tdi_signs_in, int *channels, int num_units, int num_channels,
|
|
416
416
|
int order, double sampling_frequency, int buffer_integer, double *A_in, double deps, int num_A, double *E_in, int tdi_start_ind, Orbits *orbits_in)
|
|
417
417
|
{
|
|
418
418
|
|
|
@@ -426,7 +426,7 @@ void get_tdi_delays(double *delayed_links, double *input_links, int num_inputs,
|
|
|
426
426
|
gpuErrchk(cudaMemcpy(orbits_gpu, orbits_in, sizeof(Orbits), cudaMemcpyHostToDevice));
|
|
427
427
|
|
|
428
428
|
// printf("RUNNING: %d\n", i);
|
|
429
|
-
TDI_delay<<<gridDim, NUM_THREADS>>>(delayed_links, input_links, num_inputs, num_delays, t_arr, tdi_base_link, tdi_link_combinations, tdi_signs_in, channels, num_units, num_channels,
|
|
429
|
+
TDI_delay<<<gridDim, NUM_THREADS>>>(delayed_links, input_links, num_inputs, num_delays, t_arr, unit_starts, unit_lengths, tdi_base_link, tdi_link_combinations, tdi_signs_in, channels, num_units, num_channels,
|
|
430
430
|
order, sampling_frequency, buffer_integer, A_in, deps, num_A, E_in, tdi_start_ind, orbits_gpu);
|
|
431
431
|
|
|
432
432
|
cudaDeviceSynchronize();
|
|
@@ -434,7 +434,7 @@ void get_tdi_delays(double *delayed_links, double *input_links, int num_inputs,
|
|
|
434
434
|
gpuErrchk(cudaFree(orbits_gpu));
|
|
435
435
|
|
|
436
436
|
#else
|
|
437
|
-
TDI_delay(delayed_links, input_links, num_inputs, num_delays, t_arr, tdi_base_link, tdi_link_combinations, tdi_signs_in, channels, num_units, num_channels,
|
|
437
|
+
TDI_delay(delayed_links, input_links, num_inputs, num_delays, t_arr, unit_starts, unit_lengths, tdi_base_link, tdi_link_combinations, tdi_signs_in, channels, num_units, num_channels,
|
|
438
438
|
order, sampling_frequency, buffer_integer, A_in, deps, num_A, E_in, tdi_start_ind, orbits_in);
|
|
439
439
|
|
|
440
440
|
#endif
|
|
@@ -236,11 +236,11 @@ void interp(double *result_hp, double *result_hc, cmplx *input, int h, int d, do
|
|
|
236
236
|
#define MAX_ORDER 40
|
|
237
237
|
|
|
238
238
|
CUDA_KERNEL
|
|
239
|
-
void TDI_delay(double *delayed_links, double *input_links, int num_inputs, int num_delays, double *t_arr, int *tdi_base_link, int *tdi_link_combinations, int *tdi_signs_in, int *channels, int num_units, int num_channels,
|
|
239
|
+
void TDI_delay(double *delayed_links, double *input_links, int num_inputs, int num_delays, double *t_arr, int *unit_starts, int *unit_lengths, int *tdi_base_link, int *tdi_link_combinations, int *tdi_signs_in, int *channels, int num_units, int num_channels,
|
|
240
240
|
int order, double sampling_frequency, int buffer_integer, double *A_in, double deps, int num_A, double *E_in, int tdi_start_ind, Orbits *orbits_in)
|
|
241
241
|
{
|
|
242
242
|
Orbits orbits = *orbits_in;
|
|
243
|
-
|
|
243
|
+
int start, end, increment;
|
|
244
244
|
#ifdef __CUDACC__
|
|
245
245
|
CUDA_SHARED double input[BUFFER_SIZE];
|
|
246
246
|
#endif
|
|
@@ -251,7 +251,6 @@ void TDI_delay(double *delayed_links, double *input_links, int num_inputs, int n
|
|
|
251
251
|
CUDA_SHARED double A_arr[MAX_A_VALS];
|
|
252
252
|
CUDA_SHARED double E_arr[MAX_ORDER];
|
|
253
253
|
|
|
254
|
-
int start, increment;
|
|
255
254
|
#ifdef __CUDACC__
|
|
256
255
|
start = threadIdx.x;
|
|
257
256
|
increment = blockDim.x;
|
|
@@ -297,60 +296,61 @@ void TDI_delay(double *delayed_links, double *input_links, int num_inputs, int n
|
|
|
297
296
|
// #pragma omp parallel for
|
|
298
297
|
#endif
|
|
299
298
|
|
|
300
|
-
|
|
301
|
-
{
|
|
302
|
-
int base_link = tdi_base_link[unit_i];
|
|
303
|
-
int base_link_index = orbits.get_link_ind(base_link);
|
|
304
|
-
|
|
305
|
-
int combination_link = tdi_link_combinations[unit_i];
|
|
306
|
-
|
|
307
|
-
int combination_link_index;
|
|
308
|
-
if (combination_link == -11)
|
|
309
|
-
{
|
|
310
|
-
combination_link_index = -1;
|
|
311
|
-
}
|
|
312
|
-
else
|
|
313
|
-
{
|
|
314
|
-
combination_link_index = orbits.get_link_ind(combination_link);
|
|
315
|
-
}
|
|
316
|
-
int sign = tdi_signs_in[unit_i];
|
|
317
|
-
int channel = channels[unit_i];
|
|
299
|
+
double t, L, delay;
|
|
318
300
|
|
|
319
|
-
|
|
320
|
-
|
|
301
|
+
double large_factor, pre_factor;
|
|
302
|
+
double clipped_delay, out, fraction;
|
|
303
|
+
double link_delayed_out;
|
|
304
|
+
int integer_delay, max_integer_delay, min_integer_delay;
|
|
321
305
|
|
|
322
|
-
|
|
306
|
+
int point_count = order + 1;
|
|
307
|
+
int half_point_count = int(point_count / 2);
|
|
308
|
+
int start2, increment2;
|
|
323
309
|
#ifdef __CUDACC__
|
|
324
|
-
|
|
325
|
-
|
|
310
|
+
start2 = tdi_start_ind + threadIdx.x + blockDim.x * blockIdx.x;
|
|
311
|
+
increment2 = blockDim.x * gridDim.x;
|
|
326
312
|
#else
|
|
327
|
-
|
|
328
|
-
|
|
313
|
+
start2 = tdi_start_ind;
|
|
314
|
+
increment2 = 1;
|
|
329
315
|
// #pragma omp parallel for
|
|
330
316
|
#endif
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
double t, L, delay;
|
|
336
|
-
|
|
337
|
-
double large_factor, pre_factor;
|
|
338
|
-
double clipped_delay, out, fraction;
|
|
339
|
-
double link_delayed_out;
|
|
340
|
-
int integer_delay, max_integer_delay, min_integer_delay;
|
|
341
|
-
int start, end, increment;
|
|
317
|
+
for (int i = start2;
|
|
318
|
+
i < num_delays - tdi_start_ind;
|
|
319
|
+
i += increment2)
|
|
320
|
+
{
|
|
342
321
|
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
322
|
+
t = t_arr[i];
|
|
323
|
+
for (int unit_i = start1; unit_i < num_units; unit_i += increment1)
|
|
324
|
+
{
|
|
325
|
+
int unit_start = unit_starts[unit_i];
|
|
326
|
+
int unit_length = unit_lengths[unit_i];
|
|
327
|
+
int base_link = tdi_base_link[unit_i];
|
|
328
|
+
int base_link_index = orbits.get_link_ind(base_link);
|
|
329
|
+
int channel = channels[unit_i];
|
|
330
|
+
int sign = tdi_signs_in[unit_i];
|
|
331
|
+
delay = t;
|
|
332
|
+
for (int sub_i = 0; sub_i < unit_length; sub_i += 1)
|
|
350
333
|
{
|
|
351
|
-
|
|
334
|
+
int combination_index = unit_start + sub_i;
|
|
335
|
+
int combination_link = tdi_link_combinations[combination_index];
|
|
336
|
+
int combination_link_index;
|
|
337
|
+
if (combination_link == -11)
|
|
338
|
+
{
|
|
339
|
+
combination_link_index = -1;
|
|
340
|
+
}
|
|
341
|
+
else
|
|
342
|
+
{
|
|
343
|
+
combination_link_index = orbits.get_link_ind(combination_link);
|
|
344
|
+
}
|
|
345
|
+
|
|
346
|
+
if (combination_link != -11)
|
|
347
|
+
{
|
|
348
|
+
delay -= orbits.get_light_travel_time(t, combination_link);
|
|
349
|
+
}
|
|
352
350
|
}
|
|
353
351
|
|
|
352
|
+
// at i = 0, delay ind should be at TDI_buffer = total_buffer - projection_buffer
|
|
353
|
+
|
|
354
354
|
// delays are still with respect to projection start
|
|
355
355
|
clipped_delay = delay;
|
|
356
356
|
integer_delay = (int)ceil(clipped_delay * sampling_frequency) - 1;
|
|
@@ -412,7 +412,7 @@ void TDI_delay(double *delayed_links, double *input_links, int num_inputs, int n
|
|
|
412
412
|
}
|
|
413
413
|
}
|
|
414
414
|
|
|
415
|
-
void get_tdi_delays(double *delayed_links, double *input_links, int num_inputs, int num_delays, double *t_arr, int *tdi_base_link, int *tdi_link_combinations, int *tdi_signs_in, int *channels, int num_units, int num_channels,
|
|
415
|
+
void get_tdi_delays(double *delayed_links, double *input_links, int num_inputs, int num_delays, double *t_arr, int *unit_starts, int *unit_lengths, int *tdi_base_link, int *tdi_link_combinations, int *tdi_signs_in, int *channels, int num_units, int num_channels,
|
|
416
416
|
int order, double sampling_frequency, int buffer_integer, double *A_in, double deps, int num_A, double *E_in, int tdi_start_ind, Orbits *orbits_in)
|
|
417
417
|
{
|
|
418
418
|
|
|
@@ -426,7 +426,7 @@ void get_tdi_delays(double *delayed_links, double *input_links, int num_inputs,
|
|
|
426
426
|
gpuErrchk(cudaMemcpy(orbits_gpu, orbits_in, sizeof(Orbits), cudaMemcpyHostToDevice));
|
|
427
427
|
|
|
428
428
|
// printf("RUNNING: %d\n", i);
|
|
429
|
-
TDI_delay<<<gridDim, NUM_THREADS>>>(delayed_links, input_links, num_inputs, num_delays, t_arr, tdi_base_link, tdi_link_combinations, tdi_signs_in, channels, num_units, num_channels,
|
|
429
|
+
TDI_delay<<<gridDim, NUM_THREADS>>>(delayed_links, input_links, num_inputs, num_delays, t_arr, unit_starts, unit_lengths, tdi_base_link, tdi_link_combinations, tdi_signs_in, channels, num_units, num_channels,
|
|
430
430
|
order, sampling_frequency, buffer_integer, A_in, deps, num_A, E_in, tdi_start_ind, orbits_gpu);
|
|
431
431
|
|
|
432
432
|
cudaDeviceSynchronize();
|
|
@@ -434,7 +434,7 @@ void get_tdi_delays(double *delayed_links, double *input_links, int num_inputs,
|
|
|
434
434
|
gpuErrchk(cudaFree(orbits_gpu));
|
|
435
435
|
|
|
436
436
|
#else
|
|
437
|
-
TDI_delay(delayed_links, input_links, num_inputs, num_delays, t_arr, tdi_base_link, tdi_link_combinations, tdi_signs_in, channels, num_units, num_channels,
|
|
437
|
+
TDI_delay(delayed_links, input_links, num_inputs, num_delays, t_arr, unit_starts, unit_lengths, tdi_base_link, tdi_link_combinations, tdi_signs_in, channels, num_units, num_channels,
|
|
438
438
|
order, sampling_frequency, buffer_integer, A_in, deps, num_A, E_in, tdi_start_ind, orbits_in);
|
|
439
439
|
|
|
440
440
|
#endif
|
|
@@ -17,7 +17,7 @@ cdef extern from "LISAResponse.hh":
|
|
|
17
17
|
int projections_start_ind,
|
|
18
18
|
Orbits *orbits);
|
|
19
19
|
|
|
20
|
-
void get_tdi_delays(double *delayed_links, double *input_links, int num_inputs, int num_delays, double *t_arr, int *tdi_base_link, int *tdi_link_combinations, int *tdi_signs, int *channels, int num_units, int num_channels,
|
|
20
|
+
void get_tdi_delays(double *delayed_links, double *input_links, int num_inputs, int num_delays, double *t_arr, int *unit_starts, int *unit_lengths, int *tdi_base_link, int *tdi_link_combinations, int *tdi_signs, int *channels, int num_units, int num_channels,
|
|
21
21
|
int order, double sampling_frequency, int buffer_integer, double *A_in, double deps, int num_A, double *E_in, int tdi_start_ind, Orbits *orbits);
|
|
22
22
|
|
|
23
23
|
@pointer_adjust
|
|
@@ -47,7 +47,7 @@ def get_response_wrap(y_gw, t_data, k_in, u_in, v_in, dt,
|
|
|
47
47
|
|
|
48
48
|
|
|
49
49
|
@pointer_adjust
|
|
50
|
-
def get_tdi_delays_wrap(delayed_links, y_gw, num_inputs, num_delays, t_arr, tdi_base_link, tdi_link_combinations, tdi_signs, channels, num_units, num_channels,
|
|
50
|
+
def get_tdi_delays_wrap(delayed_links, y_gw, num_inputs, num_delays, t_arr, unit_starts, unit_lengths, tdi_base_link, tdi_link_combinations, tdi_signs, channels, num_units, num_channels,
|
|
51
51
|
order, sampling_frequency, buffer_integer, A_in, deps, num_A, E_in, tdi_start_ind, orbits):
|
|
52
52
|
|
|
53
53
|
cdef size_t delayed_links_in = delayed_links
|
|
@@ -55,11 +55,13 @@ def get_tdi_delays_wrap(delayed_links, y_gw, num_inputs, num_delays, t_arr, tdi_
|
|
|
55
55
|
cdef size_t A_in_in = A_in
|
|
56
56
|
cdef size_t E_in_in = E_in
|
|
57
57
|
cdef size_t t_arr_in = t_arr
|
|
58
|
+
cdef size_t unit_starts_in = unit_starts
|
|
59
|
+
cdef size_t unit_lengths_in = unit_lengths
|
|
58
60
|
cdef size_t tdi_base_link_in = tdi_base_link
|
|
59
61
|
cdef size_t tdi_link_combinations_in = tdi_link_combinations
|
|
60
62
|
cdef size_t tdi_signs_in = tdi_signs
|
|
61
63
|
cdef size_t channels_in = channels
|
|
62
64
|
cdef size_t orbits_in = orbits
|
|
63
65
|
|
|
64
|
-
get_tdi_delays(<double*> delayed_links_in, <double*> y_gw_in, num_inputs, num_delays, <double*> t_arr_in, <int*> tdi_base_link_in, <int*> tdi_link_combinations_in, <int*> tdi_signs_in, <int*> channels_in, num_units, num_channels,
|
|
66
|
+
get_tdi_delays(<double*> delayed_links_in, <double*> y_gw_in, num_inputs, num_delays, <double*> t_arr_in, <int *>unit_starts_in, <int *>unit_lengths_in, <int*> tdi_base_link_in, <int*> tdi_link_combinations_in, <int*> tdi_signs_in, <int*> channels_in, num_units, num_channels,
|
|
65
67
|
order, sampling_frequency, buffer_integer, <double*> A_in_in, deps, num_A, <double*> E_in_in, tdi_start_ind, <Orbits*> orbits_in)
|
fastlisaresponse/response.py
CHANGED
|
@@ -341,38 +341,45 @@ class pyResponseTDI(object):
|
|
|
341
341
|
tdi_base_links = []
|
|
342
342
|
tdi_link_combinations = []
|
|
343
343
|
tdi_signs = []
|
|
344
|
+
tdi_operation_index = []
|
|
344
345
|
channels = []
|
|
345
346
|
|
|
347
|
+
tdi_index = 0
|
|
346
348
|
for permutation_number in range(3):
|
|
347
349
|
for tmp in tdi_combinations:
|
|
350
|
+
tdi_base_links.append(
|
|
351
|
+
self._cyclic_permutation(tmp["link"], permutation_number)
|
|
352
|
+
)
|
|
353
|
+
tdi_signs.append(tmp["sign"])
|
|
354
|
+
channels.append(permutation_number)
|
|
348
355
|
if len(tmp["links_for_delay"]) == 0:
|
|
349
|
-
tdi_base_links.append(
|
|
350
|
-
self._cyclic_permutation(tmp["link"], permutation_number)
|
|
351
|
-
)
|
|
352
356
|
tdi_link_combinations.append(-11)
|
|
353
|
-
|
|
354
|
-
channels.append(permutation_number)
|
|
355
|
-
continue
|
|
357
|
+
tdi_operation_index.append(tdi_index)
|
|
356
358
|
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
tdi_signs.append(tmp["sign"])
|
|
365
|
-
channels.append(permutation_number)
|
|
359
|
+
else:
|
|
360
|
+
for link_delay in tmp["links_for_delay"]:
|
|
361
|
+
|
|
362
|
+
tdi_link_combinations.append(
|
|
363
|
+
self._cyclic_permutation(link_delay, permutation_number)
|
|
364
|
+
)
|
|
365
|
+
tdi_operation_index.append(tdi_index)
|
|
366
366
|
|
|
367
|
+
tdi_index += 1
|
|
368
|
+
|
|
369
|
+
self.tdi_operation_index = self.xp.asarray(tdi_operation_index).astype(
|
|
370
|
+
self.xp.int32
|
|
371
|
+
)
|
|
367
372
|
self.tdi_base_links = self.xp.asarray(tdi_base_links).astype(self.xp.int32)
|
|
368
373
|
self.tdi_link_combinations = self.xp.asarray(tdi_link_combinations).astype(
|
|
369
374
|
self.xp.int32
|
|
370
375
|
)
|
|
371
376
|
self.tdi_signs = self.xp.asarray(tdi_signs).astype(self.xp.int32)
|
|
372
377
|
self.channels = self.xp.asarray(channels).astype(self.xp.int32)
|
|
378
|
+
assert len(self.tdi_link_combinations) == len(self.tdi_operation_index)
|
|
379
|
+
|
|
373
380
|
assert (
|
|
374
381
|
len(self.tdi_base_links)
|
|
375
|
-
== len(self.
|
|
382
|
+
== len(np.unique(self.tdi_operation_index))
|
|
376
383
|
== len(self.tdi_signs)
|
|
377
384
|
== len(self.channels)
|
|
378
385
|
)
|
|
@@ -562,17 +569,35 @@ class pyResponseTDI(object):
|
|
|
562
569
|
|
|
563
570
|
t_data = self.xp.arange(self.y_gw_length) * self.dt
|
|
564
571
|
|
|
572
|
+
num_units = self.tdi_operation_index.max() + 1
|
|
573
|
+
|
|
574
|
+
assert np.all(
|
|
575
|
+
(np.diff(self.tdi_operation_index) == 0)
|
|
576
|
+
| (np.diff(self.tdi_operation_index) == 1)
|
|
577
|
+
)
|
|
578
|
+
|
|
579
|
+
_, unit_starts, unit_lengths = np.unique(
|
|
580
|
+
self.tdi_operation_index,
|
|
581
|
+
return_index=True,
|
|
582
|
+
return_counts=True,
|
|
583
|
+
)
|
|
584
|
+
|
|
585
|
+
unit_starts = unit_starts.astype(np.int32)
|
|
586
|
+
unit_lengths = unit_lengths.astype(np.int32)
|
|
587
|
+
|
|
565
588
|
self.tdi_gen(
|
|
566
589
|
self.delayed_links_flat,
|
|
567
590
|
self.y_gw_flat,
|
|
568
591
|
self.y_gw_length,
|
|
569
592
|
self.num_pts,
|
|
570
593
|
t_data,
|
|
594
|
+
unit_starts,
|
|
595
|
+
unit_lengths,
|
|
571
596
|
self.tdi_base_links,
|
|
572
597
|
self.tdi_link_combinations,
|
|
573
598
|
self.tdi_signs,
|
|
574
599
|
self.channels,
|
|
575
|
-
|
|
600
|
+
num_units,
|
|
576
601
|
3, # num channels
|
|
577
602
|
self.order,
|
|
578
603
|
self.sampling_frequency,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.2
|
|
2
2
|
Name: fastlisaresponse
|
|
3
|
-
Version: 1.0.
|
|
3
|
+
Version: 1.0.10
|
|
4
4
|
Home-page: https://github.com/mikekatz04/lisa-on-gpu
|
|
5
5
|
Author: Michael Katz
|
|
6
6
|
Author-email: mikekatz04@gmail.com
|
|
@@ -13,6 +13,13 @@ Classifier: Programming Language :: Cython
|
|
|
13
13
|
Classifier: Programming Language :: Python :: 3.12
|
|
14
14
|
Requires-Python: >=3.6
|
|
15
15
|
Description-Content-Type: text/markdown
|
|
16
|
+
Dynamic: author
|
|
17
|
+
Dynamic: author-email
|
|
18
|
+
Dynamic: classifier
|
|
19
|
+
Dynamic: description
|
|
20
|
+
Dynamic: description-content-type
|
|
21
|
+
Dynamic: home-page
|
|
22
|
+
Dynamic: requires-python
|
|
16
23
|
|
|
17
24
|
# fastlisaresponse: Generic LISA response function for GPUs
|
|
18
25
|
|
|
@@ -40,7 +47,7 @@ See [examples notebook](https://github.com/mikekatz04/lisa-on-gpu/blob/master/ex
|
|
|
40
47
|
|
|
41
48
|
### Prerequisites
|
|
42
49
|
|
|
43
|
-
Now (version 1.0.
|
|
50
|
+
Now (version 1.0.10) `fastlisaresponse` requires the newest version of [LISA Analysis Tools](github.com/mikekatz04/LISAanalysistools). You can run `pip install lisaanalysistools`.
|
|
44
51
|
|
|
45
52
|
To install this software for CPU usage, you need Python >3.4 and NumPy. To run the examples, you will also need jupyter and matplotlib. We generally recommend installing everything, including gcc and g++ compilers, in the conda environment as is shown in the examples here. This generally helps avoid compilation and linking issues. If you use your own chosen compiler, you will need to make sure all necessary information is passed to the setup command (see below). You also may need to add information to the `setup.py` file.
|
|
46
53
|
|
|
@@ -105,7 +112,7 @@ Please read [CONTRIBUTING.md](CONTRIBUTING.md) for details on our code of conduc
|
|
|
105
112
|
|
|
106
113
|
We use [SemVer](http://semver.org/) for versioning. For the versions available, see the [tags on this repository](https://github.com/mikekatz04/lisa-on-gpu/tags).
|
|
107
114
|
|
|
108
|
-
Current Version: 1.0.
|
|
115
|
+
Current Version: 1.0.10
|
|
109
116
|
|
|
110
117
|
## Authors
|
|
111
118
|
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
fastlisaresponse/__init__.py,sha256=wwmiIBy9IuFwoc4jQyJVkJBhjB8B1XZjerTe_E8FkI8,53
|
|
2
|
+
fastlisaresponse/_version.py,sha256=5vGk-8GWz6jojEu9w36UP5aNA0LuiwgbNSJ8Umn2rLA,23
|
|
3
|
+
fastlisaresponse/pointer_adjust.py,sha256=TjcSehyffLxwgJnrAmcFlPvxXb3XPElMoHXLBOQN-PI,736
|
|
4
|
+
fastlisaresponse/response.py,sha256=te-rywG9Y-hmpq4SZbbiffwDDzqjqyBqFx70_fZeMkA,29303
|
|
5
|
+
fastlisaresponse/cutils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
6
|
+
fastlisaresponse/cutils/pyresponse_cpu.cpython-312-darwin.so,sha256=_laHmIIAGc8hJkQW9IixohU4JSWc8BznDmmIzuQ9Gys,126328
|
|
7
|
+
fastlisaresponse/cutils/include/LISAResponse.hh,sha256=sehkfJyIEzPkd1t93kZcDGhLi2bFnbtHrF8J2lIaMqg,1061
|
|
8
|
+
fastlisaresponse/cutils/include/cuda_complex.hpp,sha256=qjBjBf5ctvcKYtMPO2ngqTi6qgq6xsnalFwaZG_NLTw,37562
|
|
9
|
+
fastlisaresponse/cutils/src/LISAResponse.cpp,sha256=_lRRBy3cABeDkBUN3h0bCbflklYiyD6eacFgd-8R8TY,30332
|
|
10
|
+
fastlisaresponse/cutils/src/LISAResponse.cu,sha256=_lRRBy3cABeDkBUN3h0bCbflklYiyD6eacFgd-8R8TY,30332
|
|
11
|
+
fastlisaresponse/cutils/src/responselisa.pyx,sha256=QWPDuVt2_3j0RKB5zAzJZPkOM4bBEY_p4CKKC1CniZs,3278
|
|
12
|
+
fastlisaresponse/utils/__init__.py,sha256=pf2NmWKs_uQNzlyA5iNO1gTRDISKNmIIsvOcKqQ3hgw,33
|
|
13
|
+
fastlisaresponse/utils/utility.py,sha256=NrJdBmEnLkLPk6Ile1TZg8jNLw6xERiSp58iGVlz01s,2709
|
|
14
|
+
fastlisaresponse-1.0.10.dist-info/METADATA,sha256=uCD3HOOTf-xXxPaxIFRSHJuDSwz736tGLYuEXhBF2PE,4887
|
|
15
|
+
fastlisaresponse-1.0.10.dist-info/WHEEL,sha256=VujM3ypTCyUW6hcTDdK2ej0ARVMxlU1Djlh_zWnDgqk,109
|
|
16
|
+
fastlisaresponse-1.0.10.dist-info/top_level.txt,sha256=J4M7Xx_52RqYZrLf99ryAbQjq8GbVjgZdhxekkYw8lg,17
|
|
17
|
+
fastlisaresponse-1.0.10.dist-info/RECORD,,
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
fastlisaresponse/__init__.py,sha256=wwmiIBy9IuFwoc4jQyJVkJBhjB8B1XZjerTe_E8FkI8,53
|
|
2
|
-
fastlisaresponse/_version.py,sha256=q2ACMkQx0Hm5xKo2YKJFBE7rTruciTSIN6AvWWL9nB8,22
|
|
3
|
-
fastlisaresponse/pointer_adjust.py,sha256=TjcSehyffLxwgJnrAmcFlPvxXb3XPElMoHXLBOQN-PI,736
|
|
4
|
-
fastlisaresponse/response.py,sha256=_dHVDuSTbUhxnUW_gmweAJ0M-jLgPZMvZpVQmkx2eiE,28665
|
|
5
|
-
fastlisaresponse/cutils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
6
|
-
fastlisaresponse/cutils/pyresponse_cpu.cpython-312-darwin.so,sha256=lO19JH-noRl8llH7by9hkryurZ9RKsHBLKz0LMM5CCk,126136
|
|
7
|
-
fastlisaresponse/cutils/include/LISAResponse.hh,sha256=mbWEq31Q98PR7XCzhb6SqmygJrXGcQK_fs3sHbmZNe8,1024
|
|
8
|
-
fastlisaresponse/cutils/include/cuda_complex.hpp,sha256=qjBjBf5ctvcKYtMPO2ngqTi6qgq6xsnalFwaZG_NLTw,37562
|
|
9
|
-
fastlisaresponse/cutils/src/LISAResponse.cpp,sha256=AfIdBpwTVtwtpL0Rf2p6WB_XG4YZhII6_z66ldedtuE,29994
|
|
10
|
-
fastlisaresponse/cutils/src/LISAResponse.cu,sha256=AfIdBpwTVtwtpL0Rf2p6WB_XG4YZhII6_z66ldedtuE,29994
|
|
11
|
-
fastlisaresponse/cutils/src/responselisa.pyx,sha256=RexvhiGcb2fK_i1YIQMQxGZLKfJYukn59Hd3wOkZqHw,3075
|
|
12
|
-
fastlisaresponse/utils/__init__.py,sha256=pf2NmWKs_uQNzlyA5iNO1gTRDISKNmIIsvOcKqQ3hgw,33
|
|
13
|
-
fastlisaresponse/utils/utility.py,sha256=NrJdBmEnLkLPk6Ile1TZg8jNLw6xERiSp58iGVlz01s,2709
|
|
14
|
-
fastlisaresponse-1.0.9.dist-info/METADATA,sha256=tuXk6U6D0TM0nR--57ONepNeRKzRX_LdiBYR2gf9M38,4727
|
|
15
|
-
fastlisaresponse-1.0.9.dist-info/WHEEL,sha256=7Wd-yga4fjSiXpUH443rsPZpiZ4h8-uNrXJrYRW_e14,109
|
|
16
|
-
fastlisaresponse-1.0.9.dist-info/top_level.txt,sha256=J4M7Xx_52RqYZrLf99ryAbQjq8GbVjgZdhxekkYw8lg,17
|
|
17
|
-
fastlisaresponse-1.0.9.dist-info/RECORD,,
|
|
File without changes
|