All examples
Scientific computing

Unit bearing array basics

Keep one physical unit per native buffer and calculate checked temperature differences, distance statistics and speed arrays.

unit_arrays_basic.aner
// Packed native unit arrays; requires the updated Aner development runtime.
// Complete synthetic inputs. No network, credentials or external data.
import aner.units

let lengths: Array<Quantity<m>> = Array<Quantity<m>>(size: 3, fill: 0.0@m)
lengths[0] = 1.0@m
lengths[1] = (200.0@cm).to("m")
lengths[2] = 3.0@m
print(type(lengths))
print(dtype(lengths))
print(lengths.unit())
print(lengths.mean())
print(lengths.sum())
print(lengths.cumsum().get(2))
print(lengths.to("cm").get(0))

let independent = lengths.to("m")
independent[0] = 99.0@m
print(lengths.get(0) == 1.0@m)
let raw = lengths.values()
raw[0] = -99.0
print(type(raw))
print(lengths.get(0) == 1.0@m)

let readings: DynamicArray<Point<degC>> = DynamicArray<Point<degC>>(capacity: 3)
readings.append(20.0@degC)
readings.append(22.0@degC)
readings.append(24.0@degC)
print(readings.mean())
print(readings.std().unit())
let reference = DynamicArray<Point<degC>>(capacity: 3)
reference.resize(size: 3, fill: 20.0@degC)
let changes = readings.sub(reference)
print(type(changes))
print(changes.get(2))

let distances = NDArray<Quantity<m>>(shape: List(2, 2), fill: 6.0@m)
let times = NDArray<Quantity<s>>(shape: List(1, 2), fill: 2.0@s)
let speeds: NDArray<Quantity<"m/s">> = distances.div(times)
print(type(speeds))
print(speeds.shape())
print(speeds[1, 1])

Make it your experiment.

With Aner installed, save this program as examples/unit_arrays_basic.aner inside a folder for your experiment. Open a terminal in that folder, then check and run the program.

Terminal
aner check examples/unit_arrays_basic.aner
aner run examples/unit_arrays_basic.aner

The aner command must be on your PATH. Follow the installation guide if your terminal cannot find it.

Use the updated native Aner development runtime with aner.units, checked Quantity and Point types, unit literals and unit bearing arrays. Older packaged executables may predate these features. These complete examples run locally, contain their input fixtures and need no external service or credentials.

Bundled datasets retain their own source attribution and license notices. Example outcomes are not comparative benchmarks or evidence of clinical validity.

Dataset sources & attribution
Install Aner