C++

153
Ebook

Quantum Computing with Silq Programming. Get up and running with quantum computing with the simplicity of this new high-level programming language

Srinjoy Ganguly, Thomas Cambier

Quantum computing is a growing field, with many research projects focusing on programming quantum computers in the most efficient way possible. One of the biggest challenges faced with existing languages is that they work on low-level circuit model details and are not able to represent quantum programs accurately. Developed by researchers at ETH Zurich after analyzing languages including Q# and Qiskit, Silq is a high-level programming language that can be viewed as the C++ of quantum computers! Quantum Computing with Silq Programming helps you explore Silq and its intuitive and simple syntax to enable you to describe complex tasks with less code. This book will help you get to grips with the constructs of the Silq and show you how to write quantum programs with it. You’ll learn how to use Silq to program quantum algorithms to solve existing and complex tasks. Using quantum algorithms, you’ll also gain practical experience in useful applications such as quantum error correction, cryptography, and quantum machine learning. Finally, you’ll discover how to optimize the programming of quantum computers with the simple Silq.By the end of this Silq book, you’ll have mastered the features of Silq and be able to build efficient quantum applications independently.

154
Ebook

Robot Operating System Cookbook. Over 70 recipes to help you master advanced ROS concepts

Kumar Bipin

This book will leverage the power of ROS with an introduction to its core and advanced concepts through exciting recipes. You will get acquainted with the use of different synchronous and asynchronous communication methods, including messages, services, and actions. You will learn how to use the various debugging and visualization tools used in development and how to interface sensors and actuators with the ROS framework.Firstly, you will get to grips with ROS simulation frameworks, such as Gazebo and RotorS for modeling and simulating any physical robot and virtual environment. You will also cover mobile robotics, micro-aerial vehicles, and robotic arms, which are the leading branches of robotic applications. Robot Operating System Cookbook will also guide you in the development of an autonomous navigation framework for both mobile robots and micro-aerial vehicles.Finally, you will explore ROS-Industrial, an open source project that extends the advanced capabilities of ROS software to manufacturing industries.

155
Ebook

ROS Robotics Projects. Build and control robots powered by the Robot Operating System, machine learning, and virtual reality - Second Edition

Ramkumar Gandhinathan

Nowadays, heavy industrial robots placed in workcells are being replaced by new age robots called cobots, which don't need workcells. They are used in manufacturing, retail, banks, energy, and healthcare, among other domains. One of the major reasons for this rapid growth in the robotics market is the introduction of an open source robotics framework called the Robot Operating System (ROS).This book covers projects in the latest ROS distribution, ROS Melodic Morenia with Ubuntu Bionic (18.04). Starting with the fundamentals, this updated edition of ROS Robotics Projects introduces you to ROS-2 and helps you understand how it is different from ROS-1. You'll be able to model and build an industrial mobile manipulator in ROS and simulate it in Gazebo 9. You'll then gain insights into handling complex robot applications using state machines and working with multiple robots at a time. This ROS book also introduces you to new and popular hardware such as Nvidia's Jetson Nano, Asus Tinker Board, and Beaglebone Black, and allows you to explore interfacing with ROS. You'll learn as you build interesting ROS projects such as self-driving cars, making use of deep learning, reinforcement learning, and other key AI concepts.By the end of the book, you'll have gained the confidence to build interesting and intricate projects with ROS.

156
Ebook

Rust Essentials. A quick guide to writing fast, safe, and concurrent systems and applications - Second Edition

Ivo Balbaert

Rust is the new, open source, fast, and safe systems programming language for the 21st century, developed at Mozilla Research, and with a steadily growing community. It was created to solve the dilemma between high-level, slow code with minimal control over the system, and low-level, fast code with maximum system control. It is no longer necessary to learn C/C++ to develop resource intensive and low-level systems applications. This book will give you a head start to solve systems programming and application tasks with Rust.We start off with an argumentation of Rust's unique place in today's landscape of programming languages. You'll install Rust and learn how to work with its package manager Cargo. The various concepts are introduced step by step: variables, types, functions, and control structures to lay the groundwork. Then we explore more structured data such as strings, arrays, and enums, and you’ll see how pattern matching works.Throughout all this, we stress the unique ways of reasoning that the Rust compiler uses to produce safe code. Next we look at Rust's specific way of error handling, and the overall importance of traits in Rust code. The pillar of memory safety is treated in depth as we explore the various pointer kinds. Next, you’ll see how macros can simplify code generation, and how to compose bigger projects with modules and crates. Finally, you’ll discover how we can write safe concurrent code in Rust and interface with C programs, get a view of the Rust ecosystem, and explore the use of the standard library.

157
Ebook

Rust High Performance. Learn to skyrocket the performance of your Rust applications

Iban Eguia Moraza

This book teaches you how to optimize the performance of your Rust code so that it is at the same level as languages such as C/C++. You'll understand and fi x common pitfalls, learn how to improve your productivity by using metaprogramming, and speed up your code. You will master the features of the language, which will make you stand out, and use them to greatly improve the efficiency of your algorithms. The book begins with an introduction to help you identify bottlenecks when programming in Rust. We highlight common performance pitfalls, along with strategies to detect and resolve these issues early. We move on to mastering Rust's type system, which will enable us to optimize both performance and safety at compile time. You will learn how to effectively manage memory in Rust, mastering the borrow checker. We move on to measuring performance and you will see how this affects the way you write code. Moving forward, you will perform metaprogramming in Rust to boost the performance of your code and your productivity. Finally, you will learn parallel programming in Rust, which enables efficient and faster execution by using multithreading and asynchronous programming.

158
Ebook

Skuteczny nowoczesny C++

Scott Meyers

Do opanowania języków C++11 i C++14 nie wystarcza zapoznanie się z wprowadzonymi w nich funkcjonalnościami (np. deklaracjami typu auto, semantyką operacji move, wyrażeniami lambda i obsługą współbieżności). Sztuką jest nauczenie się korzystania z tych funkcjonalności skutecznie tak, aby programy były poprawne, wydajne, łatwe w utrzymaniu i przenośne. Pomocna w tym będzie niniejsza książka, w której został opisany sposób tworzenia wspaniałego oprogramowania przy użyciu standardów C++11 i C++14 tj. nowoczesnego języka C++. Tematy: Zalety i wady inicjalizacji klamrowej, specyfikacji noexcept, technik doskonałego przekazywania argumentów oraz funkcji make służących do tworzenia wskaźników inteligentnych Związki między std::move, std::forward, odwołaniami do r-wartości i odwołaniami uniwersalnymi Techniki pisania czytelnych, poprawnych i skutecznych wyrażeń lambda Różnice między std::atomic a volatile, zalecane sposoby użycia każdej z tych deklaracji oraz ich związek z interfejsem API współbieżności w języku C++ Zmiany najlepszych rozwiązań znanych ze starego języka C++ (tj. C++98) wymagane podczas tworzenia oprogramowania w nowoczesnym języku C++ Książka Skuteczny nowoczesny C++ jest napisana zgodnie z wypróbowanym, opartym na wskazówkach i przykładach stylem wcześniejszych książek Scotta Meyersa, ale dotyczy całkowicie nowego materiału. Jest ważną pozycją dla każdego nowoczesnego twórcy oprogramowania w języku C++. Przed ponad 20 laty książki Scotta Meyersa z serii Effective C++ (Effective C++, More Effective C++ i Effective STL) wyznaczyły poziom odniesienia dla wskazówek dotyczących programowania w języku C++. Jego jasne, ujmujące wyjaśnienie skomplikowanego technicznego materiału przyniosły mu światową sławę, dzięki której stał się popularnym trenerem, konsultantem i prezenterem konferencyjnym. Scott Meyers zyskał tytuł doktora informatyki na uniwersytecie Brown. Kiedy już zapoznałem się z podstawami języka C++, sposobów programowania kodu produkcyjnego w tym języku nauczyłem się z serii książek Meyersa Effective C++. Książka Skuteczny nowoczesny C++ jest najważniejszym podręcznikiem dotyczącym istotnych wytycznych, stylów i idiomów przydatnych do skutecznego i dobrego stosowania nowoczesnego języka C++. Nie masz jej jeszcze? Kup ją. Teraz. Herb Sutter Przewodniczący komitetu standaryzacyjnego ISO C++ oraz architekt oprogramowania C++ w firmie Microsoft t

159
Ebook

Symulacje komputerowe w fizyce. Wydanie II

Maciej Matyka

Symulacje komputerowe - od podstaw! Poznaj metody numeryczne Naucz się stosować je w praktyce Odkryj świat symulacji komputerowych Ostatnie kilkadziesiąt lat to okres burzliwego rozwoju technologii informatycznych i ciągłego zwiększania możliwości komputerów dostępnych dla coraz to szerszych rzesz użytkowników. Z zaawansowanych narzędzi graficznych i symulacyjnych mogą obecnie korzystać już nie tylko profesjonaliści zatrudnieni w dużych korporacjach dysponujących ogromnymi zasobami finansowymi, lecz również pasjonaci, programiści i graficy pracujący dla niewielkich firm, które tworzą animacje komputerowe na użytek przemysłu czy branży rozrywkowej. Realistyczne, uniwersalne i interaktywne efekty można tu uzyskać tylko w jeden sposób: wykorzystując fizyczne metody symulacji ruchu, do tego zaś niezbędna jest odpowiednia wiedza. Drugie wydanie książki Symulacje komputerowe w fizyce wprowadzi Cię w podstawy metod numerycznych oraz przedstawi ich zastosowanie w praktyce. Dowiesz się, jak przeprowadzać symulacje prostych i bardziej złożonych zjawisk fizycznych, rozwiązywać równanie falowe oraz symulować zachowanie cieczy nieściśliwych i gazów, a nawet wkroczysz w tajemniczy świat fizyki kwantowej. Symulacja flagi trzepoczącej na wietrze, miękkiej piłki odbijającej się od powierzchni czy oporu, który powietrze stawia jadącemu samochodowi? Przekonasz się, że to nic trudnego! Książka jest przeznaczona zarówno dla studentów, jak i uczniów starszych klas szkół średnich, dla których może stanowić wstęp do praktycznego programowania symulacji i modelowania fizycznego w animacji komputerowej. Pozycja szczególnie zainteresuje studentów oraz kadrę dydaktyczną kierunków ścisłych, na przykład wykładowców modelowania komputerowego czy fizyki komputerowej, dla których może być punktem wyjścia do dalszego zgłębiania przedstawionych modeli. Do książki dołączony jest zbiór napisanych w językach C++, OpenGL oraz HTML5 programów, które ilustrują sposób przeprowadzania opisanych symulacji. Symulacje zjawisk mechaniki klasycznej Dynamika ciał miękkich w czasie rzeczywistym Rozwiązanie numeryczne równania falowego Symulacje dynamiki płynów (CFD) Rozwiązanie numeryczne równania SchrOdingera Poznaj metody numeryczne od podszewki!

160
Ebook

Tablice informatyczne. Algorytmy

Piotr Wróblewski

Cała wiedza w jednym miejscu! Nie pamiętasz jakiegoś algorytmu? Nie wiesz, jaką strukturę danych należy zastosować? Nie masz pojęcia, jak wyznaczyć złożoność obliczeniową algorytmu? Nie martw się, Twoje problemy należą już do przeszłości! Tablice informatyczne. Algorytmy pozwolą Ci szybko odnaleźć i przypomnieć sobie podstawowe zagadnienia dotyczące algorytmów i ich zastosowania. Będą doskonałą ściągą na wykładach lub laboratoriach, a nawet w pracy. Przykłady opracowane w C++ lub pseudokodzie pomogą właściwie zrozumieć i wdrożyć odpowiednie rozwiązania. Podstawowe pojęcia Złożoność obliczeniowa Algorytmy rekurencyjne Wyszukiwanie i sortowanie Typy i struktury danych Grafy i algorytmy grafowe Systemy liczbowe Kodowanie i kompresja Algorytmika nigdy nie była prostsza!