public default boolean isEquivalent(DataOrganization obj) {
		if (getAbsoluteMaxAlignment() != obj.getAbsoluteMaxAlignment()) {
			return false;
		}
		if (isBigEndian() != obj.isBigEndian()) {
			return false;
		}
		if (!getBitFieldPacking().isEquivalent(obj.getBitFieldPacking())) {
			return false;
		}
		if (getCharSize() != obj.getCharSize() || getWideCharSize() != obj.getWideCharSize()) {
			return false;
		}
		if (getDefaultAlignment() != obj.getDefaultAlignment()) {
			return false;
		}
		if (getDefaultPointerAlignment() != obj.getDefaultPointerAlignment()) {
			return false;
		}
		if (getDoubleSize() != obj.getDoubleSize() || getFloatSize() != obj.getFloatSize()) {
			return false;
		}
		if (getIntegerSize() != obj.getIntegerSize() ||
			getLongLongSize() != obj.getLongLongSize()) {
			return false;
		}
		if (getShortSize() != obj.getShortSize()) {
			return false;
		}
		if (getLongSize() != obj.getLongSize() || getLongDoubleSize() != obj.getLongDoubleSize()) {
			return false;
		}
		if (isSignedChar() != obj.isSignedChar()) {
			return false;
		}
		if (getMachineAlignment() != obj.getMachineAlignment()) {
			return false;
		}
		if (getPointerSize() != obj.getPointerSize() ||
			getPointerShift() != obj.getPointerShift()) {
			return false;
		}
		int[] keys = getSizes();
		int[] op2keys = obj.getSizes();
		if (!Arrays.equals(keys, op2keys)) {
			return false;
		}
		for (int k : keys) {
			if (getSizeAlignment(k) != obj.getSizeAlignment(k)) {
				return false;
			}
		}
		return true;
	}
Determine if this DataOrganization is equivalent to another specific instance
@param obj is the other instance
@return true if they are equivalent
Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/model/data/DataOrganization.java