Skip to main content

Module permutation

Module permutation 

Source
Expand description

置换的宇称 —— 一个概念,一处实现

四面体手性、丙二烯轴手性、反应产物的重定基、SMARTS 的参照系换算,做的都是 同一件事:同一组配体的两种排列,差的是奇数次对换还是偶数次。奇数就要把 @@@ 对调。

这份先前在四个地方各写了一遍(omgkit-iosmilessmarts::mol, omgkit-matchmatcherreact)。当时四份给出的答案一致,可**“当前一致” 不是性质,是巧合**:边界条件本来就已经分岔了 —— 有一份长度对不上时返回 false(按偶处理,不翻),另外三份返回 None(说不出来)。四份里改一份, 分子会在一条路上是自己、在另一条路上是对映体,而两边各自自洽、谁都不报错。

判据里那一份不算重复。 omgkit-io/tests/canonical_invariance.rs 里有一份 独立实现,那是故意的:判据拿被测代码当真值就什么都没验。

Functions§

permutation_is_odd
fromto 置换的宇称。两者不是同一多重集时返回 None