Transformers
English
Sanskrit
swe-bench
swe-bench-verified
panini-grammar
ast-invariants
code-repair
automated-program-repair
gemma
neuro-symbolic
formal-methods
test-driven-development
Eval Results (legacy)
Instructions to use 18kansal/panini4b with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use 18kansal/panini4b with Transformers:
# pip install -U transformers accelerate # Load model directly from transformers import AutoModel model = AutoModel.from_pretrained("18kansal/panini4b", device_map="auto") - Notebooks
- Google Colab
- Kaggle
Download panini_micro_kernel.h from 18kansal/panini4b: direct link, hf CLI and curl.
- Browser
- Download file 3.27 kB
-
https://huggingface.co/18kansal/panini4b/resolve/main/panini_micro_kernel.h
- Command line
-
hf download hf://18kansal/panini4b/panini_micro_kernel.h
-
curl -L -o panini_micro_kernel.h https://huggingface.co/18kansal/panini4b/resolve/main/panini_micro_kernel.h
3.27 kB
| /** | |
| * panini_micro_kernel.h | |
| * | |
| * ============================================================================= | |
| * PANINI BARE-METAL EMBEDDED MICRO-KERNEL (C89 / MISRA-C COMPLIANT) | |
| * ============================================================================= | |
| * | |
| * Target Architectures: | |
| * - 8-bit Microcontrollers (AVR / ATmega328P / Arduino: 2 KB SRAM) | |
| * - 16-bit Microcontrollers (MSP430 / PIC24: 4 KB - 16 KB SRAM) | |
| * - 32-bit Microprocessors (ARM Cortex-M0/M3/M4/M7, ESP32, RISC-V, STM32) | |
| * - 64-bit Application CPUs (x86_64, AArch64) | |
| * | |
| * Invariants & Constraints: | |
| * 1. ZERO dynamic memory allocations (No malloc / free / heap). | |
| * 2. Strict O(1) stack memory consumption (< 128 bytes total). | |
| * 3. 100% deterministic integer arithmetic (No floating-point unit required). | |
| */ | |
| extern "C" { | |
| /* --- SŪTRA 3: ŪRDHVA-TIRYAGBHYĀM (Cross-Convolution 1D Tensor Multiply) --- */ | |
| /* Computes polynomial multiplication in-place without heap allocations. */ | |
| static inline void panini_urdhva_conv( | |
| const int16_t* polyA, uint8_t lenA, | |
| const int16_t* polyB, uint8_t lenB, | |
| int32_t* outResult | |
| ) { | |
| uint8_t i, j; | |
| uint8_t outLen = lenA + lenB - 1; | |
| for (i = 0; i < outLen; ++i) { | |
| outResult[i] = 0; | |
| } | |
| for (i = 0; i < lenA; ++i) { | |
| int32_t a_val = polyA[i]; | |
| for (j = 0; j < lenB; ++j) { | |
| outResult[i + j] += a_val * polyB[j]; | |
| } | |
| } | |
| } | |
| /* --- SŪTRA 10: YĀVADŪNAM (Base Deficiency Squaring) --- */ | |
| /* Computes square of numbers near power-of-10 bases: (B - d)^2 = (B - 2d)B + d^2 */ | |
| static inline int32_t panini_yavadunam_square(int16_t num, int16_t base) { | |
| int16_t diff = base - num; | |
| return ((int32_t)(num - diff) * base) + ((int32_t)diff * diff); | |
| } | |
| /* --- SŪTRA 1: EKĀDHIKENA PŪRVEṆA (Fast Squaring of numbers ending in 5) --- */ | |
| /* Example: 35^2 -> prefix 3 * (3+1) = 12 concat 25 = 1225 */ | |
| static inline int32_t panini_ekadhikena_square_five(int16_t prefix) { | |
| int32_t part1 = (int32_t)prefix * (prefix + 1); | |
| return (part1 * 100) + 25; | |
| } | |
| /* --- PĀṆINI 1.4.2: VIPRATIṢEDHE PARAṀ KĀRYAM (Conflict Arbiter) --- */ | |
| /* Priority: Authority Tier (High > Low). If equal, Recency (Rule B > Rule A). */ | |
| typedef struct { | |
| uint8_t ruleId; | |
| uint8_t authorityTier; | |
| uint8_t actionPayload; | |
| } PaniniRule; | |
| static inline PaniniRule panini_vipratisedha_resolve(PaniniRule ruleA, PaniniRule ruleB) { | |
| if (ruleA.authorityTier > ruleB.authorityTier) { | |
| return ruleA; | |
| } | |
| return ruleB; /* Later rule / higher authority wins */ | |
| } | |
| /* --- SŪRYA SIDDHĀNTA: INTEGER FIXED-POINT SOLAR LONGITUDE (Q16.16) --- */ | |
| /* Evaluates true solar longitude on microcontrollers without FPU. */ | |
| static inline int32_t panini_surya_integer_longitude(int32_t dayOffset) { | |
| /* Fixed-point scale factor: 2^16 = 65536 */ | |
| /* Mean daily motion = 360 / 365.258756 ≈ 0.9856 degrees -> 64592 in Q16 */ | |
| int32_t meanLong = (dayOffset * 64592) % (360 * 65536); | |
| if (meanLong < 0) meanLong += (360 * 65536); | |
| return meanLong >> 16; /* Returns integer degrees [0, 359] */ | |
| } | |
| } | |