mp-units VS Unchained

Compare mp-units vs Unchained and see what are their differences.

InfluxDB - Power Real-Time Data Analytics at Scale
Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
www.influxdata.com
featured
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
mp-units Unchained
13 5
950 106
- 4.7%
9.8 7.0
14 days ago about 1 month ago
C++ Nim
MIT License -
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
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.

mp-units

Posts with mentions or reviews of mp-units. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-12-06.

Unchained

Posts with mentions or reviews of Unchained. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-08-03.
  • GNU Units
    7 projects | news.ycombinator.com | 3 Aug 2023
    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
    12 projects | news.ycombinator.com | 20 Mar 2022
  • Pint: Makes Units Easy -Python
    4 projects | news.ycombinator.com | 4 Sep 2021
  • Atlas, a (hopefully) better engineering IDE
    4 projects | news.ycombinator.com | 10 May 2021
    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

What are some alternatives?

When comparing mp-units and Unchained you can also consider the following projects:

awesome-hpp - A curated list of awesome header-only C++ libraries

SI - A header only C++ library that provides type safety and user defined literals for physical units

quantity

mosdepth - fast BAM/CRAM depth calculation for WGS, exome, or targeted sequencing

UNITS - a compile-time, header-only, dimensional analysis and unit conversion library built on c++14 with no dependencies.

nimbus-eth1 - Nimbus: an Ethereum Execution Client for Resource-Restricted Devices

tinyobjloader - Tiny but powerful single file wavefront obj loader

nimview - A Nim/Webview based helper to create Desktop/Server applications with Nim/C/C++ and HTML/CSS

cpp-core-guidelines-cheatsheet - Cheatsheet for the C++ core guidelines, including a set of tried-and-true guidelines, rules, and best practices about coding in C++.

zen

phpmnd - PHP Magic Number Detector