示例#1
0
        public SymbolsGenerator(string name, params Tensor[] forbiddenTensors)
        {
            CheckName(name);
            Name = name;

            var set = new HashSet <string>();
            FromChildToParentIterator iterator;

            foreach (Tensor f in forbiddenTensors)
            {
                iterator = new FromChildToParentIterator(f);
                Tensor c;
                while ((c = iterator.Next()) != null)
                {
                    if (TensorUtils.IsSymbol(c))
                    {
                        set.Add(c.ToString());
                    }
                }
            }

            var usedNames = new string[set.Count];
            var i         = -1;

            foreach (var str in set)
            {
                usedNames[++i] = str;
            }

            UsedNames = usedNames.OrderBy(n => n).ToArray();
        }