All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
Starting with this version, PineAPPL has an official logo!
- added an actual implementation of
pineappl_grid_metadataandpineappl_grid_set_metadatain the APIs
- fixed a bug in the Newton's convergence method by raising the maximum number of iteration
- fixed a bug in the implementation of
pineappl_channels_addof the Fortran API - Improve detection of convolution function in the CLI
- raised MSRV to 1.94.0
- raised Rust edition to 2024
- instead of depending on a previous version of the PineAPPL crate, a new crate
pineappl_v0is now responsible for loading files with file versionv0 - raised dependency on
pyo3to 0.27, which drops support for PyPy 3.9 and 3.10
1.3.3 - 01/03/2026
- added support for the Python 3.14 on macOS (ARM64/x86)
- removed support for the following Python versions due to unresolved issue in maturin action on Windows (x86): Python 3.7, 3.8, 3.9
1.3.2 - 21/02/2026
Note: due to bugs in the workflow file this release does not have have Python wheels uploaded to PyPI.
1.3.1 - 21/02/2026
Note: due to bugs in the workflow file this release does not have have Python wheels uploaded to PyPI.
- added
pineappl_grid_set_subgridandpineappl_grid_set_bwflmethods to the C-API to allow dumping coefficient functions directly as subgrids. - added a
fix_convolutionmethod to integrate out one of the convolution dimensions in a grid by convolving it with a non-perturbative function
1.3.0 - 06/12/2025
- added a
pineappl_grid_delete_binsmethod to the C-API
- fixed bugs in stopping condition of the Newton iteration method
- fixed a bug in comparing
interpolation::Interpobjects when one of the boundaries isNaN
1.2.0 - 22/08/2025
- added
Grid::repairto repair bugs that survived by writing bugged grids to disk, for example #338. The CLI offers this functionality viapineappl write --repairand it can also be accessed via Python
- added a missing implementation for a branch in
Grid::mergethat was triggered when exporting some PineAPPL grids generated from the 'pinejet' group - fixed wrong coupling orders when exporting to APPLgrid. This happened when the PineAPPL grid had orders that had any other ordering than 'LO', 'NLO', 'NNLO'
- fixed a bug that caused exported grids to compare unsuccessfully when the convolution functions were proton-anti-proton; APPLgrid doesn't store the types of convolution functions, so we simply convert the grid to use only proton PDFs
- the function
Grid::evolvenow makes use of parallelization to take advantage of the number of CPU cores available using the Rayon crate; the number of CPU cores to be used can be controlled via theRAYON_NUM_THREADSenvironment variable
1.1.0 - 08/07/2025
- added a new
V3metadata reader to thepineappl evolveCLI for EKOs generated withv0.15.0or higher - C API: added new functions
pineappl_grid_evolve_info_shape,pineappl_grid_evolve_info, andpineappl_grid_evolveto evolve grids - C API: added
pineappl_fktable_optimizeto optimize FK Table-like objects given an optimization assumption - added methods
Grid::merge_channel_factorsandChannel::factor
- fixed a bug that caused
pineappl exportto fail when called with grid having non-trivial factors in their channel definitions
1.0.0 - 10/06/2025
PineAPPL 1.0 is a major rewrite from the previous version, allowing grids to have an arbitrary number of convolutions in the initial (PDFs with a factorization scale) and in the final (FFs with a fragmentation scale) state. This required a change in the file format that is used to write out grids, but the old file format can still be read with this new version.
- added new method
Grid::delete_ordersand the corresponding switch--delete-ordersin the subcommandwriteof the CLI - added the switches
--xirand--xif, which allow varying the renormalization and factorization scales with a custom factor in the subcommandconvolve - the CLI now allows the user to mark convolution functions as polarized
by adding
+pto its LHAPDF name, as a fragmentation function by adding+fand both by adding+pfor+fp - added switches
--fk-table-fac0and--fk-table-frg0topineappl readto read out the squared factorization and fragmentation scales of FK-tables - C API: added new functions
pineappl_channels_newandpineappl_channels_deleteto create and delete an instance ofChannelsobject - C API: added
pineappl_grid_channelsandpineappl_channels_countto get the channel objects for a given grid and their numbers - C API: added a function
pineappl_channels_combinationsto retrieve the number of combinations of channels for a specified entry, andpineappl_channels_entryto retrieve the channel combination for a given entry - C API: added a new function
pineappl_grid_new2to create a grid with the new features introduced inv1.0.0; this includes the support for an arbitrary number of initial and final state hadrons - C API: added new functions to fill grids with an arbitrary number of
initial and final state hadrons; these include
pineappl_grid_fill2,pineappl_grid_fill_all2, andpineappl_grid_fill_array2 - C API: added new functions to extract the various properties of a given
grid; these include
pineappl_grid_conv_types,pineappl_grid_convolutions_len, andpineappl_grid_kinematics_len - C API: added a new function
pineappl_grid_convolveto convolve grids with an arbitrary combination of initial and final state hadrons - C API: added various functions to extract the subgrids of a given grid;
these include
pineappl_grid_subgrid_shape,pineappl_grid_subgrid_node_values, andpineappl_grid_subgrid_array
- the macro
channel!now accepts a channel specification that is of the formatfactor * (pid, ..) + ... - Python API: dropped top-level Python interface layer
- Python API: renamed
lumitochannelin PyO3 Python interface. This concerns 1) the argument names ofconvolute_with_oneand similar functions; 2) the modulepineappl.lumiwas moved topineappl.boc; 3) the classLumiEntrywas renamed toChannel - Python API:
.into()needs to be explicitly called on subgrids when callingpineappl.grid.set_subgrid() - Python API: replaced
pineappl.grid.PyPidBasiswithpineappl.evolution.PidBasis - Python API: replaced
pineappl.grid.PyOperatorSliceInfowithpineappl.evolution.OperatorSliceInfo - Python API: drop all
Pyprefixes, for instancePyEvolveInfowas renamed toEvolveInfo - by default
pineappl plotno longer shows a channel breakdown in the panel with absolute PDF predictions. However, this feature can be enabled with via a new array added at the start of the script - raised MSRV to 1.80.1
- changed the order of elements in
Grid::fillof the parameterntupleto reflect the ordering ofkinematicsgiven toGrid::new - renamed the following switches of
pineappl write:--remapto--set-bins,--remap-norm-ignoreto--div-bin-norm-dimsand--remap-normto--mul-bin-norm. These names should reflect the corresponding operations - renamed the switch
--fktableto--fk-tableofpineappl read
- Python API: removed
pineappl.grid.Grid.create()andpineappl.fk_table.FkTable.from_grid()methods; use the constructors of the respective class instead - removed the constructor
Grid::with_subgrid_type - removed
Grid::convolve_subgridand--subgrid-pullfrompineappl plotthat was using the method. The CLI subgrid-pull plotting routine only ever worked for grids with two convolutions
0.8.7 - 22/01/2025
- added support for Python 3.13 to the Python interface
0.8.6 - 18/10/2024
- fixed Issue #318 that caused
fastNLO tables with
NPDFDim = 2to be incorrectly imported
0.8.5 - 07/10/2024
- fixed a bug in
pineappl_applgridthat lead to linking problems with ROOT andgfortran
0.8.4 - 04/10/2024
- fixed a bug that lead to inconsistent convolution metadata (#316)
0.8.3 - 30/08/2024
- fixed the scale-variation label in the plotting script produced by
pineappl plot. Previously this would always show a 7-pt. variation irrespective of the parameter passed to--scales - fixed a problem in the evolution when an EKO with 'similar' Q2 slices was used to evolve; this caused the Q2 slices of the grids to be evolved several times, leading to wrong results
0.8.2 - 22/07/2024
- changed the implementation of evolution functions so that they are much faster and that NaNs are correctly propagated
0.8.1 - 18/07/2024
- added new method
Grid::evolve_with_slice_iter2which is able to perform evolutions with two different EKOs
- fixed CI to build CAPI and CLI
- PineAPPL's CAPI requires now GLIBC 2.29 since 0.8.0
0.8.0 - 05/07/2024
- added new type
Convolution - added new methods
Grid::convolutionsandGrid::set_convolution - added the function
pineappl_grid_convolve_with_oneandpineappl_grid_convolve_with_twowhich replace the deprecated function similarly named withconvolutein CAPI - added
PidBasis::charge_conjugateandPidBasis::guess - added
Grid::set_pid_basismethod - added
Grid::subgridsandGrid::subgrids_mutmethods - added new switch
--conv-fun-uncert-fromto subcommandplotto allow choosing which convolution function uncertainty should be plotted
- moved
OrderandParseOrderErrorto the new moduleboc - renamed switch
--split-lumiofpineappl writeto--split-channels. The old switch can still be used - renamed switch
--lumisofpineappl readto--channels. The old switch can still be used - renamed switch
--ignore-lumisofpineappl diffto--ignore-channels. The old switch can still be used - renamed
Grid::lumitoGrid::channels,Grid::split_lumitoGrid::split_channels,Grid::rewrite_lumitoGrid::rewrite_channelsandGrid::set_lumistoGrid::set_channels. The term 'channel' is now used everywhere instead of 'lumi', 'luminosity function', etc. - renamed the struct
LumiEntrytoChannelandParseLumiEntryErrortoParseChannelError. Both structures have been moved to the moduleboc - renamed the macro
lumi_entrytochannel - renamed
Grid::set_channelstoGrid::channels_mut - renamed
TryFromGridError::InvalidLumitoTryFromGridError::InvalidChannel - changed member
lumi_id_typesofOperatorInfoandOperatorSliceInfotopid_basis, which is now of typePidBasis - renamed module
pineappl::lumitopineappl::convolutions - renamed switch
--pdfto--conv-funin the subcommanduncert. This switch now optionally accepts a list of indices, which determines the corresponding convolution function (PDF/FF), for which the uncertainty should calculated - renamed
no_pdf_unctono_conv_fun_uncin subcommandplot
- removed support for Python 3.6
- removed the deprecated evolution methods
Grid::axes,Grid::convolute_ekoand the structsEkoInfoandGridAxes - removed methods
Grid::has_pdf1,Grid::has_pdf2,Grid::initial_state_1andGrid::initial_state_2 - removed
pids::charge_conjugate; this function has been replaced with the new functionPidBasis::charge_conjugate - removed
pids::determine_lumi_id_types; this function has been replaced with the new functionPidBasis::guess - removed
TryFromGridError::MetadataMissing - removed
Grid::subgridandGrid::set_subgridmethods; these functions have been replaced withGrid::subgridsandGrid::subgrids_mut - removed the switch
--pdf-with-scale-covfrompineappl uncert
0.7.4 - 23/05/2024
- added
Grid::evolve_with_slice_iter,AlphasTableandOperatorSliceInfo, which define a new interface supporting very large evolution kernels that have been introduced in EKO v0.13. This interface will replaceGrid::evolve - added
--dont-sortswitch topineappl channels, which displays the channel sizes ordered by channel index (instead of channel size) - added
Grid::rotate_pid_basisandpineappl write --rotate-pid-basis. This allows to change the meaning of the used particle IDs, and supported formats are PDG MC IDs and the evolution basis - added
pineappl write --rewrite-orderthat lets the user change the exponents of each order
- changed the official name of the CLI subcommand
convolutetoconvolve, because the latter is the proper verb of 'convolution'. The old nameconvoluteis now an alias ofconvolve, which means both can be used. The methodsGrid::convolute*are left unchanged and will be renamed in later version - changed switch
--silence-lhapdfto--lhapdf-bannerand suppress LHAPDF's banners by default, unless--lhapdf-banneris given Grid::evolvehas now been marked deprecated- switched from
lhapdftomanaged-lhapdfcrate which automatically downloads PDF sets when they are needed
- fixed yet another problem that prevent the Python interface for Python 3.6 from being successfully installed
- fixed
Grid::delete_channelsand its CLI variantpineappl write --delete-channels. This command wasn't working properly before
0.7.3 - 23/02/2024
- fixed a problem that prevent the Python interface for Python 3.6 from being successfully installed
0.7.2 - 23/02/2024
- fixed problems in the CI that prevented the CAPI for Linux being uploaded
0.7.1 - 23/02/2024
- fixed problems in the CI that prevented the previous version from being released
0.7.0 - 23/02/2024
- added a new global option
--allow-extrapolation, which, when present, allows LHAPDF to extrapolate PDF values outside its valid region inx. If this option is not present the PDFs are set to zero, which remains the default behavior
- the Python interface for MacOS is now shipped separately for the two targets (aarch64 and x86_64) instead of a single universal wheel previously
- raised MSRV to 1.70.0
- when calling
BinRemapper::new, the limits are now checked for overlaps, in which case a new error is returned - changed the type
ParseBinRemapperErrorto allow capturing errors fromBinRemapper::new
- fixed the missing generation of CPython 3.7 to 3.10 wheels for MacOS targets
- removed the type
SubGridthat was exported in the CAPI as the typepineappl_subgrid. This type was not used anymore and was a left-over of the changes in the previous version.
0.6.3 - 12/12/2023
- added
Grid::dedup_channels, the C functionpineappl_grid_dedup_channelsand the new switch--dedup-channelsto the CLI that detect equal subgrids and reduce the space requirements of a grid - added a new panel
double_ratio_pdfto thepineappl plottool - added a Python binding for the
Grid::mergemethod
- removed the functions of
pineappl_grid_export_mu2_slice,pineappl_grid_nonzero_mu2_slices,pineappl_subgrid_delete,pineappl_grid_replace_and_delete,pineappl_subgrid_import_mu2_sliceandpineappl_subgrid_new2, which were only used in the C++ programs that were the predecessors of theexportandimportfunctionality now implemented in the CLI
- fixed a bug that caused channels with PID=0 gluons to not evolve when the
metadata key-value pair
lumi_id_types=pdg_mc_idswas not present. Now when this metadata is not present it is assumed PDG MC IDs are used
0.6.2 - 09/10/2023
- added support for Python 3.6 on Linux and PyPy 3.7, 3.8, 3.9 and 3.10 on MacOS and Windows for packages from https://pypi.org/project/pineappl/
- added support for scale uncertainties calculated with the covariance method, and for combined PDF and scale uncertainties
- added support for installing man pages. See installation instructions for more information
- added new method
Grid::optimize_usingand its corresponding C functionpineappl_grid_optimize_using, which optimize aGridlikeGrid::optimize, but allow for more fine-grained selection of optimization options, which are listed in the new bitflagsGridOptFlags
pineappl plotnow produces a more cleaned-up matplotlib script, in which the most important information, which a user may whish to change, is at the top of the filepineappl pdfuncwas renamed intopineappl uncert, which is now also able to calculate scale uncertainties, which in turn have been removed frompineappl convolutepineappl helpnow relies on installed man pages
- fixed a bug in the calculation of asymmetries when multiple scales had been used
- fixed a bug causing
Grid::evolveto require more x-grid values than needed; this result in errors similar to the following: 'no operator for x = 0.0018585113621881083 found' where this x-grid value is a point that is used in a masked order
0.6.1 - 18/07/2023
- added switch
--no-pdf-unctoplotsubcommand to skip the time-consuming computation of PDF uncertainties - added new function
pineappl_grid_merge_binsto the CAPI. This function corresponds toGrid::merge_binsand merges a range of bins together into a new bin. - added new function
Grid::split_lumi, which splits the luminosity such that it contains a single combination per partonic channel. This function is available through the CAPI viapineappl_grid_split_lumiand via the CLI throughpineappl write --split-lumi
- fixed panic when trying to plot DIS observables
0.6.0 - 01/06/2023
- added
--ordersswitch to pull to allow the selection of a subset of perturbative orders - added the subcommand
helpto show manpages of for each subcommand ofpineappl - the switch
--limitinpullnow allows the value0for faster pull computation - added PDF ratio panel to plot script generated by
pineappl plot - added new subcommand
export, which is able to convert some PineAPPL grids into the APPLgrid format - added support for EKO's new file
formats (old file format is still supported) in
pineappl evolve pineappl importnow also imports fastNLO's metadata:fastNLOTable::GetDimLabels()is stored as the value of the keyx{1,2,...}_labelsfastNLOTable::GetXSDescr()is stored as the value of the keyy_labelfastNLOTable::GetScDescr()is stored as the value of the keyfastnlo_scenario
- removed switch
--silence-librarieswhich did not work properly and relied on non-portable code
- raised MSRV to 1.64.0
- the switch
--force-positivemust be given at the same level as--silence-lhapdf - the CLI subcommands
delete,optimize,setandupdatewere merged into the newwritesubcommand. Also the options--merge-bins,--scaleand--scale-by-orderwere merged intowrite - the CLI subcommand
remapwas merged intowriteas the option--remap, which expects as a single argument the remapping string. The option--normwas renamed to--remap-norm, and--ignore-obs-normwas renamed to--remap-norm-ignore. Note that the latter now counts dimensions from zero onward, instead from one (old behavior) - the CLI subcommand
infoandoblwere merged into the new subcommandread
- fixed a bug introduced in v0.5.5 that caused
pineappl convoluteto not show results for more than two PDF sets - fixed a bug that caused
pineappl convoluteto ignore a possible--orderparameter for additionally given PDF sets - fixed a bug that caused
pineappl plotto show wrong pulls if the central PDF set had asymmetric uncertainties
- removed
pineappl sum --integrated. This subcommand did not always work as expected, usepineappl obs --merge-binsinstead
0.5.9 - 02/01/2023
- added new function
pineappl_grid_scale_by_binto the CAPI that corresponds toGrid::scale_by_bin - added new subcommand
analyze, which performs various analyses. For time being only one analysis is available:ckf. This calculates the per-channel K factors which can be compared against the per-bin K factors - added switch
--orderstoevolveto allow evolving a subset of orders of the full grid - added new switch
--fktableto the CLI subcommandpineappl oblto detect whether a grid is also an FK table - added new method
Grid::evolve_infowhich extracts the information need to generate EKOs. This function is less restrictive thanGrid::axes, which it will replace pineappl importnow converts also scale-variation log-grids from flexible-scale fastNLO tables
- fixed bug in the calculation of asymmetries when multiple scales were requested
0.5.8 - 21/10/2022
- added new method
Grid::evolve, which will succeedGrid::convolute_ekoand is more robust, faster and easier to understand
- fixed a bug in
LumiCache::setup, which caused wrong results returned byGrid::convolute, iflumi_cacheis reused for a second grid with different Q2/x1/x2 parameters
0.5.7 - 05/10/2022
- the importer did not depend on the right versions of
pineappl_applgridandpineappl_fastnlo
0.5.6 - 04/10/2022
- added
--dis-pidswitch toimportsubcommand - added
--no-optimizeswitch toimportsubcommand
- improved documentation
- changed
--silence-fastnloto--silence-libraries, which now silences also APPLgrid - improved
importconverter, which now is able to convert most APPLgrids and fastNLO tables on ploughshare
- fixed corner cases of the
REMAPPINGstring that were handled incorrectly - made most tests of
pineapplintegration tests, which resolves that problem thatcargo buildhad to be called before - fixed problem in
Grid::convolute_ekothat lead to wrong result when subgrids had different x-grids
0.5.5 - 25/08/2022
- added support for choosing a specific member instead of the averaging over
all PDFs for the central results for the
pdfunc,plotandpullsubcommands. For instance,pineappl pdfunc ... NNPDF40_nnlo_as_01180calculates the central value using the average over all replicas, whereaspineappl pdfunc ... NNPDF40_nnlo_as_01180/0uses the zeroth member. The calculated uncertainties are the same for both - added support for converting APPLgrids in
import - added support plotting asymmetries with
pineappl plot - added new function to the C API,
pineappl_grid_clone, which clones a given grid
- renamed the switch
--silence-fastnloto--silence-libraries, which also covers APPLgrid. For backwards compatibility the previous name still works
0.5.4 - 08/07/2022
- added new switch
--force-positiveto CLI to cut out negative PDF values - exposed scale variation parameters to the Python API
- added the C functions
pineappl_grid_key_valueto read out metadata andpineappl_string_deleteto delete string allocated from the previous function
0.5.3 - 22/06/2022
- added new switch
--ignore-bin-limitstodiffthat ignores possibly different bin limits. However, the number of total bins must still be the same between both grids - added support for
FK tables in the
subcommand
import - added new switches
--digits-abs,--digits-reland--digitsto various subcommand to influence the number of (fractional) digits printed - PDF relabeling support has been added. This means that all subcommands
understand PDF specifications of the type
pdfset=label, wherepdfsetmust be an LHAPDF identifier, and results using this set are displayed usinglabelinstead ofpdfset. - added bin-dependent rescaling method. To use it through the CLI use
pineappl ops --scale-by-bin=
- slightly changed the output of the CLI; indices of orders, bins and
luminosities are now consistently abbreviated by
o,bandl - changed the output of the CLI to also print the units of the numbers
0.5.2 - 29/03/2022
- added new subcommand
import, which at this stage converts fastNLO tables to PineAPPL grids. This program was previously an example and written in C++ and now has been removed.
0.5.1 - 01/03/2022
- added the
--binsoption to the CLI subcommandsum, which allows to sum bins together - added the
--fk-tableoption to the CLI subcommandoptimize, which allows the optmization of FK tables based on assumptions of heavy-flavor PDFs - added new subcommand
opswhich collects various modifying operations on grids. The switches--cc1and--cc2charge conjugate the first and second PDF, respectively, and charge conjugates the luminosity function correspondingly such that the convolutions are unchanged
- when running
pineappl convolute ... -s 1the scale-variation columns are no longer shown. The output would be zero, but this doesn't make sense. All other values of-sare unaffected. - added a further optimization to
Grid::optimizethat strips empty orders
- fixed
pineappl obl --bins, which had the wrong column headers if there were more than one observable
0.5.0 - 11/02/2022
- added support for DIS processes, which feature only a single hadron in the initial state
- added new C API function
pineappl_grid_set_remapper - added new subcommand
sumto sum over bins of a grid - added new subcommand
pullto view where the differences between two PDF sets are coming from - added an example program using the C API to convert fastNLO tables (of type
fastNLOCoeffAddFix). Tables of typefastNLOCoeffAddFlexare not supported yet - added a new switch
--subgrid-pullto theplotsubcommand; this generates several plots showing the where the pull between two PDFs comes from inx1andx2, and also in rapidityyand invariant massM - improved the
optimizemethod such that it removes all entries of a luminosity function that are empty across orders and bins. This required a change inmerge, which now allows the merge of grids with different luminosities and orders - enabled relabeling PDF sets, which means that they can now specified as
LHAPDF-set-name=label, which uses the setLHAPDF-set-nameto load it from LHAPDF, butlabelis the name that appears in the plot legend - added new options to the
subgridscommand:--muf,--mur,--x1and--x2to print the corresponding grid values and--statsto print information about the space requirements of the subgrid type - added new subcommand
--delete, which allows to delete bins from a grid - added new subcommand
obl, which stands for orders (o), bins (b) and lumis (l), that shows information about the all contained subgrids in a grid;pineappl obl -lwill replacepineappl lumisin the future - added options
--orders1,--orders2,--scale1and--scale2to the subcommandpineappl diff, which allow the selection of orders and scaling of grids that should be compared
- The command-line interface
pineapplno longer prints both the differential and integrated cross sections. Instead it either prints the differential cross sections, or, if the switch-ior--integratedis given, the integrated cross sections (without bin limits and/or normalizations) are printed - the C API functions
pineappl_subgrid_q2_slice,pineappl_subgrid_filled_q2_slicesandpineappl_subgrid_replace_and_deletehave been replaced bypineappl_grid_export_q2_slice,pineappl_grid_nonzero_q2_slicesandpineappl_grid_replace_and_delete, respectively. - the C API function
pineappl_subgrid_fill_q2_slicehas been replaced by functionpineappl_subgrid_import_q2_slice - the C API function
pineappl_subgrid_newhas been replaced by a function with the similar name but different arguments - changed the output of the
pineapplsubcommandchannels,convoluteandpdf_uncertainty. By default only the differential cross sections are shown (integrated numbers divided by bin widths), but the flag-ior--integratedcan be given to switch to the integrated numbers, which are not divided by bin widths. - slightly improved file sizes by introducing a type for empty subgrids:
EmptySubgridV1 - vastly improved the output of the
plotsubcommand: bounding boxes are properly calculated now, added support for higher-dimensional distributions - changed the
plotsubcommand such that the legend is put in between panels, thereby producing less overlapping elements - replaced the C API functions
pineappl_subgrid_newandpineappl_subgrid_import_q2_slicewithpineappl_subgrid_new2andpineappl_subgrid_import_mu2_slice, respectively. The latter support independent renormalization and factorization scales - changed the names of
pineappl_grid_export_q2_sliceandpineappl_grid_nonzero_q2_slicestopineappl_grid_export_mu2_sliceandpineappl_grid_nonzero_mu2_slices, respectively - replaced C API-based Python interface with PyO3-based one
- the subcommand
subgridsnow does not print empty grids; the old behavior can be restored with the new switch--show-empty pineappl diffnow behaves differently whenever luminities are different and errors out when this is the case. This can be adjusted using--ignore-lumis
0.4.1 - 25/03/2021
- added fallback options to
git_versionthat prevented uploadingpineappl_capiandpineappl_clito crates.io
0.4.0 - 25/03/2021
- added access to the contents of Lagrange-interpolation grids
- added more C functions previously missing:
pineappl_grid_bin_limits,pineappl_grid_lumi,pineappl_lumi_combinations,pineappl_lumi_count,pineappl_lumi_entry - added
remapsubcommand which allows to change the binning and dimensions of a distribution - added global
--silence_lhapdfswitch to suppress the output of LHAPDF - added new subgrid type:
LagrangeSparseGrid, which can be generated using the new subcommandoptimizefrom existing grids; this data structure uses less memory and is a bit faster - added new subcommand
optimize, which optimizes the size for each grid, both in memory and when written as a file - added new subgrid type
LagrangeSubgridV2, which allows for differentx1andx2limits, for example for DIS processes - added new switches to the subcommand
info:--get,--keys,--show, which lets one read a single or all key-values pairs of each grid file. - added new subcommand
setwhich allows to modify the key-value storage - added new C functions
pineappl_grid_set_key_valueandpineappl_grid_optimize - added a new switch
--ignore_ordersto the diff subcommand, which sums over all orders and is therefore useful if two grids are compared that should have the same contents in principle, but in practice have different orders - added new subcommand
plot, which allows to plot the information contained in a grid
- the order columns of the subcommand
diffare now properly sorted and do not change randomly. - the subcommand
diffnow shows the differential cross sections of both grids with the same number of digits as the subcommandsconvoluteand similar. - changed the default maximum value of Q from 1 TeV to 10 TeV and the number of grid points in Q^2 from 30 to 40
- Removed
Grid::bin_limitand replaced it withGrid::bin_info - in the C API the type
uintptr_thas been changed to the more common typesize_t - changed the default
LagrangeSubgridtype fromV1toV2. This subgrid type supports DIS and allows to reconstruct static scales. If a static scale has been detected,optimizecan remove the interpolation in the Q^2 dimension.
- the subcommand
diffdid not show differences in per cent, although it printed a per cent sign. Now it shows relative differences, which is always useful, even when the differences are smaller than sub-per mille.
0.3.0 - 20/08/2020
- added the options
--absolute,--orders, and--lumisto the subcommandchannels - added Python interface to the C API, the the folder
wrappers/pythonand the example inexamples/python-dy-aa - added the option
--normalizeto the subcommandorders, which can be used to specify the orders that should be used to normalize to.
- added missing support for LHAIDs for
pdf_uncertainty - fixed a case where merging two grids fails, because the bin limits are numerically not exactly the same
0.2.0 - 02/08/2020
- the Lagrange-interpolation grid of PineAPPL now supports fully dynamic factorisation/renormalisation scales
pineapplhas a new subcommandpdf_uncertaintyto calculate PDF uncertainties- in
examples/capi-dy-aaone can find an example how to use the C API - added method
Grid::with_subgrid_typethat allows the selection of a custom Subgrid type - added
--absoluteswitch to the subcommandconvoluteofpineappl, which shows all values of the scale variation as absolute numbers - added a PDF and alphas to
Grid::convoluteto speed up convolutions - added
--ordersswitch to the subcommandpdf_uncertainty, to caclulate the PDF uncertainty only with the specified perturbative orders - added new subcommand
infowhich shows the highest orders in alphas and alpha - added new subcommand
diffwhich compares two grids with each other
- the parameter
reweightofSubgridParamsis set totrueby default now (wasfalsebefore) - improved the output of
pineappl, bin widths are printed now
- fixed subcommand
ordersofpineapplto normalise each leading order to the sum of all leading orders, not only the first - fixed subcommand
pdf_uncertaintyofpineapplto show the correct integrated results (bin width was missing) - fixed calculation of the scale variation
0.1.0 - 11/06/2020
- first release