Skip to content

Instantly share code, notes, and snippets.

View ivan-pi's full-sized avatar

Ivan Pribec ivan-pi

View GitHub Profile
@ivan-pi
ivan-pi / kalman.f90
Last active October 24, 2018 08:19 — forked from mrocklin/kalman.f90
Kalman filter in BLAS/LAPACK Fortran; see [blogpost](http://matthewrocklin.com/blog/work/2012/11/24/Kalman-Filter) for more information
subroutine f(mu, Sigma, H, INFO, R, Sigmavar_2, data, muvar_2, k, n)
implicit none
integer, intent(in) :: k
integer, intent(in) :: n
real*8, intent(in) :: Sigma(n, n) ! Sigma
real*8, intent(in) :: H(k, n) ! H
real*8, intent(in) :: mu(n) ! mu
real*8, intent(in) :: R(k, k) ! R, H*Sigma*H' + R
real*8, intent(in) :: data(k) ! (H*Sigma*H' + R)^-1*((-1)*data + H*mu), data, (-1)* data + H*mu
@ivan-pi
ivan-pi / mkl_least_squares_example.f90
Last active December 28, 2018 23:14
Sample least squares problem using LAPACK routines from Intel MKL
! # Check out the link below for specific compile instructions for your system:
! # https://software.intel.com/en-us/articles/intel-mkl-link-line-advisor/
!
! To compile use:
! LINK="${MKLROOT}/lib/intel64/libmkl_lapack95_lp64.a -Wl,--start-group ${MKLROOT}/lib/intel64/libmkl_intel_lp64.a ${MKLROOT}/lib/intel64/libmkl_sequential.a ${MKLROOT}/lib/intel64/libmkl_core.a -Wl,--end-group -lpthread -lm -ldl"
! INC="-I${MKLROOT}/include/intel64/lp64/ -I${MKLROOT}/include/"
! ifort -warn all -o example3 $INC example3.f90 $LINK
module m_least_squares
@ivan-pi
ivan-pi / test_gttrf.f90
Last active January 26, 2019 17:22
Tridiagonal linear system of equations example using gttrf from LAPACK (Intel MKL)
! LINK="${MKLROOT}/lib/intel64/libmkl_lapack95_lp64.a -Wl,--start-group ${MKLROOT}/lib/intel64/libmkl_intel_lp64.a ${MKLROOT}/lib/intel64/libmkl_sequential.a ${MKLROOT}/lib/intel64/libmkl_core.a -Wl,--end-group -lpthread -lm -ldl"
! INC="-I${MKLROOT}/include/intel64/lp64/ -I${MKLROOT}/include/"
! ifort -warn all -o test_gttrf $INC test_gttrf.f90 $LINK
! ./test_gttrf > test_gttrf.out
! gnuplot
! gnuplot> Th = 1
! gnuplot> plot "test_gttrf.out" u 1:2 w p pt 7, cosh((1-x)*Th)/cosh(Th)
module rd_setup
@ivan-pi
ivan-pi / high_order_poisson_solver.f90
Created February 11, 2019 16:09
Mehrstellenverfahren for the Poisson equation
! See link below for details:
! https://scicomp.stackexchange.com/questions/6854/mehrstellenverfahren-for-poisson
!
program poisson_higher_order
implicit none
integer, parameter :: wp = kind(1.0d0)
real(wp), parameter :: pi = 4._wp*atan(0._wp)
@ivan-pi
ivan-pi / wort_cooling.py
Created February 17, 2019 18:54
Some simple calculations of wort cooling with an internal coil
import numpy as np
import matplotlib.pyplot as plt
from scipy.integrate import solve_ivp
# LMTD case
def f(t,y,params):
p2, p3, Tin = params
@ivan-pi
ivan-pi / gist:5554aed5157c7c84c8ec04aef612977d
Created September 8, 2019 13:26
Biperiodic weight matrix example
def biperiodic_weight_matrix(bbox,x, p, n, diffs,
coeffs=None,
phi=phs3,
order=None,
eps=1.0,
stencils=None):
'''
Returns a weight matrix which maps a functions values at `p` to an
approximation of that functions derivative at `x`. This is a convenience
function which first creates stencils and then computes the RBF-FD weights
subroutine C_F_STRPOINTER (STRARRAY, FSTRPTR, MAXLEN)
use, intrinsic :: ISO_C_BINDING
implicit none
character, dimension(*), target, intent(in) :: STRARRAY
character(:), pointer, intent(out) :: FSTRPTR
integer, intent(in), optional :: MAXLEN
integer :: curlen
curlen = 0
@ivan-pi
ivan-pi / continued_fractions.py
Created June 26, 2020 12:23
Basic functions for working with continued fractions. These are handy for approximating irrational numbers as ratios of integer. A Fortran solution is available at https://fortran-lang.discourse.group/t/implmentation-of-contnued-fraction/124/2
import math
from fractions import Fraction
def continued_fraction(r,steps=10):
cf = []
for step in range(steps):
i = math.floor(r)
cf.append(i)
@ivan-pi
ivan-pi / cbrt_1.f90
Created June 28, 2020 12:07
Cube root code example 1
module cbrt_mod1
implicit none
private
public :: cbrt, sp, r
interface cbrt
module procedure cbrt_sp_sp
module procedure cbrt_csp_csp
@ivan-pi
ivan-pi / cbrt_2.f90
Created June 28, 2020 12:09
Cube root code example 2
module cbrt_mod2
implicit none
private
public :: cbrt, sp
interface cbrt
module procedure cbrt_sp_sp
module procedure cbrt_sp_csp