Skip to content

Instantly share code, notes, and snippets.

@anyuzx
anyuzx / generate_matplotlib_custom_style_example.py
Last active April 27, 2022 17:46
Script for generating example plots for matplotlib style (with math equations)
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.colors as mcolors
# here 'gs-style' is the name reference to the custom matplotlib style
# typically saved to ~/.matplotlib/stylelib/
plt.style.use('gs-style')
# Fixing random state for reproducibility
np.random.seed(19680801)
@anyuzx
anyuzx / pdist_cython_parallel.pyx
Last active October 24, 2019 13:43
setup.py for parallel Cython codes shown in the blog post
# cython: language_level=3
import cython
import numpy as np
from cython.parallel import prange, parallel
from libc.math cimport sqrt
from libc.math cimport nearbyint
@cython.boundscheck(False)
@cython.wraparound(False)
@anyuzx
anyuzx / pdist_benchmark_pure_python.ipynb
Last active October 7, 2019 15:35
pdist_benchmark_pure_python
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
//
// This is a lattice random walk config generator using pivot algorithm.
// can be self-avoid or not self-avoid
// lattice_SAW(chain array, number of steps(monomers), step length(bond), self-avoid or no-self-avoid)
//
// Created by guangshi on 8/25/14.
// Copyright (c) 2014 Guang Shi. All rights reserved.
//
#include <math.h>
@anyuzx
anyuzx / random-walk-pyodide.js
Last active September 24, 2019 04:05
A random walk example of using Pyodide
// dynamically load the script on demand
class ScriptLoader {
constructor(script) {
this.script = script;
this.scriptElement = document.createElement('script');
this.head = document.querySelector('head');
}
load () {
return new Promise((resolve, reject) => {
@anyuzx
anyuzx / random_walk_2d.py
Last active September 23, 2019 23:45
Generate 2D random walk trajectory
import numpy as np
def walk(n):
# check if the number of steps is an integer
if int(n) != n:
print('number of steps should be an integer')
return None
# the initial position is (0,0)
xy_0 = np.array([0.0, 0.0])
# generate displacements of each step
@anyuzx
anyuzx / test.py
Last active September 19, 2019 19:58
import numpy as np
x = np.random.rand(1000)
y = np.random.rand(1000)
def next_batch_nonlinear_map(bs, h, w, anisotropy=True):
# ... same code ...
y.append(np.dot(item, item)) # only changes here
# ... same code ...
anisotropy = False
learning_rate = 0.005
batch_size = 200
h = 10
w = 10
channels = 1
x = tf.placeholder(tf.float32, [batch_size, h, w, channels])
y = tf.placeholder(tf.float32, [batch_size, h, w, channels])
linear_map = np.random.rand(h,w)
import numpy as np
import timeit
from scipy.spatial.distance import cdist
# define a dot product function used for the rotate operation
def v_dot(a):return lambda b: np.dot(a,b)
class lattice_SAW:
def __init__(self,N,l0):
self.N = N