Programming Languages where element-wise matrix notation is possible

This page summarizes the projects mentioned and recommended in the original post on /r/ProgrammingLanguages

Our great sponsors
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • WorkOS - The modern identity platform for B2B SaaS
  • SaaSHub - Software Alternatives and Reviews
  • Halide

    a language for fast, portable data-parallel computation

  • I'm late to comment, but Halide, a C++ DSL for fast numerical computations, uses element-wise notation:

  • TensorComprehensions

    Discontinued A domain specific language to express machine learning workloads.

  • Dex from DeepMind have it natively. TensorComprehensions is also cool.

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
  • TensorFlock

    A small functional tensor language with Einstein summation notation convention and shape-checking at compile-time.

  • I tried this a few years ago for a school project. It was he first language I ever designed and way too ambitious but here it is https://github.com/laurenarnett/TensorFlock

  • TensorOperations.jl

    Julia package for tensor contractions and related operations

  • There are some libraries and macros for Einstein notation and related ideas, like TensorOperations.jl in Julia, einsum in numpy which someone already mentioned, and some small-scale/research languages like Diderot and Egison. In the mainstream, I guess languages generally use for loops or list comprehensions and try to recover vectorisation from that after the fact, but don’t guarantee it. Those that do make guarantees tend to use combinators that are matrixwise/function-level. I admit I pretty much categorically prefer the latter so I’m not as aware of the state of this as I’d like to be able to help.

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts