1  /* Function definitions that are used by multiple tests.  */
       2  
       3  #define INITS(NAME,TYPEM)					\
       4  void initS##NAME##1 (S##NAME##1 *p, TYPEM y)			\
       5  { p->a = y; }							\
       6  void initS##NAME##2 (S##NAME##2 *p, TYPEM y)			\
       7  { p->a = y; p->b = y+1; }					\
       8  void initS##NAME##3 (S##NAME##3 *p, TYPEM y)			\
       9  { p->a = y; p->b = y+1; p->c = y+2; }				\
      10  void initS##NAME##4 (S##NAME##4 *p, TYPEM y)			\
      11  { p->a = y; p->b = y+1; p->c = y+2; p->d = y+3; }		\
      12  void initS##NAME##5 (S##NAME##5 *p, TYPEM y)			\
      13  { p->a = y; p->b = y+1; p->c = y+2; p->d = y+3; p->e = y+4; }	\
      14  void initS##NAME##6 (S##NAME##6 *p, TYPEM y)			\
      15  { p->a = y; p->b = y+1; p->c = y+2; p->d = y+3; p->e = y+4;	\
      16    p->f = y+5; }							\
      17  void initS##NAME##7 (S##NAME##7 *p, TYPEM y)			\
      18  { p->a = y; p->b = y+1; p->c = y+2; p->d = y+3; p->e = y+4;	\
      19    p->f = y+5; p->g = y+6; }					\
      20  void initS##NAME##8 (S##NAME##8 *p, TYPEM y)			\
      21  { p->a = y; p->b = y+1; p->c = y+2; p->d = y+3; p->e = y+4;	\
      22    p->f = y+5; p->g = y+6; p->h = y+7; }				\
      23  void initS##NAME##9 (S##NAME##9 *p, TYPEM y)			\
      24  { p->a = y; p->b = y+1; p->c = y+2; p->d = y+3; p->e = y+4;	\
      25    p->f = y+5; p->g = y+6; p->h = y+7; p->i = y+8; }		\
      26  void initS##NAME##10 (S##NAME##10 *p, TYPEM y)			\
      27  { p->a = y; p->b = y+1; p->c = y+2; p->d = y+3; p->e = y+4;	\
      28    p->f = y+5; p->g = y+6; p->h = y+7; p->i = y+8; p->j = y+9; }	\
      29  void initS##NAME##11 (S##NAME##11 *p, TYPEM y)			\
      30  { p->a = y; p->b = y+1; p->c = y+2; p->d = y+3; p->e = y+4;	\
      31    p->f = y+5; p->g = y+6; p->h = y+7; p->i = y+8; p->j = y+9;	\
      32    p->k = y+10; }						\
      33  void initS##NAME##12 (S##NAME##12 *p, TYPEM y)			\
      34  { p->a = y; p->b = y+1; p->c = y+2; p->d = y+3; p->e = y+4;	\
      35    p->f = y+5; p->g = y+6; p->h = y+7; p->i = y+8; p->j = y+9;	\
      36    p->k = y+10; p->l = y+11; }					\
      37  void initS##NAME##13 (S##NAME##13 *p, TYPEM y)			\
      38  { p->a = y; p->b = y+1; p->c = y+2; p->d = y+3; p->e = y+4;	\
      39    p->f = y+5; p->g = y+6; p->h = y+7; p->i = y+8; p->j = y+9;	\
      40    p->k = y+10; p->l = y+11; p->m = y+12; }			\
      41  void initS##NAME##14 (S##NAME##14 *p, TYPEM y)			\
      42  { p->a = y; p->b = y+1; p->c = y+2; p->d = y+3; p->e = y+4;	\
      43    p->f = y+5; p->g = y+6; p->h = y+7; p->i = y+8; p->j = y+9;	\
      44    p->k = y+10; p->l = y+11; p->m = y+12; p->n = y+13; }		\
      45  void initS##NAME##15 (S##NAME##15 *p, TYPEM y)			\
      46  { p->a = y; p->b = y+1; p->c = y+2; p->d = y+3; p->e = y+4;	\
      47    p->f = y+5; p->g = y+6; p->h = y+7; p->i = y+8; p->j = y+9;	\
      48    p->k = y+10; p->l = y+11; p->m = y+12; p->n = y+13;		\
      49    p->o = y+14; }						\
      50  void initS##NAME##16 (S##NAME##16 *p, TYPEM y)			\
      51  { p->a = y; p->b = y+1; p->c = y+2; p->d = y+3; p->e = y+4;	\
      52    p->f = y+5; p->g = y+6; p->h = y+7; p->i = y+8; p->j = y+9;	\
      53    p->k = y+10; p->l = y+11; p->m = y+12; p->n = y+13;		\
      54    p->o = y+14; p->p = y+15; }