public void RegisterOperator(Operator op)
		{
			OperatorEntry entry;
			if (!_operatorMap.TryGetValue(op.Name, out entry))
			{
				entry = new OperatorEntry(op.Name);
				_operatorMap.Add(op.Name, entry);
			}

			entry.RegisterOperator(op);
		}
		public void RegisterOperator(Operator op)
		{
			if (op == null)
			{
				throw new ArgumentNullException("op");
			}

			if (op.Name != _name)
			{
				throw new ArgumentException(String.Format("Operator being registered '{0}' does not match operator entry name '{1}'.", op.Name, _name), "op");
			}

			if (_operators.ContainsKey(op.Signature))
			{
				throw new InvalidOperationException(String.Format("Signature '{0}' is already registered for operator '{1}'.", op.Signature, _name));
			}

			_operators.Add(op.Signature, op);
		}