55
66import numpy as np
77
8- from autoconf import cached_property
9-
108from autoarray .dataset .grids import GridsInterface
119from autoarray .dataset .dataset_model import DatasetModel
1210from autoarray .fit import fit_util
@@ -85,7 +83,7 @@ def chi_squared(self) -> float:
8583 """
8684 Returns the chi-squared terms of the model data's fit to an dataset, by summing the chi-squared-map.
8785 """
88- return fit_util .chi_squared_from (chi_squared_map = self .chi_squared_map .array )
86+ return fit_util .chi_squared_from (chi_squared_map = self .chi_squared_map .array , xp = self . _xp )
8987
9088 @property
9189 def noise_normalization (self ) -> float :
@@ -94,7 +92,7 @@ def noise_normalization(self) -> float:
9492
9593 [Noise_Term] = sum(log(2*pi*[Noise]**2.0))
9694 """
97- return fit_util .noise_normalization_from (noise_map = self .noise_map .array )
95+ return fit_util .noise_normalization_from (noise_map = self .noise_map .array , xp = self . _xp )
9896
9997 @property
10098 def log_likelihood (self ) -> float :
@@ -115,6 +113,7 @@ def __init__(
115113 dataset ,
116114 use_mask_in_fit : bool = False ,
117115 dataset_model : DatasetModel = None ,
116+ xp = np
118117 ):
119118 """Class to fit a masked dataset where the dataset's data structures are any dimension.
120119
@@ -147,12 +146,13 @@ def __init__(
147146 self .dataset = dataset
148147 self .use_mask_in_fit = use_mask_in_fit
149148 self .dataset_model = dataset_model or DatasetModel ()
149+ self ._xp = xp
150150
151151 @property
152152 def mask (self ) -> Mask2D :
153153 return self .dataset .mask
154154
155- @cached_property
155+ @property
156156 def grids (self ) -> GridsInterface :
157157
158158 def subtracted_from (grid , offset ):
@@ -196,7 +196,7 @@ def residual_map(self) -> ty.DataLike:
196196
197197 if self .use_mask_in_fit :
198198 return fit_util .residual_map_with_mask_from (
199- data = self .data , model_data = self .model_data , mask = self .mask
199+ data = self .data , model_data = self .model_data , mask = self .mask , xp = self . _xp
200200 )
201201 return super ().residual_map
202202
@@ -209,7 +209,7 @@ def normalized_residual_map(self) -> ty.DataLike:
209209 """
210210 if self .use_mask_in_fit :
211211 return fit_util .normalized_residual_map_with_mask_from (
212- residual_map = self .residual_map , noise_map = self .noise_map , mask = self .mask
212+ residual_map = self .residual_map , noise_map = self .noise_map , mask = self .mask , xp = self . _xp
213213 )
214214 return super ().normalized_residual_map
215215
@@ -222,7 +222,7 @@ def chi_squared_map(self) -> ty.DataLike:
222222 """
223223 if self .use_mask_in_fit :
224224 return fit_util .chi_squared_map_with_mask_from (
225- residual_map = self .residual_map , noise_map = self .noise_map , mask = self .mask
225+ residual_map = self .residual_map , noise_map = self .noise_map , mask = self .mask , xp = self . _xp
226226 )
227227 return super ().chi_squared_map
228228
@@ -243,7 +243,7 @@ def chi_squared(self) -> float:
243243
244244 if self .use_mask_in_fit :
245245 return fit_util .chi_squared_with_mask_from (
246- chi_squared_map = self .chi_squared_map , mask = self .mask
246+ chi_squared_map = self .chi_squared_map , mask = self .mask , xp = self . _xp
247247 )
248248 return super ().chi_squared
249249
@@ -256,7 +256,7 @@ def noise_normalization(self) -> float:
256256 """
257257 if self .use_mask_in_fit :
258258 return fit_util .noise_normalization_with_mask_from (
259- noise_map = self .noise_map , mask = self .mask
259+ noise_map = self .noise_map , mask = self .mask , xp = self . _xp
260260 )
261261 return super ().noise_normalization
262262
0 commit comments