On some CPU architectures (i.e. my laptop with Ivy Bridge processor) the grid interpolation of a table model results in a numba typing error.
Traceback (most recent call last):
File "3ML_table_XSPEC_820.py", line 184, in
best_fit_parameters, likelihood_values =jl.fit()
File "/home/rwiller/miniconda3/envs/threeML/lib/python3.7/site-packages/threeML/classicMLE/joint_likelihood.py", line 324, in fit
compute_covar=compute_covariance
File "/home/rwiller/miniconda3/envs/threeML/lib/python3.7/site-packages/threeML/minimizer/minimization.py", line 632, in minimize
internal_best_fit_values, function_minimum = self._minimize()
File "/home/rwiller/miniconda3/envs/threeML/lib/python3.7/site-packages/threeML/minimizer/minuit_minimizer.py", line 193, in _minimize
self._last_migrad_results = self.minuit.migrad()
File "/home/rwiller/miniconda3/envs/threeML/lib/python3.7/site-packages/iminuit/minuit.py", line 683, in migrad
fm = migrad(ncall, self._tolerance)
File "/home/rwiller/miniconda3/envs/threeML/lib/python3.7/site-packages/threeML/classicMLE/joint_likelihood.py", line 974, in minus_log_like_profile
this_log_like = dataset.inner_fit()
File "/home/rwiller/miniconda3/envs/threeML/lib/python3.7/site-packages/threeML/plugins/SpectrumLike.py", line 1796, in inner_fit
return self.get_log_like()
File "/home/rwiller/miniconda3/envs/threeML/lib/python3.7/site-packages/threeML/plugins/SpectrumLike.py", line 1790, in get_log_like
precalc_fluxes=precalc_fluxes)
File "/home/rwiller/miniconda3/envs/threeML/lib/python3.7/site-packages/threeML/utils/spectrum/spectrum_likelihood.py", line 249, in get_current_value
model_counts = self._spectrum_plugin.get_model(precalc_fluxes=precalc_fluxes)
File "/home/rwiller/miniconda3/envs/threeML/lib/python3.7/site-packages/threeML/plugins/SpectrumLike.py", line 1877, in get_model
precalc_fluxes=precalc_fluxes) self._observed_spectrum.exposure
File "/home/rwiller/miniconda3/envs/threeML/lib/python3.7/site-packages/threeML/plugins/DispersionSpectrumLike.py", line 125, in _evaluate_model
return self._response.convolve(precalc_fluxes=precalc_fluxes)
File "/home/rwiller/miniconda3/envs/threeML/lib/python3.7/site-packages/threeML/utils/OGIP/response.py", line 247, in convolve
fluxes = self._integral_function(
File "/home/rwiller/miniconda3/envs/threeML/lib/python3.7/site-packages/threeML/plugins/SpectrumLike.py", line 2045, in integral
diff_fluxes_edges = differential_flux(e_edges)
File "/home/rwiller/miniconda3/envs/threeML/lib/python3.7/site-packages/threeML/plugins/SpectrumLike.py", line 1970, in differential_flux
0, energies, tag=self._tag
File "/home/rwiller/miniconda3/envs/threeML/lib/python3.7/site-packages/astromodels/core/model.py", line 1090, in get_point_source_fluxes
return list(self._point_sources.values())[id](energies, tag=tag)
File "/home/rwiller/miniconda3/envs/threeML/lib/python3.7/site-packages/astromodels/sources/point_source.py", line 189, in call
results = numpy.array([component.shape(x) for component in list(self.components.values())])
File "/home/rwiller/miniconda3/envs/threeML/lib/python3.7/site-packages/astromodels/sources/point_source.py", line 189, in
results = numpy.array([component.shape(x) for component in list(self.components.values())])
File "/home/rwiller/miniconda3/envs/threeML/lib/python3.7/site-packages/astromodels/functions/function.py", line 1638, in call
return self.evaluate(self._np_operator, self._f1, self._f2, x)
File "/home/rwiller/miniconda3/envs/threeML/lib/python3.7/site-packages/astromodels/functions/function.py", line 1377, in _cf_evaluate_func_func
return np_operator(f1(args), f2(args))
File "/home/rwiller/miniconda3/envs/threeML/lib/python3.7/site-packages/astromodels/functions/function.py", line 944, in call
return self.fast_call(x)
File "/home/rwiller/miniconda3/envs/threeML/lib/python3.7/site-packages/astromodels/core/memoization.py", line 58, in memoizer
return method(instance, x, args, *kwargs)
File "/home/rwiller/miniconda3/envs/threeML/lib/python3.7/site-packages/astromodels/functions/function.py", line 1034, in fast_call
return self.evaluate(x, values)
File "/home/rwiller/miniconda3/envs/threeML/lib/python3.7/site-packages/astromodels/functions/template_model.py", line 732, in evaluate
return K * self._interpolate(x, scale, args)
File "/home/rwiller/miniconda3/envs/threeML/lib/python3.7/site-packages/astromodels/functions/template_model.py", line 767, in _interpolate
for i in range(self._energies.shape[0])
File "/home/rwiller/miniconda3/envs/threeML/lib/python3.7/site-packages/astromodels/functions/template_model.py", line 767, in
for i in range(self._energies.shape[0])
File "/home/rwiller/miniconda3/envs/threeML/lib/python3.7/site-packages/astromodels/functions/template_model.py", line 64, in call
return eval_linear(self._grid, self._values, v)
File "/home/rwiller/miniconda3/envs/threeML/lib/python3.7/site-packages/numba/core/dispatcher.py", line 420, in _compile_for_args
error_rewrite(e, 'typing')
File "/home/rwiller/miniconda3/envs/threeML/lib/python3.7/site-packages/numba/core/dispatcher.py", line 361, in error_rewrite
raise e.with_traceback(None)
numba.core.errors.TypingError: Failed in nopython mode pipeline (step: nopython frontend)
non-precise type pyobject
During: typing of argument at /home/rwiller/miniconda3/envs/threeML/lib/python3.7/site-packages/interpolation/splines/eval_splines.py (195)
File "../../../miniconda3/envs/threeML/lib/python3.7/site-packages/interpolation/splines/eval_splines.py", line 195:
def eval_linear(*args):
On some CPU architectures (i.e. my laptop with Ivy Bridge processor) the grid interpolation of a table model results in a numba typing error.
Traceback (most recent call last): File "3ML_table_XSPEC_820.py", line 184, in
best_fit_parameters, likelihood_values =jl.fit()
File "/home/rwiller/miniconda3/envs/threeML/lib/python3.7/site-packages/threeML/classicMLE/joint_likelihood.py", line 324, in fit
compute_covar=compute_covariance
File "/home/rwiller/miniconda3/envs/threeML/lib/python3.7/site-packages/threeML/minimizer/minimization.py", line 632, in minimize
internal_best_fit_values, function_minimum = self._minimize()
File "/home/rwiller/miniconda3/envs/threeML/lib/python3.7/site-packages/threeML/minimizer/minuit_minimizer.py", line 193, in _minimize
self._last_migrad_results = self.minuit.migrad()
File "/home/rwiller/miniconda3/envs/threeML/lib/python3.7/site-packages/iminuit/minuit.py", line 683, in migrad
fm = migrad(ncall, self._tolerance)
File "/home/rwiller/miniconda3/envs/threeML/lib/python3.7/site-packages/threeML/classicMLE/joint_likelihood.py", line 974, in minus_log_like_profile
this_log_like = dataset.inner_fit()
File "/home/rwiller/miniconda3/envs/threeML/lib/python3.7/site-packages/threeML/plugins/SpectrumLike.py", line 1796, in inner_fit
return self.get_log_like()
File "/home/rwiller/miniconda3/envs/threeML/lib/python3.7/site-packages/threeML/plugins/SpectrumLike.py", line 1790, in get_log_like
precalc_fluxes=precalc_fluxes)
File "/home/rwiller/miniconda3/envs/threeML/lib/python3.7/site-packages/threeML/utils/spectrum/spectrum_likelihood.py", line 249, in get_current_value
model_counts = self._spectrum_plugin.get_model(precalc_fluxes=precalc_fluxes)
File "/home/rwiller/miniconda3/envs/threeML/lib/python3.7/site-packages/threeML/plugins/SpectrumLike.py", line 1877, in get_model
precalc_fluxes=precalc_fluxes) self._observed_spectrum.exposure
File "/home/rwiller/miniconda3/envs/threeML/lib/python3.7/site-packages/threeML/plugins/DispersionSpectrumLike.py", line 125, in _evaluate_model
return self._response.convolve(precalc_fluxes=precalc_fluxes)
File "/home/rwiller/miniconda3/envs/threeML/lib/python3.7/site-packages/threeML/utils/OGIP/response.py", line 247, in convolve
fluxes = self._integral_function(
File "/home/rwiller/miniconda3/envs/threeML/lib/python3.7/site-packages/threeML/plugins/SpectrumLike.py", line 2045, in integral
diff_fluxes_edges = differential_flux(e_edges)
File "/home/rwiller/miniconda3/envs/threeML/lib/python3.7/site-packages/threeML/plugins/SpectrumLike.py", line 1970, in differential_flux
0, energies, tag=self._tag
File "/home/rwiller/miniconda3/envs/threeML/lib/python3.7/site-packages/astromodels/core/model.py", line 1090, in get_point_source_fluxes
return list(self._point_sources.values())[id](energies, tag=tag)
File "/home/rwiller/miniconda3/envs/threeML/lib/python3.7/site-packages/astromodels/sources/point_source.py", line 189, in call
results = numpy.array([component.shape(x) for component in list(self.components.values())])
File "/home/rwiller/miniconda3/envs/threeML/lib/python3.7/site-packages/astromodels/sources/point_source.py", line 189, in
results = numpy.array([component.shape(x) for component in list(self.components.values())])
File "/home/rwiller/miniconda3/envs/threeML/lib/python3.7/site-packages/astromodels/functions/function.py", line 1638, in call
return self.evaluate(self._np_operator, self._f1, self._f2, x)
File "/home/rwiller/miniconda3/envs/threeML/lib/python3.7/site-packages/astromodels/functions/function.py", line 1377, in _cf_evaluate_func_func
return np_operator(f1( args), f2(args))
File "/home/rwiller/miniconda3/envs/threeML/lib/python3.7/site-packages/astromodels/functions/function.py", line 944, in call
return self.fast_call(x)
File "/home/rwiller/miniconda3/envs/threeML/lib/python3.7/site-packages/astromodels/core/memoization.py", line 58, in memoizer
return method(instance, x, args, *kwargs)
File "/home/rwiller/miniconda3/envs/threeML/lib/python3.7/site-packages/astromodels/functions/function.py", line 1034, in fast_call
return self.evaluate(x, values)
File "/home/rwiller/miniconda3/envs/threeML/lib/python3.7/site-packages/astromodels/functions/template_model.py", line 732, in evaluate
return K * self._interpolate(x, scale, args)
File "/home/rwiller/miniconda3/envs/threeML/lib/python3.7/site-packages/astromodels/functions/template_model.py", line 767, in _interpolate
for i in range(self._energies.shape[0])
File "/home/rwiller/miniconda3/envs/threeML/lib/python3.7/site-packages/astromodels/functions/template_model.py", line 767, in
for i in range(self._energies.shape[0])
File "/home/rwiller/miniconda3/envs/threeML/lib/python3.7/site-packages/astromodels/functions/template_model.py", line 64, in call
return eval_linear(self._grid, self._values, v)
File "/home/rwiller/miniconda3/envs/threeML/lib/python3.7/site-packages/numba/core/dispatcher.py", line 420, in _compile_for_args
error_rewrite(e, 'typing')
File "/home/rwiller/miniconda3/envs/threeML/lib/python3.7/site-packages/numba/core/dispatcher.py", line 361, in error_rewrite
raise e.with_traceback(None)
numba.core.errors.TypingError: Failed in nopython mode pipeline (step: nopython frontend)
non-precise type pyobject
During: typing of argument at /home/rwiller/miniconda3/envs/threeML/lib/python3.7/site-packages/interpolation/splines/eval_splines.py (195)
File "../../../miniconda3/envs/threeML/lib/python3.7/site-packages/interpolation/splines/eval_splines.py", line 195: def eval_linear(*args):