Example #1
0
    }

    for base_idx, nr_points_base in enumerate(bases):
        print("Base number of points: %d" % nr_points_base)
        points_1 = np.random.rand(3, nr_points_base)
        points_2 = np.random.rand(3, nr_points_base)

        results = {}

        for algorithm in functions:
            if limits[algorithm] >= nr_points_base:
                print("  %s" % algorithm)
                # warm up
                functions[algorithm](points_2, points_1)
                # actual measurements
                start = Timer.current_time_millis()
                dists_12 = functions[algorithm](points_1, points_2)
                timings[algorithm][base_idx] = max(1, Timer.current_time_millis() - start)
                # cooldown
                functions[algorithm](points_1, points_2)
                # store the results
                results[algorithm] = dists_12
            else:
                timings[algorithm][base_idx] = np.nan
        
        if len(results.keys()) > 1:
            for first_algorithm, second_algorithm in combinations(results.keys(), 2):
                first_result = results[first_algorithm]
                second_result = results[second_algorithm]
                diff_12 = (np.abs(first_result - second_result) / first_result).max()
                if diff_12 > 1e-5: