Skip to content

Quafadas/vecxt

Repository files navigation

vecxt

Making cross platform, compute intense vector problems less... vexing.

What is it?

Aims to provide convienent and intuitive syntax for vector computations, whilst guaranteeing best-in-class performance on all platforms.

JVM JS Native
Data structure Array[Double] Float64Array Array[Double]
Shims to https://github.com/luhenry/netlib https://github.com/stdlib-js/blas CBLAS

Didn't you say "cross platform"?

https://github.com/dragonfly-ai/narr

Surprise! Add that dependancy, express your computation in NArray and get best-in-class, native performance (no runtime overhead) on all platforms.

Note: Narr is not distributed "out the box", but it is recommended for anything cross platform.

Syntax

Supported operationsa re currently very basic, but we share a single test suite across all platforms, e.g.

  val v1 = NArray[Double](1.0, 2.0, 3.0)
  val v2 = NArray[Double](3.0, 2.0, 1.0)

  val v3 = v1 + v2

  assertEqualsDouble(v3(0), 4, 0.00001)
  assertEqualsDouble(v3(1), 4, 0.00001)
  assertEqualsDouble(v3(2), 4, 0.00001)

Why?

Not?