Museum

Home

Lab Overview

Retrotechnology Articles

⇒ Online Manual

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

math-intro(2)

MATH-EXPORT(2)

NAME

Math: export_int, export_real, export_real32, import_int, import_real, import_real32 − conversion to and from external representation

SYNOPSIS

include "math.m"; math := load Math Math->PATH;
 
export_int:    fn(b: array of byte, x: array of int); export_real32: fn(b: array of byte, x: array of real); export_real:   fn(b: array of byte, x: array of real);
 
import_int:    fn(b: array of byte, x: array of int); import_real32: fn(b: array of byte, x: array of real); import_real:   fn(b: array of byte, x: array of real);

DESCRIPTION

These routines convert between Limbo’s internal representation of integer and floating-point values, and equivalent external representations as arrays of bytes, allowing efficient input/output of binary representations. 

Export_int(b, x) converts each integer element of array x into a sequence of 4 bytes in array b.

Export_real(b, x) converts each double-precision floating-point element of array x into a sequence of 8 bytes in array b.

Export_real32(b, x) converts each double-precision floating-point element of array x to a single-precision value, then encodes it as a sequence of 4 bytes in array b.

Each import_T operation reverses the transformation of the corresponding export_T operation, converting an array of bytes containing a sequence of external representations into an array of values of the appropriate internal form. 

Values are encoded in big-endian order (most significant byte first), with floating-point values represented in IEEE 32-bit or 64-bit form (again, most significant byte first). 

SOURCE

/libinterp/math.c

SEE ALSO

math-intro(2)

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026