Skip to content

Instantly share code, notes, and snippets.

View vrbadev's full-sized avatar
🇺🇦

Vojtěch Vrba vrbadev

🇺🇦
View GitHub Profile
@vrbadev
vrbadev / flatten_iterables.py
Created December 14, 2021 18:59
Simple Python recursive function to flatten any iterable nested object to unit-depth iterable of desired type
def flatten(*parents, dtype=tuple):
# internally, lists are used because they can be easily merged and expanded
result = list()
for i in range(len(parents)):
try:
# if i-th element iterable, use recursion to flatten all its elements and merge the result with current return list
result.extend(flatten(*parents[i], dtype=list))
except TypeError:
# if not iterable, add the element to return list
result.append(parents[i])
@vrbadev
vrbadev / linear_regression.c
Created April 9, 2021 16:40
Fast 2D linear regression in pure C without math libraries
#include <stdio.h>
#include <stdint.h>
float pwr2(float x)
{
return x * x;
}
float inv_sqrt(float number)
{
@vrbadev
vrbadev / lib_math_vectors.c
Last active January 20, 2020 12:22
Simplest ANN implementation in pure C without libraries
#include "lib_math_vectors.h"
// Simplifies math power function
double pow2(double x) { return pow(x, 2); }
// Sigmoidal function
double sigmoid(double x) { return 1.0 / (1.0 + exp(-x)); }
// ReLU function
double relu(double x) { return fmax(0.0, x); }
@vrbadev
vrbadev / md5.c
Last active November 13, 2019 20:21 — forked from creationix/md5.c
Modified MD5 library
#include "md5.h"
const uint32_t r[] = {7, 12, 17, 22, 7, 12, 17, 22, 7, 12, 17, 22, 7, 12, 17, 22,
5, 9, 14, 20, 5, 9, 14, 20, 5, 9, 14, 20, 5, 9, 14, 20,
4, 11, 16, 23, 4, 11, 16, 23, 4, 11, 16, 23, 4, 11, 16, 23,
6, 10, 15, 21, 6, 10, 15, 21, 6, 10, 15, 21, 6, 10, 15, 21};
const uint32_t k[] = {
0xd76aa478, 0xe8c7b756, 0x242070db, 0xc1bdceee,
0xf57c0faf, 0x4787c62a, 0xa8304613, 0xfd469501,