Skip to content

Instantly share code, notes, and snippets.

View gorakhargosh's full-sized avatar

Yesudeep Mangalapilly gorakhargosh

View GitHub Profile
#include <stdbool.h>
#include <stddef.h>
#include <stdint.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>
#define return_null_if_null(p) \
do { \
package main
import (
"fmt"
"log"
"os"
)
// Partition is an equivalence relation over disjoint sets.
type Partition interface {
@gorakhargosh
gorakhargosh / pi.py
Last active September 25, 2015 14:53
How to calculate pi, slowly.
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from __future__ import division
def term(i):
# n = 4.0/(2*i + 1)
# return -n if i & 1 else n
return (-1)**i * 4.0/(2*i + 1)
package main
import (
"fmt"
"log"
"math/big"
)
// readInt reads an integer from standard input.
func readInt() (int, error) {
package main
import (
"fmt"
"log"
"math"
"math/big"
)
// readInt reads an integer from standard input.
package main
import (
"fmt"
"log"
"math/big"
)
// readInt reads an integer from standard input.
func readInt() (int, error) {
@gorakhargosh
gorakhargosh / semaphore.go
Created September 18, 2015 16:23
interface and internal (blackbox) implementation.
// Package semaphore contains implementations of counting semaphores using both
// buffered channels and condition variables.
package semaphore
import "errors"
// Semaphore defines the protocol for any counting semaphore.
type Semaphore interface {
// Acquire blocks until a slot can be acquired in the counting semaphore.
Acquire()
@gorakhargosh
gorakhargosh / rob.go
Last active August 29, 2015 14:27 — forked from Jxck/rob.go
gocon 2014
type errWriter struct {
w io.Writer
err error
}
func (e *errWriter) Write(p []byte) {
if e.err != nil {
return
}
_, e.err = e.w.Write(p)
/**
* Fisher-Yates in-place shuffle.
*
* @see: http://bost.ocks.org/mike/algorithms/#shuffling
* @param {!Array} array An array of items.
*/
var fisherYatesShuffle = function(array) {
var n = array.length
var t;
var i;