Skip to content

Commit

Permalink
Fix citation, better explanations, and fix English
Browse files Browse the repository at this point in the history
  • Loading branch information
Saransh-cpp committed Feb 20, 2025
1 parent d98c6ba commit 4888c53
Show file tree
Hide file tree
Showing 3 changed files with 40 additions and 18 deletions.
2 changes: 1 addition & 1 deletion .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ repos:
rev: v2.3.0
hooks:
- id: codespell
args: ["-LOnd"]
args: ["-LOnd,Leary"]
exclude: ^docs/usage/intro.ipynb$

- repo: https://github.com/rbubley/mirrors-prettier
Expand Down
22 changes: 21 additions & 1 deletion paper/paper.bib
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,8 @@ @inproceedings{rocklin:2015
booktitle={Proceedings of the 14th python in science conference},
number={130-136},
year={2015},
organization={Citeseer}
organization={Citeseer},
doi={10.25080/Majora-7b98e3ed-013}
}

@inproceedings{lam:2015,
Expand Down Expand Up @@ -201,3 +202,22 @@ @software{root:2020
doi = {10.5281/zenodo.3895860},
url = {https://doi.org/10.5281/zenodo.3895860}
}

@software{Bradbury:2018,
author = {James Bradbury and Roy Frostig and Peter Hawkins and Matthew James Johnson and Chris Leary and Dougal Maclaurin and George Necula and Adam Paszke and Jake Vander{P}las and Skye Wanderman-{M}ilne and Qiao Zhang},
title = {{JAX}: composable transformations of {P}ython+{N}um{P}y programs},
url = {http://github.com/jax-ml/jax},
version = {0.3.13},
year = {2018},
}

@inproceedings{Ansel:2024,
author = {Ansel, Jason and Yang, Edward and He, Horace and Gimelshein, Natalia and Jain, Animesh and Voznesensky, Michael and Bao, Bin and Bell, Peter and Berard, David and Burovski, Evgeni and Chauhan, Geeta and Chourdia, Anjali and Constable, Will and Desmaison, Alban and DeVito, Zachary and Ellison, Elias and Feng, Will and Gong, Jiong and Gschwind, Michael and Hirsh, Brian and Huang, Sherlock and Kalambarkar, Kshiteej and Kirsch, Laurent and Lazos, Michael and Lezcano, Mario and Liang, Yanbo and Liang, Jason and Lu, Yinghai and Luk, CK and Maher, Bert and Pan, Yunjie and Puhrsch, Christian and Reso, Matthias and Saroufim, Mark and Siraichi, Marcos Yukio and Suk, Helen and Suo, Michael and Tillet, Phil and Wang, Eikan and Wang, Xiaodong and Wen, William and Zhang, Shunting and Zhao, Xu and Zhou, Keren and Zou, Richard and Mathews, Ajit and Chanan, Gregory and Wu, Peng and Chintala, Soumith},
booktitle = {29th ACM International Conference on Architectural Support for Programming Languages and Operating Systems, Volume 2 (ASPLOS '24)},
doi = {10.1145/3620665.3640366},
month = apr,
publisher = {ACM},
title = {{PyTorch 2: Faster Machine Learning Through Dynamic Python Bytecode Transformation and Graph Compilation}},
url = {https://pytorch.org/assets/pytorch2-2.pdf},
year = {2024}
}
34 changes: 18 additions & 16 deletions paper/paper.md
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,8 @@ data, data with variable-sized rows (or a nested data structure with variable-si
entries); thus, the library is expected to perform operations on an entire
ragged structure in minimum passes. Furthermore, optimizing memory usage and
processing time has become essential with the increasing computational demands
at the LHC. Vector is a Python library for creating and manipulating 2D, 3D,
at the the Large Hadron Collider (LHC), world’s largest particle accelerator.
Vector is a Python library for creating and manipulating 2D, 3D,
and Lorentz vectors, especially arrays of vectors, to solve common physics
problems in a NumPy-like [@harris:2020] way. The library enables physicists to
operate on high energy physics data in a high level language without
Expand All @@ -51,12 +52,12 @@ high energy physics experiments.

# Statement of need

Vector is one of the few Lorentz vector libraries providing a Pythonic interface
but a compiled (through Awkward Array [@Pivarski:2018]) computational backend.
Vector integrates seamlessly with the existing high energy physics
ecosystem and the broader scientific Python ecosystem, including libraries like
Dask [@rocklin:2015] and Numba [@lam:2015]. The library implements a variety of
backends for several purposes. Although vector was written with high energy
Vector is the only actively developed Lorentz vector library with
a Pythonic interface but a compiled (through Awkward Array [@Pivarski:2018])
computational backend. Vector integrates seamlessly with the existing high energy
physics ecosystem and the broader scientific Python ecosystem, including libraries
like Dask [@rocklin:2015] and Numba [@lam:2015]. The library implements a variety
of backends for several purposes. Although vector was written with high energy
physics in mind, it is a general-purpose library that can be used for any
scientific or engineering application. The library houses a set of diverse
backends, 3 numerical backends for experimental physicists and 1 symbolic
Expand All @@ -68,21 +69,22 @@ backend for theoretical physicists. These backends include:
- an Awkward backend for computations on ragged collection-type data

There also exists implementations of the Object and the Awkward backend in Numba
for just-in-time compilable operations. Further, support for JAX and Dask is
provided through the Awkward backend, which enables vector functionalities to
support automatic differentiation and parallel computing.
for just-in-time compilable operations. Further, support for JAX [@Bradbury:2018]
and Dask is provided through the Awkward backend, which enables vector
functionalities to support automatic differentiation and parallel computing.

## Impact

Besides PyROOT's LorentzVectors and TLorentzVector [@root:2020], vector has
become a popular choice for mathematical manipulations in Python based high energy
physics analysis pipelines. Along with being utilized directly in
analysis pipelines at LHC and other experiments [@Kling:2023; @Held:2024; @Qu:2022],
the library is being used as a dependency in user-facing frameworks, such as,
Coffea, MadMiner [@Brehmer:2020], FastJet [@aryan:2023], Spyral [@spyral-utils:2024],
Weaver [@weaver-core:2024], and pylhe [@pylhe]. The library is also used in multiple
teaching materials for graduate courses and workshops. Finally, given the generic
nature of the library, it is often used in non high energy physics use cases.
analysis pipelines at LHC [@Kling:2023; @Held:2024; @Qu:2022], the library is
being used in other high energy physics experiments asn as a dependency in other
user-facing frameworks, such as, Coffea, MadMiner [@Brehmer:2020], FastJet
[@aryan:2023], Spyral [@spyral-utils:2024], Weaver [@weaver-core:2024], and pylhe
[@pylhe]. The library is also used in multiple teaching materials for graduate
courses and workshops. Finally, given the generic nature of the library, it is
often used in non high energy physics use cases.

# Acknowledgements

Expand Down

0 comments on commit 4888c53

Please sign in to comment.