juan_gandhi: (Default)
def matrix(h: VectorSpace, w: VectorSpace, values: Double*): Matrix[w.type, h.type] = {
val m = Matrix(w, h)
for {
i <- 0 until h.dim
j <- 0 until w.dim
} m(i, j) = values(i*w.dim+j)

m
}
The method is in a test, generates matrix from values.



juan_gandhi: (Default)
Ну да, я пишу на скале. Но мечтал впендюрить в тип вектора его размер (размерность, по-нашему). Ну скала, не идрис же. Типы-то независимые.

Ан нет, это скала! Впендюрил. Всандалил класс VectorSpace (is it better if I call it LinearSpace? who fucking cares...); и в нем уже вектор. Проверять совместимость при сложении не надо, ну и все такое. К матрице присобачил два свойства - домен (одно пространство) и кодомен (другое пространство). И все заебись! Беру row - оно уже нужного типа и нужной длины, по дефолту, блин! Типы стали зависимы.

А если я так напишу class NormedLinearSpace extends VectorSpace with Norm (норма - у меня уже есть такой класс).

Классно же, а. Кстати, и вопросы перформенса легче решаются. Что-то у меня тайпклассы не пошли в этот раз.

juan_gandhi: (Default)
...for running linear algebra stuff on gpu?

github.com/deeplearning4j/nd4j - for Java
github.com/deeplearning4j/nd4s - for Scala

Judging by the title, got a feeling that yes.

Profile

juan_gandhi: (Default)
juan_gandhi

July 2017

S M T W T F S
       1
2 3 4 5 67 8
9 10 11 1213 14 15
16 17 18 19 20 21 22
23 242526272829
3031     

Syndicate

RSS Atom

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jul. 24th, 2017 08:35 pm
Powered by Dreamwidth Studios