Sort key: family → size → precision
| 103 | |
| 104 | // Sort key: family → size → precision |
| 105 | static int model_sort_key(const std::string & name) { |
| 106 | int family = 0; |
| 107 | if (name.find("sam3-visual") != std::string::npos) family = 1; |
| 108 | else if (name.find("sam3") != std::string::npos) family = 0; |
| 109 | else if (name.find("sam2.1") != std::string::npos) family = 3; |
| 110 | else if (name.find("sam2") != std::string::npos) family = 2; |
| 111 | |
| 112 | int size = 0; |
| 113 | if (name.find("tiny") != std::string::npos) size = 0; |
| 114 | else if (name.find("small") != std::string::npos) size = 1; |
| 115 | else if (name.find("base_plus") != std::string::npos) size = 2; |
| 116 | else if (name.find("large") != std::string::npos) size = 3; |
| 117 | |
| 118 | int prec = 0; |
| 119 | if (name.find("f32") != std::string::npos) prec = 0; |
| 120 | else if (name.find("f16") != std::string::npos) prec = 1; |
| 121 | else if (name.find("q8_0") != std::string::npos) prec = 2; |
| 122 | else if (name.find("q4_1") != std::string::npos) prec = 3; |
| 123 | else if (name.find("q4_0") != std::string::npos) prec = 4; |
| 124 | |
| 125 | return family * 10000 + size * 100 + prec; |
| 126 | } |
| 127 | |
| 128 | // ── Model discovery ───────────────────────────────────────────────────────── |
| 129 |
no outgoing calls
no test coverage detected