Precalculus Concepts Through Functions by Michael Sullivan