/**
 * This function finds the common points between two sets of floating-point numbers within a given epsilon value.
 *
 * @param points1 A set of floating-point numbers.
 * @param points2 Another set of floating-point numbers.
 * @param epsilon The threshold value to determine the floating-point error.
 * @return A set containing the common points within the 'epsilon" range.
 */
fun findCommonPoints(points1: Set<Double>, points2: Set<Double>, epsilon: Double): Set<Double> {

    val commonPoints = mutableSetOf<Double>()

    for (point1 in points1) {
        for (point2 in points2) {
            if (Math.abs(point1 - point2) <= epsilon) {
                commonPoints.add(point1)
            }
        }
    }

    return commonPoints
}
/**
 * This function finds the common points between two sets of floating-point numbers within a given epsilon value.
 *
 * @param points1 A set of floating-point numbers.
 * @param points2 Another set of floating-point numbers.
 * @param epsilon The threshold value to determine the floating-point error.
 * @return A set containing the common points within the 'epsilon" range.
 */
fun findCommonPoints(points1: Set<Double>, points2: Set<Double>, epsilon: Double): Set<Double> {
/**
 * This function finds the common points between two sets of floating-point numbers within a given epsilon value.
 *
 * @param points1 A set of floating-point numbers.
 * @param points2 Another set of floating-point numbers.
 * @param epsilon The threshold value to determine the floating-point error.
 * @return A set containing the common points within the 'epsilon" range.
 */
fun findCommonPoints(points1: Set<Double>, points2: Set<Double>, epsilon: Double): Set<Double> {

    val commonPoints = mutableSetOf<Double>()

    for (point1 in points1) {
        for (point2 in points2) {
            if (Math.abs(point1 - point2) <= epsilon) {
                commonPoints.add(point1)
            }
        }
    }

    return commonPoints
}