Application of monadic computations in solving numerical problems

Cover Page

Cite item

Full Text

Open Access Open Access
Restricted Access Access granted
Restricted Access Subscription Access

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).

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

  1. 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.
  2. CUDA Zone. https://developer.nvidia.com/cudazone
  3. Krasnov M.M. Functional programming library for C++ // Program. Comput. Software. 2020. V. 46. No 5. P. 330-340. doi: 10.1134/s0361768820050047.
  4. Haskell language. https://www.haskell.org
  5. 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
  6. Milewski B. Category Theory for Programmers. https://github.com/hmemcpy/milewski-ctfpdf/releases/download/v1.3.0/category-theory-for-programmers.pdf
  7. Krasnov M.M. Operator library for solving multidimensional mathematical problems on CUDA // Mathematic Modeling and Computing. 2015. V. 27. No 3. P. 109-120.
  8. 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.
  9. 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
  10. 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
  11. 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
  12. Stroustrup B. The C++ Programming Language // B. Stroustrup // Addison-Wesley, 2013 (4th ed.)
  13. Stroustrup B. Programming: Principles and Practice Using C++ // B. Stroustrup // Addison-Wesley, 2013 (2nd ed.)
  14. Stroustrup B. The Design and Evolution of C++ // B. Stroustrup // Addison-Wesley, 1994.
  15. Stroustrup B. A Tour of C++ // B. Stroustrup // Addison-Wesley, 2014.
  16. Stroustrup B. Programming: Principles and Practice Using C++ // B. Stroustrup // Upper Saddle River: Addison-Wesley, 2009.
  17. Stroustrup B. The Design and Evolution of C++ // B. Stroustrup // Pearson, 1994.
  18. The C++ Resources Network. http://www.cplusplus.com

Supplementary files

Supplementary Files
Action
1. JATS XML

Copyright (c) 2025 Russian Academy of Sciences

Согласие на обработку персональных данных

 

Используя сайт https://journals.rcsi.science, я (далее – «Пользователь» или «Субъект персональных данных») даю согласие на обработку персональных данных на этом сайте (текст Согласия) и на обработку персональных данных с помощью сервиса «Яндекс.Метрика» (текст Согласия).