internal static Tuple2 <Chromosome> CrossOverChromosomes(Chromosome a, Chromosome b) { Debug.Assert(a.NetworkType == b.NetworkType); Debug.Assert(a.OrderInMixture == b.OrderInMixture); Func <Gene, Gene, Tuple2 <Gene> > crossGenes = (x, y) => { Debug.Assert(x.Name == y.Name); return(QuqeUtil.WithProb(0.5) ? Tuple2.Create(x, y) : Tuple2.Create(y, x)); }; return(CrossOver(a.Genes, b.Genes, crossGenes, genes => new Chromosome(a.NetworkType, genes, a.OrderInMixture))); }
static Vec TrimToWindow(Vec outputs, Tuple2 <int> window) { return(outputs.SubVector(window.Item1, window.Item2 - window.Item1 + 1)); }
static Mat TrimToWindow(Mat inputs, Tuple2 <int> window) { return(inputs.Columns().Skip(window.Item1).Take(window.Item2 - window.Item1 + 1).ColumnsToMatrix()); }
public static DataSeries <Bar> TrimToWindow(DataSeries <Bar> bars, Tuple2 <int> window) { return(new DataSeries <Bar>(bars.Symbol, bars.Skip(window.Item1).Take(window.Item2 - window.Item1 + 1))); }