Skip to content

Instantly share code, notes, and snippets.

@minoki
minoki / abc169c-counterexamples.c
Created June 1, 2020 11:06
ABC169 C問題のコーナーケースを生成するやつ
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
#include <string.h>
#include <math.h>
#include <float.h>
#include <inttypes.h>
#if defined(TEST_FLOAT128)
// For _Float128 type, see TS 18661-3
// For _Float128 support on GCC, see https://gcc.gnu.org/onlinedocs/gcc/Floating-Types.html#Floating-Types
@minoki
minoki / test-fma.c
Last active August 12, 2020 06:56
A test program to check if your compiler's fma() is implemented correctly
#include <math.h>
#include <stdbool.h>
#include <stdio.h>
struct fma_test_case_d
{
double a, b, c, expected;
} static const cases_d[] = {
{0x1p1000, 0x1p1000, -INFINITY, -INFINITY},
{-0x1.4f8ac19291ffap1023, 0x1.39c33c8d39b7p-1025, 0x1.ee11f685e2e12p-1, 0x1.2071b0283f156p-1},
@minoki
minoki / IntegerToInt.hs
Last active August 3, 2020 09:05
A code that exhibits "Impossible case alternative"
{-# LANGUAGE MagicHash #-}
module IntegerToInt where
import GHC.Integer.GMP.Internals (Integer (S#))
-- import GHC.Num.Integer (Integer (IS))
import GHC.Exts (Int (I#))
-- Like Data.Bits.toIntegralSized, but optimized for Integer and Int
integerToIntMaybe :: Integer -> Maybe Int
integerToIntMaybe (S# x) = Just (I# x)
-- integerToIntMaybe (IS x) = Just (I# x)
#include <stdio.h>
#include <math.h>
#include <inttypes.h>
#if defined(__GNUC__)
#define NOINLINE __attribute__((noinline))
#else
#define NOINLINE
#endif
#include <stdint.h>
#include <float.h>
#include <stdlib.h>
#include <stdio.h>
#include <fenv.h>
#pragma STDC FENV_ACCESS ON
#if defined(__x86_64__) && defined(__GNUC__)
#define HAS_X87
static void set_x87_prec_24(void)
@minoki
minoki / atcoder-code-prettify.user.js
Last active June 4, 2023 00:38
AtCoderのシンタックスハイライトをちゃんと言語に応じて動作させるUserScriptです
// ==UserScript==
// @name AtCoder Code Prettify
// @namespace https://miz-ar.info/
// @include https://atcoder.jp/contests/*/submissions/*
// @version 3
// @grant none
// @run-at document-start
// ==/UserScript==
console.debug("AtCoder Code Prettify is running");
@minoki
minoki / sin-test.c
Created November 6, 2020 10:36
libmのsinの実装が x=2^n (-1000≤n≤1000)の形の入力に対して「正しく丸められた値」からどのぐらいずれているか検査するやつ
// Written by @mod_poppo
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <mpfr.h>
#include <gmp.h>
static void to_normalized_hex(char *buf, mpfr_t a, int mant)
{
// assume a is positive
@minoki
minoki / Sing.hs
Last active December 10, 2020 04:24
{-# LANGUAGE GADTs #-}
{-# LANGUAGE KindSignatures #-}
{-# LANGUAGE TypeOperators, NoStarIsType #-}
{-# LANGUAGE DataKinds #-}
{-# LANGUAGE TypeApplications #-}
{-# LANGUAGE ScopedTypeVariables #-}
{-# OPTIONS_GHC -fplugin GHC.TypeLits.Normalise #-}
{-# OPTIONS_GHC -fplugin GHC.TypeLits.KnownNat.Solver #-}
module Sing where
import qualified Data.Singletons.Prelude as S
@minoki
minoki / timer-remote.ino
Created December 17, 2020 06:53
M5Stackで作るタイマーリモコン
#include <M5Stack.h>
#include <utility/M5Timer.h>
const int SHUTTER_PIN = 12;
const int FOCUS_PIN = 5;
const int LEVER_UP = 13;
const int LEVER_PUSH = 0;
const int LEVER_DOWN = 34;
@minoki
minoki / test_cblas.c
Created January 27, 2021 11:51
BLASなんもわからん
#include <cblas_openblas.h>
#include <stdio.h>
#include <math.h>
int main(void)
{
double A[3][3] = {
{1.0, 2.0, 3.0},
{2.0, 3.0, 4.0},
{4.0, 5.0, 6.0},