C++Guns – RoboBlog

24.01.2019

Installing gcc, g++ and gfortran 8 from source

Filed under: Allgemein — Tags: , , , — Thomas @ 22:01

The procedure is quite the same as for gcc 4.8 as you can see in my older post Installing gcc, g++ and gfortran 4.8 from source Read the manual. Download, unpack, switch dir, download, unpack, link. $ wget ftp://ftp.gwdg.de/pub/misc/gcc/snapshots/LATEST-8/gcc-8-20190118.tar.xz $ xz -d gcc-8-20190118.tar.xz $ tar xf gcc-8-20190118.tar $ gcc-8-20190118/ $ wget ftp://ftp.gmplib.org/pub/gmp-6.1.2/gmp-6.1.2.tar.bz2 $ tar xjf […]

23.01.2019

C++ Guns: ACPL: Conway's Game of Life

Filed under: Allgemein — Tags: — Thomas @ 18:01

In den Heise Kommentaren (Ja ich schau da ab und zu rein) gab es letztens ein Vergleich zum Spaß von Conway's Game of Life einmal in C++ und GO. Natürlich war GO furchtbar langsam. Aber der C++ Code sah auch nicht sehr sinnvoll aus. Es ist an der Zeit es mit meinem ACPL Framework und […]

16.01.2019

C++ Guns: Interval

Filed under: Allgemein — Tags: — Thomas @ 15:01

Es gibt eine Menge Implementationen und Arbeit über Intervall Datentypen in C++, aber nichts, was einfach mal einfach wäre. Riesen Linksammlung http://www.cs.utep.edu/interval-comp/ Doc No: A Proposal to add Interval Arithmetic o the C++ Standard Library (revision 2) von 2008 http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n2137.pdf BOOST natürlich https://www.boost.org/doc/libs/1_69_0/libs/numeric/interval/doc/interval.htm Und sogar ein Versuch in ganz modernen C++ Moore: Interval Arithmetic in […]

15.01.2019

C++ Guns: How NOW to design FORTRAN -> C++ Interfaces

Filed under: Allgemein — Tags: , — Thomas @ 00:01

This is one wrong way to design a FORTRAN to C++ interface. But let's start at the beginning. From FORTRAN callable C++ function must be declared with extern "C" to disable name mangling. The function funcCPP expect a 2D array. Two items a 3 values. Calculate the sum and return it. Rember: C counts from […]

13.01.2019

C++ Guns: -Wshadow for constructor arguments

Filed under: Allgemein — Tags: — Thomas @ 14:01

-Wshadow is not that bad. We live in a modern world and don't use C if we can use C++ with a better defined scope and namespaces. So we can catch more errors on compile time. First: what kind or errors can be detected with -Werror=shadow Warn whenever a local variable or type declaration shadows […]

C++ Guns: NOT another level of indirection

Filed under: Allgemein — Tags: — Thomas @ 11:01

The following code snips does NOT create a level of indirection. You can see it by introspect the assembler code. So don't worry, start structure your data. See the next post for a practice example. Example 1 Lets begin with a simple struct contains 3 members: double, float, int. Sum them up. And see what […]

07.01.2019

C++ Guns: PRNG

Filed under: Allgemein — Tags: , — Thomas @ 20:01

Parallel mit mehreren Zufallsgeneratoren zu arbeiten ist echt nicht einfach. Die Details verstecken sich im Verständnis. Mit welchen Seed werden sie erstellt? Einfach die Zeit in Sekunden plus 1, 2 3, 4? Wir können das ja einfach mal ausprobieren. Die ersten drei Zahlen von vier Generatoren: seed 1 48271 182605794 1291394886 seed 2 96542 365211588 […]

C++ Guns: Passing function objects around (Update Example random generators)

Filed under: Allgemein — Tags: — Thomas @ 19:01

Update zu Passing random generators around (functor) In jenen Beispiel habe ich den RNG per std::function übergeben. Das muss nicht sein. Mit std::function verliert man die inline Performance. Und es geht auch ohne seltsames std::bind. Aktualisierter Code:

C++ Guns: Pass function objects per Forwarding references!

Filed under: Allgemein — Tags: — Thomas @ 19:01

I say: Pass (template) function objects per Forwarding references! and not per value. The reason is simple: it works also with function objects with state. https://en.cppreference.com/w/cpp/language/reference A little example will show it: Generate 5 random numbers: calls to perValue: 4 4 4 4 4 calls to perForwardReference: 4 193084 730423176 870612250 1216431607 It doesn’t work […]

04.01.2019

C++ Guns: Rekursive Template Datentypen

Filed under: Allgemein — Tags: — Thomas @ 17:01

Schonmal probiert den ein und selben template Datentypen mit sich selbst zu nutzen? Mach nichts, ich auch nicht ;) Als erstes Beispiel ein einfacher, nicht rekursiver Datentyp: Seit C++17 gibt es Class template argument deduction. Allerdings muss man für User-defined typen auch User-defined deduction guides angeben. Dieser hier ist sehr simpel. Damit compiliert das oben […]

« Newer PostsOlder Posts »

Powered by WordPress