Skip to content

Instantly share code, notes, and snippets.

View nickodell's full-sized avatar

Nick ODell nickodell

  • Fort Collins, CO
View GitHub Profile
@nickodell
nickodell / repro-output.txt
Created October 21, 2025 16:15
repro-output
scipy version: 1.16.2
numpy version: 2.3.3
pandas version: 2.3.3
ODR_NOISY: ['Sum of squares convergence']
ODR_CLEAN: ['Sum of squares convergence']
beta[0] beta[1] beta[2]
initial 1.0000 85.0000 0.0200
ODR noisy 4.6002 87.6715 0.0140
@nickodell
nickodell / docs-scipy-org-troubleshooting.md
Last active October 18, 2025 19:51
scipy docs troubleshooting

Docs Performance Investigation Plan

Date: 2025-10-16

The following are a set of suggested troubleshooting ideas for diagnosing the problem with the docs.scipy.org server.

(Note: The following instructions assume that you are running Ubuntu 20.04 LTS, which is my best guess for what the server is running based on its Apache version / server banner.)

Linux Performance in 60000 ms

@nickodell
nickodell / test_sgnd.c
Created July 20, 2025 18:14
Comparison of Fortran and C for division by 0
// command gcc -Wall -Wextra -pedantic test_sgnd.c -lm -o test_sgnd_c && ./test_sgnd_c
#include <stdio.h>
#include <math.h>
// Test sgnd = dp*(dx/ABS(dx)) for all combinations of [1, 0, -0, 1]
int main(void)
{
const double dp[4] = { 1.0, 0.0, -0.0, -1.0 };
const double dx[4] = { 1.0, 0.0, -0.0, -1.0 };
@nickodell
nickodell / Dockerfile
Created June 25, 2025 01:46
Working arch build environment
FROM archlinux:latest
RUN pacman -Syu --noconfirm git base-devel
RUN useradd nodell \
&& mkdir /builddir \
&& chown nodell:nodell /builddir
USER nodell
WORKDIR /builddir
RUN git clone https://aur.archlinux.org/python-scipy-mkl-tbb.git
USER root
RUN pacman -Su --noconfirm cython gcc-fortran meson-python pybind11 python-build python-installer python-pythran python-pytest python-hypothesis
(1.000000000000000000e+00+0.000000000000000000e+00j) (0.000000000000000000e+00+0.000000000000000000e+00j) (0.000000000000000000e+00+0.000000000000000000e+00j) (0.000000000000000000e+00+0.000000000000000000e+00j) (0.000000000000000000e+00+0.000000000000000000e+00j) (0.000000000000000000e+00+0.000000000000000000e+00j) (0.000000000000000000e+00+0.000000000000000000e+00j) (0.000000000000000000e+00+0.000000000000000000e+00j) (0.000000000000000000e+00+0.000000000000000000e+00j) (0.000000000000000000e+00+0.000000000000000000e+00j) (0.000000000000000000e+00+0.000000000000000000e+00j) (0.000000000000000000e+00+0.000000000000000000e+00j) (0.000000000000000000e+00+0.000000000000000000e+00j) (0.000000000000000000e+00+0.000000000000000000e+00j) (0.000000000000000000e+00+0.000000000000000000e+00j) (0.000000000000000000e+00+0.000000000000000000e+00j) (0.000000000000000000e+00+0.000000000000000000e+00j) (0.000000000000000000e+00+0.000000000000000000e+00j) (0.000000000000000000e+00+0.000000000000000000e+00j
@nickodell
nickodell / 1.14.1 bench.sh
Last active March 16, 2025 01:35
Benchmarking for marg_bnds PR
# 1.14.1 was benchmarked outside of SciPy's build directory
# It was done with the following command
for i in $(seq 1 7); do python3 bug-22655b.py; done
# This runs the benchmark fewer times than normal, but this is fine because 1.14.1 is very clearly faster.
@nickodell
nickodell / future-releases.md
Created March 8, 2025 19:49
How to get notified of future SciPy releases

If you'd like to sign up to be notified of future SciPy releases, here's how.

  1. Open our repository home page.
  2. Make sure you're signed into GitHub.
  3. Click Watch.
  4. Click Custom.
  5. Check the 'Releases' box.
// ==UserScript==
// @name Remove Search Pulsing
// @version 1
// @grant none
// @match https://stackoverflow.com/*
// ==/UserScript==
(new MutationObserver(check)).observe(document, {childList: true, subtree: true});
@nickodell
nickodell / filter.py
Created October 30, 2022 01:36
filter tennis court
import numpy as np
import cv2
import scipy.ndimage
import matplotlib.pyplot as plt
img = cv2.imread('HjJto.jpg')
img_rgb = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
blue = np.array((81, 93, 147)).reshape(1, 1, 3)
rmse = np.sqrt(((img_rgb - blue)**2).mean(axis=2))
concatenated = data[['day', 'month', 'year', 'time']].astype(str).agg(' '.join, axis=1)
data['date'] = pd.to_datetime(concatenated)