Skip to content

Instantly share code, notes, and snippets.

@delfigamer
delfigamer / stable_map.cpp
Created December 15, 2023 01:34
An implementation of an insertion-ordered stable hash map
// Toggle the `if constexpr` at line 382 to switch between stable_map and std::unordered_multimap
#include <assert.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <functional>
#include <memory>
#include <unordered_map>
@delfigamer
delfigamer / 1-plot.md
Last active December 12, 2023 00:39
Proof-of-concept of an array-of-arrays implementations of an ordered multi-set

ListLogLogPlot[
 {{{2^16, 0.017},
   {2^17, 0.039},
   {2^18, 0.091},
   {2^19, 0.236},
   {2^20, 0.631},
   {2^21, 1.745},
 {2^22, 5.034},
@delfigamer
delfigamer / 1) wm_char.cpp
Created December 3, 2023 23:30
Examples of using WM_CHAR for text input in a Win32 application, a simple and a partially IME-aware version
#define WIN32_LEAN_AND_MEAN
#define _CRT_SECURE_NO_WARNINGS
#define _SCL_SECURE_NO_WARNINGS
#include <Windows.h>
#include <cstdio>
#include <utility>
#include <string>
#include <vector>
require('protectenv')()
local ffi = require('ffi')
local complex = require('complex')
local png = require('png')
local wlen = 4
local wnum = 2*math.pi / wlen
local map = ffi.new('complex_t[512][512]')
@delfigamer
delfigamer / png.lua
Created November 23, 2022 03:32
Simulates artifacts of a certain lossy image compression
local png = {}
local ffi = require('ffi')
local libpng = ffi.load('libpng16.dll')
ffi.cdef[[
typedef struct png_control *png_controlp;
typedef struct
{
@delfigamer
delfigamer / divisions.cpp
Last active April 27, 2022 06:16
measures the runtime of different variants of the integer division
#include <stdio.h>
#include <stdint.h>
#include <time.h>
template<typename Fn>
void measure(Fn fn) {
clock_t c1 = clock();
fn();
clock_t c2 = clock();
printf("time: %7.3lf\n", (c2 - c1) / (double)CLOCKS_PER_SEC);
@delfigamer
delfigamer / STList.hs
Last active July 1, 2020 12:44
A mutable single-linked list in ST monad
module STList (
STList,
STListPtr,
new,
prepend,
append,
mark,
pop,
popUntil,
foldr,
@delfigamer
delfigamer / WINDOWS.H
Created July 28, 2018 19:18
Windows 3.1 SDK
/*****************************************************************************\
* *
* windows.h - Windows functions, types, and definitions *
* *
* Version 3.10 *
* *
* Copyright (c) 1985-1992, Microsoft Corp. All rights reserved. *
* *
*******************************************************************************
*
@delfigamer
delfigamer / controller.cpp
Created July 15, 2018 00:30
Control system with object simulation
#include "controller.hpp"
#include "modelfilter.hpp"
namespace controller
{
vector< quantity, 2 > targetpos = { 0.0_m, 0.0_m };
void update()
{
vector< quantity, 2 > posdiff = targetpos - modelfilter::ballpos;
local modname = ...
local index = package.modtable(modname)
local ffi = require('ffi')
local databuffer = require('databuffer')
local filestorage = require('rsbin.filestorage')
local fileopenmode = require('rsbin.fileopenmode')
local storagestream = require('rsbin.storagestream')
local pngreader = require('rsbin.pngreader')
local pngwriter = require('rsbin.pngwriter')
local bitmapformat = require('rsbin.bitmapformat')