#define USE_AVX2 1
#define USE_SSE41 1
+#include "lib/defines.h"
#include "./kru.inc.c"
+KR_EXPORT
const struct kru_api KRU_AVX2 = KRU_API_INITIALIZER;
#ifdef __clang__
#else
#include "./kru.h"
+KR_EXPORT
const struct kru_api KRU_AVX2 = {NULL};
#endif
along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
+#include "lib/defines.h"
#include "./kru.inc.c"
+KR_EXPORT
const struct kru_api KRU_GENERIC = KRU_API_INITIALIZER;
+
+KR_EXPORT
struct kru_api KRU = KRU_API_INITIALIZER; // generic version is the default
uint8_t (*limited_multi_prefix_or)(struct kru *kru, uint32_t time_now,
uint8_t namespace, uint8_t key[static 16], uint8_t *prefixes, kru_price_t *prices, size_t queries_cnt, uint16_t *max_load_out);
};
+
// The functions are stored this way to make it easier to switch
// implementation based on detected CPU.
extern struct kru_api KRU;