Issue I522 [defect,gem/prog/core,resolved] Small defects in 90 degree rotations (GEM files and rotation functions) Small numerical defects may be observed in various locations in SIMION dealing with rotations by multiples of 90 degrees. For example, in the following GEM file, there is not complete planar symmetry along the cylinder axis: pa_define(21,51,21,p,n,electrostatic) electrode(2) { fill{ locate(0,0,0,1,0,0,-90) { within_inside_or_on{cylinder(10,-10,80,2,2,100)} } } } Here's another example where this effect is more prevalent: pa_define(51,51,51,p,n,electrostatic) electrode(2) { fill{ locate(0,0,0,1,0,0,-90) { # for x=0,50,10 do # for y=0,50,10 do within_inside_or_on{cylinder($(x),$(-y),80,2,2,100)} # end end } } } The problem tends to occur when you have a rotation that is a multiple of 90 degrees (excluding zero), as in the above examples. It also affects API functions like azimuth_rotate, elevation_rotate, polar3d_to_rect3d, and polar_to_rect. The problem is due to small defects in the rotation matrix, which in turn result from numerical approximations in the underlying trigonometry functions (e.g. `math.cos(math.pi/2) --> 6.1232339957368e-17`). These occur in certain Intel CPU instructions and certain math libraries. (e.g. you see the same thing in Excel when evaluating `=COS(PI()/2)`). The problem is eliminated in 8.1.0-TEST5 (and 8.0.7-TEST5) by forcing rotation operations by multiples of 90 degrees in range -360 to 360 degrees to be exact. However, other such numerical round-off issues may still remain. Note: the underlying math.sin and math.cos functions (which are in radian not degrees) do not have this correction. Reported by bigtailwolf-20090216: http://www.simion.com/discuss/viewtopic?p=2860 bud-20110723: http://simion.com/discuss/topic/1135-bug-with-anisotropic-scaling/ Affects 7.0.0-8.0.6 and above. Resolved in 8.1.0-TEST5 (and 8.0.7-TEST5).