code: @SuppressWarnings("unchecked")
      private DependencyPermutationFunction getPermutationFunction() {
          try {
              if (!argOptions.hasOption('P'))
                  return null;
  
              if (!argOptions.hasOption('p'))
                  return new DefaultDependencyPermutationFunction<TernaryVector>(
                          new TernaryPermutationFunction());
              Class clazz = Class.forName(argOptions.getStringOption('p'));
              Constructor<?> c = clazz.getConstructor(PermutationFunction.class);                
              return (DependencyPermutationFunction<TernaryVector>)
                  c.newInstance(new TernaryPermutationFunction());
          } catch (Exception e) {
              throw new Error(e);
          }
      }
docs: Returns a new instance of a {@link DependencyPermutationFunction} based
  on the provided command line arguments.