Source Code I'm thinking about a few posts in these series going very fast through the project. The source is on my GitHub, check out the tags since the master branch is still work in progress. Experimenting with Graph Algorithms with F# and GPU Graphs play their role in bioinformatics which is my favorite area … Continue reading Walking the Euler Path: Intro
GPU Split & Sort With Alea.CUDA
Implementing radix sort with Alea.CUDA using the Unbound module.
Capture Video in 2 Lines of Code
Literally. Well almost. 2 meaningful lines + some boilerplate. This has got to be easier than even Python! Using EmguCV, a wrapper around OpenCV and F# Interactive:
Look-and-say: [Alea.]CUDA
Continuing the Advent of Code theme from the previous post. Figured since this year is going to be my year of CUDA, this would be a good opportunity to take it for a ride. A good April 1st post, but why wait? So, how can we make this even faster than the already fast imperative … Continue reading Look-and-say: [Alea.]CUDA
Look-and-say: F#
This holiday season my brief indulgence was solving the Advent of Code puzzles. One was about the look-and-say sequence. It starts with "1" and grows as follows: 1 is read off as "one 1" or 11. 11 is read off as "two 1s" or 21. 21 is read off as "one 2, then one 1" … Continue reading Look-and-say: F#
Non-linear Thinking with CUDA.
I love GPU programming for precisely this: it forces and enables you to think about a solution in a non-linear fashion in more than one sense of the word. The Problem Given a set $latex A = \{a_1, a_2 \ldots a_n\}$, output a set $latex S_A = \{0,\ \sum\limits_{k=1}^{n} a_k,\ \sum\limits_{k=i}^{i + j \mod n} … Continue reading Non-linear Thinking with CUDA.
Turnpike Problem (F#)
The Problem This is a problem for which no polynomial time solution exists, although a pseudo-polynomial (polynomial in the degree of the maximum element) does exist. In this paper, the algorithm proposed for the sum-function with full information is simple enough. For the original problem with the difference funcition, the algorithm is simple as well: … Continue reading Turnpike Problem (F#)
Decomposition Problem with F#, Dynamic Programming
As my former boss and mentor used to say, in order to understand recursion one must first understand recursion. This is funny, ha-ha, but if we tweak it slightly we get a really useful statement: in order to understand dynamic programming, one must first understand recursion. Here is an example. Sources Github: http://github.com/fierval/BioInfo Decomposition Problem … Continue reading Decomposition Problem with F#, Dynamic Programming
Fun with Alea.CUDA, F# Interactive, Charts
Source code for this post can be found on my GitHub. It's great to see technologies evolving over the years. Alea.CUDA has done so in leaps and bounds since the first time I laid eyes on it a couple of years ago. At the time the name seemed unfortunate and hinted at the "aleatic" programming … Continue reading Fun with Alea.CUDA, F# Interactive, Charts
Motif Finding with Gibbs Sampling (F#)
The Problem "Motif finding is a problem of finding common substrings of specified length in a set of strings. In bioinformatics, this is useful for finding transcription binding sites" (recap here). The problem is succinctly stated on Rosalind. Given a set of strings DNA of size t, find "most common" substrings of length k. "Most common" means, that substrings … Continue reading Motif Finding with Gibbs Sampling (F#)