/*Copyright 2024 Infxl LLC. All rights reserved. This is proprietary software. No warranty,
  explicit or implicit, provided. In no event shall Infxl LLC be liable for any claim or damages.
  ***********************************************************************************************
  ********  RANKING BY ACCURACY                                 34-16-8-1508-616-663-rb-ecR-OFimp
  ********  ACCURACY       COST
  ********    0.9576       1244 Most accurate 
  ********    0.9576       2708 
  ********    0.9569        607 Fastest, most energy-efficient and compact (see code below)
  ********    0.9562       1587 
  ********    0.9549       2521 
  ********  WHAT FOLLOWS IS THE CODE FOR A DEEP NET BUILT BY Infxl. THREE VERSIONS ARE PROVIDED:
  ********                                                                    3- USES NO LOOPS
  ***********************************************************************************************/
//these 333 inputs were found to be irrelevant: 0,2,5,6,8,12,13,14,15,17,18,19,20,21,26,29,30,35,43,44,45,46,47,48,59,60,61,65,67,68,71,74,78,79,80,81,82,83,84,85,86,88,90,91,94,95,96,97,98,100,101,107,120,123,124,126,128,130,133,135,136,137,138,153,154,161,162,164,165,166,167,168,169,170,171,173,174,175,176,177,178,180,181,188,204,206,207,208,209,211,213,217,218,219,220,221,223,224,226,228,229,230,231,232,234,235,239,240,241,242,243,244,245,246,247,252,253,254,255,256,257,258,259,265,266,272,277,278,279,280,281,282,283,284,285,286,290,291,293,294,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,318,319,320,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,349,350,351,352,353,355,357,358,360,361,362,364,370,375,376,378,379,380,381,382,383,384,385,386,387,389,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,412,413,414,415,416,418,419,420,421,422,423,424,425,426,427,429,430,431,432,434,435,436,437,438,439,440,441,443,447,448,460,462,463,464,465,466,467,468,469,470,471,472,473,474,475,476,477,478,479,480,481,482,483,484,485,486,487,488,489,490,491,492,493,494,495,496,497,498,499,500,503,505,506,508,509,514,515,517,518,520,521,522,524,528,529,530,531,532,533,534,535,537,540,541,542,543,544,545,546,547,548,553

//********  VERSION 3: USES NO LOOPS  ***********************************************************
#include <stdint.h>

static inline int8_t lookup_ROM8(int16_t count16) {
    int8_t const static ROM8[] = { -126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-121,-121,-121,-121,-121,-121,-121,-121,-121,-120,-120,-120,-120,-120,-120,-120,-120,-120,-119,-119,-119,-119,-119,-119,-119,-118,-118,-118,-118,-118,-118,-118,-117,-117,-117,-117,-117,-117,-116,-116,-116,-116,-116,-115,-115,-115,-115,-115,-115,-114,-114,-114,-114,-113,-113,-113,-113,-113,-112,-112,-112,-112,-111,-111,-111,-111,-110,-110,-110,-110,-109,-109,-109,-109,-108,-108,-108,-107,-107,-107,-107,-106,-106,-106,-105,-105,-105,-104,-104,-104,-103,-103,-103,-102,-102,-101,-101,-101,-100,-100,-100,-99,-99,-98,-98,-97,-97,-97,-96,-96,-95,-95,-94,-94,-93,-93,-93,-92,-92,-91,-91,-90,-90,-89,-89,-88,-88,-87,-86,-86,-85,-85,-84,-84,-83,-82,-82,-81,-81,-80,-79,-79,-78,-78,-77,-76,-76,-75,-74,-74,-73,-72,-72,-71,-70,-70,-69,-68,-67,-67,-66,-65,-65,-64,-63,-62,-61,-61,-60,-59,-58,-58,-57,-56,-55,-54,-54,-53,-52,-51,-50,-49,-48,-48,-47,-46,-45,-44,-43,-42,-41,-41,-40,-39,-38,-37,-36,-35,-34,-33,-32,-31,-30,-29,-29,-28,-27,-26,-25,-24,-23,-22,-21,-20,-19,-18,-17,-16,-15,-14,-13,-12,-11,-10,-9,-8,-7,-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,29,30,31,32,33,34,35,36,37,38,39,40,41,41,42,43,44,45,46,47,48,48,49,50,51,52,53,54,54,55,56,57,58,58,59,60,61,61,62,63,64,65,65,66,67,67,68,69,70,70,71,72,72,73,74,74,75,76,76,77,78,78,79,79,80,81,81,82,82,83,84,84,85,85,86,86,87,88,88,89,89,90,90,91,91,92,92,93,93,93,94,94,95,95,96,96,97,97,97,98,98,99,99,100,100,100,101,101,101,102,102,103,103,103,104,104,104,105,105,105,106,106,106,107,107,107,107,108,108,108,109,109,109,109,110,110,110,110,111,111,111,111,112,112,112,112,113,113,113,113,113,114,114,114,114,115,115,115,115,115,115,116,116,116,116,116,117,117,117,117,117,117,118,118,118,118,118,118,118,119,119,119,119,119,119,119,120,120,120,120,120,120,120,120,120,121,121,121,121,121,121,121,121,121,122,122,122,122,122,122,122,122,122,122,122,123,123,123,123,123,123,123,123,123,123,123,123,123,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126};
    if (     count16 <   0) { return -127; }
    else if (count16 > 656) { return  127; }
    else {                    return ROM8[count16]; } }
  //else {                    return *(ROM8 + count16); } }

int main() {
    int8_t inp8_0, inp8_1, inp8_2, inp8_3, inp8_4, inp8_5, inp8_6, inp8_7, inp8_8, inp8_9, inp8_10, inp8_11, inp8_12, inp8_13, inp8_14, inp8_15, inp8_16, inp8_17, inp8_18, inp8_19, inp8_20, inp8_21, inp8_22, inp8_23, inp8_24, inp8_25, inp8_26, inp8_27, inp8_28, inp8_29, inp8_30, inp8_31, inp8_32, inp8_33, inp8_34, inp8_35, inp8_36, inp8_37, inp8_38, inp8_39, inp8_40, inp8_41, inp8_42, inp8_43, inp8_44, inp8_45, inp8_46, inp8_47, inp8_48, inp8_49, inp8_50, inp8_51, inp8_52, inp8_53, inp8_54, inp8_55, inp8_56, inp8_57, inp8_58, inp8_59, inp8_60, inp8_61, inp8_62, inp8_63, inp8_64, inp8_65, inp8_66, inp8_67, inp8_68, inp8_69, inp8_70, inp8_71, inp8_72, inp8_73, inp8_74, inp8_75, inp8_76, inp8_77, inp8_78, inp8_79, inp8_80, inp8_81, inp8_82, inp8_83, inp8_84, inp8_85, inp8_86, inp8_87, inp8_88, inp8_89, inp8_90, inp8_91, inp8_92, inp8_93, inp8_94, inp8_95, inp8_96, inp8_97, inp8_98, inp8_99, inp8_100, inp8_101, inp8_102, inp8_103, inp8_104, inp8_105, inp8_106, inp8_107, inp8_108, inp8_109, inp8_110, inp8_111, inp8_112, inp8_113, inp8_114, inp8_115, inp8_116, inp8_117, inp8_118, inp8_119, inp8_120, inp8_121, inp8_122, inp8_123, inp8_124, inp8_125, inp8_126, inp8_127, inp8_128, inp8_129, inp8_130, inp8_131, inp8_132, inp8_133, inp8_134, inp8_135, inp8_136, inp8_137, inp8_138, inp8_139, inp8_140, inp8_141, inp8_142, inp8_143, inp8_144, inp8_145, inp8_146, inp8_147, inp8_148, inp8_149, inp8_150, inp8_151, inp8_152, inp8_153, inp8_154, inp8_155, inp8_156, inp8_157, inp8_158, inp8_159, inp8_160, inp8_161, inp8_162, inp8_163, inp8_164, inp8_165, inp8_166, inp8_167, inp8_168, inp8_169, inp8_170, inp8_171, inp8_172, inp8_173, inp8_174, inp8_175, inp8_176, inp8_177, inp8_178, inp8_179, inp8_180, inp8_181, inp8_182, inp8_183, inp8_184, inp8_185, inp8_186, inp8_187, inp8_188, inp8_189, inp8_190, inp8_191, inp8_192, inp8_193, inp8_194, inp8_195, inp8_196, inp8_197, inp8_198, inp8_199, inp8_200, inp8_201, inp8_202, inp8_203, inp8_204, inp8_205, inp8_206, inp8_207, inp8_208, inp8_209, inp8_210, inp8_211, inp8_212, inp8_213, inp8_214, inp8_215, inp8_216, inp8_217, inp8_218, inp8_219, inp8_220, inp8_221, inp8_222, inp8_223, inp8_224, inp8_225, inp8_226, inp8_227, inp8_228, inp8_229, inp8_230, inp8_231, inp8_232, inp8_233, inp8_234, inp8_235, inp8_236, inp8_237, inp8_238, inp8_239, inp8_240, inp8_241, inp8_242, inp8_243, inp8_244, inp8_245, inp8_246, inp8_247, inp8_248, inp8_249, inp8_250, inp8_251, inp8_252, inp8_253, inp8_254, inp8_255, inp8_256, inp8_257, inp8_258, inp8_259, inp8_260, inp8_261, inp8_262, inp8_263, inp8_264, inp8_265, inp8_266, inp8_267, inp8_268, inp8_269, inp8_270, inp8_271, inp8_272, inp8_273, inp8_274, inp8_275, inp8_276, inp8_277, inp8_278, inp8_279, inp8_280, inp8_281, inp8_282, inp8_283, inp8_284, inp8_285, inp8_286, inp8_287, inp8_288, inp8_289, inp8_290, inp8_291, inp8_292, inp8_293, inp8_294, inp8_295, inp8_296, inp8_297, inp8_298, inp8_299, inp8_300, inp8_301, inp8_302, inp8_303, inp8_304, inp8_305, inp8_306, inp8_307, inp8_308, inp8_309, inp8_310, inp8_311, inp8_312, inp8_313, inp8_314, inp8_315, inp8_316, inp8_317, inp8_318, inp8_319, inp8_320, inp8_321, inp8_322, inp8_323, inp8_324, inp8_325, inp8_326, inp8_327, inp8_328, inp8_329, inp8_330, inp8_331, inp8_332, inp8_333, inp8_334, inp8_335, inp8_336, inp8_337, inp8_338, inp8_339, inp8_340, inp8_341, inp8_342, inp8_343, inp8_344, inp8_345, inp8_346, inp8_347, inp8_348, inp8_349, inp8_350, inp8_351, inp8_352, inp8_353, inp8_354, inp8_355, inp8_356, inp8_357, inp8_358, inp8_359, inp8_360, inp8_361, inp8_362, inp8_363, inp8_364, inp8_365, inp8_366, inp8_367, inp8_368, inp8_369, inp8_370, inp8_371, inp8_372, inp8_373, inp8_374, inp8_375, inp8_376, inp8_377, inp8_378, inp8_379, inp8_380, inp8_381, inp8_382, inp8_383, inp8_384, inp8_385, inp8_386, inp8_387, inp8_388, inp8_389, inp8_390, inp8_391, inp8_392, inp8_393, inp8_394, inp8_395, inp8_396, inp8_397, inp8_398, inp8_399, inp8_400, inp8_401, inp8_402, inp8_403, inp8_404, inp8_405, inp8_406, inp8_407, inp8_408, inp8_409, inp8_410, inp8_411, inp8_412, inp8_413, inp8_414, inp8_415, inp8_416, inp8_417, inp8_418, inp8_419, inp8_420, inp8_421, inp8_422, inp8_423, inp8_424, inp8_425, inp8_426, inp8_427, inp8_428, inp8_429, inp8_430, inp8_431, inp8_432, inp8_433, inp8_434, inp8_435, inp8_436, inp8_437, inp8_438, inp8_439, inp8_440, inp8_441, inp8_442, inp8_443, inp8_444, inp8_445, inp8_446, inp8_447, inp8_448, inp8_449, inp8_450, inp8_451, inp8_452, inp8_453, inp8_454, inp8_455, inp8_456, inp8_457, inp8_458, inp8_459, inp8_460, inp8_461, inp8_462, inp8_463, inp8_464, inp8_465, inp8_466, inp8_467, inp8_468, inp8_469, inp8_470, inp8_471, inp8_472, inp8_473, inp8_474, inp8_475, inp8_476, inp8_477, inp8_478, inp8_479, inp8_480, inp8_481, inp8_482, inp8_483, inp8_484, inp8_485, inp8_486, inp8_487, inp8_488, inp8_489, inp8_490, inp8_491, inp8_492, inp8_493, inp8_494, inp8_495, inp8_496, inp8_497, inp8_498, inp8_499, inp8_500, inp8_501, inp8_502, inp8_503, inp8_504, inp8_505, inp8_506, inp8_507, inp8_508, inp8_509, inp8_510, inp8_511, inp8_512, inp8_513, inp8_514, inp8_515, inp8_516, inp8_517, inp8_518, inp8_519, inp8_520, inp8_521, inp8_522, inp8_523, inp8_524, inp8_525, inp8_526, inp8_527, inp8_528, inp8_529, inp8_530, inp8_531, inp8_532, inp8_533, inp8_534, inp8_535, inp8_536, inp8_537, inp8_538, inp8_539, inp8_540, inp8_541, inp8_542, inp8_543, inp8_544, inp8_545, inp8_546, inp8_547, inp8_548, inp8_549, inp8_550, inp8_551, inp8_552, inp8_553, inp8_554, inp8_555, inp8_556, inp8_557, inp8_558, inp8_559, inp8_560;
    //inp8 values are used (in most cases, several times) in BLOCK#0 only
    int8_t ram8_561, ram8_562, ram8_563, ram8_564, ram8_565, ram8_566, ram8_567, ram8_568, ram8_569, ram8_570, ram8_571, ram8_572, ram8_573, ram8_574, ram8_575, ram8_576, ram8_577, ram8_578, ram8_579, ram8_580, ram8_581, ram8_582, ram8_583, ram8_584, ram8_585, ram8_586;
    //all ram8 values calculated in a block are used in the very next block only

    while (1) {   //get inputs, compute outputs
        //this block is a placeholder for code that brings the data from the sensors after pre-processing them to the range [-127, 127]
        //int8_t preprocessed_inp_vec8[] = { 33,-3,-2,-119,-117,-84,-121,-117,-85,-113,-70,-60,91,80,100,-111,-127,-127,-119,-124,-121,-105,-22,-49,32,66,-62,62,-6,27,-17,17,-2,-14,9,-22,5,10,-63,-90,119,-36,15,-117,-119,-71,-118,-119,-77,115,-36,20,120,-34,-10,-2,105,-110,-123,-121,-120,-96,-54,-127,28,-55,55,-55,55,-101,99,-99,100,-125,125,-126,125,125,-127,-122,9,6,-14,-115,-119,-119,-116,-119,-120,-115,-121,-113,114,121,120,-118,-126,-127,-127,-119,-120,-123,-11,-40,-64,66,-29,63,40,29,15,28,54,-11,18,-25,9,-34,5,-45,15,-12,24,-112,-103,-119,-113,-109,-120,-84,-90,-82,106,105,103,-101,-124,-125,-126,-112,-115,-122,98,-34,58,-10,-2,30,-25,4,-10,1,31,28,-36,32,2,82,-30,-39,-26,-22,-12,-114,-116,-119,-116,-118,-121,-110,-116,-114,115,116,120,-118,-126,-126,-127,-119,-122,-123,5,10,-25,14,-3,25,39,15,7,9,25,40,-27,22,19,16,-20,-41,-110,-89,-94,-96,-125,-110,-124,-109,33,7,-26,77,-71,-110,-89,-94,-96,-125,-110,-124,-109,33,7,-26,77,-71,-118,-114,-114,-115,-124,-118,-126,-116,-17,31,-44,42,-34,-101,-97,-99,-91,-97,-101,-124,-106,84,5,-21,20,-1,-117,-113,-114,-116,-124,-117,-126,-116,42,65,-65,5,2,-117,-117,-100,-120,-117,-80,-118,-117,-92,-123,-119,-75,-123,-125,-121,-110,-127,-126,-119,-115,-119,-110,-43,-62,-21,-127,-127,-127,1,16,-66,-72,-114,-43,-87,24,-15,-127,-127,-126,-126,-126,-126,-126,-127,-127,-126,-126,-126,-127,-126,-127,-127,-127,-127,-127,-126,-127,-127,-126,-127,-127,-127,-127,-127,-117,-126,-126,-127,-127,-126,-126,-124,-119,-127,-127,-125,-119,-127,-114,-119,-117,-117,-120,-120,-114,-119,-120,-120,-122,-122,-120,-125,-124,-115,-126,-127,-127,-113,-119,-121,-60,-85,-75,-66,10,41,58,18,-23,-73,-115,-79,-120,-84,-116,-127,-127,-126,-126,-126,-125,-125,-127,-127,-126,-126,-125,-127,-126,-127,-127,-127,-127,-127,-126,-127,-127,-127,-127,-126,-127,-127,-126,-126,-127,-127,-127,-127,-126,-127,-127,-126,-127,-126,-127,-127,-127,-104,-102,-116,-115,-104,-121,-110,-105,-119,-115,-112,-123,-111,-120,-117,-105,-126,-125,-127,-111,-106,-118,0,26,-32,-127,-119,-118,24,-8,56,-51,-88,-50,-100,-62,-100,-126,-126,-126,-126,-125,-125,-125,-125,-126,-126,-125,-125,-126,-126,-124,-126,-127,-126,-126,-125,-126,-125,-125,-127,-126,-125,-125,-126,-127,-127,-127,-127,-127,-126,-126,-126,-127,-127,-127,-126,-127,-127,-100,-90,-92,-99,-120,-100,-121,-111,-22,-127,-62,1,-49,-114,-114,-113,-118,-114,-114,-126,-117,-62,-127,-5,-33,-89,-98,-101,-97,-104,-119,-98,-123,-101,23,-127,-6,-60,-96,-113,-115,-114,-116,-115,-113,-126,-114,-30,-127,9,-42,-89,1,21,-105,35,-91,35,-7 };
        //scalar version of the preprocessed_inp_vec8 vector should be used
        inp8_0 = 33; inp8_1 = -3; inp8_2 = -2; inp8_3 = -119; inp8_4 = -117; inp8_5 = -84; inp8_6 = -121; inp8_7 = -117; inp8_8 = -85; inp8_9 = -113; inp8_10 = -70; inp8_11 = -60; inp8_12 = 91; inp8_13 = 80; inp8_14 = 100; inp8_15 = -111; inp8_16 = -127; inp8_17 = -127; inp8_18 = -119; inp8_19 = -124; inp8_20 = -121; inp8_21 = -105; inp8_22 = -22; inp8_23 = -49; inp8_24 = 32; inp8_25 = 66; inp8_26 = -62; inp8_27 = 62; inp8_28 = -6; inp8_29 = 27; inp8_30 = -17; inp8_31 = 17; inp8_32 = -2; inp8_33 = -14; inp8_34 = 9; inp8_35 = -22; inp8_36 = 5; inp8_37 = 10; inp8_38 = -63; inp8_39 = -90; inp8_40 = 119; inp8_41 = -36; inp8_42 = 15; inp8_43 = -117; inp8_44 = -119; inp8_45 = -71; inp8_46 = -118; inp8_47 = -119; inp8_48 = -77; inp8_49 = 115; inp8_50 = -36; inp8_51 = 20; inp8_52 = 120; inp8_53 = -34; inp8_54 = -10; inp8_55 = -2; inp8_56 = 105; inp8_57 = -110; inp8_58 = -123; inp8_59 = -121; inp8_60 = -120; inp8_61 = -96; inp8_62 = -54; inp8_63 = -127; inp8_64 = 28; inp8_65 = -55; inp8_66 = 55; inp8_67 = -55; inp8_68 = 55; inp8_69 = -101; inp8_70 = 99; inp8_71 = -99; inp8_72 = 100; inp8_73 = -125; inp8_74 = 125; inp8_75 = -126; inp8_76 = 125; inp8_77 = 125; inp8_78 = -127; inp8_79 = -122; inp8_80 = 9; inp8_81 = 6; inp8_82 = -14; inp8_83 = -115; inp8_84 = -119; inp8_85 = -119; inp8_86 = -116; inp8_87 = -119; inp8_88 = -120; inp8_89 = -115; inp8_90 = -121; inp8_91 = -113; inp8_92 = 114; inp8_93 = 121; inp8_94 = 120; inp8_95 = -118; inp8_96 = -126; inp8_97 = -127; inp8_98 = -127; inp8_99 = -119; inp8_100 = -120; inp8_101 = -123; inp8_102 = -11; inp8_103 = -40; inp8_104 = -64; inp8_105 = 66; inp8_106 = -29; inp8_107 = 63; inp8_108 = 40; inp8_109 = 29; inp8_110 = 15; inp8_111 = 28; inp8_112 = 54; inp8_113 = -11; inp8_114 = 18; inp8_115 = -25; inp8_116 = 9; inp8_117 = -34; inp8_118 = 5; inp8_119 = -45; inp8_120 = 15; inp8_121 = -12; inp8_122 = 24; inp8_123 = -112; inp8_124 = -103; inp8_125 = -119; inp8_126 = -113; inp8_127 = -109; inp8_128 = -120; inp8_129 = -84; inp8_130 = -90; inp8_131 = -82; inp8_132 = 106; inp8_133 = 105; inp8_134 = 103; inp8_135 = -101; inp8_136 = -124; inp8_137 = -125; inp8_138 = -126; inp8_139 = -112; inp8_140 = -115; inp8_141 = -122; inp8_142 = 98; inp8_143 = -34; inp8_144 = 58; inp8_145 = -10; inp8_146 = -2; inp8_147 = 30; inp8_148 = -25; inp8_149 = 4; inp8_150 = -10; inp8_151 = 1; inp8_152 = 31; inp8_153 = 28; inp8_154 = -36; inp8_155 = 32; inp8_156 = 2; inp8_157 = 82; inp8_158 = -30; inp8_159 = -39; inp8_160 = -26; inp8_161 = -22; inp8_162 = -12; inp8_163 = -114; inp8_164 = -116; inp8_165 = -119; inp8_166 = -116; inp8_167 = -118; inp8_168 = -121; inp8_169 = -110; inp8_170 = -116; inp8_171 = -114; inp8_172 = 115; inp8_173 = 116; inp8_174 = 120; inp8_175 = -118; inp8_176 = -126; inp8_177 = -126; inp8_178 = -127; inp8_179 = -119; inp8_180 = -122; inp8_181 = -123; inp8_182 = 5; inp8_183 = 10; inp8_184 = -25; inp8_185 = 14; inp8_186 = -3; inp8_187 = 25; inp8_188 = 39; inp8_189 = 15; inp8_190 = 7; inp8_191 = 9; inp8_192 = 25; inp8_193 = 40; inp8_194 = -27; inp8_195 = 22; inp8_196 = 19; inp8_197 = 16; inp8_198 = -20; inp8_199 = -41; inp8_200 = -110; inp8_201 = -89; inp8_202 = -94; inp8_203 = -96; inp8_204 = -125; inp8_205 = -110; inp8_206 = -124; inp8_207 = -109; inp8_208 = 33; inp8_209 = 7; inp8_210 = -26; inp8_211 = 77; inp8_212 = -71; inp8_213 = -110; inp8_214 = -89; inp8_215 = -94; inp8_216 = -96; inp8_217 = -125; inp8_218 = -110; inp8_219 = -124; inp8_220 = -109; inp8_221 = 33; inp8_222 = 7; inp8_223 = -26; inp8_224 = 77; inp8_225 = -71; inp8_226 = -118; inp8_227 = -114; inp8_228 = -114; inp8_229 = -115; inp8_230 = -124; inp8_231 = -118; inp8_232 = -126; inp8_233 = -116; inp8_234 = -17; inp8_235 = 31; inp8_236 = -44; inp8_237 = 42; inp8_238 = -34; inp8_239 = -101; inp8_240 = -97; inp8_241 = -99; inp8_242 = -91; inp8_243 = -97; inp8_244 = -101; inp8_245 = -124; inp8_246 = -106; inp8_247 = 84; inp8_248 = 5; inp8_249 = -21; inp8_250 = 20; inp8_251 = -1; inp8_252 = -117; inp8_253 = -113; inp8_254 = -114; inp8_255 = -116; inp8_256 = -124; inp8_257 = -117; inp8_258 = -126; inp8_259 = -116; inp8_260 = 42; inp8_261 = 65; inp8_262 = -65; inp8_263 = 5; inp8_264 = 2; inp8_265 = -117; inp8_266 = -117; inp8_267 = -100; inp8_268 = -120; inp8_269 = -117; inp8_270 = -80; inp8_271 = -118; inp8_272 = -117; inp8_273 = -92; inp8_274 = -123; inp8_275 = -119; inp8_276 = -75; inp8_277 = -123; inp8_278 = -125; inp8_279 = -121; inp8_280 = -110; inp8_281 = -127; inp8_282 = -126; inp8_283 = -119; inp8_284 = -115; inp8_285 = -119; inp8_286 = -110; inp8_287 = -43; inp8_288 = -62; inp8_289 = -21; inp8_290 = -127; inp8_291 = -127; inp8_292 = -127; inp8_293 = 1; inp8_294 = 16; inp8_295 = -66; inp8_296 = -72; inp8_297 = -114; inp8_298 = -43; inp8_299 = -87; inp8_300 = 24; inp8_301 = -15; inp8_302 = -127; inp8_303 = -127; inp8_304 = -126; inp8_305 = -126; inp8_306 = -126; inp8_307 = -126; inp8_308 = -126; inp8_309 = -127; inp8_310 = -127; inp8_311 = -126; inp8_312 = -126; inp8_313 = -126; inp8_314 = -127; inp8_315 = -126; inp8_316 = -127; inp8_317 = -127; inp8_318 = -127; inp8_319 = -127; inp8_320 = -127; inp8_321 = -126; inp8_322 = -127; inp8_323 = -127; inp8_324 = -126; inp8_325 = -127; inp8_326 = -127; inp8_327 = -127; inp8_328 = -127; inp8_329 = -127; inp8_330 = -117; inp8_331 = -126; inp8_332 = -126; inp8_333 = -127; inp8_334 = -127; inp8_335 = -126; inp8_336 = -126; inp8_337 = -124; inp8_338 = -119; inp8_339 = -127; inp8_340 = -127; inp8_341 = -125; inp8_342 = -119; inp8_343 = -127; inp8_344 = -114; inp8_345 = -119; inp8_346 = -117; inp8_347 = -117; inp8_348 = -120; inp8_349 = -120; inp8_350 = -114; inp8_351 = -119; inp8_352 = -120; inp8_353 = -120; inp8_354 = -122; inp8_355 = -122; inp8_356 = -120; inp8_357 = -125; inp8_358 = -124; inp8_359 = -115; inp8_360 = -126; inp8_361 = -127; inp8_362 = -127; inp8_363 = -113; inp8_364 = -119; inp8_365 = -121; inp8_366 = -60; inp8_367 = -85; inp8_368 = -75; inp8_369 = -66; inp8_370 = 10; inp8_371 = 41; inp8_372 = 58; inp8_373 = 18; inp8_374 = -23; inp8_375 = -73; inp8_376 = -115; inp8_377 = -79; inp8_378 = -120; inp8_379 = -84; inp8_380 = -116; inp8_381 = -127; inp8_382 = -127; inp8_383 = -126; inp8_384 = -126; inp8_385 = -126; inp8_386 = -125; inp8_387 = -125; inp8_388 = -127; inp8_389 = -127; inp8_390 = -126; inp8_391 = -126; inp8_392 = -125; inp8_393 = -127; inp8_394 = -126; inp8_395 = -127; inp8_396 = -127; inp8_397 = -127; inp8_398 = -127; inp8_399 = -127; inp8_400 = -126; inp8_401 = -127; inp8_402 = -127; inp8_403 = -127; inp8_404 = -127; inp8_405 = -126; inp8_406 = -127; inp8_407 = -127; inp8_408 = -126; inp8_409 = -126; inp8_410 = -127; inp8_411 = -127; inp8_412 = -127; inp8_413 = -127; inp8_414 = -126; inp8_415 = -127; inp8_416 = -127; inp8_417 = -126; inp8_418 = -127; inp8_419 = -126; inp8_420 = -127; inp8_421 = -127; inp8_422 = -127; inp8_423 = -104; inp8_424 = -102; inp8_425 = -116; inp8_426 = -115; inp8_427 = -104; inp8_428 = -121; inp8_429 = -110; inp8_430 = -105; inp8_431 = -119; inp8_432 = -115; inp8_433 = -112; inp8_434 = -123; inp8_435 = -111; inp8_436 = -120; inp8_437 = -117; inp8_438 = -105; inp8_439 = -126; inp8_440 = -125; inp8_441 = -127; inp8_442 = -111; inp8_443 = -106; inp8_444 = -118; inp8_445 = 0; inp8_446 = 26; inp8_447 = -32; inp8_448 = -127; inp8_449 = -119; inp8_450 = -118; inp8_451 = 24; inp8_452 = -8; inp8_453 = 56; inp8_454 = -51; inp8_455 = -88; inp8_456 = -50; inp8_457 = -100; inp8_458 = -62; inp8_459 = -100; inp8_460 = -126; inp8_461 = -126; inp8_462 = -126; inp8_463 = -126; inp8_464 = -125; inp8_465 = -125; inp8_466 = -125; inp8_467 = -125; inp8_468 = -126; inp8_469 = -126; inp8_470 = -125; inp8_471 = -125; inp8_472 = -126; inp8_473 = -126; inp8_474 = -124; inp8_475 = -126; inp8_476 = -127; inp8_477 = -126; inp8_478 = -126; inp8_479 = -125; inp8_480 = -126; inp8_481 = -125; inp8_482 = -125; inp8_483 = -127; inp8_484 = -126; inp8_485 = -125; inp8_486 = -125; inp8_487 = -126; inp8_488 = -127; inp8_489 = -127; inp8_490 = -127; inp8_491 = -127; inp8_492 = -127; inp8_493 = -126; inp8_494 = -126; inp8_495 = -126; inp8_496 = -127; inp8_497 = -127; inp8_498 = -127; inp8_499 = -126; inp8_500 = -127; inp8_501 = -127; inp8_502 = -100; inp8_503 = -90; inp8_504 = -92; inp8_505 = -99; inp8_506 = -120; inp8_507 = -100; inp8_508 = -121; inp8_509 = -111; inp8_510 = -22; inp8_511 = -127; inp8_512 = -62; inp8_513 = 1; inp8_514 = -49; inp8_515 = -114; inp8_516 = -114; inp8_517 = -113; inp8_518 = -118; inp8_519 = -114; inp8_520 = -114; inp8_521 = -126; inp8_522 = -117; inp8_523 = -62; inp8_524 = -127; inp8_525 = -5; inp8_526 = -33; inp8_527 = -89; inp8_528 = -98; inp8_529 = -101; inp8_530 = -97; inp8_531 = -104; inp8_532 = -119; inp8_533 = -98; inp8_534 = -123; inp8_535 = -101; inp8_536 = 23; inp8_537 = -127; inp8_538 = -6; inp8_539 = -60; inp8_540 = -96; inp8_541 = -113; inp8_542 = -115; inp8_543 = -114; inp8_544 = -116; inp8_545 = -115; inp8_546 = -113; inp8_547 = -126; inp8_548 = -114; inp8_549 = -30; inp8_550 = -127; inp8_551 = 9; inp8_552 = -42; inp8_553 = -89; inp8_554 = 1; inp8_555 = 21; inp8_556 = -105; inp8_557 = 35; inp8_558 = -91; inp8_559 = 35; inp8_560 = -7;

        //PARALLEL BLOCK#0 starts (12 statements that may execute concurrently or in any other order)
        ram8_561 = lookup_ROM8((int16_t)-34 -inp8_102);
        ram8_562 = lookup_ROM8((int16_t)458 +inp8_38 +inp8_105 +inp8_110 +inp8_114 +inp8_121 +inp8_142 +inp8_146 +inp8_147 +inp8_148 +inp8_149 +inp8_151 +inp8_152 +inp8_155 +inp8_182 +inp8_192 +inp8_198 +inp8_260 +inp8_298 +inp8_371 +inp8_373 +inp8_374 +inp8_445 +inp8_527 +inp8_550 +inp8_556 +inp8_559 +inp8_560 -inp8_27 -inp8_28 -inp8_32 -inp8_36 -inp8_37 -inp8_41 -inp8_42 -inp8_50 -inp8_53 -inp8_63 -inp8_143 -inp8_145 -inp8_150 -inp8_158 -inp8_185 -inp8_186 -inp8_187 -inp8_194 -inp8_195 -inp8_210 -inp8_238 -inp8_264 -inp8_296 -inp8_451);
        ram8_563 = lookup_ROM8((int16_t)535 +inp8_1 +inp8_4 +inp8_27 +inp8_28 +inp8_32 +inp8_36 +inp8_40 +inp8_41 +inp8_49 +inp8_50 +inp8_53 +inp8_110 +inp8_111 +inp8_118 +inp8_143 +inp8_144 +inp8_145 +inp8_150 +inp8_156 +inp8_158 +inp8_185 +inp8_186 +inp8_187 +inp8_191 +inp8_194 +inp8_197 +inp8_198 +inp8_212 +inp8_237 +inp8_238 +inp8_261 +inp8_292 +inp8_295 +inp8_368 +inp8_374 +inp8_428 +inp8_451 +inp8_458 +inp8_510 +inp8_538 -inp8_25 -inp8_37 -inp8_42 -inp8_57 -inp8_77 -inp8_105 -inp8_114 -inp8_115 -inp8_122 -inp8_142 -inp8_147 -inp8_148 -inp8_149 -inp8_151 -inp8_155 -inp8_182 -inp8_192 -inp8_196 -inp8_263 -inp8_298 -inp8_372 -inp8_445 -inp8_452 -inp8_555 -inp8_557 -inp8_559);
        ram8_564 = lookup_ROM8((int16_t)167 +inp8_3 +inp8_9 +inp8_16 +inp8_62 +inp8_70 +inp8_129 +inp8_141 +inp8_143 +inp8_184 +inp8_194 +inp8_201 +inp8_203 +inp8_236 +inp8_271 +inp8_296 +inp8_366 +inp8_455 +inp8_523 +inp8_525 -inp8_37 -inp8_117 -inp8_118 -inp8_156 -inp8_197 -inp8_198 -inp8_199 -inp8_222 -inp8_250 -inp8_295 -inp8_317 -inp8_348 -inp8_369 -inp8_526 -inp8_538 -inp8_552);
        ram8_565 = lookup_ROM8((int16_t)-10 +inp8_24 +inp8_37 +inp8_92 +inp8_114 +inp8_115 +inp8_117 +inp8_118 +inp8_142 +inp8_156 +inp8_197 +inp8_198 +inp8_199 +inp8_227 +inp8_273 +inp8_287 +inp8_289 +inp8_295 +inp8_366 +inp8_367 +inp8_368 +inp8_450 +inp8_516 +inp8_523 +inp8_526 +inp8_536 +inp8_538 -inp8_36 -inp8_55 -inp8_62 -inp8_70 -inp8_72 -inp8_131 -inp8_134 -inp8_157 -inp8_185 -inp8_186 -inp8_192 -inp8_205 -inp8_261 -inp8_296 -inp8_442 -inp8_444 -inp8_458);
        ram8_566 = lookup_ROM8((int16_t)468 +inp8_4 +inp8_7 +inp8_22 +inp8_37 +inp8_55 +inp8_106 +inp8_108 +inp8_117 +inp8_119 +inp8_127 +inp8_131 +inp8_132 +inp8_134 +inp8_140 +inp8_148 +inp8_159 +inp8_163 +inp8_190 +inp8_192 +inp8_205 +inp8_261 +inp8_269 +inp8_270 +inp8_276 +inp8_298 +inp8_299 +inp8_321 +inp8_451 +inp8_458 +inp8_459 +inp8_512 +inp8_552 -inp8_1 -inp8_9 -inp8_23 -inp8_24 -inp8_28 -inp8_89 -inp8_92 -inp8_93 -inp8_118 -inp8_143 -inp8_158 -inp8_189 -inp8_197 -inp8_202 -inp8_227 -inp8_233 -inp8_262 -inp8_267 -inp8_274 -inp8_297 -inp8_365 -inp8_367 -inp8_390 -inp8_411 -inp8_417 -inp8_433 -inp8_502 -inp8_504 -inp8_507);
        ram8_567 = lookup_ROM8((int16_t)149 -inp8_377);
        ram8_568 = lookup_ROM8((int16_t)549 +inp8_10 +inp8_32 +inp8_36 +inp8_39 +inp8_55 +inp8_63 +inp8_99 +inp8_134 +inp8_141 +inp8_157 +inp8_185 +inp8_193 +inp8_261 +inp8_269 +inp8_300 +inp8_451 +inp8_458 +inp8_558 -inp8_1 -inp8_24 -inp8_31 -inp8_73 -inp8_75 -inp8_92 -inp8_104 -inp8_114 -inp8_115 -inp8_116 -inp8_118 -inp8_139 -inp8_142 -inp8_147 -inp8_197 -inp8_199 -inp8_237 -inp8_248 -inp8_289 -inp8_295 -inp8_367 -inp8_368 -inp8_449 -inp8_450 -inp8_510 -inp8_516 -inp8_523 -inp8_526 -inp8_538 -inp8_549);
        ram8_569 = lookup_ROM8((int16_t)759 +inp8_23 +inp8_24 +inp8_28 +inp8_57 +inp8_58 +inp8_66 +inp8_102 +inp8_103 +inp8_104 +inp8_114 +inp8_116 +inp8_118 +inp8_159 +inp8_197 +inp8_237 +inp8_288 +inp8_367 +inp8_445 +inp8_454 +inp8_525 +inp8_549 +inp8_558 -inp8_40 -inp8_49 -inp8_52 -inp8_55 -inp8_56 -inp8_76 -inp8_106 -inp8_157 -inp8_388 -inp8_501 -inp8_513 -inp8_552 -inp8_559);
        ram8_570 = lookup_ROM8((int16_t)293 +inp8_36 +inp8_37 +inp8_39 +inp8_40 +inp8_49 +inp8_52 +inp8_55 +inp8_56 +inp8_64 +inp8_87 +inp8_106 +inp8_108 +inp8_113 +inp8_117 +inp8_119 +inp8_125 +inp8_148 +inp8_156 +inp8_179 +inp8_198 +inp8_199 +inp8_202 +inp8_276 +inp8_354 +inp8_356 +inp8_369 +inp8_449 +inp8_453 +inp8_458 +inp8_461 +inp8_519 +inp8_551 +inp8_552 -inp8_3 -inp8_9 -inp8_11 -inp8_28 -inp8_38 -inp8_57 -inp8_62 -inp8_109 -inp8_172 -inp8_186 -inp8_189 -inp8_190 -inp8_194 -inp8_195 -inp8_200 -inp8_214 -inp8_215 -inp8_225 -inp8_268 -inp8_297 -inp8_363 -inp8_446 -inp8_452 -inp8_504 -inp8_558);
        ram8_571 = lookup_ROM8((int16_t)278 +inp8_1 +inp8_32 +inp8_36 +inp8_41 +inp8_50 +inp8_51 +inp8_53 +inp8_63 +inp8_69 +inp8_118 +inp8_119 +inp8_144 +inp8_145 +inp8_150 +inp8_158 +inp8_183 +inp8_185 +inp8_186 +inp8_187 +inp8_191 +inp8_194 +inp8_197 +inp8_225 +inp8_237 +inp8_238 +inp8_446 +inp8_451 +inp8_538 +inp8_539 -inp8_34 -inp8_39 -inp8_110 -inp8_112 -inp8_142 -inp8_149 -inp8_156 -inp8_182 -inp8_189 -inp8_196 -inp8_198 -inp8_260 -inp8_263 -inp8_366 -inp8_372 -inp8_374 -inp8_445 -inp8_452 -inp8_511 -inp8_554 -inp8_559 -inp8_560);
        ram8_572 = lookup_ROM8((int16_t)139 +inp8_7 +inp8_36 +inp8_37 +inp8_102 +inp8_103 +inp8_104 +inp8_157 +inp8_159 +inp8_160 +inp8_163 +inp8_192 +inp8_249 +inp8_251 +inp8_269 +inp8_275 +inp8_287 +inp8_348 +inp8_366 +inp8_367 +inp8_433 +inp8_456 +inp8_457 +inp8_458 +inp8_512 +inp8_523 +inp8_559 -inp8_1 -inp8_28 -inp8_33 -inp8_54 -inp8_89 -inp8_92 -inp8_114 -inp8_152 -inp8_195 -inp8_201 -inp8_214 -inp8_216 -inp8_274 -inp8_359 -inp8_502 -inp8_504 -inp8_507);
        //**************************************************************************************************************************** PARALLEL BLOCK#0 ends
        //PARALLEL BLOCK#1 starts (8 statements that may execute concurrently or in any other order, but only after the previous block has finished)
        ram8_573 = lookup_ROM8((int16_t)323 +ram8_571 -ram8_566 -ram8_569);
        ram8_574 = lookup_ROM8((int16_t)309 +ram8_566 +ram8_572 -ram8_562);
        ram8_575 = lookup_ROM8((int16_t)157 +ram8_564 +ram8_566 +ram8_568 +ram8_569 +ram8_571 +ram8_572 -ram8_563 -ram8_565 -ram8_570);
        ram8_576 = lookup_ROM8((int16_t)ram8_561 +ram8_566 +ram8_572 -ram8_567);
        ram8_577 = lookup_ROM8((int16_t)452 +ram8_565 +ram8_569 -ram8_564 -ram8_566 -ram8_572);
        ram8_578 = lookup_ROM8((int16_t)381 +ram8_563 +ram8_564 +ram8_568 +ram8_569 +ram8_571 -ram8_562 -ram8_565);
        ram8_579 = lookup_ROM8((int16_t)340 +ram8_568 +ram8_570 +ram8_571 -ram8_562 -ram8_563 -ram8_564 -ram8_569 -ram8_572);
        ram8_580 = lookup_ROM8((int16_t)180 +ram8_561 +ram8_564 -ram8_566 -ram8_568 -ram8_570 -ram8_571 -ram8_572);
        //**************************************************************************************************************************** PARALLEL BLOCK#1 ends
        //PARALLEL BLOCK#2 starts (6 statements that may execute concurrently or in any other order, but only after the previous block has finished)
        //The following 6 are the deep net output values
        ram8_581 = lookup_ROM8((int16_t)64 +ram8_575 +ram8_576 +ram8_577 +ram8_578 +ram8_579 -ram8_573 -ram8_574 -ram8_580);
        ram8_582 = lookup_ROM8((int16_t)265 +ram8_573 +ram8_574 +ram8_576 +ram8_578 +ram8_579 +ram8_580 -ram8_575 -ram8_577);
        ram8_583 = lookup_ROM8((int16_t)224 +ram8_576 +ram8_579 -ram8_574 -ram8_577 -ram8_578);
        ram8_584 = lookup_ROM8((int16_t)31 +ram8_574 +ram8_576 +ram8_577 -ram8_575 -ram8_578 -ram8_579 -ram8_580);
        ram8_585 = lookup_ROM8((int16_t)139 +ram8_576 +ram8_577 +ram8_578 +ram8_580 -ram8_574 -ram8_575 -ram8_579);
        ram8_586 = lookup_ROM8((int16_t)101 +ram8_574 +ram8_575 +ram8_576 +ram8_578 -ram8_573 -ram8_577 -ram8_579);
        //**************************************************************************************************************************** PARALLEL BLOCK#2 ends
    }
    return 0; }
Click here to download this code