Подорожуй з gofrie.com

jacobsHack! October 17-18, Bremen, Germany

Have you always wanted to create your own app? Do you like changing the status quo? Are you a doer instead of a talker? Do you want to meet new fellow developers from all over the world? Are you currently a student or did you graduate in the last year? Then join us for jacobsHack! on October 17. — 18. at Jacobs University Bremen in Germany!

Registrations are open at: 2015f.jacobshack.com

For more information also see: fb.com/jacobshack.bremen

CppCon 2014

CppCon 2014!!!

Відеоматеріали з недавнього CppCon.


Є і відео зі Степановим.

Гурток 11 листопада доведеться посунути на 18.11 у зв'язку із засіданням в цей час Науково-технічної ради НаУКМА ВВ

Automatic Vectorization, and A Curious Case of Java Being Faster Than C++




Speaker: Danylo Fitel

Talk slides.

Demo projects.

11 жовтня 2014, 16:30 переноситься на 18 листопада
Аудиторія 1-331

Гурток 7 жовтня

High-performance code is no longer CPU code!



Speaker: Danylo Fitel

Talk slides.

Inspired by Eric Brumer and Herb Sutter.

7 жовтня 2014, 16:30
Аудиторія 1-331

Template Metaprogramming in C++

Практична користь шаблонів в плюсах — не тільки генерація коду (яскравий приклад — стратегії Alexandrescu), але й обчислення на етапі компіляції і оптимізація коду (далі поясню, що маю на увазі).

1. Обчислення на етапі компіляції. Представляють скоріше теоретичний інтерес, хоча і дають простір для оптимізації (в деяких практичних застосуваннях, наприклад, FFT, забезпечують дуже пристойний виграш в швидкості).
На жаль, чомусь всі люблять демонструвати паршиві приклади з неефективними алгоритмами (наприклад, числа Фібоначчі і піднесення до степеня ніколи не роблять правильно). Виправив цю досадну несправедливість.
Починаючи з C++11, такі трюки втрачають актуальність через constexpr, який дозволяє робити те саме, тільки зрозуміліше і естетичніше.

2. Оптимізація коду. Як правило, йдеться про якийсь ітеративний алгоритм, реалізовиний рекурсивними шаблонними визначеннями. Розумний компілятор, який знає трюки типу inlining і loop unrolling, може перетворити таку шаблонну рекурсивну функцію в звичайну послідовність операторів без логіки циклу чи рекурсії, тим самим значно вкоротивши кількість інструкцій.
Для прикладу, так можна перетворити BubbleSort масиву, розмір якого — стала етапу компіляції, в послідовність свопів, більше того, в цій ситуації prefetcher дасть максимальний приріст швидкості. Інший приклад — обчислення функції за розкладом в ряд Тейлора, кількість членів розкладу якого — теж константа етапу компіляції: на виході — код без зайвих змінних/лічильників/викликів функцій.

Проект для студії (версія 2013+) лежить тут. Деякі фічі типу static_assert не працюватимуть в старих студіях, їх можна закоментувати. З іншими компіляторами проблем бути не повинно (хіба якісь нюанси часткової спеціалізації).

А тут непогана презентація про шаблони в плюсах, в тому числі і про їх повноту за Тюрингом.

Enjoy!

Баян, або код, який виводить сам себе на екран (quine)

Про баянізм красномовно свідчить назва, але на випадок, якщо раптом хто не в курсі: написати код, який… виводить сам себе на екран!
Хто лінивий, про це є навіть окрема стаття на вікіпедії (див quine). Хто наполегливий, той молодець.
  • +1
  • 30 листопада 2013, 01:20
  • FTL