E,      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdef g h i j k l m n o p q r s t u v w x y z { | } ~                                  !"#$%&'()*+Safe,-./0123456789:-456789:,-./0123456789:Anders Claesson 2015+Anders Claesson <anders.claesson@gmail.com>SafeParse p enclosed in parenthesis.$Parse one of the words in the given ;.!Parse one or more occurrences of pX, separated by an operator. Returns a value obtained by a left associative application. Run a parser.Anders Claesson 2015+Anders Claesson <anders.claesson@gmail.com>None/A Matrix is represented as a vector of vectors.'Construct a matrix from a list of rows. <Matrix determinant. It is assumed that the matrix is square.<=>?   <=>? Anders Claesson 2016+Anders Claesson <anders.claesson@gmail.com>Safe     Anders Claesson 2015, 2016+Anders Claesson <anders.claesson@gmail.com>SafeCommand line options:@Parse command line options.,Run the command line options parser (above). @  @Anders Claesson 2015, 2016+Anders Claesson <anders.claesson@gmail.com>NonebAn A-number is the character 'A' followed by a six digit number. Here we represent that by an Int&A URL is currently just a synonym for A.A sequence of rational numbers.PParse a list of A-number-sequence pairs. It's purpose is to parse lines of the stripped4 file. A typical line of that file looks like this: CA000108 ,1,1,2,5,14,42,132,429,1430,4862,16796,58786,208012,742900, Parse a sequence of Bs.!A parser for A-numbers as Cs."!A parser for tags (B-numbers) as Cs.DEFGHI !"#$  !"  !"DEFGHI !"#$Anders Claesson 2015+Anders Claesson <anders.claesson@gmail.com>None (%Rationals extended with two elements:)A known rational value.*An unknown value.+Division by zero., Is the given element a rational?-Is the given element an Int?. Is the given element an Integer?// of Val x is Just x, otherwise it is J.00 of Val x is K the numerator of x if the denominator of x is 1, otherwise it is J.1Like 0 but return J* when the integer is out of range for an C.2oIf the given value represents a nonnegative integer, then the factorial of that integer is returned. If given + , return +. In all other cases return *.8Division table:  / | Val 0 | Val b | Indet | DZ ------+-------+-----------+-------+---- Val 0 | DZ | Val 0 | Val 0 | DZ Val a | DZ | Val (a/b) | Indet | DZ Indet | DZ | Indet | Indet | DZ DZ | DZ | DZ | DZ | DZ 9#Addition and multiplication tables:  + | Val b | Indet | DZ ------+-----------+-------+---- Val a | Val (a+b) | Indet | DZ Indet | Indet | Indet | DZ DZ | DZ | DZ | DZ * | Val 0 | Val b | Indet | DZ ------+-------+-----------+-------+---- Val 0 | Val 0 | Val 0 | Val 0 | DZ Val a | Val 0 | Val (a*b) | Indet | DZ Indet | Val 0 | Indet | Indet | DZ DZ | DZ | DZ | DZ | DZ ()*+L,-./012M3456789()*+,-./012345()*+/01,.-2345()*+L,-./012M3456789Anders Claesson 2015+Anders Claesson <anders.claesson@gmail.com>None+,D>A truncated power series is represented as a (dense) vector of coefficients. The precision (maximum number of coefficients) is statically checked. For instance, adding two series of different precision would result in a type error.@+The underlying vector of coefficients. E.g.1coeffVector $ polynomial (Proxy :: Proxy 3) [1,2].fromList [Val (1 % 1),Val (2 % 1),Val (0 % 1)]A2The list of coefficients of the given series. E.g.)coeffList $ series (Proxy :: Proxy 3) [9][Val (9 % 1),Indet,Indet]ByThe first nonzero coefficient when read from smaller to larger powers of x. If no such coefficient exists then return 0.CIThe longest initial segment of coefficients that are rational (i.e. not * or +).D=The longest initial segment of coefficients that are integralE5The longest initial segment of coefficients that are CsFIf  f :: Series n, then precision f = n.G=Create a polynomial with the given list of coefficients. E.g.'(polynomial (Proxy :: Proxy 4) [1,1])^2Kseries (Proxy :: Proxy 4) [Val (1 % 1),Val (2 % 1),Val (1 % 1),Val (0 % 1)]HHCreate a power series with the given list of initial coefficients. E.g.#(series (Proxy :: Proxy 4) [1,1])^2?series (Proxy :: Proxy 4) [Val (1 % 1),Val (2 % 1),Indet,Indet]I7Create an empty power series. All its coefficients are *.J A series whose constant term is +.KCreate the power series x^k.LWCoefficient wise multiplication of two power series. Also called the Hadamard product.M.Coefficient wise division of two power series.N*The (formal) derivative of a power series.O(The (formal) integral of a power series.PReversion (compositional inverse) of a power series. Unless the constant of the power series is zero the result is indeterminate.,revert $ series (Proxy :: Proxy 4) [0,1,2,3]Nseries (Proxy :: Proxy 4) [Val (0 % 1),Val (1 % 1),Val ((-2) % 1),Val (5 % 1)],revert $ series (Proxy :: Proxy 4) [1,1,1,1]3series (Proxy :: Proxy 4) [Indet,Indet,Indet,Indet]QEvaluate the polynomial p at x using Horner's method.+let x = polynomial (Proxy :: Proxy 5) [0,1]eval (1-x+x^2) 2 Val (3 % 1)R Construct a series that has coefficient 1 for each term whose power is some coefficient of the input series and 0 elsewhere. Elements of the input series that are not nonnegative integers or not less than the precision are ignored; trailing zeros are also ignored.&rseq $ series (Proxy :: Proxy 4) [1,3]Kseries (Proxy :: Proxy 4) [Val (0 % 1),Val (1 % 1),Val (0 % 1),Val (1 % 1)]SThe "complement" of R , i.e., the series generated by R-, with 0 replaced by 1, and 1 replaced by 0.TSelect certain coefficients of the first series, based on indices from the second series, returning the selection as a series. Elements of the second series that are not nonnegative integers or not less than the precision are ignored; trailing zeros are also ignored.U$The composition of two power series.+let x = polynomial (Proxy :: Proxy 4) [0,1](1/(1-x)) `o` (2*x)Kseries (Proxy :: Proxy 4) [Val (1 % 1),Val (2 % 1),Val (4 % 1),Val (8 % 1)]V"Constant term of the given series.WThe power operator for (s. E.g.(1/4) !^! (3/2) Val (1 % 8)X*A power series raised to a rational power.,series (Proxy :: Proxy 4) [1,2,3,4] ^! (1/2)Kseries (Proxy :: Proxy 4) [Val (1 % 1),Val (1 % 1),Val (1 % 1),Val (1 % 1)]ZThe secant function: sec f = 1 / cos f[The factorial of a constant power series. If the the power series isn't constant, then the result is indeterminate (represented using *).'fac (polynomial (Proxy :: Proxy 4) [3])Kseries (Proxy :: Proxy 4) [Val (6 % 1),Val (0 % 1),Val (0 % 1),Val (0 % 1)]6>?@ABCDEFGHIJKLMNOPQRSTNOPQUVRSTUWVXYZ[WX\]^Y_Z[\]^_`a,()*+,-./012345>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[>?GHKIJF@AVBCDEQLMWXTUYNOPZ[RS5>?@ABCDEFGHIJKLMNOPQRSTNOPQUVRSTUWVXYZ[WX\]^Y_Z[\]^_`aT7U7Anders Claesson 2015+Anders Claesson <anders.claesson@gmail.com>None+,DbA b takes zero or more > to another >.dLookup a transform by name.e$The list of all names of transforms.%bc`abcdefghijklmnopqrstuvwxyz{|}~debcdebcde$bc`abcdefghijklmnopqrstuvwxyz{|}~de Anders Claesson 2015, 2016+Anders Claesson <anders.claesson@gmail.com>NoneuAn expression for a constant. Supports addition, subtraction, multiplication, division, exponentials and factorials.)The value of the given (core) expression."The value of the given expression.Parser for an .?fghijklmnopqrstuvwxyz{|}~#fjkghilqmnoprwstuvx{yz|}~#|}~xyz{rstuvwlmnopqfghijk#fghijklmnopqrstuvwxyz{|}~ Anders Claesson 2015+Anders Claesson <anders.claesson@gmail.com>None+,9;D"An expression defining a sequence. Parser for .  Anders Claesson 2015, 2016+Anders Claesson <anders.claesson@gmail.com>None+,D kAn environment holds a mapping from A-numbers to series, and a mapping from names to series (assignments). A compact ; representation of a Prg.pad d n packs the integer n into a ;2 padding with '0' on the right to achieve length d. pad 6 123 = "000123"A compact representation of an  as a wrapped ;.#The list of variables in a program.#The list of A-numbers in a program.5Insert a variable binding into the given environment./Evaluate a program in a given environment. E.g..evalCore (emptyEnv :: Env 4) [ log (1/(1-X)) ]Kseries (Proxy :: Proxy 4) [Val (0 % 1),Val (1 % 1),Val (1 % 2),Val (1 % 3)]Parse an expression0Parse a program and possibly fail with an error.rr ()*+,-./012345>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[bcde@H  Anders Claesson 2015, 2016+Anders Claesson <anders.claesson@gmail.com>NoneIAn entry consists of a program together with a list of rational numbers. Anders Claesson 2015+Anders Claesson <anders.claesson@gmail.com>NonerDownload a file at a given URL showing a progress indicator at the given column, and save it at a specified path.Anders Claesson 2015+Anders Claesson <anders.claesson@gmail.com>Safe6A data type holding "constants" determined at runtime.!The home directory" Path to the '.hops' directory.#Path to stripped file.$Get configuration. !"#$ !"#$ !"#$ !"#$Anders Claesson 2015, 2016+Anders Claesson <anders.claesson@gmail.com>None+,CD%#A data base (DB) is just a wrapped ;."Read the DB at the given location.(2Read the sequence DB (derived from "stripped.gz").)Create a vector that at index n& contains the sequence with A-number n.*An empty A-number database%&'()*%&'()*%&'()*%&'()*  !"#$%&'())*+,-./0123456789:;<=>?@ABCDEFGHIJKLMMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnoppqr s t u v w x y z { | } ~      y     ~     s         s      w    y  | }    z           y        ~               &      !"#$%&'()*+,-./0123456789:;<=>*?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~            g h i j      m n o p   !hops-0.7.2-1uI5NdIc3tL9fuQhB8hwTXHOPS.Utils.ParseHOPS.Utils.Matrix HOPS.Pretty HOPS.Options HOPS.OEIS HOPS.GF.RatHOPS.GF.SeriesHOPS.GF.Transform HOPS.GF.Const HOPS.GF.RatsHOPS.GF HOPS.Entry HOPS.Download HOPS.ConfigHOPS.DB Paths_hopsbracketcurlyparenparensoneOfchainl1parse_MatrixmatrixdetPrettypretty $fPrettyRatio$fPrettyInteger $fPrettyIntOptionsscriptprectagSeqsforAllupdateversionprogram getOptionsANumunANumURLSequencepackANum parseStrippedparseIntegerSeqaNumInttag$fFromJSONANum $fToJSONANum$fEqANum $fOrdANum $fShowANumRatValIndetDZ isRationalisInt isInteger maybeRational maybeIntegermaybeInt factorialbinomialchoose multinomial $fPrettyRat $fFloatingRat$fFractionalRat$fNumRat$fEqRat$fOrdRat $fShowRat $fReadRatSeries coeffVector coeffList leadingCoeffrationalPrefix integerPrefix intPrefix precision polynomialseriesnilinftyxpow.*./ derivativeintegralrevertevalrseqrseq'?oconstant!^!^! blackDiamondsecfac$fPrettySeries$fFloatingSeries$fFractionalSeries $fNumSeries $fEqSeries $fShowSeries TransformlookupTransform transformsCoreApp1App2BinomLitNExpr3ELitENEDZEIndetExpr0Expr2ENegEPosEFacEPowExpr1EMulEDivEAddESubExprindetzerocoresimplify isConstantevalCoreevalExprexpr $fPrettyExpr3 $fPrettyExpr2 $fPrettyExpr1 $fPrettyExpr0 $fNumCore $fPrettyCore $fPrettyFun2 $fPrettyFun1 $fShowExpr3 $fEqExpr3 $fShowExpr0 $fEqExpr0 $fShowExpr1 $fEqExpr1 $fShowExpr2 $fEqExpr2 $fShowFun1$fEqFun1 $fOrdFun1 $fShowFun2$fEqFun2 $fOrdFun2 $fShowCore$fEqCore $fOrdCoreRats SequenceTypePolySerTermEllipsisConstantFunrats $fPretty(,,) $fPretty(,,)0 $fPrettyTerm $fShowTerm$fEqTerm$fShowSequenceType$fEqSequenceType$fOrdSequenceTypeAppXATagVarLetSeqEXEAETagEVarEAppERatsECompECoefEBDPEPtMulEPtDiv SingletonELetESeqNameEnvaNumEnvvarEnv PackedExprpackExprvarsanums nameSupply insertVaraNumExprtagExpremptyEnv evalCoreS parseExpr parseExprErr $fPrettyExpr$fSemigroupExpr$fFromJSONExpr $fToJSONExpr$fFloatingCore$fFractionalCore $fNumExpr$fFromJSONPackedExpr$fToJSONPackedExpr$fEqPackedExpr$fShowPackedExpr $fShowEnv $fShowExpr$fEqExprEntrygetExprgetSeqgetTrail$fFromJSONEntry $fToJSONEntry $fEqEntry $fShowEntrydownloadConfighomehopsDir seqDBPath getConfigDBunDB readSeqDB readANumDB emptyANumDB$fShowDBcatchIObindirlibdir dynlibdirdatadir libexecdir sysconfdir getBinDir getLibDir getDynLibDir getDataDir getLibexecDir getSysconfDirgetDataFileNamebytestring-0.10.8.1Data.ByteString.Internal ByteString findPivotswapRows reduceHeadreduceFirstColumn optionsParserbaseGHC.BaseString integer-gmpGHC.Integer.TypeIntegerghc-prim GHC.TypesIntspcaNum parseANum parseANumErr dropHeader parseRecordsNothingJustliftpascalmul convolutionpevalmaxNormboundpmultdividecomp dropTrailingc0fromRat kRestrictrestrictexp'leadingExponent squareRoot compositionsx facSeriesliftAnyunconsbisect0bisect1trisect0trisect1trisect2shiftfinDiff mobiusFunmu dirichlet dirichletirestrictToPrefixeulereuleriweightmaskmultisetpowersetccycletotientt019bousbousihankellaplacelaplacei associationsdispatchFun2AddSubMulDivPowFun1NegFac simplifyLit coreExpr0 coreExpr1 coreExpr2 coreExpr3evalFun1evalFun2expr0expr1expr2expr3 sequencetype newtonPolytermcommaSep decompose toConstantsequenceOfTermspadSubsto0to1from3subsExpr subsExpr0 subsExpr1 subsExpr2 subsExpr3subsvars'lastExpr normalFormrename lookupANum lookupVarcoreExprvarsCore anumsCoreevalName evalCoreS1 assignmentreservednamevarreadDB