An N-transistor switches a current of a first constant current source by a positive input pulse to generate an output pulse current where an overshoot and an undershoot appear. A P-transistor switches a current of a second constant current source by a negative correction pulse applied at timing of occurrence of the overshoot to generate a correction pulse current. Another N-transistor switches a current of a third constant current source by a positive correction pulse applied at timing of occurrence of the undershoot to generate a correction pulse current. These correction pulse currents are added to the output pulse current to obtain a current as a wavelength where the overshoot and undershoot are largely reduced.