// File: rms_norm.h
#pragma once
#include <cstdint>

// Harness contract for the llama.cpp (ggml) rms_norm baseline.
// Called by armbench_entry_rms_norm (binding.cpp); implemented by kernel.cpp.
// x is row-major fp32 [M, D], weight is fp32 [D], out is row-major fp32 [M, D]:
//     out[m] = x[m] / sqrt(mean(x[m]^2) + eps) * weight
int armbench_llamacpp_rms_norm(const void* x, const void* weight, float* out,
                               int64_t M, int64_t D, float eps);