Skip to content

Instantly share code, notes, and snippets.

View wookay's full-sized avatar
📟
갛낲닽랔맟밪상앗잡참칼탇판학

WooKyoung Noh wookay

📟
갛낲닽랔맟밪상앗잡참칼탇판학
View GitHub Profile

[JULIA] Faster than CGAL Delaunay

TL;DR

DelaunayJL is an incremental 2D Delaunay triangulation algorithm implemented in Julia, it is robust and ~20% faster than CGAL, the C++ de-facto industry standard. And it's MIT Licensed! all links to code are below

Show me the data!

The figure below shows how much time it takes to run a benchmark on my computer, an Intel Core i7-4800MQ CPU @ 2.7Ghz, 16GB RAM, Win8 64bit. The benchmark consists of inserting a number of points uniformly distributed. The benchmark is run 5 times for each number of points once for CGAL and once for Julia. The numbers of points used are 10K, 100K, 1M, and 10M. CGAL v4.4 was compiled with VS2013 64bit release mode, Julia is of version 0.3.0 Commit 7681878 (2014-08-20 20:43 UTC) x86_64-w64-mingw32 the delaunay code is here (see other gists of mine for complementing files... I'll compile this all into a library when I have the time)

module VoronoiDelaunay
# VoronoiDelaunay_v0.2.9
#
# Fast, robust 2D Voronoi/Delaunay tesselation
# Implementation follows algorithms described in http://arxiv.org/abs/0901.4107
# and used (for e.g.) in the Illustris Simulation
# http://www.illustris-project.org/
#
# Author: Ariel Keselman ([email protected])
anonymous
anonymous / reflection.swift
Created June 21, 2014 06:49
Reflection in Swift
import Foundation
struct Point {
var x: Int = 200
var y: Int! = 2
var z: Int? = nil
}
class CPoint {
@staticfloat
staticfloat / debugging.md
Last active February 24, 2017 03:11
Julia Debugging Procedures

Julia Debugging Procedures

So you managed to break Julia. Congratulations! Collected here are some general procedures you can undergo for common symptoms encountered when something goes awry. Including the information from these debugging steps can greatly help the maintainers when tracking down a segfault or trying to figure out why your script is running slower than expected.

If you've been directed to this page, find the symptom that best matches what you're experiencing and follow the instructions to generate the debugging information requested. Table of symptoms:

@mbostock
mbostock / .block
Last active November 22, 2022 23:32
Line Transition
license: gpl-3.0
@atr000
atr000 / iching.sh
Created October 4, 2010 15:00
iching.sh - random iching cast
#!/bin/bash
# iching.sh
# casts an i ching
# use: ching [number]
# with number looks up that hexagram, otherwise casts
function cast {
l=0
until [ $l == 6 ]