private Set<FunctionNode> buildNeighborhood(Namespace namespace, Long namespaceKey,
			FunctionNodeContainer container, TreeMap<Long, Set<FunctionNode>> sets) {
		Set<FunctionNode> resultSet = sets.get(namespaceKey);
		if (resultSet == null) {
			resultSet = FunctionNode.neigborhoodAllocate();
			SymbolTable symbolTable = container.getProgram().getSymbolTable();
			SymbolIterator iter = symbolTable.getSymbols(namespace);
			while (iter.hasNext()) {
				Symbol sym = iter.next();
				if (sym.getSymbolType() != SymbolType.FUNCTION) {
					continue;
				}
				FunctionNode node = container.get(sym.getAddress());
				if (node != null) {
					resultSet.add(node);
				}
			}
			sets.put(namespaceKey, resultSet);
		}
		return resultSet;
	}
A neighborhood generator that, for a given function, generates all functions
in the same namespace.  For efficiency, it caches the namespace sets it generates.
Ghidra/Features/VersionTrackingBSim/src/main/java/ghidra/feature/vt/api/NamespaceNeighborhood.java