scalanlp/breeze

Optionally Encode Dimension in Types

Open

#526 aberto em 18 de abr. de 2016

Ver no GitHub
 (16 comments) (0 reactions) (0 assignees)Scala (690 forks)batch import
help wantedproject

Métricas do repositório

Stars
 (3.453 stars)
Métricas de merge de PR
 (Nenhuma PRs mesclada em 30d)

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?

Guia do colaborador