code: public static function linearUnitFactory($name, $toNativeUnitFactor)
      {
          return new static(
              $name,
              function ($valueInNativeUnit) use ($toNativeUnitFactor) {
                  return $valueInNativeUnit / $toNativeUnitFactor;
              },
              function ($valueInThisUnit) use ($toNativeUnitFactor) {
                  return $valueInThisUnit * $toNativeUnitFactor;
              }
          );
      }
docs: For the special case of units that have a linear conversion factor, this factory
  method simplifies the construction of the unit of measure.
  
  For example the relationship between meters and feet is a simple multiplicative factor of
  0.3048 meters in a foot.  Converting back and forth between these two units is a matter of
  multiplication or division by this scaling factor.
  
  In contrast, converting Celsius to Fahrenheit involves an offset calculation, and cannot
  be represented by a simple conversion factor.  In such cases this class's constructor should be
  invoked directly.
  
  To help in getting the multiplication and division right, think of the toNativeUnitFactor
  as the number you'd multiply this unit by to get to the native unit of measure.  In
  other words:
  'Value in the native unit of measure' = 'Value in this unit of measure' * toNativeUnitFactor
  
  @param string $name               This unit of measure's canonical name
  @param float  $toNativeUnitFactor The factor to scale the unit by where factor * base unit = this unit
  
  @return self