module HLearn.Algebra.Models.CoHomTrainer
where
import Control.Monad
import Control.Monad.Random
import HLearn.Algebra.Models.HomTrainer
import HLearn.Algebra.Structures.Groups
class CoHomTrainer model where
type CoDatapoint model
cotrain1dp :: model -> Rand g (CoDatapoint model)
cotrain1dp model = fmap fst (coadd1dp model)
cotrain :: model -> Rand g ([CoDatapoint model])
cotrain = sequence . repeat . cotrain1dp
coadd1dp :: model -> Rand g ((CoDatapoint model, model))
coaddBatch :: model -> Rand g ([(CoDatapoint model, model)])
coaddBatch = sequence . repeat . coadd1dp