I hereby claim:
- I am atomictom on github.
- I am atomictom (https://keybase.io/atomictom) on keybase.
- I have a public key whose fingerprint is ABF1 8947 B280 6045 EE7F 3255 3F61 3807 B9F9 BC1B
To claim this, I am signing this object:
I hereby claim:
To claim this, I am signing this object:
| import time | |
| import math | |
| import pymavlink | |
| import droneapi.lib | |
| from pymavlink import mavutil | |
| from droneapi.lib import VehicleMode | |
| DEBUG = True | |
| GPS_3D_FIX = 3 |
| import time | |
| import math | |
| import pymavlink | |
| import droneapi.lib | |
| from pymavlink import mavutil | |
| from droneapi.lib import VehicleMode | |
| DEBUG = True | |
| GPS_3D_FIX = 3 |
| #!/usr/bin/python | |
| import os | |
| import sys | |
| class Node(object): | |
| def __init__(self): | |
| self.is_word = False | |
| self.children = {} |
| #!/usr/bin/python | |
| import os | |
| import sys | |
| class Node(object): | |
| def __init__(self): | |
| self.is_word = False | |
| self.children = {} |
| import Text.Parsec | |
| import Text.ParserCombinators.Parsec (GenParser) | |
| import Control.Applicative ((<$>), (*>), (<*>), (<*)) | |
| type UnaryOp = Integer -> Integer | |
| type BinOp = Integer -> Integer -> Integer | |
| data Expr = Binary BinOp Expr Expr | |
| | Unary UnaryOp Expr | |
| | Num Integer |
| <aside class="notice"> | |
| You must replace `meowmeowmeow` with your personal API key. | |
| </aside> |
| import System.Environment | |
| import Control.Applicative | |
| import Data.Maybe | |
| import Data.List | |
| import Data.List.Split | |
| import Data.Map.Strict ((!), Map, fromList) | |
| type Class = String | |
| type Mean = Double | |
| type StdDevSquared = Double |
| {% highlight c linenos %} | |
| void bitset(unsigned char * array, int index){ | |
| int newval; | |
| int oldval; | |
| int bitset_index = index / BITS_PER_INDEX; | |
| int bit_index = index % BITS_PER_INDEX; | |
| do{ | |
| oldval = array[bitset_index]; | |
| newval = oldval | (1 << (bit_index)); | |
| }while(!__sync_bool_compare_and_swap(&array[bitset_index], oldval, newval)); |
| /* Because bitset comprises 3 operations: | |
| * 1. Read array[bitset_index] into 'temp' | |
| * 2. Set bit (bit_index) on 'temp' | |
| * 3. Write 'temp' into array[bitset_index] | |
| * A thread running bitset can be preempted before it can write 'temp', during | |
| * which time another thread has written 'array[bitset_index]', and 'temp' does | |
| * not include the changes made by that thread. Thus, the preempted thread | |
| * overwrites the changes made by the other thread when it executes step 3. | |
| * | |
| * To avoid this, I use the GCC extension '__sync_bool_compare_and_swap' which |