On 9/19/2011 5:01 PM, Wayne Stambaugh wrote: > On 9/19/2011 4:31 PM, jean-pierre charras wrote: >> Well, >> I used trigonometric look up tables to speed up calculations when I started >> Kicad. >> Some features (like file formats) come from to constraints due to low speed >> of >> computers or networks. >> Obviously, these constraints are now very different. >> Today, we can consider a more understandable and maintainable code it the >> first >> constraint. >> Mainly because: >> - Kicad code is growing more and more. >> - Computers and networks and more and more faster. >> - Our brain does not grow (unfortunately). >> >> The main reason there is a mixed use of sin(), cos() and lockup table in code >> is the complexity of Kicad code. >> There is a lot of duplicated code due to this reason. >> So, code simplification is the most important criteria when changing the >> Kicad >> code. >> > > I did a little research and on a Pentium IV (one of the worst floating point > performers), the sine function takes 130 - 190 cycles. Assuming worst case > (190) and 1GHz clock speed (I don't think Intel ever made a Pentium 4 this > slow > but I could be wrong) 100K sin() function call would take 19mS. I would think > it would take a really complex board to have 100,000 rotated (other than 0, > 90, > 180, and 270 degrees) items. > > Wayne
A quick update. There are already optimizations for 0, 90, 180, and 270 degrees by swapping and/or negating the appropriate coordinate. Unless you have a hand created object with an angle other than these, sin() and cos() are never called. Therefore, your performance change will be 0 under almost all circumstances. Wayne > > _______________________________________________ > Mailing list: https://launchpad.net/~kicad-developers > Post to : [email protected] > Unsubscribe : https://launchpad.net/~kicad-developers > More help : https://help.launchpad.net/ListHelp > _______________________________________________ Mailing list: https://launchpad.net/~kicad-developers Post to : [email protected] Unsubscribe : https://launchpad.net/~kicad-developers More help : https://help.launchpad.net/ListHelp

