#pragma once

#include <vector>

#include <Indoor/geo/Point2.h>
#include <Indoor/geo/Point3.h>

namespace Trilateration
{
    Point2 peusodInverse2d(const std::vector<Point2>& positions, const std::vector<float>& distances);
    Point3 pseudoInverse3d(const std::vector<Point3>& positions, const std::vector<float>& distances);

    Point2 levenbergMarquardt(const std::vector<Point2>& positions, const std::vector<float>& distances);
};
