scalanlp/breeze

Optionally Encode Dimension in Types

Open

#526 ouverte le 18 avr. 2016

Voir sur GitHub
 (16 commentaires) (0 réactions) (0 assignés)Scala (690 forks)batch import
help wantedproject

Métriques du dépôt

Stars
 (3 453 stars)
Métriques de merge PR
 (Aucune PR mergée en 30 j)

Description

One thing I found tedious is the runtime check the dimensionality match, for example, when writing a neural network, if you want to be safe, you need to check if the dimensionality of each layer matches, and when writing a single layer, you need to check if the multiple components of that layer have matching dimensions.

I am wondering if it's possible to encode the dimension in type so that such runtime check can be compiler time check? For example, I imagine it's possible to use Shapeless.Nat something like Matrix with D(_2, _3).

Perhaps this has been considered and deemed infeasible?

Guide contributeur