Skip to content

Instantly share code, notes, and snippets.

View Robbepop's full-sized avatar
🐣

Robin Freyler Robbepop

🐣
  • Berlin
View GitHub Profile
@Robbepop
Robbepop / 0: System
Last active October 26, 2020 17:22
Benchmarks of the modular_bitfield crate.
# System Specs
- Intel(R) Core(TM) i7-6700HQ CPU @ 2.60GHz
- 64-bit
- 16 GB Ram
- commit: 6f11920cc3c4936baf2581de17c02a843c069beb
@Robbepop
Robbepop / const_eval_for_next_power_of_two.rs
Created October 25, 2020 21:47
Constant evulator for next_power_of_two in proc. macros.
fn const_next_power_of_two(ty: TokenStream2, value: TokenStream2) -> TokenStream2 {
quote! {{
if (#value) <= 1 {
0
} else {
let p = (#value) - 1;
let z = p.leading_zeros();
<#ty>::MAX as usize >> z
}
}}
@Robbepop
Robbepop / ink-3.0-and-canvas-node-setup.md
Created October 14, 2020 12:59
Hot to setup ink! 3.0 and Canvas Node

Hot to setup ink! 3.0 and Canvas Node

@Robbepop
Robbepop / ink-3.0-and-canvas-node-setup.md
Created October 14, 2020 12:58
Hot to setup ink! 3.0 and Canvas Node

How to setup ink! 3.0 and Canvas Node

Keybase proof

I hereby claim:

  • I am robbepop on github.
  • I am herobird (https://keybase.io/herobird) on keybase.
  • I have a public key ASAqEVoi9VO42oPAQHmY21kujCqXIk70xe2RkiwyyGAXhAo

To claim this, I am signing this object:

use ast2::prelude::*;
use simplifier::prelude::*;
pub mod prelude {
pub use super::BoolReducer;
}
/// This simplification procedure dissolves symbolic tautologies or contradictions
/// for boolean expressions.
///
@Robbepop
Robbepop / mult_replace.rs
Created October 24, 2017 21:18
How to replace multiplication by a constant with shift and add operations.
// Multiplication by a constant can be replaced by multiple shift and addition operations:
// The following table shows that for constants from 1 to 36.
//
// ============================================================================
// N | Factorized | # Ops | Ops with x as input
// ----------------------------------------------------------------------------
// 1 | 1 | 0 | x
// 2 | 2 | 1 | x << 1
// 3 | 2 + 1 | 2 | x << 1 + x
// 4 | 4 | 1 | x << 2
@Robbepop
Robbepop / .rustfmt.toml
Created March 16, 2017 18:19
.rustfmt.toml with all configs, descriptions, parameters and defaults for version 0.7.1 of rustfmt.
# ----------------------------------------------------------------------------------
# r u s t f m t - C O N F I G
# ==================================================================================
#
# Version: 0.7.1
# Author : Robbepop <robbepop@web.de>
#
# A predefined .rustfmt.toml file with all configuration options and their
# associated description, possible values and default values for use in other
# projects.
use std::rc::Rc;
use std::cell::Cell;
use std::cell::RefCell;
use std::ops::Add;
use std::ops::Sub;
use std::ops::Range;
use std::fmt;
@Robbepop
Robbepop / explicit_types.cpp
Created June 17, 2015 17:15
Some helper user defined literals in order to improve syntax with an extensive use of uniform initialization.
#include <cstdint>
#include <cstddef>
namespace explicit_types {
//====================================================================================
// Operator definitions for signed int types
//====================================================================================
constexpr auto operator"" _i8 (unsigned long long value) noexcept -> int8_t { return value; }
constexpr auto operator"" _i16(unsigned long long value) noexcept -> int16_t { return value; }