fastlisaresponse 1.0.8__tar.gz → 1.0.10__tar.gz

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.

Files changed (28) hide show
  1. {fastlisaresponse-1.0.8 → fastlisaresponse-1.0.10}/PKG-INFO +11 -4
  2. {fastlisaresponse-1.0.8 → fastlisaresponse-1.0.10}/README.md +2 -2
  3. fastlisaresponse-1.0.10/fastlisaresponse/_version.py +1 -0
  4. {fastlisaresponse-1.0.8 → fastlisaresponse-1.0.10/fastlisaresponse/cutils}/include/LISAResponse.hh +1 -1
  5. {fastlisaresponse-1.0.8 → fastlisaresponse-1.0.10/fastlisaresponse/cutils}/src/LISAResponse.cpp +50 -50
  6. fastlisaresponse-1.0.10/fastlisaresponse/cutils/src/LISAResponse.cu +919 -0
  7. fastlisaresponse-1.0.10/fastlisaresponse/cutils/src/responselisa.pyx +67 -0
  8. {fastlisaresponse-1.0.8 → fastlisaresponse-1.0.10/fastlisaresponse/cutils}/src/responselisa_cpu.cpp +1960 -1266
  9. {fastlisaresponse-1.0.8 → fastlisaresponse-1.0.10/fastlisaresponse/cutils}/src/responselisa_cpu.pyx +5 -3
  10. {fastlisaresponse-1.0.8 → fastlisaresponse-1.0.10}/fastlisaresponse/response.py +46 -21
  11. {fastlisaresponse-1.0.8 → fastlisaresponse-1.0.10}/fastlisaresponse.egg-info/PKG-INFO +11 -4
  12. {fastlisaresponse-1.0.8 → fastlisaresponse-1.0.10}/fastlisaresponse.egg-info/SOURCES.txt +9 -7
  13. {fastlisaresponse-1.0.8 → fastlisaresponse-1.0.10}/pyproject.toml +1 -1
  14. {fastlisaresponse-1.0.8 → fastlisaresponse-1.0.10}/scripts/prebuild.py +2 -2
  15. {fastlisaresponse-1.0.8 → fastlisaresponse-1.0.10}/setup.py +28 -10
  16. fastlisaresponse-1.0.8/fastlisaresponse/_version.py +0 -1
  17. {fastlisaresponse-1.0.8 → fastlisaresponse-1.0.10}/MANIFEST.in +0 -0
  18. {fastlisaresponse-1.0.8 → fastlisaresponse-1.0.10}/fastlisaresponse/__init__.py +0 -0
  19. {fastlisaresponse-1.0.8 → fastlisaresponse-1.0.10}/fastlisaresponse/cutils/__init__.py +0 -0
  20. {fastlisaresponse-1.0.8 → fastlisaresponse-1.0.10/fastlisaresponse/cutils}/include/cuda_complex.hpp +0 -0
  21. {fastlisaresponse-1.0.8 → fastlisaresponse-1.0.10}/fastlisaresponse/pointer_adjust.py +0 -0
  22. {fastlisaresponse-1.0.8 → fastlisaresponse-1.0.10}/fastlisaresponse/utils/__init__.py +0 -0
  23. {fastlisaresponse-1.0.8 → fastlisaresponse-1.0.10}/fastlisaresponse/utils/utility.py +0 -0
  24. {fastlisaresponse-1.0.8 → fastlisaresponse-1.0.10}/fastlisaresponse.egg-info/dependency_links.txt +0 -0
  25. {fastlisaresponse-1.0.8 → fastlisaresponse-1.0.10}/fastlisaresponse.egg-info/not-zip-safe +0 -0
  26. {fastlisaresponse-1.0.8 → fastlisaresponse-1.0.10}/fastlisaresponse.egg-info/top_level.txt +0 -0
  27. {fastlisaresponse-1.0.8 → fastlisaresponse-1.0.10}/requirements.txt +0 -0
  28. {fastlisaresponse-1.0.8 → fastlisaresponse-1.0.10}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.2
2
2
  Name: fastlisaresponse
3
- Version: 1.0.8
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.7) `fastlisaresponse` requires the newest version of [LISA Analysis Tools](github.com/mikekatz04/LISAanalysistools). You can run `pip install lisaanalysistools`.
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.7
115
+ Current Version: 1.0.10
109
116
 
110
117
  ## Authors
111
118
 
@@ -24,7 +24,7 @@ See [examples notebook](https://github.com/mikekatz04/lisa-on-gpu/blob/master/ex
24
24
 
25
25
  ### Prerequisites
26
26
 
27
- Now (version 1.0.7) `fastlisaresponse` requires the newest version of [LISA Analysis Tools](github.com/mikekatz04/LISAanalysistools). You can run `pip install lisaanalysistools`.
27
+ Now (version 1.0.10) `fastlisaresponse` requires the newest version of [LISA Analysis Tools](github.com/mikekatz04/LISAanalysistools). You can run `pip install lisaanalysistools`.
28
28
 
29
29
  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.
30
30
 
@@ -89,7 +89,7 @@ Please read [CONTRIBUTING.md](CONTRIBUTING.md) for details on our code of conduc
89
89
 
90
90
  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).
91
91
 
92
- Current Version: 1.0.7
92
+ Current Version: 1.0.10
93
93
 
94
94
  ## Authors
95
95
 
@@ -0,0 +1 @@
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__
@@ -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