Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
SAXS Scatter Error Analysis for Optimized Algorithm CHRIS WILCOX 2/21/2008 Algorithm Status New benchmark: 1000 atoms in molecule, random atom types (O,S,N,H,P,…) and distances (0..10.0). Original code, no redundant calculations, no special optimizations: 1000 atoms = 44s, 5000 atoms = 1100s (estimated). Optimized code, uses lookup table for sin(f)/f, where f = (4 PI distance step): 1000 atoms = 17s, 5000 atoms = 442s (estimated). What is the numerical accuracy of the algorithm, and is it worth pursuing? Lookup Table Errors Compare distances between lookup table entries (max error), but average is smaller. Steps with lookup table resolution of 0.001 appear to be similar in magnitude, i.e. ~0.001. Error is multiplied by 2.0 * f0atom1 * f0atom2, causes 2 orders of magnitude increase in error. Per step, 103 atoms means ~106 terms, which could result in an error term of up to 105. \ Relative errors are better, but how much? Lookup Table Resoluion Tried lookup table resolution of 0.01, 0.001, 0.0001, cover max distance * step (~200.0). Table size is 2 * 104, 2 * 105, and 2 * 106. corresponding to the resolutions above. Each increase of an order of magnitude of resolution achieves 10X better accuracy. Both absolute and relative measures scale according to the resolution. Apparently there isn’t some nonlinear error behavior in the accumulation of intensity. Intensity Curve Differences Compare intensity curves generated on random molecule, original to optimized algorithm. Minimum absolute error -9980, maximum absolute error 7928. Minimum relative error -0.0035, maximum relative error 0.0035 (symmetric around zero). Mean absolute error is 210, mean relative error is ~0.00024. Less than .02 percent relative error, curves look the same, seems good enough?