using System; using System.Collections; using System.Collections.Generic; using System.Text; namespace CLab { public abstract class LayoutType : Type { private int bddVarNum = 0; private int domainSize = 0; /// /// Constructor /// /// Name of the layout type public LayoutType(String layoutTypeName, int bddVarNum, int domainSize) : base(layoutTypeName) { this.bddVarNum = bddVarNum; this.domainSize = domainSize; } /// The domain size of the type public int DomainSize { get { return domainSize; } set { domainSize = value; } } /// public int BDDvarNum { get { return bddVarNum; } set { bddVarNum = value; } } public static int booleanVarNumber(int domainSize) { return (int)Math.Ceiling(Math.Log((double)domainSize) / Math.Log(2.0)); } public override string ToString() { return string.Format("Layout type name: {0}, domain size: {1}, Number of BDD variables needed: {2}", base.TypeName, this.DomainSize, this.BDDvarNum); } } }