Linear

Only generalised to RealFloat. Separate branch for consistency.