#pragma once
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <assert.h>
#define LOG(fmt, ...) fprintf(stderr, fmt "\n", ##__VA_ARGS__)
#define MARK() LOG("%s:%d", __FILE__, __LINE__)
#define MIN(a, b) (((a)<(b))?(a):(b))
#define MAX(a, b) (((a)>(b))?(a):(b))
#define ABSDIFF(a, b) (((a)>(b))?((a)-(b)):((b)-(a)))
typedef struct {
unsigned mosaic_dim; // px
unsigned mosaic_dim_half; // px, mosaic_dim/2
unsigned tint; // %
unsigned full_tint; // %
enum { DIST_AVG=0, DIST_EUCLID=1, DIST_LAB=2 } dist_func;
} config_t;
extern const config_t& config;
int parse_args(int, const char**);