I'm not sure what you're talking about but the GEOS implimentation is pretty straight forward, int GEOS_DLL GEOSHausdorffDistance( const GEOSGeometry *g1, const GEOSGeometry *g2, double *dist ); That is to say, it takes geometry's and returns a double. There are no extra arguments. There are no methods of telling it "asymmetric" or "symmetric" or "one-sided". So fullstop, if you're using GEOS you're using, [DiscreteHausdorffDistance.cpp](https://github.com/OSGeo/geos/blob/5a730fc50dab2610a9e6c037b521accc66b7777b/src/algorithm/distance/DiscreteHausdorffDistance.cpp) You can see the implementation here, * [DiscreteHausdorffDistance.h](https://github.com/OSGeo/geos/blob/5a730fc50dab2610a9e6c037b521accc66b7777b/include/geos/algorithm/distance/DiscreteHausdorffDistance.h#L59) * [DiscreteHausdorffDistance.cpp](https://github.com/OSGeo/geos/blob/5a730fc50dab2610a9e6c037b521accc66b7777b/src/algorithm/distance/DiscreteHausdorffDistance.cpp)