On 31 January 2012 02:30, Jens Kaiser <kai...@caltech.edu> wrote: > Hi all, > we encountered an odd behaviour of REINDEX. > > Snip form logfile: > > Data line--- reindex HKL (h+l)/2, -k, (h-l)/2 > Data line--- end > > Reflections will be reindexed, and unit cell recalculated > > Reindexing transformation: > (h' k' l') = ( h k l ) ( 1.00000 0.00000 1.00000 ) > ( 0.00000 -1.00000 0.00000 ) > ( 0.50000 0.00000 -0.50000 ) > > Obviously, the first line of the matrix is not what we intended to > create. > > inputting the transformation as HKL h/2+l/2, -k, h/2-l/2 > produces the desired result: > > Data line--- reindex HKL h/2+l/2, -k, h/2-l/2 > Data line--- end > > Reflections will be reindexed, and unit cell recalculated > > Reindexing transformation: > (h' k' l') = ( h k l ) ( 0.50000 0.00000 0.50000 ) > ( 0.00000 -1.00000 0.00000 ) > ( 0.50000 0.00000 -0.50000 ) > > > > Admittedly, the documentation does not use any brackets in the examples, > but i would expect REINDEX either to throw an error or treat (h+l)/2 > like (h-l)/2 but not treat them in the way encountered.
Jens Reindex is not treating (h+l)/2 any differently from (h-l)/2, they are being treated identically, i.e. it is simply ignoring the brackets in both cases (which is why expanding the expressions without brackets works).. So (h+l)/2 is being treated as though you had specified h+l/2 and (h-l)/2 becomes h-l/2. Don't forget that the rule for matrix multiplication is row-by-column, not row-by-row! Cheers -- Ian