Skip to content

Instantly share code, notes, and snippets.

Avatar
🛠️
optmzg...

Max Graey MaxGraey

🛠️
optmzg...
View GitHub Profile
@MaxGraey
MaxGraey / sort_github_lang_collection.js
Last active Mar 27, 2021
Script which sort programming languages in Github Explore Collection Category
View sort_github_lang_collection.js
// TODO: next implement HITS ranking algorithm from: https://d-nb.info/1112813659/34
const https = require('https');
const url = require('url');
const fs = require('fs');
const LANGS_URL = 'https://raw.githubusercontent.com/github/explore/main/collections/programming-languages/index.md';
const MD_PROLOGUE = "---\nitems:\n";
const MD_EPILOGUE = (
@MaxGraey
MaxGraey / betainc.ts
Last active Mar 17, 2021
Calc beta incomleate function by Lentz's algorithm
View betainc.ts
type i32 = number;
type f64 = number;
function isNeg(x: f64): boolean {
return x < 0.0 && x == Math.floor(x);
}
// Returns the value ln(gamma(x)).
function logGamma(x: f64): f64 {
@MaxGraey
MaxGraey / Cargo.toml
Last active Sep 16, 2020
Benchmark different nearest functions for Rust
View Cargo.toml
[package]
name = "bench"
version = "0.1.0"
authors = ["MaxGraey <maxgraey@gmail.com>"]
[profile.bench]
codegen-units = 1
opt-level = 3
lto = true
debug = false
@MaxGraey
MaxGraey / emscripten.rb
Created Jul 5, 2020
Try migrate to upstream
View emscripten.rb
require "language/node"
class Emscripten < Formula
desc "LLVM bytecode to JavaScript compiler"
homepage "https://emscripten.org/"
stable do
url "https://github.com/emscripten-core/emscripten/archive/1.39.18.tar.gz"
sha256 "aa0df2828096d161636467d4fc062bbeea31e372c122a05c9685bb6cb2d4064e"
end
@MaxGraey
MaxGraey / bench.js
Created May 17, 2020
getStringImpl join array of strings vs string concat
View bench.js
let buffer;
const LENGTH = 1024 * 4 + 17;
const WARMUP_COUNT = 8;
function createStringBuffer(len = LENGTH) {
buffer = new ArrayBuffer(len * 2);
const U16 = new Uint16Array(buffer);
const alphabet = 'A BCDE, FGHI JKLM.; (NOPQ- RSTU, VWXYZ. abcd; efgh,) ijkl mnop. qrst- uvwxy,( z0123 4567, 89.)';
for (var i = 0; i < len; i++) {
U16[i] = alphabet.charCodeAt(Math.floor(Math.random() * alphabet.length));
View wasmtest.wat
(module
(type $t0 (func (param i32 i32)))
(type $t1 (func (param i32 i32) (result i32)))
(func $std.builtin.default_panic (type $t0) (param $p0 i32) (param $p1 i32)
(local $l2 i32) (local $l3 i32) (local $l4 i32)
global.get $g0
local.set $l2
i32.const 16
local.set $l3
local.get $l2
View wasm-crypto-compiler-issue.ts
// tslint:disable-next-line:no-reference
/// <reference path="../node_modules/assemblyscript/index.d.ts" />
@sealed @unmanaged
class Ge {
x: Int64Array;
y: Int64Array;
z: Int64Array;
t: Int64Array;
@MaxGraey
MaxGraey / abs-approx.js
Last active Jan 18, 2020
Rational approximation abs with MSE = ~1.6e-7
View abs-approx.js
const fj = [ 1, 0.01123596, 1, 0.19101124, 0.05617978, 0.39325843, 0.01123596, 0.59550562, 0.21348315]
const wj = [-0.232961,-0.1212703, -0.29214973,-0.12772172, 0.21085705, 0.6024462, 0.07024019, 0.3625982, -0.53436423]
const zj = [-1, -0.01123596, 1, 0.19101124, -0.05617978, -0.39325843, 0.01123596, 0.59550562, -0.21348315]
function approxAbs(x) {
const B0 = wj[0] / (x + 1 - 1e-15);
const B1 = wj[1] / (x - zj[1]);
const B2 = wj[2] / (x - 1 + 1e-15);
const B3 = wj[3] / (x - zj[3]);
const B4 = wj[4] / (x - zj[4]);
View worst-complexity-reorder-example.js
const isOrdered = arr => !arr.some((v, i) => v == arr[i + 1]);
function swap(alphabets, idx1, idx2) {
var t = alphabets[idx1];
alphabets[idx1] = alphabets[idx2];
alphabets[idx2] = t;
return alphabets;
}
function permute(alphabets, startIndex = 0, endIndex = alphabets.length - 1) {
if (startIndex !== endIndex) {
@MaxGraey
MaxGraey / Wasm-FAQ-2019.md
Last active Jan 19, 2021
WebAssembly FAQ для телеграм сообщества WebAssembly_ru
View Wasm-FAQ-2019.md

FAQ мигрировал на https://github.com/WebAssembly-Enthusiasts/info/blob/master/FAQ/ru.md

Введение

Данный FAQ был специально создан для телеграм сообщества https://t.me/WebAssembly_ru.

Он базируется на статье от Andre Weissflog, но так же содержит множество моих дополнений и мыслей, которые могут быть уже не слишком актуальны на момент прочтения. Прошу это учитывать.

0. Какие цели у WebAssembly?