ПРИМЕНЕНИЕ МОНАДНЫХ ВЫЧИСЛЕНИЙ ПРИ РЕШЕНИИ ЧИСЛЕННЫХ ЗАДАЧ

Обложка

Цитировать

Полный текст

Открытый доступ Открытый доступ
Доступ закрыт Доступ предоставлен
Доступ закрыт Только для подписчиков

Аннотация

Данная работа является дальнейшим развитием исследований по применению функционального программирования для численных методов. В частности, функциональное программирование может помочь в перенесении программ на графические ускорители с технологией CUDA. В предыдущих работах основной упор делался на функторах (и аппликативных функторах). Теоретические основы монадных вычислений излагались, но в настоящей работе основной упор делается на их практическом применении. Один из базовых принципов функционального программирования — активное использование композиции функций, которая позволяет строить из простых функций сложные и, таким образом, упрощает написание сложных программ. Монадные вычисления позволяют строить цепочки сложных вычислений. Такие цепочки — это тоже, в некотором смысле, композиция функций, но на более высоком, монадном уровне (монадная композиция).

Об авторах

М. М Краснов

Институт прикладной математики им. М.В. Келдыша РАН

Email: kmm@kiam.ru
ORCID iD: 0000-0001-7988-6323
Москва, Россия

Список литературы

  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

Дополнительные файлы

Доп. файлы
Действие
1. JATS XML

© Российская академия наук, 2025

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

 

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