whole_func_string: function determineFrequency(fu) {
      let qstate = new qubits.QState(numInBits + numOutBits).hadamard(inputBits);
      qstate = qstate.applyFunction(inputBits, outBits, fu);
      // We do not need to measure the outBits, but it does speed up the simulation.
      qstate = qstate.measure(outBits).newState;
  
      return qstate.qft(inputBits).measure(inputBits).result;
    }
func_code_string: function determineFrequency(fu) {
      let qstate = new qubits.QState(numInBits + numOutBits).hadamard(inputBits);
      qstate = qstate.applyFunction(inputBits, outBits, fu);
      // We do not need to measure the outBits, but it does speed up the simulation.
      qstate = qstate.measure(outBits).newState;
  
      return qstate.qft(inputBits).measure(inputBits).result;
    }
func_documentation_string: Quantum computation It returns either the frequency of the function f or some integer multiple (where "frequency" is the number of times the period of f will fit into 2^numInputBits)