[noise] Generating patterns, and ss tokens

Justin Cormack justin at specialbusservice.com
Tue Jun 19 16:18:01 PDT 2018


I wrote a quick program to generate all the standard and deferred
patterns from a short set of rules based roughly on [1]

https://github.com/justincormack/noise-gen

You should be able to run it with go installed with

go get github.com/justincormack/noise-gen
~/go/bin/noise-gen

It seems to generate the same patterns as the standard ones (I havent
fully exhaustively checked yet) with the caveat that it adds ss where
possible.

In the standard patterns this means having an ss in eg:

IX:
-> e, s
<- e, ee, se, s, es, ss

XK:
-> e, es
<- e, ee
-> s, se, ss

The rule that would generate the same patterns appears to be to drop
an ss if it would be the last token (as well as in all deferred
patterns).


[1] https://moderncrypto.org/mail-archive/noise/2018/001701.html

Patterns generated listed below:

NN:
-> e
<- e, ee

NX:
-> e
<- e, ee, s, es

NK:
-> e, es
<- e, ee

XN:
-> e
<- e, ee
-> s, se

IN:
-> e, s
<- e, ee, se

XX:
-> e
<- e, ee, s, es
-> s, se, ss

IX:
-> e, s
<- e, ee, se, s, es, ss

XK:
-> e, es
<- e, ee
-> s, se, ss

IK:
-> e, es, s, ss
<- e, ee, se

KN:
-> e
<- e, ee, se

KX:
-> e
<- e, ee, se, s, es, ss

KK:
-> e, es, ss
<- e, ee, se


NX:
-> e
<- e, ee, s, es

NX1:
-> e
<- e, ee, s
-> es

NK:
-> e, es
<- e, ee

NK1:
-> e
<- e, ee, es

XN:
-> e
<- e, ee
-> s, se

X1N:
-> e
<- e, ee
-> s
<- se

IN:
-> e, s
<- e, ee, se

I1N:
-> e, s
<- e, ee
-> se

XX:
-> e
<- e, ee, s, es
-> s, se, ss

X1X:
-> e
<- e, ee, s, es
-> s, ss
<- se

XX1:
-> e
<- e, ee, s
-> es, s, se, ss

X1X1:
-> e
<- e, ee, s
-> es, s, ss
<- se

IX:
-> e, s
<- e, ee, se, s, es, ss

I1X:
-> e, s
<- e, ee, s, es, ss
-> se

I1X1:
-> e, s
<- e, ee, s, ss
-> se, es

XK:
-> e, es
<- e, ee
-> s, se, ss

X1K:
-> e, es
<- e, ee
-> s, ss
<- se

XK1:
-> e
<- e, ee, es
-> s, se, ss

X1K1:
-> e
<- e, ee, es
-> s, ss
<- se

IK:
-> e, es, s, ss
<- e, ee, se

I1K:
-> e, es, s, ss
<- e, ee
-> se

I1K1:
-> e, s, ss
<- e, ee, es
-> se

KN:
-> e
<- e, ee, se

K1N:
-> e
<- e, ee
-> se

KX:
-> e
<- e, ee, se, s, es, ss

K1X:
-> e
<- e, ee, s, es, ss
-> se

KX1:
-> e
<- e, ee, se, s, ss
-> es

K1X1:
-> e
<- e, ee, s, ss
-> se, es

KK:
-> e, es, ss
<- e, ee, se

K1K:
-> e, es, ss
<- e, ee
-> se

KK1:
-> e, ss
<- e, ee, se, es

K1K1:
-> e, ss
<- e, ee, es
-> se


More information about the Noise mailing list