## Changes Introduced in V5.3-1

The following describes the most significant changes which have occurred in the AST library between versions V5.3 and V5.3-1:

1. The utility functions provided by the AST memory management layer are now documented in an appendix.

2. The KeyMapKeyMap class now supports entries that have undefined values. A new method called astMapPutUastMapPutU will store an entry with undefined value in a keymap. Methods that retrieve values from a KeyMap (astMapGet0<X>, etc.) ignore entries with undefined values when searching for an entry with a given key.

3. The KeyMap class has a new method called astMapCopyastMapCopy that copies entries from one KeyMap to another KeyMap.

4. The KeyMap class has a new boolean attribute called MapLockedMapLocked. If non-zero, an error is reported if an attempt is made to add any new entries to a KeyMap (the value associated with any old entry may still be changed without error). The default is zero.

5. The ObjectObject class has a new method called astHasAttributeastHasAttribute/AST_HASATTRIBUTE that returns a boolean value indicating if a specified Object has a named attribute.

6. The SkyFrameSkyFrame class has two new read-only boolean attributes called IsLatAxis and IsLonAxis that can be used to determine the nature of a specified SkyFrame axis.

7. A bug has been fixed in the astRebin(Seq) methods that could cause flux to be lost from the edges of the supplied array.

8. A bug has been fixed in the astRebin(Seq) methods that caused the first user supplied parameter to be interpreted as the full width of the spreading kernel, rather than the half-width.

9. The StcsChanStcsChan class now ignores case when reading STC-S phrases (except that units strings are still case sensitive).

10. A new MappingMapping method, astQuadApproxastQuadApprox, produces a quadratic least-squares fit to a 2D Mapping.

11. A new Mapping method, astSkyOffsetMapastSkyOffsetMap, produces a Mapping from absolute SkyFrame coordinates to offset SkyFrame coordinates.

12. The ChannelChannel class now has an IndentIndent attribute that controls indentation in the text created by astWriteastWrite. The StcsIndent and XmlIndent attributes have been removed.

13. All classes of Channel now use the string “<bad>” to represent the floating point value AST__BAD, rather than the literal formatted value (typically “-1.79769313486232e+308” ).

14. The KeyMap class now uses the string “<bad>” to represent the floating point value AST__BAD, rather than the literal formatted value (typically “-1.79769313486232e+308” ).

15. The KeyMap class has a new method called astMapPutElem<X> that allows a value to be put into a single element of a vector entry in a KeyMap. The vector entry is extended automatically to hold the new element if required.

16. The DSBSpecFrameDSBSpecFrame class now reports an error if the local oscillator frequency is less than the absoliute value of the intermediate frequency.