Die Suche ergab 345 Treffer

von Spiele Programmierer
03.10.2018, 18:59
Forum: Programmiersprachen, Quelltext und Bibliotheken
Thema: [Visual C++] /d2noftol3 & dtol3()
Antworten: 8
Zugriffe: 1305

Re: [Visual C++] /d2noftol3 & dtol3()

Ob es eine Möglichkeit gibt, _ftol3 mit einer eigenen Version zu ersetzen? Diese Details finde ich ja immer besonders. interessant. Ich habe jetzt nochmal ein wenig darüber nachgedacht, und einen neuen Vorschlag (ohne x87): #include <emmintrin.h> unsigned int roundedToUInt4B(double f) { return (unsi...
von Spiele Programmierer
03.10.2018, 00:33
Forum: Programmiersprachen, Quelltext und Bibliotheken
Thema: [Visual C++] /d2noftol3 & dtol3()
Antworten: 8
Zugriffe: 1305

Re: [Visual C++] /d2noftol3 & dtol3()

Godbolt kann 32 bit, einfach -m32 machen. ;) https://gcc.godbolt.org/z/KDNROV Clang macht cvttss2si zweimal: Einmal für den Fall dass es ganz normal geht für 0 - 0x7fffffff und ein zweites mal, einfach Verschoben, falls die Zahl in den Bereich 0x80000000 - 0xffffffff fällt und wählt dann das Ergebni...
von Spiele Programmierer
01.10.2018, 17:55
Forum: Programmiersprachen, Quelltext und Bibliotheken
Thema: [C++] teure Ressource in Lambda moven
Antworten: 3
Zugriffe: 534

Re: [C++] teure Ressource in Lambda moven

Hast du denn sichergestellt, dass deine std::function<> nicht allokiert? Die übernimmt Ownership von deinem Lambda und wenn das zu groß ist, wird auch allokiert. Beim MSVC ab einer Pointergröße und bei Clang/GCC mit libstdc++ ab 2 Pointergrößen im Captureblock. (Quelle: Rumprobieren auf dem Compiler...
von Spiele Programmierer
30.09.2018, 23:10
Forum: Programmiersprachen, Quelltext und Bibliotheken
Thema: [C++] teure Ressource in Lambda moven
Antworten: 3
Zugriffe: 534

Re: [C++] teure Ressource in Lambda moven

Das Problem ist, dass man std::function<> selbst kopieren kann. Und um jetzt die std::function<> kopieren zu können, muss das zugewiesene Lambda natürlich auch kopierbar sein. Das ist nunmal Teil des Interfaces. Du könntest dein Funktionsobject ja z.B. in eine andere Funktion he­r­ein­rei­chen. Spät...
von Spiele Programmierer
14.10.2017, 02:09
Forum: Algorithmen und Datenstrukturen
Thema: Bitschubsen für Fortgeschrittene, Teil I
Antworten: 4
Zugriffe: 1154

Re: Bitschubsen für Fortgeschrittene, Teil I

Um schnell geeignete Primzahlen zu bekommen ist diese Seite ganz praktisch: https://asecuritysite.com/encryption/random3?val=64 Als Alternative könntest du die 3 Koordinaten erst zusammenbauen und dann gemeinsam durch einen Hash schicken. uint64_t seed = nvp.z ^ ((uint64_t)nvp.x << 40) ^ ((uint64_t)...
von Spiele Programmierer
11.08.2017, 00:16
Forum: Artikel, Tutorials und Materialien
Thema: [C++] Mikrooptimierungs-Log
Antworten: 78
Zugriffe: 62792

Re: [C++] Mikrooptimierungs-Log

Hm, also vielleicht verstehe ich dich falsch, aber auf Godbolt scheint es zu gehen:
Click
von Spiele Programmierer
10.08.2017, 22:48
Forum: Artikel, Tutorials und Materialien
Thema: [C++] Mikrooptimierungs-Log
Antworten: 78
Zugriffe: 62792

Re: [C++] Mikrooptimierungs-Log

Das ist wirklich schrecklich. und was mache ich mit Strict Aliasing und 16-Bit-Zahlen? Zu Bjarne Stroustrup beten und ihm zum Opfer meinen Computer verbrennen? Strict Aliasing ist immer eine sehr komplizierte Angelegenheit. Aber ich bin mir ziemlich sicher, dass dieser Code auch jetzt Strict Aliasin...
von Spiele Programmierer
07.08.2017, 23:26
Forum: Artikel, Tutorials und Materialien
Thema: [C++] Mikrooptimierungs-Log
Antworten: 78
Zugriffe: 62792

Re: Jammer-Thread

Verdammt – ich muss hier noch /fp:fast an gehabt haben; da hast du völlig recht!
Also auf Godbolt kompilert Visual C++ das tatsächlich zu andps ohne weitere Flags... :roll:
von Spiele Programmierer
07.08.2017, 22:58
Forum: Artikel, Tutorials und Materialien
Thema: [C++] Mikrooptimierungs-Log
Antworten: 78
Zugriffe: 62792

Re: Jammer-Thread

Hm, habe ich was verpasst? Warum ist minps besser als minss ? Bei float absoluteOf(float x) { return x > 0 ? x : -x; } muss ich leider GCC/Clang rechtgeben, denn die elegante Version mit and verändert das Vorzeichen wenn x = NaN ist. Clang optimiert den Code erfolgreich mit -ffinite-math-only und GC...
von Spiele Programmierer
07.08.2017, 17:12
Forum: Artikel, Tutorials und Materialien
Thema: [C++] Mikrooptimierungs-Log
Antworten: 78
Zugriffe: 62792

Re: Jammer-Thread

Ja, das ist tatsächlich ziemlich albern. Interessant ist das Clang den idealen Code erzeugt, sobald man _mm_min_ss verwendet (d.h. nur eine einzige Instruction). Es ist nicht immer möglich, aber so eine Funktion setzt man am Besten einfach in standard C++ um. float minimumOf(float a, float b) { retu...
von Spiele Programmierer
05.08.2017, 14:22
Forum: Artikel, Tutorials und Materialien
Thema: [C++] Mikrooptimierungs-Log
Antworten: 78
Zugriffe: 62792

Re: Jammer-Thread

Ich sehe nicht den großen Unterschied zwischen Builtin Headern und Builtin Funktionen, aber ok wie du meinst.
Nur vielleicht solltest du dich dann nicht beschweren, denn das ist schon ein sehr extremer und ungewöhnlicher Ansatz. ;)
von Spiele Programmierer
05.08.2017, 12:28
Forum: Artikel, Tutorials und Materialien
Thema: [C++] Mikrooptimierungs-Log
Antworten: 78
Zugriffe: 62792

Re: Jammer-Thread

Aber warum benutzt du nicht einfach überall die Intel Intrinsics?
Die funktionieren doch überall, kein Mensch benutzt diesen __builtin Quatsch für SSE Code.

Der generierte Code ist auch identisch.)
von Spiele Programmierer
10.07.2017, 13:43
Forum: Algorithmen und Datenstrukturen
Thema: sound channel mixing - Formel ?
Antworten: 59
Zugriffe: 11103

Re: sound channel mixing - Formel ?

Wie kommst du zu dem Schluss, dass "es nicht stimmen" kann? Ich bin mir ziemlich ziemlich sicher, dass es schon stimmt. Das ist doch eigentlich auch völlig natürlich und Alltagserfahrung. Wenn man zwei Soundquellen hat, ist es natürlich lauter als nur eine einzige. (Ok nicht zwingend, sie könnten si...
von Spiele Programmierer
10.07.2017, 13:25
Forum: Algorithmen und Datenstrukturen
Thema: sound channel mixing - Formel ?
Antworten: 59
Zugriffe: 11103

Re: sound channel mixing - Formel ?

Ich bin mir nicht sicher, dass ich eure Rechnungen wirklich verstehe. Die Sache ist doch ganz klar Gesamt = A + B . Das folgert schließlich direkt aus dem Superpositionsprinzip. Ein Mischen nach dem Prinzip Gesamt = (A + B) * Faktor wobei der Faktor != 1 (Beim Durchschnitt Faktor = 0.5) ist, ergibt ...
von Spiele Programmierer
16.06.2017, 23:57
Forum: Grafikprogrammierung
Thema: [OpenGL 4.5] Text Rendering
Antworten: 8
Zugriffe: 2563

Re: [OpenGL 4.5] Text Rendering

Meines Wissens gibt es keine angemessenen Kerning-Funktionen in Freetype. Und man kann auch keine kompletten Wörter einfach so von FreeType rendern lassen. Es gibt FT_Get_Kerning , aber das unterstützt OpenType-Kerning nicht und es wird auch generell immer eher von der Funktion abgeraten. Wenn man W...
von Spiele Programmierer
11.06.2017, 22:33
Forum: Grafikprogrammierung
Thema: [OpenGL 4.5] Text Rendering
Antworten: 8
Zugriffe: 2563

Re: [OpenGL 4.5] Text Rendering

Vorweg, Schrompf hat völlig recht mit dem was er sagt. Nicht ständig die Texturdaten erneut hochzuladen und einen Texturatlas (d.h. alle einzelnen Bildchen in eine Textur packen) zu verwenden, ist absolut unerlässlich für akzeptable Performance. Ich habe in der Vergangenheit recht gute Erfahrung mit...
von Spiele Programmierer
25.03.2017, 18:49
Forum: Programmiersprachen, Quelltext und Bibliotheken
Thema: [C++] kann ich mich auf die Float-Arithmetik verlassen?
Antworten: 19
Zugriffe: 4084

Re: [C++] kann ich mich auf die Float-Arithmetik verlassen?

Es gibt übrigens auch die Möglichkeit die optimalen Koeffizienten für so ein Approximationspolynom eines gegebenen Grads automatisch so zu bestimmen, dass der maximale relative bzw. absolute Fehler minimal ist. Ein kleines Program das ich in der Vergangenheit schon mal genutzt habe ist folgendes (di...
von Spiele Programmierer
23.10.2016, 18:41
Forum: Allgemeines Talk-Brett
Thema: Jammer-Thread
Antworten: 5705
Zugriffe: 898799

Re: Jammer-Thread

Man kann doch trotzdem die Elemente mit SIMD vergleichen und verschieben solange kein Element entfernt wird.

Vorraussetzung ist natürlich, dass idR. nur wenige Elemente entfernt werden.
Das geht mit SIMD dann natürlich nur mit deutlich mehr Aufwand und zweifelhaften Gewinn. (_mm_shuffle_epi8)
von Spiele Programmierer
23.10.2016, 17:11
Forum: Allgemeines Talk-Brett
Thema: Jammer-Thread
Antworten: 5705
Zugriffe: 898799

Re: Jammer-Thread

SSE, SIMD?
von Spiele Programmierer
23.10.2016, 13:40
Forum: Programmiersprachen, Quelltext und Bibliotheken
Thema: (gelöst)[C++] std::vector, nur leichter
Antworten: 20
Zugriffe: 5430

Re: (gelöst)[C++] std::vector, nur leichter

http://en.cppreference.com/w/cpp/concept/Allocator hat geschrieben: a.construct(xptr, args) - Constructs an object of type X in previously-allocated storage at the address pointed to by xptr, using args as the constructor arguments
Allokatoren sind sehr seltsam in C++.
von Spiele Programmierer
22.10.2016, 15:05
Forum: Programmiersprachen, Quelltext und Bibliotheken
Thema: (gelöst)[C++] std::vector, nur leichter
Antworten: 20
Zugriffe: 5430

Re: (gelöst)[C++] std::vector, nur leichter

Für große Allokationen greift "malloc" direkt auf "VirtualAlloc" zurück. Es gibt aber leider, leider kein "VirtualRealloc"... Obwohl das mit Paging ja sehr effizient möglich wäre! Sogar Linux hat "mremap". Ich würde mir auch wirklich wünschen es gäbe ein "VirtualRealloc". Je nach Anwendungsfall komm...
von Spiele Programmierer
09.10.2016, 13:10
Forum: Programmiersprachen, Quelltext und Bibliotheken
Thema: (erledigt)[C++]struct auf zu kleinem Puffer standardkonform?
Antworten: 30
Zugriffe: 4443

Re: (erledigt)[C++]struct auf zu kleinem Puffer standardkonf

Hat das wirklich was mit Strict Aliasing zu tun? Bei dem Cast von void * muss der Compiler annehmen, dass an der Stelle wirklich ein S liegt. Sonst wäre ja z.B. malloc() eine ewige Verletzung von Strict Aliasing. Nun - entweder liegt an der Stelle ein Objekt S oder eben nicht. Wenn der erste Fall z...
von Spiele Programmierer
09.10.2016, 12:12
Forum: Programmiersprachen, Quelltext und Bibliotheken
Thema: (erledigt)[C++]struct auf zu kleinem Puffer standardkonform?
Antworten: 30
Zugriffe: 4443

Re: (erledigt)[C++]struct auf zu kleinem Puffer standardkonf

Nun, der Standard garantiert da wohl nix. Mit Visual C++ sollte diese Operation aber trotzdem funktionieren, weil es kein Strict Aliasing kennt. Für andere Compiler gibt es __attribute__((may_alias)). #if defined(__GNUC__) || defined(__llvm__) || defined(__clang__) #define MAY_ALIAS __attribute__((m...
von Spiele Programmierer
26.09.2016, 22:06
Forum: Programmiersprachen, Quelltext und Bibliotheken
Thema: [C++] kann ich mich auf die Float-Arithmetik verlassen?
Antworten: 19
Zugriffe: 4084

Re: [C++] kann ich mich auf die Float-Arithmetik verlassen?

Hast du schonmal von dem Spiel Factorio gehört? Deren gesamte Multiplayer-Implementierung funktioniert, indem die Simulation absolut deterministisch abläuft und nur die Aktionen der Spieler übertragen werden. Also es ist definitiv möglich. Soweit ich weiß, hat das über die Zeit allerdings zu einer s...
von Spiele Programmierer
18.09.2016, 12:59
Forum: Programmiersprachen, Quelltext und Bibliotheken
Thema: (gelöst)[C++] std::vector, nur leichter
Antworten: 20
Zugriffe: 5430

Re: [C++] std::vector, nur leichter

Meinst du beim std::vector , dass eine Memberfunktion fehlt um die Größe zu ändern ohne ihn mit einem Referenzobjekt zu füllen? Ich nutzte wegen Linux meistens malloc . Für genullten Speicher calloc . Ich nehme an, dass das bei genügend großen Anfragen den fertig genullten Speicher vom OS nimmt? EDI...
von Spiele Programmierer
18.09.2016, 12:44
Forum: Programmiersprachen, Quelltext und Bibliotheken
Thema: (gelöst)[C++] std::vector, nur leichter
Antworten: 20
Zugriffe: 5430

Re: [C++] std::vector, nur leichter

Ok, das habe ich wirklich völlig missverstanden.

Ich habe nicht gewusst das make_unique PODs mit 0 initialisiert.
Halte ich ehrlich gesagt für eine sehr sehr fragwürdige Entscheidung.
Von "What you don’t use, you don’t pay for" rückt man wohl ab. :(
von Spiele Programmierer
18.09.2016, 09:46
Forum: Programmiersprachen, Quelltext und Bibliotheken
Thema: (gelöst)[C++] std::vector, nur leichter
Antworten: 20
Zugriffe: 5430

Re: [C++] std::vector, nur leichter

Naja, eine Anforderung für POD ist halt auch dass es einen Trivial Default Constructor hat - in anderen Worten: Einen Konstruktor der nichts macht. cppreference.com schreibt außerdem: "it can be created with std::malloc" Mit anderen Worten, POD Objekte muss man tatsächlich nicht konstruieren/initial...
von Spiele Programmierer
03.09.2016, 00:25
Forum: Allgemeines Talk-Brett
Thema: Anti-Jammer-Thread
Antworten: 1682
Zugriffe: 428647

Re: Anti-Jammer-Thread

Ich glaube du stellt dir da gerade etwas anderes vor? Ich dachte an soetwas: struct ErrorType { char const* Description; //Weitere Fehlerinformationen falls sinnvoll. //Oder ein Callback für die Description anstatt die Description selbst. Dann kann man die Meldung an der Callsite dynamisch mit mehr ...
von Spiele Programmierer
02.09.2016, 17:04
Forum: Allgemeines Talk-Brett
Thema: Anti-Jammer-Thread
Antworten: 1682
Zugriffe: 428647

Re: Anti-Jammer-Thread

aber wenn diese Datenstrukturen erst garnicht den Benutzer erreichen sollen, kann man sich den String-Bloat auch sparen und einfach eine ID reinschreiben. Ich denke es gibt auch noch eine Zwischenstuffe. Als Entwickler hat man dann den Vorteil, dass man nicht immer die Fehler-IDs nachschlagen muss....
von Spiele Programmierer
02.09.2016, 14:45
Forum: Allgemeines Talk-Brett
Thema: Anti-Jammer-Thread
Antworten: 1682
Zugriffe: 428647

Re: Anti-Jammer-Thread

Ich verstehe gerade nicht ganz – wofür Speicher? Um Stack Overflows zu vermeiden? :?: Naja, wenn man zum Beispiel ein paar Strings beliebiger Länge in einer Datenstruktur braucht. Die Allokation kann schließlich jederzeit fehlschlagen. (malloc gibt 0 zurück, std::bad_alloc fliegt) Meine Erfahrung i...