esp32-morse-decoder/model.h

4834 wiersze
205 KiB
C++

#pragma once
#include <cstdarg>
namespace Eloquent {
namespace ML {
namespace Port {
class RandomForest {
public:
/**
* Predict class for features vector
*/
int predict(float *x) {
uint8_t votes[26] = { 0 };
// tree #1
if (x[2] <= 25.0) {
if (x[1] <= 39.0) {
if (x[0] <= 268.0) {
votes[4] += 1;
}
else {
votes[19] += 1;
}
}
else {
if (x[0] <= 302.0) {
if (x[0] <= 115.0) {
if (x[0] <= 86.0) {
if (x[0] <= 71.0) {
votes[8] += 1;
}
else {
votes[0] += 1;
}
}
else {
if (x[1] <= 571.0) {
votes[8] += 1;
}
else {
votes[0] += 1;
}
}
}
else {
if (x[1] <= 391.0) {
votes[8] += 1;
}
else {
votes[0] += 1;
}
}
}
else {
if (x[0] <= 390.5) {
votes[13] += 1;
}
else {
if (x[1] <= 354.0) {
votes[13] += 1;
}
else {
votes[12] += 1;
}
}
}
}
}
else {
if (x[3] <= 34.5) {
if (x[1] <= 206.0) {
if (x[2] <= 270.5) {
if (x[0] <= 228.5) {
votes[18] += 1;
}
else {
votes[3] += 1;
}
}
else {
if (x[0] <= 204.0) {
votes[20] += 1;
}
else {
votes[10] += 1;
}
}
}
else {
if (x[0] <= 188.0) {
if (x[2] <= 267.5) {
votes[17] += 1;
}
else {
votes[22] += 1;
}
}
else {
if (x[2] <= 276.5) {
votes[6] += 1;
}
else {
votes[14] += 1;
}
}
}
}
else {
if (x[3] <= 230.0) {
if (x[0] <= 257.5) {
if (x[1] <= 131.5) {
if (x[2] <= 276.5) {
votes[7] += 1;
}
else {
votes[5] += 1;
}
}
else {
if (x[2] <= 250.0) {
votes[11] += 1;
}
else {
if (x[1] <= 315.5) {
votes[5] += 1;
}
else {
votes[15] += 1;
}
}
}
}
else {
if (x[1] <= 291.0) {
if (x[3] <= 147.5) {
votes[1] += 1;
}
else {
if (x[2] <= 340.5) {
votes[1] += 1;
}
else {
votes[2] += 1;
}
}
}
else {
votes[25] += 1;
}
}
}
else {
if (x[0] <= 200.0) {
if (x[3] <= 439.5) {
votes[9] += 1;
}
else {
if (x[1] <= 250.0) {
votes[21] += 1;
}
else {
votes[9] += 1;
}
}
}
else {
if (x[1] <= 301.0) {
if (x[2] <= 220.0) {
votes[23] += 1;
}
else {
if (x[2] <= 356.0) {
votes[24] += 1;
}
else {
if (x[0] <= 812.5) {
votes[24] += 1;
}
else {
votes[1] += 1;
}
}
}
}
else {
votes[16] += 1;
}
}
}
}
}
// tree #2
if (x[1] <= 23.0) {
if (x[0] <= 267.0) {
votes[4] += 1;
}
else {
votes[19] += 1;
}
}
else {
if (x[2] <= 21.5) {
if (x[1] <= 315.5) {
if (x[0] <= 296.0) {
votes[8] += 1;
}
else {
votes[13] += 1;
}
}
else {
if (x[1] <= 616.0) {
if (x[0] <= 216.5) {
votes[0] += 1;
}
else {
votes[12] += 1;
}
}
else {
votes[0] += 1;
}
}
}
else {
if (x[0] <= 203.0) {
if (x[2] <= 361.0) {
if (x[3] <= 362.5) {
if (x[3] <= 40.0) {
if (x[1] <= 253.0) {
votes[18] += 1;
}
else {
if (x[2] <= 239.5) {
votes[17] += 1;
}
else {
if (x[0] <= 115.0) {
votes[22] += 1;
}
else {
votes[17] += 1;
}
}
}
}
else {
if (x[1] <= 407.0) {
if (x[2] <= 195.0) {
votes[7] += 1;
}
else {
votes[9] += 1;
}
}
else {
votes[11] += 1;
}
}
}
else {
votes[21] += 1;
}
}
else {
if (x[0] <= 124.0) {
if (x[0] <= 117.0) {
if (x[1] <= 296.5) {
votes[20] += 1;
}
else {
votes[22] += 1;
}
}
else {
if (x[2] <= 382.5) {
votes[5] += 1;
}
else {
if (x[1] <= 289.5) {
votes[20] += 1;
}
else {
votes[9] += 1;
}
}
}
}
else {
if (x[1] <= 338.0) {
votes[5] += 1;
}
else {
votes[15] += 1;
}
}
}
}
else {
if (x[3] <= 37.5) {
if (x[2] <= 270.0) {
if (x[1] <= 204.0) {
votes[3] += 1;
}
else {
votes[6] += 1;
}
}
else {
if (x[0] <= 347.5) {
votes[14] += 1;
}
else {
votes[10] += 1;
}
}
}
else {
if (x[1] <= 304.0) {
if (x[2] <= 257.0) {
if (x[3] <= 317.0) {
votes[1] += 1;
}
else {
votes[23] += 1;
}
}
else {
if (x[3] <= 247.5) {
votes[2] += 1;
}
else {
if (x[0] <= 812.5) {
votes[24] += 1;
}
else {
votes[1] += 1;
}
}
}
}
else {
if (x[2] <= 115.5) {
votes[25] += 1;
}
else {
votes[16] += 1;
}
}
}
}
}
}
// tree #3
if (x[2] <= 15.5) {
if (x[0] <= 468.0) {
if (x[0] <= 284.5) {
if (x[0] <= 123.5) {
if (x[0] <= 109.0) {
if (x[0] <= 99.5) {
if (x[1] <= 52.0) {
votes[4] += 1;
}
else {
if (x[0] <= 71.0) {
votes[8] += 1;
}
else {
if (x[1] <= 517.0) {
votes[8] += 1;
}
else {
votes[0] += 1;
}
}
}
}
else {
if (x[1] <= 69.0) {
votes[4] += 1;
}
else {
votes[8] += 1;
}
}
}
else {
if (x[0] <= 111.5) {
if (x[1] <= 556.5) {
votes[8] += 1;
}
else {
votes[0] += 1;
}
}
else {
if (x[1] <= 48.0) {
votes[4] += 1;
}
else {
votes[8] += 1;
}
}
}
}
else {
if (x[1] <= 446.5) {
votes[8] += 1;
}
else {
votes[0] += 1;
}
}
}
else {
if (x[1] <= 283.5) {
votes[13] += 1;
}
else {
votes[12] += 1;
}
}
}
else {
votes[19] += 1;
}
}
else {
if (x[0] <= 223.0) {
if (x[1] <= 297.0) {
if (x[2] <= 256.0) {
if (x[1] <= 81.5) {
votes[7] += 1;
}
else {
if (x[2] <= 129.5) {
if (x[2] <= 120.5) {
if (x[1] <= 98.0) {
votes[18] += 1;
}
else {
if (x[3] <= 293.5) {
votes[7] += 1;
}
else {
votes[21] += 1;
}
}
}
else {
votes[7] += 1;
}
}
else {
votes[18] += 1;
}
}
}
else {
if (x[3] <= 68.5) {
votes[20] += 1;
}
else {
votes[5] += 1;
}
}
}
else {
if (x[2] <= 215.5) {
if (x[2] <= 146.0) {
if (x[2] <= 127.0) {
if (x[3] <= 60.0) {
votes[17] += 1;
}
else {
votes[11] += 1;
}
}
else {
votes[11] += 1;
}
}
else {
votes[17] += 1;
}
}
else {
if (x[1] <= 417.5) {
votes[9] += 1;
}
else {
if (x[2] <= 503.5) {
if (x[3] <= 54.0) {
if (x[2] <= 415.5) {
votes[17] += 1;
}
else {
votes[22] += 1;
}
}
else {
if (x[3] <= 307.5) {
votes[15] += 1;
}
else {
votes[9] += 1;
}
}
}
else {
votes[22] += 1;
}
}
}
}
}
else {
if (x[1] <= 297.0) {
if (x[3] <= 46.5) {
if (x[1] <= 138.0) {
if (x[2] <= 289.0) {
votes[3] += 1;
}
else {
votes[10] += 1;
}
}
else {
if (x[1] <= 152.5) {
votes[10] += 1;
}
else {
if (x[0] <= 412.0) {
if (x[0] <= 364.5) {
votes[10] += 1;
}
else {
if (x[0] <= 387.0) {
votes[3] += 1;
}
else {
votes[6] += 1;
}
}
}
else {
votes[10] += 1;
}
}
}
}
else {
if (x[3] <= 418.0) {
if (x[3] <= 258.0) {
if (x[2] <= 273.0) {
votes[1] += 1;
}
else {
votes[2] += 1;
}
}
else {
if (x[0] <= 754.0) {
votes[24] += 1;
}
else {
votes[1] += 1;
}
}
}
else {
votes[23] += 1;
}
}
}
else {
if (x[3] <= 274.5) {
if (x[1] <= 345.5) {
if (x[2] <= 263.0) {
if (x[0] <= 334.5) {
votes[25] += 1;
}
else {
votes[6] += 1;
}
}
else {
votes[14] += 1;
}
}
else {
if (x[3] <= 43.5) {
if (x[0] <= 396.5) {
votes[14] += 1;
}
else {
votes[6] += 1;
}
}
else {
votes[25] += 1;
}
}
}
else {
votes[16] += 1;
}
}
}
}
// tree #4
if (x[1] <= 23.5) {
if (x[0] <= 268.0) {
votes[4] += 1;
}
else {
votes[19] += 1;
}
}
else {
if (x[2] <= 15.5) {
if (x[1] <= 315.5) {
if (x[0] <= 299.0) {
votes[8] += 1;
}
else {
votes[13] += 1;
}
}
else {
if (x[0] <= 306.5) {
votes[0] += 1;
}
else {
votes[12] += 1;
}
}
}
else {
if (x[3] <= 230.0) {
if (x[3] <= 37.5) {
if (x[1] <= 388.5) {
if (x[1] <= 139.5) {
if (x[2] <= 140.5) {
votes[18] += 1;
}
else {
if (x[0] <= 304.5) {
votes[20] += 1;
}
else {
votes[3] += 1;
}
}
}
else {
if (x[1] <= 221.0) {
if (x[0] <= 375.5) {
if (x[0] <= 250.5) {
votes[18] += 1;
}
else {
votes[3] += 1;
}
}
else {
votes[10] += 1;
}
}
else {
if (x[1] <= 333.5) {
if (x[2] <= 269.0) {
votes[6] += 1;
}
else {
votes[14] += 1;
}
}
else {
votes[14] += 1;
}
}
}
}
else {
if (x[2] <= 381.0) {
if (x[2] <= 134.5) {
votes[17] += 1;
}
else {
if (x[2] <= 142.5) {
votes[6] += 1;
}
else {
votes[17] += 1;
}
}
}
else {
votes[22] += 1;
}
}
}
else {
if (x[2] <= 273.0) {
if (x[1] <= 260.0) {
if (x[0] <= 228.5) {
votes[7] += 1;
}
else {
votes[1] += 1;
}
}
else {
if (x[0] <= 219.5) {
votes[11] += 1;
}
else {
votes[25] += 1;
}
}
}
else {
if (x[3] <= 134.0) {
votes[15] += 1;
}
else {
if (x[2] <= 365.0) {
votes[2] += 1;
}
else {
if (x[1] <= 244.5) {
if (x[3] <= 149.0) {
votes[2] += 1;
}
else {
if (x[3] <= 177.5) {
votes[5] += 1;
}
else {
votes[5] += 1;
}
}
}
else {
if (x[1] <= 367.0) {
votes[2] += 1;
}
else {
votes[15] += 1;
}
}
}
}
}
}
}
else {
if (x[1] <= 301.0) {
if (x[0] <= 196.5) {
votes[21] += 1;
}
else {
if (x[2] <= 220.0) {
votes[23] += 1;
}
else {
if (x[2] <= 356.0) {
votes[24] += 1;
}
else {
if (x[2] <= 359.5) {
votes[1] += 1;
}
else {
votes[24] += 1;
}
}
}
}
}
else {
if (x[0] <= 239.5) {
votes[9] += 1;
}
else {
votes[16] += 1;
}
}
}
}
}
// tree #5
if (x[1] <= 23.0) {
if (x[0] <= 286.5) {
votes[4] += 1;
}
else {
votes[19] += 1;
}
}
else {
if (x[3] <= 34.5) {
if (x[1] <= 359.0) {
if (x[2] <= 253.5) {
if (x[2] <= 40.0) {
if (x[0] <= 296.0) {
votes[8] += 1;
}
else {
votes[13] += 1;
}
}
else {
if (x[1] <= 196.0) {
if (x[0] <= 228.5) {
votes[18] += 1;
}
else {
votes[3] += 1;
}
}
else {
votes[6] += 1;
}
}
}
else {
if (x[1] <= 231.5) {
if (x[0] <= 209.5) {
votes[20] += 1;
}
else {
votes[10] += 1;
}
}
else {
if (x[0] <= 389.5) {
votes[14] += 1;
}
else {
votes[10] += 1;
}
}
}
}
else {
if (x[0] <= 301.5) {
if (x[2] <= 25.0) {
votes[0] += 1;
}
else {
if (x[2] <= 267.5) {
votes[17] += 1;
}
else {
if (x[0] <= 126.0) {
votes[22] += 1;
}
else {
votes[17] += 1;
}
}
}
}
else {
if (x[2] <= 75.0) {
votes[12] += 1;
}
else {
votes[6] += 1;
}
}
}
}
else {
if (x[0] <= 213.5) {
if (x[1] <= 256.0) {
if (x[2] <= 246.0) {
if (x[1] <= 112.5) {
votes[7] += 1;
}
else {
if (x[3] <= 292.5) {
votes[7] += 1;
}
else {
votes[21] += 1;
}
}
}
else {
votes[5] += 1;
}
}
else {
if (x[2] <= 239.0) {
votes[11] += 1;
}
else {
if (x[1] <= 443.5) {
if (x[3] <= 214.5) {
votes[15] += 1;
}
else {
votes[9] += 1;
}
}
else {
votes[15] += 1;
}
}
}
}
else {
if (x[1] <= 301.0) {
if (x[2] <= 340.0) {
if (x[3] <= 250.5) {
votes[1] += 1;
}
else {
if (x[0] <= 404.5) {
votes[24] += 1;
}
else {
votes[23] += 1;
}
}
}
else {
if (x[0] <= 865.0) {
if (x[3] <= 275.0) {
votes[2] += 1;
}
else {
votes[24] += 1;
}
}
else {
votes[1] += 1;
}
}
}
else {
if (x[1] <= 385.5) {
if (x[3] <= 303.5) {
votes[25] += 1;
}
else {
votes[16] += 1;
}
}
else {
if (x[3] <= 276.0) {
votes[25] += 1;
}
else {
votes[16] += 1;
}
}
}
}
}
}
// tree #6
if (x[2] <= 15.5) {
if (x[0] <= 284.5) {
if (x[1] <= 446.5) {
if (x[0] <= 103.5) {
if (x[1] <= 52.0) {
votes[4] += 1;
}
else {
votes[8] += 1;
}
}
else {
if (x[0] <= 129.0) {
votes[8] += 1;
}
else {
if (x[1] <= 113.5) {
votes[4] += 1;
}
else {
votes[8] += 1;
}
}
}
}
else {
votes[0] += 1;
}
}
else {
if (x[0] <= 457.0) {
if (x[1] <= 281.0) {
if (x[1] <= 39.0) {
votes[19] += 1;
}
else {
votes[13] += 1;
}
}
else {
votes[12] += 1;
}
}
else {
if (x[0] <= 507.0) {
votes[19] += 1;
}
else {
if (x[1] <= 74.5) {
votes[19] += 1;
}
else {
votes[13] += 1;
}
}
}
}
}
else {
if (x[3] <= 37.5) {
if (x[0] <= 179.5) {
if (x[1] <= 254.0) {
if (x[2] <= 240.0) {
votes[18] += 1;
}
else {
votes[20] += 1;
}
}
else {
if (x[1] <= 519.0) {
if (x[0] <= 99.5) {
votes[17] += 1;
}
else {
if (x[0] <= 102.0) {
votes[22] += 1;
}
else {
if (x[0] <= 112.5) {
votes[17] += 1;
}
else {
if (x[0] <= 114.0) {
votes[22] += 1;
}
else {
votes[17] += 1;
}
}
}
}
}
else {
votes[22] += 1;
}
}
}
else {
if (x[0] <= 421.5) {
if (x[1] <= 232.5) {
if (x[2] <= 275.0) {
votes[3] += 1;
}
else {
votes[10] += 1;
}
}
else {
if (x[0] <= 349.5) {
if (x[2] <= 248.5) {
votes[6] += 1;
}
else {
votes[14] += 1;
}
}
else {
votes[6] += 1;
}
}
}
else {
if (x[1] <= 281.5) {
votes[3] += 1;
}
else {
votes[6] += 1;
}
}
}
}
else {
if (x[3] <= 414.0) {
if (x[0] <= 219.5) {
if (x[2] <= 192.5) {
if (x[3] <= 140.5) {
if (x[1] <= 290.5) {
votes[7] += 1;
}
else {
votes[11] += 1;
}
}
else {
votes[11] += 1;
}
}
else {
if (x[0] <= 137.0) {
if (x[1] <= 390.5) {
if (x[2] <= 312.0) {
votes[9] += 1;
}
else {
votes[5] += 1;
}
}
else {
votes[15] += 1;
}
}
else {
votes[5] += 1;
}
}
}
else {
if (x[2] <= 362.0) {
if (x[0] <= 419.0) {
if (x[1] <= 229.5) {
if (x[2] <= 206.5) {
votes[1] += 1;
}
else {
votes[24] += 1;
}
}
else {
votes[25] += 1;
}
}
else {
votes[1] += 1;
}
}
else {
votes[2] += 1;
}
}
}
else {
if (x[1] <= 248.5) {
if (x[1] <= 117.0) {
if (x[3] <= 500.0) {
votes[21] += 1;
}
else {
votes[23] += 1;
}
}
else {
votes[21] += 1;
}
}
else {
if (x[0] <= 226.0) {
votes[9] += 1;
}
else {
votes[16] += 1;
}
}
}
}
}
// tree #7
if (x[1] <= 23.0) {
if (x[0] <= 253.0) {
votes[4] += 1;
}
else {
votes[19] += 1;
}
}
else {
if (x[2] <= 15.5) {
if (x[0] <= 284.5) {
if (x[0] <= 114.5) {
if (x[0] <= 107.5) {
votes[8] += 1;
}
else {
if (x[0] <= 111.5) {
if (x[1] <= 562.0) {
votes[8] += 1;
}
else {
votes[0] += 1;
}
}
else {
votes[8] += 1;
}
}
}
else {
if (x[0] <= 141.5) {
if (x[1] <= 341.5) {
votes[8] += 1;
}
else {
votes[0] += 1;
}
}
else {
if (x[0] <= 194.0) {
votes[8] += 1;
}
else {
votes[0] += 1;
}
}
}
}
else {
if (x[1] <= 283.5) {
votes[13] += 1;
}
else {
votes[12] += 1;
}
}
}
else {
if (x[3] <= 247.0) {
if (x[3] <= 37.5) {
if (x[0] <= 188.0) {
if (x[0] <= 107.0) {
if (x[2] <= 121.5) {
votes[18] += 1;
}
else {
if (x[0] <= 75.5) {
votes[22] += 1;
}
else {
votes[17] += 1;
}
}
}
else {
if (x[1] <= 308.5) {
if (x[1] <= 138.5) {
if (x[2] <= 262.0) {
votes[18] += 1;
}
else {
votes[20] += 1;
}
}
else {
votes[18] += 1;
}
}
else {
if (x[2] <= 415.5) {
votes[17] += 1;
}
else {
votes[22] += 1;
}
}
}
}
else {
if (x[2] <= 270.0) {
if (x[1] <= 222.0) {
votes[3] += 1;
}
else {
votes[6] += 1;
}
}
else {
if (x[1] <= 216.5) {
votes[10] += 1;
}
else {
votes[14] += 1;
}
}
}
}
else {
if (x[1] <= 389.5) {
if (x[2] <= 389.5) {
if (x[3] <= 157.5) {
if (x[0] <= 195.5) {
votes[7] += 1;
}
else {
if (x[3] <= 138.0) {
if (x[1] <= 215.0) {
votes[1] += 1;
}
else {
votes[25] += 1;
}
}
else {
votes[2] += 1;
}
}
}
else {
votes[1] += 1;
}
}
else {
votes[5] += 1;
}
}
else {
if (x[3] <= 137.0) {
if (x[2] <= 218.5) {
votes[11] += 1;
}
else {
votes[15] += 1;
}
}
else {
votes[11] += 1;
}
}
}
}
else {
if (x[1] <= 250.0) {
if (x[2] <= 216.0) {
if (x[3] <= 581.0) {
if (x[0] <= 240.5) {
votes[21] += 1;
}
else {
votes[23] += 1;
}
}
else {
votes[23] += 1;
}
}
else {
votes[24] += 1;
}
}
else {
if (x[0] <= 276.5) {
votes[9] += 1;
}
else {
votes[16] += 1;
}
}
}
}
}
// tree #8
if (x[2] <= 15.5) {
if (x[0] <= 306.5) {
if (x[0] <= 92.0) {
votes[4] += 1;
}
else {
if (x[1] <= 48.0) {
votes[4] += 1;
}
else {
if (x[0] <= 118.0) {
if (x[1] <= 572.5) {
votes[8] += 1;
}
else {
votes[0] += 1;
}
}
else {
if (x[1] <= 446.5) {
votes[8] += 1;
}
else {
votes[0] += 1;
}
}
}
}
}
else {
if (x[1] <= 39.0) {
votes[19] += 1;
}
else {
if (x[0] <= 392.0) {
if (x[0] <= 369.5) {
votes[12] += 1;
}
else {
votes[13] += 1;
}
}
else {
if (x[1] <= 273.5) {
votes[13] += 1;
}
else {
votes[12] += 1;
}
}
}
}
}
else {
if (x[3] <= 34.5) {
if (x[1] <= 388.5) {
if (x[0] <= 332.5) {
if (x[2] <= 204.5) {
if (x[2] <= 135.5) {
votes[18] += 1;
}
else {
if (x[2] <= 138.0) {
votes[6] += 1;
}
else {
votes[18] += 1;
}
}
}
else {
if (x[2] <= 315.0) {
votes[22] += 1;
}
else {
if (x[1] <= 206.0) {
votes[20] += 1;
}
else {
votes[14] += 1;
}
}
}
}
else {
if (x[1] <= 139.5) {
if (x[1] <= 137.0) {
votes[3] += 1;
}
else {
if (x[1] <= 138.5) {
votes[10] += 1;
}
else {
votes[3] += 1;
}
}
}
else {
if (x[2] <= 302.5) {
votes[6] += 1;
}
else {
votes[10] += 1;
}
}
}
}
else {
if (x[0] <= 272.5) {
if (x[2] <= 418.0) {
votes[17] += 1;
}
else {
votes[22] += 1;
}
}
else {
votes[6] += 1;
}
}
}
else {
if (x[0] <= 219.5) {
if (x[2] <= 192.5) {
if (x[0] <= 127.5) {
if (x[3] <= 140.5) {
if (x[1] <= 275.0) {
votes[7] += 1;
}
else {
votes[11] += 1;
}
}
else {
if (x[3] <= 320.0) {
votes[11] += 1;
}
else {
votes[21] += 1;
}
}
}
else {
if (x[3] <= 294.5) {
votes[11] += 1;
}
else {
votes[21] += 1;
}
}
}
else {
if (x[0] <= 139.5) {
if (x[3] <= 199.5) {
if (x[2] <= 391.5) {
votes[5] += 1;
}
else {
votes[15] += 1;
}
}
else {
votes[9] += 1;
}
}
else {
if (x[3] <= 137.0) {
votes[15] += 1;
}
else {
if (x[1] <= 292.0) {
votes[5] += 1;
}
else {
votes[9] += 1;
}
}
}
}
}
else {
if (x[2] <= 250.5) {
if (x[0] <= 442.0) {
if (x[3] <= 132.5) {
votes[25] += 1;
}
else {
if (x[1] <= 226.5) {
if (x[1] <= 125.5) {
votes[23] += 1;
}
else {
votes[1] += 1;
}
}
else {
votes[16] += 1;
}
}
}
else {
if (x[3] <= 371.0) {
votes[1] += 1;
}
else {
if (x[2] <= 134.5) {
votes[23] += 1;
}
else {
votes[16] += 1;
}
}
}
}
else {
if (x[1] <= 110.0) {
votes[24] += 1;
}
else {
if (x[1] <= 266.0) {
votes[2] += 1;
}
else {
votes[1] += 1;
}
}
}
}
}
}
// tree #9
if (x[2] <= 21.5) {
if (x[1] <= 39.0) {
if (x[0] <= 268.0) {
votes[4] += 1;
}
else {
votes[19] += 1;
}
}
else {
if (x[1] <= 271.0) {
if (x[1] <= 87.0) {
votes[13] += 1;
}
else {
if (x[0] <= 254.5) {
votes[8] += 1;
}
else {
votes[13] += 1;
}
}
}
else {
if (x[1] <= 684.5) {
if (x[1] <= 557.0) {
if (x[0] <= 237.5) {
votes[0] += 1;
}
else {
votes[12] += 1;
}
}
else {
votes[12] += 1;
}
}
else {
votes[0] += 1;
}
}
}
}
else {
if (x[3] <= 34.5) {
if (x[1] <= 104.0) {
if (x[2] <= 296.5) {
votes[18] += 1;
}
else {
votes[20] += 1;
}
}
else {
if (x[2] <= 227.0) {
if (x[0] <= 195.0) {
if (x[2] <= 130.0) {
votes[17] += 1;
}
else {
if (x[1] <= 314.5) {
votes[18] += 1;
}
else {
votes[17] += 1;
}
}
}
else {
if (x[2] <= 133.5) {
if (x[1] <= 196.0) {
votes[3] += 1;
}
else {
votes[6] += 1;
}
}
else {
if (x[1] <= 212.5) {
votes[3] += 1;
}
else {
votes[6] += 1;
}
}
}
}
else {
if (x[0] <= 209.5) {
if (x[1] <= 252.5) {
votes[20] += 1;
}
else {
if (x[0] <= 122.5) {
votes[22] += 1;
}
else {
votes[17] += 1;
}
}
}
else {
if (x[1] <= 231.5) {
votes[10] += 1;
}
else {
if (x[0] <= 389.5) {
votes[14] += 1;
}
else {
votes[10] += 1;
}
}
}
}
}
}
else {
if (x[0] <= 210.0) {
if (x[2] <= 194.5) {
if (x[3] <= 331.5) {
if (x[3] <= 140.5) {
if (x[1] <= 283.0) {
votes[7] += 1;
}
else {
votes[11] += 1;
}
}
else {
votes[11] += 1;
}
}
else {
votes[21] += 1;
}
}
else {
if (x[1] <= 250.0) {
votes[5] += 1;
}
else {
if (x[1] <= 443.5) {
if (x[3] <= 187.0) {
votes[15] += 1;
}
else {
votes[9] += 1;
}
}
else {
votes[15] += 1;
}
}
}
}
else {
if (x[1] <= 257.0) {
if (x[3] <= 247.5) {
if (x[2] <= 273.0) {
votes[1] += 1;
}
else {
votes[2] += 1;
}
}
else {
if (x[0] <= 406.0) {
votes[24] += 1;
}
else {
votes[23] += 1;
}
}
}
else {
if (x[0] <= 368.0) {
if (x[1] <= 418.5) {
votes[25] += 1;
}
else {
votes[16] += 1;
}
}
else {
if (x[3] <= 252.5) {
votes[25] += 1;
}
else {
votes[16] += 1;
}
}
}
}
}
}
// tree #10
if (x[2] <= 15.5) {
if (x[0] <= 284.5) {
if (x[1] <= 48.0) {
votes[4] += 1;
}
else {
if (x[1] <= 386.0) {
votes[8] += 1;
}
else {
votes[0] += 1;
}
}
}
else {
if (x[0] <= 430.5) {
if (x[0] <= 395.5) {
votes[12] += 1;
}
else {
if (x[1] <= 298.5) {
votes[19] += 1;
}
else {
votes[12] += 1;
}
}
}
else {
if (x[1] <= 283.0) {
votes[19] += 1;
}
else {
votes[12] += 1;
}
}
}
}
else {
if (x[0] <= 203.0) {
if (x[3] <= 34.5) {
if (x[1] <= 254.0) {
if (x[2] <= 270.5) {
votes[18] += 1;
}
else {
votes[20] += 1;
}
}
else {
if (x[2] <= 370.5) {
votes[17] += 1;
}
else {
votes[22] += 1;
}
}
}
else {
if (x[3] <= 230.0) {
if (x[1] <= 140.5) {
if (x[3] <= 156.0) {
votes[7] += 1;
}
else {
votes[5] += 1;
}
}
else {
if (x[2] <= 255.0) {
votes[11] += 1;
}
else {
if (x[1] <= 338.0) {
votes[5] += 1;
}
else {
votes[15] += 1;
}
}
}
}
else {
if (x[2] <= 184.0) {
votes[21] += 1;
}
else {
votes[9] += 1;
}
}
}
}
else {
if (x[2] <= 113.0) {
if (x[1] <= 215.5) {
votes[23] += 1;
}
else {
votes[25] += 1;
}
}
else {
if (x[2] <= 249.0) {
if (x[1] <= 240.0) {
if (x[3] <= 67.0) {
votes[3] += 1;
}
else {
if (x[1] <= 125.5) {
votes[23] += 1;
}
else {
votes[1] += 1;
}
}
}
else {
if (x[1] <= 359.0) {
votes[6] += 1;
}
else {
if (x[3] <= 249.5) {
votes[6] += 1;
}
else {
votes[16] += 1;
}
}
}
}
else {
if (x[1] <= 263.5) {
if (x[1] <= 115.0) {
votes[24] += 1;
}
else {
if (x[3] <= 71.0) {
votes[10] += 1;
}
else {
votes[2] += 1;
}
}
}
else {
votes[14] += 1;
}
}
}
}
}
// tree #11
if (x[2] <= 21.5) {
if (x[1] <= 320.0) {
if (x[0] <= 413.5) {
if (x[1] <= 44.5) {
votes[4] += 1;
}
else {
if (x[1] <= 97.5) {
votes[13] += 1;
}
else {
if (x[0] <= 297.5) {
votes[8] += 1;
}
else {
votes[13] += 1;
}
}
}
}
else {
votes[19] += 1;
}
}
else {
if (x[1] <= 631.5) {
if (x[0] <= 255.5) {
votes[0] += 1;
}
else {
votes[12] += 1;
}
}
else {
votes[0] += 1;
}
}
}
else {
if (x[3] <= 34.5) {
if (x[0] <= 190.5) {
if (x[0] <= 105.5) {
if (x[2] <= 121.5) {
votes[18] += 1;
}
else {
if (x[2] <= 303.0) {
if (x[2] <= 177.0) {
if (x[0] <= 102.5) {
votes[18] += 1;
}
else {
votes[17] += 1;
}
}
else {
votes[17] += 1;
}
}
else {
votes[20] += 1;
}
}
}
else {
if (x[2] <= 286.0) {
if (x[2] <= 144.5) {
if (x[1] <= 299.0) {
votes[18] += 1;
}
else {
votes[17] += 1;
}
}
else {
votes[17] += 1;
}
}
else {
if (x[2] <= 489.5) {
if (x[0] <= 117.0) {
if (x[1] <= 343.0) {
votes[20] += 1;
}
else {
votes[22] += 1;
}
}
else {
votes[20] += 1;
}
}
else {
if (x[2] <= 518.5) {
votes[22] += 1;
}
else {
if (x[1] <= 305.0) {
votes[20] += 1;
}
else {
votes[22] += 1;
}
}
}
}
}
}
else {
if (x[1] <= 282.5) {
if (x[2] <= 290.0) {
votes[3] += 1;
}
else {
votes[10] += 1;
}
}
else {
if (x[2] <= 263.0) {
votes[6] += 1;
}
else {
votes[14] += 1;
}
}
}
}
else {
if (x[0] <= 219.5) {
if (x[2] <= 194.5) {
if (x[3] <= 331.5) {
if (x[3] <= 170.0) {
if (x[0] <= 138.0) {
if (x[2] <= 126.5) {
if (x[1] <= 290.5) {
votes[7] += 1;
}
else {
votes[11] += 1;
}
}
else {
votes[11] += 1;
}
}
else {
votes[11] += 1;
}
}
else {
votes[11] += 1;
}
}
else {
votes[21] += 1;
}
}
else {
if (x[3] <= 143.0) {
votes[15] += 1;
}
else {
if (x[1] <= 297.0) {
votes[5] += 1;
}
else {
if (x[1] <= 462.0) {
votes[9] += 1;
}
else {
votes[15] += 1;
}
}
}
}
}
else {
if (x[1] <= 301.0) {
if (x[2] <= 257.0) {
if (x[3] <= 317.0) {
votes[1] += 1;
}
else {
votes[23] += 1;
}
}
else {
if (x[3] <= 247.5) {
votes[2] += 1;
}
else {
if (x[3] <= 357.0) {
votes[24] += 1;
}
else {
if (x[1] <= 196.0) {
votes[24] += 1;
}
else {
votes[1] += 1;
}
}
}
}
}
else {
if (x[3] <= 291.0) {
votes[25] += 1;
}
else {
votes[16] += 1;
}
}
}
}
}
// tree #12
if (x[2] <= 15.5) {
if (x[1] <= 616.0) {
if (x[0] <= 431.5) {
if (x[1] <= 52.0) {
votes[4] += 1;
}
else {
if (x[0] <= 229.5) {
votes[8] += 1;
}
else {
if (x[1] <= 269.5) {
votes[13] += 1;
}
else {
votes[12] += 1;
}
}
}
}
else {
if (x[0] <= 461.5) {
if (x[1] <= 67.0) {
votes[19] += 1;
}
else {
if (x[1] <= 350.0) {
votes[13] += 1;
}
else {
votes[12] += 1;
}
}
}
else {
if (x[1] <= 74.5) {
votes[19] += 1;
}
else {
votes[13] += 1;
}
}
}
}
else {
votes[0] += 1;
}
}
else {
if (x[3] <= 37.5) {
if (x[0] <= 188.0) {
if (x[1] <= 268.0) {
if (x[2] <= 243.0) {
votes[18] += 1;
}
else {
votes[20] += 1;
}
}
else {
if (x[2] <= 415.5) {
votes[17] += 1;
}
else {
votes[22] += 1;
}
}
}
else {
if (x[2] <= 256.5) {
if (x[1] <= 228.5) {
votes[3] += 1;
}
else {
votes[6] += 1;
}
}
else {
if (x[1] <= 231.5) {
votes[10] += 1;
}
else {
if (x[2] <= 598.5) {
votes[14] += 1;
}
else {
votes[10] += 1;
}
}
}
}
}
else {
if (x[3] <= 228.5) {
if (x[0] <= 256.0) {
if (x[1] <= 298.5) {
if (x[3] <= 144.0) {
votes[7] += 1;
}
else {
votes[5] += 1;
}
}
else {
if (x[2] <= 255.0) {
votes[11] += 1;
}
else {
votes[15] += 1;
}
}
}
else {
if (x[1] <= 291.0) {
if (x[2] <= 273.0) {
votes[1] += 1;
}
else {
votes[2] += 1;
}
}
else {
votes[25] += 1;
}
}
}
else {
if (x[0] <= 210.0) {
if (x[2] <= 184.0) {
votes[21] += 1;
}
else {
votes[9] += 1;
}
}
else {
if (x[1] <= 254.0) {
if (x[0] <= 334.5) {
votes[24] += 1;
}
else {
if (x[2] <= 249.5) {
votes[23] += 1;
}
else {
votes[24] += 1;
}
}
}
else {
votes[16] += 1;
}
}
}
}
}
// tree #13
if (x[1] <= 27.0) {
if (x[0] <= 285.5) {
votes[4] += 1;
}
else {
votes[19] += 1;
}
}
else {
if (x[1] <= 286.5) {
if (x[3] <= 34.5) {
if (x[2] <= 51.5) {
if (x[0] <= 251.5) {
votes[8] += 1;
}
else {
votes[13] += 1;
}
}
else {
if (x[2] <= 260.5) {
if (x[1] <= 79.0) {
votes[3] += 1;
}
else {
if (x[0] <= 238.0) {
votes[18] += 1;
}
else {
votes[3] += 1;
}
}
}
else {
if (x[0] <= 305.5) {
if (x[1] <= 207.0) {
votes[20] += 1;
}
else {
votes[14] += 1;
}
}
else {
votes[10] += 1;
}
}
}
}
else {
if (x[3] <= 275.0) {
if (x[3] <= 140.5) {
if (x[2] <= 96.0) {
votes[7] += 1;
}
else {
if (x[1] <= 106.5) {
votes[1] += 1;
}
else {
if (x[1] <= 121.5) {
votes[7] += 1;
}
else {
if (x[2] <= 365.5) {
votes[7] += 1;
}
else {
votes[5] += 1;
}
}
}
}
}
else {
if (x[2] <= 273.0) {
votes[1] += 1;
}
else {
if (x[0] <= 233.5) {
votes[5] += 1;
}
else {
votes[2] += 1;
}
}
}
}
else {
if (x[2] <= 220.0) {
if (x[0] <= 244.5) {
votes[21] += 1;
}
else {
votes[23] += 1;
}
}
else {
votes[24] += 1;
}
}
}
}
else {
if (x[2] <= 228.0) {
if (x[0] <= 281.0) {
if (x[2] <= 21.5) {
votes[0] += 1;
}
else {
if (x[3] <= 40.0) {
votes[17] += 1;
}
else {
votes[11] += 1;
}
}
}
else {
if (x[2] <= 115.0) {
if (x[1] <= 406.0) {
if (x[1] <= 328.0) {
if (x[2] <= 82.5) {
votes[6] += 1;
}
else {
votes[16] += 1;
}
}
else {
votes[25] += 1;
}
}
else {
if (x[3] <= 43.5) {
votes[12] += 1;
}
else {
votes[25] += 1;
}
}
}
else {
if (x[1] <= 447.5) {
if (x[2] <= 141.5) {
if (x[3] <= 225.5) {
votes[6] += 1;
}
else {
votes[16] += 1;
}
}
else {
if (x[2] <= 159.0) {
votes[6] += 1;
}
else {
votes[16] += 1;
}
}
}
else {
votes[16] += 1;
}
}
}
}
else {
if (x[3] <= 189.0) {
if (x[0] <= 223.0) {
if (x[3] <= 50.5) {
if (x[1] <= 461.0) {
votes[17] += 1;
}
else {
votes[22] += 1;
}
}
else {
votes[15] += 1;
}
}
else {
votes[14] += 1;
}
}
else {
votes[9] += 1;
}
}
}
}
// tree #14
if (x[2] <= 15.5) {
if (x[0] <= 423.5) {
if (x[0] <= 302.0) {
if (x[1] <= 48.0) {
votes[4] += 1;
}
else {
if (x[1] <= 391.0) {
votes[8] += 1;
}
else {
votes[0] += 1;
}
}
}
else {
if (x[0] <= 390.5) {
if (x[1] <= 283.5) {
votes[13] += 1;
}
else {
votes[12] += 1;
}
}
else {
if (x[1] <= 284.5) {
votes[13] += 1;
}
else {
votes[12] += 1;
}
}
}
}
else {
if (x[0] <= 461.5) {
if (x[1] <= 67.0) {
votes[19] += 1;
}
else {
if (x[1] <= 350.5) {
votes[13] += 1;
}
else {
votes[12] += 1;
}
}
}
else {
if (x[1] <= 74.5) {
votes[19] += 1;
}
else {
votes[13] += 1;
}
}
}
}
else {
if (x[3] <= 37.5) {
if (x[2] <= 303.0) {
if (x[1] <= 226.0) {
if (x[0] <= 219.0) {
votes[18] += 1;
}
else {
votes[3] += 1;
}
}
else {
if (x[1] <= 347.0) {
votes[6] += 1;
}
else {
if (x[0] <= 272.5) {
votes[17] += 1;
}
else {
votes[6] += 1;
}
}
}
}
else {
if (x[0] <= 334.5) {
if (x[1] <= 427.5) {
if (x[0] <= 179.0) {
votes[20] += 1;
}
else {
if (x[0] <= 292.0) {
if (x[1] <= 196.5) {
votes[10] += 1;
}
else {
votes[14] += 1;
}
}
else {
votes[14] += 1;
}
}
}
else {
votes[22] += 1;
}
}
else {
if (x[0] <= 350.5) {
if (x[0] <= 337.5) {
votes[10] += 1;
}
else {
votes[14] += 1;
}
}
else {
votes[10] += 1;
}
}
}
}
else {
if (x[0] <= 210.0) {
if (x[3] <= 230.0) {
if (x[2] <= 254.5) {
if (x[3] <= 116.5) {
if (x[0] <= 134.0) {
votes[7] += 1;
}
else {
votes[11] += 1;
}
}
else {
if (x[1] <= 250.0) {
votes[7] += 1;
}
else {
votes[11] += 1;
}
}
}
else {
if (x[3] <= 136.0) {
votes[15] += 1;
}
else {
votes[5] += 1;
}
}
}
else {
if (x[1] <= 245.5) {
votes[21] += 1;
}
else {
votes[9] += 1;
}
}
}
else {
if (x[1] <= 304.0) {
if (x[0] <= 326.5) {
votes[24] += 1;
}
else {
if (x[2] <= 360.5) {
if (x[1] <= 125.5) {
if (x[3] <= 259.5) {
votes[1] += 1;
}
else {
votes[23] += 1;
}
}
else {
votes[1] += 1;
}
}
else {
votes[2] += 1;
}
}
}
else {
if (x[2] <= 115.5) {
votes[25] += 1;
}
else {
votes[16] += 1;
}
}
}
}
}
// tree #15
if (x[2] <= 25.0) {
if (x[1] <= 39.0) {
if (x[0] <= 281.0) {
votes[4] += 1;
}
else {
votes[19] += 1;
}
}
else {
if (x[1] <= 315.5) {
if (x[0] <= 281.0) {
votes[8] += 1;
}
else {
votes[13] += 1;
}
}
else {
if (x[1] <= 616.0) {
if (x[0] <= 216.5) {
votes[0] += 1;
}
else {
votes[12] += 1;
}
}
else {
votes[0] += 1;
}
}
}
}
else {
if (x[0] <= 203.0) {
if (x[2] <= 228.0) {
if (x[1] <= 250.0) {
if (x[3] <= 34.5) {
votes[18] += 1;
}
else {
if (x[1] <= 112.5) {
if (x[0] <= 96.5) {
votes[7] += 1;
}
else {
if (x[0] <= 110.0) {
votes[21] += 1;
}
else {
votes[7] += 1;
}
}
}
else {
if (x[3] <= 292.5) {
votes[7] += 1;
}
else {
votes[21] += 1;
}
}
}
}
else {
if (x[2] <= 142.5) {
if (x[2] <= 116.0) {
if (x[3] <= 58.5) {
votes[17] += 1;
}
else {
votes[11] += 1;
}
}
else {
if (x[0] <= 108.5) {
if (x[3] <= 60.0) {
votes[17] += 1;
}
else {
votes[11] += 1;
}
}
else {
if (x[0] <= 125.5) {
if (x[3] <= 69.5) {
votes[17] += 1;
}
else {
votes[11] += 1;
}
}
else {
votes[11] += 1;
}
}
}
}
else {
votes[17] += 1;
}
}
}
else {
if (x[3] <= 50.5) {
if (x[1] <= 252.0) {
votes[20] += 1;
}
else {
if (x[2] <= 267.5) {
votes[17] += 1;
}
else {
if (x[1] <= 478.5) {
if (x[2] <= 312.5) {
votes[22] += 1;
}
else {
votes[17] += 1;
}
}
else {
votes[22] += 1;
}
}
}
}
else {
if (x[3] <= 230.0) {
if (x[1] <= 329.5) {
votes[5] += 1;
}
else {
votes[15] += 1;
}
}
else {
votes[9] += 1;
}
}
}
}
else {
if (x[3] <= 414.0) {
if (x[3] <= 37.5) {
if (x[2] <= 263.0) {
if (x[0] <= 420.5) {
if (x[0] <= 347.0) {
if (x[2] <= 131.0) {
votes[3] += 1;
}
else {
votes[6] += 1;
}
}
else {
if (x[0] <= 391.0) {
if (x[2] <= 134.5) {
votes[3] += 1;
}
else {
votes[6] += 1;
}
}
else {
votes[6] += 1;
}
}
}
else {
votes[3] += 1;
}
}
else {
if (x[0] <= 350.5) {
if (x[2] <= 415.0) {
votes[14] += 1;
}
else {
if (x[1] <= 228.5) {
votes[10] += 1;
}
else {
votes[14] += 1;
}
}
}
else {
votes[10] += 1;
}
}
}
else {
if (x[1] <= 304.0) {
if (x[2] <= 242.5) {
votes[1] += 1;
}
else {
if (x[1] <= 115.0) {
votes[24] += 1;
}
else {
if (x[0] <= 806.0) {
votes[2] += 1;
}
else {
votes[1] += 1;
}
}
}
}
else {
votes[25] += 1;
}
}
}
else {
if (x[1] <= 222.0) {
votes[23] += 1;
}
else {
votes[16] += 1;
}
}
}
}
// tree #16
if (x[0] <= 203.0) {
if (x[2] <= 15.5) {
if (x[1] <= 52.0) {
votes[4] += 1;
}
else {
if (x[1] <= 345.0) {
votes[8] += 1;
}
else {
votes[0] += 1;
}
}
}
else {
if (x[3] <= 34.5) {
if (x[0] <= 117.0) {
if (x[1] <= 246.5) {
if (x[2] <= 243.0) {
votes[18] += 1;
}
else {
votes[20] += 1;
}
}
else {
if (x[1] <= 448.5) {
votes[17] += 1;
}
else {
if (x[2] <= 332.5) {
votes[17] += 1;
}
else {
votes[22] += 1;
}
}
}
}
else {
if (x[0] <= 123.5) {
votes[20] += 1;
}
else {
if (x[2] <= 152.5) {
votes[18] += 1;
}
else {
if (x[0] <= 131.5) {
votes[17] += 1;
}
else {
if (x[0] <= 143.0) {
votes[20] += 1;
}
else {
votes[17] += 1;
}
}
}
}
}
}
else {
if (x[1] <= 311.5) {
if (x[2] <= 246.0) {
if (x[3] <= 292.5) {
votes[7] += 1;
}
else {
votes[21] += 1;
}
}
else {
votes[5] += 1;
}
}
else {
if (x[2] <= 200.5) {
votes[11] += 1;
}
else {
if (x[3] <= 206.0) {
votes[15] += 1;
}
else {
votes[9] += 1;
}
}
}
}
}
}
else {
if (x[2] <= 40.0) {
if (x[1] <= 39.0) {
votes[19] += 1;
}
else {
if (x[0] <= 369.5) {
if (x[1] <= 663.5) {
votes[12] += 1;
}
else {
votes[0] += 1;
}
}
else {
if (x[0] <= 425.0) {
votes[13] += 1;
}
else {
if (x[1] <= 357.5) {
votes[13] += 1;
}
else {
votes[12] += 1;
}
}
}
}
}
else {
if (x[1] <= 221.0) {
if (x[2] <= 249.0) {
if (x[2] <= 157.0) {
if (x[3] <= 280.0) {
if (x[1] <= 104.0) {
votes[1] += 1;
}
else {
votes[3] += 1;
}
}
else {
votes[23] += 1;
}
}
else {
if (x[3] <= 84.0) {
votes[3] += 1;
}
else {
votes[1] += 1;
}
}
}
else {
if (x[3] <= 72.5) {
votes[10] += 1;
}
else {
if (x[2] <= 369.0) {
if (x[0] <= 290.0) {
if (x[0] <= 260.5) {
votes[24] += 1;
}
else {
votes[2] += 1;
}
}
else {
votes[24] += 1;
}
}
else {
if (x[3] <= 363.5) {
votes[2] += 1;
}
else {
votes[24] += 1;
}
}
}
}
}
else {
if (x[2] <= 271.5) {
if (x[3] <= 37.5) {
votes[6] += 1;
}
else {
if (x[3] <= 293.0) {
votes[25] += 1;
}
else {
votes[16] += 1;
}
}
}
else {
if (x[2] <= 598.5) {
votes[14] += 1;
}
else {
votes[10] += 1;
}
}
}
}
}
// tree #17
if (x[1] <= 23.0) {
if (x[0] <= 286.5) {
votes[4] += 1;
}
else {
votes[19] += 1;
}
}
else {
if (x[3] <= 230.0) {
if (x[3] <= 37.5) {
if (x[1] <= 359.0) {
if (x[2] <= 253.5) {
if (x[0] <= 229.0) {
if (x[2] <= 45.5) {
votes[8] += 1;
}
else {
votes[18] += 1;
}
}
else {
if (x[0] <= 431.0) {
if (x[2] <= 61.0) {
votes[13] += 1;
}
else {
if (x[1] <= 185.0) {
votes[3] += 1;
}
else {
votes[6] += 1;
}
}
}
else {
if (x[1] <= 144.0) {
votes[3] += 1;
}
else {
votes[13] += 1;
}
}
}
}
else {
if (x[2] <= 486.5) {
if (x[0] <= 179.0) {
votes[20] += 1;
}
else {
if (x[1] <= 214.0) {
votes[10] += 1;
}
else {
votes[14] += 1;
}
}
}
else {
if (x[0] <= 347.5) {
if (x[0] <= 220.0) {
votes[20] += 1;
}
else {
votes[14] += 1;
}
}
else {
votes[10] += 1;
}
}
}
}
else {
if (x[0] <= 279.5) {
if (x[0] <= 132.0) {
if (x[1] <= 650.0) {
if (x[2] <= 415.5) {
if (x[0] <= 115.0) {
if (x[2] <= 239.5) {
votes[17] += 1;
}
else {
votes[22] += 1;
}
}
else {
if (x[2] <= 25.0) {
votes[0] += 1;
}
else {
votes[17] += 1;
}
}
}
else {
votes[22] += 1;
}
}
else {
votes[0] += 1;
}
}
else {
if (x[2] <= 83.0) {
votes[0] += 1;
}
else {
votes[17] += 1;
}
}
}
else {
if (x[2] <= 59.0) {
votes[12] += 1;
}
else {
votes[6] += 1;
}
}
}
}
else {
if (x[1] <= 260.0) {
if (x[2] <= 265.0) {
if (x[0] <= 232.5) {
votes[7] += 1;
}
else {
votes[1] += 1;
}
}
else {
if (x[2] <= 519.0) {
if (x[0] <= 207.5) {
votes[5] += 1;
}
else {
votes[2] += 1;
}
}
else {
votes[5] += 1;
}
}
}
else {
if (x[1] <= 413.0) {
votes[25] += 1;
}
else {
if (x[1] <= 491.5) {
if (x[2] <= 252.5) {
votes[11] += 1;
}
else {
votes[15] += 1;
}
}
else {
votes[11] += 1;
}
}
}
}
}
else {
if (x[2] <= 207.5) {
if (x[1] <= 222.5) {
if (x[0] <= 244.0) {
votes[21] += 1;
}
else {
votes[23] += 1;
}
}
else {
votes[16] += 1;
}
}
else {
if (x[1] <= 235.5) {
votes[24] += 1;
}
else {
votes[9] += 1;
}
}
}
}
// tree #18
if (x[2] <= 15.5) {
if (x[0] <= 279.5) {
if (x[1] <= 391.0) {
if (x[1] <= 52.0) {
votes[4] += 1;
}
else {
votes[8] += 1;
}
}
else {
votes[0] += 1;
}
}
else {
if (x[0] <= 461.5) {
if (x[1] <= 283.5) {
if (x[1] <= 39.0) {
votes[19] += 1;
}
else {
votes[13] += 1;
}
}
else {
votes[12] += 1;
}
}
else {
if (x[1] <= 74.5) {
votes[19] += 1;
}
else {
votes[13] += 1;
}
}
}
}
else {
if (x[3] <= 34.5) {
if (x[0] <= 188.0) {
if (x[2] <= 303.0) {
if (x[0] <= 115.5) {
if (x[1] <= 238.5) {
votes[18] += 1;
}
else {
votes[17] += 1;
}
}
else {
if (x[0] <= 147.5) {
if (x[0] <= 121.0) {
votes[18] += 1;
}
else {
if (x[1] <= 295.0) {
votes[18] += 1;
}
else {
votes[17] += 1;
}
}
}
else {
votes[17] += 1;
}
}
}
else {
if (x[1] <= 296.5) {
votes[20] += 1;
}
else {
votes[22] += 1;
}
}
}
else {
if (x[2] <= 263.0) {
if (x[1] <= 203.0) {
votes[3] += 1;
}
else {
votes[6] += 1;
}
}
else {
if (x[2] <= 540.5) {
if (x[1] <= 230.5) {
votes[10] += 1;
}
else {
votes[14] += 1;
}
}
else {
votes[10] += 1;
}
}
}
}
else {
if (x[0] <= 209.5) {
if (x[3] <= 230.0) {
if (x[2] <= 257.0) {
if (x[3] <= 140.5) {
if (x[0] <= 130.0) {
if (x[1] <= 300.5) {
votes[7] += 1;
}
else {
votes[11] += 1;
}
}
else {
votes[11] += 1;
}
}
else {
votes[11] += 1;
}
}
else {
if (x[1] <= 309.0) {
votes[5] += 1;
}
else {
votes[15] += 1;
}
}
}
else {
if (x[2] <= 184.0) {
votes[21] += 1;
}
else {
votes[9] += 1;
}
}
}
else {
if (x[2] <= 369.0) {
if (x[3] <= 380.5) {
if (x[1] <= 304.0) {
if (x[1] <= 115.5) {
if (x[2] <= 218.0) {
votes[1] += 1;
}
else {
votes[24] += 1;
}
}
else {
votes[1] += 1;
}
}
else {
votes[25] += 1;
}
}
else {
if (x[1] <= 246.5) {
if (x[2] <= 216.0) {
votes[23] += 1;
}
else {
votes[24] += 1;
}
}
else {
votes[16] += 1;
}
}
}
else {
votes[2] += 1;
}
}
}
}
// tree #19
if (x[2] <= 15.5) {
if (x[0] <= 284.5) {
if (x[1] <= 446.5) {
if (x[0] <= 107.5) {
if (x[0] <= 99.5) {
if (x[0] <= 92.0) {
if (x[1] <= 52.0) {
votes[4] += 1;
}
else {
votes[8] += 1;
}
}
else {
votes[8] += 1;
}
}
else {
if (x[1] <= 57.0) {
votes[4] += 1;
}
else {
votes[8] += 1;
}
}
}
else {
if (x[1] <= 48.0) {
votes[4] += 1;
}
else {
votes[8] += 1;
}
}
}
else {
votes[0] += 1;
}
}
else {
if (x[1] <= 44.5) {
votes[19] += 1;
}
else {
if (x[1] <= 358.5) {
votes[13] += 1;
}
else {
votes[12] += 1;
}
}
}
}
else {
if (x[0] <= 210.0) {
if (x[2] <= 239.5) {
if (x[2] <= 120.0) {
if (x[1] <= 247.0) {
if (x[2] <= 114.5) {
if (x[3] <= 293.5) {
if (x[2] <= 96.0) {
votes[7] += 1;
}
else {
if (x[2] <= 109.0) {
votes[18] += 1;
}
else {
votes[7] += 1;
}
}
}
else {
votes[21] += 1;
}
}
else {
if (x[3] <= 252.0) {
votes[18] += 1;
}
else {
votes[21] += 1;
}
}
}
else {
if (x[3] <= 40.0) {
votes[17] += 1;
}
else {
votes[11] += 1;
}
}
}
else {
if (x[1] <= 271.0) {
if (x[2] <= 132.5) {
if (x[3] <= 353.0) {
votes[7] += 1;
}
else {
votes[21] += 1;
}
}
else {
votes[18] += 1;
}
}
else {
if (x[1] <= 432.5) {
if (x[0] <= 92.0) {
votes[17] += 1;
}
else {
votes[11] += 1;
}
}
else {
if (x[3] <= 85.0) {
votes[17] += 1;
}
else {
votes[11] += 1;
}
}
}
}
}
else {
if (x[3] <= 243.5) {
if (x[1] <= 262.5) {
if (x[3] <= 68.5) {
votes[20] += 1;
}
else {
votes[5] += 1;
}
}
else {
if (x[3] <= 50.5) {
votes[22] += 1;
}
else {
votes[15] += 1;
}
}
}
else {
votes[9] += 1;
}
}
}
else {
if (x[1] <= 284.0) {
if (x[0] <= 505.5) {
if (x[2] <= 341.0) {
if (x[0] <= 330.5) {
votes[24] += 1;
}
else {
if (x[3] <= 46.5) {
if (x[1] <= 204.0) {
votes[3] += 1;
}
else {
votes[6] += 1;
}
}
else {
if (x[2] <= 133.0) {
votes[1] += 1;
}
else {
votes[23] += 1;
}
}
}
}
else {
if (x[3] <= 71.0) {
votes[10] += 1;
}
else {
if (x[2] <= 467.5) {
votes[2] += 1;
}
else {
votes[24] += 1;
}
}
}
}
else {
if (x[3] <= 479.0) {
if (x[2] <= 484.0) {
votes[1] += 1;
}
else {
votes[2] += 1;
}
}
else {
votes[23] += 1;
}
}
}
else {
if (x[3] <= 274.5) {
if (x[3] <= 43.5) {
if (x[2] <= 283.5) {
votes[6] += 1;
}
else {
votes[14] += 1;
}
}
else {
votes[25] += 1;
}
}
else {
votes[16] += 1;
}
}
}
}
// tree #20
if (x[1] <= 23.0) {
if (x[0] <= 280.0) {
votes[4] += 1;
}
else {
votes[19] += 1;
}
}
else {
if (x[0] <= 218.0) {
if (x[2] <= 15.5) {
if (x[1] <= 391.0) {
votes[8] += 1;
}
else {
votes[0] += 1;
}
}
else {
if (x[1] <= 297.0) {
if (x[2] <= 240.0) {
if (x[3] <= 43.5) {
votes[18] += 1;
}
else {
if (x[1] <= 124.5) {
if (x[3] <= 300.5) {
votes[7] += 1;
}
else {
votes[21] += 1;
}
}
else {
votes[21] += 1;
}
}
}
else {
if (x[3] <= 68.5) {
votes[20] += 1;
}
else {
votes[5] += 1;
}
}
}
else {
if (x[3] <= 40.0) {
if (x[0] <= 75.5) {
votes[22] += 1;
}
else {
if (x[0] <= 109.0) {
votes[17] += 1;
}
else {
if (x[0] <= 119.5) {
if (x[2] <= 330.0) {
votes[17] += 1;
}
else {
votes[22] += 1;
}
}
else {
votes[17] += 1;
}
}
}
}
else {
if (x[1] <= 445.0) {
if (x[3] <= 185.5) {
if (x[3] <= 127.5) {
votes[11] += 1;
}
else {
votes[15] += 1;
}
}
else {
votes[9] += 1;
}
}
else {
if (x[2] <= 270.0) {
votes[11] += 1;
}
else {
votes[15] += 1;
}
}
}
}
}
}
else {
if (x[2] <= 40.0) {
if (x[1] <= 288.0) {
votes[13] += 1;
}
else {
if (x[1] <= 760.0) {
votes[12] += 1;
}
else {
votes[0] += 1;
}
}
}
else {
if (x[2] <= 242.5) {
if (x[1] <= 259.0) {
if (x[3] <= 353.0) {
if (x[0] <= 409.0) {
votes[3] += 1;
}
else {
if (x[0] <= 584.5) {
votes[1] += 1;
}
else {
if (x[0] <= 786.0) {
votes[3] += 1;
}
else {
votes[1] += 1;
}
}
}
}
else {
votes[23] += 1;
}
}
else {
if (x[2] <= 113.0) {
if (x[3] <= 37.5) {
votes[6] += 1;
}
else {
votes[25] += 1;
}
}
else {
if (x[2] <= 141.5) {
if (x[3] <= 209.0) {
votes[6] += 1;
}
else {
votes[16] += 1;
}
}
else {
votes[6] += 1;
}
}
}
}
else {
if (x[2] <= 341.0) {
votes[24] += 1;
}
else {
if (x[3] <= 72.5) {
if (x[0] <= 353.0) {
if (x[1] <= 197.0) {
votes[10] += 1;
}
else {
votes[14] += 1;
}
}
else {
votes[10] += 1;
}
}
else {
if (x[0] <= 865.0) {
if (x[2] <= 501.5) {
votes[2] += 1;
}
else {
if (x[1] <= 168.5) {
votes[24] += 1;
}
else {
votes[2] += 1;
}
}
}
else {
votes[1] += 1;
}
}
}
}
}
}
}
// return argmax of votes
uint8_t classIdx = 0;
float maxVotes = votes[0];
for (uint8_t i = 1; i < 26; i++) {
if (votes[i] > maxVotes) {
classIdx = i;
maxVotes = votes[i];
}
}
return classIdx;
}
/**
* Predict readable class name
*/
const char* predictLabel(float *x) {
return idxToLabel(predict(x));
}
/**
* Convert class idx to readable name
*/
const char* idxToLabel(uint8_t classIdx) {
switch (classIdx) {
case 0:
return "a";
case 1:
return "b";
case 2:
return "c";
case 3:
return "d";
case 4:
return "e";
case 5:
return "f";
case 6:
return "g";
case 7:
return "h";
case 8:
return "i";
case 9:
return "j";
case 10:
return "k";
case 11:
return "l";
case 12:
return "m";
case 13:
return "n";
case 14:
return "o";
case 15:
return "p";
case 16:
return "q";
case 17:
return "r";
case 18:
return "s";
case 19:
return "t";
case 20:
return "u";
case 21:
return "v";
case 22:
return "w";
case 23:
return "x";
case 24:
return "y";
case 25:
return "z";
default:
return "Houston we have a problem";
}
}
protected:
};
}
}
}