|
|
UNIVERSITY OF BUCHAREST FACULTY OF PHYSICS Guest 2024-11-23 18:11 |
|
|
|
Conference: Bucharest University Faculty of Physics 2023 Meeting
Section: Theoretical Physics and Applied Mathematics
Title: A new advance on dimensional-aware scalar, vector and matrix operations in c++
Authors: Eduard George STAN(1,2), Dan Andrei CIUBOTARU(1), Michele RENDA(1), Calin ALEXA(1)
Affiliation: 1) IFIN-HH, Particles Physics Department
2) University of Bucharest, Faculty of Physics
E-mail edigeorges50@gmail.com
Keywords: C++
Units
Scalar
Vector
Matrix
Abstract: We review the dimensional check problem of the high-level programming languages, discuss the existing solutions, and come up with a new solution, suited for scientific and engineering computations. Then, we introduce Univec, our C++ library designed to make scalar, vector, and matrix operations using units of measurement. Moreover, Univec supports dimensional-aware operations for complex numbers, quaternions, octonions, and sedenions. Finally, we provide tables of the relevant functions and operators implemented, and we present our future plans for improving the current implementation.
References:
1. Mayerhofer, T., Wimmer, M. & Vallecillo, A. Adding uncertainty and units to quantity types in software models. In
Proceedings of the 2016 ACM SIGPLAN International Conference on Software Language Engineering, SLE 2016, 118–131,
DOI: 10.1145/2997364.2997376 (Association for Computing Machinery, New York, NY, USA, 2016).
2. McKeever, S., Bennich-Björkman, O. & Salah, O.-A. Unit of measurement libraries, their popularity and suitability.
Software: Pract. Exp. 51, 711–734, DOI: 10.1002/spe.2926 (2021).
3. Preussner, G. M.
Dimensional Analysis in Programming Languages.
https://gmpreussner.com/research/dimensional-analysis-in-programming-languages (2018).
4. Apple Inc. Swift Language. https://swift.org (2022).
5. Kennedy, A. Types for Units-of-Measure: Theory and Practice. In Horváth, Z., Plasmeijer, R. & Zsók, V. (eds.) Central
European Functional Programming School: Third Summer School, CEFP 2009, Budapest, Hungary, May 21-23, 2009 and
Komárno, Slovakia, May 25-30, 2009, Revised Selected Lectures, Lecture Notes in Computer Science, 268–305, DOI:
10.1007/978-3-642-17685-2_8 (Springer, Berlin, Heidelberg, 2010).
6. Schabel, M. C. & Watanabe, S. Chapter 44 boost.units 1.1.0 - 1.80.0. https://www.boost.org/doc/libs/1_80_0/doc/html/
boost_units.html (2020).
7. Petty, G. W. Automated computation and consistency checking of physical dimensions and units in scientific programs.
Software: Pract. Exp. 31, 1067–1076, DOI: 10.1002/spe.401 (2001).
8. Grecco, H. Pint. https://github.com/hgrecco/pint (2022).
9. Lönnblad, L. CLHEP—a project for designing a C++ class library for high energy physics. Comput. Phys. Commun. 84,
307–316, DOI: 10.1016/0010-4655(94)90217-8 (1994).
10. Guennebaud, G., Jacob, B. et al. Eigen v3. http://eigen.tuxfamily.org (2010).
11. Dembinski, H., Nellen, L., Reininghaus, M. & Ulrich, R. Technical Foundations of CORSIKA 8: New Concepts for
Scientific Computing. In Proceedings of 36th International Cosmic Ray Conference — PoS(ICRC2019), vol. 358, 236,
DOI: 10.22323/1.358.0236 (2019).
12. Heck, D., Knapp, J., Capdevielle, J.-N., Schatz, G. & Thouw, T. CORSIKA: A Monte Carlo Code to Simulate Extensive
Air Showers. Tech. Rep., Institut national de physique nucléaire et de physique des particules (1998).
13. Moene, M. PhysUnits-CT-Cpp11. https://github.com/martinmoene/PhysUnits-CT-Cpp11 (2013).
14. IEEE Standard for Floating-Point Arithmetic. IEEE Std 754-2019 (Revision IEEE 754-2008) 1–84, DOI: 10.1109/
IEEESTD.2019.8766229 (2019). Conference Name: IEEE Std 754-2019 (Revision of IEEE 754-2008).
15. Thomson, M. Modern particle physics (Cambridge University Press, New York, 2013).
16. Googletest repository. https://github.com/google/googletest.
17. Gitlab website. https://gitlab.com.
18. Doxygen website. https://doxygen.nl.
19. Pusz, M. A c++ approach to physical units (2019).
20. Renda, M., Ciubotaru, D. & Banu, C. Betaboltz: A Monte-Carlo simulation tool for gas scattering processes. Comput.
Phys. Commun. 267, 108057, DOI: 10.1016/j.cpc.2021.108057 (2021).
Acknowledgement: This study was supported by the Romanian Ministry of Research, Innovation and Digitization through the PN23210104 and ATLAS CERN-RO grants.
|
|
|
|