linear diff