pint.templates.lcprimitives.LCPrimitive
- class pint.templates.lcprimitives.LCPrimitive(**kwargs)[source]
Bases:
objectBase class for various components of a light curve.
All “analytic” light curve models must inherit and must implement the ‘virtual’ functions:
__call__ : evaluate the primitive at provided phases
gradient : evaluate the primitive derivative wrt the parameters
hwhm : convert between internal parameters and empirical HWMM
Specialized class initialization is handled via inheriting init.
Generally, class-specific setup work is performed in init. Here, init is called and certain guaranteed default members are established.
Methods
approx_derivative(phases[, log10_ens, ...])approx_gradient(phases[, log10_ens, eps])approx_hessian(phases[, log10_ens, eps])cdf(x[, log10_ens])center_gauss_prior([enable])[Convenience] Set gauss mode to current params.
check_bounds([p])check_gradient([atol, rtol, quiet])closest_to_peak(phases)Return the minimum distance between a member of the array of phases and the position of the mode of the primitive.
copy()derivative(phases[, log10_ens, order])Return d^np(phi)/dphi^n, with n=order.
Return a string to express the object as a dictionary that can be easily instantiated using its keys.
enable_gauss_prior([enable])[Convenience] Turn on gaussian prior.
Return a string that can be evaluated to instantiate a nearly- identical object.
fwhm()Return the full-width at half-maximum of the light curve model.
get_bounds([free])get_errors([free])get_fixed_energy_version([log10_en])Return a mask with True if parameters are free, else False.
get_gauss_prior_parameters()get_location([error])get_norm([error])get_parameter_names([free])get_parameters([free])get_width([error, hwhm, right])Return the width of the distribution.
gradient(phases[, log10_ens, free])Return the gradient of the primitives wrt the parameters.
gradient_derivative(phases[, log10_ens, free])Return d/dphi(gradient).
hwhm([right])Return the half-width at half-maximum of the light curve model.
init()integrate([x1, x2, log10_ens])Base implemention with scipy quad.
is_energy_dependent()True if primitive is asymmetric.
num_parameters([free])parse_kwargs(kwargs)random(n[, log10_ens])Default is accept/reject.
sanity_checks([eps])A few checks on normalization, integration, etc.
set_errors(errs)set_location(loc)set_parameters(p[, free])- is_two_sided()[source]
True if primitive is asymmetric. Default is False, two-sided child classes should override.
- gradient(phases, log10_ens=3, free=False)[source]
Return the gradient of the primitives wrt the parameters.
- gradient_derivative(phases, log10_ens=3, free=False)[source]
Return d/dphi(gradient). This is needed for computing the hessian of the profile for parameters that affect the timing model and hence pulse phase.
- eval_string()[source]
Return a string that can be evaluated to instantiate a nearly- identical object.