Carry generate signal for carry-lookahead adders. Outputs 1 when the bit position will definitely generate a carry, regardless of incoming carry.
a b
│ │
└───┬───┘
│
▼
┌───────┐
│ AND │
│ w:1,1 │
│ b: -2 │
└───────┘
│
▼
G(a,b)
1from safetensors.torch import load_file
2import torch
3
4w = load_file('model.safetensors')
5
6def carry_generate(a, b):
7 inp = torch.tensor([float(a), float(b)])
8 return int((inp @ w['and.weight'].T + w['and.bias'] >= 0).item())
9
10# Examples
11print(carry_generate(0, 0)) # 0
12print(carry_generate(0, 1)) # 0
13print(carry_generate(1, 0)) # 0
14print(carry_generate(1, 1)) # 1 (generates carry)
threshold-carry-generate/
├── model.safetensors
├── model.py
├── create_safetensors.py
├── config.json
└── README.md