Finger Trees: A Simple General-Purpose Data Structure (2006)
Finger Trees: A Simple General-purpose Data Structure
The latest blog posts to take off on Hacker News. 106 posts.
Finger Trees: A Simple General-purpose Data Structure
;; Done Twice as a "Dojo" at Villiers Park on Thursday 19th March 2015 ;; To groups of about 15 ultra-clever teenagers who were thi...
Today I will present how to implement in Python a simple yet effective algorithm for proceduraly generating 2D landscapes. It is called Midpoint Displacement (or Diamond-square algorithm,…
Linear Algebra Geometric Algebra Applications Multiplying Vectors Rotors Double Angle Formula Complex Numbers Characterizing B Ratios Conjugates Geometric Algebra is fascinating, and I believe solves a large number of problems that arise from a more traditional approach to vectors, but I've been very disappointed with…
Skip lists are a wonderful data structure, but it is hard to get\ right. This blog post presents various techniques to optimize and\ improve the implementation of skip lists.
Although the mathematics involved with neural networking is not a trivial matter, a user can rather easily gain at least an operational understanding of their structure and function.
I have a simple fast Fourier transform implementation on the page Free small FFT in multiple languages , whose asymptotic time complexity is the optimal Θ( n log n ). I wanted to know how much additional speed-up could be obtained by reorganizing memory access patterns and using SIMD vector arithmetic instructions…
I explain how SeaHash works.
Graph theory is my favourite topic in mathematics and computing science and in this blog post I’ll introduce an algebra of graphs that I’ve been working on for a while. The algebra has become my go-to tool for manipulating graphs and I hope you will find it useful too.
One of the best things about modern cryptography is the beautiful terminology. You could start any number of punk bands (or Tumblrs) named after cryptography terms like ‘hard-core predicate&#…
Neural networks have the rather uncanny knack for turning meaning into numbers. Data flows from the input to the output, getting pushed through a series of transformations which process the data into increasingly abstruse vectors of representations. These numbers, the activations of the network, carry useful…
The Christian doctrine of trinitarianism states that there is one God that is manifest in three persons, the Father, the Son, and the Holy Spirit, who together form the Holy Trinity. The doctrine…
A space efficient UTF-8 binary-to-text encoding
Numerical Optimization is one of the central techniques in Machine Learning. For many problems it is hard to figure out the best solution directly, but it is relatively easy to set up a loss function that measures how good a solution is - and then minimize the parameters of that function to find the solution.
its computational convenience • connections to the Gaussian distribution • differentiability and basis independence • why not squared error • absolute-error methods
You can get CS papers published with shoddy statistics, but that doesn’t mean you should. Here are three easy ways to bungle the data analysis in your evaluation section: don’t even try to use statistics when you really ought to; misinterpret an inconclusive statistical test as concluding a negative; or run too many…
The C standard library includes a qsort() function for sorting arbitrary buffers given a comparator function. The name comes from its original Unix implementation, “quicker sort,” a variation of the well-known quicksort algorithm. The C standard doesn’t specify an algorithm, except to say that it may be unstable (C99…
Might not be the most reliable or useful contraption but it's definitely a fun one.
A word of warning ... I'm presenting here something called an analogy. It's not perfect, it has problems, it's not exact, but there are ways in which it can aid your thinking. I'm giving a way of visualising high-dimensional spheres, a way that has its limitations, but which can help avoid making mistakes based on…
As part of a demonstration in an upcoming article , I wrote a simple trie implementation. A trie is a search tree where the keys are a sequence of symbols (i.e. strings). Strings with a common prefix share an initial path down the trie, and the keys themselves are stored implicitly by the structure of the trie. It’s…
How Stephen Wolfram helped with the theory of interstellar travel, communication with aliens and questions from the actors in “Arrival”, the movie.
Quote: Back in 80s, it was possible to calculate the speed of the program just by looking at assembly. Another Quote: keep in mind that these days compilers ...
I was at SCNA the other day, and someone approached me about TDD and Dijkstra’s algorithm. He wondered if you could find a sequence of tests that would lead you to the algorithm. This sounded like a fun little exercise, so I decided to give it a try here.
Definition: The Fibonacci sequence is defined as \(F(0) = 0\), \(F(1) = 1\), and \(F(n) = F(n-1) + F(n-2)\) for \(n ≥ 2\). So the sequence (starting with \(F(0)\)) is 0, 1, 1, 2, 3, 5, 8, 13, 21, ….
Towards deep symbolic reinforcement learning Garnelo et al, 2016 Every now and then I read a paper that makes a really strong connection with me, one where I can’t stop thinking about the imp…
On another page , I unleash the simulated annealing algorithm on a toy problem. It generates an image full of random colorful pixels, and rearranges the pixels so that similar colors are near each other.