Skip to content
master
Go to file
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
 
 
 
 
src
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
run
 
 
 
 

README.md

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.

File an Issue

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).

Create a Pull Request

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
You can’t perform that action at this time.