Skip to content

Instantly share code, notes, and snippets.

Avatar

Ivan Pribec ivan-pi

View GitHub Profile
@ivan-pi
ivan-pi / bisect.cxx
Last active August 25, 2022 07:42
Passing a C Function Callback to the Boost Math Toolkit Root Finding Library
View bisect.cxx
// compile with g++ -o bisect.cxx poly.o -I<path/to/boost>
#include <cmath>
#include <iostream>
#include <boost/math/tools/roots.hpp>
// Functor providing termination condition
// Determines convergence in x based on if the relative or absolute tolerance are satisfied
template<class T>
@wyphan
wyphan / build.sh
Last active June 13, 2022 16:58
Wil's GCC easy build script. Deprecated in favor of wyphan/gccprefab repo.
View build.sh
\#!/bin/bash
whatscr() { echo "gccprefab - Wil's GCC easy build script"; }
whenscr() { echo "Last updated: Jun 11, 2022 (WYP)"; }
usage() { echo "Usage: $0 [options] configfile"; }
helptext() {
echo "Available options:"
echo " -h, --help Display this help text"
@fnky
fnky / ANSI.md
Last active February 7, 2023 22:00
ANSI Escape Codes
View ANSI.md

ANSI Escape Sequences

Standard escape codes are prefixed with Escape:

  • Ctrl-Key: ^[
  • Octal: \033
  • Unicode: \u001b
  • Hexadecimal: \x1B
  • Decimal: 27
View schools.rst

Two schools

There are two schools how to write numerical code, which in this document we will call the IEEE school and the Fortran school.

One end of the spectrum: no changes in floating point by the compiler, the developer must express exact intent. This is the IEEE school.

On the other end of the spectrum: Developer specifies math, the compiler is

@dblalock
dblalock / align.c
Created August 30, 2017 22:11
C / C++ portable aligned memory allocation
View align.c
/* Allocate aligned memory in a portable way.
*
* Memory allocated with aligned alloc *MUST* be freed using aligned_free.
*
* @param alignment The number of bytes to which memory must be aligned. This
* value *must* be <= 255.
* @param bytes The number of bytes to allocate.
* @param zero If true, the returned memory will be zeroed. If false, the
* contents of the returned memory are undefined.
* @returns A pointer to `size` bytes of memory, aligned to an `alignment`-byte
@maxogden
maxogden / bibtex.png
Last active February 4, 2023 01:24
How to make a scientific looking PDF from markdown (with bibliography)
View how-to-add-image-to-gist.md

How to add an image to a gist

  1. Create a gist if you haven't already.
  2. Clone your gist:
    # make sure to replace `<hash>` with your gist's hash
    git clone https://gist.github.com/<hash>.git # with https
    git clone git@gist.github.com:<hash>.git     # or with ssh
@leverich
leverich / tide_fac.f
Created November 27, 2015 19:02
tide_fac.f modified to compute node factors and equilibrium arguments for all 37 NOS/NOAA tidal constituents
View tide_fac.f
C PROGRAM TO COMPUTE NODAL FACTORS AND EQUILIBRIUM ARGUEMENTS
C
C
PARAMETER(NCNST=37)
CHARACTER CNAME(NCNST)*8
COMMON /CNSNAM/ CNAME
REAL NODFAC,MONTH
DIMENSION NCON(NCNST)
COMMON /CNST/ NODFAC(NCNST),GRTERM(NCNST),SPEED(NCNST),P(NCNST)
@jshahbazi
jshahbazi / fmincg.f90
Created May 31, 2014 22:17
fmincg minimization function ported to Fortran
View fmincg.f90
real function fmincg(length, nn_params, input_layer_size, hidden_layer_size, num_labels, inputdata, y, lambda)
implicit none
! Copyright (C) 2001 and 2002 by Carl Edward Rasmussen. Date 2002-02-13
! (C) Copyright 1999, 2000 & 2001, Carl Edward Rasmussen
!
! Permission is granted for anyone to copy, use, or modify these
! programs and accompanying documents for purposes of research or
! education, provided this copyright notice is retained, and note is
! made of any changes that have been made.
@MohamedAlaa
MohamedAlaa / tmux-cheatsheet.markdown
Last active February 7, 2023 12:41
tmux shortcuts & cheatsheet
View tmux-cheatsheet.markdown

tmux shortcuts & cheatsheet

start new:

tmux

start new with session name:

tmux new -s myname