在 (Microsoft) Liquid 中实施 Steane [[7, 1, 3]] 代码

Implementing Steane [[7, 1, 3]] Code In (Microsoft) Liquid

我正在尝试在 Liquid 中实现一些量子纠错码(如果需要请更正标签),我想我应该从复制用户手册中讨论的 Steane7 class 开始在第 55 页(pdf 的第 56 页)。不过,我对提供的代码有几个问题。

  1. 文件的整体结构我不清楚。该示例从定义 "type Steane7" 开始。这是一个 class 定义,所以我假设以下所有代码都在此缩进?在第 58 (59) 页上,它引用了返回到 class 定义以添加覆盖,这使得上面的代码看起来没有在类型下缩进。我认为这对我来说意味着它在类型下而不是在 synd 方法下缩进?
  2. 在第58(59)页前面提到的覆盖中,s是什么,它从何而来?在 F# 中,可以使用 "this" 和 "self" 以外的词。这就是 s 应该在此处的意思,还是 s 指的是先前定义但未提及的值?
  3. 第 56 (57) 页准备门中的绘图说明说 "Error! Hyperlink reference not valid." 这里的正确绘图说明是什么?我猜应该是 "\multigate{#%d}{%s}"?
  4. 方法 "fix" 在第 58 页上有一个没有 if 的 else。这里对父级的正确引用是什么?
  5. 用户手册中是否遗漏了 Steane7 class 的任何部分?如果我在脚本中调用它,它会像代码的编译版本一样工作吗?
  6. 对于我以后实现的代码,是否还有其他方法应该被覆盖?我通过 VS 检查编译的程序集来拼凑 QECC class。

坦率地说,所有这些问题都可以通过向我指出 QECC 和 Steane7 的源代码来回答。我从 GitHub 抓取的 "source" 文件夹只有预编译的可执行文件。

我刚刚将 Steane7 的源代码发布到 Liquid GitHub repo。希望对您有所帮助!