aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/actions.c67
-rw-r--r--include/actions.h22
-rw-r--r--include/lcdlib.c4
-rw-r--r--include/lcdlib.h4
-rw-r--r--include/negamax.c67
-rw-r--r--include/negamax.h13
-rw-r--r--include/nn.c124
-rw-r--r--include/nn.h83
-rw-r--r--include/nn_input.c54
-rw-r--r--include/tak.c4
-rw-r--r--include/tak.h4
-rw-r--r--include/tt.c60
-rw-r--r--include/tt.h (renamed from include/tt_llcht.h)19
-rw-r--r--include/tt_llcht.c96
-rw-r--r--include/weights_5.c1014
-rw-r--r--include/weights_5.h22
-rw-r--r--include/weights_6.c1270
-rw-r--r--include/weights_6.h18
-rw-r--r--include/xorshift64.c4
-rw-r--r--include/xorshift64.h14
-rw-r--r--include/zobrist.c15
-rw-r--r--include/zobrist.h4
22 files changed, 1008 insertions, 1974 deletions
diff --git a/include/actions.c b/include/actions.c
index 547024a..9b2ae0d 100644
--- a/include/actions.c
+++ b/include/actions.c
@@ -1,5 +1,5 @@
/*
- This file is part of ct.
+ This file is part of ctak.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -12,16 +12,22 @@
General Public License for more details.
You should have received a copy of the GNU General Public License
- along with ct. If not, see <https://www.gnu.org/licenses/>.
+ along with ctak. If not, see <https://www.gnu.org/licenses/>.
*/
#include "actions.h"
#include "tak.h"
#include <stdio.h>
+#include <stdlib.h>
static uint8_t al_board_size;
-static uint32_t upper_bound_moves;
+
+// Scratch move lists, one per recursion level. AL_MAX_ACTIONS is
+// sized above the worst case for a 6x6 board (3269 moves).
+#define AL_MAX_LEVELS 8
+#define AL_MAX_ACTIONS 4096
+static action_t al_scratch[AL_MAX_LEVELS][AL_MAX_ACTIONS];
// ===================================================================
// Helper method declarations
@@ -44,8 +50,6 @@ static inline uint8_t check_no_overflow(tak_state_p state, const uint8_t loc,
// Exported method implementations
// ===================================================================
-inline void actions_free(action_t *actions) { free(actions); }
-
// Keep track of move offsets
int8_t move_deltas[4];
@@ -55,27 +59,6 @@ void actions_init(const uint8_t board_size) {
move_deltas[1] = -board_size;
move_deltas[2] = -1;
move_deltas[3] = +1;
-
- const uint32_t five_cumulative_partitions = 7 + 5 + 3 + 2 + 1; // 18
- const uint32_t six_cumulative_partitions =
- 11 + five_cumulative_partitions; // 29
- if (board_size == 5) {
- // 26 = 3*3 + 4*3 + 1
-
- // which means central squares (4 dirs), sides (3 dirs), one corner (2 dirs)
- upper_bound_moves = 4 * 3 * 3 + 3 * 4 * 3 + 2 * 1;
- upper_bound_moves *= five_cumulative_partitions;
- } else {
- // 31 = 4*4 + 3*4 + 3
-
- // which means central squares (4 dirs), three sides (3 dirs) and an extra
- // three squares on the last side (1 dir)
- upper_bound_moves = 4 * 4 * 4 + 3 * 3 * 4 + 3 * 3;
- upper_bound_moves *= six_cumulative_partitions;
- }
- // In summary, using typedef uint32_t action_t
- // 74 * 18 = 1332 for 5x5, ~5.2 Kb
- // 109 * 29 = 3161 for 6x6, ~12.3 Kb
}
inline char action_in_list(action_t action, action_t *actions, const uint32_t num_actions) {
@@ -84,22 +67,31 @@ inline char action_in_list(action_t action, action_t *actions, const uint32_t nu
return idx < num_actions;
}
-void action_move_to_front(action_t action, action_t *actions,
- const uint32_t num_actions) {
- (void) num_actions; // yolo
+int action_move_to_front(action_t action, action_t *actions,
+ const uint32_t num_actions) {
uint32_t idx;
action_t prev = action, temp;
- for (idx = 0; actions[idx] != action; idx++) {
- temp = actions[idx];
- actions[idx] = prev;
+ for (idx = 0; idx < num_actions && actions[idx] != action; idx++)
+ ;
+ if (idx == num_actions)
+ return EXIT_FAILURE; // action not in list; nothing to do
+ for (uint32_t j = 0; j < idx; j++) {
+ temp = actions[j];
+ actions[j] = prev;
prev = temp;
}
actions[idx] = prev;
+ return EXIT_SUCCESS;
+}
+
+action_t *actions_generate(tak_state_p state, uint32_t *num_actions) {
+ return actions_generate_at(state, num_actions, 0);
}
// We bias place over move by prepending place actions and appending
// move actions to the generated list
-action_t *actions_generate(tak_state_p state, uint32_t *num_actions) {
+action_t *actions_generate_at(tak_state_p state, uint32_t *num_actions,
+ const uint32_t level) {
/*
* The check for whether it's a black piece to be played is actually
* black = (ply < 2) ? (ply==1) : (ply & 1),
@@ -124,9 +116,12 @@ action_t *actions_generate(tak_state_p state, uint32_t *num_actions) {
}
}
- // TODO: trap errno
- action_t *actions =
- malloc(sizeof(action_t) * (placements + upper_bound_moves));
+ if (level >= AL_MAX_LEVELS) {
+ fprintf(stderr, "actions_generate_at: level %u exceeds AL_MAX_LEVELS\n",
+ level);
+ abort();
+ }
+ action_t *actions = al_scratch[level];
uint32_t total = 0, move_idx = placements, place_idx = placements;
// Step across the board
diff --git a/include/actions.h b/include/actions.h
index 0127119..913a8cb 100644
--- a/include/actions.h
+++ b/include/actions.h
@@ -1,5 +1,5 @@
/*
- This file is part of ct.
+ This file is part of ctak.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -12,7 +12,7 @@
General Public License for more details.
You should have received a copy of the GNU General Public License
- along with ct. If not, see <https://www.gnu.org/licenses/>.
+ along with ctak. If not, see <https://www.gnu.org/licenses/>.
*/
#ifndef ACTIONS_H
@@ -55,13 +55,25 @@ extern int8_t move_deltas[4];
// ===================================================================
void actions_init(const uint8_t board_size);
-void actions_free(action_t *actions);
+
+/*
+ * Generate the legal actions. The move list is drawn from a static
+ * per-search-level scratch buffer: one buffer per recursion level,
+ * so nested generate calls at different levels do not clobber each
+ * other. `level' is the recursion depth within the current search
+ * (0 at the root). The returned pointer is valid until the next
+ * generate call at the same level.
+ */
+action_t *actions_generate_at(tak_state_p state, uint32_t *num_actions,
+ const uint32_t level);
action_t *actions_generate(tak_state_p state, uint32_t *num_actions);
char action_in_list(action_t action, action_t *actions,
const uint32_t num_actions);
-void action_move_to_front(action_t action, action_t *actions,
- const uint32_t num_actions);
+// Move `action' to the front of the list. Returns EXIT_FAILURE (and
+// leaves the list untouched) if the action is not in the list.
+int action_move_to_front(action_t action, action_t *actions,
+ const uint32_t num_actions);
void action_take(tak_state_p state, const action_t action);
void action_undo(tak_state_p state, const action_t action);
diff --git a/include/lcdlib.c b/include/lcdlib.c
index beced28..b85af98 100644
--- a/include/lcdlib.c
+++ b/include/lcdlib.c
@@ -1,5 +1,5 @@
/*
- This file is part of ct.
+ This file is part of ctak.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -12,7 +12,7 @@
General Public License for more details.
You should have received a copy of the GNU General Public License
- along with ct. If not, see <https://www.gnu.org/licenses/>.
+ along with ctak. If not, see <https://www.gnu.org/licenses/>.
*/
#include "lcdlib.h"
diff --git a/include/lcdlib.h b/include/lcdlib.h
index d8225c2..c824cf4 100644
--- a/include/lcdlib.h
+++ b/include/lcdlib.h
@@ -1,5 +1,5 @@
/*
- This file is part of ct.
+ This file is part of ctak.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -12,7 +12,7 @@
General Public License for more details.
You should have received a copy of the GNU General Public License
- along with ct. If not, see <https://www.gnu.org/licenses/>.
+ along with ctak. If not, see <https://www.gnu.org/licenses/>.
*/
#include <stdarg.h>
diff --git a/include/negamax.c b/include/negamax.c
index 995caa6..7b4acc1 100644
--- a/include/negamax.c
+++ b/include/negamax.c
@@ -1,5 +1,5 @@
/*
- This file is part of ct.
+ This file is part of ctak.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -12,7 +12,7 @@
General Public License for more details.
You should have received a copy of the GNU General Public License
- along with ct. If not, see <https://www.gnu.org/licenses/>.
+ along with ctak. If not, see <https://www.gnu.org/licenses/>.
*/
#include "negamax.h"
@@ -29,6 +29,26 @@ static uint64_t negamax_best_action;
static nn_function evaluate;
// ===================================================================
+// check_win memoisation
+// ===================================================================
+
+#define WON_CACHE_SIZE 8192
+
+static uint64_t won_cache_key[WON_CACHE_SIZE];
+static uint8_t won_cache_val[WON_CACHE_SIZE];
+
+static inline enum WIN_TYPE check_win_cached(tak_state_p state,
+ const uint64_t hash) {
+ const uint32_t idx = hash & (WON_CACHE_SIZE - 1);
+ if (won_cache_key[idx] == hash)
+ return (enum WIN_TYPE)won_cache_val[idx];
+ const enum WIN_TYPE w = check_win(state);
+ won_cache_key[idx] = hash;
+ won_cache_val[idx] = (uint8_t)w;
+ return w;
+}
+
+// ===================================================================
// Helper declarations
// ===================================================================
@@ -46,28 +66,37 @@ void negamax_init(const uint8_t new_board_size) {
tt_init();
if (new_board_size == 5) {
- evaluate = &nn1986_evaluate_black_win;
+ evaluate = &five_nn_fn;
} else {
- evaluate = &nn2690_evaluate_black_win;
+ evaluate = &six_nn_fn;
}
}
+void negamax_set_evaluator(const nn_function f) { evaluate = f; }
+
void negamax_free(void) { zobrist_free(); }
float negamax_generate(tak_state_p state) {
- // We need to start with something outside of [-∞,∞] because those
- // values are wins
+ // We need to start with something outside of [-∞,∞] because those values are
+ // wins
const float safe_infty = infty + 1;
float result = -infty;
negamax_best_action = -1;
- tt_init();
+ // The transposition table is deliberately NOT cleared here: entries persist
+ // across plies. This is sound because the table is keyed on (board, side to
+ // move) and an entry is only reusable at a depth no greater than the one it
+ // was stored at. In particular the new root (the previous root's child,
+ // stored at depth D-1) can never be reused at depth D, so every turn still
+ // runs a full fresh search at the root.
+
+ // this is constant across iterative deepening
+ const uint64_t root_hash = zobrist_compute(state);
for (int d = 1; d <= negamax_search_depth; d++) {
result = negamax(state, d, d, -safe_infty, safe_infty,
- (state->ply & 1) ? +1.0 : -1.0, zobrist_compute(state));
+ (state->ply & 1) ? +1.0 : -1.0, root_hash);
}
- tt_free();
action_to_ptn(negamax_best_action, negamax_ptn);
@@ -75,9 +104,7 @@ float negamax_generate(tak_state_p state) {
}
// ===================================================================
-// α-β negamax with iterative deepening, using the nn1986 evaluation
-// function and transposition tables using Zobrist hasing and a
-// chaining hash table
+// α-β negamax with iterative deepening.
// ===================================================================
static enum TT_FLAG flag;
@@ -103,7 +130,9 @@ static float negamax(tak_state_p state, const uint8_t cur_depth,
action_t *actions;
uint32_t num_actions;
- if ((actions = actions_generate(state, &num_actions)) == NULL)
+ // the scratch buffer is per-level so that recursion does not clobber
+ const uint32_t level = init_depth - cur_depth;
+ if ((actions = actions_generate_at(state, &num_actions, level)) == NULL)
return alpha; // should never happen!
// How did we land up with impossible actions for this hash?
@@ -111,6 +140,11 @@ static float negamax(tak_state_p state, const uint8_t cur_depth,
action_move_to_front(entry->action, actions, num_actions);
}
+ // negamax_best_action may not be in this position's move list: if the root
+ // search early-returned from the transposition table (the table persists
+ // across plies), it still holds the *previous* ply's best action, which is a
+ // different side's move. action_move_to_front is a no-op for absent actions,
+ // so this is safe either way.
if (init_depth > 1 && cur_depth == init_depth) {
action_move_to_front(negamax_best_action, actions, num_actions);
}
@@ -125,10 +159,12 @@ static float negamax(tak_state_p state, const uint8_t cur_depth,
action_take(state, actions[idx]);
+ const uint64_t child_hash = zobrist_compute(state);
+
// Compute the value of the node
float node_value;
if (state->ply >= 2 * state->board_size - 2 &&
- (w = check_win(state)) < 0xFF) {
+ (w = check_win_cached(state, child_hash)) < 0xFF) {
node_value = -colour * infty;
// Check win if far enough into the game
if (w == WIN_ROAD_BLACK || w == WIN_FLAT_BLACK) {
@@ -139,7 +175,7 @@ static float negamax(tak_state_p state, const uint8_t cur_depth,
} else if (cur_depth > 1) {
// If nobody won, or too early and not leaf, recurse
node_value = -negamax(state, cur_depth - 1, init_depth, -beta, -alpha,
- -colour, zobrist_compute(state));
+ -colour, child_hash);
} else {
node_value = colour * evaluate(state);
}
@@ -156,7 +192,6 @@ static float negamax(tak_state_p state, const uint8_t cur_depth,
break;
}
- actions_free(actions);
if (cur_depth == init_depth)
negamax_best_action = best_action;
diff --git a/include/negamax.h b/include/negamax.h
index e31cc32..78ed448 100644
--- a/include/negamax.h
+++ b/include/negamax.h
@@ -1,5 +1,5 @@
/*
- This file is part of ct.
+ This file is part of ctak.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -12,7 +12,7 @@
General Public License for more details.
You should have received a copy of the GNU General Public License
- along with ct. If not, see <https://www.gnu.org/licenses/>.
+ along with ctak. If not, see <https://www.gnu.org/licenses/>.
*/
#include <math.h>
@@ -21,7 +21,7 @@
#include <actions.h>
#include <nn.h>
#include <tak.h>
-#include <tt_llcht.h>
+#include <tt.h>
#include <zobrist.h>
// ===================================================================
@@ -42,6 +42,13 @@ extern void negamax_display_progress(const uint8_t cur_depth,
void negamax_init(const uint8_t new_board_size);
+/*
+ * Override the leaf evaluation function (negamax_init picks one by
+ * board size).
+ */
+typedef float (*nn_function)(tak_state_p);
+void negamax_set_evaluator(const nn_function f);
+
void negamax_free(void);
/*
diff --git a/include/nn.c b/include/nn.c
deleted file mode 100644
index a837a59..0000000
--- a/include/nn.c
+++ /dev/null
@@ -1,124 +0,0 @@
-/*
- This file is part of ct.
-
- This program is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful, but
- WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with ct. If not, see <https://www.gnu.org/licenses/>.
-*/
-
-#include "nn.h"
-#include "tak.h"
-#include "weights_5.h"
-#include "weights_6.h"
-
-// ===================================================================
-// Helpers
-// ===================================================================
-
-#define RELU(x) ((x) = ((x) < 0) ? 0 : (x))
-
-static inline void prepare_input(float *cur_board, tak_state_p stat);
-
-// ===================================================================
-// Implementation of small neural networks
-// ===================================================================
-
-float nn1986_evaluate_black_win(tak_state_p state) {
- static float cur_board[FIVE_INP_NUM];
- static float dense1[FIVE_DENSE_NUM];
- static float output[2];
-
- prepare_input(cur_board, state);
- /* ------------------ *
- * First dense layer *
- * ------------------ */
- for (unsigned int d1 = 0; d1 < FIVE_DENSE_NUM; d1++) {
- dense1[d1] = five_dense_biases[d1];
- for (unsigned int fl = 0; fl < FIVE_INP_NUM; fl++) {
- dense1[d1] += cur_board[fl] * five_dense_weights[d1][fl];
- }
- RELU(dense1[d1]);
- }
- /* ------------- *
- * Output layer *
- * ------------- */
- for (uint8_t k = 0; k < 2; k++) {
- output[k] = five_output_bias[k];
- for (unsigned int d2 = 0; d2 < FIVE_DENSE_NUM; d2++) {
- output[k] += dense1[d2] * five_output_weights[k][d2];
- }
- RELU(output[k]);
- }
- const float norm = output[0] + output[1];
- return (2 * output[0] / norm) - 1;
-}
-
-float nn2690_evaluate_black_win(tak_state_p state) {
- static float cur_board[SIX_INP_NUM];
- static float dense1[SIX_DENSE_NUM];
- static float output[2];
-
- prepare_input(cur_board, state);
- /* ------------------ *
- * First dense layer *
- * ------------------ */
- for (unsigned int d1 = 0; d1 < SIX_DENSE_NUM; d1++) {
- dense1[d1] = six_dense_biases[d1];
- for (unsigned int fl = 0; fl < SIX_INP_NUM; fl++) {
- dense1[d1] += cur_board[fl] * six_dense_weights[d1][fl];
- }
- RELU(dense1[d1]);
- }
- /* ------------- *
- * Output layer *
- * ------------- */
- for (uint8_t k = 0; k < 2; k++) {
- output[k] = six_output_bias[k];
- for (unsigned int d2 = 0; d2 < SIX_DENSE_NUM; d2++) {
- output[k] += dense1[d2] * six_output_weights[k][d2];
- }
- RELU(output[k]);
- }
- const float norm = output[0] + output[1];
- return (2 * output[0] / norm) - 1;
-}
-
-// ===================================================================
-// Helper implementation
-// ===================================================================
-
-static inline void prepare_input(float *cur_board, tak_state_p state) {
- /* --------------- *
- * Populate input *
- * --------------- */
- for (unsigned int y = 0; y < state->board_size; y++) {
- for (unsigned int x = 0; x < state->board_size; x++) {
- const unsigned int loc = x + y * state->board_size;
- const unsigned int count = COUNT_AT(state, loc);
- float lookup = 0;
- if (count > 0) {
- if (STONE_AT(state, loc) == STONE_STANDING) {
- lookup = (state->colours[loc] & 1) ? +0.25 : -0.25;
- } else if (STONE_AT(state, loc) == STONE_CAPSTONE) {
- lookup = (state->colours[loc] & 1) ? +1.00 : -1.00;
- } else {
- lookup = (state->colours[loc] & 1) ? +0.50 : -0.50;
- }
- }
- cur_board[3 + loc] = lookup;
- }
- }
- // Add input of flat counts and ply parity
- cur_board[0] = (state->ply & 1) ? 1 : -1;
- cur_board[1] = (float)(state->white_count & 127) / 21.0;
- cur_board[2] = (float)(state->black_count & 127) / 21.0;
-}
diff --git a/include/nn.h b/include/nn.h
index 5d1bf15..18e222a 100644
--- a/include/nn.h
+++ b/include/nn.h
@@ -1,5 +1,5 @@
/*
- This file is part of ct.
+ This file is part of ctak.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -12,12 +12,85 @@
General Public License for more details.
You should have received a copy of the GNU General Public License
- along with ct. If not, see <https://www.gnu.org/licenses/>.
+ along with ctak. If not, see <https://www.gnu.org/licenses/>.
*/
+#ifndef NN_H
+#define NN_H
+
#include <tak.h>
+#include "weights_5.h"
+#include "weights_6.h"
+
+// ===================================================================
+// Helpers
+// ===================================================================
+
+void nn_prepare_input(float *cur_board, tak_state_p state);
+
+#define RELU(x) ((x) = ((x) < 0) ? 0 : (x))
+
+/*
+ * tanh via a degree-11 odd polynomial, least-squares fit of tanh on [-3, 3]
+ * (max absolute error ~4e-3), saturating to +-1 outside that interval.
+ */
+static inline float fast_tanh(const float x) {
+ if (x > 3.0f)
+ return 1.0f;
+ if (x < -3.0f)
+ return -1.0f;
+ const float x2 = x * x;
+ return x * (0.997136032f + x2 * (-0.305215124f + x2 *
+ (0.0832466371f + x2 *
+ (-0.0139947924f + x2 *
+ (0.00123106314f + x2 * -4.29748644e-05f)))));
+}
+
+// ===================================================================
+// Implementation of small neural networks
+// ===================================================================
+
+static inline float eval_net(const float *board, const unsigned int n_inp,
+ const float *w, const float *biases,
+ const float *logit_w, const float logit_b,
+ const unsigned int n_dense) {
+ float dense1[FIVE_DENSE_NUM]; // FIVE_DENSE_NUM == SIX_DENSE_NUM
+ float z = logit_b;
+
+ for (unsigned int d1 = 0; d1 < n_dense; d1++) {
+ float h = biases[d1];
+ const float *wd = w + d1 * n_inp;
+ for (unsigned int fl = 0; fl < n_inp; fl++)
+ h += board[fl] * wd[fl];
+ RELU(h);
+ dense1[d1] = h;
+ }
+ for (unsigned int d1 = 0; d1 < n_dense; d1++)
+ z += dense1[d1] * logit_w[d1];
+
+ return fast_tanh(z);
+}
+
+// ===================================================================
+// Interfaces to the two built-in evaluators
+// ===================================================================
+
+static inline float five_nn_fn(tak_state_p state) {
+ static float cur_board[FIVE_INP_NUM] NN_ALIGNED;
+
+ nn_prepare_input(cur_board, state);
+ return eval_net(cur_board, FIVE_INP_NUM, &five_dense_weights[0][0],
+ five_dense_biases, five_logit_weights, five_logit_bias,
+ FIVE_DENSE_NUM);
+}
+
+static inline float six_nn_fn(tak_state_p state) {
+ static float cur_board[SIX_INP_NUM] NN_ALIGNED;
-typedef float (*nn_function)(tak_state_p);
+ nn_prepare_input(cur_board, state);
+ return eval_net(cur_board, SIX_INP_NUM, &six_dense_weights[0][0],
+ six_dense_biases, six_logit_weights, six_logit_bias,
+ SIX_DENSE_NUM);
+}
-float nn1986_evaluate_black_win(tak_state_p state);
-float nn2690_evaluate_black_win(tak_state_p state);
+#endif
diff --git a/include/nn_input.c b/include/nn_input.c
new file mode 100644
index 0000000..2fbd8da
--- /dev/null
+++ b/include/nn_input.c
@@ -0,0 +1,54 @@
+/*
+ This file is part of ctak.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with ctak. If not, see <https://www.gnu.org/licenses/>.
+*/
+
+#include "nn.h"
+#include "tak.h"
+
+/*
+ * Encode a board position into the network's input vector:
+ * [0] ply parity (-1 / +1)
+ * [1] white flats remaining, as a fraction of the total
+ * [2] black flats remaining, as a fraction of the total
+ * [3 ..] one scalar per cell for the top stone:
+ * 0 empty, +-0.25 standing, +-0.5 flat, +-1 capstone,
+ * + white, - black
+ *
+ * `cur_board' must have room for 3 + board_size*board_size floats.
+ */
+
+// The per-cell scalar depends only on the top stone's colour, variant
+// and occupancy, so it's a table lookup keyed on those three bits.
+static const float cell_scalar[16] = {
+ 0.0f, -0.5f, 0.0f, -0.25f, 0.0f, -1.0f, 0.0f, 0.0f, // black
+ 0.0f, +0.5f, 0.0f, +0.25f, 0.0f, +1.0f, 0.0f, 0.0f, // white
+};
+
+void nn_prepare_input(float *cur_board, tak_state_p state) {
+ const float inv_max_flats =
+ (state->board_size == 6) ? (1.0f / 30.0f) : (1.0f / 21.0f);
+ const unsigned int n_cells = state->board_size * state->board_size;
+ for (unsigned int loc = 0; loc < n_cells; loc++) {
+ const uint8_t d = state->celldat[loc];
+ cur_board[3 + loc] = cell_scalar[((state->colours[loc] & 1) << 3) |
+ ((d & STONE_MASK) << 1) |
+ ((d & NUM_MASK) != 0)];
+ }
+ // Add input of flat counts and ply parity
+ cur_board[0] = (state->ply & 1) ? 1 : -1;
+ cur_board[1] = (float)(state->white_count & 127) * inv_max_flats;
+ cur_board[2] = (float)(state->black_count & 127) * inv_max_flats;
+}
diff --git a/include/tak.c b/include/tak.c
index a5f2f44..406f8b5 100644
--- a/include/tak.c
+++ b/include/tak.c
@@ -1,5 +1,5 @@
/*
- This file is part of ct.
+ This file is part of ctak.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -12,7 +12,7 @@
General Public License for more details.
You should have received a copy of the GNU General Public License
- along with ct. If not, see <https://www.gnu.org/licenses/>.
+ along with ctak. If not, see <https://www.gnu.org/licenses/>.
*/
#include "tak.h"
diff --git a/include/tak.h b/include/tak.h
index fc4de2a..d60c221 100644
--- a/include/tak.h
+++ b/include/tak.h
@@ -1,5 +1,5 @@
/*
- This file is part of ct.
+ This file is part of ctak.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -12,7 +12,7 @@
General Public License for more details.
You should have received a copy of the GNU General Public License
- along with ct. If not, see <https://www.gnu.org/licenses/>.
+ along with ctak. If not, see <https://www.gnu.org/licenses/>.
*/
#ifndef TAK_H
diff --git a/include/tt.c b/include/tt.c
new file mode 100644
index 0000000..b1f583e
--- /dev/null
+++ b/include/tt.c
@@ -0,0 +1,60 @@
+/*
+ This file is part of ctak.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with ctak. If not, see <https://www.gnu.org/licenses/>.
+*/
+
+#include "tt.h"
+#include <string.h>
+
+// ===================================================================
+// Variables
+// ===================================================================
+
+static tt_entry_t table[TT_SIZE + 1];
+static uint16_t tt_gen = 0;
+
+// ===================================================================
+// Exported functions
+// ===================================================================
+
+int tt_init(void) {
+ tt_gen++;
+ if (tt_gen == 0)
+ memset(table, 0, sizeof(table));
+ return EXIT_SUCCESS;
+}
+
+tt_entry_t *tt_seek(const uint64_t key) {
+ tt_entry_t *e = &table[key & TT_SIZE];
+ if (e->gen == tt_gen && e->key == key)
+ return e;
+ return NULL;
+}
+
+int tt_insert(const uint64_t key, const enum TT_FLAG flag,
+ const uint8_t depth, const float value,
+ const action_t action) {
+ tt_entry_t *e = &table[key & TT_SIZE];
+ // Replacement scheme: keep a stale-but-deeper entry over a shallower new one.
+ if (e->gen == tt_gen && e->depth > depth)
+ return EXIT_SUCCESS;
+ e->key = key;
+ e->value = value;
+ e->action = action;
+ e->gen = tt_gen;
+ e->flag = flag;
+ e->depth = depth;
+ return EXIT_SUCCESS;
+}
diff --git a/include/tt_llcht.h b/include/tt.h
index dc73d26..b8e1a2e 100644
--- a/include/tt_llcht.h
+++ b/include/tt.h
@@ -1,5 +1,5 @@
/*
- This file is part of ct.
+ This file is part of ctak.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -12,14 +12,13 @@
General Public License for more details.
You should have received a copy of the GNU General Public License
- along with ct. If not, see <https://www.gnu.org/licenses/>.
+ along with ctak. If not, see <https://www.gnu.org/licenses/>.
*/
-#ifndef TT_LLCHT_H
-#define TT_LLCHT_H
+#ifndef TT_H
+#define TT_H
#include <stdint.h>
-#include <stdlib.h>
#include <actions.h>
@@ -30,8 +29,8 @@
enum TT_FLAG { TT_EXACT, TT_LOWERBOUND, TT_UPPERBOUND };
typedef struct tt_node_s {
+ uint16_t gen;
uint64_t key;
- struct tt_node_s *next;
enum TT_FLAG flag;
uint8_t depth;
float value;
@@ -42,14 +41,18 @@ typedef struct tt_node_s {
// Variables
// ===================================================================
-#define TT_LLCHT_SIZE ((uint32_t)((1 << 19) - 1))
+// Direct-mapped hash table (no chaining); one slot per key.
+#define TT_SIZE ((uint32_t)((1 << 19) - 1))
// ===================================================================
// Methods
// ===================================================================
+// Bump the generation counter, invalidating all entries (memsets the
+// table on wraparound). Called from negamax_init when the board size
+// (and hence the zobrist table) changes; entries are otherwise kept
+// across plies on purpose (see negamax.c).
int tt_init(void);
-void tt_free(void);
tt_entry_t *tt_seek(const uint64_t key);
diff --git a/include/tt_llcht.c b/include/tt_llcht.c
deleted file mode 100644
index 7b2269b..0000000
--- a/include/tt_llcht.c
+++ /dev/null
@@ -1,96 +0,0 @@
-/*
- This file is part of ct.
-
- This program is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful, but
- WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with ct. If not, see <https://www.gnu.org/licenses/>.
-*/
-
-#include "tt_llcht.h"
-
-// ===================================================================
-// Variables
-// ===================================================================
-
-static tt_entry_t *table[TT_LLCHT_SIZE + 1];
-
-// ===================================================================
-// Helper declarations
-// ===================================================================
-
-tt_entry_t *new_ll_node(const uint64_t key, const enum TT_FLAG flag,
- const uint8_t depth, const float value,
- const action_t action);
-
-// ===================================================================
-// Exported functions
-// ===================================================================
-
-int tt_init(void) {
- for (uint32_t k = 0; k <= TT_LLCHT_SIZE; k++)
- table[k] = NULL;
- return EXIT_SUCCESS;
-}
-
-void tt_free(void) {
- tt_entry_t *n, *nn;
- for (uint32_t k = 0; k <= TT_LLCHT_SIZE; k++) {
- n = table[k];
- while (n) {
- nn = n->next;
- free(n);
- n = nn;
- }
- }
-}
-
-tt_entry_t *tt_seek(const uint64_t key) {
- tt_entry_t *lookup = table[key & TT_LLCHT_SIZE];
- while (lookup && lookup->key != key)
- lookup = lookup->next;
- return lookup;
-}
-
-int tt_insert(const uint64_t key, const enum TT_FLAG flag, const uint8_t depth,
- const float value, const action_t action) {
- tt_entry_t *new = new_ll_node(key, flag, depth, value, action), *n;
- // TODO: trap
-
- const uint32_t idx = key & TT_LLCHT_SIZE;
- if ((n = table[idx]) != NULL) {
- for (; n->next != NULL; n = n->next)
- ;
- n->next = new;
- } else {
- table[idx] = new;
- }
-
- return EXIT_SUCCESS;
-}
-
-// ===================================================================
-// Helper function implementations
-// ===================================================================
-
-tt_entry_t *new_ll_node(const uint64_t key, const enum TT_FLAG flag,
- const uint8_t depth, const float value,
- const action_t action) {
- tt_entry_t *new = malloc(sizeof(struct tt_node_s));
- // TODO: trap errno
- new->key = key;
- new->next = NULL;
- new->flag = flag;
- new->depth = depth;
- new->value = value;
- new->action = action;
- return new;
-}
diff --git a/include/weights_5.c b/include/weights_5.c
index d2238af..7e254f8 100644
--- a/include/weights_5.c
+++ b/include/weights_5.c
@@ -1,735 +1,289 @@
-/*
- * Model: "model"
- * _________________________________________________________________
- * Layer (type) Output Shape Param #
- * =================================================================
- * input_1 (InputLayer) [(None, 28)] 0
- *
- * dense (Dense) (None, 64) 1856
- *
- * dense_1 (Dense) (None, 2) 130
- *
- * =================================================================
- * Total params: 1,986
- * Trainable params: 1,986
- * Non-trainable params: 0
- * _________________________________________________________________
- * ([0.5177317261695862, 0.755382776260376], [0.5241230130195618,
- * 0.7530876398086548])
- */
-
+/* generated by nn_train.py, do not edit by hand */
+/* v098, val_corr=0.9123 */
#include "weights_5.h"
-const float five_dense_weights[FIVE_DENSE_NUM][FIVE_INP_NUM] = {
- {0.0335812121629715, -0.21365489065647125, -0.653753936290741,
- -0.13572198152542114, 0.18898768723011017, 0.06430475413799286,
- 0.1521165519952774, -0.6386323571205139, 0.5113293528556824,
- 0.3224753439426422, 0.3006350100040436, 0.4426257014274597,
- -0.4259096086025238, 0.34491172432899475, 0.26074907183647156,
- 0.30206671357154846, 0.2114274799823761, -0.5099963545799255,
- 0.38777005672454834, 0.23917558789253235, 0.32478395104408264,
- 0.2528369724750519, -0.5045477747917175, 0.10504062473773956,
- 0.34629005193710327, 0.28095799684524536, 0.31814444065093994,
- -0.7089307904243469},
- {0.0565570704638958, -0.4527612030506134, 0.22363899648189545,
- -0.4776171147823334, -0.4429882764816284, 0.09122249484062195,
- 0.08279165625572205, 0.29376256465911865, -0.23718500137329102,
- -0.5789054036140442, 0.28780052065849304, 0.6442199945449829,
- 0.03741508722305298, -0.220468670129776, -0.644933819770813,
- -0.13106265664100647, 0.5042467713356018, 0.43313512206077576,
- 0.5279864072799683, -0.5684875249862671, -0.8156968355178833,
- -0.5465362668037415, -0.5424111485481262, 0.04707803204655647,
- 0.2047167718410492, -0.3449491560459137, -0.26257622241973877,
- -0.4042203426361084},
- {0.002476541558280587, -0.21414169669151306, -0.11842579394578934,
- 0.14450429379940033, -0.01525128073990345, -0.12563736736774445,
- -0.27338773012161255, 0.009645791724324226, -0.25494587421417236,
- -0.2797246277332306, -0.2301362156867981, -0.40248778462409973,
- -0.2902604341506958, 0.19436009228229523, -0.11030247807502747,
- 0.08137191087007523, -0.1867382973432541, -0.7496097683906555,
- -0.008727616630494595, 0.22033251821994781, 0.19767463207244873,
- 0.11307194083929062, -0.8412720561027527, 0.2657962143421173,
- -0.07668104767799377, 0.06086883693933487, 0.3835994601249695,
- -1.091362476348877},
- {0.05102699622511864, -0.8378904461860657, 0.4566768705844879,
- -0.2630152404308319, -0.23932738602161407, -0.19857573509216309,
- 0.30443575978279114, -0.14038261771202087, -0.14678728580474854,
- -0.40179580450057983, -0.35921597480773926, -0.14929337799549103,
- 0.12302257865667343, 0.10777170211076736, -0.12337932735681534,
- -0.33727583289146423, -0.28758835792541504, 0.37838035821914673,
- 0.3109462559223175, 0.15170936286449432, 0.17238374054431915,
- -0.7253879308700562, -0.23942553997039795, 0.11120962351560593,
- 0.2859588861465454, 0.4778689444065094, -0.679128885269165,
- -0.226375013589859},
- {0.03254811838269234, -0.20261096954345703, -0.07562973350286484,
- -0.10781332850456238, -0.10312259197235107, -0.07764437049627304,
- -0.04054751992225647, -0.07112596929073334, -0.06557303667068481,
- -0.12047363817691803, -0.062015969306230545, -0.026542047038674355,
- -0.01934126764535904, -0.09312712401151657, -0.03113151155412197,
- -0.051008112728595734, -0.05768309533596039, -0.10491270571947098,
- -0.0717678889632225, -0.04455398768186569, -0.02723315730690956,
- -0.057788874953985214, -0.0033781195525079966, -0.03603564202785492,
- -0.006476488430052996, -0.021566126495599747, -0.04043968394398689,
- 0.007654271088540554},
- {-0.08095347136259079, -0.26414069533348083, -0.09814666211605072,
- -0.04380079358816147, -0.5849603414535522, -0.7097421288490295,
- -0.9047000408172607, -1.3424301147460938, -0.31041404604911804,
- -0.25597554445266724, -0.11997552961111069, 0.20276427268981934,
- 0.36256903409957886, 0.019292958080768585, -0.041115161031484604,
- 0.12530303001403809, 0.20739392936229706, 0.3235205411911011,
- -0.05591806769371033, -0.05841316655278206, 0.038499265909194946,
- 0.18055571615695953, 0.293590784072876, 0.16785693168640137,
- 0.24048064649105072, 0.07176923751831055, 0.08983936905860901,
- 0.22106173634529114},
- {-0.017707331106066704, 0.12255413830280304, -0.6240278482437134,
- -0.04464518278837204, -0.1846076399087906, 0.6399872899055481,
- 0.12881889939308167, 0.22656285762786865, -0.1679985672235489,
- -0.28858682513237, 0.5312493443489075, 0.049816571176052094,
- -0.24046465754508972, -0.1774766743183136, -0.09163064509630203,
- 0.7954617142677307, -0.39598366618156433, -0.4399476945400238,
- 0.6123018860816956, 0.45216771960258484, 0.6593272089958191,
- -0.07644930481910706, -0.4521935284137726, 0.012832398526370525,
- 0.028779083862900734, 0.6450971961021423, 0.575737714767456,
- 0.6349318027496338},
- {-0.03650929406285286, -0.14473311603069305, -0.5584736466407776,
- -0.029627997428178787, -0.1539306640625, -0.12314235419034958,
- 0.08387640863656998, -0.0337577685713768, -0.17351587116718292,
- -0.19245818257331848, -0.16416308283805847, 0.016272591426968575,
- 0.36373433470726013, 0.04089183360338211, 0.02371835894882679,
- -0.22523774206638336, -0.15100933611392975, 0.45591863989830017,
- -0.1123512014746666, 0.061778921633958817, -0.13473178446292877,
- -0.40654733777046204, 0.4156742990016937, -0.03619186207652092,
- 0.24843069911003113, 0.29947373270988464, 0.36726078391075134,
- 1.2590346336364746},
- {-0.1366739124059677, 0.41514185070991516, -0.2774442732334137,
- -0.3785100281238556, -0.43781572580337524, 0.0857686847448349,
- 0.548991322517395, 0.3008037805557251, -0.710213303565979,
- 0.02195434831082821, 0.5724306702613831, 0.5335829854011536,
- 0.09624887257814407, 1.017358660697937, 0.8264562487602234,
- 0.4335733652114868, 0.2976129651069641, -0.07695961743593216,
- 0.08250663429498672, 0.12967929244041443, -0.04427557811141014,
- 0.24989163875579834, 0.08119788765907288, 0.05688076093792915,
- 0.14414691925048828, -0.15780726075172424, 0.12778723239898682,
- 0.17664006352424622},
- {0.045846302062273026, -0.4202306270599365, 0.24253332614898682,
- 0.058551233261823654, 0.13127459585666656, -0.08259733766317368,
- -0.5951005220413208, 0.010317057371139526, 0.32319802045822144,
- -0.2788604497909546, -0.10889868438243866, -0.6505680084228516,
- 0.0621410608291626, -0.22810311615467072, -0.0803237184882164,
- 0.4647519290447235, -0.6627072691917419, 0.20077340304851532,
- 0.1278313249349594, 0.021397558972239494, -0.017719708383083344,
- -0.65326988697052, 0.03247045353055, -0.003151470795273781,
- -0.089555524289608, -0.21280834078788757, -0.18042130768299103,
- -0.13124220073223114},
- {0.08920250833034515, -0.4041590988636017, 0.11126764863729477,
- -0.38825124502182007, -0.37751445174217224, 0.3841644823551178,
- 0.13915617763996124, -0.427076131105423, -0.42071813344955444,
- -0.8185845017433167, -0.6395564675331116, -0.3830700218677521,
- -0.34343987703323364, 0.14143605530261993, 0.2065681666135788,
- -0.5982153415679932, -0.2753662168979645, -0.5253153443336487,
- 0.1136728972196579, 0.303848534822464, -0.3599269390106201,
- -0.48723894357681274, 0.1170220747590065, 0.1082770973443985,
- 0.2027408331632614, -0.6000553369522095, -0.2399190366268158,
- 0.21266664564609528},
- {-0.044174984097480774, 0.10084715485572815, -0.7766823768615723,
- 0.5814716219902039, 0.2989753484725952, -0.04704820364713669,
- -0.23142951726913452, 0.16222569346427917, 0.026166614145040512,
- 0.3819707930088043, 0.0457681305706501, -0.0551467202603817,
- 0.09645840525627136, -0.28990161418914795, 0.11402436345815659,
- 0.445557564496994, 0.3328436315059662, 0.6563848853111267,
- -0.22550760209560394, 0.1100253015756607, -0.29362085461616516,
- 0.35912737250328064, 0.07314564287662506, 0.3241541087627411,
- -0.04152493178844452, -0.18172766268253326, 0.3779054582118988,
- 0.30225080251693726},
- {0.0354388952255249, -0.45912227034568787, 0.07555098086595535,
- -0.047884486615657806, 0.12533819675445557, 0.11261603981256485,
- 0.5056780576705933, -0.15080063045024872, -0.14207696914672852,
- -0.24237896502017975, -0.4537515342235565, -0.7382211685180664,
- -1.396830439567566, -0.05796787142753601, -0.0972527340054512,
- -0.0011085039004683495, 0.15182892978191376, 0.38325998187065125,
- -0.013696794398128986, -0.05116301029920578, 0.24685567617416382,
- 0.17722700536251068, -0.011363615281879902, 0.032823070883750916,
- 0.23471832275390625, 0.2214534878730774, -0.12878315150737762,
- 0.07269603759050369},
- {0.1021164283156395, -0.979482114315033, 0.10424260795116425,
- 0.20152615010738373, -0.4474649131298065, -0.5927112698554993,
- -0.4682328701019287, -0.25608980655670166, -0.03509359434247017,
- -0.3745705783367157, -0.5153190493583679, -0.5731074810028076,
- -0.558528482913971, -0.08479820191860199, -0.38562700152397156,
- -0.4411310851573944, -0.5317122340202332, -0.5145424604415894,
- -0.046643827110528946, -0.2316707819700241, -0.3664470911026001,
- -0.3545966148376465, -0.313737690448761, 0.09879656881093979,
- -0.2625102400779724, -0.306001216173172, -0.29944929480552673,
- 0.03161349147558212},
- {-0.03801499307155609, -0.2233135849237442, -0.10620100051164627,
- 0.2713835537433624, 0.21967564523220062, 0.251351535320282,
- 0.16949021816253662, 0.15099139511585236, 0.05300286412239075,
- 0.08299478143453598, 0.011512423865497112, 0.01530615333467722,
- 0.07382016628980637, -0.18710920214653015, 0.03905392810702324,
- 0.16468313336372375, 0.22495073080062866, 0.3159700930118561,
- -0.1615748107433319, -0.16977524757385254, -0.17270493507385254,
- 0.1490594446659088, 0.4793047308921814, -0.0045040980912745,
- -0.3750409185886383, -0.5658650994300842, -0.7609032392501831,
- -0.9970420598983765},
- {-0.06860953569412231, 0.1561063975095749, 0.41900986433029175,
- -0.09340472519397736, 0.05546368286013603, -0.32329270243644714,
- -0.3049590587615967, -0.057696402072906494, -0.17760413885116577,
- -0.21533682942390442, -0.06622635573148727, -0.20747050642967224,
- -0.13626375794410706, -0.16855809092521667, -0.06624997407197952,
- 0.17109455168247223, 0.265641987323761, 0.2269686758518219,
- -0.31261059641838074, -0.3254770040512085, -0.17686116695404053,
- -0.184734046459198, -0.17058107256889343, -0.13638293743133545,
- -0.25341087579727173, -0.06822904199361801, -0.17498566210269928,
- -0.15365538001060486},
- {-0.09274652600288391, 0.8195863366127014, -0.6974982619285583,
- 0.19567207992076874, 0.3114858567714691, 0.3193179965019226,
- 0.3051777482032776, 0.1686609983444214, 0.28975042700767517,
- 0.3609328269958496, 0.34076830744743347, 0.3451266586780548,
- 0.2754822373390198, 0.2944789528846741, 0.3471467196941376,
- 0.3111295998096466, 0.36336469650268555, 0.3138508200645447,
- 0.3493599593639374, 0.3804861307144165, 0.3554949462413788,
- 0.38007041811943054, 0.304755836725235, 0.1720620095729828,
- 0.3196488618850708, 0.3476446270942688, 0.2819644510746002,
- 0.20534354448318481},
- {-0.04308394342660904, 0.4313099980354309, 0.0190417543053627,
- -0.36723119020462036, -0.17420481145381927, 0.5145810842514038,
- 0.5347347855567932, 0.6282756328582764, 1.2653520107269287,
- 1.1850699186325073, 0.8361583352088928, 0.4141540825366974,
- 0.26177582144737244, 0.06430555135011673, 0.4607594609260559,
- -0.0807068794965744, -0.09359037131071091, 0.09638888388872147,
- 0.525905191898346, 0.5729591250419617, -0.02258281223475933,
- -0.17060524225234985, 0.12351763993501663, 0.08509236574172974,
- 0.4710988402366638, 0.17080940306186676, 0.250908762216568,
- -0.09069673717021942},
- {0.07291662693023682, 0.08596876263618469, -0.08287191390991211,
- 0.26005038619041443, 0.46491068601608276, 0.5783225893974304,
- 0.15600703656673431, -0.26880383491516113, -0.17159603536128998,
- 0.18245145678520203, 0.6828884482383728, -0.21175506711006165,
- -0.057075608521699905, -0.31850534677505493, 0.12133979052305222,
- 0.5726630091667175, -0.07307758182287216, -0.0253745187073946,
- -0.05841955170035362, -0.2049519568681717, 0.542971670627594,
- -0.0039001810364425182, -0.027620088309049606, -0.4046057164669037,
- -0.07061299681663513, 0.5127297043800354, 0.17255832254886627,
- -0.37250733375549316},
- {-0.11166863888502121, 0.055800892412662506, -0.5167198777198792,
- 0.2324250191450119, 0.40913817286491394, 0.6140636801719666,
- 0.4707394242286682, 1.522460699081421, 0.28594499826431274,
- 0.3309996426105499, 0.08542972803115845, -0.28014466166496277,
- 0.139140322804451, 0.1942225694656372, 0.1311720907688141,
- 0.06602678447961807, 0.13316340744495392, 0.5902721881866455,
- 0.03358441963791847, -0.01826644130051136, 0.2206089198589325,
- 0.3234162926673889, 0.29170212149620056, 0.027043171226978302,
- 0.2018718421459198, -0.010219907388091087, 0.35940054059028625,
- 0.07707080245018005},
- {0.02553723379969597, 0.461318701505661, -0.4059189260005951,
- 0.05942573770880699, -0.010037711821496487, -0.13757778704166412,
- 0.22961010038852692, 0.2251977026462555, 1.0914969444274902,
- 0.9033216834068298, 0.83197420835495, 0.7612583637237549,
- 0.05771542713046074, -0.10955284535884857, -0.004019961226731539,
- 0.4693775475025177, 0.07826275378465652, -0.13095584511756897,
- -0.2168196588754654, -0.3515476584434509, 0.7580985426902771,
- 0.20290978252887726, -0.16279703378677368, -0.06892823427915573,
- -0.20307579636573792, 0.954958975315094, -0.2317219376564026,
- -0.1928693652153015},
- {0.062168460339307785, -0.5123471617698669, -0.263359934091568,
- -0.7685256600379944, 0.08967547863721848, 0.24563723802566528,
- 0.3980844020843506, 0.3117550015449524, -0.7312137484550476,
- -0.06169243901968002, 0.25126340985298157, 0.2695813477039337,
- 0.23361706733703613, -0.969958484172821, 0.12066813558340073,
- 0.15110082924365997, 0.22164055705070496, 0.14506936073303223,
- -0.8025405406951904, 0.26169300079345703, 0.11112350225448608,
- 0.29015427827835083, 0.34564951062202454, -0.9369366765022278,
- 0.41549447178840637, 0.2582719624042511, 0.3374422788619995,
- 0.3025016188621521},
- {-0.1270698755979538, 0.429225891828537, -0.49225398898124695,
- -0.11553260684013367, -0.23649732768535614, 0.8932956457138062,
- -0.11381787061691284, -0.300383061170578, -0.08516164869070053,
- -0.04815308749675751, 0.6397905349731445, 0.05467788130044937,
- -0.17419259250164032, 0.05954163148999214, 0.11605441570281982,
- 0.46235892176628113, 0.005171304568648338, -0.3957885801792145,
- 0.19777722656726837, 0.7243578433990479, 0.8090712428092957,
- 0.8684667348861694, 1.0440218448638916, 0.435382217168808,
- 0.20173248648643494, -0.50189208984375, -0.127868190407753,
- -0.049834541976451874},
- {0.0026459188666194677, 0.11711517721414566, -0.7256444692611694,
- -0.08485592901706696, 0.9629834890365601, 0.09173507988452911,
- 0.244176983833313, 0.24677251279354095, 0.15705431997776031,
- 0.7062681913375854, -0.5933635234832764, -0.10675647109746933,
- 0.04850605130195618, 0.13815787434577942, 0.4868027865886688,
- -0.48046332597732544, 0.09973080456256866, 0.0552331916987896,
- 1.0236599445343018, 1.0715246200561523, 0.8364623188972473,
- 0.6795467138290405, 0.1431518793106079, -0.09264400601387024,
- -0.24593685567378998, 0.0526106022298336, 0.5356892347335815,
- 0.4176342785358429},
- {-0.17575381696224213, 0.9493538737297058, -0.9680318832397461,
- 0.344186007976532, 0.37747424840927124, 0.3827437460422516,
- 0.3655855357646942, 0.32791411876678467, 0.3741169273853302,
- 0.42540842294692993, 0.4716174900531769, 0.4630044102668762,
- 0.4119097888469696, 0.43781936168670654, 0.4984303414821625,
- 0.3960149586200714, 0.4152538776397705, 0.3874683082103729,
- 0.37821871042251587, 0.41086938977241516, 0.436718225479126,
- 0.38621312379837036, 0.3685840666294098, 0.3631429970264435,
- 0.3682745099067688, 0.3622629940509796, 0.41871270537376404,
- 0.3119860589504242},
- {-0.06097084656357765, 0.3522926867008209, -0.07554367929697037,
- 0.31942737102508545, 0.029151281341910362, 0.15592512488365173,
- -0.0009292215690948069, 0.18485626578330994, 0.39177006483078003,
- 0.2792249321937561, 0.12014344334602356, 0.09458812326192856,
- 0.028401147574186325, 1.115199089050293, 0.8369911313056946,
- 0.602891206741333, 0.28732630610466003, -0.11038826406002045,
- -0.5364417433738708, -0.08979910612106323, 0.6724634766578674,
- 0.34956303238868713, 0.27176162600517273, -0.5280332565307617,
- -0.5781199932098389, 0.6316017508506775, 0.41322362422943115,
- 0.18675293028354645},
- {0.06110076978802681, 0.20676849782466888, -0.21055933833122253,
- 0.14543284475803375, -0.2691429555416107, 0.23192094266414642,
- -0.16181010007858276, -0.07387831062078476, 0.2630201280117035,
- -0.1249636858701706, 0.16139020025730133, 0.12681415677070618,
- 0.24008934199810028, 0.5166671872138977, 0.84417724609375,
- 0.928178071975708, 0.5734097361564636, 0.7494409680366516,
- 0.45103031396865845, 0.29169872403144836, -0.17037302255630493,
- -0.6708592176437378, 0.1958291381597519, 0.17509706318378448,
- 0.2388417273759842, -0.3683401942253113, -0.46702516078948975,
- -0.12833642959594727},
- {0.00030645611695945263, -0.19412267208099365, -0.1942126452922821,
- 0.8911823034286499, 0.8041935563087463, 0.6952621936798096,
- 0.5451593399047852, 0.4937603175640106, -0.24343731999397278,
- -0.1464550644159317, -0.12816737592220306, 0.024196654558181763,
- 0.036258477717638016, -0.1814306229352951, -0.21442382037639618,
- -0.11105196923017502, -0.22053563594818115, -0.24859702587127686,
- -0.22910651564598083, -0.2101702243089676, -0.14243045449256897,
- -0.2865407168865204, -0.18984046578407288, -0.07871726900339127,
- -0.2595853805541992, -0.24533933401107788, -0.26216810941696167,
- -0.16304023563861847},
- {0.052463531494140625, 0.1486791968345642, -0.579024612903595,
- 1.088742733001709, -0.13386118412017822, -0.1609494388103485,
- -0.09612634778022766, -0.09550110250711441, 0.9107480645179749,
- -0.14887897670269012, -0.017151640728116035, 0.020924121141433716,
- 0.04268282279372215, 0.9172422885894775, 0.04447457566857338,
- -0.02752840891480446, 0.022488543763756752, -0.09672117233276367,
- 0.8158107995986938, 0.15294760465621948, 0.04637422040104866,
- 0.024195043370127678, -0.08632858097553253, 0.4717424511909485,
- 0.18674905598163605, 0.10150022804737091, 0.025798514485359192,
- -0.1546076387166977},
- {0.029881251975893974, 0.49499452114105225, -0.026262039318680763,
- 0.00900306273251772, -0.036245543509721756, -0.11946964263916016,
- 0.172474667429924, 0.5267413854598999, 0.07936062663793564,
- -0.15437465906143188, 0.16969208419322968, 0.7578750252723694,
- 0.4837819039821625, 0.08440805226564407, 0.20724894106388092,
- 0.07721617817878723, 0.7230514883995056, 0.023518960922956467,
- 0.3058747947216034, 0.1142619401216507, 0.08739539235830307,
- 0.8077057003974915, -0.38012027740478516, 0.23245155811309814,
- 0.10439647734165192, -0.07647071778774261, 1.3155752420425415,
- -0.46643584966659546},
- {0.10903043299913406, -0.004875070881098509, 0.2575789988040924,
- 0.14737094938755035, 0.43150651454925537, -0.5420994162559509,
- -0.3059577941894531, -0.2527901232242584, 0.19769372045993805,
- 0.38301345705986023, -0.10965324938297272, -0.21152931451797485,
- -0.0738074779510498, 0.1658964455127716, 0.4326992332935333,
- 0.4845859110355377, 0.1578446626663208, -0.10062657296657562,
- -0.1752672642469406, -0.37322744727134705, 0.17257146537303925,
- 0.2496408224105835, 0.12594257295131683, -0.37234362959861755,
- -0.12441913038492203, -0.026296446099877357, 0.1662571132183075,
- -0.0028839746955782175},
- {-0.014218885451555252, -0.5738092064857483, 0.23660679161548615,
- -0.10611919313669205, -0.12041497230529785, -0.1564393788576126,
- -0.2974553406238556, -0.13557544350624084, -0.03920785337686539,
- 0.22239501774311066, -0.6583126187324524, -0.4981720745563507,
- -0.34942877292633057, 0.09956511110067368, 0.07194441556930542,
- -0.8891360759735107, 0.09037145227193832, 0.4524118900299072,
- 0.1884671002626419, 0.04436931014060974, -0.9194300770759583,
- 0.5126015543937683, 0.5571795105934143, 0.25728949904441833,
- 0.03548843413591385, -1.0185256004333496, 0.30711427330970764,
- 0.39558374881744385},
- {-0.014499297365546227, -0.6686705946922302, -0.036153871566057205,
- -1.3211073875427246, -0.6752616167068481, -0.7146933078765869,
- -0.549763023853302, -0.11895440518856049, 0.5944733619689941,
- 0.46897026896476746, 0.03513138368725777, -0.41634684801101685,
- -0.11872824281454086, 0.40422236919403076, 0.26827922463417053,
- 0.0015694501344114542, -0.1268347054719925, 0.18456166982650757,
- 0.060881517827510834, 0.1850985437631607, 0.20143119990825653,
- -0.07189079374074936, 0.19972868263721466, 0.16691307723522186,
- 0.16700705885887146, 0.14965561032295227, -0.07053949683904648,
- 0.2440711408853531},
- {-0.30115965008735657, 0.3020112216472626, -0.6229689121246338,
- 0.19976438581943512, 0.25084272027015686, 0.08908466249704361,
- 0.12059653550386429, 0.03533867746591568, 0.2703179121017456,
- 0.3352479934692383, 0.3428271412849426, 0.4156206548213959,
- 0.3420707583427429, 0.2064814567565918, 0.35532060265541077,
- 0.08173895627260208, 0.07825019955635071, 0.221553236246109,
- 0.1776820570230484, 0.22577251493930817, 0.22278828918933868,
- 0.2640128433704376, 0.180125430226326, 0.11645812541246414,
- 0.3808441460132599, 0.1748972088098526, 0.04822747781872749,
- 0.20747071504592896},
- {0.004458575043827295, 0.03752393275499344, 0.1197284460067749,
- 0.429423987865448, 0.2881259620189667, 0.6022155284881592,
- -0.4153423011302948, -0.5097853541374207, 0.42615923285484314,
- 0.44554516673088074, 0.7217490673065186, 0.8117141127586365,
- 0.72388756275177, 0.015255422331392765, -0.22130870819091797,
- 0.13519121706485748, 0.3975375294685364, 0.1678304821252823,
- 0.10857963562011719, -0.3138495981693268, 0.1589823067188263,
- 0.2486751675605774, 0.40141168236732483, 0.018049899488687515,
- -0.08904679864645004, -0.08511554449796677, 0.1515214890241623,
- 0.4401805102825165},
- {-0.15634094178676605, -0.19944559037685394, -0.16159050166606903,
- 0.537737250328064, 0.047764409333467484, -0.14748850464820862,
- 0.1200181245803833, -0.07930611819028854, 0.1614770144224167,
- 0.7068870067596436, 0.5102498531341553, 0.8125320076942444,
- 0.9490340948104858, 0.2141641080379486, 0.5533105731010437,
- 0.23265130817890167, 0.15047943592071533, -0.514159083366394,
- -0.028046829625964165, 0.6813269257545471, 0.1514519900083542,
- -0.1020088791847229, -0.04611760750412941, 0.22561359405517578,
- 0.43252548575401306, -0.050761569291353226, -0.09585573524236679,
- -0.15603257715702057},
- {-0.08421202749013901, 0.33921104669570923, -0.41581854224205017,
- -0.21174439787864685, 0.4582148492336273, 0.11856566369533539,
- 0.10920864343643188, -0.059966351836919785, 0.3425080180168152,
- 0.4195125102996826, 0.02871912717819214, 0.06811660528182983,
- 0.0683729499578476, 0.6100324988365173, 0.2850392162799835,
- -0.039775870740413666, -0.11169159412384033, -0.18508493900299072,
- 0.730349063873291, -0.10342872887849808, -0.19325177371501923,
- -0.12663674354553223, -0.11998621374368668, 1.3490771055221558,
- -0.5284110307693481, -0.12912636995315552, -0.060148727148771286,
- -0.1581180840730667},
- {0.13426083326339722, -0.13176080584526062, 1.2296770811080933,
- -0.07961347699165344, -0.3992340862751007, -0.3328780233860016,
- -0.3540795147418976, -0.06446079909801483, -0.3728063106536865,
- -0.44019535183906555, -0.4748293459415436, -0.4214479923248291,
- -0.37979984283447266, -0.31887421011924744, -0.46707987785339355,
- -0.34212198853492737, -0.4332870543003082, -0.3801964819431305,
- -0.3589206337928772, -0.49498450756073, -0.5273376107215881,
- -0.4567064344882965, -0.40370914340019226, -0.004378970246762037,
- -0.3736163079738617, -0.3421406149864197, -0.34401506185531616,
- -0.011685256846249104},
- {0.08239886164665222, -0.8746750354766846, 0.520552933216095,
- -0.2309003621339798, -0.27933767437934875, -0.20904868841171265,
- -0.29178568720817566, -0.056779034435749054, -0.28577834367752075,
- -0.25492337346076965, -0.26360198855400085, -0.2623720169067383,
- -0.2106320858001709, -0.11835736036300659, -0.04690302908420563,
- -0.06490934640169144, -0.13744433224201202, -0.21501925587654114,
- -0.036219630390405655, -0.11873988062143326, -0.09084317088127136,
- -0.2095029354095459, -0.11422516405582428, -0.016950659453868866,
- -0.2354726791381836, -0.17757123708724976, -0.05872594937682152,
- -0.23141008615493774},
- {0.030258534476161003, -0.5337088108062744, -0.06049085408449173,
- -0.06599123775959015, -0.016824429854750633, -0.1420319825410843,
- -0.03433123230934143, -0.10755813121795654, -0.011755664832890034,
- -0.033444661647081375, -0.10537318140268326, -0.04665432870388031,
- -0.0709884762763977, -0.09382390230894089, -0.05977355316281319,
- -0.006864430848509073, -0.07894037663936615, -0.07580714672803879,
- -0.12620750069618225, -0.07429014146327972, -0.11756139993667603,
- -0.03486189246177673, -0.07912899553775787, -0.038790758699178696,
- -0.06529578566551208, -0.020097605884075165, -0.06760886311531067,
- 0.006338239647448063},
- {-0.008149570785462856, -0.2281409353017807, -0.02317221276462078,
- 0.10482294857501984, -0.026631563901901245, -0.02272041141986847,
- -0.1762792021036148, -0.06379090994596481, 0.28265300393104553,
- 0.1829858273267746, -0.1753186285495758, -0.16000571846961975,
- -0.03318013623356819, 0.28647878766059875, 0.06253796070814133,
- -0.3300016224384308, -0.10609311610460281, -0.14531269669532776,
- -0.7605944275856018, -0.4989122152328491, -0.3356994390487671,
- -0.05982646346092224, 0.06342680007219315, -0.04135109484195709,
- 0.32415950298309326, 0.2208917886018753, -0.07768300175666809,
- -0.15703800320625305},
- {0.03806011378765106, -0.6677188873291016, 0.15192484855651855,
- -0.16433456540107727, -0.34537896513938904, -0.020495647564530373,
- -0.03346096724271774, 0.223424032330513, -0.02972494252026081,
- -0.3487086594104767, -0.0456627681851387, -0.11218554526567459,
- -0.00014366689720191061, 0.4491022527217865, -0.5417236089706421,
- -0.6263294816017151, -0.6973318457603455, -0.9182674288749695,
- -0.2974551320075989, -0.7037410736083984, 0.0874515250325203,
- 0.14197714626789093, 0.4558337330818176, -0.5843172669410706,
- -0.5606727004051208, 0.45348820090293884, 0.44328850507736206,
- 0.4209005534648895},
- {-0.08474959433078766, 0.15526627004146576, -0.7985652089118958,
- 0.21260187029838562, 0.3656609356403351, 0.12335719168186188,
- 0.060457415878772736, 0.24970696866512299, 0.4984481930732727,
- 0.3631579279899597, 0.26680564880371094, 0.5937404036521912,
- 0.2675668001174927, 0.26715323328971863, -0.2635864317417145,
- -0.6670373678207397, 0.5595815181732178, 0.3275291323661804,
- 0.3265022933483124, -0.0923314318060875, 0.2361195683479309,
- 0.8254050016403198, 0.5882598757743835, 0.8333842158317566,
- 0.4826344847679138, 0.6576237082481384, 0.013852320611476898,
- -0.13133659958839417},
- {-0.03767941892147064, -0.16735343635082245, 0.07242633402347565,
- 0.09715986251831055, -0.08629732578992844, -0.12105050683021545,
- 0.19429436326026917, -1.189113974571228, -0.0438414141535759,
- -0.13045798242092133, 0.17313389480113983, 0.222298264503479,
- -0.6784869432449341, 0.044389013200998306, -0.04566064849495888,
- 0.1745270937681198, -0.18878957629203796, -0.68072509765625,
- -0.17901289463043213, -0.13348782062530518, -0.280407577753067,
- -0.5236465930938721, -0.09434037655591965, 0.3562553822994232,
- -0.14296357333660126, -0.17816492915153503, -0.262240469455719,
- 0.2708267867565155},
- {-0.14643076062202454, 0.3134414553642273, -0.016158653423190117,
- 0.4832289218902588, 0.35327669978141785, 0.033485930413007736,
- 1.404250144958496, -0.4109203517436981, 0.3232615888118744,
- 0.03948039561510086, 0.14370359480381012, 1.0806249380111694,
- -0.43028610944747925, 0.19681444764137268, 0.3559668958187103,
- 0.24551646411418915, 0.7668668031692505, 0.26227831840515137,
- 0.24610893428325653, 0.03931723162531853, 0.1685093492269516,
- 0.42881014943122864, 0.605613648891449, 0.07715323567390442,
- 0.2259686291217804, 0.12414932996034622, 0.28258103132247925,
- 0.6711070537567139},
- {-0.03460083529353142, 0.015175103209912777, -0.0020290936809033155,
- -0.2801230251789093, -0.049781594425439835, -0.08237257599830627,
- -0.24321754276752472, -0.30726316571235657, -0.1131473034620285,
- -0.016173556447029114, -0.0010477738687768579, -0.20699340105056763,
- -0.2045988142490387, -0.10566984117031097, -0.0597367063164711,
- -0.1446806639432907, -0.008996298536658287, -0.1636381596326828,
- -0.34909534454345703, -0.10394063591957092, 0.07907130569219589,
- 0.0491563156247139, 0.07572714239358902, 0.8712359666824341,
- 0.8652707934379578, 0.8136559128761292, 0.7329977750778198,
- 0.4842419922351837},
- {0.028292212635278702, -0.6930311322212219, 0.4168195426464081,
- -0.722553014755249, 0.6128503084182739, 0.37802034616470337,
- -0.12130801379680634, -0.16137754917144775, -0.4547799825668335,
- 0.019849296659231186, -0.07699695229530334, 0.02751479111611843,
- 0.11456470936536789, -0.46225056052207947, -0.4128100574016571,
- -0.21820463240146637, -0.05070912092924118, -0.012455608695745468,
- 0.17457029223442078, -0.6548964381217957, 0.2514891028404236,
- 0.09665688127279282, -0.023784032091498375, 0.34345829486846924,
- -1.0899158716201782, 0.057933658361434937, -0.10579057782888412,
- -0.09446477890014648},
- {0.06298044323921204, -0.5140762329101562, 0.10901061445474625,
- 0.25055184960365295, 0.16310572624206543, 0.1660183221101761,
- -0.2003139704465866, -0.25939759612083435, -0.759786069393158,
- -0.5441654324531555, -0.433865487575531, -0.2903525233268738,
- 0.20317135751247406, -0.05961161479353905, 0.1883774697780609,
- 0.07006954401731491, -0.348635733127594, 0.00569637306034565,
- -0.12705902755260468, 0.06386853754520416, 0.30274978280067444,
- -0.06455851346254349, -0.16498570144176483, -0.2735350728034973,
- -0.05759710818529129, -0.09640154242515564, -0.2553178668022156,
- 0.1108042374253273},
- {0.16303423047065735, -0.840851902961731, 0.3045694828033447,
- 0.5177968144416809, 0.010460598394274712, -0.0009595230803824961,
- -0.164739727973938, -0.2865234613418579, -0.1834029257297516,
- 0.4267294108867645, 0.0837775319814682, -0.5739225745201111,
- -0.17942845821380615, 0.06667495518922806, 0.46038922667503357,
- 0.14962272346019745, -0.34685906767845154, 0.23869825899600983,
- -0.28814902901649475, -0.7657412886619568, -0.866352379322052,
- -0.9862637519836426, -0.18093055486679077, -0.2750402092933655,
- -0.2612379789352417, 0.14520415663719177, 0.41632893681526184,
- -0.3018798232078552},
- {-0.15189743041992188, 0.24816209077835083, -0.39726874232292175,
- 0.10362628102302551, 0.22738219797611237, 0.13067540526390076,
- 0.29548943042755127, 0.37722209095954895, 0.17870138585567474,
- 0.2407064139842987, 0.19497083127498627, 0.3211122453212738,
- -0.09292492270469666, -0.12265130877494812, 0.4053817391395569,
- -0.11827366054058075, 0.45297837257385254, 0.11928819864988327,
- 0.9772109389305115, 0.5449104905128479, 0.39806750416755676,
- 0.4030953049659729, 0.16402702033519745, -0.14901259541511536,
- -0.15305542945861816, 0.16489744186401367, 0.21413367986679077,
- 0.5390959978103638},
- {-0.054573457688093185, -0.22824183106422424, -0.3203968405723572,
- -0.15810002386569977, 0.5835301876068115, 0.38719215989112854,
- 0.4236435294151306, 0.640129566192627, -0.14881178736686707,
- 0.47540283203125, 0.09412529319524765, 0.06462755799293518,
- -0.6389226317405701, -0.10056259483098984, 0.5633905529975891,
- 0.08276329189538956, -0.1411363184452057, -0.009574373252689838,
- -0.03582749515771866, 0.6443657279014587, -0.017103971913456917,
- -0.17268119752407074, 0.06117372587323189, -0.04281193017959595,
- 0.7488794922828674, -0.06866982579231262, 0.06887611001729965,
- -0.11549514532089233},
- {0.01342778280377388, -0.4836217761039734, -0.11072295904159546,
- 0.6476761698722839, 0.5931163430213928, -0.7808675169944763,
- -0.35797253251075745, -0.2272079437971115, 0.7021985054016113,
- -0.022765103727579117, -0.8641810417175293, -0.20821577310562134,
- -0.1716800034046173, -0.2285567671060562, -0.4907127618789673,
- -0.4427620768547058, 0.20067904889583588, 0.24365925788879395,
- -0.2677304446697235, -0.33728840947151184, 0.0702209398150444,
- 0.09022712707519531, 0.1330493539571762, -0.3614550530910492,
- -0.30246731638908386, 0.012839858420193195, 0.3226088583469391,
- 0.06072837859392166},
- {-0.040193911641836166, -0.6861724853515625, -0.4070025682449341,
- 0.1424286812543869, 0.21161821484565735, 0.36073726415634155,
- 0.3628085255622864, -0.0990212932229042, 0.42990466952323914,
- 0.5575714707374573, 0.37092170119285583, 0.2522738575935364,
- 0.1157609149813652, 0.47637075185775757, 0.48690155148506165,
- 0.30947044491767883, 0.2960883677005768, 0.07852909713983536,
- 0.3973768353462219, 0.13431915640830994, 0.36592432856559753,
- 0.17452998459339142, 0.13116753101348877, -0.42777925729751587,
- -0.37024176120758057, -0.43283072113990784, -0.5338147878646851,
- -0.4905080199241638},
- {-0.12332254648208618, 0.23759916424751282, -0.2621895968914032,
- 0.03406616672873497, 0.5511227250099182, -0.12509968876838684,
- -0.4177529215812683, -0.47927144169807434, 0.14296410977840424,
- 0.4820209741592407, 0.22033001482486725, -0.13066789507865906,
- -0.7484548091888428, 0.23563754558563232, 0.2622942626476288,
- 0.582843542098999, 0.7955005764961243, 0.9946928024291992,
- 0.14746436476707458, 0.043333325535058975, -0.07848695665597916,
- 0.10714565217494965, 0.12493138015270233, 0.1611987203359604,
- 0.04742865636944771, -0.26901474595069885, -0.10293031483888626,
- 0.010696852579712868},
- {0.04099375382065773, -3.2305996417999268, 0.2543967366218567,
- -0.059577129781246185, -0.14682938158512115, -0.0733993723988533,
- -0.07150989025831223, -0.08204008638858795, -0.12635663151741028,
- -0.10393626242876053, -0.022796161472797394, 0.007641270756721497,
- -0.08665978163480759, -0.01694418303668499, -0.0025942830834537745,
- -0.03163212165236473, -0.022262264043092728, -0.07357636839151382,
- -0.07581206411123276, -0.06286846846342087, -0.1153038740158081,
- -0.04352688044309616, -0.08158870041370392, -0.08570341020822525,
- -0.06179278343915939, -0.11247510462999344, 0.0021329170558601618,
- -0.029320182278752327},
- {0.029462160542607307, -0.5271976590156555, 0.18926401436328888,
- 0.02871791645884514, -0.23120182752609253, -0.786915123462677,
- 0.6471821665763855, 0.4379161298274994, 0.20970848202705383,
- -0.06591341644525528, -0.7760671973228455, 0.38167643547058105,
- 0.5764249563217163, 0.014545980840921402, 0.17091333866119385,
- -0.9253398776054382, -0.09902273863554001, -0.05899110808968544,
- 0.4204649329185486, 0.21064306795597076, -0.5640349984169006,
- -0.24353162944316864, -0.18500371277332306, -0.026613807305693626,
- -0.06437907367944717, -0.34146401286125183, -0.35460934042930603,
- -0.2743520736694336},
- {-0.052965063601732254, -0.5605072379112244, 0.07962799817323685,
- -0.02648513950407505, -0.2291896939277649, -0.16507042944431305,
- -0.016116635873913765, 0.4122294485569, 0.023346038535237312,
- 0.06569206714630127, -0.0031419098377227783, 0.18163825571537018,
- 0.08935528993606567, -0.09544392675161362, -0.3773246705532074,
- 0.0589076466858387, 0.40520086884498596, -0.07905229926109314,
- -0.49348345398902893, -0.35177019238471985, -0.5805748105049133,
- 0.30384382605552673, 0.058458756655454636, -0.26937973499298096,
- -0.2887529134750366, -0.48755502700805664, 0.22864623367786407,
- 0.08268418908119202},
- {-0.1134001687169075, -0.1595868170261383, 0.14256395399570465,
- 0.029054423794150352, 0.15920008718967438, 0.11821631342172623,
- 0.41081133484840393, 0.22583164274692535, 0.4875009059906006,
- -0.017819786444306374, 0.18353310227394104, 0.18164801597595215,
- 0.5451951622962952, 0.04068929702043533, 0.5024164319038391,
- 0.4954160749912262, 0.15857921540737152, 0.07034330070018768,
- 0.10076071321964264, -0.22763016819953918, 0.3141815662384033,
- 0.10078883916139603, 0.3922852873802185, 0.34453365206718445,
- 0.168269544839859, 0.42013704776763916, 0.07419819384813309,
- -0.14518938958644867},
- {-0.06957618147134781, -0.06440338492393494, -0.7259829640388489,
- 0.5161219835281372, 0.09093577414751053, 0.4290890097618103,
- 0.4202098250389099, -0.027972804382443428, 0.545386791229248,
- 0.44505423307418823, -0.12706060707569122, 0.10054849833250046,
- 0.056948449462652206, 0.08831918239593506, 0.8375925421714783,
- 0.025092219933867455, 0.21887224912643433, 0.2599436938762665,
- -0.6995351910591125, 0.9659162163734436, 0.2467847764492035,
- 0.5137833952903748, 0.21108582615852356, -0.11285984516143799,
- 1.2240996360778809, -0.16404935717582703, 0.22046460211277008,
- 0.013526036404073238},
- {-0.004826321732252836, -0.005929495673626661, 0.07865772396326065,
- -0.35655465722084045, -0.260633260011673, -0.37299594283103943,
- -0.3571874499320984, 0.6748940348625183, -0.013674028217792511,
- -0.27069777250289917, -0.28626859188079834, -0.02211541309952736,
- 0.8759161233901978, -0.2193540334701538, -0.2950937747955322,
- -0.1518949717283249, -0.01741132326424122, 0.7278527617454529,
- -0.10758645832538605, -0.14286479353904724, -0.12058365345001221,
- 0.05432174354791641, 0.7359171509742737, -0.20074452459812164,
- -0.24474677443504333, -0.20014965534210205, -0.2710004448890686,
- 0.5048877596855164},
- {0.06318517029285431, -0.06626387685537338, 0.09102978557348251,
- 0.2806074619293213, -0.5871695280075073, 0.01448263693600893,
- -0.17774152755737305, -0.015175321139395237, 0.26823174953460693,
- -0.5144285559654236, -0.10162042826414108, -0.11051122844219208,
- -0.056919533759355545, -0.0963352620601654, -0.292245477437973,
- 0.07747644931077957, 0.049891501665115356, 0.04416292905807495,
- -0.10346058011054993, -0.27070391178131104, 0.16639839112758636,
- 0.13697180151939392, -0.03080388717353344, -0.3958549499511719,
- -0.08085988461971283, -0.15026159584522247, -0.2458583563566208,
- -0.1183728277683258},
- {-0.031412992626428604, -0.5603559017181396, 0.23181116580963135,
- 0.13550354540348053, 0.1384330689907074, 0.466655433177948,
- 0.013126186095178127, -0.1315859854221344, 0.19236598908901215,
- 0.18724070489406586, 0.3651496469974518, -0.2081764191389084,
- -0.21705558896064758, -0.8947001695632935, -0.8844435811042786,
- -0.9548132419586182, -0.8363487720489502, -0.43193918466567993,
- 0.14401763677597046, 0.17948108911514282, 0.22730839252471924,
- -0.05247826129198074, -0.04454374313354492, 0.22061742842197418,
- 0.2703307569026947, 0.2895837426185608, -0.10765346139669418,
- -0.1715518683195114},
- {-0.08773751556873322, 0.1905992329120636, -0.1878463476896286,
- -0.06142798811197281, -0.07157573848962784, -0.15859191119670868,
- 0.2888740599155426, 0.29501354694366455, -0.18804210424423218,
- 0.03719957917928696, 0.04348141327500343, 0.43497395515441895,
- 0.3348860740661621, 0.046619195491075516, -0.012931774370372295,
- 0.43330755829811096, 0.783429741859436, 0.7513718605041504,
- 0.42782992124557495, 0.4602666199207306, 0.8619009256362915,
- 0.21070736646652222, -0.6946675181388855, 0.36241528391838074,
- 0.5762568712234497, 0.41478705406188965, -0.7064434289932251,
- -0.7981423139572144},
- {0.0158368032425642, -0.46186450123786926, -0.04968561232089996,
- 0.08248921483755112, 0.09503590315580368, -0.02358037419617176,
- -0.31207606196403503, 0.5838796496391296, -0.015739191323518753,
- 0.14295169711112976, 0.06756915897130966, -0.23699864745140076,
- -0.031251370906829834, 0.044411782175302505, 0.07595864683389664,
- -0.06131885573267937, -0.2911010682582855, -0.03894522413611412,
- 0.26580068469047546, 0.10324547439813614, -0.22770865261554718,
- -0.43839356303215027, -0.10662800073623657, -1.1684633493423462,
- -0.6824188828468323, -0.5405550003051758, -0.3048187494277954,
- 0.12504103779792786}};
+const float five_dense_weights[FIVE_DENSE_NUM][FIVE_INP_NUM] NN_ALIGNED =
+{
+ {-0.017687507, -2.7726233, -3.18424511, -0.694748878, -1.08251417, 0.252432942, -1.59602427, 0.613304615,
+ -0.0209749062, 0.501225889, 0.428674579, 0.709405005, 0.876026511, -0.0243752133, 0.13531214, -0.0246725027,
+ -0.201236486, -0.210551634, 0.718519807, -0.160790935, 0.316674501, -0.765163124, -0.618982673, 0.612452507,
+ -0.169427812, -0.0110228499, -0.751906395, 0.12217132},
+ {0.305975586, -1.02205753, -0.405607224, 0.760527909, -0.128717557, 1.30133402, -0.276660174, 0.451471746,
+ 0.238462925, -0.126678392, 1.1251303, -0.140467376, -0.202640042, 0.32708323, 0.473448724, 0.89310801,
+ 0.40762493, 0.160802051, -0.0101828268, 0.379917711, 0.201904431, 0.664304197, 0.185341775, 0.560308635,
+ 0.395599753, 0.780205846, -0.653292239, 0.154138252},
+ {-0.0196500644, -2.70877528, -3.66019845, -0.232481405, 0.00873931497, 0.247044995, 0.418322444, -0.051310055,
+ -0.342084587, -0.203185201, 0.0428542271, -0.434620678, -0.298130661, -0.460759789, -0.123185799, -0.176625043,
+ 0.0745659843, -0.888225198, -0.699625373, 0.0152557986, -0.402519584, -0.883676648, -0.559899509, -0.0690891743,
+ -0.24945198, -0.499730766, 0.203070641, -0.438601047},
+ {-0.0378410481, 0.831621885, -5.39371777, -0.464221478, 0.331321567, -0.00553717278, 1.75570929, -0.523817182,
+ 0.584070861, 0.221932322, -0.800884664, -0.179113105, -0.1847056, -0.841097295, 0.201882526, -1.02349102,
+ -0.177126676, -0.0751212165, 0.672071815, 0.079591684, -0.297446489, -0.393640786, -0.622128308, 0.083089076,
+ 0.660041988, 0.11959824, -0.302385867, -1.13328278},
+ {0.184374928, -2.11827135, 0.207292944, 0.17241393, -0.291959703, 0.163224146, 0.584029436, 0.86053741,
+ -0.253029168, -0.380560517, -0.487380594, 0.595696032, 0.623381972, 0.649845064, 0.179142594, -0.428994745,
+ 0.778253853, 0.990351677, 0.215283349, -0.0454968773, 0.656820476, 1.17538595, 0.735170186, -0.131170705,
+ -0.295662344, 1.20901132, 0.301301599, 0.922978342},
+ {-0.0477715209, 0.299437135, 0.096707128, 0.0406936333, -0.175266534, -0.113555215, -0.235045731, -0.163982585,
+ -0.103490964, 0.118130855, -0.123898365, -0.200351447, -0.062734738, 0.102499172, -0.045119781, -0.267439753,
+ -0.128720567, -0.166820407, -0.167664438, -0.0568483882, -0.055328548, -0.0406381711, -0.156312823, -0.213186815,
+ -0.625713587, -0.381198198, -0.178947985, -0.162815019},
+ {-0.0408952162, -3.45756292, -1.34200835, 0.0731342584, 0.0544441901, 0.110050783, 0.344100058, -0.725269496,
+ 0.437899977, -0.537460029, -0.296831816, -1.6424371, 0.172409892, 0.131585047, -0.445751727, 0.217447102,
+ -0.115501568, -0.855109751, -0.481499732, 0.511147738, 0.264388591, 0.727477372, 0.0770836025, 1.02176356,
+ 1.38628113, 1.76832759, -0.0538811684, 0.755088449},
+ {-0.0282496195, -1.09568977, -3.95432925, 0.470584571, 0.272390813, -0.0829138905, -0.253350347, -0.641710341,
+ 0.260734975, -1.08649123, -0.397490114, -0.676264048, -0.49863717, 0.109579749, 0.0378338993, 0.486935675,
+ 1.04397559, -0.0339488238, 0.493080288, -0.246185184, -1.268906, -0.629128814, -0.523642719, -0.320555538,
+ 0.0850056484, -0.432449639, -0.227868319, -0.684521019},
+ {0.126250565, -2.1314621, -9.1196804, -0.0801002756, -0.424118429, -0.138885885, -0.427886397, 0.42626527,
+ 0.533555806, -0.171532229, 0.00831813738, -0.16042164, -0.346267283, -0.441860348, -0.282887459, 0.063266173,
+ 0.64383918, 0.699429333, 0.281832844, -0.0484559052, 0.0195856858, 0.29366672, 0.43402198, -0.270008564,
+ 0.196564257, 1.18874121, 0.194568455, 0.817874253},
+ {0.0998077914, 2.48213387, -5.02890444, 0.589919031, 0.274164915, -0.0167664476, 0.313575327, 0.380198032,
+ 0.580552399, -0.279666334, 0.0576464459, -0.340578943, -0.303388894, 0.0579651445, -0.192700222, 0.259907186,
+ 0.127785906, -0.0286185667, 0.139277443, -0.222778827, 0.191977218, 0.128683344, -0.013065299, 0.525240898,
+ -0.892806232, -0.124871373, -0.37049827, 0.667414367},
+ {0.048153121, -1.46441472, -1.83816898, -0.23596105, -0.0525623932, 0.361069888, -0.404454976, -0.184483185,
+ 0.0100732222, 0.694974899, 0.410766572, 0.378488213, -0.586687922, 0.854564071, 0.794285059, -1.23339212,
+ 0.296620727, 0.896819651, -0.216232404, -1.00979805, -0.610438168, -0.904467702, -0.218700871, -0.0166311953,
+ -0.401803017, 0.120803088, -1.14684284, 0.0952027217},
+ {-0.0324007645, 0.0488809049, 0.157106653, -0.00516019529, 0.0421396233, 0.00136998552, -0.0102051962, 0.0717003495,
+ -0.0423207618, 0.0142850317, 0.0516465977, 0.0280033927, -0.00678033894, -0.00974127091, 0.0116989752, -0.0127554797,
+ -0.00596701447, 0.0552557409, 0.0221525282, 0.0615149625, -0.0233675968, 0.0794110745, 0.12168695, -0.34219563,
+ -0.395809859, -0.362125039, -0.346448332, -0.399106383},
+ {-0.0267151631, -2.56482983, -4.88011217, 0.09028209, 0.179611534, -0.318436384, 0.45468685, 0.520879626,
+ 0.0488886647, 0.09951251, 0.041528035, 0.0312570594, 0.539736152, -0.40504545, 0.340407491, 0.0347913429,
+ 0.485069156, -0.301279783, -0.0366242714, -0.382876962, 0.444674641, 0.628474474, 0.459671855, -0.327964932,
+ -0.628498316, 0.402651817, -0.0973869339, 0.813784003},
+ {-0.183114827, -1.98381853, 0.415526628, -0.0883045942, 0.0517880172, 0.319699973, 0.136292756, -2.29299068,
+ -0.0727772936, -0.110973671, 0.108571291, -0.322578281, -1.352795, -0.332373887, -0.49182418, 0.207086965,
+ -0.253715366, -2.09938145, -0.177402422, -0.0757525638, -0.430394381, -0.404820919, -1.00606346, 0.207171142,
+ 0.350688815, -0.0484649427, 0.183782265, -1.15140569},
+ {-0.0362447836, 1.06354749, -1.23299289, 0.465078086, 1.0613625, -0.75183028, -0.883582592, 1.64945459,
+ 0.30923453, -0.150417224, -0.567531049, -0.0845861062, 0.763042986, -1.40916693, -0.217184648, -0.339353561,
+ 0.705073178, 1.47145176, -0.0275013223, 0.215996116, -0.62504226, 0.786813736, 1.11716723, 0.430455655,
+ 0.426445484, 1.09807837, 0.682189643, 0.793541014},
+ {0.0605719425, -1.5270201, -2.02333045, 0.334690273, 0.097131744, 0.0878544375, 0.664643764, -1.27231848,
+ 0.0590001158, 0.95432061, 1.482342, 0.751511157, 0.282043576, -0.325293154, 0.0423535518, 0.445080817,
+ 0.516905546, 0.0423260964, -0.00436464325, 0.209859475, 0.405998886, -0.2421491, 0.38215062, -0.624033511,
+ 0.980600119, 0.395838708, 0.737524211, -0.0301853959},
+ {-0.264390856, 0.00447343616, 0.572782934, 0.0531108305, 0.143604264, 0.0561246835, -0.474388719, -0.212672651,
+ 0.0809418857, 0.0370290391, -0.390509278, -0.989919364, -0.482206255, 0.164907277, -0.360560507, -0.355930209,
+ -0.627535582, -0.124950886, 0.120545797, -0.0971757472, -1.15071845, -0.749056876, -0.35757491, 0.113903187,
+ -0.0105860615, -1.038571, 0.469155639, 0.342842788},
+ {0.168753788, -2.73271942, -0.158344552, 0.394571871, 0.153508767, -0.486535609, 0.0107338214, 0.183814526,
+ -0.0703299269, 0.328833371, -0.14791061, 0.0572811551, 0.496548027, 1.83897889, 0.661762834, 0.845462322,
+ 1.00526989, 0.24658905, 0.126682073, 0.509696007, 0.686646461, 0.792747617, 0.400123119, -0.0646533072,
+ 0.0701639652, -0.13613975, -0.0214697868, -0.410822034},
+ {-0.126906678, -0.0759056807, -0.475337893, -1.24434912, 0.120860711, -0.0816293582, 0.370602846, 0.126830906,
+ -1.12032413, -0.452190071, 0.378851265, 0.0787992105, 0.452513158, -1.59483504, -0.925934017, 0.0985669047,
+ -0.0592967831, -0.063750416, -0.806170225, -0.904370308, -0.0288544223, 0.140288487, 0.204684362, -0.737900376,
+ -1.18681502, 0.311962366, -0.23348704, 0.325737089},
+ {0.042846255, -1.01401317, -0.787675023, 0.320858449, 0.600958943, 1.01925588, 1.41290712, -0.625177979,
+ -0.527758777, -0.245332941, 0.231125176, 1.03572583, 0.0886845738, -1.55435121, -0.119136661, -0.516718507,
+ 1.08180618, 0.321707219, -0.964534223, -0.77063024, -0.568375289, 0.638082147, 0.399400443, -0.504099786,
+ -0.93797797, -0.461517245, 0.552734435, 1.21082044},
+ {-0.0027246878, -0.822401404, -5.78269768, -0.367361158, 0.0395893529, -0.632945657, -0.79833281, -0.960032165,
+ 0.661225736, 0.500198066, 0.058203496, 0.127557114, 0.105093434, 0.660576642, 0.888604403, 0.400705993,
+ -0.280454457, 0.440834939, -0.725442648, -0.461237013, -0.481059194, -0.216810524, -0.146271884, -1.33439291,
+ -0.323164523, 0.0793281496, -0.707304299, 0.26752919},
+ {0.0547249876, 1.82959437, -3.78089833, 0.828881621, 0.294022411, 0.608274877, 0.0549198091, 0.63434273,
+ -0.005911869, 0.297854215, 0.802860022, 0.964098036, 0.629039109, -0.419598252, 0.104968935, 0.726039469,
+ 0.228668824, -0.102511063, -0.448736191, -0.677962899, 0.47755897, 0.102762185, 0.0820724443, -0.462765187,
+ 0.160549238, 0.679351926, 0.450417966, -0.00261037424},
+ {0.0740314499, 0.125401676, -6.3721447, 0.130388469, -0.0373040326, -0.25745067, 0.415108651, 2.04560685,
+ 0.0510546863, 1.47437394, -0.454688609, -1.12459505, 0.154450417, 0.380756974, 0.356446415, -0.0130162379,
+ -0.143411413, -0.250218809, -0.0217493474, 0.19030562, 0.974928677, 0.225417852, -0.636997759, 0.965796292,
+ 0.54893893, -0.320783466, 0.22444652, -0.0994358808},
+ {0.088921845, 0.501326561, 0.0984886885, -0.0642404482, -0.0899887159, 0.00427165208, 0.0686437488, 0.0139860315,
+ -0.0470670536, -0.0333355293, 0.06151684, 0.0388135798, 0.0823084116, 0.0565618165, 0.0938319117, 0.113721102,
+ 0.0392451994, 0.0705398023, 0.00511221588, 0.0808409825, 0.042969346, 0.307290494, 0.399382472, 0.641138136,
+ 0.585508347, 0.644836426, 0.561508, 0.290235937},
+ {-0.0653936565, -7.93236113, 0.182766557, -1.34688294, -0.906135321, -0.678245366, -0.878894389, -0.463245302,
+ 0.508853018, -0.663949072, 0.52267462, 0.601760328, -1.02037764, 0.266515017, 0.697541535, -0.0412226915,
+ 0.145522296, -0.621190965, -0.470039606, 0.289924204, 0.502045512, 0.254058033, -1.25108385, -0.0010011862,
+ 0.235496506, -0.0438185334, 0.0435181446, 0.0483496264},
+ {-0.0155108329, -5.65538692, -3.72422981, -0.229338065, -0.142547324, -0.0605753995, 0.774035037, 0.605769455,
+ 0.649825454, -0.32895577, -0.516424835, -0.467582762, -0.492001206, 0.315332323, 0.305014402, -0.826091528,
+ 0.470321804, 0.592903495, 0.539531887, 0.114279613, 0.753841937, -0.0721266344, 0.203808784, -0.191284075,
+ -0.400418758, 0.962654769, 0.540521801, -0.192482814},
+ {-0.0841482431, -3.11816883, 2.52213597, 0.221693054, 0.39964658, -0.126087815, 0.396655947, -1.00298798,
+ -0.0180124193, 0.0227001999, 0.101735108, -0.504606009, -0.795736074, 0.26131025, 0.0629129708, -0.182299256,
+ -0.58673501, -0.379303366, -0.729669929, -0.605720103, -1.0318737, -1.10907018, -1.38460314, -1.86592114,
+ -1.74185932, -1.66521406, -2.83507466, -1.5353936},
+ {-0.0271777753, -1.65670753, -0.138010547, -1.38469684, 0.871935904, 0.606624186, 0.542895257, 0.734829485,
+ 1.23499441, 0.341616333, -0.0553627461, -1.2573204, 0.975557566, -0.716557145, -1.01092935, -0.102436081,
+ -0.756014705, -0.881072462, 0.145312831, 1.41733027, 0.541355014, 0.752016008, -0.619402647, 0.801285207,
+ 0.771121264, 0.549716473, -0.60874182, -0.553624809},
+ {0.243606463, -3.29466152, -8.61932087, 0.288695276, 0.121720523, 0.830552101, -0.176525846, -0.209575742,
+ -0.368370116, 0.531418085, 0.00779051706, 0.153792143, 0.449948102, 0.128135011, 1.1711061, 0.0699489042,
+ 0.0200876687, -0.361263305, 0.574860215, 0.273856223, -0.179232404, 0.330728799, -0.162115857, 0.0653959066,
+ 0.245886594, 1.64160967, -0.575041175, -0.489283413},
+ {0.0341560878, -0.321620941, -0.0295257904, 1.00346386, 1.44676077, 0.791196287, 1.43390977, 0.750319719,
+ 0.439511091, 0.828590572, 0.759809554, 1.12685275, 0.702608287, 0.368128806, 0.165622681, -0.404972076,
+ -0.400121003, -0.533207476, -0.406070203, 0.291544706, -0.191007957, -0.705734134, -0.793099105, 0.45004946,
+ -0.364261448, -0.528324485, -0.760637164, -0.856404066},
+ {-0.154523775, -7.1212039, -2.95486689, -0.102876522, -0.578914523, -0.776420832, 0.0445834026, -0.941871524,
+ -0.243689641, 0.0435830429, -0.0094085047, -0.357761919, 0.327104092, 0.278522372, -0.414925843, 0.00678584166,
+ -0.189761534, -0.30789718, 0.246894091, -0.0841052905, 0.547891974, 0.0347051807, 0.193204001, -0.786870241,
+ -0.19485724, -0.850490034, -0.185127094, -0.0103808334},
+ {0.154930294, -2.91853547, -2.62348175, -0.295651615, 0.619947314, 0.568406582, -0.621971428, -1.31148922,
+ -0.450834066, 1.25342667, 0.638317049, 0.321380526, -0.0133571848, 0.0633455813, -0.230508134, 0.775423288,
+ -0.129944548, -0.623022139, 0.157232463, 0.693214595, 0.962514102, 0.968111694, 0.442186743, 0.606270015,
+ -0.0221443865, 1.13181746, 0.17731142, 1.04531753},
+ {-0.246409684, -6.74617147, -1.41480792, -0.708906829, -0.492658496, -0.835357666, -0.793199182, 0.467104375,
+ -0.669779599, -1.29326534, -1.48258626, -0.305342972, 0.621524036, -0.870909035, -0.791852295, -0.92264545,
+ -0.115044825, 1.05326974, 0.191751197, -1.09994972, 0.0167585313, -0.168009833, 0.528036594, -0.0911829546,
+ -0.305217266, -0.371205837, -0.628309309, -0.511189222},
+ {-0.0183637235, -5.97602224, -1.54999542, 0.27182433, 0.700630844, 0.587660611, -0.899789035, 1.0387249,
+ 0.454046667, 1.03051603, 0.699271917, -0.0274554752, 0.131003663, -0.302187681, 0.0699125826, -1.54073298,
+ -0.831891894, 0.151683837, -0.519377828, -0.708282888, -1.0392046, -1.00961077, -0.302910656, 0.172927633,
+ 0.320221275, -0.775013685, 0.952375174, 0.952872753},
+ {0.0252061635, 0.463108838, -1.40316641, 0.34715414, -1.18511271, -1.52132845, -0.0562454909, 0.533362091,
+ -0.115779579, -1.35110748, -0.104003109, 0.343484044, 0.512594402, 0.22683759, 0.285169482, -0.0378336683,
+ 0.800351322, 0.825654924, -0.0724470392, 0.333263576, 0.426456064, 0.316955447, 0.165265813, 0.210159793,
+ -0.0645591319, 0.241320148, 0.183158502, -0.323120356},
+ {0.0471641235, -2.09173703, -5.94888783, 0.0363560803, 0.764787674, 0.434283227, 0.118441857, 0.369244814,
+ 0.16298613, 0.406094819, 0.15197961, 0.386405736, -1.06589234, 0.909065962, 0.2885952, -0.681465864,
+ -0.53678304, 0.466727346, -0.853846252, -0.349436104, -0.697404444, -0.223913014, -0.414722085, -1.25803828,
+ 0.211821601, 0.147400647, 0.665444076, 1.65016246},
+ {-0.132126927, -2.40161395, 1.52905095, 0.302902311, 0.0542309545, -0.789496779, -0.349242747, 0.379570693,
+ 1.09054339, -0.873692811, -0.557734251, 0.136953861, 0.392721862, -0.594784379, -0.300673991, -0.769517303,
+ 0.534889638, 1.03687501, -0.000797802815, 0.0740987659, -0.972185016, 0.100398093, 0.623595774, -0.0817591697,
+ 0.459222734, -0.156905219, -0.556149125, -0.195875064},
+ {0.168103874, -3.38225269, -7.45486927, 0.0790208653, -0.0613481291, -0.353706211, -0.173535258, -0.133646145,
+ 0.383227289, -0.187396392, 0.787273526, 0.758880019, 0.0788550526, 0.422653973, -0.95701468, -0.121355377,
+ -0.180833474, 0.213991895, 0.483774126, -0.603395939, 0.393965006, 0.342686743, -0.334660411, 1.14106202,
+ 0.873602152, -0.116890632, -0.607477129, 0.686908424},
+ {0.0467888638, -2.20089507, -6.09024811, 0.53390193, -0.0421328396, -0.868572891, -0.188594535, 0.317230076,
+ 0.399568319, -0.428844392, -0.156383097, -0.198275939, 0.0449278951, 0.10434451, -0.0901117474, 0.165104106,
+ -0.51992178, 0.64246875, -0.121786334, -0.349139869, -0.468592167, -0.249722928, 1.30048633, 0.606188893,
+ 0.635607362, -0.710971713, 0.583102643, 0.605073988},
+ {0.0656126142, -3.28207159, -4.81875515, -1.07968974, -0.145864934, 0.154669747, -0.280969352, 0.320753038,
+ -0.212449029, -0.167698443, 0.0577522963, 0.0185784008, 0.337892562, -0.397121102, 0.431193471, 0.0942988172,
+ 0.12814635, 0.339847893, -0.115297936, -0.532593846, 0.440031469, 0.317035586, 0.112250544, -0.488547266,
+ -0.292454779, -0.132742479, 0.273396432, 0.333468407},
+ {-0.186328053, 0.441147774, 0.448496431, -0.146070749, -0.0183207784, -0.522439063, -0.24307026, -0.214465037,
+ -0.200205803, -0.2869699, -0.589705765, -0.304230481, -0.72798723, 0.158653632, -0.486724168, -0.909697711,
+ -1.16272378, -1.2644918, -1.39410186, -1.05124629, -1.00886631, -1.58502269, -1.22878945, -0.314202309,
+ -0.460029751, -0.891982436, -0.128585771, -0.0126661994},
+ {0.00504760165, 0.144426256, -0.246634945, 0.35747838, -0.820366442, 0.433128923, -0.046665296, 0.254659474,
+ -0.371240526, -0.832461119, 0.402360827, -0.797696292, -0.00146429334, 0.438332766, -0.751465261, -0.465652227,
+ -0.0487003475, -0.0501887538, 0.337998003, 0.453143507, -0.205787376, -0.415506274, -0.392902464, -0.175161168,
+ -0.69014442, -0.761076927, 0.373483717, -0.439977497},
+ {0.135555208, -0.6259197, -0.51970458, -0.194122896, 0.164750054, 0.143113479, -0.045417577, -0.738947809,
+ 0.227071077, 0.371185422, -0.29501313, 0.0408539958, -0.70412004, 0.486674011, 0.94399339, 0.75646466,
+ 0.485905141, 0.0377950147, 0.0715787932, 0.327870905, 0.665078521, 0.371901304, 0.542856693, -0.142165869,
+ 0.908733845, 0.582243383, 0.33418268, 0.139892861},
+ {-0.0648913607, -0.230966255, -0.259601831, -0.0745151713, 0.0472630002, -0.321782976, -0.306530833, -0.157662004,
+ 0.0254050847, 0.324624449, -0.0709752813, -0.141884401, 0.0507391579, -0.0757056847, -0.157681957, -0.119420625,
+ -0.262200207, -0.0173902176, -0.0164132658, 0.193601683, 0.0987579525, -0.175446317, -0.131138459, -0.0735060126,
+ -0.277159184, -0.252765417, -0.369196773, -0.257921219},
+ {0.0844778866, 0.892540693, -1.32926595, 0.456822187, -0.693393826, -0.585095227, -0.125464708, -0.528994083,
+ 0.319878489, 1.00453937, 0.309393376, 0.126583681, 0.435089469, 0.289659441, 0.0382879786, -0.516187608,
+ -0.472498536, -0.391363978, 0.923955619, -0.0638227761, -0.174506798, 0.584563315, 0.0489761271, 0.303213388,
+ 0.216605738, 0.0317115039, -0.321899742, -0.564079046},
+ {0.0189528465, -3.0205822, -1.68587577, -0.251698524, -0.475433588, -0.971832633, -1.07393265, -1.38159871,
+ -0.768532395, -1.3485446, 0.672052383, 0.750761509, 0.0974989012, -1.22051561, -0.304549128, 0.0599426366,
+ 0.848886073, 0.148535281, -1.01976526, 0.19406943, 1.04196799, 0.341549993, 0.302664399, -2.00212812,
+ -0.044665616, 1.33579087, 2.18833113, 0.196794346},
+ {0.0786969289, 0.207598895, 0.486236781, 0.0531402193, -0.0630944371, 0.136102006, 0.185946807, 0.0467807129,
+ 0.157476917, 0.132640272, 0.0891285166, 0.127292573, 0.0694935322, 0.149040863, 0.145731449, 0.0687535703,
+ 0.101524286, -0.00716298493, 0.592883408, 0.49983862, 0.493310422, 0.510374248, 0.475238651, 0.0772901922,
+ 0.0741703436, 0.0470497161, 0.110227838, 0.102081731},
+ {-0.103361376, -2.65235138, 2.07695842, -0.81054908, -0.313742459, -0.763440788, -0.25050804, -0.59270668,
+ -0.408340752, -0.354886025, -0.75516212, -0.6777547, -0.946402073, -0.154148415, -0.291553974, -0.731240928,
+ -0.48112008, -0.576338828, 0.555637181, 0.585384488, 0.096024178, 0.0230386611, -0.179106727, -0.642500818,
+ -1.17103994, -0.360282987, -0.405690193, -0.128080323},
+ {0.120190412, 2.18909144, -8.46683598, 0.690627515, 0.534538269, 0.510531306, 0.210100189, 0.479442775,
+ 0.41575247, 0.149613187, 0.134456545, 0.483546972, 0.396226913, 0.683880866, -0.0265977494, 0.13370809,
+ 0.370286822, 0.372812271, 0.44955197, 0.32776165, 0.252264082, 0.323883742, 0.545395017, 0.556549609,
+ 0.713437796, 0.263677776, 0.729170442, 0.803847492},
+ {-0.00990546681, -1.16817534, -3.404778, 0.00472787581, 1.45350289, 0.407304466, 0.117262423, 0.6980654,
+ -0.755611539, 0.373543829, 0.576888978, -0.259640276, 0.80543679, 0.58156544, 0.613461792, -0.319180429,
+ 0.0519511364, 0.0127357244, 0.138550594, -0.503188372, -0.34847036, -0.193370789, -0.272770047, -0.144270316,
+ 0.307402313, 0.333475471, -0.0797477737, -0.451472282},
+ {-0.0810644105, -5.36067104, 3.63138127, -0.767825305, -0.730496109, 0.0861925483, -0.584841967, -0.235753119,
+ -0.637050331, -0.281115383, -0.364885002, -0.565459013, -0.305406958, 0.171418488, -0.0766901374, 0.0344355367,
+ -0.217474326, -0.263764828, -0.272660613, -0.128348693, 0.198026255, -0.154312968, -0.705682576, -0.0981741697,
+ 0.0157494843, 0.0139397345, -0.225139171, -0.429867446},
+ {0.0494806357, -2.62793899, -3.30275679, -0.676860929, -0.242857337, -0.999933064, 0.453973234, 0.0451071896,
+ 0.915692508, 0.184754789, 0.301989079, 0.374045968, -0.240403205, 0.609903097, 0.50146383, 1.25471568,
+ 0.352856666, -0.193567917, 0.592190742, 0.410122901, -0.271732777, -0.207192421, -0.91588062, 0.171692029,
+ 0.970233381, 0.633579373, 1.08946228, 0.914925992},
+ {-0.128533393, -4.59956074, -2.25347877, -0.857251048, -1.41797447, -2.11075878, -1.90714383, -1.73755312,
+ -0.64231056, -0.21889554, 0.0228042938, -0.325732946, -0.130355373, 0.54209137, -0.396911502, 0.307778239,
+ -0.332568079, 0.079002291, 0.73528564, 0.116297394, -0.634565234, -1.46313703, 0.204324812, -0.150854513,
+ 0.996054411, -0.518678546, -0.318085939, 0.120147653},
+ {-0.185454667, -9.22687817, -0.771052778, -0.477409929, -0.372024924, -0.277389944, -0.343998075, -0.862956285,
+ -0.630431712, -0.155055434, -0.634139299, -0.43316412, -0.50519067, -0.437925428, -0.199404866, -0.337778926,
+ -0.259445459, -0.511975288, -0.529878914, -0.478819311, -0.437376946, -0.463468611, -0.42474857, -0.668455541,
+ -0.534354448, -0.540537477, -0.499020278, -0.60747695},
+ {0.217490569, 2.23294711, -1.73882985, 0.354090869, 0.511141896, 0.599470794, 0.54344368, 0.325394273,
+ 0.77486825, 0.729058921, 0.719261944, 0.751142442, 0.613670409, 0.818025529, 0.808399796, 0.691641152,
+ 0.767163217, 0.672254205, 0.791349888, 0.961657524, 0.684984148, 0.744035125, 0.633737922, 0.445100725,
+ 0.764385223, 0.599274218, 0.569571316, 0.36910665},
+ {0.0680011883, -0.141525134, 0.608115494, 0.106840186, -0.061644841, 0.311127216, -0.0361108258, 0.255941838,
+ -0.254869759, 0.0517963171, 0.112334773, 0.279684216, 0.466534257, 0.45050621, 0.206787363, 0.24129279,
+ 0.2476044, -0.000249022385, -0.0412789732, -0.120305732, 0.403608739, 0.420840859, -0.0191493798, -0.176183328,
+ -0.0729398727, 0.517172635, 0.125035092, 0.00305919233},
+ {0.136051759, -0.0154735642, -1.08757341, -0.746539235, -0.589996576, 0.321027815, 0.757336795, 0.248112336,
+ -1.42974126, -0.225172669, 0.400551528, 0.481706113, 0.802500308, -0.993251145, -0.414106816, 0.114978746,
+ 0.0362451002, 0.223054335, 0.259547591, 0.0493675098, 0.021725541, -0.141420424, 0.141650572, -0.383692712,
+ -1.13459575, -0.370508611, 0.531831622, -0.394069403},
+ {-0.0247515328, -3.75203705, -3.28242469, -1.09618807, -0.0671465099, 0.317322344, -0.53469032, -0.403174758,
+ 0.290458262, -0.059117496, -0.284698397, 0.418337703, 0.331433296, 0.201873526, 0.0269236341, -0.131931692,
+ -0.401278794, -0.542468548, 0.0979440659, -0.375371873, 0.106137544, -0.0227250904, -0.0387178957, -0.770952106,
+ 0.473305196, -0.14553991, 0.0323893614, -0.0983058661},
+ {0.121550478, -1.20097578, -2.96541047, -0.981075048, 0.95280093, 0.75922364, 0.0870448053, 0.896997392,
+ 0.7241624, 0.315399319, 0.311144173, 0.356648207, 0.169853419, 0.461099893, -0.353262663, 0.620792806,
+ -0.141449422, -0.524455607, -0.170073077, 1.27285218, 0.210375085, 0.0834764838, -0.102093987, 0.0176223777,
+ -0.141467556, 0.746384025, 0.170173422, -0.69785428},
+ {-0.0791102052, -0.347374827, 0.107073911, 0.233195081, -0.206529081, -0.30429247, -0.497484356, 0.151661664,
+ -0.5368101, -0.0362392329, -0.123587944, -1.00701988, 0.0480095968, -1.06661069, -0.659112275, -0.321277708,
+ -0.622343838, -0.627477169, -0.541736662, -0.709596395, -0.571051478, -0.710240304, -0.452208102, -0.527482331,
+ -1.0322777, 0.00206571748, -0.231442511, -0.497865587},
+ {0.0845473409, -1.38251448, -3.05260706, -0.0213376638, 0.744133651, -0.601952314, -0.581485391, -0.629590273,
+ 0.308812827, -0.246839851, 0.53752625, -0.445156962, 0.722199798, 0.375423521, 0.0240628216, 0.416546077,
+ -0.438310236, -0.272160798, 0.879133999, 0.289178818, 0.154044807, 0.517107129, 1.06396961, 0.161833867,
+ 0.856201231, 0.824694753, -0.569748759, 1.1690824},
+ {0.0797297731, 1.23410141, -0.649697781, -0.785597503, 0.0405770466, 0.189385891, 0.0761621445, -0.21260345,
+ -1.92817712, 0.354788899, -0.0287855789, -0.436804414, -0.484741211, -0.368482411, 0.0218798611, 0.178884551,
+ -0.500666261, -0.526111066, -0.113748975, -0.143456414, 1.12657678, 0.0987133533, -0.176197022, -0.0326661766,
+ -1.00384998, 0.378343344, 0.369729102, 0.0732632577},
+ {0.0749957487, 0.647937, -0.139397129, 0.149107605, 0.117675401, 0.0703874156, 0.155242607, 0.391989201,
+ -0.0147751728, 0.248808801, -0.0176097173, 0.354990423, 0.105021313, 0.310541123, 0.479488283, 0.399166375,
+ 0.623566747, 0.550043166, 0.490510315, 0.267156988, 0.420536071, 0.411517382, 0.211521819, 0.0443741903,
+ 0.315481931, -0.122099027, 0.219476625, -0.0325079039},
+ {-0.314885944, -9.91029453, -1.01080608, -0.535474598, -0.661661565, -0.0400171913, -0.684226394, 0.0739472285,
+ -0.637683392, -0.234634548, 0.262685686, 0.352341652, -0.384370744, -0.684700787, -0.639763236, -1.006724,
+ -1.14319217, -0.602748215, -0.278669477, 0.439627349, -0.624651015, -0.688860774, -0.479809672, -0.274525553,
+ -0.237743154, -1.14651179, -0.605139911, 0.308806986},
+};
-const float five_dense_biases[FIVE_DENSE_NUM] = {
- -0.1444406658411026, -0.9969395995140076, -0.6437257528305054,
- -0.5090100169181824, -0.4562266170978546, -0.7947681546211243,
- -0.66095370054245, -0.0757993534207344, -0.6305758357048035,
- -0.6522586345672607, -0.6137698292732239, 0.06795938313007355,
- -0.5988752841949463, -0.022649021819233894, -0.559893012046814,
- -0.34122252464294434, 0.21291229128837585, -0.9544443488121033,
- -0.5839042663574219, -0.3325875997543335, -0.8768086433410645,
- -0.3371303975582123, -0.804802417755127, -0.7296857833862305,
- -0.24707458913326263, -0.9100144505500793, -0.7247095704078674,
- -0.6324146389961243, -0.42117181420326233, -1.2145949602127075,
- -0.7118635177612305, -0.9112556576728821, -0.21369697153568268,
- -0.10298735648393631, -0.8274878263473511, -0.6126794219017029,
- -0.7786099314689636, -0.5083696246147156, -0.38434338569641113,
- -0.468181848526001, -0.5246707201004028, -0.6266580820083618,
- -0.3932459354400635, -0.6446056365966797, -0.8690927028656006,
- -0.7806448936462402, -0.7514670491218567, -0.4992736577987671,
- -0.4725331962108612, -0.8359085321426392, -0.3995131254196167,
- -0.701408326625824, 0.13735836744308472, -0.7701425552368164,
- 0.37747254967689514, -0.8496323227882385, -0.41388845443725586,
- -0.3626680374145508, -0.4750637412071228, -1.0076007843017578,
- -0.4247843325138092, -0.8280375599861145, -0.8584521412849426,
- -0.49181294441223145};
+const float five_dense_biases[FIVE_DENSE_NUM] =
+{
+ -2.24697518, -2.79671645, -2.29277706, -1.64123476, -2.97337246, -1.55279529, -1.48783553, -2.33274174,
+ -1.22874868, 2.39438224, -3.13994718, -1.4903506, -2.2855773, -1.14909065, -0.74406594, -2.89792275,
+ -3.12807941, -2.84854364, -2.97222972, -1.20280099, -2.2895298, 0.345206112, -0.404011369, -2.12997103,
+ 0.026584696, -1.72927654, -1.31738377, -2.38992381, -1.09590578, -2.08547592, -2.00498819, -2.67043161,
+ -1.79812217, -1.43836403, -1.71620834, -1.53693056, -0.234484181, -1.45272624, -1.72868788, -1.82437479,
+ -2.66851068, -2.93813992, -2.29339194, -1.71646988, -2.62597537, -1.40944898, -2.04996037, 1.15793979,
+ 1.40398467, -2.33760524, 1.23705673, -2.31002736, -0.673910081, 1.02907646, 1.49880397, -2.22889376,
+ -2.86746573, -2.31694722, -2.66456366, -2.4524951, -2.56475425, 0.264515311, -2.28604388, -1.6073668
+};
-const float five_output_weights[2][FIVE_DENSE_NUM] = {
- {-0.10164133459329605, -0.06545510143041611, -0.12559004127979279,
- -0.09770263731479645, 0.020511239767074585, -0.11956804245710373,
- 0.0725698173046112, 0.09884587675333023, 0.03334106504917145,
- -0.07531746476888657, -0.04404358193278313, 0.04667624458670616,
- -0.10733920335769653, 0.11603111028671265, -0.09832630306482315,
- -0.029710080474615097, 0.6112914681434631, 0.09875980764627457,
- 0.04528747498989105, 0.04975724592804909, 0.05296019837260246,
- -0.1494731307029724, 0.06372635811567307, 0.05117323249578476,
- -0.4960876405239105, 0.08172430098056793, 0.09049712121486664,
- 0.16494503617286682, 0.12463495880365372, 0.10889994353055954,
- 0.0901939794421196, -0.07425925135612488, -0.09327994287014008,
- 0.07225991785526276, 0.0995996817946434, 0.1002214103937149,
- 0.13605892658233643, -0.2738678455352783, 0.07213583588600159,
- 0.031051557511091232, -0.09413432329893112, -0.05657240375876427,
- 0.023954149335622787, -0.11132869869470596, 0.0918613076210022,
- 0.1731780767440796, -0.048148252069950104, -0.08594620227813721,
- -0.07079077512025833, 0.028347637504339218, 0.04007003828883171,
- -0.08521876484155655, -0.13736766576766968, 0.0973486453294754,
- -0.3953056037425995, -0.09303829818964005, 0.0926792323589325,
- 0.08662958443164825, 0.07239469885826111, 0.12995171546936035,
- -0.08624651283025742, -0.13703757524490356, 0.1074426919221878,
- -0.05400789529085159},
- {0.09475231915712357, 0.10763916373252869, 0.10490848124027252,
- 0.051702577620744705, -0.025973767042160034, 0.1243276372551918,
- -0.09184729307889938, -0.09110323339700699, -0.10927686840295792,
- 0.07648954540491104, 0.08314546942710876, -0.054432936012744904,
- 0.11420167982578278, -0.14501862227916718, 0.07449985295534134,
- 0.04114171117544174, -0.5540419816970825, -0.11702275276184082,
- -0.057106584310531616, -0.11389349400997162, -0.04799086973071098,
- 0.11528362333774567, -0.10561501979827881, -0.06099977344274521,
- 0.5406088829040527, -0.07843243330717087, -0.07121624052524567,
- -0.15534670650959015, -0.10739737004041672, -0.10599866509437561,
- -0.03090781159698963, 0.1024080142378807, 0.11164399981498718,
- -0.10347762703895569, -0.09762325882911682, -0.044070787727832794,
- -0.1382112205028534, 0.2635824978351593, -0.013381495140492916,
- -0.017522230744361877, 0.09075458347797394, 0.08058229833841324,
- -0.03840004280209541, 0.08596818149089813, -0.10802465677261353,
- -0.17988164722919464, 0.08185803890228271, 0.09076226502656937,
- 0.042497776448726654, -0.0991385206580162, -0.03188726678490639,
- 0.0789727196097374, 0.12080144137144089, -0.12002957612276077,
- 0.3941708207130432, 0.07739747315645218, -0.04954647645354271,
- -0.10626203566789627, -0.054530855268239975, -0.19077910482883453,
- 0.07939524203538895, 0.10724455863237381, -0.09315766394138336,
- 0.07806982845067978}};
+const float five_logit_weights[FIVE_DENSE_NUM] NN_ALIGNED =
+{
+ 0.731341183, 2.23163199, 0.949222744, 0.296105713, 1.15792906, -3.42066145, 0.183252349, 1.14736974,
+ 1.31554925, 0.112483598, 1.14517629, -6.70101404, 1.21333194, -0.108623341, 0.0844625309, 1.39609873,
+ -2.15012026, 2.09257817, -1.00639415, 0.0941660404, 0.995582104, 0.0935992077, 0.140742123, 4.60981607,
+ -0.149704531, 1.17570782, -0.0730246454, -0.163265958, 1.5062983, 0.123115465, -1.43543541, 1.99429679,
+ -0.96264106, -0.183488742, 0.176509976, 0.478997976, -0.100140609, 1.20759714, 1.40249825, 1.35177362,
+ -0.17572777, -1.53293693, 1.50571012, -3.87809801, 0.552025557, -0.084801957, 6.23696709, -0.112289943,
+ 0.204722211, 0.951846004, -0.109762318, 0.919938505, -0.1393639, -0.47155264, 0.669605315, 3.53084946,
+ -1.02313769, 1.25685394, 0.606329083, -2.37867737, 0.991012573, 0.101894319, 4.19737768, -2.38213611
+};
-const float five_output_bias[2] = {0.3762611150741577, 0.6172211170196533};
+const float five_logit_bias = -1.19490004;
diff --git a/include/weights_5.h b/include/weights_5.h
index 6f376ee..db2a69f 100644
--- a/include/weights_5.h
+++ b/include/weights_5.h
@@ -1,5 +1,5 @@
/*
- This file is part of ct.
+ This file is part of ctak.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -12,13 +12,25 @@
General Public License for more details.
You should have received a copy of the GNU General Public License
- along with ct. If not, see <https://www.gnu.org/licenses/>.
+ along with ctak. If not, see <https://www.gnu.org/licenses/>.
*/
+#ifndef WEIGHTS_5_H
+#define WEIGHTS_5_H
+
#define FIVE_INP_NUM 3 + 5 * 5
#define FIVE_DENSE_NUM 64
-extern const float five_dense_weights[FIVE_DENSE_NUM][FIVE_INP_NUM];
+/*
+ * 16-byte alignment so the evaluation dot products can be
+ * auto-vectorised (SSE2 / NEON); the generated weights file defines
+ * the arrays with the same attribute.
+ */
+#define NN_ALIGNED __attribute__((aligned(16)))
+
+extern const float five_dense_weights[FIVE_DENSE_NUM][FIVE_INP_NUM] NN_ALIGNED;
extern const float five_dense_biases[FIVE_DENSE_NUM];
-extern const float five_output_weights[2][FIVE_DENSE_NUM];
-extern const float five_output_bias[2];
+extern const float five_logit_weights[FIVE_DENSE_NUM] NN_ALIGNED;
+extern const float five_logit_bias;
+
+#endif
diff --git a/include/weights_6.c b/include/weights_6.c
index 97e04ea..46a4b2a 100644
--- a/include/weights_6.c
+++ b/include/weights_6.c
@@ -1,927 +1,353 @@
-/*
- * Model: "model"
- * _________________________________________________________________
- * Layer (type) Output Shape Param #
- * =================================================================
- * input_1 (InputLayer) [(None, 39)] 0
- *
- * dense (Dense) (None, 64) 2560
- *
- * dense_1 (Dense) (None, 2) 130
- *
- * =================================================================
- * Total params: 2,690
- * Trainable params: 2,690
- * Non-trainable params: 0
- * _________________________________________________________________
- * ([0.43337419629096985, 0.8247458338737488], [0.439096063375473,
- * 0.8229411244392395])
- */
-
+/* generated by nn_train.py, do not edit by hand */
+/* v000, random init */
#include "weights_6.h"
-const float six_dense_weights[SIX_DENSE_NUM][SIX_INP_NUM] = {
- {0.0938403531908989, -0.1767289787530899, -0.2594544291496277,
- 0.0691506490111351, -0.3403625190258026, 0.2910526692867279,
- 0.2831748127937317, 0.09303940087556839, 0.2586047351360321,
- 0.07098056375980377, -0.3649413287639618, 0.04592672362923622,
- 0.2833174765110016, 0.009526161476969719, -0.14935271441936493,
- -0.10905721783638, -0.09543487429618835, -0.1335684210062027,
- 0.279418408870697, 0.21970123052597046, 0.03924116864800453,
- 0.2525206208229065, -0.07575967162847519, 0.003592552850022912,
- -0.3410177528858185, -0.2946719229221344, -0.42420369386672974,
- 0.25425875186920166, 0.09701071679592133, 0.048269227147102356,
- -0.12546728551387787, -0.13410994410514832, -0.021736539900302887,
- 0.08405961841344833, 0.2916780710220337, -0.2674121856689453,
- 0.11115898936986923, 0.15194286406040192, 0.05519171059131622},
- {0.03854886814951897, 0.047170158475637436, -0.5652578473091125,
- -0.1501774787902832, 0.19765394926071167, 0.49258941411972046,
- 0.442907452583313, 0.6037927865982056, 0.7828888297080994,
- 0.7239607572555542, 0.5416994690895081, 0.3247818350791931,
- 0.1419774442911148, 0.07112716138362885, -0.48371824622154236,
- 0.03897036612033844, 0.16006605327129364, -0.19231346249580383,
- -0.11129150539636612, -0.04494927451014519, -0.2814842164516449,
- -0.009567379020154476, 0.12357877939939499, -0.08806543052196503,
- -0.3350891172885895, -0.21195265650749207, 0.0829022154211998,
- 0.153797909617424, 0.13344310224056244, -0.23193320631980896,
- -0.3241296708583832, -0.2072569876909256, -0.08946460485458374,
- 0.19245360791683197, 0.06570465862751007, -0.07437288016080856,
- -0.2344023883342743, -0.1934940367937088, -0.3033899962902069},
- {0.09298650920391083, 0.1298256516456604, -0.26803141832351685,
- 0.10323704034090042, 0.31999361515045166, 0.10086508840322495,
- -0.25076261162757874, -0.24714693427085876, -0.07469244301319122,
- -0.1501404047012329, 0.08652600646018982, 0.14937622845172882,
- -0.20169629156589508, -0.2770548462867737, -0.19903460144996643,
- -0.1816127896308899, 0.2517884373664856, 0.3161589205265045,
- 0.5760500431060791, 0.6995037198066711, 1.0056625604629517,
- -0.10604166984558105, -0.029168294742703438, -0.013238683342933655,
- 0.28708288073539734, -0.5204426646232605, -0.2549469769001007,
- -0.11407356709241867, 0.00998044852167368, 0.03189884498715401,
- 0.05421498417854309, -0.1683892011642456, -0.1772622913122177,
- 0.1778106987476349, -0.06838139146566391, 0.08891639113426208,
- 0.046210043132305145, -0.03662918508052826, -0.14595364034175873},
- {-0.09094150364398956, 0.34463661909103394, 0.09116946905851364,
- -0.06449760496616364, -0.3147732615470886, 0.1268700808286667,
- 0.1254865974187851, -0.0012171438429504633, 0.11133856326341629,
- 0.16736876964569092, 0.438774973154068, 0.3511490225791931,
- 0.37927722930908203, 0.38935965299606323, -0.0079469820484519,
- 0.3172787129878998, 0.2990153729915619, -0.09792278707027435,
- -0.10387258976697922, 0.41493046283721924, 0.0964023545384407,
- 0.26486533880233765, 0.15529265999794006, -0.2944813370704651,
- -0.34798750281333923, 0.5233692526817322, 0.1444278061389923,
- 0.26051023602485657, 0.36869293451309204, 0.21834968030452728,
- 0.26130184531211853, 0.6258428692817688, -0.23855987191200256,
- 0.022854013368487358, 0.2632879316806793, 0.37072518467903137,
- 0.1523171216249466, 0.25519171357154846, -0.16038407385349274},
- {-0.032467667013406754, 0.7357418537139893, -0.045072030276060104,
- -0.24760432541370392, 0.23623232543468475, 0.0744364857673645,
- 0.14080816507339478, 0.1414225548505783, -0.06911414116621017,
- 0.07192256301641464, 0.16631357371807098, 0.2408289909362793,
- 0.17106670141220093, 0.2528420686721802, 0.10969230532646179,
- 0.02076885662972927, 0.20825524628162384, 0.2517687976360321,
- 0.015450780279934406, 0.2909148037433624, 0.28733131289482117,
- 0.11145968735218048, 0.1526435911655426, 0.2711062729358673,
- 0.1014212965965271, 0.3045900762081146, 0.25306183099746704,
- -0.008300194516777992, 0.44009920954704285, 0.24647784233093262,
- 0.1009436771273613, 0.27297350764274597, -0.030720824375748634,
- -0.11540747433900833, 0.14160208404064178, 0.12604549527168274,
- 0.2626807987689972, 0.008236709982156754, -0.18862208724021912},
- {-0.023633155971765518, 0.031894486397504807, -0.4481360912322998,
- -0.24594591557979584, 0.20171336829662323, -0.18470190465450287,
- 0.2863655686378479, 0.6400246024131775, -0.0826200544834137,
- 0.02861976809799671, 0.017064129933714867, -0.25840842723846436,
- -0.30897530913352966, 0.5295916199684143, -0.16908574104309082,
- 0.1952582597732544, -0.16432832181453705, -0.03602570295333862,
- -0.04704880714416504, 0.3191918134689331, -0.1255466639995575,
- -0.15681274235248566, 0.13616108894348145, 0.00557664642110467,
- 0.16074173152446747, 0.19923390448093414, -0.3232885003089905,
- 0.09312762320041656, 0.1622481346130371, 0.3235580325126648,
- 0.4518657922744751, 0.49210718274116516, 1.1623464822769165,
- 0.6036497950553894, 0.41296878457069397, 0.32431092858314514,
- 0.012712906114757061, -0.3247729539871216, 0.07957495748996735},
- {0.09208795428276062, -0.45911091566085815, -0.4499244689941406,
- 0.4439805746078491, 0.2955973446369171, 0.3163372576236725,
- 0.3850560784339905, 0.4180153012275696, 0.1610139012336731,
- -0.23070935904979706, -0.15921248495578766, -0.09720172733068466,
- -0.005319203715771437, 0.042631376534700394, 0.011843227781355381,
- -0.2977549433708191, -0.3696579337120056, -0.34377896785736084,
- -0.2770437002182007, -0.0684071034193039, -0.12180585414171219,
- -0.3018224239349365, -0.3641885817050934, -0.4096143841743469,
- -0.2906401455402374, -0.19256781041622162, -0.06858377903699875,
- -0.3312127888202667, -0.2699941396713257, -0.29128533601760864,
- -0.389739990234375, -0.16568920016288757, -0.15711554884910583,
- -0.2741237282752991, -0.351249098777771, -0.382339209318161,
- -0.22146785259246826, -0.2833898663520813, 0.23953834176063538},
- {-0.03820355236530304, 0.2552051544189453, -0.41925331950187683,
- 0.03598763793706894, 0.10766711086034775, -0.02723642811179161,
- 0.13639701902866364, 0.09994057565927505, 0.143342986702919,
- 0.7588191032409668, 0.2866367697715759, 0.17419223487377167,
- 0.24415870010852814, 0.21330080926418304, 0.004984943196177483,
- 0.04004876688122749, 0.14586566388607025, 0.48024749755859375,
- 0.03794018179178238, -0.07516377419233322, 0.12968669831752777,
- -0.15804070234298706, 0.07177191227674484, 0.6032015681266785,
- -0.15146808326244354, -0.03773435950279236, 0.1546255350112915,
- -0.05635025352239609, -0.2109125256538391, 0.827411949634552,
- -0.08717553317546844, -0.03857292979955673, 0.028028415516018867,
- -0.18814221024513245, -0.2918829321861267, 1.1850578784942627,
- -0.13577929139137268, -0.10148927569389343, 0.04256230220198631},
- {-0.02601557970046997, 0.33742624521255493, -0.6368851661682129,
- -0.11502872407436371, -0.006779594346880913, 0.22280679643154144,
- 0.9518709778785706, -0.08583897352218628, 0.022831641137599945,
- 0.050563063472509384, -0.2883768677711487, -0.4006108045578003,
- 0.9996275305747986, 0.09687786549329758, -0.11025010794401169,
- -0.24142767488956451, -0.06659236550331116, -0.37431350350379944,
- 1.0413575172424316, -0.26107892394065857, -0.15877346694469452,
- -0.12956151366233826, -0.26938486099243164, -0.014049803838133812,
- 0.7272130250930786, 0.15061414241790771, 0.34574928879737854,
- 0.12261722981929779, 0.18262754380702972, 0.20603030920028687,
- 0.3540857136249542, -0.1319534331560135, 0.006348802708089352,
- 0.12992289662361145, -0.09367820620536804, 0.13560223579406738,
- 0.03506556153297424, 0.15220433473587036, -0.09506703913211823},
- {-0.027510305866599083, -0.08744045346975327, 0.10088697820901871,
- -0.16025127470493317, -0.39402830600738525, -0.12110500782728195,
- 0.00033584816264919937, 0.1830214112997055, 0.013741733506321907,
- -0.2064538449048996, -0.20233610272407532, -0.2030220776796341,
- -0.00568374153226614, 0.00947315152734518, -0.011110455729067326,
- 0.9691393971443176, 0.6973731517791748, 0.5842689871788025,
- 0.3661907911300659, 0.06880233436822891, 0.03835286200046539,
- -0.0812736377120018, -0.08992814272642136, -0.0021860937122255564,
- -0.19549955427646637, -0.02203563041985035, 0.184067964553833,
- -0.02779618464410305, -0.061287496238946915, -0.16774046421051025,
- 0.08576346188783646, -0.04513678699731827, -0.13194777071475983,
- 0.0089359600096941, -0.106109119951725, -0.03850433602929115,
- -0.04971720650792122, 0.13103286921977997, -0.05597721412777901},
- {0.12395477294921875, 0.11519237607717514, 0.4307335615158081,
- 0.23111329972743988, -0.06620656698942184, -0.2928609848022461,
- -0.12718862295150757, -0.3016231060028076, -0.1542220264673233,
- -0.17098219692707062, -0.30381983518600464, -0.1328248679637909,
- -0.24070699512958527, 0.007853018119931221, -0.0711393728852272,
- -0.2707550823688507, -0.31120726466178894, 0.02227850630879402,
- 0.0255327969789505, -0.16943874955177307, -0.04841131716966629,
- 0.24037189781665802, -0.39308667182922363, -0.028763458132743835,
- -0.07026106119155884, -0.1107557862997055, -0.15088650584220886,
- -0.048882197588682175, -0.3547615706920624, -0.1544690579175949,
- -0.240713968873024, -0.148503378033638, 0.05130862072110176,
- 0.04129426181316376, -0.1989937126636505, 0.0551915280520916,
- 0.20009897649288177, -0.08838912844657898, -0.13858556747436523},
- {-0.028077255934476852, -0.263008177280426, -0.5300689339637756,
- -0.10596363246440887, -0.09365787357091904, -0.013477037660777569,
- 0.04924667999148369, 0.09180082380771637, -0.01897270977497101,
- -0.04043424874544144, -0.2346002459526062, -0.0974813848733902,
- -0.19844530522823334, -0.30621716380119324, -0.1341116577386856,
- -0.14365428686141968, -0.06251399964094162, -0.0489807054400444,
- -0.23918361961841583, -0.1425667256116867, -0.21056917309761047,
- -0.35075387358665466, -0.17768961191177368, -0.12176710367202759,
- -0.09238579869270325, -0.196614608168602, -0.05159621313214302,
- -0.049563776701688766, 0.14390434324741364, 0.2449982762336731,
- 0.037236813455820084, 0.09001156687736511, -0.05301392450928688,
- 0.4487733542919159, 0.5985151529312134, 0.8237573504447937,
- 0.6123289465904236, 0.6252710223197937, 0.5433018207550049},
- {0.05674484744668007, -0.21794266998767853, -0.0690106600522995,
- -0.08234122395515442, 0.44869762659072876, 0.004432729445397854,
- -0.3464958369731903, -0.31199976801872253, -0.11329516768455505,
- -0.012647184543311596, 0.2955891788005829, -0.21412324905395508,
- -0.26033464074134827, -0.2529742419719696, -0.24078789353370667,
- 0.08507192879915237, 0.2723209857940674, 0.015907486900687218,
- -0.29949259757995605, -0.28530392050743103, -0.02822747640311718,
- 0.11166887730360031, 0.31645849347114563, 0.5450040698051453,
- 0.4759218990802765, 0.44462448358535767, 0.5667102336883545,
- 0.10570478439331055, 0.09147173166275024, -0.41521045565605164,
- -0.24335461854934692, -0.00928646419197321, -0.03280903026461601,
- 0.31309986114501953, -0.24746572971343994, -0.21630574762821198,
- -0.13891689479351044, -0.12678468227386475, 0.019493935629725456},
- {0.04230424389243126, -0.17447374761104584, -0.0054184612818062305,
- -0.1435929834842682, 0.07816848158836365, 0.01746261492371559,
- -0.1170244812965393, -0.08390635997056961, -0.4032331705093384,
- 0.2041037529706955, -0.37552720308303833, -0.3711363673210144,
- -0.5806295871734619, -0.4234464764595032, -0.46351099014282227,
- 0.0038801373448222876, -0.5021129250526428, -0.26015907526016235,
- 0.17223067581653595, 0.22177451848983765, 0.1517171710729599,
- -0.1822986751794815, -0.5590958595275879, 0.09114786982536316,
- 0.5952406525611877, 0.33933141827583313, 0.03543508052825928,
- -0.20312638580799103, -0.5193464756011963, 0.25523340702056885,
- 0.18237729370594025, 0.2616051733493805, 0.19942516088485718,
- -0.37625813484191895, -0.38257360458374023, 0.4214632213115692,
- 0.13992303609848022, 0.0217701755464077, 0.23177187144756317},
- {0.005834002047777176, 0.23899783194065094, -0.41326916217803955,
- -0.13743731379508972, -0.3743237555027008, 0.4712757170200348,
- -0.10728587210178375, -0.04690147936344147, -0.012469782494008541,
- 0.07590505480766296, 0.10256650298833847, 0.47178372740745544,
- 0.053982872515916824, 0.31672534346580505, 0.412813663482666,
- 0.2627776265144348, 0.18552833795547485, 0.14499321579933167,
- 0.32800236344337463, -0.046492982655763626, 0.1306823045015335,
- 0.12194890528917313, -0.0015641561476513743, 0.04291989654302597,
- 0.418734610080719, -0.03684232383966446, 0.30009517073631287,
- 0.30650120973587036, 0.4684486389160156, -0.21988525986671448,
- 0.3141425848007202, -0.25648489594459534, 0.06124741956591606,
- -0.030600840225815773, 0.17773891985416412, 0.2336452305316925,
- 0.3999963104724884, 0.020692361518740654, 0.18085549771785736},
- {0.11810404807329178, -0.7503068447113037, 0.7131581902503967,
- -0.35430383682250977, -0.1701233834028244, 0.13195589184761047,
- -0.01765187829732895, -0.053697261959314346, 0.2731173634529114,
- -0.2667081952095032, -0.26116088032722473, -0.3444633185863495,
- -0.03905782848596573, -0.12970533967018127, -0.19899319112300873,
- -0.04842638969421387, -0.03616137057542801, -0.6086732745170593,
- 0.2113611400127411, -0.2217029333114624, -0.1709582358598709,
- 0.2114928811788559, 0.023476190865039825, -0.8627800941467285,
- -0.03373906761407852, 0.012901186011731625, 0.06300046294927597,
- 0.1862776279449463, 0.18965467810630798, -0.7734775543212891,
- -0.25880807638168335, -0.15576335787773132, -0.3291377127170563,
- -0.17058822512626648, -0.17738814651966095, -0.5053722262382507,
- -0.0760255977511406, -0.018039755523204803, 0.12310857325792313},
- {0.012235699221491814, -0.7647572159767151, -0.2546156644821167,
- -0.4500848948955536, 0.10941850394010544, 0.38997986912727356,
- 0.3581389784812927, -0.003363049356266856, 0.0036796655040234327,
- -0.4430975317955017, -0.07385789602994919, 0.2950358986854553,
- 0.37601223587989807, 0.3072056174278259, 0.23226331174373627,
- -0.5541632771492004, -0.07721558958292007, 0.264434278011322,
- 0.2797820270061493, 0.31403404474258423, 0.2906499207019806,
- -0.61859530210495, -0.10902882367372513, 0.24570897221565247,
- 0.2738577425479889, 0.19494420289993286, 0.3179767429828644,
- -0.5087208151817322, -0.09575092792510986, 0.23232176899909973,
- 0.33741360902786255, 0.31438568234443665, 0.08774504065513611,
- -0.49948495626449585, 0.19878768920898438, 0.2790905833244324,
- 0.29347583651542664, 0.1983964890241623, 0.09773805737495422},
- {-0.0032250366639345884, -0.37647745013237, 0.6387284994125366,
- 0.13085906207561493, -0.09420748800039291, -0.12043486535549164,
- -0.09859363734722137, -0.0322415791451931, 0.04104577749967575,
- -0.38428738713264465, -0.13782109320163727, -0.1875448226928711,
- -0.06216205283999443, -0.2468096762895584, -0.06001574173569679,
- -0.43252620100975037, -0.27882707118988037, 0.05153997614979744,
- -0.009829982183873653, -0.11981815099716187, 0.0300542414188385,
- -0.1466187983751297, 0.025079259648919106, -0.1809065043926239,
- -0.03972958028316498, -0.4312286078929901, -0.4774928390979767,
- -0.27705708146095276, -0.21875113248825073, -0.3127034902572632,
- -0.33481720089912415, -0.3148377537727356, -0.043604955077171326,
- -0.04302991181612015, 0.09840089082717896, -0.14721018075942993,
- -0.15153250098228455, -0.014881080947816372, -0.02777133323252201},
- {-0.04917523264884949, 0.2966659963130951, -0.7679271697998047,
- 0.3640339970588684, 0.34488141536712646, 0.07351113855838776,
- -0.12390706688165665, 0.14672523736953735, -0.07746648788452148,
- -0.00766491936519742, 0.10812146216630936, 0.05404716730117798,
- 0.40622562170028687, 0.1562882512807846, 0.13887682557106018,
- 0.04630090668797493, -0.011864696629345417, 0.05228237062692642,
- 0.42454883456230164, 0.13458392024040222, 0.2257036566734314,
- 0.13114555180072784, 0.03705087676644325, 0.0656241849064827,
- 0.35340118408203125, -0.06443953514099121, -0.1823679655790329,
- 0.2514023184776306, 0.09720294922590256, -0.019431205466389656,
- 0.3230215311050415, 0.4974989891052246, -0.18957103788852692,
- -0.13709215819835663, 0.09134995192289352, 0.1397637277841568,
- -0.008464223705232143, 0.17737899720668793, 0.03209936246275902},
- {-0.03908495977520943, -1.0460025072097778, -0.05153942108154297,
- 0.026418883353471756, 0.06435004621744156, 0.006159078795462847,
- 0.15285664796829224, 0.062372539192438126, -0.5784406065940857,
- 0.14293059706687927, 0.23948584496974945, 0.2244279682636261,
- 0.246318981051445, -0.21105478703975677, -0.6629570126533508,
- 0.21185217797756195, 0.23563574254512787, 0.20618721842765808,
- 0.04664134234189987, -0.21646244823932648, -0.673760712146759,
- 0.12595318257808685, 0.17568759620189667, 0.23138532042503357,
- 0.2950378954410553, -0.011088527739048004, -0.580833375453949,
- 0.08069223165512085, 0.07044622302055359, 0.14007239043712616,
- 0.10782857984304428, -0.09233247488737106, -0.7082332372665405,
- 0.10116635262966156, 0.08682199567556381, 0.20869381725788116,
- 0.25533464550971985, 0.22365421056747437, -0.642400860786438},
- {-0.003839278593659401, -0.2167002409696579, -0.6415968537330627,
- -0.16575638949871063, -0.3923284709453583, -0.34253621101379395,
- -0.36767926812171936, -0.320792019367218, 0.5579889416694641,
- 0.005732373800128698, -0.2975113093852997, -0.3011917769908905,
- -0.25562208890914917, 0.01141179446130991, 0.6485363841056824,
- -0.0862603709101677, 0.04852183908224106, -0.038507815450429916,
- -0.13976459205150604, 0.1937519609928131, 0.6379382610321045,
- -0.05357546731829643, -0.24442288279533386, -0.25377416610717773,
- -0.1373913437128067, 0.23521901667118073, 0.7838800549507141,
- -0.05167048051953316, -0.23681536316871643, -0.3086036741733551,
- -0.2782636880874634, 0.0061825113371014595, 0.6706840991973877,
- -0.2933875024318695, -0.18405349552631378, -0.3292210102081299,
- -0.22080861032009125, -0.05667194351553917, 0.605210542678833},
- {0.02069830521941185, 0.2981274724006653, -0.3914235532283783,
- 0.20096059143543243, -0.21127276122570038, -0.16849693655967712,
- -0.1829996109008789, 0.46842166781425476, -0.2292943298816681,
- 0.14870710670948029, -0.06101277843117714, -0.11750083416700363,
- -0.2847902476787567, 0.13143742084503174, 0.03900734707713127,
- 0.09039174020290375, 0.07133065164089203, -0.18593473732471466,
- -0.18768148124217987, 0.19852562248706818, -0.043533019721508026,
- 0.08044888824224472, 0.12620572745800018, 0.5135767459869385,
- 0.6216572523117065, 0.7337477803230286, 0.746058464050293,
- 0.21274936199188232, 0.19879361987113953, 0.23473167419433594,
- 0.1503111571073532, -0.11616628617048264, -0.4425128102302551,
- 0.008272693492472172, 0.17732416093349457, 0.30413180589675903,
- -0.09211753308773041, -0.2845708727836609, -0.08629859983921051},
- {-0.05689625069499016, 0.9471213817596436, -0.5018173456192017,
- 0.04427840933203697, 0.3289225697517395, 0.26457977294921875,
- 0.3357226848602295, 0.33164182305336, 0.11942484229803085,
- 0.20864133536815643, 0.3231998085975647, 0.38270941376686096,
- 0.43079355359077454, 0.35918405652046204, 0.29414018988609314,
- 0.2913033664226532, 0.4075305461883545, 0.3389551341533661,
- 0.3205471336841583, 0.39065444469451904, 0.21498320996761322,
- 0.2667761445045471, 0.46903330087661743, 0.3333382308483124,
- 0.3752078115940094, 0.3759205639362335, 0.23441870510578156,
- 0.29539817571640015, 0.34879130125045776, 0.454723984003067,
- 0.3740314841270447, 0.2922436594963074, 0.26244717836380005,
- 0.06231944262981415, 0.21697081625461578, 0.2948298752307892,
- 0.26524433493614197, 0.2656134366989136, 0.11897537112236023},
- {-0.13353700935840607, 0.2326587289571762, -0.5015689134597778,
- 0.24408653378486633, 0.18027469515800476, 0.43729129433631897,
- 0.1669936180114746, 0.136101633310318, 0.15424752235412598,
- -0.5091984868049622, -0.24085140228271484, 0.6771426200866699,
- 0.3479400873184204, 0.413055419921875, 0.7057263851165771,
- -0.44812604784965515, -0.19928161799907684, 0.5678461194038391,
- 0.07917710393667221, -0.0942612886428833, -0.15630804002285004,
- -0.03382237255573273, 0.1808028221130371, 0.5306615233421326,
- -0.10813526809215546, -0.09537903964519501, 0.08486992865800858,
- 0.2879536747932434, 0.16382691264152527, 0.23430010676383972,
- -0.16726075112819672, -0.2076461911201477, -0.05950525403022766,
- 0.4207715094089508, 0.24981559813022614, 0.017079824581742287,
- 0.10926308482885361, 0.24555648863315582, -0.11280246078968048},
- {0.02831106260418892, 0.2297302782535553, -0.4488084614276886,
- 0.2393302619457245, 0.12326180934906006, -0.3354022800922394,
- -0.021324923262000084, 0.15588989853858948, -0.22342416644096375,
- 0.21207521855831146, 0.1676362007856369, -0.031246595084667206,
- -0.15418510138988495, 0.1134251281619072, 0.01112314686179161,
- 0.06827264279127121, 0.3957652747631073, -0.11789149045944214,
- -0.06304426491260529, -0.04616375267505646, -0.028245581313967705,
- 0.03746696934103966, 0.2729150056838989, 0.2980518043041229,
- -0.13247166574001312, 0.06033218279480934, 0.1739385426044464,
- -0.14827759563922882, 0.2237948477268219, 0.22004494071006775,
- 0.02568027190864086, 0.025399191305041313, -0.06991585344076157,
- 0.09142088890075684, -0.10177119076251984, -0.013064135797321796,
- -0.02862808108329773, 0.1302715688943863, 0.38543301820755005},
- {0.013769070617854595, -0.5846911072731018, 0.5512388348579407,
- -0.11272523552179337, -0.19490034878253937, -0.2565457224845886,
- -0.23317329585552216, -0.19030486047267914, -0.1578485518693924,
- -0.24035201966762543, -0.24803556501865387, -0.26435545086860657,
- -0.25116589665412903, -0.22503158450126648, -0.22953854501247406,
- -0.21021223068237305, -0.31216686964035034, -0.22333157062530518,
- -0.32187363505363464, -0.3029765784740448, -0.24051706492900848,
- -0.23034712672233582, -0.3314359486103058, -0.37219488620758057,
- -0.28849393129348755, -0.20002073049545288, -0.21362800896167755,
- -0.2628699839115143, -0.2628925144672394, -0.2963508069515228,
- -0.307897686958313, -0.268155038356781, -0.19812746345996857,
- -0.13893698155879974, -0.1573473960161209, -0.2011474370956421,
- -0.18585704267024994, -0.14873166382312775, -0.13824716210365295},
- {-0.05314579978585243, 0.7523375749588013, 0.2598535716533661,
- -0.17727185785770416, 0.1135229840874672, 0.06993293762207031,
- -0.04812946543097496, 0.00823946949094534, -0.14942558109760284,
- 0.054347969591617584, 0.2968735098838806, 0.34287720918655396,
- 0.280839741230011, 0.3146897852420807, 0.17328380048274994,
- 0.1584632396697998, 0.21966080367565155, 0.07573126256465912,
- 0.17618675529956818, 0.32475289702415466, 0.2940802276134491,
- 0.24076588451862335, 0.2897166609764099, 0.25118488073349,
- 0.36707302927970886, 0.26570045948028564, 0.15859922766685486,
- -0.027950963005423546, 0.22941812872886658, 0.20708845555782318,
- 0.3975226581096649, 0.32050493359565735, 0.13060817122459412,
- -0.09379860758781433, 0.21186305582523346, 0.09792902320623398,
- 0.2692076861858368, 0.2900049090385437, -0.07906053960323334},
- {0.09708496928215027, -0.4479731619358063, 0.4129363000392914,
- -0.12813898921012878, -0.24501551687717438, -0.007147803902626038,
- 0.12501578032970428, 0.15972444415092468, -0.046475086361169815,
- 0.04627211391925812, -0.1779445856809616, 0.15999722480773926,
- 0.012248773127794266, 0.2567426562309265, -0.1534310132265091,
- -0.5407706499099731, -0.5251794457435608, -0.620708703994751,
- -0.7966707944869995, -0.8259286284446716, -1.1531893014907837,
- -0.06282037496566772, 0.018866484984755516, 0.25254976749420166,
- 0.016242794692516327, -0.1762991100549698, 0.0400409922003746,
- 0.039974261075258255, 0.057034797966480255, 0.09409859031438828,
- -0.023920977488160133, -0.23220209777355194, 0.02257700078189373,
- -0.02287943847477436, -0.1351003497838974, 0.26738467812538147,
- -0.06289515644311905, -0.36144575476646423, -0.1757649928331375},
- {-0.04892367497086525, -0.14533080160617828, 0.04394098371267319,
- 0.18445837497711182, 0.1654195934534073, -0.1834501475095749,
- -0.2684222161769867, -0.1297248899936676, 0.1869022101163864,
- -0.24817773699760437, -0.09519034624099731, -0.07335233688354492,
- 0.08445251733064651, 0.09258349984884262, 0.074198417365551,
- 0.10382183641195297, -0.28430473804473877, 0.1751958578824997,
- -0.0352930948138237, -0.002168126869946718, -0.18006852269172668,
- -0.15727508068084717, -0.05538100376725197, -0.29070398211479187,
- -0.020768627524375916, 0.007405313663184643, -0.010987472720444202,
- 0.09963808953762054, 0.22944900393486023, -0.14513982832431793,
- -0.2741614878177643, -0.10022988170385361, 0.0023409912828356028,
- 0.21414153277873993, -0.022510847076773643, 0.026841502636671066,
- -0.022834783419966698, 0.033971697092056274, -0.0652812272310257},
- {0.06941910833120346, 0.2307884395122528, -0.4258730411529541,
- 0.04212229326367378, 0.11142948269844055, 0.0009856694377958775,
- 0.053949449211359024, 0.05996058136224747, 0.21680369973182678,
- 0.28738898038864136, 0.29150739312171936, 0.32928434014320374,
- 0.3541754484176636, 0.3368116021156311, -0.00803755410015583,
- 0.4782446324825287, 0.2437545210123062, 0.13553491234779358,
- 0.24511919915676117, 0.17652280628681183, 0.11028104275465012,
- 0.2833288908004761, 0.05559786409139633, 0.2165931761264801,
- 0.18077352643013, 0.22178128361701965, 0.14124399423599243,
- 0.3074718415737152, 0.3921816051006317, 0.08296487480401993,
- -0.0009235194884240627, 0.23364491760730743, 0.17246603965759277,
- -0.058974068611860275, 0.07222584635019302, 0.2051154226064682,
- 0.02858741767704487, 0.12297876179218292, 0.13099366426467896},
- {-0.03531448170542717, -0.4284868836402893, 0.45774978399276733,
- 0.012738638557493687, -0.06293029338121414, 0.03293687477707863,
- -0.030897106975317, 0.05215216800570488, 0.01656010001897812,
- -0.25508102774620056, -0.1763158142566681, -0.10658129304647446,
- -0.09591252356767654, -0.30167704820632935, -0.10403881967067719,
- -0.14604578912258148, -0.21161964535713196, -0.10734705626964569,
- -0.1167154535651207, -0.17722226679325104, -0.15885475277900696,
- -0.01667427085340023, -0.0850716084241867, -0.015633581206202507,
- -0.17956818640232086, -0.14674407243728638, -0.17541185021400452,
- -0.057880498468875885, -0.2453235387802124, -0.06759515404701233,
- -0.1290999799966812, -0.17508059740066528, -0.0815165713429451,
- -0.011897263117134571, -0.008339732885360718, -0.065400131046772,
- -0.060210105031728745, -0.11520595848560333, -0.024683095514774323},
- {-0.007051828783005476, -0.5795698165893555, 0.2616208493709564,
- 0.18928714096546173, -0.1103731095790863, 0.391353964805603,
- 0.02108949050307274, -0.17036226391792297, -0.058789730072021484,
- 0.09170607477426529, 0.10390841215848923, 0.24596062302589417,
- 0.05414801836013794, -0.05131004750728607, -0.15742118656635284,
- 0.11092648655176163, 0.17388789355754852, 0.3716771900653839,
- 0.06327736377716064, -0.11533021181821823, -0.2478092908859253,
- -0.660697877407074, -0.6997424364089966, -0.9039795994758606,
- -0.7242019176483154, -0.49191704392433167, 0.015874626114964485,
- 2.688910171855241e-05, -0.02389361523091793, 0.2530113160610199,
- 0.1475967913866043, -0.0922568291425705, -0.007132359314709902,
- -0.0904783383011818, -0.132267028093338, 0.2668149173259735,
- 0.06903543323278427, -0.10994337499141693, -0.1272840052843094},
- {0.0471239872276783, 0.020695969462394714, -0.7168578505516052,
- 0.5093693733215332, -0.030140938237309456, -0.22747023403644562,
- -0.25409042835235596, -0.18175582587718964, -0.18896658718585968,
- 0.5227402448654175, 0.08515218645334244, -0.10671238601207733,
- -0.15312309563159943, -0.04302205145359039, 0.012804902158677578,
- 0.6859827041625977, 0.1906748116016388, -0.08938924968242645,
- -0.21533559262752533, -0.1416926234960556, 0.020838038995862007,
- 0.6381765604019165, 0.2380950003862381, 0.030860643833875656,
- -0.19294621050357819, -0.05344831198453903, -0.11034175753593445,
- 0.7216230034828186, 0.2766082286834717, -0.04102609306573868,
- -0.14435695111751556, -0.006446989253163338, 0.00232849083840847,
- 0.5642573237419128, -0.05836543068289757, -0.13878457248210907,
- -0.20316267013549805, -0.14023350179195404, 0.14346078038215637},
- {-0.01100603211671114, 0.6119253039360046, -0.4091959595680237,
- 0.06558851897716522, 0.42609697580337524, -0.0037159561179578304,
- 0.14729297161102295, 0.10666079819202423, -0.2884645164012909,
- -0.5240380764007568, -0.19934652745723724, -0.08860992640256882,
- -0.020556263625621796, 0.35477107763290405, 0.18759052455425262,
- 0.12712500989437103, -0.07009907811880112, 0.05242597684264183,
- 0.038918398320674896, 0.006009542383253574, 0.17693501710891724,
- 0.041911158710718155, 0.14298038184642792, 0.1873207986354828,
- 0.04587671533226967, 0.2144293636083603, 0.03615890070796013,
- 0.05550087243318558, 0.16231825947761536, 0.15559819340705872,
- 0.1552893966436386, 0.09440326690673828, -0.18670734763145447,
- -0.2709261476993561, -0.04157088324427605, 0.3122725188732147,
- 0.28980329632759094, 0.2264399230480194, -0.10634451359510422},
- {0.06254897266626358, -0.6196362376213074, 0.6025203466415405,
- 0.11161265522241592, -0.052786458283662796, -0.13132710754871368,
- -0.7247132658958435, 0.18568913638591766, 0.2994799315929413,
- 0.1251952201128006, 0.02946236915886402, -0.060985174030065536,
- -0.797828197479248, 0.23308810591697693, -0.014649142511188984,
- -0.09823044389486313, 0.15667954087257385, 0.07838951796293259,
- -0.6033301949501038, 0.014825675636529922, 0.25095334649086,
- -0.06793476641178131, 0.013121623545885086, 0.15114790201187134,
- -0.49352335929870605, 0.031811729073524475, 0.08815255016088486,
- -0.028477605432271957, -0.1797739714384079, -0.09114011377096176,
- -0.3749612271785736, -0.37460947036743164, -0.3760620355606079,
- -0.28513404726982117, -0.1054958626627922, 0.10960482060909271,
- 0.06615965068340302, -0.055675894021987915, -0.1737530380487442},
- {0.13888423144817352, -0.5873562097549438, 0.16978712379932404,
- 0.28093019127845764, 0.15046755969524384, 0.2237604409456253,
- -0.28529003262519836, -0.3790174722671509, -0.20795367658138275,
- 0.3284621238708496, 0.21306420862674713, 0.25143730640411377,
- -0.6542672514915466, -0.4556262195110321, -0.38185837864875793,
- -0.011103777214884758, 0.11563294380903244, -0.3716322183609009,
- -0.5330761075019836, -0.012916614301502705, 0.02007022500038147,
- -0.099933922290802, -0.22296938300132751, -0.534605085849762,
- 0.01949145831167698, 0.004943278152495623, 0.03775583207607269,
- -0.05682786554098129, -0.21848495304584503, -0.537432849407196,
- -0.12041954696178436, 0.1908755898475647, 0.10865109413862228,
- -0.19548214972019196, -0.26482370495796204, -0.36857008934020996,
- 0.2674756348133087, 0.08855781704187393, 0.04570328816771507},
- {-0.05368964746594429, 0.6192870736122131, -0.33081063628196716,
- 0.20783433318138123, 0.17222492396831512, 0.36503294110298157,
- 0.18480457365512848, -0.061916716396808624, -0.14408442378044128,
- 0.33203545212745667, 0.4111200273036957, 0.3994615077972412,
- 0.06768767535686493, -0.2823660671710968, -0.21365390717983246,
- 0.18245723843574524, 0.42606449127197266, 0.6058452725410461,
- 0.574960470199585, 0.07236404716968536, -0.13103023171424866,
- -0.020808663219213486, -0.4865782558917999, 0.07700340449810028,
- 0.40107402205467224, 0.501979410648346, 0.3799593150615692,
- 0.1941077709197998, -0.17883147299289703, -0.0941716805100441,
- 0.1814143806695938, 0.5436035990715027, 0.37424829602241516,
- -0.23359154164791107, 0.011516157537698746, -0.002633195137605071,
- -0.21482859551906586, 0.518133282661438, 0.30436035990715027},
- {0.01807929389178753, -0.6852098703384399, 0.41992881894111633,
- 0.1636180281639099, -0.5590972900390625, 0.102825827896595,
- -0.09045758098363876, -0.2971607744693756, 0.0519467331469059,
- 0.05366506427526474, -0.30030307173728943, 0.14812466502189636,
- -0.03506183251738548, -0.5761938095092773, 0.34073740243911743,
- -0.04346977546811104, -0.3271547257900238, -0.20639684796333313,
- 0.0607980415225029, -0.4846431016921997, 0.012289587408304214,
- -0.15252438187599182, 0.2407602071762085, 0.03090772219002247,
- -0.022936997935175896, -0.28920990228652954, 0.17836830019950867,
- 0.09673251211643219, -0.03682679682970047, -0.02382533811032772,
- -0.2599126100540161, -0.557720422744751, -0.10576503723859787,
- -0.36833760142326355, -0.1256437748670578, 0.0599532313644886,
- -0.10303642600774765, 0.21623671054840088, -0.14162445068359375},
- {-0.09308505058288574, 0.19999635219573975, -0.3973280191421509,
- -0.03686906024813652, -0.13052146136760712, -0.26824745535850525,
- 0.9706709980964661, -0.0929502621293068, -0.40638747811317444,
- 0.13770918548107147, 0.19181790947914124, 0.3553939461708069,
- 0.3697066009044647, -0.14043213427066803, 0.14021499454975128,
- 0.2260977029800415, -0.34186357259750366, 0.4376569092273712,
- 0.3898400664329529, 0.4258025884628296, 0.5386190414428711,
- 0.15920431911945343, 0.2519061863422394, 0.2692123055458069,
- 0.1363021582365036, 0.20871557295322418, -0.06225498393177986,
- -0.004307935945689678, -0.03956025466322899, -0.14571115374565125,
- 0.2034275233745575, 0.4023353159427643, 0.009865602478384972,
- 0.04790698364377022, -0.03805490955710411, 0.10599266737699509,
- -0.12662111222743988, 0.37499362230300903, 0.2709113359451294},
- {0.029566174373030663, 0.034292761236429214, -0.5210411548614502,
- -0.3817058503627777, 0.2122848480939865, 0.29063475131988525,
- 0.3653823733329773, 0.2473134994506836, -0.416418194770813,
- -0.02994663454592228, 0.2222173810005188, 0.32992371916770935,
- 0.2550458014011383, 0.10767468065023422, 0.09665524959564209,
- -0.17182691395282745, -0.03997958451509476, 0.11355490982532501,
- -0.007655668538063765, -0.11215823143720627, -0.019112741574645042,
- -0.05037914961576462, 0.025794440880417824, -0.1344989836215973,
- 0.06139484792947769, 0.09545400738716125, -0.1101912185549736,
- 0.1344105303287506, 0.08588050305843353, 0.3810788691043854,
- 0.22621816396713257, 0.153024822473526, 0.16792044043540955,
- -0.353424996137619, 0.22742122411727905, 0.1755727380514145,
- 0.2354748696088791, 0.3006261885166168, -0.32519757747650146},
- {0.057807255536317825, -0.6952963471412659, 0.33396047353744507,
- -0.020888041704893112, 0.17092721164226532, -0.9945868253707886,
- 0.2201383411884308, 0.17976316809654236, 0.15334481000900269,
- 0.19435787200927734, 0.08431463688611984, -0.7710793018341064,
- 0.3121849596500397, 0.15167559683322906, 0.012426916509866714,
- 0.12697003781795502, 0.14792561531066895, -0.5363337397575378,
- 0.22877441346645355, 0.15429824590682983, 0.09144335240125656,
- -0.14000125229358673, -0.050841886550188065, -0.42057234048843384,
- -0.2393963485956192, -0.05129554122686386, -0.003026802558451891,
- -0.3014281094074249, -0.2342134416103363, 0.10446413606405258,
- -0.26319751143455505, -0.23222744464874268, -0.061295825988054276,
- -0.28431037068367004, 0.23245635628700256, 0.3659917116165161,
- -0.10064941644668579, -0.08006837218999863, -0.27883410453796387},
- {0.048384301364421844, 0.12694862484931946, -0.5294657349586487,
- -0.19357776641845703, -0.11984686553478241, -0.11530221253633499,
- 0.039698582142591476, 0.1026274561882019, 0.3602553904056549,
- -0.11306337267160416, -0.1790277510881424, -0.1661999374628067,
- 0.15976718068122864, 0.3324804902076721, 0.19267262518405914,
- 0.01033808384090662, -0.30160263180732727, 0.016503019258379936,
- 0.2756708264350891, 0.2520870566368103, -0.1468469351530075,
- 0.9820060729980469, 0.7080676555633545, 0.4326748251914978,
- 0.5233202576637268, 0.009801066480576992, -0.35402387380599976,
- -0.22784560918807983, 0.0738571360707283, -0.14552663266658783,
- 0.03377949073910713, 0.19883984327316284, 0.04282594472169876,
- -0.021550295874476433, -0.13228420913219452, 0.10770928859710693,
- 0.33394408226013184, 0.20864664018154144, 0.08860652148723602},
- {0.11843646317720413, -0.4159732460975647, 0.22597195208072662,
- -0.12180208414793015, 0.01564262993633747, -0.042087212204933167,
- 0.2620064318180084, -0.09275996685028076, -0.09910421073436737,
- -0.017230799421668053, -0.040522366762161255, -0.061305586248636246,
- -0.2112894356250763, -0.33811381459236145, -0.6066606640815735,
- -0.11849819868803024, -0.08867447078227997, 0.1799202710390091,
- -0.37285658717155457, -0.3814027011394501, -0.2755228579044342,
- -0.16796298325061798, -0.17450657486915588, -0.06374989449977875,
- -0.737914502620697, 0.017732812091708183, -0.022192994132637978,
- -0.08882194012403488, -0.13826707005500793, -0.14508335292339325,
- -0.7481937408447266, 0.32625290751457214, 0.36770156025886536,
- -0.022060895338654518, -0.2565731704235077, -0.11025233566761017,
- -0.7961760759353638, 0.10780394077301025, 0.2117353081703186},
- {0.11192512512207031, 0.11834308505058289, 0.5577203035354614,
- -0.03312584385275841, 0.0023232190869748592, 0.015572037547826767,
- -0.07309339940547943, -0.14679454267024994, 0.014682219363749027,
- -0.06854266673326492, -0.46989065408706665, 0.040680255740880966,
- -0.1096443384885788, -0.245248481631279, 0.025246765464544296,
- -0.25469234585762024, -0.1891217827796936, 0.19857315719127655,
- 0.1814412921667099, -0.2385609894990921, 0.06672833114862442,
- -0.008001350797712803, -0.4511914551258087, -0.06387469917535782,
- 0.3029514253139496, -0.3925434947013855, -0.0821698009967804,
- -0.24875248968601227, -0.3012814521789551, -0.4584299623966217,
- -0.4808945953845978, -0.8514521718025208, -0.18306726217269897,
- -0.14097513258457184, -0.08257997035980225, -0.16689318418502808,
- 0.06947899609804153, 0.20391350984573364, -0.018619174137711525},
- {-0.057785648852586746, 0.09300954639911652, -0.4689059853553772,
- 0.1648426651954651, 0.08396702259778976, 0.6266127824783325,
- -0.1838971972465515, -0.014227857813239098, 0.03471587598323822,
- 0.2750912308692932, 0.10733473300933838, 0.2744787931442261,
- -0.10809953510761261, -0.00512967724353075, -0.06013353541493416,
- 0.0035724337212741375, 0.024675004184246063, 0.35025787353515625,
- 0.2641094923019409, 0.010884558781981468, -0.04900132119655609,
- -0.27635055780410767, -0.12622179090976715, 0.00905398465692997,
- 0.48454591631889343, -0.13357502222061157, 0.07618013024330139,
- 0.10635453462600708, -0.17450925707817078, -0.17418527603149414,
- 0.8409889340400696, 0.03345108404755592, -0.2688232660293579,
- -0.3569256663322449, -0.21527869999408722, -0.25498533248901367,
- 1.2241272926330566, -0.21915435791015625, -0.08330924808979034},
- {0.004237764980643988, -0.0697011724114418, 0.07490330189466476,
- 0.151766836643219, -0.046227775514125824, -0.15489302575588226,
- -0.2799900472164154, -0.2698216736316681, -0.5129883885383606,
- -0.9737141132354736, -0.6817946434020996, -0.4960925281047821,
- -0.3450271189212799, -0.3200645446777344, 0.49029162526130676,
- 0.06646835058927536, -0.1842162162065506, 0.014307484030723572,
- -0.384706050157547, -0.10603685677051544, 0.42862147092819214,
- -0.013858359307050705, 0.24292044341564178, 0.033750273287296295,
- -0.2667754590511322, -0.29077163338661194, 0.05820542201399803,
- -0.03900567442178726, 0.32569894194602966, -0.032738421112298965,
- -0.1134883314371109, -0.40433362126350403, -0.06395091116428375,
- 0.6905305981636047, 0.026921946555376053, -0.33929914236068726,
- 0.07160123437643051, -0.06491907685995102, -0.15973888337612152},
- {0.05856530740857124, 0.12397844344377518, 0.8701387047767639,
- -0.03182496875524521, -0.253333181142807, -0.2643032371997833,
- -0.23728829622268677, -0.19366268813610077, -0.06383927911520004,
- -0.24550992250442505, -0.2905799150466919, -0.33510372042655945,
- -0.3031189739704132, -0.2552282512187958, -0.20421618223190308,
- -0.3083699345588684, -0.40120765566825867, -0.37575456500053406,
- -0.37582531571388245, -0.2911745309829712, -0.22100944817066193,
- -0.26318031549453735, -0.3063667118549347, -0.2890870273113251,
- -0.24152839183807373, -0.293684184551239, -0.24957194924354553,
- -0.28916534781455994, -0.3299136459827423, -0.34165674448013306,
- -0.3278287649154663, -0.25623515248298645, -0.20293454825878143,
- -0.04264979436993599, -0.22871538996696472, -0.26124200224876404,
- -0.3007521331310272, -0.22610771656036377, -0.047738876193761826},
- {0.008099772036075592, -0.026990875601768494, -0.6562643647193909,
- -0.1732867807149887, -0.03836319223046303, -0.11747653782367706,
- -0.10076865553855896, 0.18221215903759003, 0.31610503792762756,
- -0.09964249283075333, 0.08951083570718765, -0.05511249229311943,
- 0.023738596588373184, 0.04848606511950493, -0.061765026301145554,
- 0.015505236573517323, 0.7778626084327698, 0.6121479272842407,
- 0.41325464844703674, 0.08419603109359741, -0.01971576362848282,
- 0.1394922137260437, 0.4005868136882782, -0.6327587366104126,
- -0.3502107858657837, 0.13893648982048035, 0.07222487032413483,
- 0.4995418190956116, 0.25574782490730286, -0.2530134916305542,
- -0.05046958476305008, -0.10536065697669983, 0.084915891289711,
- 0.18073856830596924, 0.04707670584321022, 0.17313352227210999,
- 0.06347852200269699, 0.01503056287765503, -0.14396433532238007},
- {0.05618756636977196, -1.1257985830307007, -0.032062873244285583,
- -0.04225843399763107, 0.1537216752767563, 0.08330311626195908,
- 0.015296880155801773, 0.048019398003816605, -0.39732494950294495,
- 0.02106216549873352, 0.0906020849943161, -0.18998688459396362,
- -0.2668699026107788, -0.3087880611419678, 0.035110559314489365,
- -0.04405481368303299, 0.07853103429079056, 0.3210843801498413,
- 0.6562601327896118, -0.3573419451713562, 0.082290418446064,
- -0.09696493297815323, -0.0413985550403595, 0.5873149633407593,
- 0.4086696207523346, -0.13120432198047638, -0.06535608321428299,
- -0.16010484099388123, 0.030071159824728966, 0.004400661680847406,
- -0.01075437106192112, -0.16102257370948792, -0.23914122581481934,
- -0.12876267731189728, -0.3061940371990204, -0.13859744369983673,
- -0.30442050099372864, -0.3546913266181946, -0.14033646881580353},
- {0.03816864266991615, 0.14652034640312195, 0.8200114369392395,
- -0.029319215565919876, -0.3189127743244171, -0.009894227609038353,
- -0.12137188017368317, -0.13517610728740692, -0.08066229522228241,
- -0.17944090068340302, -0.19172446429729462, -0.24901947379112244,
- -0.09477812051773071, -0.28478261828422546, -0.1498398780822754,
- -0.13534021377563477, -0.2655714750289917, -0.2982761859893799,
- -0.14183183014392853, -0.2471006214618683, -0.10375222563743591,
- -0.046588215976953506, -0.20732241868972778, -0.24160407483577728,
- -0.4383890926837921, -0.27370938658714294, -0.23451142013072968,
- 0.0587785467505455, -0.14989061653614044, -0.15256793797016144,
- -0.21864338219165802, -0.11427301168441772, -0.20889413356781006,
- 0.0709853246808052, -0.0015882400330156088, -0.16054107248783112,
- -0.22748447954654694, -0.21164453029632568, 0.13715031743049622},
- {-0.10669813305139542, 0.4550288915634155, -0.5413661003112793,
- 0.047230008989572525, 0.02943628840148449, 0.1881634145975113,
- 0.12487112730741501, 0.1046290248632431, 0.01660250872373581,
- 0.23414616286754608, 0.2699434757232666, 0.30508384108543396,
- 0.3037533164024353, 0.2730182111263275, 0.12995439767837524,
- 0.1981477588415146, 0.2838549017906189, 0.33812886476516724,
- 0.36038830876350403, 0.37624818086624146, 0.28888678550720215,
- 0.214364692568779, 0.2618316113948822, 0.37668055295944214,
- 0.333994597196579, 0.38658320903778076, 0.2441367506980896,
- 0.19940316677093506, 0.24155522882938385, 0.28061676025390625,
- 0.36215323209762573, 0.3436132073402405, 0.2027190774679184,
- 0.15724585950374603, 0.2277892380952835, 0.1275474727153778,
- 0.21776363253593445, 0.19035212695598602, 0.06998556852340698},
- {0.022960787639021873, -0.7563416957855225, -0.025262214243412018,
- 0.06822142750024796, 0.03639568015933037, 0.18217436969280243,
- 0.1544090062379837, 0.07040825486183167, 0.11660395562648773,
- 0.0816863626241684, 0.14353832602500916, 0.13758431375026703,
- 0.30361858010292053, 0.196904256939888, 0.04577496647834778,
- 0.28219860792160034, 0.2656918168067932, 0.3110378086566925,
- 0.26560842990875244, 0.21243052184581757, 0.18152369558811188,
- 0.21091584861278534, 0.19034746289253235, 0.08909028023481369,
- 0.21522489190101624, 0.14173030853271484, 0.3417768180370331,
- 0.18507526814937592, -0.14283543825149536, -0.1351975053548813,
- -0.20199553668498993, -0.1379869133234024, 0.16734367609024048,
- -0.6747453212738037, -0.5369736552238464, -0.6321397423744202,
- -0.7276831269264221, -0.5738474726676941, -0.5508933663368225},
- {0.10244058072566986, 0.1430080085992813, -0.8841925859451294,
- 0.13737766444683075, 0.4065133333206177, 0.13872089982032776,
- 0.027350980788469315, 0.05535401403903961, 0.08024198561906815,
- 0.12011479586362839, 0.3620052635669708, 0.24636347591876984,
- 0.20221582055091858, 0.052145157009363174, -0.19492198526859283,
- 0.1409502774477005, -0.4506304860115051, 0.12152507901191711,
- 0.21950629353523254, 0.09734559059143066, 0.016400445252656937,
- -0.07077250629663467, 0.17797574400901794, -0.03637973964214325,
- -0.17412734031677246, 0.3339464068412781, 0.0325598381459713,
- 0.3033127784729004, -0.11466757208108902, -0.13417819142341614,
- -0.10457408428192139, 0.44079792499542236, 0.015621546655893326,
- -0.37506139278411865, 0.13041412830352783, 0.18205110728740692,
- -0.15250539779663086, -0.07956011593341827, 0.25120970606803894},
- {0.046278294175863266, -0.11740633845329285, 1.089350700378418,
- 0.020376795902848244, -0.19688086211681366, -0.1805310696363449,
- -0.209486186504364, -0.16701819002628326, -0.045592620968818665,
- -0.21368589997291565, -0.21747377514839172, -0.2843824028968811,
- -0.23390117287635803, -0.21289955079555511, -0.23041605949401855,
- -0.26539912819862366, -0.3547888398170471, -0.3421434462070465,
- -0.3327845335006714, -0.250760555267334, -0.2523375153541565,
- -0.27749374508857727, -0.2744956314563751, -0.25130772590637207,
- -0.21133682131767273, -0.2509552836418152, -0.23444898426532745,
- -0.2372768372297287, -0.2850545644760132, -0.316015362739563,
- -0.2975063621997833, -0.24354492127895355, -0.20178793370723724,
- -0.0038140355609357357, -0.21768881380558014, -0.18353962898254395,
- -0.23831598460674286, -0.2384571135044098, 0.003989584278315306},
- {0.017063545063138008, -0.6385512351989746, -0.005161669570952654,
- -0.44543272256851196, -0.5459991097450256, -0.762334942817688,
- -0.8478168845176697, -0.5584686994552612, -0.46507367491722107,
- 0.09076783806085587, 0.046751830726861954, -0.08217187225818634,
- -0.1637035608291626, 0.13195332884788513, 0.15706226229667664,
- 0.41283345222473145, 0.11738578975200653, 0.0944710373878479,
- -0.1402560919523239, 0.2571197748184204, 0.28270983695983887,
- 0.272771418094635, 0.06263969093561172, 0.15666712820529938,
- 0.1466274857521057, 0.19896674156188965, 0.3420456349849701,
- 0.07097689807415009, 0.13848717510700226, 0.01657203771173954,
- 0.060617633163928986, 0.31763288378715515, -0.03253256902098656,
- 0.09531920403242111, 0.13176977634429932, 0.14079827070236206,
- 0.012504402548074722, 0.25632742047309875, 0.14230354130268097},
- {0.05398796871304512, -0.5419279336929321, 0.8166227340698242,
- -0.16385658085346222, -0.2860194146633148, -0.23915031552314758,
- -0.2613343298435211, -0.23814897239208221, -0.17554517090320587,
- -0.25778838992118835, -0.25481143593788147, -0.3060426115989685,
- -0.26207107305526733, -0.2708345353603363, -0.238281711935997,
- -0.3117419481277466, -0.3786850869655609, -0.3606913685798645,
- -0.36739954352378845, -0.2842467427253723, -0.27185383439064026,
- -0.30130186676979065, -0.3089122772216797, -0.27165958285331726,
- -0.25264182686805725, -0.27011173963546753, -0.2608575224876404,
- -0.27912378311157227, -0.33230409026145935, -0.3313448429107666,
- -0.32644760608673096, -0.29419687390327454, -0.25220757722854614,
- -0.17173077166080475, -0.2718055546283722, -0.24170760810375214,
- -0.29690635204315186, -0.2668360471725464, -0.13791951537132263},
- {0.04249582067131996, -0.9812335968017578, 0.3505050539970398,
- -0.2518409192562103, -0.2315329611301422, -0.1967104971408844,
- 0.12303876131772995, -0.11617061495780945, 0.03054429590702057,
- -0.2603994607925415, -0.16490623354911804, -0.007859586738049984,
- -0.3128829300403595, 0.13055944442749023, -0.11283731460571289,
- 0.19011594355106354, -0.3774714171886444, -0.15656964480876923,
- -0.20725825428962708, 0.4084702134132385, 0.01729133538901806,
- 0.2706211805343628, 0.23963765799999237, -0.3194586932659149,
- -0.45846274495124817, -0.6791356801986694, -0.9183771014213562,
- 0.041772112250328064, -0.16868390142917633, -0.2744351625442505,
- 0.07300782948732376, 0.1570117175579071, -0.0391424335539341,
- -0.16010679304599762, -0.2705878019332886, -0.265911728143692,
- -0.07749602198600769, -0.15926562249660492, -0.010405438020825386},
- {-0.15670263767242432, 0.06552654504776001, -0.49708303809165955,
- 0.10627339780330658, 0.19418950378894806, 0.33137384057044983,
- -0.04863457381725311, -0.0002866242139134556, 0.02486383356153965,
- -0.23289883136749268, -0.10767053067684174, 0.10891299694776535,
- -0.13933154940605164, -0.0562131442129612, 0.15280990302562714,
- 0.05856317654252052, -0.003019270719960332, -0.01955210603773594,
- -0.0786638855934143, 0.02273860014975071, 0.38086843490600586,
- 0.015750713646411896, 0.30021101236343384, 0.17668351531028748,
- -0.07889775186777115, 0.11917363107204437, 0.24197813868522644,
- -0.14974965155124664, -0.008704896084964275, 0.3209841847419739,
- 0.2929234504699707, 0.3452242910861969, 0.25984227657318115,
- -0.1037081629037857, -0.03097035177052021, -0.03904604911804199,
- 0.21592877805233002, 0.20093800127506256, -0.02984934113919735},
- {0.1110723614692688, -0.30117979645729065, 0.2043790966272354,
- -0.6383538246154785, -0.536280632019043, -0.14966197311878204,
- 0.08101044595241547, 0.1640348583459854, -0.025126993656158447,
- 0.23246164619922638, -0.3118591010570526, -0.2548341453075409,
- -0.3442353904247284, -0.28033414483070374, -0.5860548615455627,
- 0.3573434352874756, 0.22373342514038086, 0.014313971623778343,
- -0.033178698271512985, -0.20280389487743378, 0.16429084539413452,
- -0.03785719722509384, 0.0856257900595665, 0.015941767022013664,
- -0.18273063004016876, -0.41066375374794006, -0.3517788350582123,
- -0.1534031331539154, 0.13926997780799866, 0.20684924721717834,
- -0.061256807297468185, -0.2896139919757843, 0.07138903439044952,
- 0.2864929735660553, -0.009915164671838284, -0.05350836366415024,
- 0.25035423040390015, -0.5975751876831055, -0.006170668173581362},
- {0.12005040049552917, -0.3359397351741791, 0.06920599192380905,
- -0.16209834814071655, -0.3759506940841675, 0.29765793681144714,
- -0.052548088133335114, -0.3501579463481903, -0.06446950882673264,
- -0.36970844864845276, -0.1581408679485321, 0.2836640179157257,
- -0.2969404458999634, -0.26580333709716797, -0.30694854259490967,
- -0.20928078889846802, -0.06659498065710068, 0.06262539327144623,
- -0.28173190355300903, -0.5303751826286316, -0.18141047656536102,
- -0.08660170435905457, 0.06916430592536926, 0.16866236925125122,
- -0.27958157658576965, -0.34707725048065186, -0.31698885560035706,
- -0.21292375028133392, 0.05616316571831703, 0.16938413679599762,
- 0.10741657018661499, 0.168862447142601, 0.23488201200962067,
- 0.015468287281692028, -0.03646502271294594, -0.2648639380931854,
- -0.2527640461921692, -0.14823690056800842, -0.06456912308931351},
- {0.04210243001580238, 0.45387983322143555, -0.44824910163879395,
- -0.11651042848825455, 0.0024438428226858377, 0.07898260653018951,
- 0.14961649477481842, 0.127238467335701, -0.26453179121017456,
- 0.030821237713098526, -0.0625578761100769, 0.0073285470716655254,
- 0.1412707269191742, 0.02810809388756752, 0.24902337789535522,
- 0.1821228265762329, 0.4875296950340271, 0.009102149866521358,
- 0.2329307645559311, 0.20934829115867615, 0.06645675748586655,
- 0.26638221740722656, 0.11245708167552948, 0.0901046171784401,
- 0.09851130098104477, 0.26848214864730835, 0.20406296849250793,
- 0.2567901313304901, 0.2970711290836334, 0.250925213098526,
- 0.19565463066101074, 0.1478186994791031, 0.10656914114952087,
- 0.12078160047531128, 0.2093629390001297, 0.18492747843265533,
- 0.05206095799803734, 0.18785063922405243, 0.14206662774085999},
- {-0.04112589359283447, 0.39927321672439575, -0.19951465725898743,
- -0.35009706020355225, -0.09900064766407013, 0.7361993193626404,
- -0.18245524168014526, 0.2941736578941345, 0.0583181232213974,
- -0.12379385530948639, -0.36719080805778503, 0.21095477044582367,
- 0.09004422277212143, -0.10622923076152802, 0.08987374603748322,
- -0.18611569702625275, -0.258846253156662, 0.3114860951900482,
- 0.30926087498664856, 0.18416263163089752, 0.3564222753047943,
- 0.12976090610027313, 0.5256466269493103, 0.6567301154136658,
- 0.13811467587947845, 0.11827583611011505, -0.20710952579975128,
- 0.5976359844207764, 0.4360915422439575, 0.1256430596113205,
- -0.047309305518865585, -0.03823299705982208, -0.11956600099802017,
- 0.2341434359550476, 0.3158662021160126, -0.050737254321575165,
- -0.08090120553970337, -0.047405995428562164, -0.03023303672671318},
- {0.10158651322126389, -0.5521547794342041, 0.6178520917892456,
- -0.1693457067012787, -0.2557540237903595, -0.2649931311607361,
- -0.3328563868999481, -0.20785102248191833, -0.1229957640171051,
- -0.09505331516265869, -0.17078441381454468, -0.2452021837234497,
- -0.18229705095291138, -0.23286975920200348, -0.1692340075969696,
- -0.1465841829776764, -0.3245551884174347, -0.28645777702331543,
- -0.2977093458175659, -0.25731781125068665, -0.17705601453781128,
- -0.1440218687057495, -0.17916043102741241, -0.22442571818828583,
- -0.20666608214378357, -0.29822927713394165, -0.21789993345737457,
- -0.06410680711269379, -0.1657690405845642, -0.24488262832164764,
- -0.2960679531097412, -0.32856786251068115, -0.14379723370075226,
- -0.055669285356998444, -0.15729306638240814, -0.06751980632543564,
- -0.15515989065170288, -0.18442828953266144, -0.10962274670600891},
- {-0.1334318369626999, 0.3918937146663666, 0.1863659918308258,
- -0.2498036026954651, -0.15366065502166748, -0.09301190078258514,
- 0.41642525792121887, 0.06160397455096245, -0.04211530461907387,
- -0.1072499081492424, 0.26343709230422974, -0.17040394246578217,
- 0.3029728829860687, 0.36989137530326843, 0.24300719797611237,
- 0.07592061907052994, 0.5085697174072266, 0.48401325941085815,
- 0.5596055388450623, 0.16305021941661835, 0.11628902703523636,
- 0.206899031996727, 0.314456045627594, 0.23190821707248688,
- 0.2607883810997009, -0.18294231593608856, 0.11955120414495468,
- 0.08547386527061462, 0.3099992871284485, 0.21271653473377228,
- -0.0970039963722229, 0.21062302589416504, -0.12806379795074463,
- -0.21578791737556458, 0.7068646550178528, -0.14216339588165283,
- 0.01908116042613983, -0.13280142843723297, -0.1397237330675125}};
+const float six_dense_weights[SIX_DENSE_NUM][SIX_INP_NUM] NN_ALIGNED =
+{
+ {0.0967933908, 0.152235463, -0.0614192784, -0.116048738, 0.0623112582, -0.00744370092, 0.0908687115, 0.0285693686,
+ 0.0498064198, -0.0174460411, 0.0166222081, -0.0213047192, -0.0292671397, 0.0549081974, -0.00460443879, 0.0673502311,
+ -0.0824786276, -0.00684418017, -0.00976472255, -0.0489899553, 0.135125622, -0.120328955, 0.112143882, 0.0176841151,
+ -0.111638449, -0.134414509, -0.0510589853, 0.103339747, 0.156812415, -0.071089603, 0.135174602, 0.147628561,
+ -0.0137038231, -0.102608897, -0.000696052623, -0.0819362625, 0.124802314, -0.0929139182, -0.0736945719},
+ {0.046170868, -0.076052092, 0.016583629, -0.0504761301, 0.063017711, 0.0174844097, 0.0296908896, 0.030179983,
+ -0.0520321876, -0.0269424133, -0.00141432462, -0.114240572, -0.0771579817, 0.156956181, 0.00811995845, 0.145098194,
+ -0.122910231, -0.139889076, -0.0355544239, -0.146347016, 0.153959304, 0.0735633224, 0.0796753317, 0.0105854822,
+ 0.0996450186, -0.0806343853, -0.107449882, -0.136537611, -0.0845743269, 0.00968987588, 0.0723072961, 0.0369593203,
+ 0.0318404585, 0.0389426798, 0.0982192233, -0.0629131421, -0.00390470191, 0.0744172931, 0.0232409686},
+ {0.0801415518, -0.00883672293, 0.118844368, -0.0118416753, 0.0218522996, 0.0874578357, -0.123666972, -0.082655333,
+ -0.110445045, 0.0933774188, -0.156682685, 0.010895675, -0.109671794, -0.041437503, -0.0170114096, -0.0339959972,
+ 0.150323465, 0.119653367, -0.123107895, -0.0554985739, -0.107801765, 0.0449913368, -0.00278799003, -0.103379816,
+ -0.0768386051, -0.038300667, -0.122454815, -0.0511640124, 0.115499534, -0.153769761, -0.102020904, -0.0397571214,
+ -0.0600364506, 0.13800694, 0.128838971, 0.0166580752, -0.144898668, -0.0822391063, 0.156828806},
+ {-0.0476070866, -0.0204417929, 0.149377942, -0.0621875823, -0.0513824448, -0.0137019902, -0.13778761, -0.153707504,
+ 0.00218154024, 0.0717437565, 0.0483847447, 0.139130369, 0.151201025, -0.0224185493, 0.112728588, 0.0125691863,
+ -0.0310359802, 0.0955003574, 0.096587576, 0.0768995211, -0.0786039382, -0.000798063003, 0.100020267, 0.111495212,
+ -0.0618414842, -0.159008846, -0.0485017002, -0.0529828258, 0.0742093772, 0.00731966225, -0.122205131, 0.0529247411,
+ 0.147448078, 0.0797393546, -0.0860648155, -0.11042574, -0.0785905942, -0.121876672, -0.0942381248},
+ {-0.0527796447, 0.00648998842, -0.0355587192, 0.114049271, -0.0959301591, -0.0671327561, 0.132262588, -0.15846093,
+ -0.0457400717, -0.0681544244, -0.0370102078, 0.0019788174, 0.0212311707, 0.014974772, 0.0379352309, 0.14555496,
+ 0.0550216585, 0.14012073, -0.0892664418, -0.0451825857, -0.075443998, 0.0741268918, 0.0732855797, -0.0296938308,
+ 0.00675041648, 0.116876431, 0.0201408975, -0.158639297, -0.0391630009, 0.133559987, 0.0959538668, 0.119371764,
+ 0.151193321, 0.0595139712, 0.104144454, 0.132892936, 0.160114557, -0.146663278, 0.120496474},
+ {0.0703699961, 0.159987211, 0.0631977394, -0.124109901, -0.0944583938, 0.131980598, -0.0682721436, 0.0559668019,
+ -0.0391267911, -0.0357652791, -0.151306376, 0.0337817259, -0.0224425253, -0.0896386355, -0.148383513, 0.0641178191,
+ -0.152178064, 0.154784471, -0.116843842, 0.0242486838, 0.104319096, -0.035479404, 0.0915909931, 0.11926651,
+ 0.00725445524, 0.100697003, 0.077542983, 0.0510057658, -0.0917049125, 0.152768135, 0.141186461, 0.14879939,
+ -0.0462863371, -0.0660784021, -0.00638771057, 0.135011762, -0.136495173, -0.136348113, 0.0477688648},
+ {0.053429503, -0.106138729, 0.0272624362, 0.0275067724, -0.0490070395, -0.0698115006, -0.0236082952, -0.0126310149,
+ -0.0584793799, -0.123657331, -0.113173492, -0.0405742154, -0.138263494, -0.129029304, -0.0453586206, 0.123852149,
+ 0.123835333, -0.0313220061, 0.114261344, -0.0148670347, -0.112193018, -0.047807578, 0.0621467121, -0.0639947355,
+ 0.0912046209, 0.0445803925, -0.0789205804, -0.0298509505, 0.115075596, 0.0537110046, -0.147444278, -0.12499249,
+ -0.0973721221, 0.0442970023, 0.0344421007, 0.0308895502, -0.0142861633, 0.0246657357, -0.134087816},
+ {0.123326905, 0.13744168, 0.126239643, -0.159075558, -0.0618761666, 0.049006179, -0.120241582, -0.0783981383,
+ 0.101512834, 0.0884451121, -0.0489125662, -0.142992646, 0.0885478482, -0.0297874231, -0.119863763, 0.00794804562,
+ -0.00335276942, -0.0187417474, -0.0171451829, 0.0590591431, -0.0341166407, 0.0155688329, -0.061427217, -0.113787942,
+ -0.0447442681, -0.0700059757, -0.0398613065, -0.0515906438, -0.128607899, -0.0621919334, -0.0713751167, 0.0230841935,
+ -0.0647920519, 0.018136844, 0.0510784946, 0.00129148841, -0.0577827357, -0.157081142, -0.00504328916},
+ {-0.0583814345, 0.120087214, -0.10824915, 0.11609906, 0.127872363, -0.139609113, 0.0682630911, 0.0958273634,
+ 0.0328623354, -0.0478304625, -0.0954759941, -0.0141915027, 0.113085419, 0.054017093, -0.0764210969, -0.113123484,
+ -0.0304318201, -0.00393572124, -0.045907177, -0.132319063, 0.0447084382, 0.0530905053, 0.0953790247, -0.0982745811,
+ -0.104757354, 0.0891002715, -0.029784482, -0.107757747, 0.130143195, 0.044267796, 0.0258688051, -0.129454255,
+ 0.0125964647, 0.0514495596, 0.110222317, 0.0897155628, 0.0732337907, 0.0326809175, -0.0694177523},
+ {0.0240647066, -0.0112813441, -0.046625182, -0.130389035, 0.134980127, -0.150486082, 0.0777696967, -0.134057596,
+ 0.113264337, -0.048125919, 0.0467041321, 0.121052325, -0.146202132, -0.103716232, -0.0780645832, -0.0860331506,
+ -0.0305587221, 0.141220033, 0.0933937728, 0.125993431, -0.126113161, -0.136907101, -0.022629384, 0.096488215,
+ -0.021081496, -0.0838287026, -0.00051539659, 0.0105423415, 0.0491101742, 0.067456387, -0.0401428863, 0.00525565166,
+ -0.0261782147, 0.0414991044, 0.117399134, 0.0796328411, -0.106574737, -0.143081009, 0.0175865721},
+ {-0.072219409, -0.134234712, 0.115521714, -0.150310278, -0.0979422852, 0.1554638, -0.0265772659, -0.118267804,
+ -0.0944011435, 0.0506925397, 0.0359416008, 0.0353389494, 0.0549614355, 0.0112364097, -0.128119066, -0.0835956633,
+ 0.11887002, -0.0207790527, -0.0759026483, -0.00246252678, 0.0894852728, 0.0137205822, 0.0251560304, -0.14493303,
+ -0.118128762, 0.0863376334, 0.0446020588, 0.0204058494, 0.0212632213, 0.00191067054, -0.037657585, -0.1222426,
+ 0.145917684, 0.108349442, -0.154652223, -0.0570449159, 0.0725915134, -0.112194434, 0.0574003495},
+ {0.140248865, 0.13888894, -0.137066036, 0.113718383, 0.0645344108, 0.0273436978, 0.0500276573, 0.109785661,
+ 0.0110132424, -0.0219518282, -0.0919945464, -0.154464275, -0.0414574146, -0.126906887, -0.0701522157, 0.103996478,
+ 0.0771457031, 0.155940548, -0.149420783, 0.00623635622, -0.135555729, 0.0368992835, -0.159812361, 0.0870888308,
+ 0.113482289, -0.149329811, -0.0833114311, -0.0244721379, 0.0270808842, -0.138184682, -0.0332157835, 0.145613179,
+ -0.0994047299, 0.0760200396, -0.0670893043, -0.0228498597, -0.139963135, -0.0879534408, 0.112181716},
+ {0.131298602, 0.0309461672, 0.0789499208, -0.135864705, -0.134313956, -0.088938117, -0.0994451195, 0.00862477999,
+ -0.0604936071, -0.0604707748, 0.00321868993, -0.00727625471, -0.157756001, 0.151689276, -0.148217633, -0.0985553935,
+ -0.0505282208, 0.0820728242, -0.0390767977, 0.0566593222, 0.0822531506, 0.114947394, 0.0544019416, -0.00532624219,
+ 0.0507424176, 0.0498395748, 0.0142305577, -0.0559950322, 0.0954572707, 0.0467774533, -0.0416267291, 0.130554497,
+ -0.0786506832, 0.0809224397, 0.147390351, -0.0233504809, -0.114875101, 0.0548527986, -0.067406565},
+ {0.0865421519, 0.0269196033, -0.0468342416, -0.111433722, 0.106872484, -0.149985909, 0.140618578, -0.0336444005,
+ 0.0138111971, -0.0719263777, 0.153680682, -0.132958964, 0.0191276651, -0.114101186, -0.0229877178, -0.0876695886,
+ -0.0368377231, 0.130996466, -0.00588663062, -0.0210809615, 0.128125593, -0.149226606, -0.159513697, 0.135717586,
+ 0.0851459056, -0.109249912, -0.00638009422, 0.144485772, 0.0967227221, -0.15101926, 0.0195341408, 0.0124143576,
+ -0.0929475725, -0.155912817, 0.109607443, 0.0473677702, 0.158728525, -0.116760351, -0.108016856},
+ {-0.00517110759, 0.0607900359, -0.00885016099, 0.000687138177, 0.138185054, 0.0911336839, 0.0318346545, 0.0697369203,
+ -0.0666795671, -0.138167456, -0.0584312193, -0.0015712342, -0.063814804, -0.032207381, -0.0722483695, 0.138519183,
+ 0.032056924, -0.0982425883, -0.157630533, 0.00482901791, 0.0526425131, -0.0324147046, 0.000445321755, -0.0164297558,
+ -0.0195691697, -0.109061792, -0.0311735142, -0.100015149, -0.0348813534, 0.015831437, -0.0675290525, 0.0122821676,
+ -0.0188400745, -0.0456030928, 0.140895411, -0.124181718, -0.114892609, -0.0411693454, 0.124735042},
+ {0.0958035439, -0.130936652, 0.0244326051, 0.052109018, -0.0386694632, -0.127200305, 0.118730977, -0.1442094,
+ -0.086243771, -0.0461907573, 0.0272799991, -0.0503089316, -0.00721625844, -0.130526751, 0.0260130204, 0.120258249,
+ -0.151281267, 0.0655669942, -0.0782718882, 0.0822672993, -0.119812563, -0.14523755, -0.0417704321, -0.0935360789,
+ 0.0208304971, -0.15949972, -0.0152375475, -0.0718022659, 0.116851538, -0.0557902493, -0.0761295184, -0.0614844859,
+ -0.0252460726, -0.121119633, 0.0271485336, -0.0414168313, 0.098560892, -0.133097664, 0.144050747},
+ {-0.0196632966, 0.00584345218, 0.0353918076, 0.0333389826, 0.154786333, -0.0865547284, -0.105787285, -0.0477316417,
+ 0.0160061568, 0.105426833, 0.0252377111, -0.0761258304, -0.0905868262, 0.0674140677, -0.148253232, 0.0941456035,
+ -0.0911621675, 0.153581962, 0.0853659734, 0.0138783893, 0.00365305459, -0.121299602, -0.0570472069, -0.100143351,
+ 0.0314520784, -0.0436465144, 0.119275771, -0.0375414677, 0.0826248676, -0.0722180009, 0.0600088835, 0.0231514052,
+ -0.11752934, -0.105500557, -0.15452911, 0.104733229, -0.116481096, 0.159584761, 0.075550288},
+ {0.0367535241, 0.0257054623, 0.0208994653, -0.0831006393, -0.0919770449, -0.138469696, -0.0775554255, 0.0558321886,
+ 0.0510588326, 0.123714693, -0.0384763218, 0.0346024483, 0.135389581, 0.0492637046, -0.0516408496, -0.0498436019,
+ -0.0404971354, -0.063532941, 0.0725634322, 0.0998432934, 0.0688143, -0.0308295731, 0.0218779165, 0.128970206,
+ -0.0664815381, -0.0228101928, 0.153792426, -0.0332464762, -0.0308457408, 0.128340617, 0.0817957073, -0.0138598736,
+ 0.141729936, -0.00696653919, -0.112140566, 0.150803879, 0.130852968, -0.0618984066, 0.0263254847},
+ {-0.044713039, 0.114585124, 0.0807259157, 0.117588744, 0.0184157118, -0.0867422, 0.0355176777, 0.0166774131,
+ -0.086305432, -0.00928124227, -0.0886212438, 0.0732235983, -0.0445092283, 0.0321064219, 0.145371869, -0.0868204609,
+ 0.022688387, 0.00190971617, 0.0781174749, -0.12914525, 0.124460429, 0.0981210098, 0.014635507, 0.123716138,
+ -0.0699735805, 0.118692987, -0.108618878, 0.118670449, 0.099654831, 0.00232008635, 0.142826989, 0.126973525,
+ -0.0683627799, 0.025770288, 0.112599783, -0.0207583234, -0.135948747, 0.101644814, -0.0142410183},
+ {-0.0177808963, 0.0689923242, -0.154154524, 0.120499209, 0.0436221734, 0.0872521549, -0.159272566, -0.12766473,
+ 0.0541796722, 0.0391868614, -0.0166257583, -0.0375310667, 0.147344396, -0.0943372399, 0.0632264093, 0.0898067653,
+ 0.0570167787, -0.117170736, 0.116889067, 0.0809641108, 0.0200283695, 0.00816197321, -0.056620229, -0.0542775393,
+ 0.0537301898, -0.0735042021, -0.15051502, -0.0861371085, 0.0627825186, 0.131233051, -0.137868837, 0.00940936618,
+ 0.157844782, -0.0419834033, 0.124431357, 0.121208586, 0.120109968, 0.0394434929, 0.0682575181},
+ {0.0697128326, 0.0246844422, -0.0890695602, -0.110172495, -0.0135539183, -0.0974184498, -0.0271810051, -0.0470966734,
+ -0.13898249, 0.00577538135, 0.139658764, 0.00356419641, -0.114558361, 0.155411765, -0.130553603, -0.0729248747,
+ -0.0230880678, -0.127035215, 0.0773263425, -0.0853866711, 0.0982360989, -0.0728335157, -0.080861561, -0.116359524,
+ -0.0405911468, 0.119176544, 0.102637716, -0.0921949595, 0.0878237858, -0.0824311525, 0.034250509, -0.0598196201,
+ 0.112347558, 0.0643319339, 0.0213099122, -0.143483803, -0.053344503, -0.126612708, -0.104358703},
+ {0.0775787532, 0.00409545563, -0.00205397001, -0.0327896066, 0.069652468, -0.0776266083, -0.143947035, -0.0694899485,
+ 0.067157127, 0.0785414353, -0.0397653282, -0.00486038066, -0.0293421764, -0.0558637604, -0.119117029, 0.127460957,
+ -0.0365896262, 0.0525164306, 0.133117497, -0.149907425, 0.016108701, 0.0654333755, 0.156136364, -0.00106984877,
+ 0.0984908938, 0.130341828, -0.0524930842, 0.0162676908, 0.141878411, 0.0572110824, 0.0402491316, -0.113442972,
+ 0.0697343424, -0.0409216508, -0.113025516, 0.0563906096, -0.0382295437, -0.0112676006, -0.0700219721},
+ {-0.0665083602, -0.0733961388, -0.159810573, -0.00481008179, -0.137323275, 0.137926593, -0.140937909, 0.101715863,
+ 0.092325069, -0.02889424, -0.134072348, 0.0916955471, -0.150101826, -0.0410030074, 0.0204478819, -0.0676795691,
+ 0.111317381, -0.0716019496, -0.127016574, -0.152310878, -0.105228461, -0.0583668686, -0.0156852361, -0.0399905369,
+ 0.0313888341, 0.0650816113, -0.114706874, -0.0446863547, -0.157811671, -0.00118949718, -0.0644660518, 0.140826166,
+ -0.00746693229, 0.0747331381, -0.0409461781, -0.0938129276, 0.141774356, -0.000487164303, 0.120836757},
+ {-0.10559123, 0.139235094, 0.0652362481, 0.121637888, -0.086268343, 0.14170903, -0.132305682, 0.0591010787,
+ -0.104287729, -0.0831991136, 0.102559432, -0.0998227745, 0.139877468, -0.0851509199, 0.0561623648, -0.121988095,
+ 0.0393951982, 0.0188960619, -0.0931730717, 0.0918561369, 0.0607347526, 0.140978277, -0.0378379747, -0.121191405,
+ -0.104092203, -0.0514265783, 0.110334247, -0.128934264, 0.0580388866, -0.145407975, -0.152084664, 0.137473315,
+ -0.0547786392, -0.040652249, 0.0199463442, 0.128169805, -0.0582309589, -0.0933132619, -0.0890814885},
+ {0.155949935, -0.0145105897, 0.0767697543, -0.0736777335, -0.0508489907, 0.047244899, -0.158603296, -0.145529196,
+ 0.115991436, -0.0592503361, -0.151724383, -0.101571456, -0.151892513, -0.0761191323, 0.0211785231, 0.0390771963,
+ 0.0343535878, 0.079780817, -0.0877778605, 0.0272075944, -0.0757257491, -0.156895295, -0.10469944, 0.00432704063,
+ -0.0463580526, 0.0329479873, 0.150125742, 0.016698163, 0.138537541, -0.0452093109, 0.0142391482, -0.0303994846,
+ -0.0384094529, -0.0341982245, -0.14867571, -0.119342029, -0.0492161736, 0.159149885, -0.150064468},
+ {-0.0716821626, -0.140553415, -0.0776115507, 0.0201236606, 0.130988896, -0.0315624103, 0.124680318, -0.111440919,
+ -0.0705786794, -0.12160036, 0.123668611, -0.105706409, 0.112165891, 0.13390319, -0.160071433, -0.0402594022,
+ -0.102682136, -0.13862589, -0.0329928473, -0.109241918, -0.0820019618, 0.0299827382, 0.102012925, 0.0136117768,
+ 0.00268340274, -0.0840161145, -0.0451973975, -0.0672649443, -0.0514372662, 0.0184525345, -0.106650561, 0.0105573265,
+ -0.130497858, 0.115283012, 0.0752222687, -0.109715201, -0.058659099, -0.10426145, 0.118080527},
+ {-0.126417309, -0.0153902005, 0.15301396, -0.030366499, 0.0947245657, 0.137490496, 0.00172988093, 0.115366809,
+ -0.131110266, 0.0515160449, 0.0233153589, -0.112320185, -0.137276381, -0.0623179562, -0.0384411998, 0.0245225318,
+ 0.0507537946, 0.118932843, -0.147198424, -0.00998578966, 0.0890832245, -0.110097222, -0.0680875331, 0.11397583,
+ 0.000251589896, 0.00558500923, -0.0815155804, -0.0576123297, -0.136845946, 0.019373605, 0.126342028, 0.0292948931,
+ 0.158888638, 0.12092647, -0.046014417, 0.0996500775, 0.0689606741, 0.0479243994, 0.0702013299},
+ {0.112908065, 0.14351508, -0.0743136629, 0.106024295, 0.107417449, -0.0624105185, 0.0208035056, -0.0978892371,
+ -0.134663835, -0.063803196, 0.0223776791, 0.0679410473, 0.100790977, 0.128934801, -0.102132939, -0.0627371445,
+ -0.0730021074, 0.0400428399, 0.114274457, -0.0995174348, -0.094780609, -0.154585987, 0.0999695137, -0.0147638218,
+ -0.0889723599, 0.0981012583, -0.0572005287, -0.0803901479, 0.00253544585, 0.0651584566, -0.0760441497, -0.0456601083,
+ -0.125089437, 0.130464196, -0.014163537, -0.0273322444, -0.0459496863, 0.0718412995, -0.0755520239},
+ {-0.0418175608, -0.0335841775, -0.0486129299, -0.121587954, 0.0537443347, 0.0236709435, -0.119852521, 0.0731066614,
+ -0.0735133439, -0.105469115, -0.0828514323, 0.0724856257, 0.0880934373, -0.104022667, 0.0633763522, 0.0249589961,
+ -0.0812268108, 0.103855871, -0.00646240497, 0.0225208066, 0.0481884927, 0.139660165, 0.158730507, -0.135022819,
+ -0.00114677649, -0.153464124, -0.13534081, 0.0912234038, -0.147941664, 0.125885442, -0.149579182, -0.139625415,
+ -0.115968794, 0.148885146, -0.150153682, 0.156008005, 0.0580583364, -0.0438445024, -0.152393132},
+ {-0.016789902, -0.0874078423, -0.02441491, 0.0631579012, -0.0669527873, -0.0611300617, 0.0479953513, 0.0629815608,
+ -0.087249577, 0.0973441973, -0.129677281, 0.131319553, -0.153193727, 0.0273478217, 0.146984845, 0.13275969,
+ -0.00383981923, 0.0347971357, -0.0258791894, 0.0930513069, 0.133233219, 0.0184774064, 0.0401158184, 0.0957292244,
+ -0.0637905598, -0.0367962606, -0.15395461, 0.120178096, -0.110208549, -0.0503730699, -0.136504143, 0.139025673,
+ 0.15711537, -0.092101045, 0.133052662, 0.032815624, -0.138278157, 0.0632831976, -0.113778152},
+ {0.0201854315, 0.0248999353, 0.0594310872, -0.0539992638, 0.0846187472, 0.0596814938, -0.140735298, 0.0940341428,
+ 0.0991497263, -0.157746524, 0.0846076012, -0.0274372902, 0.0670328215, -0.0451572947, -0.0466198176, -0.135705933,
+ -0.155096889, -0.102244146, -0.00308398041, -0.0823937207, -0.12995261, 0.0556907766, 0.157323703, 0.0269429479,
+ 0.0536769703, -0.137455285, -0.137057468, -0.124605983, 0.14745082, -0.0360464379, -0.034646295, -0.108051084,
+ 0.0914900899, -0.12886633, 0.0607017875, 0.14536877, -0.118281528, -0.00148665195, -0.0162434299},
+ {-0.0550378449, 0.130923778, 0.0830431059, -0.0414940827, 0.0255563222, -0.0210875086, 0.054693792, -0.0559153184,
+ 0.02971958, -0.0605289377, -0.0722915903, 0.123071417, 0.0160048008, -0.0295894723, -0.151174843, 0.154010564,
+ -0.0378083885, 0.147745118, 0.106625415, 0.0391720496, -0.051623974, 0.125934869, 0.0177393015, -0.00886142347,
+ 0.00509024737, 0.0665114895, 0.0141628124, -0.0273017604, -0.090426296, 0.0027499462, 0.0359637253, -0.0588276908,
+ -0.0689337179, 0.114809364, -0.0436053947, 0.0653580874, 0.0728206113, -0.145185977, 0.0811531842},
+ {-0.104867265, -0.14450793, -0.159647495, -0.0412309431, 0.0442711338, 0.0752263293, 0.0905347392, -0.0156441182,
+ 0.0018121344, 0.126848966, -0.0767096654, -0.0112375161, -0.000385020336, -0.125034779, -0.0084355725, -0.159916371,
+ -0.116257474, -0.0958575979, -0.119323418, -0.00417024549, 0.0242020879, -0.12504676, 0.0650173724, 0.0312657878,
+ -0.0692009851, 0.0996695459, -0.0721073225, 0.075257659, 0.0698385313, 0.0198956262, 0.101688758, -0.124332324,
+ 0.131463587, 0.115280814, 0.144630998, -0.160125107, -0.114957854, -0.000886997557, 0.0713727847},
+ {-0.0549703687, -0.0433620512, -0.0877646878, -0.119162977, 0.112524837, 0.139126703, -0.0341377519, -0.0449487306,
+ 0.130686015, 0.00345115294, -0.131488353, -0.0792525709, 0.00782312825, -0.0400498472, -0.131493807, 0.141692102,
+ 0.152393356, 0.00107015425, -0.0898117274, -0.0946044996, 0.0594668984, 0.0579793118, -0.104150601, -0.0151418559,
+ 0.148081571, 0.0513356961, -0.141101196, -0.053766612, -0.156557009, 0.0823729336, 0.0188856963, -0.150155678,
+ -0.110151075, 0.0617338419, 0.0797846168, -0.0548617542, 0.0675237328, 0.159863576, -0.00650237687},
+ {-0.128873587, -0.0933671072, 0.154030934, 0.0755939633, -0.143089637, 0.0267121848, 0.0357495695, 0.0248231031,
+ -0.0516575314, -0.0348784924, -0.00861384254, 0.0863924772, 0.160069719, 0.108299315, 0.0888917074, 0.0249136034,
+ 0.099904567, -0.00174032245, -0.03794365, -0.0371070653, 0.010128173, -0.0942519456, -0.0355476104, 0.12743704,
+ -0.0635977611, 0.0870915055, 0.0336484313, 0.122676261, -0.0634583756, -0.145944953, 0.0907539725, -0.126188725,
+ -0.11494787, -0.0277100112, 0.0579763129, 0.0813958794, -0.047633104, 0.0260170475, -0.0550397933},
+ {-0.0915976018, 0.13003993, -0.0838397369, 0.11951831, 0.0194157343, -0.123238638, -0.0247885343, -0.119810581,
+ -0.0695614144, -0.04229182, -0.00646712026, -0.0980333015, 0.0265171919, -0.118918329, -0.052301053, 0.0193821564,
+ -0.0900358707, 0.0932942629, -0.0502896868, 0.0138303237, 0.00222758227, 0.00599726941, 0.0613628328, 0.109779738,
+ 0.0380681865, -0.0473496951, -0.0299199931, -0.0255137533, 0.00397951063, 0.115538992, 0.0350842848, 0.0831481144,
+ 0.0261586104, 0.00893550739, -0.159215644, -0.0429788828, -0.03181215, 0.126899838, -0.136866063},
+ {-0.133876532, 0.14184092, -0.0219634548, 0.157925233, 0.0774208158, -0.0360120386, 0.119860075, -0.105293386,
+ -0.100400917, 0.108133584, 0.0906630531, -0.0224026293, 0.0301082656, -0.11204388, -0.0823697671, -0.151968345,
+ 0.0647877753, -0.0367129967, -0.100568786, 0.157459989, 0.12105681, 0.103139371, 0.126091033, -0.067621462,
+ 0.129008725, 0.153700948, -0.15702723, 7.54197026e-05, 0.0334858112, 0.0343314074, 0.0417566672, -0.112968154,
+ 0.131384522, 0.143023625, -0.148550883, 0.0462077856, 0.0849757642, 0.0364897177, -0.079915598},
+ {-0.0827135146, -0.14391619, -0.0164256133, -0.108707756, -0.101542957, 0.1003258, 0.00531956088, -0.110374779,
+ -0.151255041, 0.130988881, -0.0955013633, -0.136518702, -0.0623609647, 0.0192074366, 0.0708061382, 0.0290712696,
+ -0.0951986164, 0.0752324611, 0.0699329004, -0.112330705, -0.0960590988, 0.148548335, 0.0457706153, 0.142993227,
+ 0.107931145, -0.0769833177, 0.0972733349, -0.0638932958, -0.159782812, -0.0759236813, -0.0911080316, 0.11277324,
+ 0.0844429806, 0.109982252, -0.0494783595, -0.149861366, -0.067463316, -0.109967329, -0.0922606289},
+ {0.0903617889, -0.117960401, -0.0793403611, 0.0361569226, -0.132560268, 0.0643765852, 0.121897727, 0.0148753189,
+ -0.094579801, -0.123791978, -0.129966274, -0.102571502, 0.113401033, 0.150691405, -0.0593341179, -0.00452753017,
+ 0.0296386443, 0.150840878, 0.00880585611, -0.0939081982, 0.014405678, -0.0951303765, 0.0882003903, 0.00161494745,
+ 0.0918676853, -0.032511998, -0.0651376173, -0.0115957931, -0.110192209, -0.0856438875, -0.0233577732, 0.0477317572,
+ 0.0959454849, -0.00823315512, -0.0863729119, -0.102114305, 0.139617518, -0.136686638, 0.0232809987},
+ {0.0515834093, 0.0067583574, -0.0222151205, -0.0895339102, 0.0763585046, -0.00735381199, -0.106396161, 0.0296850298,
+ -0.134560212, 0.0139236301, 0.0781865418, 0.102652721, -0.00223393878, 0.0202996768, -0.013427685, 0.145846009,
+ -0.0328468159, -0.0257565435, 0.0543970354, 0.0435122438, 0.153779268, -0.0857072249, -0.0999265611, -0.0810974985,
+ -0.149193168, -0.0552409701, -0.0507812798, -0.0218712166, 0.106643669, -0.105555318, -0.02635324, 0.154921398,
+ 0.143554866, -0.0304100402, 0.142191589, 0.0198115967, -0.121456929, 0.0412659161, 0.0737678185},
+ {0.0754892975, 0.137719885, 0.113413155, 0.0410682335, 0.152943254, 0.0311809201, -0.121315427, -0.0378877781,
+ -0.025406342, -0.0848549902, 0.0327905826, -0.114954606, 0.0140589122, -0.0771826431, 0.10226766, 0.117255814,
+ -0.0513133816, 0.0861474723, 0.0347502716, 0.0956842005, -0.0802905634, -0.0724775121, 0.108584173, 0.0386736803,
+ -0.144252256, 0.135425031, 0.12554045, -0.131078511, 0.145036325, 0.142823547, -0.00596964778, 0.0732668862,
+ -0.0744379833, 0.0422417149, 0.0488103852, 0.0208154358, -0.125972494, -0.0499065965, 0.0151216593},
+ {0.0678752512, 0.141479909, -0.0579361878, -0.10212034, -0.146536276, -0.00384688191, -0.0647281781, 0.0734420493,
+ 0.109909736, 0.116302431, 0.0850667953, 0.12005461, -0.12765038, 0.0826389939, -0.0631282553, 0.0458230712,
+ -0.0923582092, -0.108656518, 0.0245845132, 0.0573111288, 0.00713555142, 0.0701984689, 0.0452481359, 0.0295052528,
+ -0.155328035, -0.117457815, -0.0978364944, 0.0149758402, -0.104488008, 0.140530676, 0.124306902, 0.028429715,
+ 0.0454303585, 0.0874194503, 0.136134163, -0.14067778, -0.0525717698, -0.101382881, 0.074112542},
+ {-0.157280296, 0.124309897, 0.0148374466, -0.00693191215, 0.107233264, 0.0571080595, 0.150594458, 0.150929227,
+ 0.142951444, -0.142405644, 0.138320133, -0.115849219, 0.0955718383, 0.0476052351, 0.101476625, -0.0881222412,
+ 0.112478189, 0.147543103, 0.0593991503, -0.0159316342, -0.0348451994, -0.0293387026, -0.0574080981, 0.125476748,
+ 0.101387084, 0.0443435945, 0.0881850794, -0.124311559, 0.0886368528, -0.124436647, 0.00974313356, 0.0638830066,
+ 0.123684973, 0.0578040369, -0.0538033769, 0.119889624, 0.0825477913, -0.158593297, 0.0773752853},
+ {0.0340256616, 0.115323059, -0.00619861763, -0.0115783848, -0.0833316892, 0.11521899, 0.0220446568, 0.158191502,
+ 0.111394577, -0.0670775101, -0.0302642789, 0.081452474, 0.0618066266, -0.0850684568, 0.0860743821, 0.107404031,
+ 0.143676728, -0.103181064, -0.00943402946, 0.00770462537, -0.0582186244, -0.0160429589, -0.115015365, 0.0600330718,
+ -0.139785513, -0.0110464189, -0.00731863175, -0.148870051, 0.0372841135, 0.0491300263, -0.146719262, 0.0570872724,
+ 0.0559942685, 0.0762820914, 0.148259863, 0.155335262, -0.0630727485, 0.0147177791, 0.124616943},
+ {0.117235161, -0.130238339, 0.00227429252, -0.141247049, 0.0465945229, 0.144285262, 0.00209529721, -0.0165882483,
+ 0.101704262, 0.0249015391, -0.045640219, 0.124497734, 0.0927760974, -0.0886490569, 0.0686340109, -0.084755078,
+ -0.0126271211, 0.150040656, 0.159568831, -0.0562661886, -0.149355993, -0.0190586969, 0.0195181444, 0.0291265883,
+ -0.040851593, 0.0177249461, -0.0968457684, -0.082255289, -0.0367871374, -0.0673075691, -0.0975337252, 0.00672808243,
+ 0.0360103399, -0.0260913987, 0.0370827653, -0.132725313, 0.0987735242, 0.114781991, -0.0128890574},
+ {-0.0973276645, -0.0739934444, 0.053933695, -0.113706112, -0.0913961157, 0.00288793887, -0.00853576884, 0.115016207,
+ 0.0451276675, 0.0362566225, -0.0488199666, -0.108090103, 0.0763517842, 0.0432774127, -0.126216918, -0.0323137827,
+ 0.0725389048, -0.112815328, 0.130934075, 0.144305229, 0.133580983, -0.155202955, -0.104472205, 0.134186804,
+ 0.118462458, -0.0230473336, -0.0411200561, 0.0320737399, 0.153461888, 0.136641204, -0.103034154, 0.131208822,
+ -0.0811961517, 0.141016573, 0.0441101603, -0.157163605, -0.00134302804, -0.000277416984, 0.00519697275},
+ {-0.157234773, 0.0216934998, 0.0229968429, -0.0456779599, 0.0617230572, -0.159433469, 0.115041979, -0.0409196652,
+ -0.12699388, -0.103104919, -0.0608809553, -0.138878256, 0.0337750278, -0.0957158431, -0.141873315, 0.108097315,
+ 0.107926987, 0.0990178958, 0.0116720526, -0.158665687, -0.129165709, -0.0232352037, -0.114883408, -0.134382501,
+ 0.0158243161, -0.0731174052, -0.135450542, 0.0167346224, -0.121782698, -0.0701439083, -0.0866819546, -0.120067455,
+ 0.092619285, -0.0461705066, 0.0892303661, 0.0779077485, 0.0149603784, -0.146992788, -0.00272293552},
+ {-0.0361600332, -0.0228186883, 0.00934007391, -0.0170567073, 0.0384269021, 0.142638072, -0.0744384602, -0.0217330139,
+ -0.0218091402, 0.0360304601, 0.0797148421, -0.0997342616, -0.0314630903, -0.0379285328, 0.139887363, 0.123339653,
+ -0.0287113115, 0.115470789, 0.0371872373, -0.0412517339, -0.135022566, 0.103279389, 0.105988599, -0.0172151439,
+ 0.0150876818, 0.0274245963, -0.0132739441, -0.036677435, 0.112553529, -0.155846283, -0.0206262488, 0.13022539,
+ 0.0678242669, 0.126872942, -0.0510943756, 0.0201200712, 0.043223124, 0.0387389623, 0.158661246},
+ {-0.0076213032, -0.0165892038, -0.0685659796, 0.0714797452, -0.016281493, -0.0765684247, 0.137657881, -0.154361069,
+ -0.0206807088, -0.0900971815, 0.019978432, 0.0333570577, 0.141404584, 0.0914899185, 0.0473329164, -0.131317779,
+ -0.0968455225, 0.0220416989, -0.1212359, 0.105686575, -0.142264634, -0.0132441651, -0.131832302, 0.024911236,
+ -0.140045494, 0.0894184634, -0.0229819156, 0.00864381157, -0.0193220656, -0.109721102, 0.0386561938, -0.0338467434,
+ -0.0236302074, 0.0742785186, -0.104582898, 0.121219292, 0.111321308, -0.120511308, -0.105403334},
+ {-0.0385326706, -0.149855226, 0.0867880508, 0.0908868834, 0.121826887, -0.0176020525, 0.00701380335, 0.157649904,
+ 0.129334271, -0.022528844, -0.122996956, 0.0200926214, -0.151215792, 0.025034111, -0.0635366961, -0.0559968092,
+ -0.126804113, -0.145577371, -0.0725016594, -0.111986093, -0.12005423, -0.129444838, 0.0989802182, -0.145718962,
+ 0.158439308, -0.136623144, 0.0214766711, 0.140014693, -0.078493163, -0.1480892, 0.0923972055, -0.0590759218,
+ -0.113076009, 0.0365628451, -0.000295245904, 0.0462453514, 0.0592812598, -0.0913652703, 0.0834260806},
+ {0.143805295, 0.0155787403, 0.0261022598, -0.0257711839, -0.0182284322, 0.0275831092, -0.0485377423, 0.0492555723,
+ 0.15253517, 0.0234382525, -0.0826058388, 0.0789847374, 0.146116897, 0.090543896, -0.145559639, -0.0838401392,
+ 0.020527197, 0.134442538, -0.060153272, -0.0281252302, 0.0846550316, -0.0223555565, 0.079243198, -0.106259376,
+ -0.0495959446, -0.0445554443, 0.111729063, 0.133360282, 0.0883187056, 0.0215883795, 0.106322229, 0.121772349,
+ 0.119024768, 0.123255357, -0.0772241428, -0.010108321, -0.144010186, -0.0626373142, 0.00331682526},
+ {0.00821007695, -0.0551363453, -0.0676344633, -0.0111245876, 0.1491611, -0.1228237, -0.0549128726, -0.0588845573,
+ -0.0994822159, 0.159540027, -0.147012025, 0.0386894271, -0.00295335613, 0.15084444, 0.0976848304, -0.00153089967,
+ -0.0128493337, -0.142887488, -0.111583702, 0.0320946053, -0.122405484, -0.0896965712, 0.11114724, -0.0944887251,
+ 0.149016038, -0.090780735, -0.0281430203, 0.0362697542, 0.123263702, 0.00452216621, -0.0758949369, -0.0870857015,
+ 0.0268697999, 0.129318699, 0.149626926, 0.0784597546, 0.00966807641, 0.15372999, 0.0346111134},
+ {0.135335431, -0.0524530187, 0.0564956926, 0.134169638, 0.0994171202, -0.0721554831, 0.150539726, 0.103655607,
+ 0.0302717239, 0.00642100163, -0.133985415, -0.126268983, -0.0759931058, -0.042624902, 0.0353744552, -0.146013692,
+ -0.0397743396, -0.0821449757, -0.0522839502, 0.134827748, 0.0357014835, -0.125457406, 0.00284048426, 0.0960820243,
+ -0.0400908887, -0.0969539434, 0.117565207, 0.128489807, -0.0317166485, 0.109517328, 0.0833919123, -0.0554327182,
+ -0.138008565, -0.11444059, 0.149088979, 0.0512602963, -0.0856498107, -0.111970522, -0.12587148},
+ {0.0224373136, 0.0382923447, -0.0747886077, -0.0121580716, -0.0767029598, 0.141055718, -0.123395182, 0.0675715879,
+ 0.0379213355, -0.0472308286, -0.0575145371, -0.106351458, -0.0309086386, 0.135627106, -0.147148684, 0.090754509,
+ 0.0279704574, 0.147471264, -0.145420462, 0.0589833222, -0.0136448387, -0.039699167, 0.120141715, -0.143935755,
+ -0.115310997, 0.115785278, 0.000652988383, -0.133672759, -0.00613919413, -0.0626730248, -0.0189093091, -0.147770464,
+ 0.147255659, -0.102808639, -0.0871997178, 0.0724047273, 0.1256354, -0.0224007387, 0.142272457},
+ {0.137836054, -0.0632258207, -0.0164566897, -0.0403495207, 0.0517789163, 0.00608601281, -0.149766177, 0.142742306,
+ -0.0314270705, 0.103650607, -0.126158774, 0.111624077, 0.055120863, 0.0388984494, -0.134918407, -0.152487814,
+ 0.0295004807, -0.113996848, -0.111506641, -0.0440089144, -0.086366035, -0.0807152689, 0.00865797512, -0.0573150218,
+ 0.0741267204, 0.154979885, 0.0202493407, -0.0254147016, -0.0147838835, -0.107501328, -0.0772380009, -0.105413929,
+ -0.0683901906, 0.131929144, 0.154526249, 0.11189802, -0.130999997, -0.0124845281, 0.0581236407},
+ {0.0459919125, -0.0860065967, 0.0110306898, -0.118987873, -0.0659963042, 0.0930785611, 0.085940741, -0.12604323,
+ -0.107581571, 0.121533573, -0.0391657315, 0.107208066, 0.137636319, -0.0569114834, -0.0467083305, -0.120382749,
+ -0.047168009, 0.0838120356, 0.113633588, 0.114312351, 0.0656505898, -0.102815628, -0.0920698196, -0.148176312,
+ 0.0844320953, 0.0736770704, -0.0619042069, -0.151609793, 0.0634551719, 0.111207634, 0.137860373, 0.0858280212,
+ -0.0832563415, 0.155327365, -0.00127360225, 0.0822034255, -0.0723850429, 0.131452531, 0.0642569587},
+ {0.128805608, 0.0990629867, -0.119305432, -0.0292620808, -0.0708809495, 0.0392772667, 0.015687393, -0.0852657035,
+ 0.0104729729, 0.122274593, -0.098343797, -0.136710733, -0.0628816858, -0.105143823, 0.0515109301, 0.137111172,
+ -0.130796328, -0.0743087158, -0.0400102176, -0.00140646007, -0.0264896676, -0.0728007406, 0.0188319609, -0.108995229,
+ 0.0468106084, 0.0621610284, 0.0719994307, -0.0657696649, -0.0772869289, 0.119326912, 0.159178615, -0.152700007,
+ -0.11091581, -0.0193140283, 0.123198986, 0.147255823, -0.0607609637, 0.0305595621, 0.0803839639},
+ {0.144919828, -0.0497360565, 0.153210148, -0.113501117, -0.117309205, 0.0958018601, 0.127570242, 0.0632243678,
+ 0.0918181688, -0.141088709, 0.146485403, -0.0462406576, 0.159514248, 0.0430768281, 0.0786268264, -0.00808254443,
+ -0.0773618519, 0.0306342579, -0.12890771, 0.0187857281, 0.0366844386, -0.0248747766, -0.122418679, 0.0175913069,
+ 0.0797886029, -0.0122940792, 0.0957477242, -0.0396141075, -0.129192919, 0.0185948983, 0.107355565, 0.142729267,
+ 0.0553980879, -0.141973346, 0.022911841, -0.116240792, 0.0882501006, -0.131930307, -0.0928079635},
+ {0.106438749, 0.101826347, -0.11401926, 0.150217101, 0.098923333, -0.0181241892, 0.0712259561, 0.0242997278,
+ 0.0275936276, -0.131927788, -0.0849952176, 0.017318815, 0.0068610739, 0.115758359, -0.0853685364, 0.00950135477,
+ -0.133058578, 0.0410957597, 0.0209150035, -0.124753959, -0.0244098306, 0.00401516864, -0.0374188237, -0.10042619,
+ -0.101509094, -0.111051895, 0.0484750532, 0.0317879803, -0.0559743047, -0.0285410788, -0.0229661483, -0.0721477345,
+ -0.00402316684, 0.117756531, -0.0819754303, 0.089403078, 0.0334226303, 0.0275267027, 0.027861882},
+ {0.108989581, 0.0460046604, -0.0563987233, 0.0293907002, 0.104052693, -0.0383384638, -0.030068161, 0.150279298,
+ 0.0409633964, -0.00166833878, -0.0346902199, 0.0669264048, -0.0511397123, 0.0199506395, 0.149070546, -0.0374698266,
+ 0.00843488518, -0.0328176878, -0.145957738, 0.152954951, -0.144924343, 0.14804782, 0.0786780939, 0.0285716206,
+ 0.0510875434, 0.0378996506, -0.0798344165, 0.0156888627, -0.11134693, 0.0566322543, 0.0671340302, 0.0756672993,
+ -0.131263569, 0.121300727, 0.128415108, -0.0732385069, -0.0441863798, 0.145850092, -0.140892282},
+ {-0.0433208197, 0.0865452439, 0.0491333306, -0.0707463101, 0.0425013006, -0.152840808, -0.0107151717, -0.0138318893,
+ -0.0186936446, 0.12703611, 0.0707801804, -0.0564198159, -0.105342612, -0.0870764479, -0.0342938006, -0.0887430236,
+ -0.0956649557, 0.112175398, 0.0909370333, 0.0317445174, 0.0798360035, -0.0917860791, -0.0962542295, -0.056887053,
+ 0.148518249, -0.072213918, 0.0639881641, 0.0572802611, -0.132279277, 0.0703128278, -0.0325882584, 0.0573971979,
+ 0.0131939426, 0.0694291666, 0.014503222, -0.155698791, 0.0548479706, -0.131516039, 0.0377209596},
+ {0.0347373113, -0.1174886, -0.00463837851, 0.0322827622, 0.116443321, -0.0683661774, -0.00230853772, 0.0666368082,
+ 0.153403535, -0.132826671, -0.13612321, -0.0795206949, -0.0288710464, -0.109852068, -0.00206555682, 0.0141264861,
+ -0.138332427, 0.0350137167, 0.0766007006, 0.0733971521, 0.120388016, -0.122281618, -0.155271351, -0.103171304,
+ -0.0537912734, 0.0376074575, 0.0374378748, -0.0292252395, 0.121223301, 0.107397161, -0.031116344, 0.0732557401,
+ 0.0359054469, 0.0417368747, 0.133481681, 0.120928459, 0.0945898965, -0.0629648343, 0.11936377},
+ {-0.138524175, 0.153413162, 0.00945223961, 0.135453954, -0.133650959, -0.0830611214, 0.148169518, 0.0940570533,
+ -0.00380408484, -0.086952731, -0.0809288099, -0.156174347, 0.131625593, 0.0475885347, 0.00847210828, -0.136250719,
+ 0.106322765, 0.150923416, 0.150585994, -0.064253293, -0.096121788, 0.0809252262, -0.0415405631, -0.136549413,
+ -0.0137932152, -0.0286584944, 0.0176992528, 0.0582241043, 0.0482284836, -0.0121927755, 0.0387834013, -0.063821733,
+ 0.0187701322, 0.056976445, 0.118335001, -0.00805816799, 0.144364879, 0.136538237, 0.0551046953},
+ {-0.0352555513, -0.146217152, -0.14467366, -0.0438222997, 0.125421345, -0.0440197177, 0.120475978, 0.125130519,
+ 0.0638999417, 0.104002431, 0.0400096662, -0.0938901231, -0.148611918, 0.0584221296, 0.152547419, -0.0257979091,
+ 0.113014638, 0.1321401, 0.021303039, -0.133068457, 0.0705090389, 0.152023375, -0.143248737, 0.148735747,
+ 0.0126785459, 0.0664216429, 0.0673842281, 0.0494141243, 0.0561462939, -0.153661698, 0.0493393354, -0.100295395,
+ -0.088040024, 0.0135752028, -0.1531367, -0.0556834675, -0.0371512547, 0.0104368571, -0.0160086378},
+};
-const float six_dense_biases[SIX_DENSE_NUM] = {
- -0.06967716664075851, -0.44022783637046814, -0.5417478084564209,
- -0.9069390892982483, -0.5126388072967529, -0.6354130506515503,
- -0.10972009599208832, -0.562232494354248, -0.6675834655761719,
- -0.6644823551177979, -0.8808755278587341, -0.3119734525680542,
- -0.7456325888633728, -0.5520071983337402, -0.35148730874061584,
- -0.4321696162223816, 0.20877626538276672, -0.39401814341545105,
- -0.34259599447250366, -0.05571189150214195, -0.20628471672534943,
- -0.6253416538238525, -0.06269057095050812, -0.5957340002059937,
- -0.3175065815448761, -0.3733671009540558, -0.4160494804382324,
- -0.7057332396507263, -0.0038920114748179913, -0.22997768223285675,
- -0.6255137324333191, -0.7110783457756042, -0.1551521271467209,
- -0.24990537762641907, -0.6163766980171204, -0.4247187077999115,
- -0.7986910939216614, -0.4614383280277252, -0.3101421296596527,
- -0.26032987236976624, -0.6711196899414062, -0.5886708498001099,
- -0.46851369738578796, -0.5316239595413208, -0.6672037243843079,
- -0.5897069573402405, -0.6752277612686157, -0.2791188359260559,
- 0.08230648934841156, -0.3046773374080658, -0.20194388926029205,
- -0.20666947960853577, -0.332783579826355, -0.6711490750312805,
- -0.32295775413513184, -0.17244867980480194, -0.37504926323890686,
- -0.28200626373291016, -0.5700741410255432, -0.363629549741745,
- -0.5895812511444092, -0.7540486454963684, -0.5940008163452148,
- -0.6399450302124023};
+const float six_dense_biases[SIX_DENSE_NUM] =
+{
+ -0.106425747, 0.142752945, 0.145629004, 0.00546986563, -0.0097992355, 0.0908411667, 0.00711907772, -0.114593297,
+ -0.092972368, -0.0360035077, -0.00956747867, -0.0729396343, -0.117534339, -0.0428674631, -0.126915231, 0.080137834,
+ 0.0734208748, -0.133160949, 0.0272146966, 0.0934232846, -0.159518629, -0.101017371, -0.141830996, 0.0214058515,
+ 0.101856165, -0.0170916207, -0.00711661531, -0.0615158267, -0.0289785173, 0.0253515765, 0.043456465, 0.146055236,
+ -0.000608377974, 0.146163985, 0.0434216857, 0.074026987, -0.0930295065, -0.0972476453, 0.0507774651, 0.0938288271,
+ -0.00998653471, -0.0581613779, -0.0754808784, -0.1074294, 0.104443379, 0.0734389573, 0.159931183, 0.0165527258,
+ -0.0859139413, 0.0425923169, -0.0468143895, 0.096265316, 0.113443732, 0.0967639759, 0.145086646, -0.0425086133,
+ 0.110646464, -0.0239180867, 0.0744835287, -0.107726648, -0.152292877, 0.105378613, -0.0339635648, -0.126999453
+};
-const float six_output_weights[2][SIX_DENSE_NUM] = {
- {-0.07302232086658478, 0.13510112464427948, 0.1300254911184311,
- 0.1799755096435547, 0.04949653893709183, 0.07790026068687439,
- 0.1633823662996292, 0.18218885362148285, 0.14318706095218658,
- 0.12348434329032898, -0.059174586087465286, 0.1362956464290619,
- 0.12713192403316498, -0.11747836321592331, 0.04890844225883484,
- -0.10521009564399719, -0.1504904329776764, -0.06776679307222366,
- -0.011088703759014606, -0.1176120936870575, 0.11910095065832138,
- 0.17112720012664795, 0.40426141023635864, 0.117193304002285,
- 0.03174498677253723, 0.2071460783481598, 0.1914520561695099,
- -0.10132134705781937, 0.038214121013879776, 0.0016146935522556305,
- -0.06785089522600174, -0.16885392367839813, 0.22577765583992004,
- -0.02406524494290352, -0.107661671936512, -0.03207802027463913,
- 0.14433519542217255, -0.10634109377861023, 0.11385593563318253,
- -0.09148751199245453, -0.12748983502388, 0.09944026917219162,
- -0.11984292417764664, -0.06870798766613007, 0.07336993515491486,
- -0.06733305752277374, -0.2037811577320099, 0.08543498069047928,
- -0.08490556478500366, -0.02513868920505047, -0.22716110944747925,
- -0.11461621522903442, 0.09373198449611664, -0.19322800636291504,
- -0.1750950962305069, -0.12388377636671066, -0.13034087419509888,
- 0.17253483831882477, -0.11518114805221558, 0.11116097122430801,
- -0.10767245292663574, 0.1428501009941101, 0.21024677157402039,
- 0.09458904713392258},
- {-0.04867282137274742, -0.12133938074111938, -0.12863431870937347,
- -0.22873400151729584, -0.10455438494682312, -0.0994892343878746,
- -0.12702268362045288, -0.10685571283102036, -0.11664576828479767,
- -0.18876326084136963, 0.024635830894112587, -0.16811606287956238,
- -0.1487940102815628, 0.07733053714036942, -0.04051893949508667,
- 0.14585408568382263, 0.15599925816059113, -0.029253050684928894,
- -0.056079715490341187, 0.1628628373146057, -0.15175913274288177,
- -0.09187500923871994, -0.4156719446182251, -0.13169778883457184,
- -0.027643941342830658, -0.155934140086174, -0.02847992070019245,
- 0.12021031230688095, 0.03525504097342491, 0.037111807614564896,
- -0.08677919209003448, 0.09230437129735947, -0.17035338282585144,
- -0.028646811842918396, 0.19761770963668823, 0.048951324075460434,
- -0.16993199288845062, 0.009519846178591251, -0.05790598317980766,
- 0.13865339756011963, 0.17961318790912628, -0.1378742903470993,
- 0.11909746378660202, 0.13531020283699036, -0.07563496381044388,
- 0.1344599574804306, 0.10990381985902786, -0.06671777367591858,
- -0.005469973664730787, 0.23519796133041382, 0.22312238812446594,
- 0.1941014975309372, -0.06822828948497772, 0.14889642596244812,
- 0.11146791279315948, 0.09140922129154205, 0.1110391691327095,
- -0.12873628735542297, 0.13196496665477753, -0.10414397716522217,
- 0.06405720114707947, -0.0693216398358345, -0.09506542235612869,
- -0.03883719816803932}};
+const float six_logit_weights[SIX_DENSE_NUM] NN_ALIGNED =
+{
+ -0.0705124587, 0.0868723392, 0.0520056635, 0.0647664964, -0.0928007513, -0.0886785686, -0.113316193, -0.0289525986,
+ -0.08650738, 0.0771128982, 0.0233608782, 0.107995376, 0.0838339776, -0.120495304, 0.0639513433, 0.0945038646,
+ -0.074260354, -0.0589973927, 0.0363359153, 0.10274297, -0.0414749533, -0.0211133063, 0.0633404851, -0.0377910733,
+ -0.0363686532, 0.0756987631, 0.0449215174, -0.0807459652, 0.105491117, 0.0272067338, -0.0523718894, -0.0948979259,
+ -0.0711999387, 0.0229022354, 0.0608644933, 0.0173428953, 0.0460195094, -0.100155696, -0.0285425484, 0.0336628258,
+ -0.0983794481, -0.1200317, 0.0569871217, 0.0507859439, 0.123536095, -0.122615263, -0.0976838917, -0.0485803038,
+ -0.0482099652, -0.0274398476, 0.0169587582, 0.0929383337, -0.122677058, -0.110818297, 0.0514815152, -0.061397016,
+ -0.0709132254, 0.11439988, 0.0762117952, -0.096738115, 0.0813071877, 0.108724922, -0.0449660271, 0.0470137894
+};
-const float six_output_bias[2] = {0.39013445377349854, 0.4827316999435425};
+const float six_logit_bias = 0.0557706803;
diff --git a/include/weights_6.h b/include/weights_6.h
index 8da555d..b572ffa 100644
--- a/include/weights_6.h
+++ b/include/weights_6.h
@@ -1,5 +1,5 @@
/*
- This file is part of ct.
+ This file is part of ctak.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -12,13 +12,21 @@
General Public License for more details.
You should have received a copy of the GNU General Public License
- along with ct. If not, see <https://www.gnu.org/licenses/>.
+ along with ctak. If not, see <https://www.gnu.org/licenses/>.
*/
+#ifndef WEIGHTS_6_H
+#define WEIGHTS_6_H
+
#define SIX_INP_NUM (3 + 6 * 6)
#define SIX_DENSE_NUM 64
-extern const float six_dense_weights[SIX_DENSE_NUM][SIX_INP_NUM];
+/* See weights_5.h for the alignment rationale. */
+#define NN_ALIGNED __attribute__((aligned(16)))
+
+extern const float six_dense_weights[SIX_DENSE_NUM][SIX_INP_NUM] NN_ALIGNED;
extern const float six_dense_biases[SIX_DENSE_NUM];
-extern const float six_output_weights[2][SIX_DENSE_NUM];
-extern const float six_output_bias[2];
+extern const float six_logit_weights[SIX_DENSE_NUM] NN_ALIGNED;
+extern const float six_logit_bias;
+
+#endif
diff --git a/include/xorshift64.c b/include/xorshift64.c
index 0a68c71..c758a47 100644
--- a/include/xorshift64.c
+++ b/include/xorshift64.c
@@ -1,5 +1,5 @@
/*
- This file is part of ct.
+ This file is part of ctak.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -12,7 +12,7 @@
General Public License for more details.
You should have received a copy of the GNU General Public License
- along with ct. If not, see <https://www.gnu.org/licenses/>.
+ along with ctak. If not, see <https://www.gnu.org/licenses/>.
*/
#include "xorshift64.h"
diff --git a/include/xorshift64.h b/include/xorshift64.h
index c3542c6..2b13f60 100644
--- a/include/xorshift64.h
+++ b/include/xorshift64.h
@@ -1,5 +1,5 @@
/*
- This file is part of ct.
+ This file is part of ctak.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -12,7 +12,7 @@
General Public License for more details.
You should have received a copy of the GNU General Public License
- along with ct. If not, see <https://www.gnu.org/licenses/>.
+ along with ctak. If not, see <https://www.gnu.org/licenses/>.
*/
#ifndef XORSHIFT_H
@@ -32,4 +32,14 @@ extern uint64_t xors;
#define RANDOM64 (xors * 0x2545F4914F6CDD1D)
#define RANDOM32 ((uint32_t)RANDOM64)
+static inline uint64_t rand64(void) {
+ XORSHIFT64;
+ return RANDOM64;
+}
+
+static inline uint32_t rand32(void) {
+ XORSHIFT64;
+ return RANDOM32;
+}
+
#endif
diff --git a/include/zobrist.c b/include/zobrist.c
index d8d1856..2922abf 100644
--- a/include/zobrist.c
+++ b/include/zobrist.c
@@ -1,5 +1,5 @@
/*
- This file is part of ct.
+ This file is part of ctak.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -12,10 +12,11 @@
General Public License for more details.
You should have received a copy of the GNU General Public License
- along with ct. If not, see <https://www.gnu.org/licenses/>.
+ along with ctak. If not, see <https://www.gnu.org/licenses/>.
*/
#include "zobrist.h"
+#include "xorshift64.h"
// ===================================================================
// Variables
@@ -35,8 +36,7 @@ int zobrist_init(const uint8_t board_size) {
// TODO: trap errno
for (int k = 0; k < board_size * board_size * (15 * 2 * 3); k++) {
- XORSHIFT64;
- zobrist[k] = RANDOM64;
+ zobrist[k] = rand64();
}
return EXIT_SUCCESS;
@@ -49,6 +49,11 @@ void zobrist_free(void) {
}
}
+
+// a position's value is from the perspective of the player to move, which flips
+// with parity, so we must track this
+#define PLY_PARITY_MAGIC 0x9E3779B97F4A7C15ULL
+
uint64_t zobrist_compute(tak_state_p state) {
uint64_t hash = 0;
for (uint8_t l = 0; l < state->board_size * state->board_size; l++) {
@@ -58,5 +63,5 @@ uint64_t zobrist_compute(tak_state_p state) {
for (uint8_t h = 0; h < count; h++, c >>= 1)
hash ^= zobrist[l * (15 * 2 * 3) + h * 2 * 3 + (c & 1) * 3 + s];
}
- return hash;
+ return hash ^ ((state->ply & 1) ? PLY_PARITY_MAGIC : 0);
}
diff --git a/include/zobrist.h b/include/zobrist.h
index 6a1de4f..5fd5ace 100644
--- a/include/zobrist.h
+++ b/include/zobrist.h
@@ -1,5 +1,5 @@
/*
- This file is part of ct.
+ This file is part of ctak.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -12,7 +12,7 @@
General Public License for more details.
You should have received a copy of the GNU General Public License
- along with ct. If not, see <https://www.gnu.org/licenses/>.
+ along with ctak. If not, see <https://www.gnu.org/licenses/>.
*/
#include <actions.h>