VaxData.jl is a direct port to Julia from libvaxdata 1. See this report for an in-depth review of the underlying structure and differences between VAX data types and IEEE types.
There are 5 Vax datatypes implemented by this package: VaxInt16
, VaxInt32
, VaxFloatF
,
VaxFloatG
, and VaxFloatD
.
julia> one(VaxFloatF)
vaxf"1.0"
julia> -one(VaxFloatF)
vaxf"-1.0"
julia> vaxg"3.14159265358979323846264338327950"
vaxg"3.1415926535897931"
julia> vaxd"3.14159265358979323846264338327950"
vaxd"3.14159265358979323"
Conversion to and from each type is defined; Vax types are promoted to the next appropriately sized type supporting math operations:
promote_type(VaxFloatF, Float32)
Float32
promote_type(VaxFloatF, VaxFloatF)
Float32
promote_type(VaxFloatF, Float64)
Float64
Footnotes
-
Baker, L.M., 2005, libvaxdata: VAX Data Format Conversion Routines: U.S. Geological Survey Open-File Report 2005-1424 (https://pubs.usgs.gov/of/2005/1424/). ↩