threshold-halfadder / README.md
phanerozoic's picture
Rename from tiny-HalfAdder-verified
0fc2474 verified
---
license: mit
tags:
- pytorch
- safetensors
- threshold-logic
- neuromorphic
- arithmetic
---
# threshold-halfadder
Adds two 1-bit inputs, producing sum and carry. The building block for all multi-bit adders.
## Circuit
```
a b
β”‚ β”‚
β”œβ”€β”€β”€β”¬β”€β”€β”€β”€
β”‚ β”‚ β”‚
β–Ό β”‚ β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”β”‚β”Œβ”€β”€β”€β”€β”€β”€β”
β”‚ OR β”‚β”‚β”‚ NAND β”‚
β””β”€β”€β”€β”€β”€β”€β”˜β”‚β””β”€β”€β”€β”€β”€β”€β”˜
β”‚ β”‚ β”‚
β””β”€β”€β”€β”Όβ”€β”€β”€β”˜
β–Ό a b
β”Œβ”€β”€β”€β”€β”€β”€β” β”‚ β”‚
β”‚ AND β”‚ β””β”€β”¬β”€β”˜
β””β”€β”€β”€β”€β”€β”€β”˜ β–Ό
β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”
β–Ό β”‚ AND β”‚
sum β””β”€β”€β”€β”€β”€β”€β”˜
β”‚
β–Ό
carry
```
The sum output uses XOR (2 layers), the carry uses AND (1 layer).
## Truth Table
| a | b | sum | carry |
|---|---|-----|-------|
| 0 | 0 | 0 | 0 |
| 0 | 1 | 1 | 0 |
| 1 | 0 | 1 | 0 |
| 1 | 1 | 0 | 1 |
Binary: a + b = (carry Γ— 2) + sum
## Components
| Output | Function | Neurons | Layers |
|--------|----------|---------|--------|
| sum | XOR(a, b) | 3 | 2 |
| carry | AND(a, b) | 1 | 1 |
**Total: 4 neurons, 12 parameters**
## Arithmetic
The half adder computes a + b where a, b ∈ {0, 1}:
- 0 + 0 = 0 (sum=0, carry=0)
- 0 + 1 = 1 (sum=1, carry=0)
- 1 + 0 = 1 (sum=1, carry=0)
- 1 + 1 = 2 (sum=0, carry=1)
The carry represents the 2s place.
## Usage
```python
from safetensors.torch import load_file
import torch
w = load_file('model.safetensors')
def half_adder(a, b):
inp = torch.tensor([float(a), float(b)])
# XOR for sum
or_out = int((inp @ w['xor.layer1.or.weight'] + w['xor.layer1.or.bias']).sum() >= 0)
nand_out = int((inp @ w['xor.layer1.nand.weight'] + w['xor.layer1.nand.bias']).sum() >= 0)
xor_inp = torch.tensor([float(or_out), float(nand_out)])
sum_out = int((xor_inp @ w['xor.layer2.weight'] + w['xor.layer2.bias']).sum() >= 0)
# AND for carry
carry_out = int((inp @ w['carry.weight'] + w['carry.bias']).sum() >= 0)
return sum_out, carry_out
```
## Files
```
threshold-halfadder/
β”œβ”€β”€ model.safetensors
β”œβ”€β”€ model.py
β”œβ”€β”€ config.json
└── README.md
```
## License
MIT