Yet another unsuccessful picture of binom(x,y), the surface that interpolates Pascal's triangle. The region x>=0 is easy enough, but the unbounded lasagna covering x<0 is tough to visualize.

load("c:\\rwg\\climax\\binom.mac")$

Batching the file c:\rwg\climax\binom.mac
Batchload done.

For reference and partial transparency, we show the surface only where the function takes on values within .25 of an integer. (Vermillion = -1, yellow = 0, green = 1, cyan = 2, light blue = 3, dark blue = 4, magenta = 5, carmine = 6. At least before compression to 256 colors.)

(c26) for k:-1 thru 6 do binomplot(-3,4,-2,6,k-1/4,k+1/4)$

picture

We can see that there are ripples in the yellow ocean of zeros surrounding the usual triangle. In fact,

(c27) binom(0,noninteger)

                         sin(%pi noninteger)
(d27)                    -------------------
                           %pi noninteger

I.e., the section at x = 0 is the logo for Fry's Sunnyvale superstore.

picture picture

What this picture fails to convey is how Pascal's triangle loses its symmetry for negative n, yet the surface (defined via Gamma functions) remains symmetrical.

(c28) genmatrix(lambda([x,y],if oddp(x+y) then "" else binom(x,(x+y)/2)),4,7,-3,-5)

          [ 0     0     0     0      1        - 3      6  ]
          [                                               ]
          [    0     0     0     1       - 2       3      ]
          [                                               ]
          [ 0     0     0     1     - 1        1      - 1 ]
          [                                               ]
          [    0     0     1     0        0        0      ]
(d28)     [                                               ]
          [ 0     0     1     1      0         0       0  ]
          [                                               ]
          [    0     1     2     1        0        0      ]
          [                                               ]
          [ 0     1     3     3      1         0       0  ]
          [                                               ]
          [    1     4     6     4        1        0      ]

The secret is to define binom(n,k) as

(c30) funmake(":=",[binom(n,k),'limit('limit(makegamma(binom(x,y)),y,k),x,n)])

(d30) binomial(n, k) := limit  gamma(x + 1)
                        x -> n

                                            1
                     (limit  -------------------------------)
                      y -> k gamma(- y + x + 1) gamma(y + 1)

I.e., let the lower index approach first. You can sort of see this in the plot for binom(-1,-1)=0, which you get by following the constantly 0 "yellow" line binom(x,-1), whereas you get 1 by following the constantly "green" line binom(t,t).