fastlisaresponse 1.0.9__cp312-cp312-macosx_11_0_arm64.whl → 1.0.11__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.

@@ -1 +1 @@
1
- __version__ = "1.0.9"
1
+ __version__ = "1.0.11"
@@ -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__
@@ -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
- for (int unit_i = start1; unit_i < num_units; unit_i += increment1)
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
- int point_count = order + 1;
320
- int half_point_count = int(point_count / 2);
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
- int start2, increment2;
306
+ int point_count = order + 1;
307
+ int half_point_count = int(point_count / 2);
308
+ int start2, increment2;
323
309
  #ifdef __CUDACC__
324
- start2 = tdi_start_ind + threadIdx.x + blockDim.x * blockIdx.x;
325
- increment2 = blockDim.x * gridDim.x;
310
+ start2 = tdi_start_ind + threadIdx.x + blockDim.x * blockIdx.x;
311
+ increment2 = blockDim.x * gridDim.x;
326
312
  #else
327
- start2 = tdi_start_ind;
328
- increment2 = 1;
313
+ start2 = tdi_start_ind;
314
+ increment2 = 1;
329
315
  // #pragma omp parallel for
330
316
  #endif
331
- for (int i = start2;
332
- i < num_delays - tdi_start_ind;
333
- i += increment2)
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
- // at i = 0, delay ind should be at TDI_buffer = total_buffer - projection_buffer
344
- t = t_arr[i];
345
- if (combination_link == -11)
346
- {
347
- delay = t;
348
- }
349
- else
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
- delay = t - orbits.get_light_travel_time(t, combination_link);
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
- for (int unit_i = start1; unit_i < num_units; unit_i += increment1)
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
- int point_count = order + 1;
320
- int half_point_count = int(point_count / 2);
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
- int start2, increment2;
306
+ int point_count = order + 1;
307
+ int half_point_count = int(point_count / 2);
308
+ int start2, increment2;
323
309
  #ifdef __CUDACC__
324
- start2 = tdi_start_ind + threadIdx.x + blockDim.x * blockIdx.x;
325
- increment2 = blockDim.x * gridDim.x;
310
+ start2 = tdi_start_ind + threadIdx.x + blockDim.x * blockIdx.x;
311
+ increment2 = blockDim.x * gridDim.x;
326
312
  #else
327
- start2 = tdi_start_ind;
328
- increment2 = 1;
313
+ start2 = tdi_start_ind;
314
+ increment2 = 1;
329
315
  // #pragma omp parallel for
330
316
  #endif
331
- for (int i = start2;
332
- i < num_delays - tdi_start_ind;
333
- i += increment2)
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
- // at i = 0, delay ind should be at TDI_buffer = total_buffer - projection_buffer
344
- t = t_arr[i];
345
- if (combination_link == -11)
346
- {
347
- delay = t;
348
- }
349
- else
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
- delay = t - orbits.get_light_travel_time(t, combination_link);
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)
@@ -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
- tdi_signs.append(tmp["sign"])
354
- channels.append(permutation_number)
355
- continue
357
+ tdi_operation_index.append(tdi_index)
356
358
 
357
- for link_delay in tmp["links_for_delay"]:
358
- tdi_base_links.append(
359
- self._cyclic_permutation(tmp["link"], permutation_number)
360
- )
361
- tdi_link_combinations.append(
362
- self._cyclic_permutation(link_delay, permutation_number)
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.tdi_link_combinations)
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 = int(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
- len(self.tdi_base_links), # num_units
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
1
+ Metadata-Version: 2.2
2
2
  Name: fastlisaresponse
3
- Version: 1.0.9
3
+ Version: 1.0.11
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.9) `fastlisaresponse` requires the newest version of [LISA Analysis Tools](github.com/mikekatz04/LISAanalysistools). You can run `pip install lisaanalysistools`.
50
+ Now (version 1.0.11) `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.9
115
+ Current Version: 1.0.11
109
116
 
110
117
  ## Authors
111
118
 
@@ -0,0 +1,17 @@
1
+ fastlisaresponse/__init__.py,sha256=wwmiIBy9IuFwoc4jQyJVkJBhjB8B1XZjerTe_E8FkI8,53
2
+ fastlisaresponse/_version.py,sha256=wygrEW3brUgbks4JvwNjcujOADEl2PWkdIF9d8vyM3c,23
3
+ fastlisaresponse/pointer_adjust.py,sha256=TjcSehyffLxwgJnrAmcFlPvxXb3XPElMoHXLBOQN-PI,736
4
+ fastlisaresponse/response.py,sha256=l97zso8riyf5TF2dU98NPOPaIT_QFHyUEIkvCKe1its,29308
5
+ fastlisaresponse/cutils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
6
+ fastlisaresponse/cutils/pyresponse_cpu.cpython-312-darwin.so,sha256=xOd4TgeN5wYhO7NQQakfrih4r4IZQfyI-qJJwkv462o,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.11.dist-info/METADATA,sha256=E1M9FKEvwOI_3hwWL_Q-Qq8iQgIIyScBAHmSblssq-w,4887
15
+ fastlisaresponse-1.0.11.dist-info/WHEEL,sha256=VujM3ypTCyUW6hcTDdK2ej0ARVMxlU1Djlh_zWnDgqk,109
16
+ fastlisaresponse-1.0.11.dist-info/top_level.txt,sha256=J4M7Xx_52RqYZrLf99ryAbQjq8GbVjgZdhxekkYw8lg,17
17
+ fastlisaresponse-1.0.11.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (75.6.0)
2
+ Generator: setuptools (75.8.0)
3
3
  Root-Is-Purelib: false
4
4
  Tag: cp312-cp312-macosx_11_0_arm64
5
5
 
@@ -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,,