Открытое образование

Метапрограммирование шаблонов C++ в задачах математической физики

  • Начальный уровень
  • Наставник: Нет
  • Сертификат: Есть
  • Формат: Online
  • Рассрочка: Нет
  • Язык: Русский
  • Осталось мест: не ограничено
Записаться

Метапрограммирование шаблонов C++ в задачах математической физики

Организатор курса: НИЯУ МИФИ
Программа обучения
  • Простейшие метафункции. Объясняется, что такое метафункция, приводятся примеры простейших метафункций (факториал, биномиальные коэффициенты, интеграл от одночленна по стандартному симплексу).
  • На стыке компиляции и исполнения. Показывается, как часть вычислений может быть вынесена на стадию компиляции на примере степенной функции.
  • Более сложные примеры. Вычисление простых чисел. Список чисел времени компиляции.
  • Цикл времени компиляции. Вычисление интеграла от бинома, автоматическое раскрытие скобок, вычисление матрицы масс.
  • Шаблонный полиморфизм и шаблоны выражений. Объясняется, что это такое, раскрывается шаблон CRTP, приводится простейший пример шаблонов выражений (калькулятор).
  • Символьное дифференцирование. Показывается, как шаблоны выражений можно использовать для символьного дифференцирования формул. С помощью символьного дифференцирования методом Ньютона решается уравнение с одной и несколькими переменными, а также находится экстремальная точка у функции с несколькими переменными.
  • Сеточно-операторный подход к программированию. Излагается разработанный автором подход к программированию, позволяющий в тексте программы кратко записывать сеточные выражения в виде, близком к математическому, и обеспечивающий автоматический (путём простой перекомпиляции) переносить программы на графические ускорители CUDA.