flow if the injector is not linear, it has at least 4 distinct stages with 4 different fueling rates. first is the offset stage, when the injector is building up working against the spring, so there's no flow yet. second is the opening stage, at which the injector is changing the flowrate. third is the 'proper' fueling at a rate dictated by the rated flow, operating fuel pressure and manifold vacuum (if not referenced). fourth is the closing stage, when the injector goes from full flow rate to zero.
the actual fuel mass injected is the 'area under the curve' of the various fuel rates in time of injection (integrate from 0 to IPW across the four different functions for IFR).
if you look at ford tuning, they treat it as two stages, they actually have two flow rate numbers, and a 'breakpoint' which is the time the first fuel rate is used for, and everything after that is calculated with the second fuel rate. of course ford tuning people with their natural tendency of 'screw the numbers, right is whatever works' attitude tweak the numbers randomly until they get it to the point where the fueling is acceptable.
GM did it differently. Once the airmass is obtained (SD calcs or MAF lookup) the fuel mass needed is airmass*AFR. the PCM knows the IFR value at the current MANVAC so it uses that to get the pulsewidth it thinks it should use (IPW=fuelmass/IFR). however, this is wrong, because that's assuming the IFR at the various stages of the time of injection is the same, and it isn't (paragraph #1). the design people knew that, thus created a 'lets make up for the discrepancy with another table' table
this is the short pulse adder table.
short pulse adder is the time required (at the official IFR) to make up for the difference in the expected fuel mass, and the fuel mass that actually goes in. at long pulse widths, the areas with the non-official IFR account for a small portion of the total fuel mass, thus are just ignored. however at short pulse width they make up a significantly larger portion of the fuel mass, thus cannot be ignored. That's why we have the short pulse adder.
there's also the offset table, that seems to be mostly dependent on the physical characteristics of the injector (resistance?), operating MANVAC and voltage. offset seems to always get added to the pulsewidth, long or short.
i'm working on a spreadsheet that will convert injector data into short pulse adder table. this is the best explanation i've been able to come up with. of course it might be all horsepoo, so please let me know if i'm full of it. if you got better explanations/data please let me know so we can get this short pulse adder spreadsheet done quicker, we need the fueling to be more precise and this should help a lot.