2 Introduction to the facilities provided by the IRQ library

IRQ provides a system for handling Boolean qualities (i.e. qualities that are either held or not held by each DATA pixel). From the point of view of an application, each defined quality is identified by a quality name rather than by a bit number. Information about these quality names is stored in an NDF extension, so that later applications can determine which pixels within the NDF hold a given quality (or combination of qualities).

Within IRQ, each defined quality name is usually associated with a bit in the QUALITY array, and this bit is set if the corresponding DATA pixels are assigned the specified quality. A typical application need know nothing about which QUALITY bit is associated with which quality name. For instance, if every pixel in an NDF holds a certain quality (or alternatively, if no pixels hold the quality), then it is not necessary to reserve a bit in the QUALITY array to represent the quality. Instead, a single Boolean scalar value can be stored with the quality name in the NDF extension. This scalar is set to .TRUE. if all pixels hold the quality, and .FALSE. if no pixels hold the quality. In this way, the number of defined quality names can sometimes exceed the number of bits in the QUALITY component. The handling of such situations is done within IRQ and is completely invisible to the calling application.

IRQ provides the following facilities.