23 October 2014 08:30:37 AM

HPP_PRB:
  C++ version
  Test the HERMITE_PRODUCT_POLYNOMIAL library.

HPP_TEST01:
  COMP_NEXT_GRLEX is given a composition, and computes the 
  next composition in grlex order.

  Rank   Sum   Components

     1       0   0   0

     2       1   0   1
     3       1   1   0

     4       2   0   2
     5       2   1   1
     6       2   2   0

     7       3   0   3
     8       3   1   2
     9       3   2   1
    10       3   3   0

    11       4   0   4
    12       4   1   3
    13       4   2   2
    14       4   3   1
    15       4   4   0

    16       5   0   5
    17       5   1   4
    18       5   2   3
    19       5   3   2
    20       5   4   1

  COMP_UNRANK_GRLEX is given a rank and returns the
  corresponding set of multinomial exponents.

  Rank   Sum   Components

     5       2   1   1
    20       5   4   1
    17       5   1   4
    12       4   1   3
     9       3   2   1

  COMP_RANDOM_GRLEX randomly selects a composition
  between given lower and upper ranks.

  Rank   Sum   Components

     8       3   1   2
    20       5   4   1
    18       5   2   3
    13       4   2   2
    11       4   0   4

  COMP_RANK_GRLEX returns the rank of a given composition.

  Rank   Sum   Components

    15       4   4   0
   148      16  11   5

HPP_TEST015:
  HEP_COEFFICIENTS computes the coefficients and
  exponents of the Hermite polynomial He(n,x).

  He(1,x) =
    + 1 * x^(1).

  He(2,x) =
    - 1 * x^(0)
    + 1 * x^(2).

  He(3,x) =
    - 3 * x^(1)
    + 1 * x^(3).

  He(4,x) =
    + 3 * x^(0)
    - 6 * x^(2)
    + 1 * x^(4).

  He(5,x) =
    + 15 * x^(1)
    - 10 * x^(3)
    + 1 * x^(5).

HPP_TEST02:
  HEP_VALUES stores values of
  the Hermite polynomial He(o,x).
  HEP_VALUE evaluates a Hermite polynomial.

                        Tabulated                 Computed
     O        X          He(O,X)                   He(O,X)                   Error

     0             5                         1                         1         0
     1             5                         5                         5         0
     2             5                        24                        24         0
     3             5                       110                       110         0
     4             5                       478                       478         0
     5             5                      1950                      1950         0
     6             5                      7360                      7360         0
     7             5                     25100                     25100         0
     8             5                     73980                     73980         0
     9             5                    169100                    169100         0
    10             5                    179680                    179680         0
    11             5                   -792600                   -792600         0
    12             5              -5.93948e+06              -5.93948e+06         0
     5             0                         0                         0         0
     5           0.5                   6.28125                   6.28125         0
     5             1                         6                         6         0
     5             3                        18                        18         0
     5            10                     90150                     90150         0

HPP_TEST03:
  HEPP_VALUE evaluates a Hermite product polynomial.
  POLYNOMIAL_VALUE evaluates a polynomial.

  Evaluate at X =   -0.563163  0.912635  0.659018

  Rank  I1  I2  I3:  He(I1,X1)*He(I2,X2)*He(I3,X3)    P(X1,X2,X3)

     1   0   0   0               1               1
     2   0   0   1        0.659018        0.659018
     3   0   1   0        0.912635        0.912635
     4   1   0   0       -0.563163       -0.563163
     5   0   0   2       -0.565695       -0.565695
     6   0   1   1        0.601443        0.601443
     7   0   2   0       -0.167097       -0.167097
     8   1   0   1       -0.371135       -0.371135
     9   1   1   0       -0.513963       -0.513963
    10   2   0   0       -0.682847       -0.682847
    11   0   0   3        -1.69084        -1.69084
    12   0   1   2       -0.516273       -0.516273
    13   0   2   1        -0.11012        -0.11012
    14   0   3   0        -1.97777        -1.97777
    15   1   0   2        0.318579        0.318579
    16   1   1   1       -0.338711       -0.338711
    17   1   2   0        0.094103        0.094103
    18   2   0   1       -0.450009       -0.450009
    19   2   1   0        -0.62319        -0.62319
    20   3   0   0         1.51088         1.51088

HPP_TEST04:
  HEPP_TO_POLYNOMIAL is given a Hermite product polynomial
  and determines its polynomial representation.

  Using spatial dimension M = 2

  HePP #1 = He(0,X)*He(0,Y) =
    + 1 * x^(0,0).

  HePP #2 = He(0,X)*He(1,Y) =
    + 1 * x^(0,1).

  HePP #3 = He(1,X)*He(0,Y) =
    + 1 * x^(1,0).

  HePP #4 = He(0,X)*He(2,Y) =
    - 1 * x^(0,0)
    + 1 * x^(0,2).

  HePP #5 = He(1,X)*He(1,Y) =
    + 1 * x^(1,1).

  HePP #6 = He(2,X)*He(0,Y) =
    - 1 * x^(0,0)
    + 1 * x^(2,0).

  HePP #7 = He(0,X)*He(3,Y) =
    - 3 * x^(0,1)
    + 1 * x^(0,3).

  HePP #8 = He(1,X)*He(2,Y) =
    - 1 * x^(1,0)
    + 1 * x^(1,2).

  HePP #9 = He(2,X)*He(1,Y) =
    - 1 * x^(0,1)
    + 1 * x^(2,1).

  HePP #10 = He(3,X)*He(0,Y) =
    - 3 * x^(1,0)
    + 1 * x^(3,0).

  HePP #11 = He(0,X)*He(4,Y) =
    + 3 * x^(0,0)
    - 6 * x^(0,2)
    + 1 * x^(0,4).

HPP_PRB:
  Normal end of execution.

23 October 2014 08:30:37 AM