## Changes Introduced in V4.2

The following describes the most significant changes which occurred in the AST library between versions V4.1 and V4.2:

1. The SideBandSideBand attribute of the DSBSpecFrameDSBSpecFrame class can now take the option “LO” in addition to “USB” and “LSB”. The new option causes the DSBSpecFrame to represent the offset from the local oscillator frequency, rather than either of the two sidebands.

2. The FitsChanFitsChan class has been changed so that it writes out a VELOSYS keyword when creating a FITS-WCS encoding (VELOSYS indicates the topocentric apparent velocity of the standard of rest). FitsChan also strips out VELOSYS keywords when reading a FrameSetFrameSet from a FITS-WCS encoding.

3. The FitsChan class has a new method called astRetainFitsastRetainFits that indicates that the current card in the FitsChan should not be stripped out of the FitsChan when an AST ObjectObject is read from the FitsChan. Unless this method is used, all cards that were involved in the creation of the AST Object will be stripped from the FitsChan afte a read operation.

4. A problem with unaligned memory access that could cause bus errors on Solaris has been fixed.

5. A new read-only attribute called ObjSizeObjSize has been added to the base Object ClassClass. This gives the number of bytes of memory occupied by the Object. Note, this is the size of the internal in-memory representation of the Object, not the size of the textual representation produced by writing the Object out through a ChannelChannel.

6. A new function astTuneastTune has been added which can be used to get and set global AST tuning parameters. At the moment there are only two such parameter, both of which are concerned with memory management within AST.

7. A new method called astTranGridastTranGrid has been added to the MappingMapping class. This method creates a regular grid of points covering a rectangular region within the input space of a Mapping, and then transforms this set of points into the output space of the Mapping, using a piecewise-continuous linear approximation to the Mapping if appropriate in order to achive higher speed.

8. A new subclass of Mapping has been added called SwitchMapSwitchMap. A SwitchMap represents several alternate Mappings, each of which is used to transforms input positions within a different region of the input coordinate space.

9. A new subclass of Mapping has been added called SelectorMapSelectorMap. A SelectorMap tests each input position to see if it falls within one of several Regions. If it does, the index of the RegionRegion containing the input position is returned as the Mapping output.

10. The behaviour of the astConvertastConvert method when trying to align a CmpFrameCmpFrame with another FrameFrame has been modified. If no conversion between positions in the Frame and CmpFrame can be found, an attempt is now made to find a conversion between the Frame and one of two component Frames contained within the CmpFrame. Thus is should now be possible to align a SkyFrameSkyFrame with a CmpFrame containing a SkyFrame and a SpecFrameSpecFrame (for instance). The returned Mapping produces bad values for the extra axes (i.e. for the SpecFrame axis in the above example).

11. The “ast_linkast_link_adamast_link_adam” and “ast_link” scripts now ignore the `-fsla` and `-csla` options, and always link against the minimal cut-down version of SLALIB distributed as part of AST.