Unchained
pint
Our great sponsors
Unchained | pint | |
---|---|---|
5 | 9 | |
105 | 2,264 | |
4.8% | - | |
7.0 | 9.0 | |
about 1 month ago | 3 days ago | |
Nim | Python | |
- | GNU General Public License v3.0 or later |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
Unchained
-
GNU Units
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.
- Please Put Units in Names
- Pint: Makes Units Easy -Python
-
Atlas, a (hopefully) better engineering IDE
I've recently written a units library for Nim [0]. It's still WIP, but it's already proven extremely useful for me as a physicist.
Thanks to Nim's strong type system and metaprogramming features, it allows for a fully compile time design, without any runtime overhead (in form of special unit objects or such things; everything is a `distinct float`).
In addition Nim's unicode support, the code even looks nice!
A more complex use case (I can link more if desired): [1]
[0]: https://github.com/SciNim/Unchained/
[1]: https://github.com/SciNim/Unchained/tree/master/examples
pint
-
GNU Units
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.
-
misura: Python library for easy unit handling and conversion for scientific & engineering applications.
Same question for pint?
-
Blue Origin capsule blasts away from booster after anomaly during launch
On one hand, it stinks that it's not going better for them. On the positive side, it looks like if there was a real emergency the crew could have escaped.
I was pleasantly surprised to see this pop up on /r/opensource. It looks like blue origin is contributing to open source now https://github.com/hgrecco/pint/pull/1574.
- I uploaded my employer's first OSS patch
- It took 18 months, but I did it. Blue Origin has submitted an open-source patch.
- Wind Turbine Blades Can’t Be Recycled, So They’re Piling Up in Landfills (2020)
- Astropy – a community Python library for Astronomy
-
Pint: Makes Units Easy -Python
I couldn't resist searching for 'kibi', and yep! [0]
[0] https://github.com/hgrecco/pint/search?q=kibi
What are some alternatives?
SI - A header only C++ library that provides type safety and user defined literals for physical units
astropy - Astronomy and astrophysics core library
mosdepth - fast BAM/CRAM depth calculation for WGS, exome, or targeted sequencing
barril - Python package to manage units for physical quantities
nimbus-eth1 - Nimbus: an Ethereum Execution Client for Resource-Restricted Devices
SymPy - A computer algebra system written in pure Python
nimview - A Nim/Webview based helper to create Desktop/Server applications with Nim/C/C++ and HTML/CSS
QuTiP - QuTiP: Quantum Toolbox in Python
zen
scinumtools - Essential tools for numerical scientific calculations, simulations and data analysis. Besides several useful tools, this package is featuring expression solver, physical units, material properties and dimensional input parameter modules.
phpmnd - PHP Magic Number Detector
kal - A powerful, easy-to-use, and easy-to-read programming language for the future.