This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* Copyright 2024 Igor Burago. Distributed under the ISC License terms. */ | |
#include <math.h> /* for partition_floyd_rivest() */ | |
#include <stddef.h> /* ptrdiff_t */ | |
#include <stdint.h> | |
#include <string.h> /* memcpy(), memset() */ | |
/* Built-in u128 is not strictly required, but it makes mcg64 simpler and faster. */ | |
typedef __uint128_t uint128_t; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* Copyright 2013 Igor Burago. Distributed under the ISC License terms. */ | |
#include <limits.h> | |
#include <stdio.h> | |
typedef unsigned uint; | |
uint | |
enum_bit(uint q, uint x, uint *xs) { | |
if (q == 0) { |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
" Copyright 2022 Igor Burago. Distributed under the ISC License terms. | |
" Simple emulation of indentation guides. | |
" | |
" For tab-based indentation, using the 'listchars' option works fine. | |
" For space-based indentation, one can either: | |
" • use the match highlighting feature (see ':help match-highlight'), | |
" as shown in ToggleMatchHighlightIndentGuides(); or | |
" • use the 'leadmultispace' setting of the 'listchars' option (added | |
" in Vim 9.0), as shown in ToggleListCharsIndentGuides(). |