Giter Site home page Giter Site logo

leonmavr / interpolator Goto Github PK

View Code? Open in Web Editor NEW
0.0 1.0 0.0 4.8 MB

Numerical interpolator in C++ via linked lists. Simple to use and efficient. No 3rd parties needed.

License: MIT License

C++ 99.61% Makefile 0.22% Python 0.18%
cpp cpp17 interpolation numerical-methods linked-list

interpolator's Introduction

Interpolator

About

Numerical 1D interpolation in C++ via linked lists. It supports the following two basic operations:

void insert(double x, double y);
double interpolate(double x);

Both operations run in linear time. It currently implements the following two interpolation types:

  • Linear
  • Smoothstep
Original Linear Smoothstep
alt text alt text alt text

Compilation and execution instructions

To compile it, you only need a version of the g++ compiler that supports the C++17 and newer standards. No dependencies are needed. The project is built by a Makefile and unit tests are compiled with the Catch2 library. To compile it and run the driver code execute:

cd interpolator
make
./main

main by default outputs the interpolation results in a file called out.txt. You can plot them by running the scripts/plot.py script. The script needs the matplotlib package so make sure that's installed.

To build and run the unit tests execute:

make test

To clean everything but the Catch2 object file (since it's heavy and doesn't need to change often):

make quickclean

To clean everything:

make clean

Integration

Currently this is a header-only package. To integrate this interpolator in your project, simply copy the headers (include/*.hpp) in your headers directory and the sources (src/*.cpp) in your source directory.

interpolator's People

Contributors

leonmavr avatar 0xleo avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.