rotate45 is a rarely used transform filter corresponding to the rotation by a multiple of 45°. The set of all 8 such multiples is called C8 and is discussed more explicitly here.

rotate45 is invoked with a single argument filter:

 rotate45 F

This constructs all 8 of the rotations of F by multiples of 45° The rotate45 filter matches if any of these 8 transforms match.

Any square designator within F must represent all 64 squares, and is unchanged by 45° rotation. The only effect of such rotation is to modify directions filters and keywords. For example,

rotate45 ray up (R k)

matches a position if and only if one of the eight rotations of the filter matches, that is, one for each of the compass directions:

  ray up (R k)
  ray northwest (R k)  
  ray left (R k)
  ray southwest (R k)
  ray down (R k)
  ray southeast (R k)
  ray right (R k)
  ray northeast (R k)

Thus, rotate45 ray up (R k) matches if and only if

   ray (R k)

rotate45 follows the conventions of the other transform filters in having a set value if its argument does; having a numeric value if its argument does; and accepting the count parameter.


rotate45 is used in Qq-rotations.cql to find games in which all possible orientations of the configuration of a black and white queen separated by a single piece appear.