Code Monkey home page Code Monkey logo

polatory's Introduction

Polatory

Travis CI AppVeyor Read the Docs

Polatory is a fast and memory-efficient framework for RBF (radial basis function) interpolation, developed by GSI Co., Ltd.

NOTE: This is a pre-release version. APIs subject to change without notice.

Features | License | Building | Contribution | Module Index | Acknowledgements

Features

  • Fast spline surface reconstruction from 2.5D/3D point cloud
  • Fast interpolation of 1D/2D/3D scattered data (kriging prediction)
  • Meshing isosurfaces
  • Supports large number (millions) of input points
  • Supports inequality constraints
  • List of available RBFs

Platforms

Polatory runs on x86-64 processors and continuously tested on the following platforms.

OS Toolchain
Ubuntu 18.04 LTS GCC 7.4 and Clang 6.0
Windows Visual Studio 2019

Kriging via RBF Interpolation (Benchmark)

Polatory can perform kriging prediction via RBF interpolation (dual kriging). Although different terminologies are used, both methods produce the same results. Here is the correspondence between them:

Kriging RBF interpolation
Prediction Interpolation (fitting + evaluation)
Covariance function RBF, positive definite
Generalized covariance function of order k RBF, conditionally positive definite of order k + 1
Nugget effect model Spline smoothing
Simple kriging Interpolant with no polynomial
Ordinary kriging Interpolant with polynomial of degree 0
Universal kriging Interpolant with polynomial of degree >= 1
Weights (Not computed) Cardinal basis functions
Kriging variance (Not computed)

A limited number of covariance functions are supported. See the list of available RBFs for details.

License

Polatory is available under two different licenses:

Building

On Ubuntu

  1. Install build tools

    sudo apt install build-essential cmake curl git ninja-build unzip

    If you use Clang, libomp-dev is required.

    sudo apt install clang libomp-dev
  2. Download and install Intel(R) MKL.

    See https://software.intel.com/articles/installing-intel-free-libs-and-python-apt-repo for details.

    wget https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS-2019.PUB -O - | sudo apt-key add -
    sudo sh -c 'echo deb https://apt.repos.intel.com/mkl all main > /etc/apt/sources.list.d/intel-mkl.list'
    sudo apt update
    sudo apt install intel-mkl-64bit-2019.5-075
  3. Clone Polatory

    git clone --recursive https://github.com/polatory/polatory.git
    cd polatory

    To update an existing repository:

    git submodule sync
    git submodule update --init --recursive
  4. Build polatory

    ./run init-vcpkg
    ./run cmake
    ./run build

On Windows

  1. Install Visual Studio Community 2019

    https://www.visualstudio.com/

    Under the Workloads tab, select the following item.

    • Desktop development with C++

    Under the Individual components tab, select the following item.

    • Code tools > Git for Windows
  2. Download and install Intel(R) MKL

  3. Clone Polatory

    git clone --recursive https://github.com/polatory/polatory.git
    cd polatory

    To update an existing repository:

    git submodule sync
    git submodule update --init --recursive
  4. Build polatory

    .\run init-vcpkg
    .\run cmake
    .\run build

Contribution

We welcome your contributions! You can contribute to this project in several ways:

Add a Star

You can just click the ★Star button to show your interest.

Feel free to file an issue, if you have any questions, feature requests, or if you have found any unexpected results (please include a minimal reproducible example).

You can fork the source tree and make some improvements to it. Then feel free to create a PR. When sending a PR for the first time, please review and sign the Individual Contributor License Agreement.

Module Index

Module Description
common Common utility functions and classes.
fmm Fast multipole methods (wrapper of ScalFMM).
geometry Geometric utilities.
interpolation RBF fitting and evaluation.
isosurface Isosurface generation.
kriging Parameter estimation and validation for kriging.
krylov Krylov subspace methods.
numeric Numerical utilities.
point_cloud SDF data generation from point clouds.
polynomial Polynomial part of RBF interpolant.
preconditioner The preconditioner used with Krylov subspace methods.
rbf Definition of RBFs/covariance functions.

Acknowledgements

Polatory is built upon the following libraries. Each library may have other dependencies.

Abseil
Apache License 2.0
Boost
Boost Software License 1.0
Ceres Solver
BSD 3-Clause License
double-conversion
BSD 3-Clause License
Eigen
Mozilla Public License 2.0
FLANN
BSD 2-Clause License
Google Test
BSD 3-Clause License
gsl-lite
MIT License
Intel(R) MKL
Intel Simplified Software License
ScalFMM
CeCILL-C License 1.0

polatory's People

Contributors

unageek avatar

Watchers

James Cloos 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.