Example #1
0
        public DynamicPredictionService(IObservable <TwoVariableInput> bdds, IObservable <IEnumerable <KeyValuePair <DateTime, double> > > s, IObservable <bool> bs, IObservable <Type> types, IScheduler scheduler)
        {
            var x = PredictionServiceHelper.GetCombinedObservable(bdds, s, bs, types, scheduler)
                    .DistinctUntilChanged()
                    .Select(_ => PredictionServiceHelper.GetDynamicOutput(_.Optimisation, _.Type, _.Filter, _.Measurements.ByTimeStamp().Publish(), scheduler)
                            .SubscribeOn(scheduler));

            Predictions = x.SelectMany(_ => _.Select(__ => __.Output));
            Solutions   = x.SelectMany(_s => _s.Select(_ => new Point3D(_.Parameters[0], _.Parameters[1], _.Score)));
        }
 public static IObservable <IO <IEnumerable <KeyValuePair <DateTime, Tuple <double, double>[]> > > > GetStaticOutput(bool optimise, Type type, TwoVariableInput filter, IEnumerable <KeyValuePair <DateTime, double> > measurements, IScheduler scheduler)
 {
     if (optimise)
     {
         //return Optimisation.Class1.GetOptimisedOutput(type, measurements).SubscribeOn(scheduler);
         return(Observable.Repeat(PredictionServiceHelper.GetNonOptimisedOutput(filter, measurements), 1).SubscribeOn(scheduler));
     }
     else
     {
         return(Observable.Repeat(PredictionServiceHelper.GetNonOptimisedOutput(filter, measurements), 1).SubscribeOn(scheduler));
     }
 }
        public static IObservable <IO <IObservable <KeyValuePair <DateTime, Tuple <double, double>[]> > > > GetDynamicOutput(bool optimise, Type type, TwoVariableInput filter, IConnectableObservable <KeyValuePair <DateTime, double> > measurements, IScheduler scheduler)
        {
            measurements.Connect();
            measurements.Subscribe(ddd =>
                                   Console.WriteLine(ddd.Key + " " + (DateTime.Now - ddd.Key).Seconds));

            if (optimise)
            {
                //    return Filter.Optimisation.Class1.GetOptimisedOutput(measurements);
                return(Observable.Repeat(PredictionServiceHelper.GetNonOptimisedOutput(filter, measurements), 1).SubscribeOn(scheduler));
            }
            else
            {
                return(Observable.Repeat(PredictionServiceHelper.GetNonOptimisedOutput(filter, measurements), 1).SubscribeOn(scheduler));
            }
        }