All Projects → jacobwilliams → Finterp

jacobwilliams / Finterp

Licence: other
Multidimensional Linear Interpolation with Modern Fortran

Programming Languages

fortran
972 projects

Projects that are alternatives of or similar to Finterp

Interpolations.jl
Fast, continuous interpolation of discrete datasets in Julia
Stars: ✭ 257 (+703.13%)
Mutual labels:  interpolation
Pykrige
Kriging Toolkit for Python
Stars: ✭ 415 (+1196.88%)
Mutual labels:  interpolation
React Move
React Move | Beautiful, data-driven animations for React
Stars: ✭ 6,395 (+19884.38%)
Mutual labels:  interpolation
Splinter
Library for multivariate function approximation with splines (B-spline, P-spline, and more) with interfaces to C++, C, Python and MATLAB
Stars: ✭ 295 (+821.88%)
Mutual labels:  interpolation
Motionmachine
A powerful, elegant, and modular animation library for Swift.
Stars: ✭ 380 (+1087.5%)
Mutual labels:  interpolation
Tweeny
A modern C++ tweening library
Stars: ✭ 485 (+1415.63%)
Mutual labels:  interpolation
NM
Numerical Methods (NM) for BE Electrical II Year / II Part, Email: [email protected]
Stars: ✭ 13 (-59.37%)
Mutual labels:  interpolation
Wenoof
WENO interpolation Object Oriented Fortran library
Stars: ✭ 27 (-15.62%)
Mutual labels:  interpolation
Gempy
GemPy is an open-source, Python-based 3-D structural geological modeling software, which allows the implicit (i.e. automatic) creation of complex geological models from interface and orientation data. It also offers support for stochastic modeling to adress parameter and model uncertainties.
Stars: ✭ 396 (+1137.5%)
Mutual labels:  interpolation
Frenchkiss.js
The blazing fast lightweight internationalization (i18n) module for javascript
Stars: ✭ 776 (+2325%)
Mutual labels:  interpolation
Toflow
TOFlow: Video Enhancement with Task-Oriented Flow
Stars: ✭ 314 (+881.25%)
Mutual labels:  interpolation
Pmtween
An elegant and flexible tweening library for iOS and tvOS.
Stars: ✭ 346 (+981.25%)
Mutual labels:  interpolation
Flightanimator
Advanced Natural Motion Animations, Simple Blocks Based Syntax
Stars: ✭ 588 (+1737.5%)
Mutual labels:  interpolation
Verde
Processing and interpolating spatial data with a twist of machine learning
Stars: ✭ 260 (+712.5%)
Mutual labels:  interpolation
Esmpy Tutorial
Basic tutorial for ESMPy Python package
Stars: ✭ 22 (-31.25%)
Mutual labels:  interpolation
pangeo-pyinterp
Python library for optimized interpolation.
Stars: ✭ 61 (+90.63%)
Mutual labels:  interpolation
Interweave
🌀 React library to safely render HTML, filter attributes, autowrap text with matchers, render emoji characters, and much more.
Stars: ✭ 467 (+1359.38%)
Mutual labels:  interpolation
Lninterpolation
An interpolation framework for Cocoa and Cocoa Touch.
Stars: ✭ 29 (-9.37%)
Mutual labels:  interpolation
Super Resolution cnn
Implementation of 'Image Super-Resolution using Deep Convolutional Network'
Stars: ✭ 27 (-15.62%)
Mutual labels:  interpolation
Smile
Statistical Machine Intelligence & Learning Engine
Stars: ✭ 5,412 (+16812.5%)
Mutual labels:  interpolation

finterp

Status

Build Status

Description

Can be used to perform multidimensional (1D-6D) linear interpolation of data on a regular grid. The code is written in modern Fortran (2003/2008) and is object-oriented and thread safe.

Usage

There are six classes (linear_interp_1d, linear_interp_2d, linear_interp_3d, linear_interp_4d, linear_interp_5d, and linear_interp_6d). Each has three methods: initialize, evaluate, and destroy.

real(wp) :: x(nx),y(ny),z(nz),q(nq),r(nr),s(ns)
real(wp) :: fcn_1d(nx)
real(wp) :: fcn_2d(nx,ny)
real(wp) :: fcn_3d(nx,ny,nz)
real(wp) :: fcn_4d(nx,ny,nz,nq)
real(wp) :: fcn_5d(nx,ny,nz,nq,nr)
real(wp) :: fcn_6d(nx,ny,nz,nq,nr,ns)
real(wp) :: xval,yval,zval,qval,rval,sval,fval
integer :: iflag

type(linear_interp_1d) :: s1
type(linear_interp_2d) :: s2
type(linear_interp_3d) :: s3
type(linear_interp_4d) :: s4
type(linear_interp_5d) :: s5
type(linear_interp_6d) :: s6

!populate the arrays
!...

!initialize the class:
call s1%initialize(x,fcn_1d,iflag)
call s2%initialize(x,y,fcn_2d,iflag)
call s3%initialize(x,y,z,fcn_3d,iflag)
call s4%initialize(x,y,z,q,fcn_4d,iflag)
call s5%initialize(x,y,z,q,r,fcn_5d,iflag)
call s6%initialize(x,y,z,q,r,s,fcn_6d,iflag)

!interpolate:
call s1%evaluate(xval,fval)
call s2%evaluate(xval,yval,fval)
call s3%evaluate(xval,yval,zval,fval)
call s4%evaluate(xval,yval,zval,qval,fval)
call s5%evaluate(xval,yval,zval,qval,rval,fval)
call s6%evaluate(xval,yval,zval,qval,rval,sval,fval)

!free memory:
call s1%destroy()
call s2%destroy()
call s3%destroy()
call s4%destroy()
call s5%destroy()
call s6%destroy()

Nearest Neighbor Interpolation

The library also includes classes for nearest neighbor interpolation (nearest_interp_1d, nearest_interp_2d, ...). The interfaces are the same as for the linear classes.

Documentation

The latest API documentation can be found here. This was generated from the source code using FORD (note that the included build.sh script will also generate these files).

License

The finterp source code and related files and documentation are distributed under a permissive free software license (BSD-style).

See also

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].