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
File size: 2,560 Bytes
d49f074 | 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 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 | /**
* test_panini_micro_kernel.js
*
* Verifies that the C-compatible integer and fixed-point algorithms defined in
* panini_micro_kernel.h execute identically in software on any CPU/MCU without FPU.
*/
const assert = require('assert');
// 1. Emulate C panini_urdhva_conv
function c_urdhva_conv(polyA, polyB) {
const lenA = polyA.length;
const lenB = polyB.length;
const out = new Int32Array(lenA + lenB - 1);
for (let i = 0; i < lenA; i++) {
const a = polyA[i];
for (let j = 0; j < lenB; j++) {
out[i + j] += a * polyB[j];
}
}
return out;
}
// 2. Emulate C panini_yavadunam_square
function c_yavadunam_square(num, base) {
const diff = base - num;
return ((num - diff) * base) + (diff * diff);
}
// 3. Emulate C panini_ekadhikena_square_five
function c_ekadhikena_square_five(prefix) {
return (prefix * (prefix + 1) * 100) + 25;
}
// 4. Emulate C panini_surya_integer_longitude (Q16.16 fixed-point)
function c_surya_integer_longitude(dayOffset) {
const scale = 65536;
const meanMotionQ16 = 64592; // 0.9856 * 65536
let meanLong = (dayOffset * meanMotionQ16) % (360 * scale);
if (meanLong < 0) meanLong += (360 * scale);
return Math.floor(meanLong / scale);
}
console.log('--- TESTING PANINI BARE-METAL EMBEDDED MICRO-KERNEL ---');
// Test 1: Ūrdhva Convolution
const conv = c_urdhva_conv([1, 2, 3], [4, 5]);
assert.deepStrictEqual(Array.from(conv), [4, 13, 22, 15], 'Convolution must match');
console.log('[PASS MCU 1] Ūrdhva-Tiryagbhyām in-place tensor multiply =>', Array.from(conv));
// Test 2: Yāvadūnam Squaring
const sq98 = c_yavadunam_square(98, 100);
assert.strictEqual(sq98, 9604, 'Squaring 98 must be 9604');
console.log('[PASS MCU 2] Yāvadūnam base deficiency squaring =>', sq98);
// Test 3: Ekādhikena Squaring
const sq35 = c_ekadhikena_square_five(3);
assert.strictEqual(sq35, 1225, '35^2 must be 1225');
console.log('[PASS MCU 3] Ekādhikena Pūrveṇa prefix squaring =>', sq35);
// Test 4: Sūrya Siddhānta Fixed-Point
const deg100 = c_surya_integer_longitude(100);
assert(deg100 >= 95 && deg100 <= 100, 'Longitude in valid range');
console.log('[PASS MCU 4] Sūrya Siddhānta Q16.16 fixed-point solar longitude (Day 100) =>', deg100, 'deg');
console.log('---------------------------------------------------------------------');
console.log('ALL BARE-METAL EMBEDDED MCU VERIFICATION CHECKS PASSED (4/4)');
console.log('Memory footprint: 0 bytes dynamic allocation, stack: <128 bytes.');
console.log('=====================================================================');
|