packages feed

number-wall-0.1.0.0: number-wall.cabal

cabal-version: 2.4
name:          number-wall
version:       0.1.0.0
author:        Owen Bechtel
maintainer:    ombspring@gmail.com

category: Math, Algorithms, Graphics, Image
synopsis: Create number walls and save them as images

description:
  A "number wall" is an infinite grid associated to some (bi-directional) sequence.
  The "numbers" in the grid are usually either integers, or integers modulo some prime.
  Number walls can be defined in terms of determinants, but can also be calculated
  using a recursive algorithm.
  .
  Formally, let \( R \) be an integral domain. The number wall of a sequence
   \( S : \mathbb{Z} \to R \) is an infinite grid of numbers \( W \), defined as follows:
  .
  \[
  W(x, y) = \begin{cases}
    0 & y < -1 \\
    1 & y = -1 \\
    S(x) & y = 0 \\
    D(x, y) & y > 0
  \end{cases}
  \]
  .
  \[
  D(x, y) = \begin{vmatrix}
    S(x) & S(x + 1) & \ldots & S(x + y) \\
    S(x - 1) & S(x) & \ldots & S(x + y - 1) \\
    \vdots & \vdots & \ddots & \vdots \\
    S(x - y) & S(x - y + 1) & \ldots & S(x)
  \end{vmatrix}
  \]
  .
  The values in any number wall satisfy the relation
   \( W(x, y - 1) W(x, y + 1) + W(x - 1, y) W(x + 1, y) = W(x, y)^2 \),
  and some other more complicated relations. You can use these to define a
  recursive algorithm for generating number walls.
  .
  Here are some cool images created using the functions in this package:
  .
  ![number wall image collage](number-wall/src/collage.png)
  .
  See [this video](https://www.youtube.com/watch?v=NO1_-qptr6c) for more
  information and fun facts.

homepage:           https://github.com/UnaryPlus/number-wall
bug-reports:        https://github.com/UnaryPlus/number-wall/issues
license:            MIT
license-file:       LICENSE
extra-source-files: CHANGELOG.md, README.md, collage.png

source-repository head
  type:     git
  location: https://github.com/UnaryPlus/lambda.git

library
  hs-source-dirs:   src
  default-language: Haskell2010
  ghc-options:      -W
  exposed-modules:  NumberWall

  build-depends:
    base >= 4.14.1.0 && < 5,
    memoize >= 0.2.0 && < 1.2,
    mod >= 0.1.1.0 && < 0.2,
    semirings >= 0.5.2 && < 0.8,
    JuicyPixels >= 3.3 && < 3.4

test-suite test
  type:             exitcode-stdio-1.0
  hs-source-dirs:   test
  default-language: Haskell2010
  ghc-options:      -W
  main-is:          Main.hs

  build-depends:
    base,
    number-wall