#include #include #include #ifdef DEBUG #include #define _static #define _static_inline #define DBG_LOG(...) fprintf(stderr, __VA_ARGS__) #define DBG_WARN(condition, ...) if (!(condition)) DBG_LOG(__VA_ARGS__); #define DBG_ASSERT(condition, retval, ...) \ if (!(condition)) { DBG_LOG(__VA_ARGS__); return retval; } #else #define _static static #define _static_inline static inline #define DBG_LOG(...) #define DBG_WARN(condition, ...) #define DBG_ASSERT(condition, retval, ...) #endif #include "constants.h" #if defined(CUBE_AVX2) #include #include "cube_avx2.h" #elif defined(CUBE_NEON) #include "cube_neon.h" #else #include /* TODO: check if can be removed */ #include "cube_portable.h" #endif #include "constant_cubes.h" #include "cube_generic.h" /* TODO: work in progress */ #if 0 #include "constant_cubes_transform.h" #include "cube_transform.h" #else #include "cube_transform_with_switch.h" #endif #include "moves.h" #include "solve_h48.h" #include "solve_generic.h"