Как инициализировать const float32x4x4_t (встроенный ARM NEON, GCC)? - PullRequest
8 голосов
/ 01 мая 2010

Я могу инициализировать float32x4_t следующим образом:

const float32x4x4_t zero = { 0.0f, 0.0f, 0.0f, 0.0f };

Но этот код делает ошибку Несовместимые типы в инициализаторе :

const float32x4x4_t one =
{
    1.0f, 1.0f, 1.0f, 1.0f,
    1.0f, 1.0f, 1.0f, 1.0f,
    1.0f, 1.0f, 1.0f, 1.0f,
    1.0f, 1.0f, 1.0f, 1.0f,
};

float32x4x4_t - матрица 4x4, построенная как:

typedef struct float32x4x4_t
{
    float32x4_t val[4];
}
float32x4x4_t;

Как я могу инициализировать эту const структуру?

1 Ответ

10 голосов
/ 01 мая 2010
const float32x4x4_t nameOfVariableHere =
{{
    {1.0f, 1.0f, 1.0f, 1.0f},
    {1.0f, 1.0f, 1.0f, 1.0f},
    {1.0f, 1.0f, 1.0f, 1.0f},
    {1.0f, 1.0f, 1.0f, 1.0f}
}};

1-й уровень скобок предназначен для структуры.
2-й уровень для массива float32x4_t.
3-й уровень предназначен для самого float32x4_t.

...