-
Anything with a finite (200 is small even) number of units misses the algebraic structure of the problem mentioned in https://news.ycombinator.com/item?id=36988497 wherein multiplying|dividing two things gives you a (potentially) new unit which implies an open ended "space" of units.
To be concrete (hah!), in C++ a template meta-type with 12 signed integer parameters (6 numerators & 6 denominators for rational exponents of SI base units) might be one way to model it.
Unlike C++ template stuff, Nim macros (like Lisp macros) makes metaprogramming more like procedural programming - just against abstract syntax trees. I think that helps to shield some of this type complexity from users, but the documentation README https://github.com/SciNim/Unchained does better job than I can in an HN comment.
Of course, for unit system conversion, the number of dimensions (6 in SI, 3 in CGS/Gaussian) changes. So, for full generality you need compile-time (if you want static type integration/CT errors) linear algebra over a rational field (at least & conventionally) to project|inverse project. That might be theoretically possible in C++. I would think it very un-fun and unlikely to ever have been done. There's probably a Mathematica package, though.
-
SaaSHub
SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives
-
Only tangential to this but somebody might find it usefull. I’m doing lots of calculations in Python involving various units. I’m using a similar library called Pint. https://github.com/hgrecco/pint
My business is thermodynamics of power plants. Professionals in the industry tend to use convenient units like C, bars, kJ/kg and so on. But the formulas usualy need basic SI units.
-
I personally use Qalculate (https://qalculate.github.io/), specifically their CLI version for this purpose. I'm not sure how well it compares to GNU Units, but it works well enough for my needs; and it's fairly simple using English-like syntax.
-
The author of the AUR package, removed it from the community repo and moved it to the AUR. And now it has another maintainer in the AUR.
The original maintainer still maintains 2185 packages [2].
Can't find an explanation why though.
[0]: https://github.com/archlinux/svntogit-community/commit/2b5ec...
[1]: https://aur.archlinux.org/cgit/aur.git/commit/?h=units&id=e6...
[2]: https://archlinux.org/packages/?packager=arojas
-
-
Related posts
-
Pint: Makes Units Easy -Python
-
Scientific computing with confidence using typed dimensions
-
misura: Python library for easy unit handling and conversion for scientific & engineering applications.
-
Blue Origin capsule blasts away from booster after anomaly during launch
-
I uploaded my employer's first OSS patch