And even that is too simple if you wanted to be perfectly honest: G80 can use half the MUL in CUDA and none in 3D, while GT200 can use all the MUL in CUDA but only half in 3D. Yay?Also you can prolly argue that before GT200, NVidia's unified GPUs could only issue a MAD per clock, whereas from GT200 onwards it's MAD+MUL. Hence 346GFLOPs for 8800GTX.
Also, oops, I realized I made a mistake wrt R300's PS and forgot the free ADD; so just multiply that by 1.5x!