i defined :
type network = [(matrix double,vector double)]
where matrix , vector hmatrix library. documentation of hmatrix seems me matrix double , vector double instances of num. since need add , subtract networks quiet lot want network instance of num. tried
instance num network (+) = zipwith (\(m,v) (n,w) -> (m+n,v+w)) (-) = zipwith (\(m,v) (n,w) -> (m-n,v-w)) (*) = zipwith (\(m,v) (n,w) -> (m*n,v*w))
but getting error : illegal instance declaration.
alexis king's comment correct current code compile. however, might better practice make newtype
network
- way don't need use language extensions @ all.
newtype network = network [(matrix double,vector double)] instance num network (network n1) + (network n2) = network $ zipwith (\(m,v) (n,w) -> (m+n,v+w)) n1 n2 (network n1) - (network n2) = network $ zipwith (\(m,v) (n,w) -> (m-n,v-w)) n1 n2 (network n1) * (network n2) = network $ zipwith (\(m,v) (n,w) -> (m*n,v*w)) n1 n2
Comments
Post a Comment