- sky emission depending on location and energy. This could be represented by a

product of an :class:`~hp_space.HPSpace` (for location) with an

:class:`~rg_space.RGSpace` (for energy).

- a polarized field, which could be modeled as a product of any structured

- a polarized field, which could be modelled as a product of any structured

domain (representing location) with a four-element

:class:`~unstructured_domain.UnstructuredDomain` holding Stokes I, Q, U and V components.

- a model for the sky emission, which holds both the current realization

- a model for the sky emission, which holds both the current realisation

(on a harmonic domain) and a few inferred model parameters (e.g. on an

unstructured grid).

...

...

@@ -237,8 +237,10 @@ specific inference problems. Currently these are:

- :class:`~smooth_linear_amplitude.SLAmplitude`, which returns a smooth power spectrum.

- :class:`~inverse_gamma_operator.InverseGammaOperator`, which models point sources which are

distributed according to a inverse-gamma distribution.

- :class:`~correlated_fields.CorrelatedField`, which models a diffuse log-normal field. It takes an

amplitude operator to specify the correlation structure of the field.

- :class:`~correlated_fields.CorrelatedField`, which models a diffuse field whose correlation

structure is described by an amplitude operator.

.. - :class:`~correlated_fields.CorrelatedField`, which models a diffuse log-normal field. It takes an

amplitude operator to specify the correlation structure of the field.

Linear Operators

...

...

@@ -373,13 +375,25 @@ tackling new IFT problems. An example of concrete energy classes delivered with

NIFTy5 is :class:`~minimization.quadratic_energy.QuadraticEnergy` (with

position-independent metric, mainly used with conjugate gradient minimization).

For MGVI, NIFTy provides the :class:`~energy.Energy` subclass :class:`~minimization.metric_gaussian_kl.MetricGaussianKL`,

which computes the sampled estimated of the KL divergence, its gradient and the Fisher metric. The constructor

of :class:`~minimization.metric_gaussian_kl.MetricGaussianKL` requires an instance of

:class:`~operators.energy_operators.StandardHamiltonian`, an operator to compute the negative log-likelihood of the problem in standardized coordinates

at a given position in parameter space. Finally, the :class:`~operators.energy_operators.StandardHamiltonian` can be constructed from

the likelihood, represented by an :class:`~operators.energy_operators.EnergyOperator` instance. Several commonly used forms of the likelihoods are already provided in

NIFTy, such as :class:`~operators.energy_operators.GaussianEnergy`, :class:`~operators.energy_operators.PoissonianEnergy`,

:class:`~operators.energy_operators.InverseGammaLikelihood` or :class:`~operators.energy_operators.BernoulliEnergy`, but the user

is free to implement a likelihood customized to the problem at hand. The dome code `demos/getting_started_3.py` illustrates how to set up an energy functional

Here the domain of the integral :math:`\Omega = \dot{\discretised_q} \; \Omega_i` is the disjoint union over smaller :math:`\Omega_i`, e.g. the pixels of the space, and :math:`s_i` is the discretised field value on the :math:`i`-th pixel.

Here the domain of the integral :math:`\Omega = \dot{\bigcup_q} \; \Omega_i` is the disjoint union over smaller :math:`\Omega_i`, e.g. the pixels of the space, and :math:`s_i` is the discretised field value on the :math:`i`-th pixel.

This introduces the weighting :math:`V_i=\int_{\Omega_i}\text{d}x\, 1`, also called the volume factor, a property of the space.

NIFTy aids you in constructing your own log-likelihood by providing methods like :func:`~field.Field.weight`, which weights all pixels of a field with their corresponding volume.

An integral over a :class:`~field.Field` :code:`s` can be performed by calling :code:`s.weight(1).sum()`, which is equivalent to :code:`s.integrate()`.