public static double DecodeBinary(BinaryRepresentation binaryRepresentation, DomainDefinition domainDefinition, int precision) { var d = Convert.ToInt64(binaryRepresentation.AsString(), 2); var bitsNumber = BitsNumberForDomainDimension(domainDefinition, precision); return((domainDefinition.End - domainDefinition.Start) * (d / (Pow(2, bitsNumber) - 1)) + domainDefinition.Start); }
public DimensionalDomain WithDefinition(DomainDefinition definition) { if (definitions.Count >= dimension) { throw new InvalidOperationException("Cannot declare any more definitions into this domain!"); } definitions.Add(definition); return(this); }
public static int BitsNumberForDomainDimension(DomainDefinition dimensionDomain, int precision) { var logArgument = (dimensionDomain.End - dimensionDomain.Start) * Pow(10, precision); return((int)Log(logArgument, 2)); }