final UnitConverter converter = sourceUnit.getConverterTo(targetUnit);
if (!converter.isLinear()) {
throw new ConversionException(Errors.format(
ErrorKeys.NON_LINEAR_UNIT_CONVERSION_$2, sourceUnit, targetUnit));
}
final double offset = converter.convert(0);
// JSR-275 final double scale = converter.derivative(0);
final double scale = converter.convert(1) - offset;
matrix.setElement(j,i, element*scale);
matrix.setElement(j,sourceDim, matrix.getElement(j,sourceDim) + element*offset);
}