A method of controlling a speed of a pump configured to provide coolant flow for a vehicle, the method comprising: setting a speed of the pump to a minimum speed (S 302); determining that a thermostat is fully engaged (S 306) so that it allows a maximum amount of coolant to flow to a radiator; receiving a set of sensor values from a plurality of sensors; executing more than one speed control function based on the set of sensor values to generate a set of speed control values associated with the speed control functions (S 308); selecting a speed control value from the set of speed control values; and causing the pump to operate at a speed according to the selected speed control value (S 310), wherein the more than one speed control function includes a first speed control function that compares an ambient temperature value to a low ambient temperature threshold and a high ambient temperature threshold; and wherein executing the first speed control function includes: determining whether the ambient temperature value is between the low ambient temperature threshold and the high ambient temperature threshold; in response to determining that the ambient temperature value is between the low ambient temperature threshold and the high ambient temperature threshold, returning a first speed control value as the result of the speed control function; and in response to determining that the ambient temperature value is not between the low ambient temperature threshold and the high ambient temperature threshold, returning a second speed control value different from the first speed control value as the result of the speed control function, the method being characterized in that selecting the speed control value from the set of speed control values includes selecting a maximum speed control value from the set of speed control values, wherein the minimum speed is higher than zero, wherein the set of sensor values include a driveline torque value, and wherein the more than one speed control function includes a second speed control function that determines whether the driveline torque value has been greater than a threshold torque value for a predetermined amount of time. setting a speed of the pump to a minimum speed (S 302); determining that a thermostat is fully engaged (S 306) so that it allows a maximum amount of coolant to flow to a radiator; receiving a set of sensor values from a plurality of sensors; executing more than one speed control function based on the set of sensor values to generate a set of speed control values associated with the speed control functions (S 308); selecting a speed control value from the set of speed control values; and causing the pump to operate at a speed according to the selected speed control value (S 310), wherein the more than one speed control function includes a first speed control function that compares an ambient temperature value to a low ambient temperature threshold and a high ambient temperature threshold; and wherein executing the first speed control function includes: determining whether the ambient temperature value is between the low ambient temperature threshold and the high ambient temperature threshold; in response to determining that the ambient temperature value is between the low ambient temperature threshold and the high ambient temperature threshold, returning a first speed control value as the result of the speed control function; and in response to determining that the ambient temperature value is not between the low ambient temperature threshold and the high ambient temperature threshold, returning a second speed control value different from the first speed control value as the result of the speed control function, the method being characterized in that selecting the speed control value from the set of speed control values includes selecting a maximum speed control value from the set of speed control values, wherein the minimum speed is higher than zero, wherein the set of sensor values include a driveline torque value, and wherein the more than one speed control function includes a second speed control function that determines whether the driveline torque value has been greater than a threshold torque value for a predetermined amount of time. determining whether the ambient temperature value is between the low ambient temperature threshold and the high ambient temperature threshold; in response to determining that the ambient temperature value is between the low ambient temperature threshold and the high ambient temperature threshold, returning a first speed control value as the result of the speed control function; and in response to determining that the ambient temperature value is not between the low ambient temperature threshold and the high ambient temperature threshold, returning a second speed control value different from the first speed control value as the result of the speed control function, the method being characterized in that selecting the speed control value from the set of speed control values includes selecting a maximum speed control value from the set of speed control values, wherein the minimum speed is higher than zero, wherein the set of sensor values include a driveline torque value, and wherein the more than one speed control function includes a second speed control function that determines whether the driveline torque value has been greater than a threshold torque value for a predetermined amount of time.