<commit_before>#include <stddef.h>
#include <stdio.h>
#include <stdlib.h>

typedef void ( * fizzbuzz_handler )( unsigned long int const i );

static void handle_fizz( unsigned long int const i )
{
    ( void ) i;
    ( void ) puts( "fizz" );
}

static void handle_buzz( unsigned long int const i )
{
    ( void ) i;
    ( void ) puts( "buzz" );
}

static void handle_fizzbuzz( unsigned long int const i )
{
    ( void ) i;
    ( void ) puts( "fizzbuzz" );
}

static void handle_number( unsigned long int const i )
{
    ( void ) printf( "%lu\n", i );
}

static fizzbuzz_handler const actions[ 15 ] =
{
    handle_number,
    handle_number,
    handle_fizz,
    handle_number,
    handle_buzz,
    handle_fizz,
    handle_number,
    handle_number,
    handle_fizz,
    handle_buzz,
    handle_number,
    handle_fizz,
    handle_number,
    handle_number,
    handle_fizzbuzz
};

static unsigned long int div15_exit(
    unsigned long int const i,
    unsigned long int const result
)
{
    ( void ) i;
    return result - 1;
}

static unsigned long int div15_loop(
    unsigned long int const i,
    unsigned long int const result
)
{
    typedef unsigned long int (* div_loop_func)(
        unsigned long int const i,
        unsigned long int const result
    );

    static div_loop_func const divider[ 2 ] =
    {
        div15_exit,
        div15_loop
    };

    return divider[ i >= 15 ]( i - 15, result + 1 );
}

static unsigned long int div15( unsigned long int const i )
{

    return div15_loop( i, 0 );
}

static unsigned long int mod15( unsigned long int const i )
{
    unsigned long int const division = div15( i );
    return i - (( division << 4 ) - division );
}

static void fizzbuzz( unsigned long int const i )
{
    ( actions[ mod15( i - 1 ) ] )( i );
}

static void usage( unsigned long int * const i )
{
    ( void ) i;
    ( void ) puts( "Usage: fizzbuzz <inclusive limit>" );
    exit( EXIT_FAILURE );
}

static void noop( unsigned long int * const i )
{
    ( void ) i;<commit_msg>minimized scope for fizzbuzz handlers<commit_after>#include <stddef.h>
#include <stdio.h>
#include <stdlib.h>

static void handle_fizz( unsigned long int const i )
{
    ( void ) i;
    ( void ) puts( "fizz" );
}

static void handle_buzz( unsigned long int const i )
{
    ( void ) i;
    ( void ) puts( "buzz" );
}

static void handle_fizzbuzz( unsigned long int const i )
{
    ( void ) i;
    ( void ) puts( "fizzbuzz" );
}

static void handle_number( unsigned long int const i )
{
    ( void ) printf( "%lu\n", i );
}

static unsigned long int div15_exit(
    unsigned long int const i,
    unsigned long int const result
)
{
    ( void ) i;
    return result - 1;
}

static unsigned long int div15_loop(
    unsigned long int const i,
    unsigned long int const result
)
{
    typedef unsigned long int (* div_loop_func)(
        unsigned long int const i,
        unsigned long int const result
    );

    static div_loop_func const divider[ 2 ] =
    {
        div15_exit,
        div15_loop
    };

    return divider[ i >= 15 ]( i - 15, result + 1 );
}

static unsigned long int div15( unsigned long int const i )
{

    return div15_loop( i, 0 );
}

static unsigned long int mod15( unsigned long int const i )
{
    unsigned long int const division = div15( i );
    return i - (( division << 4 ) - division );
}

static void fizzbuzz( unsigned long int const i )
{
    typedef void ( * fizzbuzz_handler )( unsigned long int const i );

    static fizzbuzz_handler const actions[ 15 ] =
    {
        handle_number,
        handle_number,
        handle_fizz,
        handle_number,
        handle_buzz,
        handle_fizz,
        handle_number,
        handle_number,
        handle_fizz,
        handle_buzz,
        handle_number,
        handle_fizz,
        handle_number,
        handle_number,
        handle_fizzbuzz
    };

    ( actions[ mod15( i - 1 ) ] )( i );
}

static void usage( unsigned long int * const i )
{
    ( void ) i;
    ( void ) puts( "Usage: fizzbuzz <inclusive limit>" );
    exit( EXIT_FAILURE );
}

static void noop( unsigned long int * const i )
{
    ( void ) i;
{'fraction_non_alphanumeric': 0.09859154929577464, 'fraction_numerical': 0.014570179698882952, 'mean_word_length': 2.4995751911639763, 'pattern_counts': {'":': 0, '<': 15, '<?xml version=': 0, '>': 13, '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': '1403413', 'n_tokens_mistral': 1407, 'n_tokens_neox': 1348, 'n_words': 457}