<commit_before>#include "sift.hpp" 


/**
 * @brief Downsamples an image by a factor of 2
 * @details Skips odd rows/columns
 * 
 * @param image input to downsaple
 * @return downsampled image
 */
cv::Mat sift::downSample(Mat &image) {
    Mat out(image.rows/2, image.cols /2, IMAGE_DATA_TYPE);

    for (int row = 0; row < image.rows; row+=2 ) {
        if (row % 2 == 0) {
            for (int column = 0; column < image.cols; column+=2) {
                if (column % 2 == 0)
                    out.at<sift::image_t>(row/2, column/2) = image.at<sift::image_t>(row, column);
            }
        }
    }
<commit_msg>Fixes minor issue with sift::downSample<commit_after>#include "sift.hpp" 


/**
 * @brief Downsamples an image by a factor of 2
 * @details Skips odd rows/columns
 * 
 * @param image input to downsaple
 * @return downsampled image
 */
cv::Mat sift::downSample(Mat &image) {
    Mat out(image.rows/2, image.cols /2, IMAGE_DATA_TYPE);

    for (int row = 0; row < out.rows; row++ ) {
            for (int column = 0; column < out.cols; column++) {
                    out.at<sift::image_t>(row, column) = image.at<sift::image_t>(row * 2,
                            column * 2);
            }
    }

{'fraction_non_alphanumeric': 0.14461791290057519, 'fraction_numerical': 0.016433853738701727, 'mean_word_length': 2.230769230769231, 'pattern_counts': {'":': 0, '<': 11, '<?xml version=': 0, '>': 7, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '5344342', 'n_tokens_mistral': 431, 'n_tokens_neox': 405, 'n_words': 112}