#include <stdint.h>
#include <math.h>
#include <stdio.h>

static const float at9_band_ext_scales_m3[][2] = {
    { 0.3491211, -0.29138185, }, { 0.5371094, -0.25415040, },
    { 0.6782227, -0.16644287, }, { 0.7910156, -0.14764405, },
    { 0.9057617, -0.13421631, }, { 1.024902,  -0.12207031, },
    { 1.156250,  -0.11175537, }, { 1.290527,  -0.10266113, },
    { 1.458984,  -0.09436035, }, { 1.664551,  -0.08483887, },
    { 1.929688,  -0.07476807, }, { 2.278320,  -0.06304932, },
    { 2.831543,  -0.04492188, }, { 3.659180,  -0.02447510, },
    { 5.257813,  +1.8310547e-4f, }, { 8.373047, +0.04174805, },
};

static __attribute__((always_inline)) inline void disable_denormals(void)
{
    unsigned int a = 0x9f80;
    __asm__ __volatile__ ("ldmxcsr %0" : "+m" (a));
}

int main(void)
{
    unsigned int i;

    disable_denormals();
    setvbuf(stdout, NULL, _IONBF, 0);

    for (i = 0; i < 16; i++) { 
        float scale = at9_band_ext_scales_m3[i][0];
        float rate  = at9_band_ext_scales_m3[i][1];
        rate = expf((float)M_LN2 * rate);
        printf("  { %.7f, %.7f },\n", scale, rate);
    }

    return 0;
}

