Загрузка страницы

Taking Static Type-Safety to the Next Level - Physical Units for Matrices - Daniel Withopf CppCon 22

https://cppcon.org/
---

Taking Static Type-Safety to the Next Level - Physical Units for Matrices - Daniel Withopf - CppCon 2022
https://github.com/CppCon/CppCon2022
If you are interested in achieving the ultimate goal in library interface design: "If it compiles, it works!", this talk is for you!

There are several existing C++ libraries to annotate scalars with their physical units.

This talk will present a full-blown solution for a related problem that has not been solved in C++ before: How can we put distinct physical unit types (e. g. meters, seconds, meter per second...) inside a single vector or matrix type from a linear algebra library?

The presented solution uses C++'s strong type system to provide these physical unit annotations for each matrix element. Furthermore, it also enables coordinate frame and quantity kind annotations (think X- and Y-position in coordinate frame A or B which have identical units but refer to different things).

We will learn what is the best way to represent these annotations, how they propagate through linear algebra operations, how they determine the subset of valid operations on each type and of course and most importantly, how this can be implemented efficiently in C++ (with a special on how C++20 is a game-changer here).

While developing the solution, we will also understand how this leads to code that is more expressive and less likely to contain errors because the majority of bugs can be caught at compile-time.

Applications that benefit from this include robotics, computer graphics, automated driving and any other domain that works with physical units, different coordinate frames and matrix operations.
---

Daniel Withopf

Daniel Withopf has been working on solving real-world problems with C++ in robotics, computer vision and related fields for over 20 years. He is a Staff Software Engineer at the German car supplier Bosch where he wrote and maintains an object tracking framework for self-driving car projects. While doing that he discovered novel ways how to leverage C++'s type system to create linear algebra and tracking code that is more expressive, easier to understand and less likely to contain errors.
__
Videos Streamed & Edited by Digital Medium: http://online.digital-medium.co.uk
#cppcon #programming #type

Видео Taking Static Type-Safety to the Next Level - Physical Units for Matrices - Daniel Withopf CppCon 22 канала CppCon
Показать
Комментарии отсутствуют
Введите заголовок:

Введите адрес ссылки:

Введите адрес видео с YouTube:

Зарегистрируйтесь или войдите с
Информация о видео
16 ноября 2022 г. 19:00:07
01:01:32
Другие видео канала
CppCon 2016: Casey Carter “Iterator Haiku"CppCon 2016: Casey Carter “Iterator Haiku"Catch ⬆️: Unicode for C++23 - JeanHeyd Meneide - CppCon 2019Catch ⬆️: Unicode for C++23 - JeanHeyd Meneide - CppCon 2019Taskflow: A Parallel and Heterogeneous Task Programming System Using Modern C++ - Tsung-Wei HuangTaskflow: A Parallel and Heterogeneous Task Programming System Using Modern C++ - Tsung-Wei HuangCppCon 2015: Pablo Halpern “Work Stealing"CppCon 2015: Pablo Halpern “Work Stealing"CppCon 2018: Valentin Galea “Rapid Prototyping of Graphics Shaders in Modern C++”CppCon 2018: Valentin Galea “Rapid Prototyping of Graphics Shaders in Modern C++”CppCon 2019: Emery Berger “Mesh: Automatically Compacting Your C++ Application's Memory”CppCon 2019: Emery Berger “Mesh: Automatically Compacting Your C++ Application's Memory”CppCon 2019: David Olsen “Faster Code Through Parallelism on CPUs and GPUs”CppCon 2019: David Olsen “Faster Code Through Parallelism on CPUs and GPUs”CppCon 2019: Ben Saks “Back to Basics: Exception Handling and Exception Safety”CppCon 2019: Ben Saks “Back to Basics: Exception Handling and Exception Safety”CppCon 2018: Matt Godbolt “The Bits Between the Bits: How We Get to main()”CppCon 2018: Matt Godbolt “The Bits Between the Bits: How We Get to main()”CppCon 2019: Matt Godbolt “Path Tracing Three Ways: A Study of C++ Style”CppCon 2019: Matt Godbolt “Path Tracing Three Ways: A Study of C++ Style”Deep CMake for Library Authors - Craig Scott - CppCon 2019Deep CMake for Library Authors - Craig Scott - CppCon 2019Back to Basics: The Structure of a Program - Bob Steagall - CppCon 2020Back to Basics: The Structure of a Program - Bob Steagall - CppCon 2020The One-Decade Task: Putting std::atomic in CUDA. - Olivier Giroux - CppCon 2019The One-Decade Task: Putting std::atomic in CUDA. - Olivier Giroux - CppCon 2019CppCon 2019: Matt Godbolt “Compiler Explorer: Behind The Scenes”CppCon 2019: Matt Godbolt “Compiler Explorer: Behind The Scenes”CppCon 2018: JeanHeyd Meneide “Scripting at the Speed of Thought: Lua and C++ with sol3”CppCon 2018: JeanHeyd Meneide “Scripting at the Speed of Thought: Lua and C++ with sol3”Generators, Coroutines and Other Brain Unrolling Sweetness - Adi Shavit - CppCon 2019Generators, Coroutines and Other Brain Unrolling Sweetness - Adi Shavit - CppCon 2019Meta++: Language Support for Advanced Generative Programming - Andrew Sutton - CppCon 2019Meta++: Language Support for Advanced Generative Programming - Andrew Sutton - CppCon 2019Adventures in SIMD-Thinking (part 1 of 2) - Bob Steagall - CppCon 2020Adventures in SIMD-Thinking (part 1 of 2) - Bob Steagall - CppCon 2020Just Enough Assembly for Compiler Explorer - Anders Schau Knatten - CppCon 2021Just Enough Assembly for Compiler Explorer - Anders Schau Knatten - CppCon 2021C++ Lambda Idioms - Timur Doumler - CppCon 2022C++ Lambda Idioms - Timur Doumler - CppCon 2022C++20 String Formatting Library: An Overview and Use with Custom Types - Marc Gregoire - CppCon 2020C++20 String Formatting Library: An Overview and Use with Custom Types - Marc Gregoire - CppCon 2020
Яндекс.Метрика