private static void OneShotPlayMode(string libraryName, string text, EngineParameters ep) { var engines = SpeechController.GetAllSpeechEngine(); var engine = SpeechController.GetInstance(libraryName); if (engine == null) { Console.WriteLine($"{libraryName} を起動できませんでした。"); return; } engine.Activate(); engine.Finished += (s, a) => { engine.Dispose(); }; if (ep.Volume > 0) { engine.SetVolume(ep.Volume); } if (ep.Speed > 0) { engine.SetSpeed(ep.Speed); } if (ep.Pitch > 0) { engine.SetPitch(ep.Pitch); } if (ep.PitchRange > 0) { engine.SetPitchRange(ep.PitchRange); } engine.Play(text); }
internal static void TestAudio(string data, EngineParameters engine) { Match matchMetaAudio = Index[Find.MetaAudio].Match(data); if (!matchMetaAudio.Success) { return; } string fullMetadata = matchMetaAudio.Groups[1].ToString(); GroupCollection matchAudioFormatHzChannel = Index[Find.AudioFormatHzChannel].Match(fullMetadata).Groups; GroupCollection matchAudioBitRate = Index[Find.BitRate].Match(fullMetadata).Groups; if (engine.InputFile.Metadata == null) { engine.InputFile.Metadata = new Metadata(); } if (engine.InputFile.Metadata.AudioData == null) { engine.InputFile.Metadata.AudioData = new Metadata.Audio { Format = matchAudioFormatHzChannel[1].ToString(), SampleRate = matchAudioFormatHzChannel[2].ToString(), ChannelOutput = matchAudioFormatHzChannel[3].ToString(), BitRateKbs = !(matchAudioBitRate[1].ToString().IsNullOrWhiteSpace()) ? Convert.ToInt32(matchAudioBitRate[1].ToString()) : 0 } } ; }
internal static void TestVideo(string data, EngineParameters engine) { Match matchMetaVideo = Index[Find.MetaVideo].Match(data); if (!matchMetaVideo.Success) { return; } string fullMetadata = matchMetaVideo.Groups[1].ToString(); GroupCollection matchVideoFormatColorSize = Index[Find.VideoFormatColorSize].Match(fullMetadata).Groups; GroupCollection matchVideoFps = Index[Find.VideoFps].Match(fullMetadata).Groups; Match matchVideoBitRate = Index[Find.BitRate].Match(fullMetadata); if (engine.InputFile.Metadata == null) { engine.InputFile.Metadata = new Metadata(); } if (engine.InputFile.Metadata.VideoData == null) { engine.InputFile.Metadata.VideoData = new Metadata.Video { Format = matchVideoFormatColorSize[1].ToString(), ColorModel = matchVideoFormatColorSize[2].ToString(), FrameSize = matchVideoFormatColorSize[3].ToString(), Fps = matchVideoFps[1].Success && !string.IsNullOrEmpty(matchVideoFps[1].ToString()) ? Convert.ToDouble(matchVideoFps[1].ToString(), new CultureInfo("en-US")) : 0, BitRateKbs = matchVideoBitRate.Success ? (int?)Convert.ToInt32(matchVideoBitRate.Groups[1].ToString()) : null }; } }
public TranscodingActor( Guid transcodingId, MediaFile input, MediaFile output, ConversionOptions options, string ffmpegPath = @"C:\Workspace\FFMPEG\bin\ffmpeg.exe") { TranscodingId = transcodingId; Input = input; Output = output; ConversionOptions = options; _ffmpegPath = ffmpegPath; _logger = Context.GetLogger(); ReceivedMessagesLog = new List <string>(); Exceptions = new List <Exception>(); Status = Status.NotStarted; EngineParameters = new EngineParameters { InputFile = Input, OutputFile = Output, ConversionOptions = ConversionOptions, Task = FFmpegTask.Convert }; Receive <Start>(Handle); }
public Engine(EngineParameters parameters) : base(parameters.Weight, parameters.Volume, ItemClass.Engine, ItemType.Engine) { ThrustForceMultiplier = parameters.ThrustForceMultiplier; TurnForceMultiplier = parameters.TurnForceMultiplier; MaximumSpeed = parameters.MaximumSpeed; ThrustEnergy = parameters.ThrustEnergy; }
public void InitializeEngine() { Directory.CreateDirectory($"{Environment.CurrentDirectory}/Object"); Directory.CreateDirectory($"{Environment.CurrentDirectory}/Animation"); Directory.CreateDirectory($"{Environment.CurrentDirectory}/Project"); Directory.CreateDirectory($"{Environment.CurrentDirectory}/Export"); var engineParameters = new EngineParameters { Handle = PictureAnimation.Handle, Width = PictureAnimation.Width, Height = PictureAnimation.Height }; var fontParameters = new EngineFontParameters { Name = "Tahoma", Size = 9f, Style = FontStyle.Regular }; engine = new EngineCore(engineParameters, fontParameters); UpdateClipArea(); AddLanguages(); }
private void StartProcess(EngineParameters engineParameters) { var processStartInfo = engineParameters.HasCustomArguments ? this.GenerateStartInfo(engineParameters.CustomArguments) : this.GenerateStartInfo(engineParameters); RunProcess(processStartInfo); }
public void Should_Generate_GifConfig(string inputPath, string outputDirectory) { var options = EngineParameters.GIF(new MediaFile(inputPath), new MediaFile(outputDirectory), GifGenerationOptions.Default()); using (var engine = new MediaEngine(FFMPEG)) { engine.GenerateGIF(options); } }
private static void GIF(MediaEngine engine) { var param = EngineParameters.GIF( new MediaFile(@"D:\1.mp4"), new MediaFile($@"d:\\{Guid.NewGuid()}.gif"), GifGenerationOptions.Default()); var result = CommandBuilder.GetGIF(param); Console.WriteLine(result); engine.GenerateGIF(param); }
public void Should_Create_Default_HLS() { var parameters = new EngineParameters() { HLSOptions = new HLSGeneratingOptions(@"D:\test\", "360p_%03d.ts", "360p.m3u8"), InputFile = new MediaFile(@"E:\World_s_Most_Breathtaking_Piano_Pieces_Contemporary_Music_Mix_Vol._1.135.mp4"), Task = FFmpegTask.GenerateHLS }; var result = CommandBuilder.GetHLS(parameters); }
public IEngine CreateReadyToRun(EngineParameters engineParameters) { var engine = new CustomEngine { GlobalCleanupAction = engineParameters.GlobalCleanupAction, GlobalSetupAction = engineParameters.GlobalSetupAction }; engine.GlobalSetupAction?.Invoke(); // engine factory is now supposed to create an engine which is ready to run (hence the method name change) return(engine); }
static void Main() { Application.EnableVisualStyles(); using (Form form = new Form()) using (CheckBox myCheckbox = new CheckBox()) { EngineParameters myEngineParameters = new EngineParameters(); myEngineParameters.AvoidWeekends = true; form.Controls.Add(myCheckbox); myCheckbox.DataBindings.Add("Checked", myEngineParameters, "AvoidWeekends", false, DataSourceUpdateMode.OnPropertyChanged); Application.Run(form); } }
private static void HLS(MediaEngine engine, VideoQualities quality, string inputFile, string outputDirectory) { VideoResolutionsAttribute GetResolutionInfo(Enum value) { var filedInfo = value.GetType().GetField(value.ToString()); var attrs = (VideoResolutionsAttribute[])filedInfo .GetCustomAttributes(typeof(VideoResolutionsAttribute), false); return(attrs[0]); } var profile = GetResolutionInfo(quality); var hls = new HLSGeneratingOptions(outputDirectory, new FilterConfig { Height = profile.Height, Width = profile.Width, ForceOriginalRatio = ForceOriginalAspectRatio.Increase }) { BitRateOptions = new BitRateOptions { Audio = new BitRateOptions.AudioBitrate { Value = profile.Aduio_BitRateK * 1000 }, Video = new BitRateOptions.VideoBitrate { Value = profile.BitRate_HighMotionK * 1000, Max = profile.MaxRateK * 1000, BufferSize = profile.BufferSizeK * 1000 } } }; var parameters = new EngineParameters { HLSOptions = hls, InputFile = new MediaFile(inputFile), Task = FFmpegTask.GenerateHLS }; engine.GenerateHLS(parameters); }
public Task Gif(string inputFile, string outputFile, GifGenerationOptions options = null) { Guard.NotNullOrEmpty(inputFile, nameof(inputFile)); Guard.NotNullOrEmpty(outputFile, nameof(outputFile)); var outputDirectory = Path.GetDirectoryName(outputFile); if (!Directory.Exists(outputDirectory)) { Directory.CreateDirectory(outputDirectory); } var param = EngineParameters.GIF( new MediaFile(inputFile), new MediaFile(outputFile), options ?? GifGenerationOptions.Default()); return(Task.Run(() => _engine.GenerateGIF(param))); }
void InitializeServices() { _services = new Dictionary <string, BaseService>(); EngineParameters parameters = new EngineParameters(); parameters.Logger = _logger; _deviceService = new DeviceService(); _deviceService.AttachLogger(_logger); _services.Add(Common.Definitions.OnvifService.DEVICE, _deviceService); _doorControlService = new DoorControlService(); _doorControlService.AttachLogger(_logger); _services.Add(Common.Definitions.OnvifService.DOORCONTROL, _doorControlService); _accessControlService = new AccessControlService(); _accessControlService.AttachLogger(_logger); _services.Add(Common.Definitions.OnvifService.ACCESSCONTROL, _accessControlService); }
public TranscodingActor( Guid transcodingId, MediaFile input, MediaFile output, ConversionOptions options, string ffmpegPath) { TranscodingId = transcodingId; Input = input; Output = output; ConversionOptions = options; _ffmpegPath = ffmpegPath; _logger = Context.GetLogger(); ReceivedMessagesLog = new List <string>(); Exceptions = new List <Exception>(); Status = Status.NotStarted; EngineParameters = new EngineParameters(ConversionOptions, Input, Output, FFmpegTask.TranscodeAudio); Receive <Start>(Handle); }
public static EngineDevice CreateDevice(EngineParameters.DRIVERTYPE driverType, Form mainForm, int width, int height, int bits, bool isFullscreen) { switch (driverType) { case EngineParameters.DRIVERTYPE.OPENGL: { OpenGLDriver openGl = new OpenGLDriver(); if (openGl.Setup(mainForm, width, height, bits, isFullscreen)) { EngineDevice ed = new EngineDevice(); ed.SetVideoDriver(openGl); return ed; } } break; case EngineParameters.DRIVERTYPE.DIRECT3D9: break; case EngineParameters.DRIVERTYPE.DIRECT3D10: break; } return null; }
internal static void TestAudio(string data, EngineParameters engine) { Match matchMetaAudio = Index[Find.MetaAudio].Match(data); if (!matchMetaAudio.Success) return; string fullMetadata = matchMetaAudio.Groups[1].ToString(); GroupCollection matchAudioFormatHzChannel = Index[Find.AudioFormatHzChannel].Match(fullMetadata).Groups; GroupCollection matchAudioBitRate = Index[Find.BitRate].Match(fullMetadata).Groups; if (engine.InputFile.Metadata == null) engine.InputFile.Metadata = new Metadata(); if (engine.InputFile.Metadata.AudioData == null) engine.InputFile.Metadata.AudioData = new Metadata.Audio { Format = matchAudioFormatHzChannel[1].ToString(), SampleRate = matchAudioFormatHzChannel[2].ToString(), ChannelOutput = matchAudioFormatHzChannel[3].ToString(), BitRateKbs = !String.IsNullOrWhiteSpace(matchAudioBitRate[1].ToString()) ? Convert.ToInt32(matchAudioBitRate[1].ToString()) : 0 }; }
internal static void TestVideo(string data, EngineParameters engine) { Match matchMetaVideo = Index[Find.MetaVideo].Match(data); if (!matchMetaVideo.Success) return; string fullMetadata = matchMetaVideo.Groups[1].ToString(); GroupCollection matchVideoFormatColorSize = Index[Find.VideoFormatColorSize].Match(fullMetadata).Groups; GroupCollection matchVideoFps = Index[Find.VideoFps].Match(fullMetadata).Groups; Match matchVideoBitRate = Index[Find.BitRate].Match(fullMetadata); if (engine.InputFile.Metadata == null) engine.InputFile.Metadata = new Metadata(); if (engine.InputFile.Metadata.VideoData == null) engine.InputFile.Metadata.VideoData = new Metadata.Video { Format = matchVideoFormatColorSize[1].ToString(), ColorModel = matchVideoFormatColorSize[2].ToString(), FrameSize = matchVideoFormatColorSize[3].ToString(), Fps = matchVideoFps[1].Success && !string.IsNullOrEmpty(matchVideoFps[1].ToString()) ? Convert.ToDouble(matchVideoFps[1].ToString(), new CultureInfo("en-US")) : 0, BitRateKbs = matchVideoBitRate.Success ? (int?) Convert.ToInt32(matchVideoBitRate.Groups[1].ToString()) : null }; }
public static void RunCore(IHostApi hostApi, Benchmark benchmark, BenchmarkActionCodegen codegenMode) { var target = benchmark.Target; var job = benchmark.Job; // TODO: filter job (same as SourceCodePresenter does)? var unrollFactor = benchmark.Job.ResolveValue(RunMode.UnrollFactorCharacteristic, EnvResolver.Instance); // var dummyUnrollFactor = 1 << 6; // TODO: as arg to CreateDummy()? // DONTTOUCH: these should be allocated together var instance = Activator.CreateInstance(benchmark.Target.Type); var mainAction = BenchmarkActionFactory.CreateRun(target, instance, codegenMode, unrollFactor); var idleAction = BenchmarkActionFactory.CreateIdle(target, instance, codegenMode, unrollFactor); var setupAction = BenchmarkActionFactory.CreateSetup(target, instance); var cleanupAction = BenchmarkActionFactory.CreateCleanup(target, instance); var dummy1 = BenchmarkActionFactory.CreateDummy(); var dummy2 = BenchmarkActionFactory.CreateDummy(); var dummy3 = BenchmarkActionFactory.CreateDummy(); FillProperties(instance, benchmark); hostApi.WriteLine(); foreach (var infoLine in BenchmarkEnvironmentInfo.GetCurrent().ToFormattedString()) { hostApi.WriteLine("// {0}", infoLine); } hostApi.WriteLine("// Job: {0}", job.DisplayInfo); hostApi.WriteLine(); var engineParameters = new EngineParameters { //HostApi = hostApi, IsDiagnoserAttached = hostApi.IsDiagnoserAttached, MainAction = mainAction.InvokeMultiple, Dummy1Action = dummy1.InvokeSingle, Dummy2Action = dummy2.InvokeSingle, Dummy3Action = dummy3.InvokeSingle, IdleAction = idleAction.InvokeMultiple, SetupAction = setupAction.InvokeSingle, CleanupAction = cleanupAction.InvokeSingle, TargetJob = job, OperationsPerInvoke = target.OperationsPerInvoke }; var engine = job .ResolveValue(InfrastructureMode.EngineFactoryCharacteristic, InfrastructureResolver.Instance) .Create(engineParameters); engine.PreAllocate(); setupAction.InvokeSingle(); if (job.ResolveValue(RunMode.RunStrategyCharacteristic, EngineResolver.Instance) != RunStrategy.ColdStart) { engine.Jitting(); // does first call to main action, must be executed after setup()! } if (hostApi.IsDiagnoserAttached) { hostApi.AfterSetup(); } var results = engine.Run(); if (hostApi.IsDiagnoserAttached) { hostApi.BeforeCleanup(); } cleanupAction.InvokeSingle(); hostApi.Print(results); // printing costs memory, do this after runs }
static void Main(string[] args) { // インストール済み音声合成ライブラリの列挙 var names = GetLibraryName(); Console.WriteLine("インストール済み音声合成ライブラリ"); Console.WriteLine("-----"); foreach (var s in names) { Console.WriteLine(s); } Console.WriteLine("-----"); // 接続先スピーカーの列挙 Console.WriteLine("接続先スピーカー"); Console.WriteLine("-----"); devices = new CoreAudioController().GetPlaybackDevices(); string speaker = (devices.ToArray())[0].FullName; foreach (var d in devices) { Console.WriteLine($"{d.FullName}"); } Console.WriteLine("-----"); // 待ち受けIPアドレス Console.WriteLine("接続先"); Console.WriteLine("-----"); string hostname = Dns.GetHostName(); IPAddress[] adrList = Dns.GetHostAddresses(hostname); foreach (IPAddress address in adrList) { if (address.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork) { // IPv4 Console.WriteLine($"http://{address.ToString()}:{port}"); } } Console.WriteLine($"待機中..."); var defaultName = names[0]; HttpListener listener = new HttpListener(); listener.Prefixes.Add($"http://*:{port}/"); listener.Start(); while (true) { HttpListenerResponse response = null; try { HttpListenerContext context = listener.GetContext(); HttpListenerRequest request = context.Request; response = context.Response; if (context.Request.Url.AbsoluteUri.EndsWith("favicon.ico")) { // favicon は無視 response.StatusCode = 404; continue; } else if (context.Request.Url.AbsoluteUri.IndexOf("?") < 0 && context.Request.Url.LocalPath != "/") { string path = "html" + context.Request.Url.LocalPath; // ? が含まれない場合は /html 以下をレスポンスとして返す byte[] body = File.ReadAllBytes(path); response.StatusCode = 200; if (path.EndsWith(".html")) { response.ContentType = "text/html; charset=utf-8"; } response.OutputStream.Write(body, 0, body.Length); continue; } var queryString = HttpUtility.ParseQueryString(context.Request.Url.Query); EngineParameters ep = new EngineParameters(); string voiceText = DateTime.Now.ToString("HH時 mm分 ss秒です"); string voiceName = defaultName; if (queryString["text"] != null) { voiceText = queryString["text"]; voiceText = voiceText.Replace("{time}", DateTime.Now.ToString("HH時 mm分 ss秒")); } if (queryString["name"] != null) { voiceName = queryString["name"]; } string location = ""; if (queryString["speaker"] != null) { speaker = queryString["speaker"]; ChangeSpeaker(speaker); location = $"@{speaker}"; } if (queryString["pitch"] != null) { ep.Pitch = Convert.ToSingle(queryString["pitch"]); } if (queryString["range"] != null) { ep.PitchRange = Convert.ToSingle(queryString["range"]); } if (queryString["volume"] != null) { ep.Volume = Convert.ToSingle(queryString["volume"]); } if (queryString["speed"] != null) { ep.Speed = Convert.ToSingle(queryString["speed"]); } Console.WriteLine("=> " + context.Request.RemoteEndPoint.Address); Console.WriteLine($"<= [{voiceName}{location}] {voiceText}"); response.StatusCode = 200; response.ContentType = "text/plain; charset=utf-8"; byte[] content = Encoding.UTF8.GetBytes(voiceText); response.OutputStream.Write(content, 0, content.Length); OneShotPlayMode(voiceName, voiceText, ep); } catch (Exception ex) { Console.WriteLine("Error: " + ex.Message); } finally { response.Close(); } } }
private ProcessStartInfo GenerateStartInfo(EngineParameters engineParameters) { var arguments = CommandBuilder.Serialize(engineParameters); return(GenerateStartInfo(arguments)); }
public static extern void NewtonVehicleSetEngineParams(IntPtr vehicle, EngineParameters engineParams, IntPtr leftFrontTire, IntPtr rightFrontTire, IntPtr leftRearTire, IntPtr rightRearTire, int diffType);
public IEngine Create(EngineParameters engineParameters) => new CustomEngine { GlobalCleanupAction = engineParameters.GlobalCleanupAction, GlobalSetupAction = engineParameters.GlobalSetupAction };
public static void RunCore(IHost host, BenchmarkCase benchmarkCase, BenchmarkActionCodegen codegenMode, IConfig config) { var target = benchmarkCase.Descriptor; var job = benchmarkCase.Job; // TODO: filter job (same as SourceCodePresenter does)? int unrollFactor = benchmarkCase.Job.ResolveValue(RunMode.UnrollFactorCharacteristic, EnvironmentResolver.Instance); // DONTTOUCH: these should be allocated together var instance = Activator.CreateInstance(benchmarkCase.Descriptor.Type); var workloadAction = BenchmarkActionFactory.CreateWorkload(target, instance, codegenMode, unrollFactor); var overheadAction = BenchmarkActionFactory.CreateOverhead(target, instance, codegenMode, unrollFactor); var globalSetupAction = BenchmarkActionFactory.CreateGlobalSetup(target, instance); var globalCleanupAction = BenchmarkActionFactory.CreateGlobalCleanup(target, instance); var iterationSetupAction = BenchmarkActionFactory.CreateIterationSetup(target, instance); var iterationCleanupAction = BenchmarkActionFactory.CreateIterationCleanup(target, instance); var dummy1 = BenchmarkActionFactory.CreateDummy(); var dummy2 = BenchmarkActionFactory.CreateDummy(); var dummy3 = BenchmarkActionFactory.CreateDummy(); FillMembers(instance, benchmarkCase); host.WriteLine(); foreach (string infoLine in BenchmarkEnvironmentInfo.GetCurrent().ToFormattedString()) { host.WriteLine("// {0}", infoLine); } host.WriteLine("// Job: {0}", job.DisplayInfo); host.WriteLine(); var engineParameters = new EngineParameters { Host = host, WorkloadActionNoUnroll = invocationCount => { for (int i = 0; i < invocationCount; i++) { workloadAction.InvokeSingle(); } }, WorkloadActionUnroll = workloadAction.InvokeMultiple, Dummy1Action = dummy1.InvokeSingle, Dummy2Action = dummy2.InvokeSingle, Dummy3Action = dummy3.InvokeSingle, OverheadActionNoUnroll = invocationCount => { for (int i = 0; i < invocationCount; i++) { overheadAction.InvokeSingle(); } }, OverheadActionUnroll = overheadAction.InvokeMultiple, GlobalSetupAction = globalSetupAction.InvokeSingle, GlobalCleanupAction = globalCleanupAction.InvokeSingle, IterationSetupAction = iterationSetupAction.InvokeSingle, IterationCleanupAction = iterationCleanupAction.InvokeSingle, TargetJob = job, OperationsPerInvoke = target.OperationsPerInvoke, MeasureGcStats = config.HasMemoryDiagnoser(), BenchmarkName = FullNameProvider.GetBenchmarkName(benchmarkCase) }; using (var engine = job .ResolveValue(InfrastructureMode.EngineFactoryCharacteristic, InfrastructureResolver.Instance) .CreateReadyToRun(engineParameters)) { var results = engine.Run(); host.ReportResults(results); // printing costs memory, do this after runs } }
public IEngine Create(EngineParameters engineParameters) => new CustomEngine { CleanupAction = engineParameters.CleanupAction, SetupAction = engineParameters.SetupAction };
private void StartProcess(EngineParameters engineParameters) { var processStartInfo = GenerateStartInfo(engineParameters); RunProcess(processStartInfo); }
public static void RunCore(IHost host, Benchmark benchmark, BenchmarkActionCodegen codegenMode, IConfig config) { var target = benchmark.Target; var job = benchmark.Job; // TODO: filter job (same as SourceCodePresenter does)? var unrollFactor = benchmark.Job.ResolveValue(RunMode.UnrollFactorCharacteristic, EnvResolver.Instance); // DONTTOUCH: these should be allocated together var instance = Activator.CreateInstance(benchmark.Target.Type); var mainAction = BenchmarkActionFactory.CreateRun(target, instance, codegenMode, unrollFactor); var idleAction = BenchmarkActionFactory.CreateIdle(target, instance, codegenMode, unrollFactor); var globalSetupAction = BenchmarkActionFactory.CreateGlobalSetup(target, instance); var globalCleanupAction = BenchmarkActionFactory.CreateGlobalCleanup(target, instance); var iterationSetupAction = BenchmarkActionFactory.CreateIterationSetup(target, instance); var iterationCleanupAction = BenchmarkActionFactory.CreateIterationCleanup(target, instance); var dummy1 = BenchmarkActionFactory.CreateDummy(); var dummy2 = BenchmarkActionFactory.CreateDummy(); var dummy3 = BenchmarkActionFactory.CreateDummy(); FillMembers(instance, benchmark); host.WriteLine(); foreach (var infoLine in BenchmarkEnvironmentInfo.GetCurrent().ToFormattedString()) { host.WriteLine("// {0}", infoLine); } host.WriteLine("// Job: {0}", job.DisplayInfo); host.WriteLine(); var engineParameters = new EngineParameters { Host = host, MainAction = mainAction.InvokeMultiple, Dummy1Action = dummy1.InvokeSingle, Dummy2Action = dummy2.InvokeSingle, Dummy3Action = dummy3.InvokeSingle, IdleAction = idleAction.InvokeMultiple, GlobalSetupAction = globalSetupAction.InvokeSingle, GlobalCleanupAction = globalCleanupAction.InvokeSingle, IterationSetupAction = iterationSetupAction.InvokeSingle, IterationCleanupAction = iterationCleanupAction.InvokeSingle, TargetJob = job, OperationsPerInvoke = target.OperationsPerInvoke, MeasureGcStats = config.HasMemoryDiagnoser() }; var engine = job .ResolveValue(InfrastructureMode.EngineFactoryCharacteristic, InfrastructureResolver.Instance) .Create(engineParameters); globalSetupAction.InvokeSingle(); iterationSetupAction.InvokeSingle(); if (job.ResolveValue(RunMode.RunStrategyCharacteristic, EngineResolver.Instance).NeedsJitting()) { engine.Jitting(); // does first call to main action, must be executed after setup()! } iterationCleanupAction.InvokeSingle(); var results = engine.Run(); globalCleanupAction.InvokeSingle(); host.ReportResults(results); // printing costs memory, do this after runs }
public Task GenerateHLS(EngineParameters parameters) { Guard.NotNull(parameters, nameof(parameters)); return(Task.Run(() => _engine.GenerateHLS(parameters))); }
static void Main(string[] args) { var ignoreColumns = new int[] { 0, 1, 13, 14 }; int labelColumnIndex = 15 - ignoreColumns.Length; Dataset.LoadFromFile("bike-sharing-by-day.csv", labelColumnIndex, ignoreColumns); var engineParams = new EngineParameters() { IsLowerFitnessBetter = true, PopulationSize = 750, MinGenerations = 25, MaxGenerations = 2500, StagnantGenerationLimit = 25, SelectionStyle = SelectionStyle.Tourney, TourneySize = 3, ElitismRate = 0, CrossoverRate = 1, MutationRate = 0.0, RandomTreeMinDepth = 1, RandomTreeMaxDepth = 3 }; printableParams = "P: " + engineParams.PopulationSize + " " + "G: " + engineParams.MinGenerations + " - " + engineParams.MaxGenerations + " " + "Stgn: " + engineParams.StagnantGenerationLimit + " " + "Sel: " + engineParams.SelectionStyle + " " + "Trny: " + engineParams.TourneySize + " " + "Mut: " + engineParams.MutationRate + " " + "Elit: " + engineParams.ElitismRate + " "; var e = new Engine <double, StateData>(engineParams); // give the engine a fitness function and a per-gen callback (so we can see the progress) e.AddFitnessFunction((c) => EvaluateCandidate(c)); e.AddProgressFunction((p) => PerGenerationCallback(p)); // one variable per value on a row of the training data for (int i = 0; i < Dataset.NumColumns; i++) { if (i != Dataset.LabelColumnIndex) { e.AddVariable("v" + i); } } // some basic arithmatic building blocks e.AddFunction((a, b) => a + b, "Add"); // addition e.AddFunction((a, b) => a - b, "Sub"); // subtraction e.AddFunction((a, b) => a * b, "Mult"); // multiplication e.AddFunction((a, b) => (b == 0) ? 1 : a / b, "Div"); // safe division e.AddFunction((a, b) => (a < b) ? a : b, "Min"); e.AddFunction((a, b) => (a > b) ? a : b, "Max"); e.AddFunction((a, b) => (a + b) / 2, "Avg"); e.AddFunction((a, b, c) => (a + b + c) / 3, "Avg3"); e.AddFunction((a) => - 1 * a, "Neg"); // -1 * a e.AddFunction((a) => (a != 0) ? 1 / a : 0, "Inv"); // 1 / a e.AddFunction((a) => Math.Abs(a), "Abs"); e.AddFunction((a) => a * a, "Sqr"); e.AddFunction((a) => a * a * a, "Cube"); e.AddConstant(0); e.AddConstant(2); e.AddConstant(3); e.AddConstant(5); e.AddConstant(7); e.AddConstant(11); e.AddConstant(13); e.AddConstant(17); e.AddConstant(19); e.AddConstant(23); // find the solution var solution = e.FindBestSolution(); ShowFinalResults(solution); Console.WriteLine(); Console.WriteLine("Hit any key to exit"); Console.ReadKey(); }