lisaanalysistools 1.0.4__cp312-cp312-macosx_10_9_x86_64.whl → 1.0.5__cp312-cp312-macosx_10_9_x86_64.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 lisaanalysistools might be problematic. Click here for more details.

@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: lisaanalysistools
3
- Version: 1.0.4
3
+ Version: 1.0.5
4
4
  Home-page: https://github.com/mikekatz04/lisa-on-gpu
5
5
  Author: Michael Katz
6
6
  Author-email: mikekatz04@gmail.com
@@ -60,7 +60,7 @@ Please read [CONTRIBUTING.md](CONTRIBUTING.md) for details on our code of conduc
60
60
 
61
61
  We use [SemVer](http://semver.org/) for versioning. For the versions available, see the [tags on this repository](https://github.com/BlackHolePerturbationToolkit/FastEMRIWaveforms/tags).
62
62
 
63
- Current Version: 1.0.4
63
+ Current Version: 1.0.5
64
64
 
65
65
  ## Authors/Developers
66
66
 
@@ -1,11 +1,10 @@
1
1
  lisatools/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
- lisatools/_version.py,sha256=ZyRiY_EiNuQjMpqN7rHllKpqA3B9m-CTwI9pWBKukog,123
2
+ lisatools/_version.py,sha256=QnhTB8xNwmBZijHj3vbB3rZZAVZJsQdBQ0N3zLG2pMY,123
3
3
  lisatools/analysiscontainer.py,sha256=ePwTBUTEBJn2TK93_afARate9SAqUKK8c8T6DcGUx1Y,15321
4
4
  lisatools/datacontainer.py,sha256=W89ErPJynfeioZwYqcpehHVorhKsb8FLKrj69zIsKKU,9187
5
- lisatools/detector.py,sha256=Ht5v-Iq_DJlCWMt9iSbZwmEwTGwd3pdeOaw4lBtmiBQ,13852
5
+ lisatools/detector.py,sha256=_S7fmtOaFLIzTfVnVTXjD58rvl7-DVy2WR4aG1V-CsE,13851
6
6
  lisatools/diagnostic.py,sha256=CfPpfvDys1XyZRWmmTqTSWb0SY2eH0G_8TRnt1OxBFo,34174
7
- lisatools/glitch.py,sha256=qMNSqdmGqdm6kVtZP9qncP_40DyPj9ushbXh88g9wlU,5154
8
- lisatools/sensitivity.py,sha256=eYSqM3Kr5UsAhqR3J5DWQBGaavL5dGO1ouWpbhMwhao,27263
7
+ lisatools/sensitivity.py,sha256=rckXeJ_5U3cRRgbYDmt0kaTyJRjkrYfgBwos12QJJfw,27297
9
8
  lisatools/stochastic.py,sha256=wdiToEj4nUpCDIb0j7vQ7netTPDDtPGPbUg8-RiFA9U,9421
10
9
  lisatools/cutils/detector.cpython-312-darwin.so,sha256=FguczB3QPZfL3CCSMEuIx3VP0jj240_Dh30anER84m8,121664
11
10
  lisatools/sampling/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -14,24 +13,16 @@ lisatools/sampling/prior.py,sha256=1K1PMStpwO9WT0qG0aotKSyoNjuehXNbzTDtlk8Q15M,2
14
13
  lisatools/sampling/stopping.py,sha256=Q8q7nM0wnJervhRduf2tBXZZHUVza5kJiAUAMUQXP5o,9682
15
14
  lisatools/sampling/utility.py,sha256=rOGotS0Aj8-DAWqsTVy2xWNsxsoz74BVrHEnG2mOkwU,14340
16
15
  lisatools/sampling/moves/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
17
- lisatools/sampling/moves/gbgroupstretch.py,sha256=mgczS3qpcro5J3M501yHg9GwGNHsuMCtNZVywA_w8pM,1220
18
- lisatools/sampling/moves/gbmultipletryrj.py,sha256=KXOB1GinZw1uXQPxnXk7tzEcUfY7OCTBTtEB0T2Dg-s,51802
19
- lisatools/sampling/moves/gbspecialgroupstretch.py,sha256=m-73giWE_oaIlscXZrNNu9Ab_fyRBkKhn0kkzA3BY24,31152
20
- lisatools/sampling/moves/gbspecialstretch.py,sha256=K0yoeBveaaB0rmXyhMsRWjR0gABKjpRx4ShhaNcKBuM,90189
21
- lisatools/sampling/moves/mbhspecialmove.py,sha256=E2dV1HwmBlZYYufowUSAfFiVmljwx1tEX-yXBmFQfVU,14163
22
- lisatools/sampling/moves/placeholder.py,sha256=CUKKthGMA0UFiifnvNFpvFZfDYWQ_XI0bIbCw0oDeqI,469
23
16
  lisatools/sampling/moves/skymodehop.py,sha256=0nf72eFhFMGwi0dLJci6XZz-bIMGqco2B2_J72hQvf8,3348
24
- lisatools/sampling/moves/specialforegroundmove.py,sha256=b9sdhWSELnBBSTiGU0taHS-e0lth2OepW139ZdP-aAU,25092
25
17
  lisatools/sources/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
26
18
  lisatools/sources/emri/__init__.py,sha256=HjsWS4mjog_gRE4N90My6ahLKQGjNwrHIeA40R7qzw0,41
27
19
  lisatools/sources/emri/tdiwaveform.py,sha256=jaKL2PO8RlJrHP45zCa4BpRniLfdnMIP1QsIB-6jVq4,2297
28
20
  lisatools/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
29
21
  lisatools/utils/constants.py,sha256=r1kVwkpbZS13JTOxj2iRxT5sMgTYX30y-S0JdVmD5Oo,1354
30
- lisatools/utils/multigpudataholder.py,sha256=6HwkOceqga1Q7eK4TjStGXy4oKgx37hTkdcAwiiZ8_Y,33765
31
22
  lisatools/utils/pointeradjust.py,sha256=2sT-7qeYWr1pd_sHk9leVHUTSJ7jJgYIRoWQOtYqguE,2995
32
23
  lisatools/utils/utility.py,sha256=3mJoJKNGrm3KuNXIa2RUKi9WKd593V4q9XjjQZCQD0M,6831
33
- lisaanalysistools-1.0.4.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
34
- lisaanalysistools-1.0.4.dist-info/METADATA,sha256=reVoFCjiQuN-XxTsgR7PW_ROH4yQEkWLeQPxF3adDcw,3380
35
- lisaanalysistools-1.0.4.dist-info/WHEEL,sha256=KYtn_mzb_QwZSHwPlosUO3fDl70znfUFngLlrLVHeBY,111
36
- lisaanalysistools-1.0.4.dist-info/top_level.txt,sha256=oCQGY7qy66i_b9MCsK2fTRdbV1pcC9GsGgIDjN47Tyc,14
37
- lisaanalysistools-1.0.4.dist-info/RECORD,,
24
+ lisaanalysistools-1.0.5.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
25
+ lisaanalysistools-1.0.5.dist-info/METADATA,sha256=zfuyj8R4brFWnqruMjtzkbTxmVQ5L9Lelh9zNrslfPs,3380
26
+ lisaanalysistools-1.0.5.dist-info/WHEEL,sha256=KYtn_mzb_QwZSHwPlosUO3fDl70znfUFngLlrLVHeBY,111
27
+ lisaanalysistools-1.0.5.dist-info/top_level.txt,sha256=oCQGY7qy66i_b9MCsK2fTRdbV1pcC9GsGgIDjN47Tyc,14
28
+ lisaanalysistools-1.0.5.dist-info/RECORD,,
lisatools/_version.py CHANGED
@@ -1,4 +1,4 @@
1
- __version__ = '1.0.4'
1
+ __version__ = '1.0.5'
2
2
  __copyright__ = "Michael L. Katz 2024"
3
3
  __name__ = "lisaanalysistools"
4
4
  __author__ = "Michael L. Katz"
lisatools/detector.py CHANGED
@@ -443,7 +443,7 @@ class LISAModel(LISAModelSettings, ABC):
443
443
  scirdv1 = LISAModel((15.0e-12) ** 2, (3.0e-15) ** 2, DefaultOrbits(), "scirdv1")
444
444
  proposal = LISAModel((10.0e-12) ** 2, (3.0e-15) ** 2, DefaultOrbits(), "proposal")
445
445
  mrdv1 = LISAModel((10.0e-12) ** 2, (2.4e-15) ** 2, DefaultOrbits(), "mrdv1")
446
- sangria = LISAModel((10.0e-12) ** 2, (2.4e-15) ** 2, DefaultOrbits(), "sangria")
446
+ sangria = LISAModel((7.9e-12) ** 2, (2.4e-15) ** 2, DefaultOrbits(), "sangria")
447
447
 
448
448
  __stock_list_models__ = [scirdv1, proposal, mrdv1, sangria]
449
449
  __stock_list_models_name__ = [tmp.name for tmp in __stock_list_models__]
lisatools/sensitivity.py CHANGED
@@ -117,7 +117,6 @@ class Sensitivity(ABC):
117
117
  PSD values.
118
118
 
119
119
  """
120
- x = 2.0 * np.pi * lisaLT * f
121
120
 
122
121
  # get noise values
123
122
  Spm, Sop = cls.lisanoises(f, model)
@@ -126,7 +125,11 @@ class Sensitivity(ABC):
126
125
  Sout = cls.transform(f, Spm, Sop, **kwargs)
127
126
 
128
127
  # will add zero if ignored
129
- Sout += cls.get_stochastic_contribution(f, **kwargs)
128
+ stochastic_contribution = cls.stochastic_transform(
129
+ f, cls.get_stochastic_contribution(f, **kwargs), **kwargs
130
+ )
131
+
132
+ Sout += stochastic_contribution
130
133
  return Sout
131
134
 
132
135
  @classmethod
@@ -173,12 +176,9 @@ class Sensitivity(ABC):
173
176
  if stochastic_function is None:
174
177
  stochastic_function = FittedHyperbolicTangentGalacticForeground
175
178
 
176
- try:
177
179
  check = stochastic_function.get_Sh(
178
180
  f, *stochastic_params, **stochastic_kwargs
179
181
  )
180
- except:
181
- breakpoint()
182
182
  sgal[:] = check
183
183
 
184
184
  if squeeze:
@@ -343,7 +343,7 @@ class A1TDISens(Sensitivity):
343
343
  )
344
344
 
345
345
  x = 2.0 * np.pi * lisaLT * f
346
- return (
346
+ Sa = (
347
347
  8.0
348
348
  * np.sin(x) ** 2
349
349
  * (
@@ -352,6 +352,8 @@ class A1TDISens(Sensitivity):
352
352
  )
353
353
  )
354
354
 
355
+ return Sa
356
+
355
357
  @staticmethod
356
358
  def stochastic_transform(
357
359
  f: float | np.ndarray, Sh: float | np.ndarray, **kwargs: dict
lisatools/glitch.py DELETED
@@ -1,193 +0,0 @@
1
- from lisaconstants import *
2
- import numpy as np
3
-
4
- co = C_SI
5
-
6
-
7
- def HeavisideTheta(x, xp=None):
8
- if xp is None:
9
- xp = np
10
-
11
- squeeze = True if x.ndim == 1 else False
12
-
13
- x = xp.atleast_1d(x)
14
-
15
- out = 1.0 * (x >= 0.0)
16
-
17
- if squeeze:
18
- out = out.squeeze()
19
-
20
- return out
21
-
22
-
23
- def DiracDelta(x, xp=None):
24
- if xp is None:
25
- xp = np
26
- squeeze = True if x.ndim == 1 else False
27
-
28
- x = xp.atleast_1d(x)
29
-
30
- # 1e-10 to guard against numerical error
31
- out = 1.0 * (xp.abs(x) < 1e-10)
32
-
33
- if squeeze:
34
- out = out.squeeze()
35
-
36
- return out
37
-
38
-
39
- tau_2_default = 5585.708541201614
40
- Deltav_default = 1.1079114425597559 * 10 ** (-9)
41
-
42
- tau_2_default = 1.9394221536001746
43
- Deltav_default = 2.22616837 * 10 ** (-11)
44
- t0 = 600
45
-
46
-
47
- def tdi_glitch_XYZ1(
48
- t_in, T=8.3, tau_2=tau_2_default, Deltav=Deltav_default, t0=600, mtm=1.982, xp=None
49
- ):
50
- # def tdi_glitch_XYZ1(t_in, T=8.3, tau_1=480.0, tau_2=100.0, Deltav=1e-12, t0=600.0, mtm=1.982, xp=None):
51
-
52
- if xp is None:
53
- xp = np
54
-
55
- tau_2 = xp.atleast_1d(tau_2)
56
- t0 = xp.atleast_1d(t0)
57
- Deltav = xp.atleast_1d(Deltav)
58
-
59
- assert tau_2.shape == t0.shape == Deltav.shape
60
-
61
- out = xp.zeros((3, len(t0), len(t_in)))
62
-
63
- run = ~(
64
- xp.isinf(xp.exp((-t_in[None, :] + t0[:, None])))
65
- | xp.isnan(xp.exp((-t_in[None, :] + t0[:, None])))
66
- )
67
-
68
- tdiX1link12 = (
69
- mtm
70
- * Deltav[:, None]
71
- * (
72
- t_in[None, :]
73
- - t0[:, None]
74
- - 2 * tau_2[:, None]
75
- + xp.exp((-t_in[None, :] + t0[:, None]) / tau_2[:, None])
76
- * (t_in[None, :] - t0[:, None] + 2 * tau_2[:, None])
77
- )
78
- * DiracDelta(t_in[None, :] - t0[:, None])
79
- + mtm
80
- * Deltav[:, None]
81
- * (
82
- 1
83
- + (
84
- xp.exp((-t_in[None, :] + t0[:, None]) / tau_2[:, None])
85
- * (-t_in[None, :] + t0[:, None] - tau_2[:, None])
86
- )
87
- / tau_2[:, None]
88
- )
89
- * HeavisideTheta(t_in[None, :] - t0[:, None])
90
- ) / co - (
91
- mtm
92
- * Deltav[:, None]
93
- * (
94
- t_in[None, :]
95
- + 4 * T
96
- - t0[:, None]
97
- - 2 * tau_2[:, None]
98
- + xp.exp((-t_in[None, :] - 4 * T + t0[:, None]) / tau_2[:, None])
99
- * (t_in[None, :] + 4 * T - t0[:, None] + 2 * tau_2[:, None])
100
- )
101
- * DiracDelta(t_in[None, :] + 4 * T - t0[:, None])
102
- + mtm
103
- * Deltav[:, None]
104
- * (
105
- 1
106
- - (
107
- xp.exp((-t_in[None, :] - 4 * T + t0[:, None]) / tau_2[:, None])
108
- * (t_in[None, :] + 4 * T - t0[:, None] + tau_2[:, None])
109
- )
110
- / tau_2[:, None]
111
- )
112
- * HeavisideTheta(t_in[None, :] + 4 * T - t0[:, None])
113
- ) / co
114
-
115
- tdiY1link12 = (
116
- -2
117
- * (
118
- mtm
119
- * Deltav[:, None]
120
- * (
121
- t_in[None, :]
122
- + T
123
- - t0[:, None]
124
- - 2 * tau_2[:, None]
125
- + (t_in[None, :] + T - t0[:, None] + 2 * tau_2[:, None])
126
- / xp.exp((t_in[None, :] + T - t0[:, None]) / tau_2[:, None])
127
- )
128
- * DiracDelta(t_in[None, :] + T - t0[:, None])
129
- + mtm
130
- * Deltav[:, None]
131
- * (
132
- 1
133
- - (t_in[None, :] + T - t0[:, None] + tau_2[:, None])
134
- / (
135
- xp.exp((t_in[None, :] + T - t0[:, None]) / tau_2[:, None])
136
- * tau_2[:, None]
137
- )
138
- )
139
- * HeavisideTheta(t_in[None, :] + T - t0[:, None])
140
- )
141
- ) / co + (
142
- 2
143
- * (
144
- mtm
145
- * Deltav[:, None]
146
- * (
147
- t_in[None, :]
148
- + 3 * T
149
- - t0[:, None]
150
- - 2 * tau_2[:, None]
151
- + xp.exp((-t_in[None, :] - 3 * T + t0[:, None]) / tau_2[:, None])
152
- * (t_in[None, :] + 3 * T - t0[:, None] + 2 * tau_2[:, None])
153
- )
154
- * DiracDelta(t_in[None, :] + 3 * T - t0[:, None])
155
- + mtm
156
- * Deltav[:, None]
157
- * (
158
- 1
159
- - (
160
- xp.exp((-t_in[None, :] - 3 * T + t0[:, None]) / tau_2[:, None])
161
- * (t_in[None, :] + 3 * T - t0[:, None] + tau_2[:, None])
162
- )
163
- / tau_2[:, None]
164
- )
165
- * HeavisideTheta(t_in[None, :] + 3 * T - t0[:, None])
166
- )
167
- ) / co
168
-
169
- tdiZ1link12 = xp.zeros_like(tdiX1link12)
170
-
171
- tdiX1link12[~run] = 0.0
172
- tdiY1link12[~run] = 0.0
173
- tdiZ1link12[~run] = 0.0
174
-
175
- out[0, run] = tdiX1link12[run]
176
- out[1, run] = tdiY1link12[run]
177
- out[2, run] = tdiZ1link12[run]
178
-
179
- return out
180
-
181
-
182
- if __name__ == "__main__":
183
- dt = 1 / 0.3
184
- t = np.arange(2e3) * dt
185
- check = tdi_glitch_XYZ1(
186
- t
187
- ) # , T=8.3, tau_1=480.0, tau_2=100.0, Deltav=1e-12, t0=600.0, mtm=1.982)
188
- import matplotlib.pyplot as plt
189
-
190
- plt.loglog(np.fft.rfftfreq(len(check[0]), dt), np.abs(np.fft.rfft(check[0])))
191
- plt.loglog(np.fft.rfftfreq(len(check[0]), dt), np.abs(np.fft.rfft(check[1])))
192
- plt.savefig("plot1.png")
193
- breakpoint()
@@ -1,53 +0,0 @@
1
- # -*- coding: utf-8 -*-
2
-
3
- import numpy as np
4
- from scipy import stats
5
- import warnings
6
-
7
- try:
8
- import cupy as xp
9
-
10
- gpu_available = True
11
- except ModuleNotFoundError:
12
- import numpy as xp
13
-
14
- gpu_available = False
15
-
16
- from eryn.moves import GroupStretchMove
17
- from eryn.prior import ProbDistContainer
18
- from eryn.utils.utility import groups_from_inds
19
- from .gbmultipletryrj import GBMutlipleTryRJ
20
-
21
- from ...diagnostic import inner_product
22
-
23
-
24
- __all__ = ["GBGroupStretchMove"]
25
-
26
-
27
- # MHMove needs to be to the left here to overwrite GBBruteRejectionRJ RJ proposal method
28
- class GBGroupStretchMove(GroupStretchMove, GBMutlipleTryRJ):
29
- """Generate Revesible-Jump proposals for GBs with try-force rejection
30
-
31
- Will use gpu if template generator uses GPU.
32
-
33
- Args:
34
- priors (object): :class:`ProbDistContainer` object that has ``logpdf``
35
- and ``rvs`` methods.
36
-
37
- """
38
-
39
- def __init__(
40
- self,
41
- gb_args,
42
- gb_kwargs,
43
- start_ind_limit=10,
44
- *args,
45
- **kwargs
46
- ):
47
-
48
- self.name = "gbgroupstretch"
49
- self.start_ind_limit = start_ind_limit
50
- GBMutlipleTryRJ.__init__(self, *gb_args, **gb_kwargs)
51
- GroupStretchMove.__init__(self, *args, **kwargs)
52
-
53
-