Application of monadic computations in solving numerical problems
- Authors: Krasnov M.M1
-
Affiliations:
- Keldysh Institute of Applied Mathematics RAS
- Issue: No 5 (2025)
- Pages: 3-10
- Section: PARALLEL AND DISTRIBUTED SOFTWARE
- URL: https://ogarev-online.ru/0132-3474/article/view/378351
- DOI: https://doi.org/10.7868/S3034584725050016
- ID: 378351
Cite item
Abstract
This work is a further development of research on the use of functional programming for numerical methods. In particular, functional programming can help port programs to graphics accelerators with CUDA technology. Previous work has focused on functors (and applicative functors). The theoretical foundations of monadic computing have been outlined, but this paper focuses on its practical applications. One of the basic principles of functional programming is function composition, which allows you to build complex functions from simple ones and, thus, simplifies the writing of complex programs. Monad calculations allow you to build chains of complex calculations. Such chains are also, in a sense, a composition of functions, but at a higher, monadic level (monadic composition).
Keywords
About the authors
M. M Krasnov
Keldysh Institute of Applied Mathematics RAS
Email: kmm@kiam.ru
ORCID iD: 0000-0001-7988-6323
Moscow, Russia
References
- Krasnov M.M., Feodoritova O.B. The use of functional programming library for parallel computing on CUDA // Program. Comput. Software. 2024. V. 50. No 1. P. 11-23. doi: 10.1134/S0361768824001055.
- CUDA Zone. https://developer.nvidia.com/cudazone
- Krasnov M.M. Functional programming library for C++ // Program. Comput. Software. 2020. V. 46. No 5. P. 330-340. doi: 10.1134/s0361768820050047.
- Haskell language. https://www.haskell.org
- MacLane S. Categories for the Working Mathematician // Graduate Texts in Mathematics. V. 5. New York: Springer, 1978. https://doi.org/10.1007/978-1-4757-4721-8
- Milewski B. Category Theory for Programmers. https://github.com/hmemcpy/milewski-ctfpdf/releases/download/v1.3.0/category-theory-for-programmers.pdf
- Krasnov M.M. Operator library for solving multidimensional mathematical problems on CUDA // Mathematic Modeling and Computing. 2015. V. 27. No 3. P. 109-120.
- Krasnov M.M. Mesh-operator approach to programming problems of mathematical physics: Extended Abstract of Candidate's Dissertation in Physics and Mathematics // Moscow: Keldysh Institute of Applied Mathematics, Russian Academy of Sciences, 2017.
- Krasnov M.M. Metaprogrammirovanie shablonov C++ v zadachakh matematicheskoi fiziki (Metaprogramming of C++ Templates in Mathematical Physics Problems) // Moscow: Institut Prikladnoi Matematiki im. M.V. Keldysha, 2017. https://doi.org/10.20948/mono-2017-krasnov
- Krasnov M.M. Application of symbolic differentiation for solving of some computational problems // Preprint of Keldysh Institute of Applied Mathematics, Russian Academy of Sciences, Moscow, 2017. No 4. https://doi.org/10.20948/prepr-2017-4
- Krasnov M.M. The use of functional programming in solving numerical problems // Preprint of Keldysh Institute of Applied Mathematics, Russian Academy of Sciences, Moscow, 2019. No 114. https://doi.org/10.20948/prepr-2019-114
- Stroustrup B. The C++ Programming Language // B. Stroustrup // Addison-Wesley, 2013 (4th ed.)
- Stroustrup B. Programming: Principles and Practice Using C++ // B. Stroustrup // Addison-Wesley, 2013 (2nd ed.)
- Stroustrup B. The Design and Evolution of C++ // B. Stroustrup // Addison-Wesley, 1994.
- Stroustrup B. A Tour of C++ // B. Stroustrup // Addison-Wesley, 2014.
- Stroustrup B. Programming: Principles and Practice Using C++ // B. Stroustrup // Upper Saddle River: Addison-Wesley, 2009.
- Stroustrup B. The Design and Evolution of C++ // B. Stroustrup // Pearson, 1994.
- The C++ Resources Network. http://www.cplusplus.com
Supplementary files


