Package-level declarations

Types

Link copied to clipboard

A_Number is an interface that specifies the number-specific operations that an AvailObject must implement. It's a sub-interface of A_BasicObject, the interface that defines the behavior that all AvailObjects are required to support.

Link copied to clipboard

The abstract class AbstractNumberDescriptor serves as an abstraction for numeric objects. It currently includes the subclasses ExtendedIntegerDescriptor, FloatDescriptor, and DoubleDescriptor.

Link copied to clipboard

A boxed, identityless Avail representation of IEEE-754 double-precision floating point values.

Link copied to clipboard

The abstract class ExtendedIntegerDescriptor represents instances that are extended integers. That includes all integers and positive and negative infinity.

Link copied to clipboard

A boxed, identityless Avail representation of IEEE-754 floating point values.

Link copied to clipboard

I represent the extended integers positive infinity and negative infinity. By supporting these as first-class values in Avail we eliminate arbitrary limits, awkward duplication of effort, and a host of other dangling singularities. For example, it makes sense to talk about iterating from 1 to infinity. Infinities also play a key role in integer range types, specifically by their appearance as inclusive or exclusive bounds.

Link copied to clipboard

An Avail integer is represented by a little endian series of Int slots. The slots are really treated as unsigned, except for the final slot which is considered signed. The high bit of the final slot (i.e., its sign bit) is the sign bit of the entire object.