15/4/2019, 13:04

When redundant type casts matter

In the last episode from the rabbit hole of broken dreams and despair that is trying to make deterministic floating point operations in .NET, we saw how a seemingly innocent series of operations would lead to behaviour that would depend both of target architecture and compiler optimization settings.



This time around, we'll see that even Microsoft's own main C# editor Visual Studio doesn't quite get it right, and how an -- according to Visual Studio -- redundant operation in C# can cause results to change.



Continue reading



27/3/2019, 22:11

Rounding errors and compiler optimizations

In a previous post, we saw how careful one must be to reason about floating-point numbers and how \((a / b) \cdot b\) does not in general equal \(a\) in the context of computer hardware.



Indeed, the first thing everybody learns about floating-point numbers is that any attempt to compare them is likely fruitless as unexpected results show up all over the place, a typical example being that \(0.1 + 0.2 \not= 0.3\). In Python:


$ python
>>> 0.1 + 0.2 == 0.3
False

In this post we will see two non-obvious sources of rounding errors that conspired to slow down time itself by 3 seconds in a particularly nasty bug in a .NET application, and we will see how one would go about debugging such issues.



Continue reading



27/8/2017, 16:50

Bias in the .NET random number generator

In this post we will see that when prompted to provide random positive integers, the default .NET Framework random number generator has a strong bias in its least significant bit.



Continue reading



13/8/2015, 16:30

Fletninger og deres anvendelser

I det sidste indlæg definerede vi Jonesrepræsentationen, der til enhver fletning \(\sigma\) med \(n\) strenge og et valg af et tal \(d \in \{0,\dots,n-1\}\) knytter en matrix \(\eta(\sigma)\), der ydermere afhænger af en komplekst tal \(A\). I dette indlæg kigger vi nærmere på, hvor \(\eta\) kommer fra, hvad matricerne måske siger, og endelig en småsyret anvendelse af matricerne, der måske revolutionerer verden, som vi kender den. Og måske gør den ikke. Det finder vi ud af.


Continue reading



30/7/2015, 19:04

Fletninger og Jonesrepræsentationer

Dette er det første af to indlæg, hvis mål er at give en introduktion til Jens Kristian Egsgaards og min artikel om de såkaldte Jonesrepræsentationer, der er på et så lavt niveau, at den kan forstås af alle, der ved lidt om komplekse vektorrum; det vil sige alle, der har haft noget, der svarer til det kursus i lineær algebra, som matematikstuderende har på deres første år.


Continue reading



30/7/2015, 16:16

Fun with deepdream

Towards the end of the month of June, Google released the Python source code for deepdream: A piece of software which allows for the visualisation of the potential of a collection of artificial neural networks set up for image recognition. I can't exactly claim that I dug into the technical details, but Google produced a blog post which explains in rough terms the capabilities of the software, and what is going on. Let me not attempt to reproduce that as I would not be able to do a better job than Google anyway.


Continue reading



29/7/2015, 18:01

Sjov med deepdream

I slutningen af juni måned offentliggjorde Google Pythonkildekoden til deepdream: Et stykke programmel, der tillader visualisering af en samling kunstige neutrale netværks anvendelsesmuligheder inden for billedgenkendelse. Jeg kan ikke påstå, at jeg har sat mig ind i de tekniske detaljer, men Google har produceret et blogindlæg, der i grove træk forklarer, hvad der foregår, og hvad programmet kan. Lad mig ikke gøre et forsøg på at gengive det, da jeg alligevel ikke vil kunne gøre det bedre, end de selv gør.


Continue reading



23/6/2015, 12:56

Grundlæggende topologi: Noterne

Jeg har for nyligt afsluttet et 40-timers-kursus i "Grundlæggende topologi". Kurset dækkede fundamentale begreber om topologiske og metriske rum, herunder egenskaber såsom sammenhængenhed, kompakthed, og separering. Hen mod slutningen var vi i stand til at tale om elementær algebraisk topologi og eksplicit udregne fundamentalgrupperne af simple topologiske rum.


Continue reading



23/6/2015, 12:53

Basic topology: The notes

I recently completed a 40 hour course on "Basic topology". The course covered the fundamentals on topological and metric spaces, including properties such as connectedness, compactness, and separation. At the end, we were able to talk in detail about elementary algebraic topology and explicitly find the fundamental groups of some simple topological spaces.


Continue reading



21/6/2015, 19:50

Agar med vennerne

I dette indlæg beskrives, hvordan man påbegynder en session i det populære onlinespil agar.io med vennerne. Bemærk at indlægget formentlig bliver uddateret temmelig hurtigt, da spillet stadig er under udvikling.


Continue reading