using Nocturnis.DataStructures.ConfigurableParameters; using Nocturnis.Enigmos.Modules; using Nocturnis.Enigmos.Modules.ComputationalModules; using Nocturnis.Enigmos.Ports; using Nocturnis.GlobalManagement.Constants; using Nocturnis.GlobalManagement.Providers; namespace Enigmos.Modules.ComputationalModules.Binary; public partial class ComparisionModule : BinaryComputationalModule, IParameterizedModule, IDuplicateOutputModule, IOperationModule { private IBoolParameter? Greater { get; set; } public HashSet ConfigurableParameters { get; set; } = new(); public override void Init() { base.Init(); this.DataOutInit("Output",1); this.SetInputType(EnigmosConstant.DataPortTypes.Real); this.SetOutputType(EnigmosConstant.DataPortTypes.Real); Greater = GlobalProvider.DataStructureProvider!.NewBoolParameter("Method", "gt", "lt", true); ConfigurableParameters = new HashSet() { Greater }; PostInit(); } public override void Define() { this.Define( cache => ( !(Greater!.ParameterValue ^ (this.X(cache).Double > this.Y(cache).Double)), EnigmosConstant.DataPortTypes.Bit ) ); } }