A method of determining a temporal waveform I(t) of an optical pulse, the method comprising: obtaining a symmetric composite function I symmetric ( t) corresponding to the temporal waveform of the optical pulse plus a time-reversed temporal waveform of said optical pulse, wherein I symmetric t = I − − t − Δ t 2 + I t − Δ t 2 and Δt is a variable time delay between the optical pulse and a time-reversed optical pulse having the time-reversed temporal waveform; obtaining the measured autocorrelation function A PMT_double ( τ) of the symmetric composite function I symmetric ( t); obtaining a Fourier transform A PMT_double ( f) of the measured autocorrelation function, wherein A PMT_double ( f)=2| η | 2 | I ( f)| 2 |1 + cos(2 φ ( f) - fΔt)| wherein η is assumed constant; recovering | I ( f)| 2 from the envelope of A PMT_double ( f); determining a function g ( f)=1+cos(2 φ ( f) - f Δ t) by dividing the Fourier transform of the autocorrelation function A PMT_double ( f) by | I ( f)| 2 and determining a term | cos φ f − f Δ t 2 | using g(f) and g(f) -1; if there are no zero crossings of the term | cos φ f − f Δ t 2 |, calculating an inverse Fourier transform of I symmetric f = 2 | I f | cos φ f − f Δ t 2 to determine the symmetric composite function I symmetric ( t); and if there are zero crossings of the term | cos φ f − f Δ t 2 |, determining a magnitude of a Hartley transform of the symmetric composite function I symmetric ( t) from | cos φ f − f Δ t 2 | and | I ( f)| to determine I symmetric ( t); and determining the temporal waveform l(t) by separating I symmetric ( t) into the temporal waveform and the time-reversed temporal waveform. obtaining a symmetric composite function I symmetric ( t) corresponding to the temporal waveform of the optical pulse plus a time-reversed temporal waveform of said optical pulse, wherein I symmetric t = I − − t − Δ t 2 + I t − Δ t 2 and Δt is a variable time delay between the optical pulse and a time-reversed optical pulse having the time-reversed temporal waveform; obtaining the measured autocorrelation function A PMT_double ( τ) of the symmetric composite function I symmetric ( t); obtaining a Fourier transform A PMT_double ( f) of the measured autocorrelation function, wherein A PMT_double ( f)=2| η | 2 | I ( f)| 2 |1 + cos(2 φ ( f) - fΔt)| wherein η is assumed constant; recovering | I ( f)| 2 from the envelope of A PMT_double ( f); determining a function g ( f)=1+cos(2 φ ( f) - f Δ t) by dividing the Fourier transform of the autocorrelation function A PMT_double ( f) by | I ( f)| 2 and determining a term | cos φ f − f Δ t 2 | using g(f) and g(f) -1; if there are no zero crossings of the term | cos φ f − f Δ t 2 |, calculating an inverse Fourier transform of I symmetric f = 2 | I f | cos φ f − f Δ t 2 to determine the symmetric composite function I symmetric ( t); and if there are zero crossings of the term | cos φ f − f Δ t 2 |, determining a magnitude of a Hartley transform of the symmetric composite function I symmetric ( t) from | cos φ f − f Δ t 2 | and | I ( f)| to determine I symmetric ( t); and determining the temporal waveform l(t) by separating I symmetric ( t) into the temporal waveform and the time-reversed temporal waveform.