Coder Social home page Coder Social logo

df's Introduction

Discrete Fréchet Distance

This is a header-only implementation of the dynamic programming algorithm by Eiter and Mannila (1994) to compute the discrete Fréchet distance. Requires at least C++11.

Usage

Place the header src/discrete_frechet.h at a convenient place. The function to compute the Fréchet distance takes as input two trajectories, defined by a pair of (forward) iterators each, plus a distance function.

Example (see also src/test.cpp):

#include "discrete_frechet.h"

using point_t = std::pair<double, double>;
std::vector<point_t> trajectory_p = {{0,0}, {1,0}, {2,0}, {3,0}};
std::vector<point_t> trajectory_q = {{0,1}, {1,1}, {2,1}, {3,1}, {4,0}};
auto frechet = df::compute_discrete_frechet<squared_euclid>(trajectory_p.begin(), trajectory_p.end(),
                                                            trajectory_q.begin(), trajectory_q.end(),
                                                            [](const point_t &a, const point_t &b) {
                                                                return (a.first - b.first)*(a.first - b.first) +
                                                                    (a.second - b.second)*(a.second - b.second);
                                                            });  

df's People

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.