docs: public final VariableNumMap intersection(int... varNumsToKeep) {
      if (varNumsToKeep.length == 0) {
        return VariableNumMap.EMPTY;
      }
  
      int[] newNums = new int[varNumsToKeep.length];
      String[] newNames = new String[varNumsToKeep.length];
      Variable[] newVars = new Variable[varNumsToKeep.length];
      
      int numFilled = 0;
      for (int varNum : varNumsToKeep) {
        int index = getVariableIndex(varNum);
        if (index >= 0) {
          newNums[numFilled] = nums[index];
          newNames[numFilled] = names[index];
          newVars[numFilled] = vars[index];
          numFilled++;
        }
      }
      return VariableNumMap.fromUnsortedArrays(newNums, newNames, newVars, numFilled);
    }