#include <Halide.h>
#include <stdio.h>

using namespace Halide;

int main(int argc, char **argv) {
    Func f;
    Var x;

    ImageParam input(Float(32), 1);

    f(x) = input(cast<int>(round(0.3f * ceil(0.4f * floor(x * 22.5f)))));

    f.infer_input_bounds(10);

    Image<float> in = input.get();

    int correct = roundf(0.3f * ceilf(0.4f * floorf(9 * 22.5f))) + 1;
    if (in.width() != correct) {
        printf("Width is %d instead of %d\n", in.width(), correct);
        return -1;
    }

    printf("Success!\n");
    return 0;
}

#include <Halide.h>
#include <stdio.h>

using namespace Halide;

int main(int argc, char **argv) {
    Func f;
    Var x;

    ImageParam input(Float(32), 1);

    f(x) = input(cast<int>(ceil(0.3f * ceil(0.4f * floor(x * 22.5f)))));

    f.infer_input_bounds(10);

    Image<float> in = input.get();

    int correct = 26;
    if (in.width() != correct) {
        printf("Width is %d instead of %d\n", in.width(), correct);
        return -1;
    }

    printf("Success!\n");
    return 0;
}

Remove roundf from test because windows
Remove roundf from test because windows
