[seqfan] HOPS - Handy Operations on Power Series

Anders Claesson anders.claesson at gmail.com
Wed Dec 30 15:19:21 CET 2015

Dear sequence fans,

I thought I'd share a couple of command line tools I've written (in
Haskell) for working with integer sequences and their generating

- http://akc.is/hops/
- http://akc.is/sloane/

The first program is the more interesting. It is a tool for (truncated)
power series manipulation. One unusual property of this program is that
implicit definitions in terms of functional equations are automatically
"solved" (by iteration).

$ hops 'c=1+x*c^2'
c=1+x*c^2 =>

Many of the "usual" transformations are supported. E.g.,

$ hops 'c=1+x*c^2;HANKEL(c)'
c=1+x*c^2;HANKEL(c) => {1,1,1,1,1,1,1,1}

For a full list of operations and transformations currently supported
see http://akc.is/hops/language/

Programs also compose using a special variable "stdin", though renaming
may occur:

$ hops 'c=1+x*c^2' | hops 'HANKEL(stdin)'
f=1+x*f^2;HANKEL(f) => {1,1,1,1,1,1,1,1}

By downloading stripped.gz hops also knows about A-numbers.

$ hops --prec=22 'A101264^2'
A101264^2 => {0,0,1,2,3,2,3,4,4,4,5,6,5,4,6,4,7,8,3,6,8,6,7,10}

Piping through sloane we find that

$ hops --prec=22 'A101264^2' | sloane 

S A002372 0,0,1,2,3,2,3,4,4,4,5,6,5,4,6,4,7,8,3,6,8,6,7,10,8,6,10,
N A002372 Goldbach conjecture: number of decompositions of 2n into

and so

$ hops --prec=30 'A101264^2 - A002372'
A101264^2-A002372 =>

which is a relation that seems to be missing in the OEIS. If we would
like to find more such identities we could try squaring all sequences in
the OEIS. As a test

$ hops --dump | hops 'stdin^2' >/dev/null

takes just over a minute on my 5 year old ThinkPad x220. Filtering out
those squares which are in the OEIS can be achieved by another pipe
through sloane:

$ hops --dump | hops 'stdin^2' | sloane --filter

This is, unfortunately, a lot slower (room for improvements and pull
requests!) and takes around 35 minutes on my laptop.

Finally, I took the liberty of re-implementing Thomas Baruchel's
interesting deconvolution program using hops (and jq). It can be found
under the heading "A more involved example" in the tutorial,

Comments, questions, suggestions, etc, are of course very welcome.

Anders (http://akc.is/)

More information about the SeqFan mailing list