C++ has many features which make this language very attractive for scientific programming, and one of them is the operator overload functionality. I present an example taken from our programming environment (math3D library) that use this to represent a rotation class (Euler angles).
We present a list of programing tips and tricks. With these tips users can increase their productivity on the computer programming and make their overall computer experience a lot more enjoyable. This section will grow over time as new entries are added and current entries updated. We will cover a wide range of topics in C++ programming applied to scientific programming. You are welcome to bring your own suggestions
This page is an on-going work in progress and will be updated periodically, stay tuned.
An example of how STL (Standard Template Library) can be used to write scientific code. In our programming environment we make an extensive use of this kind of technique. From our experience, it helps to write better code that is easier to understand and less error prone.
C++11 added a new adapter called bind (bind1st and bind2nd are now deprecated since C++11). I give some hands-on examples of everyday life usage as a scientific programmer of this adapter.
We present a little example of the use of boost range and the lambda expression, supported by C++11, that show manipulating range is made easy and don’t need extra programming of function for simple task.
Containers of pointers are common and important. For example, if you want to implement reference semantics you need to store objects’ addresses in a container. Another good reason to create such containers and the most important one is polymorphism. In this blog I discuss some of the issues when working with pointer containers and give a brief introduction to boost container of pointer library.
Everyday programmers are faced with testing and quick prototyping. Boost::Assign library really shines in simple throwaway programs and test harnesses, where small, simple and easily modifiable code is the goal. I present some utility (examples) and show how it can make you more efficient in your everyday task.
Developing numerical (scientific) software imposes two important demands on their implementation; those regarding flexibility and complexity. Another developing approach called Object-Oriented Numeric (OON) has been proposed. I discuss this new approach and give a short introduction about this new way of developing scientific software.
We show by a simple usage of the numeric algorithm “accumulate” how STL can make code cleaner, short and can save you time and write better code. Fewer lines of code means less bugs, 90% of the time, simpler code runs faster and easier to maintain.
For this first tips and tricks we present an example from our C++ environment “Elligno Virtual Physics Studio”.
Some basic tests with boost range library
Montreal, Quebec H3W 1P7