scalanlp/breeze

Optionally Encode Dimension in Types

Open

#526 aperta il 18 apr 2016

Vedi su GitHub
 (16 commenti) (0 reazioni) (0 assegnatari)Scala (690 fork)batch import
help wantedproject

Metriche repository

Star
 (3453 star)
Metriche merge PR
 (Nessuna PR mergiata in 30 g)

Descrizione

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?

Guida contributor