Clojure Linear Algebra Refresher: Eigenvalues and Eigenvectors
I stumble upon eigenvectors and eigenvalues regularly when reading about machine learning topics. They seem to be important. They are not introduced in those...
I stumble upon eigenvectors and eigenvalues regularly when reading about machine learning topics. They seem to be important. They are not introduced in those...
Graphics is all about geometry. In particular, there are points that have a certain color, and the pattern of colors gives you a certain picture. You can change the way the points are distributed by applying certain transformations like translation (movement), rotation and scaling. While most people familiar with the…
These days it’s a pretty bold claim if you say that you invented a sorting algorithm that’s 30% faster than state of the art. Unfortunately I have to make a far bolder claim: I wrote a …
Most commodity processors support single-precision IEEE 754 floating-point numbers. Though they are ubiquitous, they are often misunderstood. One of my readers left a comment suggesting that picking an integer in [0,232) at random and dividing it by 232, was equivalent to picking a number at random in [0,1). I am not…
If you’ve been following my articles up to now, you’ll begin to perceive, what’s apparent to many advanced practitioners of Deep Learning…
On January 4 I announced that Harald Helfgott pointed out an error in the analysis of my Graph Isomorphism test. The error invalidated my previous claim of quasipolynomial efficiency. The text of the announcement is appended below.
Consider the following pseudocode: x <- 32; y <- 0; while(true){ x <- x – floor((1/8) * y); y <- y + floor((1/8) * x); plotPointAt(x, y); } x and y are always integers. This draws…
The Laziest Programmer - Because someone else has already solved your problem.
The most recent Smarter Every Day (#172) explains a phenomenon that results from rolling shutter . You’ve likely seen this effect in some of your own digital photographs. When a CMOS digital camera captures a picture, it reads one row of the sensor at a time. If the subject of the picture is a fast-moving object…
Monoids are a pretty interesting concept in software development. Monoids are everywhere. Monoids are simple yet powerful. And Monoids have a lot to teach us about software, in particular about com…
Anyone who has taken even a cursory glance at the vast menagerie of programming languages should have at least heard the phrase "Hindley-Milner". F#, one of the most promising languages ever to emerge from the forbidding depths of Microsoft Research, makes use of this mysterious algorithm, as do Haskell, OCaml and ML…
A few weeks ago, I knocked my favorite mug off the counter and it shattered. RIP:
When adding two integers i and j of bitlength b, the result will be of bitlength b + 1 in the worst case. This means they can easily be naively added. If the result is larger or equal to F p one has only to subtract p from the result, i.e.:
Every now and then, I read a question about learning how to break ciphers, or more generally how to become a cryptographer/cryptologist. From my viewpoint, the most important part of learning this…
Yesterday, David Benjamin posted a pretty esoteric note on the IETF’s TLS mailing list. At a superficial level, the post describes some seizure-inducingly boring flaws in older Canon printers…
From the highly eclectic blog of Mark Dominus
Two of my favorite numbers are pi: $latex \pi = 3.14159… $ and the golden ratio: $latex \displaystyle{ \Phi = \frac{\sqrt{5} + 1}{2} } = 1.6180339… $ They’re related: $latex \pi =…
Searching through millions of points in an instant
Where did complex numbers come from? You might think that people invented \(i\) just so that they had a solution to the quadratic equat...
Understanding deep learning requires re-thinking generalization Zhang et al., ICLR’17 This paper has a wonderful combination of properties: the results are easy to understand, somewhat surpri…
Cyrille Rossant's small ray-tracer is an nice self-contained Python program (using NumPy) that renders this 400×300 image in about 15 seconds on a fast PC: