Skip to content

v0.5

Compare
Choose a tag to compare
@cschwan cschwan released this 06 Apr 12:39
· 125 commits to master since this release

New in 0.5:

  • fixed a bug that caused NaNs to slip through to the integrated result if they
    were coming from the point's weight
  • it is now possible to disable channels by setting their weight to zero
  • the function multi_channel_verbose_callback now prints an overview of the
    smallest and largest a-priori weights
  • the functions multi_channel and mpi_multi_channel now accept an
    optional parameter min_calls_per_channel that limits the a-priori weights
    to a smallest weight determined by a minimum number of calls. If set to zero
    (the default), this corresponds to the old behavior
  • WARNING: this version introduces many interface changes; if you used previous
    version of this library you must update your code accordingly
  • implemented lazy evaluation of the weight for the multi channel integrator.
    This required to change the interface of the map function which now must
    accept an additional parameter action that determines whether the
    coordinates or the densities must be calculated. This in turn enables
    the algorithm to skip the evaluation of densities when the integrand
    returns a zero value
  • changed name of density_function() in hep::multi_channel_point to
    map()
  • when calling the integration algorithms the numeric type must no longer be
    explicitly specified. The type information is now infered from the integrand
  • renamed the class vegas_iteration_result to vegas_result
  • completely changed the interfaces of all integrators; the functions that are
    integrated must now be specified by using an hep::integrand or
    hep::multi_channel_integrand which are obtained by using
    hep::make_integrand or hep::make_multi_channel_integrand. This allows
    the library to support the generation of differential distributions for all
    integrators. If distributions should be generated, the integrands must accept
    a second parameter, a reference to hep::projector, that takes care of the
    binning. The results of the distributions are captured in a
    hep::distribution_result for each distribution
  • hep::plain now returns a hep::plain_result which contains the results
    for possibly generated distributions
  • all _result classes except hep::mc_result derive now from
    hep::plain_result
  • encapsulated all members of the class mc_point and classes deriving from
    it
  • WARNING: interface changes to the class mc_point and all deriving classes;
    the member function does no longer include the averaging factor 1/N where N is
    the number of calls. If you used this member variable before, you MUST CHANGE
    YOUR CODE accordingly