--- name: pint-compute description: Unit-aware computation with Pint - convert units, dimensional analysis, unit arithmetic allowed-tools: [Bash, Read] --- # Unit Computation with Pint Cognitive prosthetics for unit-aware computation. Use Pint for converting between units, performing unit arithmetic, checking dimensional compatibility, and simplifying compound units. ## When to Use - Converting between units (meters to feet, kg to pounds) - Unit-aware arithmetic (velocity x time = distance) - Dimensional analysis (is force = mass x acceleration?) - Simplifying compound units to base or named units - Parsing and analyzing quantities with units ## Quick Reference | I want to... | Command | Example | |--------------|---------|---------| | Convert units | `convert` | `convert "5 meters" --to feet` | | Unit math | `calc` | `calc "10 m/s * 5 s"` | | Check dimensions | `check` | `check newton --against "kg * m / s^2"` | | Parse quantity | `parse` | `parse "100 km/h"` | | Simplify units | `simplify` | `simplify "1 kg*m/s^2"` | ## Commands ### parse Parse a quantity string into magnitude, units, and dimensionality. ```bash uv run python -m runtime.harness scripts/pint_compute.py \ parse "100 km/h" uv run python -m runtime.harness scripts/pint_compute.py \ parse "9.8 m/s^2" ``` ### convert Convert a quantity to different units. ```bash uv run python -m runtime.harness scripts/pint_compute.py \ convert "5 meters" --to feet uv run python -m runtime.harness scripts/pint_compute.py \ convert "100 km/h" --to mph uv run python -m runtime.harness scripts/pint_compute.py \ convert "1 atmosphere" --to pascal ``` ### calc Perform unit-aware arithmetic. Operators must be space-separated. ```bash uv run python -m runtime.harness scripts/pint_compute.py \ calc "5 m * 3 s" uv run python -m runtime.harness scripts/pint_compute.py \ calc "10 m / 2 s" uv run python -m runtime.harness scripts/pint_compute.py \ calc "5 meters + 300 cm" ``` ### check Check if two units have compatible dimensions. ```bash uv run python -m runtime.harness scripts/pint_compute.py \ check newton --against "kg * m / s^2" uv run python -m runtime.harness scripts/pint_compute.py \ check joule --against "kg * m^2 / s^2" ``` ### simplify Simplify compound units to base or compact form. ```bash uv run python -m runtime.harness scripts/pint_compute.py \ simplify "1 kg*m/s^2" uv run python -m runtime.harness scripts/pint_compute.py \ simplify "1000 m" ``` ## Common Unit Domains | Domain | Examples | |--------|----------| | Length | meter, foot, inch, mile, km, yard | | Time | second, minute, hour, day, year | | Mass | kg, gram, pound, ounce, ton | | Velocity | m/s, km/h, mph, knot | | Energy | joule, calorie, eV, kWh, BTU | | Force | newton, pound_force, dyne | | Temperature | kelvin, celsius, fahrenheit | | Pressure | pascal, bar, atmosphere, psi | | Power | watt, horsepower | ## Output Format All commands return JSON with relevant fields: ```json { "result": "16.4042 foot", "magnitude": 16.4042, "units": "foot", "dimensionality": "[length]", "latex": "16.4042\\,\\mathrm{ft}" } ``` ## Error Handling Dimensionality errors are caught and reported: ```bash # This will error - incompatible dimensions uv run python -m runtime.harness scripts/pint_compute.py \ convert "5 meters" --to kg # Error: Cannot convert '[length]' to '[mass]' ``` ## Related Skills - /math-mode - Full math orchestration (SymPy + Z3) - /sympy-compute - Symbolic computation