source/UnitOfMeasure.php
public static function linearUnitFactory($name, $toNativeUnitFactor)
    {
        return new static(
            $name,
            function ($valueInNativeUnit) use ($toNativeUnitFactor) {
                return $valueInNativeUnit / $toNativeUnitFactor;
            },
            function ($valueInThisUnit) use ($toNativeUnitFactor) {
                return $valueInThisUnit * $toNativeUnitFactor;
            }
        );
    }
public static function linearUnitFactory($name, $toNativeUnitFactor)
    {
        return new static(
            $name,
            function ($valueInNativeUnit) use ($toNativeUnitFactor) {
                return $valueInNativeUnit / $toNativeUnitFactor;
            },
            function ($valueInThisUnit) use ($toNativeUnitFactor) {
                return $valueInThisUnit * $toNativeUnitFactor;
            }
        );
    }
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