Skip to content

Instantly share code, notes, and snippets.

Jack Mott jackmott

View GitHub Profile
@jackmott
jackmott / duconverter
Created Mar 7, 2019
newtonsoft json DU converter
View duconverter
namespace AlphaFront
module JsonCustomConverters =
open Newtonsoft.Json
open Microsoft.FSharp.Reflection
open System
open System.IO
type DuConverter() =
inherit JsonConverter()
@jackmott
jackmott / pqueue.cs
Created Feb 3, 2019
priority queue in c#
View pqueue.cs
using System.Collections.Generic;
using System.Linq;
namespace FB
{
public class PQueue<T>
{
private SortedDictionary<float, Stack<T>> sdict;
View keybase.md

Keybase proof

I hereby claim:

  • I am jackmott on github.
  • I am jackmott (https://keybase.io/jackmott) on keybase.
  • I have a public key whose fingerprint is DE51 EA3B 8EFA E93E 229C C013 2C5A AAC6 CAD9 92F8

To claim this, I am signing this object:

@jackmott
jackmott / thread.cs
Created Jan 10, 2019
What could be thread unsafe about this?
View thread.cs
// When this function runs in my program on multiple threads, memory corruption eventually happens
// When it doesn't run, or runs on only 1 thread, no problems
// I can't see what could be thread unsafe about it, am I missing something?
public static float SingleCellular2EdgeSimple(float x, float y, float jitter, int seed)
{
int xr = (x >= 0) ? (int)(x + 0.5f) : (int)(x - 0.5f);
int yr = (y >= 0) ? (int)(y + 0.5f) : (int)(y - 0.5f);
float[] distance = { 999999f, 999999f, 999999f, 999999f };
@jackmott
jackmott / ast.fs
Created Dec 17, 2018
AST Cleaned Up
View ast.fs
open System
type ASTNode =
| Add of (ASTNode * ASTNode)
| Sub of (ASTNode * ASTNode)
| X
| Constant of int
let rec Evaluate node x =
match node with
View ConstantFold.fs
let rec ConstantFolding node =
match node with
| Add (l,r) -> match (ConstantFolding(l),ConstantFolding(r)) with
| (Constant v1,Constant v2) -> Constant(v1+v2)
| (optL,optR) -> Add(optL,optR)
| Sub(l,r) -> match (ConstantFolding(l),ConstantFolding(r)) with
| (Constant v1,Constant v2) -> Constant(v1-v2)
| (optL,optR) -> Sub(optL,optR)
| X -> X
| Constant v -> Constant(v)
View add.c
// Got a minute to revisit this question this morning and cleaned it up a lot
// - Jack
#define MAX(a,b) (((a)>(b))?(a):(b))
int ctoi(char c){
return (int)(c - '0');
}
char itoc(int i){
@jackmott
jackmott / wordwrap.cs
Last active Nov 11, 2018
word wrap for monogame
View wordwrap.cs
public static string Wrap(string s, int width, Func<string, int> widthMeasure)
{
StringBuilder builder = new StringBuilder(s.Length);
var text = s.AsSpan();
int start = 0;
int len = 0;
for (int i = 0; i < text.Length; i++) {
if (text[i] == ' ')
{
View pqeueu.cs
using System.Collections.Generic;
using System.Linq;
namespace FB
{
public class PQueue<T>
{
private SortedDictionary<float, Stack<T>> sdict;
@jackmott
jackmott / simd_test.rs
Last active Aug 6, 2018
compiler bug?
View simd_test.rs
// SSE returns the correct answer in Debug and Release
// AVX returns the correct answer in Debug but not Release
// This seems to be related to add_stuff being recursive
#[cfg(target_arch = "x86")]
use std::arch::x86::*;
#[cfg(target_arch = "x86_64")]
use std::arch::x86_64::*;
use std::fmt::Debug;
You can’t perform that action at this time.