#! /bin/sh
# This is a shell archive.  Remove anything before this line, then unpack
# it by saving it into a file and typing "sh file".  To overwrite existing
# files, type "sh file -c".  You can also feed this as standard input via
# unshar, or by typing "sh <file", e.g..  If this archive is complete, you
# will see the following message at the end:
#		"End of shell archive."
# Contents:  brussD3 brussD4 brussD4.c
# Wrapped by karin@borodin on Wed Jul 24 21:48:47 1991
PATH=/bin:/usr/bin:/usr/ucb ; export PATH
if test -f 'brussD3' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'brussD3'\"
else
echo shar: Extracting \"'brussD3'\" \(853 characters\)
sed "s/^X//" >'brussD3' <<'END_OF_FILE'
X% example  brussD3
X
Xin hybridconjug;
X
Xf:=mat((2-(6+1)*x1+x1**2*x2 + tau^(-2)*(x5+x3-2*x1) ),
X       (6*x1-x1**2*x2 + tau^(-2)*10*(x6+x4-2*x2) ),
X       (2-(6+1)*x3+x3**2*x4 + tau^(-2)*(x1-x3+x5-x3) ),
X       (6*x3-x3**2*x4 + tau^(-2)*10*(x2-x4+x6-x4) ),
X       (2-(6+1)*x5+x5**2*x6 + tau^(-2)*(x3-x5+x1-x5) ),
X       (6*x5-x5**2*x6 + tau^(-2)*10*(x4-x6+x2-x6) ))$
X
Xr:=mat((0,0,1,0,0,0),
X       (0,0,0,1,0,0),
X       (0,0,0,0,1,0),
X       (0,0,0,0,0,1),
X       (1,0,0,0,0,0),
X       (0,1,0,0,0,0))$
X
Xs:=mat((0,0,1,0,0,0),
X       (0,0,0,1,0,0),
X       (1,0,0,0,0,0),
X       (0,1,0,0,0,0),
X       (0,0,0,0,1,0),
X       (0,0,0,0,0,1))$
X 
X
X
Xxse:={x1,x2,x3,x4,x5,x6,tau}$
Xinits:={taumin=0,taumax=8,x1=2,x2=3,x3=2,x4=3,x5=2,x6=3,tau=1/4}$
X
Xoff numericmode;
Xon linknumeric;
X%gentranout"brussD3.c";
X%gentranout"brussD3num.c";
X
Xsymcon(f,xse,inits,D3,r,s);
X
Xend; 
END_OF_FILE
if test 853 -ne `wc -c <'brussD3'`; then
    echo shar: \"'brussD3'\" unpacked with wrong size!
fi
# end of 'brussD3'
fi
if test -f 'brussD4' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'brussD4'\"
else
echo shar: Extracting \"'brussD4'\" \(1101 characters\)
sed "s/^X//" >'brussD4' <<'END_OF_FILE'
X% example brusselator D4
Xin hybridconjug;
X
Xf:=mat((2-(6+1)*x1+x1**2*x2 + la1^(-2)*(x7+x3-2*x1) ),
X       (6*x1-x1**2*x2 + la1^(-2)*10*(x8+x4-2*x2) ),
X       (2-(6+1)*x3+x3**2*x4 + la1^(-2)*(x1-x3+x5-x3) ),
X       (6*x3-x3**2*x4 + la1^(-2)*10*(x2-x4+x6-x4) ),
X       (2-(6+1)*x5+x5**2*x6 + la1^(-2)*(x3-x5+x7-x5) ),
X       (6*x5-x5**2*x6 + la1^(-2)*10*(x4-x6+x8-x6) ),
X       (2-(6+1)*x7+x7**2*x8 + la1^(-2)*(x1+x5-2*x7) ),
X       (6*x7-x7**2*x8 + la1^(-2)*10*(x2+x6-2*x8) ))$
X
Xr:=mat((0,0,1,0,0,0,0,0),
X       (0,0,0,1,0,0,0,0),
X       (0,0,0,0,1,0,0,0),
X       (0,0,0,0,0,1,0,0),
X       (0,0,0,0,0,0,1,0),
X       (0,0,0,0,0,0,0,1),
X       (1,0,0,0,0,0,0,0),
X       (0,1,0,0,0,0,0,0))$
X
Xs:=mat((0,0,1,0,0,0,0,0),
X       (0,0,0,1,0,0,0,0),
X       (1,0,0,0,0,0,0,0),
X       (0,1,0,0,0,0,0,0),
X       (0,0,0,0,0,0,1,0),
X       (0,0,0,0,0,0,0,1),
X       (0,0,0,0,1,0,0,0),
X       (0,0,0,0,0,1,0,0))$
X
Xxse:={x1,x2,x3,x4,x5,x6,x7,x8,la1}$
Xinitdat:={x1=2,x2=3,x3=2,x4=3,x5=2,x6=3,x7=2,x8=3,la1=1/4,
X          taumin=0,taumax=8}$
X
Xoff numericmode;
Xgentranout"brussD4.c";
X
Xsymcon(F,XSE,initdat,D4,r,s);
X
Xend; 
END_OF_FILE
if test 1101 -ne `wc -c <'brussD4'`; then
    echo shar: \"'brussD4'\" unpacked with wrong size!
fi
# end of 'brussD4'
fi
if test -f 'brussD4.c' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'brussD4.c'\"
else
echo shar: Extracting \"'brussD4.c'\" \(43482 characters\)
sed "s/^X//" >'brussD4.c' <<'END_OF_FILE'
X#include <strings.h>
X#include <stdio.h>
X#include <math.h>
X#include <malloc.h>
X#include "macros.h"
X#include "matutil.h"
X#include "matalloc.h"
X
X#include "group.h"
X
Xint m=8, n=9, npar=0, nog = 7;
Xchar par_string[1][10] ;
X 
Xvoid setpar()
X{
X}
X
Xvoid init_data()
X{
X    setpar();
X    y_guess[1]=2.0;
X    y_guess[2]=3.0;
X    y_guess[3]=2.0;
X    y_guess[4]=3.0;
X    y_guess[5]=2.0;
X    y_guess[6]=3.0;
X    y_guess[7]=2.0;
X    y_guess[8]=3.0;
X    y_guess[9]=1.0/4.0;
X    tau_min=0.0;
X    tau_max=8.0;
X}
Xstatic Group *ID,*Z23,*Z21,*K42,*Z20,*Z22,*D4;
Xstatic Op *op;
X#define ID_NO 1
X#define Z23_NO 2
X#define Z21_NO 3
X#define K42_NO 4
X#define Z20_NO 5
X#define Z22_NO 6
X#define D4_NO 7
X
Xstatic void D4_proc_2(Y,yt)
Xdouble *Y,*yt;
X{
X    yt[1]=Y[3];
X    yt[2]=Y[4];
X    yt[3]=Y[5];
X    yt[4]=Y[6];
X    yt[5]=Y[7];
X    yt[6]=Y[8];
X    yt[7]=Y[1];
X    yt[8]=Y[2];
X    yt[9]=Y[9];
X}
Xstatic void D4_proc_5(Y,yt)
Xdouble *Y,*yt;
X{
X    yt[1]=Y[3];
X    yt[2]=Y[4];
X    yt[3]=Y[1];
X    yt[4]=Y[2];
X    yt[5]=Y[7];
X    yt[6]=Y[8];
X    yt[7]=Y[5];
X    yt[8]=Y[6];
X    yt[9]=Y[9];
X}
Xstatic void D4_proc_4(Y,yt)
Xdouble *Y,*yt;
X{
X    yt[1]=Y[7];
X    yt[2]=Y[8];
X    yt[3]=Y[1];
X    yt[4]=Y[2];
X    yt[5]=Y[3];
X    yt[6]=Y[4];
X    yt[7]=Y[5];
X    yt[8]=Y[6];
X    yt[9]=Y[9];
X}
Xstatic Group* change_group_5(sigma)
X        Group *sigma;
X{
X     switch (sigma->no) {
X     case Z21_NO : return Z23;
X     case Z23_NO : return Z21;
X     default : return sigma;
X}
X}
Xstatic Group* change_group_2(sigma)
X        Group *sigma;
X{
X     switch (sigma->no) {
X     case Z22_NO : return Z20;
X     case Z20_NO : return Z22;
X     case Z21_NO : return Z23;
X     case Z23_NO : return Z21;
X     default : return sigma;
X}
X}
Xstatic int isotypic_triv(i)
X     int i;
X{
X     switch (i) {
X     default : return i;
X}
X}
Xstatic int isotypic_K42_5(i)
X     int i;
X{
X     switch (i) {
X   case 3 : return  2 ;
X   case 2 : return  3 ;
X     default : return i;
X}
X}
Xstatic int isotypic_K42_2(i)
X     int i;
X{
X     switch (i) {
X   case 3 : return  2 ;
X   case 2 : return  3 ;
X     default : return i;
X}
X}
Xvoid f()
X{
X}
Xvoid df()
X{
X}
Xstatic void gID(U,g)
Xdouble *U,*g;
X{
X    g[1]=(2.0*U[8]*U[7]*U[1]-(2.0*U[8]*U[5]*U[3])+(U[7]*U[7])*U[2]-(
X2.0*U[7]*U[6
X     ]*U[3])-(2.0*U[7]*U[5]*U[4])+2.0*U[6]*U[5]*U[1]+(U[5]*U[5])*U[2]+
X2.0*U[4]*U
X     [3]*U[1]+(U[3]*U[3])*U[2]+U[2]*(U[1]*U[1])-(28.0*U[1])+16.0)/4.0;
X    g[2]=(-(2.0*U[8]*U[7]*U[1])+2.0*U[8]*U[5]*U[3]-((U[7]*U[7])*U[2])+
X2.0*U[7]*U
X     [6]*U[3]+2.0*U[7]*U[5]*U[4]-(2.0*U[6]*U[5]*U[1])-((U[5]*U[5])*U[2])-(
X2.0*U[
X     4]*U[3]*U[1])-((U[3]*U[3])*U[2])-(U[2]*(U[1]*U[1]))+24.0*U[1])/
X4.0;
X    g[3]=(2.0*(U[9]*U[9])*U[8]*U[7]*U[3]-(2.0*(U[9]*U[9])*U[8]*U[5]*U[1])+(U[
X9]*
X     U[9])*(U[7]*U[7])*U[4]-(2.0*(U[9]*U[9])*U[7]*U[6]*U[1])-(2.0*(U[9]*U[
X9])*U[
X     7]*U[5]*U[2])+2.0*(U[9]*U[9])*U[6]*U[5]*U[3]+(U[9]*U[9])*(U[5]*U[5])*U[
X4]+(
X     U[9]*U[9])*U[4]*(U[3]*U[3])+(U[9]*U[9])*U[4]*(U[1]*U[1])+2.0*(U[9]*U[
X9])*U[
X     3]*U[2]*U[1]-(28.0*(U[9]*U[9])*U[3])-(16.0*U[3]))/(4.0*(U[9]*U[9]));
X    g[4]=(-(2.0*(U[9]*U[9])*U[8]*U[7]*U[3])+2.0*(U[9]*U[9])*U[8]*U[5]*U[
X1]-((U[9
X     ]*U[9])*(U[7]*U[7])*U[4])+2.0*(U[9]*U[9])*U[7]*U[6]*U[1]+2.0*(U[9]*U[
X9])*U[
X     7]*U[5]*U[2]-(2.0*(U[9]*U[9])*U[6]*U[5]*U[3])-((U[9]*U[9])*(U[5]*U[
X5])*U[4]
X     )-((U[9]*U[9])*U[4]*(U[3]*U[3]))-((U[9]*U[9])*U[4]*(U[1]*U[1]))-(
X2.0*(U[9]*
X     U[9])*U[3]*U[2]*U[1])+24.0*(U[9]*U[9])*U[3]-(160.0*U[4]))/(4.0*(U[
X9]*U[9]))
X     ;
X    g[5]=(2.0*(U[9]*U[9])*U[8]*U[7]*U[5]-(2.0*(U[9]*U[9])*U[8]*U[3]*U[1])+(U[
X9]*
X     U[9])*(U[7]*U[7])*U[6]-(2.0*(U[9]*U[9])*U[7]*U[4]*U[1])-(2.0*(U[9]*U[
X9])*U[
X     7]*U[3]*U[2])+(U[9]*U[9])*U[6]*(U[5]*U[5])+(U[9]*U[9])*U[6]*(U[3]*U[
X3])+(U[
X     9]*U[9])*U[6]*(U[1]*U[1])+2.0*(U[9]*U[9])*U[5]*U[4]*U[3]+2.0*(U[9]*U[
X9])*U[
X     5]*U[2]*U[1]-(28.0*(U[9]*U[9])*U[5])-(8.0*U[5]))/(4.0*(U[9]*U[9]));
X    g[6]=(-(2.0*(U[9]*U[9])*U[8]*U[7]*U[5])+2.0*(U[9]*U[9])*U[8]*U[3]*U[
X1]-((U[9
X     ]*U[9])*(U[7]*U[7])*U[6])+2.0*(U[9]*U[9])*U[7]*U[4]*U[1]+2.0*(U[9]*U[
X9])*U[
X     7]*U[3]*U[2]-((U[9]*U[9])*U[6]*(U[5]*U[5]))-((U[9]*U[9])*U[6]*(U[3]*U[
X3]))-
X     ((U[9]*U[9])*U[6]*(U[1]*U[1]))-(2.0*(U[9]*U[9])*U[5]*U[4]*U[3])-(
X2.0*(U[9]*
X     U[9])*U[5]*U[2]*U[1])+24.0*(U[9]*U[9])*U[5]-(80.0*U[6]))/(4.0*(U[9]*U[
X9]));
X    g[7]=((U[9]*U[9])*U[8]*(U[7]*U[7])+(U[9]*U[9])*U[8]*(U[5]*U[5])+(U[
X9]*U[9])*
X     U[8]*(U[3]*U[3])+(U[9]*U[9])*U[8]*(U[1]*U[1])+2.0*(U[9]*U[9])*U[7]*U[
X6]*U[5
X     ]+2.0*(U[9]*U[9])*U[7]*U[4]*U[3]+2.0*(U[9]*U[9])*U[7]*U[2]*U[1]-(
X28.0*(U[9]
X     *U[9])*U[7])-(2.0*(U[9]*U[9])*U[6]*U[3]*U[1])-(2.0*(U[9]*U[9])*U[5]*U[
X4]*U[
X     1])-(2.0*(U[9]*U[9])*U[5]*U[3]*U[2])-(8.0*U[7]))/(4.0*(U[9]*U[9]));
X    g[8]=(-((U[9]*U[9])*U[8]*(U[7]*U[7]))-((U[9]*U[9])*U[8]*(U[5]*U[5]))-((U[
X9]*
X     U[9])*U[8]*(U[3]*U[3]))-((U[9]*U[9])*U[8]*(U[1]*U[1]))-(2.0*(U[9]*U[
X9])*U[7
X     ]*U[6]*U[5])-(2.0*(U[9]*U[9])*U[7]*U[4]*U[3])-(2.0*(U[9]*U[9])*U[7]*U[
X2]*U[
X     1])+24.0*(U[9]*U[9])*U[7]+2.0*(U[9]*U[9])*U[6]*U[3]*U[1]+2.0*(U[9]*U[
X9])*U[
X     5]*U[4]*U[1]+2.0*(U[9]*U[9])*U[5]*U[3]*U[2]-(80.0*U[8]))/(4.0*(U[9]*U[
X9]));
X}
Xstatic void dgID1(U,dgu)
Xdouble *U,**dgu;
X{
X    dgu[1][1]=(U[8]*U[7]+U[6]*U[5]+U[4]*U[3]+U[2]*U[1]-14.0)/2.0;
X    dgu[1][2]=(U[7]*U[7]+U[5]*U[5]+U[3]*U[3]+U[1]*U[1])/4.0;
X    dgu[1][3]=(-(U[8]*U[5])-(U[7]*U[6])+U[4]*U[1]+U[3]*U[2])/2.0;
X    dgu[1][4]=(-(U[7]*U[5])+U[3]*U[1])/2.0;
X    dgu[1][5]=(-(U[8]*U[3])-(U[7]*U[4])+U[6]*U[1]+U[5]*U[2])/2.0;
X    dgu[1][6]=(-(U[7]*U[3])+U[5]*U[1])/2.0;
X    dgu[1][7]=(U[8]*U[1]+U[7]*U[2]-(U[6]*U[3])-(U[5]*U[4]))/2.0;
X    dgu[1][8]=(U[7]*U[1]-(U[5]*U[3]))/2.0;
X    dgu[1][9]=0.0;
X    dgu[2][1]=(-(U[8]*U[7])-(U[6]*U[5])-(U[4]*U[3])-(U[2]*U[1])+12.0)/
X2.0;
X    dgu[2][2]=(-(U[7]*U[7])-(U[5]*U[5])-(U[3]*U[3])-(U[1]*U[1]))/4.0;
X    dgu[2][3]=(U[8]*U[5]+U[7]*U[6]-(U[4]*U[1])-(U[3]*U[2]))/2.0;
X    dgu[2][4]=(U[7]*U[5]-(U[3]*U[1]))/2.0;
X    dgu[2][5]=(U[8]*U[3]+U[7]*U[4]-(U[6]*U[1])-(U[5]*U[2]))/2.0;
X    dgu[2][6]=(U[7]*U[3]-(U[5]*U[1]))/2.0;
X    dgu[2][7]=(-(U[8]*U[1])-(U[7]*U[2])+U[6]*U[3]+U[5]*U[4])/2.0;
X    dgu[2][8]=(-(U[7]*U[1])+U[5]*U[3])/2.0;
X    dgu[2][9]=0.0;
X    dgu[3][1]=(-(U[8]*U[5])-(U[7]*U[6])+U[4]*U[1]+U[3]*U[2])/2.0;
X    dgu[3][2]=(-(U[7]*U[5])+U[3]*U[1])/2.0;
X    dgu[3][3]=((U[9]*U[9])*U[8]*U[7]+(U[9]*U[9])*U[6]*U[5]+(U[9]*U[9])*U[
X4]*U[3]
X     +(U[9]*U[9])*U[2]*U[1]-(14.0*(U[9]*U[9]))-8.0)/(2.0*(U[9]*U[9]));
X    dgu[3][4]=(U[7]*U[7]+U[5]*U[5]+U[3]*U[3]+U[1]*U[1])/4.0;
X    dgu[3][5]=(-(U[8]*U[1])-(U[7]*U[2])+U[6]*U[3]+U[5]*U[4])/2.0;
X    dgu[3][6]=(-(U[7]*U[1])+U[5]*U[3])/2.0;
X    dgu[3][7]=(U[8]*U[3]+U[7]*U[4]-(U[6]*U[1])-(U[5]*U[2]))/2.0;
X    dgu[3][8]=(U[7]*U[3]-(U[5]*U[1]))/2.0;
X    dgu[3][9]=(8.0*U[3])/(U[9]*U[9]*U[9]);
X    dgu[4][1]=(U[8]*U[5]+U[7]*U[6]-(U[4]*U[1])-(U[3]*U[2]))/2.0;
X    dgu[4][2]=(U[7]*U[5]-(U[3]*U[1]))/2.0;
X    dgu[4][3]=(-(U[8]*U[7])-(U[6]*U[5])-(U[4]*U[3])-(U[2]*U[1])+12.0)/
X2.0;
X    dgu[4][4]=(-((U[9]*U[9])*(U[7]*U[7]))-((U[9]*U[9])*(U[5]*U[5]))-((U[
X9]*U[9])
X     *(U[3]*U[3]))-((U[9]*U[9])*(U[1]*U[1]))-160.0)/(4.0*(U[9]*U[9]));
X    dgu[4][5]=(U[8]*U[1]+U[7]*U[2]-(U[6]*U[3])-(U[5]*U[4]))/2.0;
X    dgu[4][6]=(U[7]*U[1]-(U[5]*U[3]))/2.0;
X    dgu[4][7]=(-(U[8]*U[3])-(U[7]*U[4])+U[6]*U[1]+U[5]*U[2])/2.0;
X    dgu[4][8]=(-(U[7]*U[3])+U[5]*U[1])/2.0;
X    dgu[4][9]=(80.0*U[4])/(U[9]*U[9]*U[9]);
X    dgu[5][1]=(-(U[8]*U[3])-(U[7]*U[4])+U[6]*U[1]+U[5]*U[2])/2.0;
X    dgu[5][2]=(-(U[7]*U[3])+U[5]*U[1])/2.0;
X    dgu[5][3]=(-(U[8]*U[1])-(U[7]*U[2])+U[6]*U[3]+U[5]*U[4])/2.0;
X    dgu[5][4]=(-(U[7]*U[1])+U[5]*U[3])/2.0;
X    dgu[5][5]=((U[9]*U[9])*U[8]*U[7]+(U[9]*U[9])*U[6]*U[5]+(U[9]*U[9])*U[
X4]*U[3]
X     +(U[9]*U[9])*U[2]*U[1]-(14.0*(U[9]*U[9]))-4.0)/(2.0*(U[9]*U[9]));
X    dgu[5][6]=(U[7]*U[7]+U[5]*U[5]+U[3]*U[3]+U[1]*U[1])/4.0;
X    dgu[5][7]=(U[8]*U[5]+U[7]*U[6]-(U[4]*U[1])-(U[3]*U[2]))/2.0;
X    dgu[5][8]=(U[7]*U[5]-(U[3]*U[1]))/2.0;
X    dgu[5][9]=(4.0*U[5])/(U[9]*U[9]*U[9]);
X    dgu[6][1]=(U[8]*U[3]+U[7]*U[4]-(U[6]*U[1])-(U[5]*U[2]))/2.0;
X    dgu[6][2]=(U[7]*U[3]-(U[5]*U[1]))/2.0;
X    dgu[6][3]=(U[8]*U[1]+U[7]*U[2]-(U[6]*U[3])-(U[5]*U[4]))/2.0;
X    dgu[6][4]=(U[7]*U[1]-(U[5]*U[3]))/2.0;
X    dgu[6][5]=(-(U[8]*U[7])-(U[6]*U[5])-(U[4]*U[3])-(U[2]*U[1])+12.0)/
X2.0;
X    dgu[6][6]=(-((U[9]*U[9])*(U[7]*U[7]))-((U[9]*U[9])*(U[5]*U[5]))-((U[
X9]*U[9])
X     *(U[3]*U[3]))-((U[9]*U[9])*(U[1]*U[1]))-80.0)/(4.0*(U[9]*U[9]));
X    dgu[6][7]=(-(U[8]*U[5])-(U[7]*U[6])+U[4]*U[1]+U[3]*U[2])/2.0;
X    dgu[6][8]=(-(U[7]*U[5])+U[3]*U[1])/2.0;
X    dgu[6][9]=(40.0*U[6])/(U[9]*U[9]*U[9]);
X    dgu[7][1]=(U[8]*U[1]+U[7]*U[2]-(U[6]*U[3])-(U[5]*U[4]))/2.0;
X    dgu[7][2]=(U[7]*U[1]-(U[5]*U[3]))/2.0;
X    dgu[7][3]=(U[8]*U[3]+U[7]*U[4]-(U[6]*U[1])-(U[5]*U[2]))/2.0;
X    dgu[7][4]=(U[7]*U[3]-(U[5]*U[1]))/2.0;
X    dgu[7][5]=(U[8]*U[5]+U[7]*U[6]-(U[4]*U[1])-(U[3]*U[2]))/2.0;
X    dgu[7][6]=(U[7]*U[5]-(U[3]*U[1]))/2.0;
X    dgu[7][7]=((U[9]*U[9])*U[8]*U[7]+(U[9]*U[9])*U[6]*U[5]+(U[9]*U[9])*U[
X4]*U[3]
X     +(U[9]*U[9])*U[2]*U[1]-(14.0*(U[9]*U[9]))-4.0)/(2.0*(U[9]*U[9]));
X    dgu[7][8]=(U[7]*U[7]+U[5]*U[5]+U[3]*U[3]+U[1]*U[1])/4.0;
X    dgu[7][9]=(4.0*U[7])/(U[9]*U[9]*U[9]);
X    dgu[8][1]=(-(U[8]*U[1])-(U[7]*U[2])+U[6]*U[3]+U[5]*U[4])/2.0;
X    dgu[8][2]=(-(U[7]*U[1])+U[5]*U[3])/2.0;
X    dgu[8][3]=(-(U[8]*U[3])-(U[7]*U[4])+U[6]*U[1]+U[5]*U[2])/2.0;
X    dgu[8][4]=(-(U[7]*U[3])+U[5]*U[1])/2.0;
X    dgu[8][5]=(-(U[8]*U[5])-(U[7]*U[6])+U[4]*U[1]+U[3]*U[2])/2.0;
X    dgu[8][6]=(-(U[7]*U[5])+U[3]*U[1])/2.0;
X    dgu[8][7]=(-(U[8]*U[7])-(U[6]*U[5])-(U[4]*U[3])-(U[2]*U[1])+12.0)/
X2.0;
X    dgu[8][8]=(-((U[9]*U[9])*(U[7]*U[7]))-((U[9]*U[9])*(U[5]*U[5]))-((U[
X9]*U[9])
X     *(U[3]*U[3]))-((U[9]*U[9])*(U[1]*U[1]))-80.0)/(4.0*(U[9]*U[9]));
X    dgu[8][9]=(40.0*U[8])/(U[9]*U[9]*U[9]);
X}
Xstatic void cgID1(U,Z,c)
Xdouble *U,*Z,**c;
X{
X    c[1][1]=(-(U[8]*Z[8])+U[8]*Z[7]-(U[6]*Z[6])+U[6]*Z[5]-(U[4]*Z[4])+U[
X4]*Z[3]-
X     (U[2]*Z[2])+U[2]*Z[1])/2.0;
X    c[1][2]=(-(U[7]*Z[8])+U[7]*Z[7]-(U[5]*Z[6])+U[5]*Z[5]-(U[3]*Z[4])+U[
X3]*Z[3]-
X     (U[1]*Z[2])+U[1]*Z[1])/2.0;
X    c[1][3]=(U[8]*Z[6]-(U[8]*Z[5])+U[6]*Z[8]-(U[6]*Z[7])-(U[4]*Z[2])+U[
X4]*Z[1]-(
X     U[2]*Z[4])+U[2]*Z[3])/2.0;
X    c[1][4]=(U[7]*Z[6]-(U[7]*Z[5])+U[5]*Z[8]-(U[5]*Z[7])-(U[3]*Z[2])+U[
X3]*Z[1]-(
X     U[1]*Z[4])+U[1]*Z[3])/2.0;
X    c[1][5]=(U[8]*Z[4]-(U[8]*Z[3])-(U[6]*Z[2])+U[6]*Z[1]+U[4]*Z[8]-(U[4]*Z[
X7])-(
X     U[2]*Z[6])+U[2]*Z[5])/2.0;
X    c[1][6]=(U[7]*Z[4]-(U[7]*Z[3])-(U[5]*Z[2])+U[5]*Z[1]+U[3]*Z[8]-(U[3]*Z[
X7])-(
X     U[1]*Z[6])+U[1]*Z[5])/2.0;
X    c[1][7]=(-(U[8]*Z[2])+U[8]*Z[1]+U[6]*Z[4]-(U[6]*Z[3])+U[4]*Z[6]-(U[
X4]*Z[5])-
X     (U[2]*Z[8])+U[2]*Z[7])/2.0;
X    c[1][8]=(-(U[7]*Z[2])+U[7]*Z[1]+U[5]*Z[4]-(U[5]*Z[3])+U[3]*Z[6]-(U[
X3]*Z[5])-
X     (U[1]*Z[8])+U[1]*Z[7])/2.0;
X    c[1][9]=0.0;
X    c[2][2]=0.0;
X    c[2][3]=(U[7]*Z[6]-(U[7]*Z[5])+U[5]*Z[8]-(U[5]*Z[7])-(U[3]*Z[2])+U[
X3]*Z[1]-(
X     U[1]*Z[4])+U[1]*Z[3])/2.0;
X    c[2][4]=0.0;
X    c[2][5]=(U[7]*Z[4]-(U[7]*Z[3])-(U[5]*Z[2])+U[5]*Z[1]+U[3]*Z[8]-(U[3]*Z[
X7])-(
X     U[1]*Z[6])+U[1]*Z[5])/2.0;
X    c[2][6]=0.0;
X    c[2][7]=(-(U[7]*Z[2])+U[7]*Z[1]+U[5]*Z[4]-(U[5]*Z[3])+U[3]*Z[6]-(U[
X3]*Z[5])-
X     (U[1]*Z[8])+U[1]*Z[7])/2.0;
X    c[2][8]=0.0;
X    c[2][9]=0.0;
X    c[3][3]=(-(U[8]*Z[8])+U[8]*Z[7]-(U[6]*Z[6])+U[6]*Z[5]-(U[4]*Z[4])+U[
X4]*Z[3]-
X     (U[2]*Z[2])+U[2]*Z[1])/2.0;
X    c[3][4]=(-(U[7]*Z[8])+U[7]*Z[7]-(U[5]*Z[6])+U[5]*Z[5]-(U[3]*Z[4])+U[
X3]*Z[3]-
X     (U[1]*Z[2])+U[1]*Z[1])/2.0;
X    c[3][5]=(U[8]*Z[2]-(U[8]*Z[1])-(U[6]*Z[4])+U[6]*Z[3]-(U[4]*Z[6])+U[
X4]*Z[5]+U
X     [2]*Z[8]-(U[2]*Z[7]))/2.0;
X    c[3][6]=(U[7]*Z[2]-(U[7]*Z[1])-(U[5]*Z[4])+U[5]*Z[3]-(U[3]*Z[6])+U[
X3]*Z[5]+U
X     [1]*Z[8]-(U[1]*Z[7]))/2.0;
X    c[3][7]=(-(U[8]*Z[4])+U[8]*Z[3]+U[6]*Z[2]-(U[6]*Z[1])-(U[4]*Z[8])+U[
X4]*Z[7]+
X     U[2]*Z[6]-(U[2]*Z[5]))/2.0;
X    c[3][8]=(-(U[7]*Z[4])+U[7]*Z[3]+U[5]*Z[2]-(U[5]*Z[1])-(U[3]*Z[8])+U[
X3]*Z[7]+
X     U[1]*Z[6]-(U[1]*Z[5]))/2.0;
X    c[3][9]=(8.0*Z[3])/(U[9]*U[9]*U[9]);
X    c[4][4]=0.0;
X    c[4][5]=(U[7]*Z[2]-(U[7]*Z[1])-(U[5]*Z[4])+U[5]*Z[3]-(U[3]*Z[6])+U[
X3]*Z[5]+U
X     [1]*Z[8]-(U[1]*Z[7]))/2.0;
X    c[4][6]=0.0;
X    c[4][7]=(-(U[7]*Z[4])+U[7]*Z[3]+U[5]*Z[2]-(U[5]*Z[1])-(U[3]*Z[8])+U[
X3]*Z[7]+
X     U[1]*Z[6]-(U[1]*Z[5]))/2.0;
X    c[4][8]=0.0;
X    c[4][9]=(80.0*Z[4])/(U[9]*U[9]*U[9]);
X    c[5][5]=(-(U[8]*Z[8])+U[8]*Z[7]-(U[6]*Z[6])+U[6]*Z[5]-(U[4]*Z[4])+U[
X4]*Z[3]-
X     (U[2]*Z[2])+U[2]*Z[1])/2.0;
X    c[5][6]=(-(U[7]*Z[8])+U[7]*Z[7]-(U[5]*Z[6])+U[5]*Z[5]-(U[3]*Z[4])+U[
X3]*Z[3]-
X     (U[1]*Z[2])+U[1]*Z[1])/2.0;
X    c[5][7]=(-(U[8]*Z[6])+U[8]*Z[5]-(U[6]*Z[8])+U[6]*Z[7]+U[4]*Z[2]-(U[
X4]*Z[1])+
X     U[2]*Z[4]-(U[2]*Z[3]))/2.0;
X    c[5][8]=(-(U[7]*Z[6])+U[7]*Z[5]-(U[5]*Z[8])+U[5]*Z[7]+U[3]*Z[2]-(U[
X3]*Z[1])+
X     U[1]*Z[4]-(U[1]*Z[3]))/2.0;
X    c[5][9]=(4.0*Z[5])/(U[9]*U[9]*U[9]);
X    c[6][6]=0.0;
X    c[6][7]=(-(U[7]*Z[6])+U[7]*Z[5]-(U[5]*Z[8])+U[5]*Z[7]+U[3]*Z[2]-(U[
X3]*Z[1])+
X     U[1]*Z[4]-(U[1]*Z[3]))/2.0;
X    c[6][8]=0.0;
X    c[6][9]=(40.0*Z[6])/(U[9]*U[9]*U[9]);
X    c[7][7]=(-(U[8]*Z[8])+U[8]*Z[7]-(U[6]*Z[6])+U[6]*Z[5]-(U[4]*Z[4])+U[
X4]*Z[3]-
X     (U[2]*Z[2])+U[2]*Z[1])/2.0;
X    c[7][8]=(-(U[7]*Z[8])+U[7]*Z[7]-(U[5]*Z[6])+U[5]*Z[5]-(U[3]*Z[4])+U[
X3]*Z[3]-
X     (U[1]*Z[2])+U[1]*Z[1])/2.0;
X    c[7][9]=(4.0*Z[7])/(U[9]*U[9]*U[9]);
X    c[8][8]=0.0;
X    c[8][9]=(40.0*Z[8])/(U[9]*U[9]*U[9]);
X    c[9][9]=(-(120.0*U[8]*Z[8])-(12.0*U[7]*Z[7])-(120.0*U[6]*Z[6])-(
X12.0*U[5]*Z[
X     5])-(240.0*U[4]*Z[4])-(24.0*U[3]*Z[3]))/(U[9]*U[9]*U[9]*U[9]);
X}
Xstatic void transformID(U,y)
Xdouble *U,*y;
X{
X    y[1]=(-U[7]+U[5]+U[3]+U[1])/2.0;
X    y[2]=(-U[8]+U[6]+U[4]+U[2])/2.0;
X    y[3]=(U[7]+U[5]-U[3]+U[1])/2.0;
X    y[4]=(U[8]+U[6]-U[4]+U[2])/2.0;
X    y[5]=(U[7]-U[5]+U[3]+U[1])/2.0;
X    y[6]=(U[8]-U[6]+U[4]+U[2])/2.0;
X    y[7]=(-U[7]-U[5]-U[3]+U[1])/2.0;
X    y[8]=(-U[8]-U[6]-U[4]+U[2])/2.0;
X    y[9]=U[9];
X}
Xstatic void invtransformID(Y,u)
Xdouble *u,*Y;
X{
X    u[1]=(Y[7]+Y[5]+Y[3]+Y[1])/2.0;
X    u[2]=(Y[8]+Y[6]+Y[4]+Y[2])/2.0;
X    u[3]=(-Y[7]+Y[5]-Y[3]+Y[1])/2.0;
X    u[4]=(-Y[8]+Y[6]-Y[4]+Y[2])/2.0;
X    u[5]=(-Y[7]-Y[5]+Y[3]+Y[1])/2.0;
X    u[6]=(-Y[8]-Y[6]+Y[4]+Y[2])/2.0;
X    u[7]=(-Y[7]+Y[5]+Y[3]-Y[1])/2.0;
X    u[8]=(-Y[8]+Y[6]+Y[4]-Y[2])/2.0;
X    u[9]=Y[9];
X}
Xstatic void testIDZ23(U,t)
Xdouble *U,*t;
X{
X    t[1]=(U[7]*SQRT2+U[5]*SQRT2)/2.0;
X    t[2]=(U[8]*SQRT2+U[6]*SQRT2)/2.0;
X}
Xstatic void testIDZ21(U,t)
Xdouble *U,*t;
X{
X    t[1]=(-(U[7]*SQRT2)+U[5]*SQRT2)/2.0;
X    t[2]=(-(U[8]*SQRT2)+U[6]*SQRT2)/2.0;
X}
Xstatic void testIDZ20(U,t)
Xdouble *U,*t;
X{
X    t[1]=U[3];
X    t[2]=U[4];
X    t[3]=U[7];
X    t[4]=U[8];
X}
Xstatic void testIDZ22(U,t)
Xdouble *U,*t;
X{
X    t[1]=U[3];
X    t[2]=U[4];
X    t[3]=U[5];
X    t[4]=U[6];
X}
Xstatic void init_ID()
X{
X    Op *op;
X    ID->label="ID";
X    ID->implemented=TRUE;
X    ID->transform=transformID;
X    ID->inv_transform=invtransformID;
X    append_op(ID,D4_proc_2,D4_proc_4,change_group_2,isotypic_triv);
X    append_op(ID,D4_proc_2,D4_proc_4,change_group_2,isotypic_triv);
X    append_op(ID,D4_proc_2,D4_proc_4,change_group_2,isotypic_triv);
X    append_op(ID,D4_proc_5,D4_proc_5,change_group_5,isotypic_triv);
X    append_op(ID,D4_proc_2,D4_proc_4,change_group_2,isotypic_triv);
X    append_op(ID,D4_proc_2,D4_proc_4,change_group_2,isotypic_triv);
X    append_op(ID,D4_proc_2,D4_proc_4,change_group_2,isotypic_triv);
X    append_op(ID,D4_proc_5,D4_proc_5,change_group_5,isotypic_triv);
X    ID->m[1]=8;
X    ID->g=gID;
X    ID->dg[1]=dgID1;
X    ID->cg[1]=cgID1;
X    ID->test[1]=testIDZ23;
X    ID->test[2]=testIDZ21;
X    ID->test[3]=testIDZ20;
X    ID->test[4]=testIDZ22;
X    ID->ntest[1]=2;
X    ID->ntest[2]=2;
X    ID->ntest[3]=4;
X    ID->ntest[4]=4;
X    ID->supergroup[1]=Z23;
X    ID->supergroup[2]=Z21;
X    ID->supergroup[3]=Z20;
X    ID->supergroup[4]=Z22;
X    ID->next=nil;
X    ID->no=ID_NO;
X}
Xstatic void transformZ23(U,y)
Xdouble *U,*y;
X{
X    y[1]=(U[5]*SQRT2+U[3]+U[1])/2.0;
X    y[2]=(U[6]*SQRT2+U[4]+U[2])/2.0;
X    y[3]=(-U[3]+U[1])/2.0;
X    y[4]=(-U[4]+U[2])/2.0;
X    y[5]=(-(U[5]*SQRT2)+U[3]+U[1])/2.0;
X    y[6]=(-(U[6]*SQRT2)+U[4]+U[2])/2.0;
X    y[7]=(-U[3]+U[1])/2.0;
X    y[8]=(-U[4]+U[2])/2.0;
X    y[9]=U[7];
X}
Xstatic void invtransformZ23(Y,u)
Xdouble *u,*Y;
X{
X    u[1]=(Y[7]+Y[5]+Y[3]+Y[1])/2.0;
X    u[2]=(Y[8]+Y[6]+Y[4]+Y[2])/2.0;
X    u[3]=(-Y[7]+Y[5]-Y[3]+Y[1])/2.0;
X    u[4]=(-Y[8]+Y[6]-Y[4]+Y[2])/2.0;
X    u[5]=(-(Y[5]*SQRT2)+Y[1]*SQRT2)/2.0;
X    u[6]=(-(Y[6]*SQRT2)+Y[2]*SQRT2)/2.0;
X    u[7]=Y[9];
X}
Xstatic void tangentZ23nachID(Z,y)
Xdouble *Z,*y;
X{
X    y[1]=0.0;
X    y[2]=0.0;
X    y[3]=0.0;
X    y[4]=0.0;
X    y[5]=(Z[1]*SQRT2)/2.0;
X    y[6]=(Z[2]*SQRT2)/2.0;
X    y[7]=(Z[1]*SQRT2)/2.0;
X    y[8]=(Z[2]*SQRT2)/2.0;
X    y[9]=0.0;
X}
Xstatic void init_Z23()
X{
X    Op *op;
X    Z23->label="Z23";
X    Z23->implemented=FALSE;
X    Z23->transform=transformZ23;
X    Z23->inv_transform=invtransformZ23;
X    append_op(Z23,D4_proc_2,D4_proc_4,change_group_2,isotypic_triv);
X    append_op(Z23,D4_proc_2,D4_proc_4,change_group_2,isotypic_triv);
X    append_op(Z23,D4_proc_2,D4_proc_4,change_group_2,isotypic_triv);
X    append_op(Z23,D4_proc_2,D4_proc_4,change_group_2,isotypic_triv);
X    Z23->m[1]=6;
X    Z23->m[2]=2;
X    Z23->subgroup[2][1]=ID;
X    Z23->symmetric[2][1]=TRUE;
X    Z23->tangent[2][1]=tangentZ23nachID;
X    Z23->supergroup[1]=K42;
X    Z23->supergroup[2]=D4;
X    Z23->next=ID;
X    Z23->no=Z23_NO;
X}
Xstatic void gZ21(U,g)
Xdouble *U,*g;
X{
X    g[1]=(-(2.0*U[6]*U[5]*U[3])+2.0*U[6]*U[5]*U[1]-((U[5]*U[5])*U[4])+(U[
X5]*U[5]
X     )*U[2]+2.0*U[4]*U[3]*U[1]+(U[3]*U[3])*U[2]+U[2]*(U[1]*U[1])-(28.0*U[
X1])+
X     16.0)/4.0;
X    g[2]=(2.0*U[6]*U[5]*U[3]-(2.0*U[6]*U[5]*U[1])+(U[5]*U[5])*U[4]-((U[
X5]*U[5])*
X     U[2])-(2.0*U[4]*U[3]*U[1])-((U[3]*U[3])*U[2])-(U[2]*(U[1]*U[1]))+
X24.0*U[1])
X     /4.0;
X    g[3]=(2.0*(U[7]*U[7])*U[6]*U[5]*U[3]-(2.0*(U[7]*U[7])*U[6]*U[5]*U[1])+(U[
X7]*
X     U[7])*(U[5]*U[5])*U[4]-((U[7]*U[7])*(U[5]*U[5])*U[2])+(U[7]*U[7])*U[
X4]*(U[3
X     ]*U[3])+(U[7]*U[7])*U[4]*(U[1]*U[1])+2.0*(U[7]*U[7])*U[3]*U[2]*U[1]-(
X28.0*(
X     U[7]*U[7])*U[3])-(16.0*U[3]))/(4.0*(U[7]*U[7]));
X    g[4]=(-(2.0*(U[7]*U[7])*U[6]*U[5]*U[3])+2.0*(U[7]*U[7])*U[6]*U[5]*U[
X1]-((U[7
X     ]*U[7])*(U[5]*U[5])*U[4])+(U[7]*U[7])*(U[5]*U[5])*U[2]-((U[7]*U[7])*U[
X4]*(U
X     [3]*U[3]))-((U[7]*U[7])*U[4]*(U[1]*U[1]))-(2.0*(U[7]*U[7])*U[3]*U[
X2]*U[1])+
X     24.0*(U[7]*U[7])*U[3]-(160.0*U[4]))/(4.0*(U[7]*U[7]));
X    g[5]=(2.0*(U[7]*U[7])*U[6]*(U[5]*U[5])+(U[7]*U[7])*U[6]*(U[3]*U[3])-(
X2.0*(U[
X     7]*U[7])*U[6]*U[3]*U[1])+(U[7]*U[7])*U[6]*(U[1]*U[1])+2.0*(U[7]*U[
X7])*U[5]*
X     U[4]*U[3]-(2.0*(U[7]*U[7])*U[5]*U[4]*U[1])-(2.0*(U[7]*U[7])*U[5]*U[
X3]*U[2])
X     +2.0*(U[7]*U[7])*U[5]*U[2]*U[1]-(28.0*(U[7]*U[7])*U[5])-(8.0*U[5]))/(
X4.0*(U
X     [7]*U[7]));
X    g[6]=(-(2.0*(U[7]*U[7])*U[6]*(U[5]*U[5]))-((U[7]*U[7])*U[6]*(U[3]*U[
X3]))+2.0
X     *(U[7]*U[7])*U[6]*U[3]*U[1]-((U[7]*U[7])*U[6]*(U[1]*U[1]))-(2.0*(U[
X7]*U[7])
X     *U[5]*U[4]*U[3])+2.0*(U[7]*U[7])*U[5]*U[4]*U[1]+2.0*(U[7]*U[7])*U[
X5]*U[3]*U
X     [2]-(2.0*(U[7]*U[7])*U[5]*U[2]*U[1])+24.0*(U[7]*U[7])*U[5]-(80.0*U[
X6]))/(
X     4.0*(U[7]*U[7]));
X}
Xstatic void dgZ211(U,dgu)
Xdouble *U,**dgu;
X{
X    dgu[1][1]=(U[6]*U[5]+U[4]*U[3]+U[2]*U[1]-14.0)/2.0;
X    dgu[1][2]=(U[5]*U[5]+U[3]*U[3]+U[1]*U[1])/4.0;
X    dgu[1][3]=(-(U[6]*U[5])+U[4]*U[1]+U[3]*U[2])/2.0;
X    dgu[1][4]=(-(U[5]*U[5])+2.0*U[3]*U[1])/4.0;
X    dgu[1][5]=(-(U[6]*U[3])+U[6]*U[1]-(U[5]*U[4])+U[5]*U[2])/2.0;
X    dgu[1][6]=(-(U[5]*U[3])+U[5]*U[1])/2.0;
X    dgu[1][7]=0.0;
X    dgu[2][1]=(-(U[6]*U[5])-(U[4]*U[3])-(U[2]*U[1])+12.0)/2.0;
X    dgu[2][2]=(-(U[5]*U[5])-(U[3]*U[3])-(U[1]*U[1]))/4.0;
X    dgu[2][3]=(U[6]*U[5]-(U[4]*U[1])-(U[3]*U[2]))/2.0;
X    dgu[2][4]=(U[5]*U[5]-(2.0*U[3]*U[1]))/4.0;
X    dgu[2][5]=(U[6]*U[3]-(U[6]*U[1])+U[5]*U[4]-(U[5]*U[2]))/2.0;
X    dgu[2][6]=(U[5]*U[3]-(U[5]*U[1]))/2.0;
X    dgu[2][7]=0.0;
X    dgu[3][1]=(-(U[6]*U[5])+U[4]*U[1]+U[3]*U[2])/2.0;
X    dgu[3][2]=(-(U[5]*U[5])+2.0*U[3]*U[1])/4.0;
X    dgu[3][3]=((U[7]*U[7])*U[6]*U[5]+(U[7]*U[7])*U[4]*U[3]+(U[7]*U[7])*U[
X2]*U[1]
X     -(14.0*(U[7]*U[7]))-8.0)/(2.0*(U[7]*U[7]));
X    dgu[3][4]=(U[5]*U[5]+U[3]*U[3]+U[1]*U[1])/4.0;
X    dgu[3][5]=(U[6]*U[3]-(U[6]*U[1])+U[5]*U[4]-(U[5]*U[2]))/2.0;
X    dgu[3][6]=(U[5]*U[3]-(U[5]*U[1]))/2.0;
X    dgu[3][7]=(8.0*U[3])/(U[7]*U[7]*U[7]);
X    dgu[4][1]=(U[6]*U[5]-(U[4]*U[1])-(U[3]*U[2]))/2.0;
X    dgu[4][2]=(U[5]*U[5]-(2.0*U[3]*U[1]))/4.0;
X    dgu[4][3]=(-(U[6]*U[5])-(U[4]*U[3])-(U[2]*U[1])+12.0)/2.0;
X    dgu[4][4]=(-((U[7]*U[7])*(U[5]*U[5]))-((U[7]*U[7])*(U[3]*U[3]))-((U[
X7]*U[7])
X     *(U[1]*U[1]))-160.0)/(4.0*(U[7]*U[7]));
X    dgu[4][5]=(-(U[6]*U[3])+U[6]*U[1]-(U[5]*U[4])+U[5]*U[2])/2.0;
X    dgu[4][6]=(-(U[5]*U[3])+U[5]*U[1])/2.0;
X    dgu[4][7]=(80.0*U[4])/(U[7]*U[7]*U[7]);
X    dgu[5][1]=(-(U[6]*U[3])+U[6]*U[1]-(U[5]*U[4])+U[5]*U[2])/2.0;
X    dgu[5][2]=(-(U[5]*U[3])+U[5]*U[1])/2.0;
X    dgu[5][3]=(U[6]*U[3]-(U[6]*U[1])+U[5]*U[4]-(U[5]*U[2]))/2.0;
X    dgu[5][4]=(U[5]*U[3]-(U[5]*U[1]))/2.0;
X    dgu[5][5]=(2.0*(U[7]*U[7])*U[6]*U[5]+(U[7]*U[7])*U[4]*U[3]-((U[7]*U[
X7])*U[4]
X     *U[1])-((U[7]*U[7])*U[3]*U[2])+(U[7]*U[7])*U[2]*U[1]-(14.0*(U[7]*U[
X7]))-4.0
X     )/(2.0*(U[7]*U[7]));
X    dgu[5][6]=(2.0*(U[5]*U[5])+U[3]*U[3]-(2.0*U[3]*U[1])+U[1]*U[1])/
X4.0;
X    dgu[5][7]=(4.0*U[5])/(U[7]*U[7]*U[7]);
X    dgu[6][1]=(U[6]*U[3]-(U[6]*U[1])+U[5]*U[4]-(U[5]*U[2]))/2.0;
X    dgu[6][2]=(U[5]*U[3]-(U[5]*U[1]))/2.0;
X    dgu[6][3]=(-(U[6]*U[3])+U[6]*U[1]-(U[5]*U[4])+U[5]*U[2])/2.0;
X    dgu[6][4]=(-(U[5]*U[3])+U[5]*U[1])/2.0;
X    dgu[6][5]=(-(2.0*U[6]*U[5])-(U[4]*U[3])+U[4]*U[1]+U[3]*U[2]-(U[2]*U[
X1])+12.0
X     )/2.0;
X    dgu[6][6]=(-(2.0*(U[7]*U[7])*(U[5]*U[5]))-((U[7]*U[7])*(U[3]*U[3]))+
X2.0*(U[7
X     ]*U[7])*U[3]*U[1]-((U[7]*U[7])*(U[1]*U[1]))-80.0)/(4.0*(U[7]*U[7]));
X    dgu[6][7]=(40.0*U[6])/(U[7]*U[7]*U[7]);
X}
Xstatic void dgZ212(U,dgu)
Xdouble *U,**dgu;
X{
X    dgu[1][1]=((U[7]*U[7])*U[4]*U[3]+(U[7]*U[7])*U[4]*U[1]+(U[7]*U[7])*U[
X3]*U[2]
X     +(U[7]*U[7])*U[2]*U[1]-(14.0*(U[7]*U[7]))-4.0)/(2.0*(U[7]*U[7]));
X    dgu[1][2]=(U[3]*U[3]+2.0*U[3]*U[1]+U[1]*U[1])/4.0;
X    dgu[2][1]=(-(U[4]*U[3])-(U[4]*U[1])-(U[3]*U[2])-(U[2]*U[1])+12.0)/
X2.0;
X    dgu[2][2]=(-((U[7]*U[7])*(U[3]*U[3]))-(2.0*(U[7]*U[7])*U[3]*U[1])-((U[
X7]*U[7
X     ])*(U[1]*U[1]))-80.0)/(4.0*(U[7]*U[7]));
X}
Xstatic void cgZ212(U,Z,c)
Xdouble *U,*Z,**c;
X{
X    c[1][1]=(U[4]*Z[1]+U[3]*Z[2]+U[2]*Z[1]+U[1]*Z[2])/2.0;
X    c[1][2]=(U[3]*Z[1]+U[1]*Z[1])/2.0;
X    c[1][3]=(U[4]*Z[1]+U[3]*Z[2]+U[2]*Z[1]+U[1]*Z[2])/2.0;
X    c[1][4]=(U[3]*Z[1]+U[1]*Z[1])/2.0;
X    c[1][5]=0.0;
X    c[1][6]=0.0;
X    c[1][7]=(4.0*Z[1])/(U[7]*U[7]*U[7]);
X    c[2][1]=(-(U[4]*Z[1])-(U[3]*Z[2])-(U[2]*Z[1])-(U[1]*Z[2]))/2.0;
X    c[2][2]=(-(U[3]*Z[1])-(U[1]*Z[1]))/2.0;
X    c[2][3]=(-(U[4]*Z[1])-(U[3]*Z[2])-(U[2]*Z[1])-(U[1]*Z[2]))/2.0;
X    c[2][4]=(-(U[3]*Z[1])-(U[1]*Z[1]))/2.0;
X    c[2][5]=0.0;
X    c[2][6]=0.0;
X    c[2][7]=(40.0*Z[2])/(U[7]*U[7]*U[7]);
X}
Xstatic void cgZ211(U,Z,c)
Xdouble *U,*Z,**c;
X{
X    c[1][1]=(-(U[6]*Z[6])+U[6]*Z[5]-(U[4]*Z[4])+U[4]*Z[3]-(U[2]*Z[2])+U[
X2]*Z[1])
X     /2.0;
X    c[1][2]=(-(U[5]*Z[6])+U[5]*Z[5]-(U[3]*Z[4])+U[3]*Z[3]-(U[1]*Z[2])+U[
X1]*Z[1])
X     /2.0;
X    c[1][3]=(U[6]*Z[6]-(U[6]*Z[5])-(U[4]*Z[2])+U[4]*Z[1]-(U[2]*Z[4])+U[
X2]*Z[3])/
X     2.0;
X    c[1][4]=(U[5]*Z[6]-(U[5]*Z[5])-(U[3]*Z[2])+U[3]*Z[1]-(U[1]*Z[4])+U[
X1]*Z[3])/
X     2.0;
X    c[1][5]=(U[6]*Z[4]-(U[6]*Z[3])-(U[6]*Z[2])+U[6]*Z[1]+U[4]*Z[6]-(U[4]*Z[
X5])-(
X     U[2]*Z[6])+U[2]*Z[5])/2.0;
X    c[1][6]=(U[5]*Z[4]-(U[5]*Z[3])-(U[5]*Z[2])+U[5]*Z[1]+U[3]*Z[6]-(U[3]*Z[
X5])-(
X     U[1]*Z[6])+U[1]*Z[5])/2.0;
X    c[1][7]=0.0;
X    c[2][2]=0.0;
X    c[2][3]=(U[5]*Z[6]-(U[5]*Z[5])-(U[3]*Z[2])+U[3]*Z[1]-(U[1]*Z[4])+U[
X1]*Z[3])/
X     2.0;
X    c[2][4]=0.0;
X    c[2][5]=(U[5]*Z[4]-(U[5]*Z[3])-(U[5]*Z[2])+U[5]*Z[1]+U[3]*Z[6]-(U[3]*Z[
X5])-(
X     U[1]*Z[6])+U[1]*Z[5])/2.0;
X    c[2][6]=0.0;
X    c[2][7]=0.0;
X    c[3][3]=(-(U[6]*Z[6])+U[6]*Z[5]-(U[4]*Z[4])+U[4]*Z[3]-(U[2]*Z[2])+U[
X2]*Z[1])
X     /2.0;
X    c[3][4]=(-(U[5]*Z[6])+U[5]*Z[5]-(U[3]*Z[4])+U[3]*Z[3]-(U[1]*Z[2])+U[
X1]*Z[1])
X     /2.0;
X    c[3][5]=(-(U[6]*Z[4])+U[6]*Z[3]+U[6]*Z[2]-(U[6]*Z[1])-(U[4]*Z[6])+U[
X4]*Z[5]+
X     U[2]*Z[6]-(U[2]*Z[5]))/2.0;
X    c[3][6]=(-(U[5]*Z[4])+U[5]*Z[3]+U[5]*Z[2]-(U[5]*Z[1])-(U[3]*Z[6])+U[
X3]*Z[5]+
X     U[1]*Z[6]-(U[1]*Z[5]))/2.0;
X    c[3][7]=(8.0*Z[3])/(U[7]*U[7]*U[7]);
X    c[4][4]=0.0;
X    c[4][5]=(-(U[5]*Z[4])+U[5]*Z[3]+U[5]*Z[2]-(U[5]*Z[1])-(U[3]*Z[6])+U[
X3]*Z[5]+
X     U[1]*Z[6]-(U[1]*Z[5]))/2.0;
X    c[4][6]=0.0;
X    c[4][7]=(80.0*Z[4])/(U[7]*U[7]*U[7]);
X    c[5][5]=(-(2.0*U[6]*Z[6])+2.0*U[6]*Z[5]-(U[4]*Z[4])+U[4]*Z[3]+U[4]*Z[
X2]-(U[4
X     ]*Z[1])+U[2]*Z[4]-(U[2]*Z[3])-(U[2]*Z[2])+U[2]*Z[1])/2.0;
X    c[5][6]=(-(2.0*U[5]*Z[6])+2.0*U[5]*Z[5]-(U[3]*Z[4])+U[3]*Z[3]+U[3]*Z[
X2]-(U[3
X     ]*Z[1])+U[1]*Z[4]-(U[1]*Z[3])-(U[1]*Z[2])+U[1]*Z[1])/2.0;
X    c[5][7]=(4.0*Z[5])/(U[7]*U[7]*U[7]);
X    c[6][6]=0.0;
X    c[6][7]=(40.0*Z[6])/(U[7]*U[7]*U[7]);
X    c[7][7]=(-(120.0*U[6]*Z[6])-(12.0*U[5]*Z[5])-(240.0*U[4]*Z[4])-(
X24.0*U[3]*Z[
X     3]))/(U[7]*U[7]*U[7]*U[7]);
X}
Xstatic void transformZ21(U,y)
Xdouble *U,*y;
X{
X    y[1]=(U[3]+U[1])/2.0;
X    y[2]=(U[4]+U[2])/2.0;
X    y[3]=(U[5]*SQRT2-U[3]+U[1])/2.0;
X    y[4]=(U[6]*SQRT2-U[4]+U[2])/2.0;
X    y[5]=(U[3]+U[1])/2.0;
X    y[6]=(U[4]+U[2])/2.0;
X    y[7]=(-(U[5]*SQRT2)-U[3]+U[1])/2.0;
X    y[8]=(-(U[6]*SQRT2)-U[4]+U[2])/2.0;
X    y[9]=U[7];
X}
Xstatic void invtransformZ21(Y,u)
Xdouble *u,*Y;
X{
X    u[1]=(Y[7]+Y[5]+Y[3]+Y[1])/2.0;
X    u[2]=(Y[8]+Y[6]+Y[4]+Y[2])/2.0;
X    u[3]=(-Y[7]+Y[5]-Y[3]+Y[1])/2.0;
X    u[4]=(-Y[8]+Y[6]-Y[4]+Y[2])/2.0;
X    u[5]=(-(Y[7]*SQRT2)+Y[3]*SQRT2)/2.0;
X    u[6]=(-(Y[8]*SQRT2)+Y[4]*SQRT2)/2.0;
X    u[7]=Y[9];
X}
Xstatic void tangentZ21nachID(Z,y)
Xdouble *Z,*y;
X{
X    y[1]=0.0;
X    y[2]=0.0;
X    y[3]=0.0;
X    y[4]=0.0;
X    y[5]=(Z[1]*SQRT2)/2.0;
X    y[6]=(Z[2]*SQRT2)/2.0;
X    y[7]=-(Z[1]*SQRT2)/2.0;
X    y[8]=-(Z[2]*SQRT2)/2.0;
X    y[9]=0.0;
X}
Xstatic void testZ21K42(U,t)
Xdouble *U,*t;
X{
X    t[1]=U[5];
X    t[2]=U[6];
X}
Xstatic void testZ21D4(U,t)
Xdouble *U,*t;
X{
X    t[1]=U[3];
X    t[2]=U[4];
X    t[3]=(U[5]*SQRT2)/2.0;
X    t[4]=(U[6]*SQRT2)/2.0;
X}
Xstatic void init_Z21()
X{
X    Op *op;
X    Z21->label="Z21";
X    Z21->implemented=TRUE;
X    Z21->transform=transformZ21;
X    Z21->inv_transform=invtransformZ21;
X    append_op(Z21,D4_proc_2,D4_proc_4,change_group_2,isotypic_triv);
X    append_op(Z21,D4_proc_2,D4_proc_4,change_group_2,isotypic_triv);
X    append_op(Z21,D4_proc_2,D4_proc_4,change_group_2,isotypic_triv);
X    append_op(Z21,D4_proc_2,D4_proc_4,change_group_2,isotypic_triv);
X    Z21->m[1]=6;
X    Z21->m[2]=2;
X    Z21->g=gZ21;
X    Z21->dg[1]=dgZ211;
X    Z21->dg[2]=dgZ212;
X    Z21->cg[1]=cgZ211;
X    Z21->cg[2]=cgZ212;
X    Z21->subgroup[2][1]=ID;
X    Z21->symmetric[2][1]=TRUE;
X    Z21->tangent[2][1]=tangentZ21nachID;
X    Z21->test[1]=testZ21K42;
X    Z21->test[2]=testZ21D4;
X    Z21->ntest[1]=2;
X    Z21->ntest[2]=4;
X    Z21->supergroup[1]=K42;
X    Z21->supergroup[2]=D4;
X    Z21->next=Z23;
X    Z21->no=Z21_NO;
X}
Xstatic void gK42(U,g)
Xdouble *U,*g;
X{
X    g[1]=(2.0*U[4]*U[3]*U[1]+(U[3]*U[3])*U[2]+U[2]*(U[1]*U[1])-(28.0*U[
X1])+16.0)
X     /4.0;
X    g[2]=(-(2.0*U[4]*U[3]*U[1])-((U[3]*U[3])*U[2])-(U[2]*(U[1]*U[1]))+
X24.0*U[1])
X     /4.0;
X    g[3]=((U[5]*U[5])*U[4]*(U[3]*U[3])+(U[5]*U[5])*U[4]*(U[1]*U[1])+
X2.0*(U[5]*U[
X     5])*U[3]*U[2]*U[1]-(28.0*(U[5]*U[5])*U[3])-(16.0*U[3]))/(4.0*(U[5]*U[
X5]));
X    g[4]=(-((U[5]*U[5])*U[4]*(U[3]*U[3]))-((U[5]*U[5])*U[4]*(U[1]*U[1]))-(
X2.0*(U
X     [5]*U[5])*U[3]*U[2]*U[1])+24.0*(U[5]*U[5])*U[3]-(160.0*U[4]))/(
X4.0*(U[5]*U[
X     5]));
X}
Xstatic void dgK421(U,dgu)
Xdouble *U,**dgu;
X{
X    dgu[1][1]=(U[4]*U[3]+U[2]*U[1]-14.0)/2.0;
X    dgu[1][2]=(U[3]*U[3]+U[1]*U[1])/4.0;
X    dgu[1][3]=(U[4]*U[1]+U[3]*U[2])/2.0;
X    dgu[1][4]=(U[3]*U[1])/2.0;
X    dgu[1][5]=0.0;
X    dgu[2][1]=(-(U[4]*U[3])-(U[2]*U[1])+12.0)/2.0;
X    dgu[2][2]=(-(U[3]*U[3])-(U[1]*U[1]))/4.0;
X    dgu[2][3]=(-(U[4]*U[1])-(U[3]*U[2]))/2.0;
X    dgu[2][4]=-(U[3]*U[1])/2.0;
X    dgu[2][5]=0.0;
X    dgu[3][1]=(U[4]*U[1]+U[3]*U[2])/2.0;
X    dgu[3][2]=(U[3]*U[1])/2.0;
X    dgu[3][3]=((U[5]*U[5])*U[4]*U[3]+(U[5]*U[5])*U[2]*U[1]-(14.0*(U[5]*U[
X5]))-
X     8.0)/(2.0*(U[5]*U[5]));
X    dgu[3][4]=(U[3]*U[3]+U[1]*U[1])/4.0;
X    dgu[3][5]=(8.0*U[3])/(U[5]*U[5]*U[5]);
X    dgu[4][1]=(-(U[4]*U[1])-(U[3]*U[2]))/2.0;
X    dgu[4][2]=-(U[3]*U[1])/2.0;
X    dgu[4][3]=(-(U[4]*U[3])-(U[2]*U[1])+12.0)/2.0;
X    dgu[4][4]=(-((U[5]*U[5])*(U[3]*U[3]))-((U[5]*U[5])*(U[1]*U[1]))-
X160.0)/(4.0*
X     (U[5]*U[5]));
X    dgu[4][5]=(80.0*U[4])/(U[5]*U[5]*U[5]);
X}
Xstatic void dgK423(U,dgu)
Xdouble *U,**dgu;
X{
X    dgu[1][1]=((U[5]*U[5])*U[4]*U[3]+(U[5]*U[5])*U[4]*U[1]+(U[5]*U[5])*U[
X3]*U[2]
X     +(U[5]*U[5])*U[2]*U[1]-(14.0*(U[5]*U[5]))-4.0)/(2.0*(U[5]*U[5]));
X    dgu[1][2]=(U[3]*U[3]+2.0*U[3]*U[1]+U[1]*U[1])/4.0;
X    dgu[2][1]=(-(U[4]*U[3])-(U[4]*U[1])-(U[3]*U[2])-(U[2]*U[1])+12.0)/
X2.0;
X    dgu[2][2]=(-((U[5]*U[5])*(U[3]*U[3]))-(2.0*(U[5]*U[5])*U[3]*U[1])-((U[
X5]*U[5
X     ])*(U[1]*U[1]))-80.0)/(4.0*(U[5]*U[5]));
X}
Xstatic void dgK424(U,dgu)
Xdouble *U,**dgu;
X{
X    dgu[1][1]=((U[5]*U[5])*U[4]*U[3]-((U[5]*U[5])*U[4]*U[1])-((U[5]*U[5])*U[
X3]*U
X     [2])+(U[5]*U[5])*U[2]*U[1]-(14.0*(U[5]*U[5]))-4.0)/(2.0*(U[5]*U[5]));
X    dgu[1][2]=(U[3]*U[3]-(2.0*U[3]*U[1])+U[1]*U[1])/4.0;
X    dgu[2][1]=(-(U[4]*U[3])+U[4]*U[1]+U[3]*U[2]-(U[2]*U[1])+12.0)/2.0;
X    dgu[2][2]=(-((U[5]*U[5])*(U[3]*U[3]))+2.0*(U[5]*U[5])*U[3]*U[1]-((U[
X5]*U[5])
X     *(U[1]*U[1]))-80.0)/(4.0*(U[5]*U[5]));
X}
Xstatic void cgK423(U,Z,c)
Xdouble *U,*Z,**c;
X{
X    c[1][1]=(U[4]*Z[1]+U[3]*Z[2]+U[2]*Z[1]+U[1]*Z[2])/2.0;
X    c[1][2]=(U[3]*Z[1]+U[1]*Z[1])/2.0;
X    c[1][3]=(U[4]*Z[1]+U[3]*Z[2]+U[2]*Z[1]+U[1]*Z[2])/2.0;
X    c[1][4]=(U[3]*Z[1]+U[1]*Z[1])/2.0;
X    c[1][5]=(4.0*Z[1])/(U[5]*U[5]*U[5]);
X    c[2][1]=(-(U[4]*Z[1])-(U[3]*Z[2])-(U[2]*Z[1])-(U[1]*Z[2]))/2.0;
X    c[2][2]=(-(U[3]*Z[1])-(U[1]*Z[1]))/2.0;
X    c[2][3]=(-(U[4]*Z[1])-(U[3]*Z[2])-(U[2]*Z[1])-(U[1]*Z[2]))/2.0;
X    c[2][4]=(-(U[3]*Z[1])-(U[1]*Z[1]))/2.0;
X    c[2][5]=(40.0*Z[2])/(U[5]*U[5]*U[5]);
X}
Xstatic void cgK424(U,Z,c)
Xdouble *U,*Z,**c;
X{
X    c[1][1]=(-(U[4]*Z[1])-(U[3]*Z[2])+U[2]*Z[1]+U[1]*Z[2])/2.0;
X    c[1][2]=(-(U[3]*Z[1])+U[1]*Z[1])/2.0;
X    c[1][3]=(U[4]*Z[1]+U[3]*Z[2]-(U[2]*Z[1])-(U[1]*Z[2]))/2.0;
X    c[1][4]=(U[3]*Z[1]-(U[1]*Z[1]))/2.0;
X    c[1][5]=(4.0*Z[1])/(U[5]*U[5]*U[5]);
X    c[2][1]=(U[4]*Z[1]+U[3]*Z[2]-(U[2]*Z[1])-(U[1]*Z[2]))/2.0;
X    c[2][2]=(U[3]*Z[1]-(U[1]*Z[1]))/2.0;
X    c[2][3]=(-(U[4]*Z[1])-(U[3]*Z[2])+U[2]*Z[1]+U[1]*Z[2])/2.0;
X    c[2][4]=(-(U[3]*Z[1])+U[1]*Z[1])/2.0;
X    c[2][5]=(40.0*Z[2])/(U[5]*U[5]*U[5]);
X}
Xstatic void cgK421(U,Z,c)
Xdouble *U,*Z,**c;
X{
X    c[1][1]=(-(U[4]*Z[4])+U[4]*Z[3]-(U[2]*Z[2])+U[2]*Z[1])/2.0;
X    c[1][2]=(-(U[3]*Z[4])+U[3]*Z[3]-(U[1]*Z[2])+U[1]*Z[1])/2.0;
X    c[1][3]=(-(U[4]*Z[2])+U[4]*Z[1]-(U[2]*Z[4])+U[2]*Z[3])/2.0;
X    c[1][4]=(-(U[3]*Z[2])+U[3]*Z[1]-(U[1]*Z[4])+U[1]*Z[3])/2.0;
X    c[1][5]=0.0;
X    c[2][2]=0.0;
X    c[2][3]=(-(U[3]*Z[2])+U[3]*Z[1]-(U[1]*Z[4])+U[1]*Z[3])/2.0;
X    c[2][4]=0.0;
X    c[2][5]=0.0;
X    c[3][3]=(-(U[4]*Z[4])+U[4]*Z[3]-(U[2]*Z[2])+U[2]*Z[1])/2.0;
X    c[3][4]=(-(U[3]*Z[4])+U[3]*Z[3]-(U[1]*Z[2])+U[1]*Z[1])/2.0;
X    c[3][5]=(8.0*Z[3])/(U[5]*U[5]*U[5]);
X    c[4][4]=0.0;
X    c[4][5]=(80.0*Z[4])/(U[5]*U[5]*U[5]);
X    c[5][5]=(-(240.0*U[4]*Z[4])-(24.0*U[3]*Z[3]))/(U[5]*U[5]*U[5]*U[5]);
X}
Xstatic void transformK42(U,y)
Xdouble *U,*y;
X{
X    y[1]=(U[3]+U[1])/2.0;
X    y[2]=(U[4]+U[2])/2.0;
X    y[3]=(-U[3]+U[1])/2.0;
X    y[4]=(-U[4]+U[2])/2.0;
X    y[5]=(U[3]+U[1])/2.0;
X    y[6]=(U[4]+U[2])/2.0;
X    y[7]=(-U[3]+U[1])/2.0;
X    y[8]=(-U[4]+U[2])/2.0;
X    y[9]=U[5];
X}
Xstatic void invtransformK42(Y,u)
Xdouble *u,*Y;
X{
X    u[1]=(Y[7]+Y[5]+Y[3]+Y[1])/2.0;
X    u[2]=(Y[8]+Y[6]+Y[4]+Y[2])/2.0;
X    u[3]=(-Y[7]+Y[5]-Y[3]+Y[1])/2.0;
X    u[4]=(-Y[8]+Y[6]-Y[4]+Y[2])/2.0;
X    u[5]=Y[9];
X}
Xstatic void tangentK42nachZ23(Z,y)
Xdouble *Z,*y;
X{
X    y[1]=0.0;
X    y[2]=0.0;
X    y[3]=0.0;
X    y[4]=0.0;
X    y[5]=Z[1];
X    y[6]=Z[2];
X    y[7]=0.0;
X}
Xstatic void tangentK42nachZ21(Z,y)
Xdouble *Z,*y;
X{
X    y[1]=0.0;
X    y[2]=0.0;
X    y[3]=0.0;
X    y[4]=0.0;
X    y[5]=Z[1];
X    y[6]=Z[2];
X    y[7]=0.0;
X}
Xstatic void testK42D4(U,t)
Xdouble *U,*t;
X{
X    t[1]=U[3];
X    t[2]=U[4];
X}
Xstatic void init_K42()
X{
X    Op *op;
X    K42->label="K42";
X    K42->implemented=TRUE;
X    K42->transform=transformK42;
X    K42->inv_transform=invtransformK42;
X    append_op(K42,D4_proc_2,D4_proc_4,change_group_2,isotypic_K42_2);
X    append_op(K42,D4_proc_2,D4_proc_4,change_group_2,isotypic_K42_2);
X    K42->m[1]=4;
X    K42->m[2]=2;
X    K42->m[3]=2;
X    K42->g=gK42;
X    K42->dg[1]=dgK421;
X    K42->dg[2]=dgK423;
X    K42->dg[3]=dgK424;
X    K42->cg[1]=cgK421;
X    K42->cg[2]=cgK423;
X    K42->cg[3]=cgK424;
X    K42->subgroup[2][1]=Z23;
X    K42->symmetric[2][1]=TRUE;
X    K42->tangent[2][1]=tangentK42nachZ23;
X    K42->subgroup[3][1]=Z21;
X    K42->symmetric[3][1]=TRUE;
X    K42->tangent[3][1]=tangentK42nachZ21;
X    K42->test[1]=testK42D4;
X    K42->ntest[1]=2;
X    K42->supergroup[1]=D4;
X    K42->next=Z21;
X    K42->no=K42_NO;
X}
Xstatic void transformZ20(U,y)
Xdouble *U,*y;
X{
X    y[1]=(U[3]+U[1])/2.0;
X    y[2]=(U[4]+U[2])/2.0;
X    y[3]=(U[3]+U[1])/2.0;
X    y[4]=(U[4]+U[2])/2.0;
X    y[5]=(-U[3]+U[1])/2.0;
X    y[6]=(-U[4]+U[2])/2.0;
X    y[7]=(-U[3]+U[1])/2.0;
X    y[8]=(-U[4]+U[2])/2.0;
X    y[9]=U[5];
X}
Xstatic void invtransformZ20(Y,u)
Xdouble *u,*Y;
X{
X    u[1]=(Y[7]+Y[5]+Y[3]+Y[1])/2.0;
X    u[2]=(Y[8]+Y[6]+Y[4]+Y[2])/2.0;
X    u[3]=(-Y[7]-Y[5]+Y[3]+Y[1])/2.0;
X    u[4]=(-Y[8]-Y[6]+Y[4]+Y[2])/2.0;
X    u[5]=Y[9];
X}
Xstatic void tangentZ20nachID(Z,y)
Xdouble *Z,*y;
X{
X    y[1]=0.0;
X    y[2]=0.0;
X    y[3]=Z[1];
X    y[4]=Z[2];
X    y[5]=0.0;
X    y[6]=0.0;
X    y[7]=Z[3];
X    y[8]=Z[4];
X    y[9]=0.0;
X}
Xstatic void init_Z20()
X{
X    Op *op;
X    Z20->label="Z20";
X    Z20->implemented=FALSE;
X    Z20->transform=transformZ20;
X    Z20->inv_transform=invtransformZ20;
X    append_op(Z20,D4_proc_2,D4_proc_4,change_group_2,isotypic_triv);
X    append_op(Z20,D4_proc_2,D4_proc_4,change_group_2,isotypic_triv);
X    append_op(Z20,D4_proc_2,D4_proc_4,change_group_2,isotypic_triv);
X    append_op(Z20,D4_proc_2,D4_proc_4,change_group_2,isotypic_triv);
X    Z20->m[1]=4;
X    Z20->m[2]=4;
X    Z20->subgroup[2][1]=ID;
X    Z20->symmetric[2][1]=TRUE;
X    Z20->tangent[2][1]=tangentZ20nachID;
X    Z20->supergroup[1]=D4;
X    Z20->next=K42;
X    Z20->no=Z20_NO;
X}
Xstatic void gZ22(U,g)
Xdouble *U,*g;
X{
X    g[1]=(2.0*U[4]*U[3]*U[1]+(U[3]*U[3])*U[2]+U[2]*(U[1]*U[1])-(28.0*U[
X1])+16.0)
X     /4.0;
X    g[2]=(-(2.0*U[4]*U[3]*U[1])-((U[3]*U[3])*U[2])-(U[2]*(U[1]*U[1]))+
X24.0*U[1])
X     /4.0;
X    g[3]=((U[5]*U[5])*U[4]*(U[3]*U[3])+(U[5]*U[5])*U[4]*(U[1]*U[1])+
X2.0*(U[5]*U[
X     5])*U[3]*U[2]*U[1]-(28.0*(U[5]*U[5])*U[3])-(8.0*U[3]))/(4.0*(U[5]*U[
X5]));
X    g[4]=(-((U[5]*U[5])*U[4]*(U[3]*U[3]))-((U[5]*U[5])*U[4]*(U[1]*U[1]))-(
X2.0*(U
X     [5]*U[5])*U[3]*U[2]*U[1])+24.0*(U[5]*U[5])*U[3]-(80.0*U[4]))/(
X4.0*(U[5]*U[5
X     ]));
X}
Xstatic void dgZ221(U,dgu)
Xdouble *U,**dgu;
X{
X    dgu[1][1]=(U[4]*U[3]+U[2]*U[1]-14.0)/2.0;
X    dgu[1][2]=(U[3]*U[3]+U[1]*U[1])/4.0;
X    dgu[1][3]=(U[4]*U[1]+U[3]*U[2])/2.0;
X    dgu[1][4]=(U[3]*U[1])/2.0;
X    dgu[1][5]=0.0;
X    dgu[2][1]=(-(U[4]*U[3])-(U[2]*U[1])+12.0)/2.0;
X    dgu[2][2]=(-(U[3]*U[3])-(U[1]*U[1]))/4.0;
X    dgu[2][3]=(-(U[4]*U[1])-(U[3]*U[2]))/2.0;
X    dgu[2][4]=-(U[3]*U[1])/2.0;
X    dgu[2][5]=0.0;
X    dgu[3][1]=(U[4]*U[1]+U[3]*U[2])/2.0;
X    dgu[3][2]=(U[3]*U[1])/2.0;
X    dgu[3][3]=((U[5]*U[5])*U[4]*U[3]+(U[5]*U[5])*U[2]*U[1]-(14.0*(U[5]*U[
X5]))-
X     4.0)/(2.0*(U[5]*U[5]));
X    dgu[3][4]=(U[3]*U[3]+U[1]*U[1])/4.0;
X    dgu[3][5]=(4.0*U[3])/(U[5]*U[5]*U[5]);
X    dgu[4][1]=(-(U[4]*U[1])-(U[3]*U[2]))/2.0;
X    dgu[4][2]=-(U[3]*U[1])/2.0;
X    dgu[4][3]=(-(U[4]*U[3])-(U[2]*U[1])+12.0)/2.0;
X    dgu[4][4]=(-((U[5]*U[5])*(U[3]*U[3]))-((U[5]*U[5])*(U[1]*U[1]))-
X80.0)/(4.0*(
X     U[5]*U[5]));
X    dgu[4][5]=(40.0*U[4])/(U[5]*U[5]*U[5]);
X}
Xstatic void dgZ222(U,dgu)
Xdouble *U,**dgu;
X{
X    dgu[1][1]=((U[5]*U[5])*U[4]*U[3]+(U[5]*U[5])*U[2]*U[1]-(14.0*(U[5]*U[
X5]))-
X     8.0)/(2.0*(U[5]*U[5]));
X    dgu[1][2]=(U[3]*U[3]+U[1]*U[1])/4.0;
X    dgu[1][3]=(-(U[4]*U[1])-(U[3]*U[2]))/2.0;
X    dgu[1][4]=-(U[3]*U[1])/2.0;
X    dgu[2][1]=(-(U[4]*U[3])-(U[2]*U[1])+12.0)/2.0;
X    dgu[2][2]=(-((U[5]*U[5])*(U[3]*U[3]))-((U[5]*U[5])*(U[1]*U[1]))-
X160.0)/(4.0*
X     (U[5]*U[5]));
X    dgu[2][3]=(U[4]*U[1]+U[3]*U[2])/2.0;
X    dgu[2][4]=(U[3]*U[1])/2.0;
X    dgu[3][1]=(-(U[4]*U[1])-(U[3]*U[2]))/2.0;
X    dgu[3][2]=-(U[3]*U[1])/2.0;
X    dgu[3][3]=((U[5]*U[5])*U[4]*U[3]+(U[5]*U[5])*U[2]*U[1]-(14.0*(U[5]*U[
X5]))-
X     4.0)/(2.0*(U[5]*U[5]));
X    dgu[3][4]=(U[3]*U[3]+U[1]*U[1])/4.0;
X    dgu[4][1]=(U[4]*U[1]+U[3]*U[2])/2.0;
X    dgu[4][2]=(U[3]*U[1])/2.0;
X    dgu[4][3]=(-(U[4]*U[3])-(U[2]*U[1])+12.0)/2.0;
X    dgu[4][4]=(-((U[5]*U[5])*(U[3]*U[3]))-((U[5]*U[5])*(U[1]*U[1]))-
X80.0)/(4.0*(
X     U[5]*U[5]));
X}
Xstatic void cgZ222(U,Z,c)
Xdouble *U,*Z,**c;
X{
X    c[1][1]=(-(U[4]*Z[3])-(U[3]*Z[4])+U[2]*Z[1]+U[1]*Z[2])/2.0;
X    c[1][2]=(-(U[3]*Z[3])+U[1]*Z[1])/2.0;
X    c[1][3]=(U[4]*Z[1]+U[3]*Z[2]-(U[2]*Z[3])-(U[1]*Z[4]))/2.0;
X    c[1][4]=(U[3]*Z[1]-(U[1]*Z[3]))/2.0;
X    c[1][5]=(8.0*Z[1])/(U[5]*U[5]*U[5]);
X    c[2][1]=(U[4]*Z[3]+U[3]*Z[4]-(U[2]*Z[1])-(U[1]*Z[2]))/2.0;
X    c[2][2]=(U[3]*Z[3]-(U[1]*Z[1]))/2.0;
X    c[2][3]=(-(U[4]*Z[1])-(U[3]*Z[2])+U[2]*Z[3]+U[1]*Z[4])/2.0;
X    c[2][4]=(-(U[3]*Z[1])+U[1]*Z[3])/2.0;
X    c[2][5]=(80.0*Z[2])/(U[5]*U[5]*U[5]);
X    c[3][1]=(-(U[4]*Z[1])-(U[3]*Z[2])+U[2]*Z[3]+U[1]*Z[4])/2.0;
X    c[3][2]=(-(U[3]*Z[1])+U[1]*Z[3])/2.0;
X    c[3][3]=(U[4]*Z[3]+U[3]*Z[4]-(U[2]*Z[1])-(U[1]*Z[2]))/2.0;
X    c[3][4]=(U[3]*Z[3]-(U[1]*Z[1]))/2.0;
X    c[3][5]=(4.0*Z[3])/(U[5]*U[5]*U[5]);
X    c[4][1]=(U[4]*Z[1]+U[3]*Z[2]-(U[2]*Z[3])-(U[1]*Z[4]))/2.0;
X    c[4][2]=(U[3]*Z[1]-(U[1]*Z[3]))/2.0;
X    c[4][3]=(-(U[4]*Z[3])-(U[3]*Z[4])+U[2]*Z[1]+U[1]*Z[2])/2.0;
X    c[4][4]=(-(U[3]*Z[3])+U[1]*Z[1])/2.0;
X    c[4][5]=(40.0*Z[4])/(U[5]*U[5]*U[5]);
X}
Xstatic void cgZ221(U,Z,c)
Xdouble *U,*Z,**c;
X{
X    c[1][1]=(-(U[4]*Z[4])+U[4]*Z[3]-(U[2]*Z[2])+U[2]*Z[1])/2.0;
X    c[1][2]=(-(U[3]*Z[4])+U[3]*Z[3]-(U[1]*Z[2])+U[1]*Z[1])/2.0;
X    c[1][3]=(-(U[4]*Z[2])+U[4]*Z[1]-(U[2]*Z[4])+U[2]*Z[3])/2.0;
X    c[1][4]=(-(U[3]*Z[2])+U[3]*Z[1]-(U[1]*Z[4])+U[1]*Z[3])/2.0;
X    c[1][5]=0.0;
X    c[2][2]=0.0;
X    c[2][3]=(-(U[3]*Z[2])+U[3]*Z[1]-(U[1]*Z[4])+U[1]*Z[3])/2.0;
X    c[2][4]=0.0;
X    c[2][5]=0.0;
X    c[3][3]=(-(U[4]*Z[4])+U[4]*Z[3]-(U[2]*Z[2])+U[2]*Z[1])/2.0;
X    c[3][4]=(-(U[3]*Z[4])+U[3]*Z[3]-(U[1]*Z[2])+U[1]*Z[1])/2.0;
X    c[3][5]=(4.0*Z[3])/(U[5]*U[5]*U[5]);
X    c[4][4]=0.0;
X    c[4][5]=(40.0*Z[4])/(U[5]*U[5]*U[5]);
X    c[5][5]=(-(120.0*U[4]*Z[4])-(12.0*U[3]*Z[3]))/(U[5]*U[5]*U[5]*U[5]);
X}
Xstatic void transformZ22(U,y)
Xdouble *U,*y;
X{
X    y[1]=(-U[3]+U[1])/2.0;
X    y[2]=(-U[4]+U[2])/2.0;
X    y[3]=(U[3]+U[1])/2.0;
X    y[4]=(U[4]+U[2])/2.0;
X    y[5]=(U[3]+U[1])/2.0;
X    y[6]=(U[4]+U[2])/2.0;
X    y[7]=(-U[3]+U[1])/2.0;
X    y[8]=(-U[4]+U[2])/2.0;
X    y[9]=U[5];
X}
Xstatic void invtransformZ22(Y,u)
Xdouble *u,*Y;
X{
X    u[1]=(Y[7]+Y[5]+Y[3]+Y[1])/2.0;
X    u[2]=(Y[8]+Y[6]+Y[4]+Y[2])/2.0;
X    u[3]=(-Y[7]+Y[5]+Y[3]-Y[1])/2.0;
X    u[4]=(-Y[8]+Y[6]+Y[4]-Y[2])/2.0;
X    u[5]=Y[9];
X}
Xstatic void tangentZ22nachID(Z,y)
Xdouble *Z,*y;
X{
X    y[1]=0.0;
X    y[2]=0.0;
X    y[3]=Z[1];
X    y[4]=Z[2];
X    y[5]=Z[3];
X    y[6]=Z[4];
X    y[7]=0.0;
X    y[8]=0.0;
X    y[9]=0.0;
X}
Xstatic void testZ22D4(U,t)
Xdouble *U,*t;
X{
X    t[1]=U[3];
X    t[2]=U[4];
X}
Xstatic void init_Z22()
X{
X    Op *op;
X    Z22->label="Z22";
X    Z22->implemented=TRUE;
X    Z22->transform=transformZ22;
X    Z22->inv_transform=invtransformZ22;
X    append_op(Z22,D4_proc_2,D4_proc_4,change_group_2,isotypic_triv);
X    append_op(Z22,D4_proc_2,D4_proc_4,change_group_2,isotypic_triv);
X    append_op(Z22,D4_proc_2,D4_proc_4,change_group_2,isotypic_triv);
X    append_op(Z22,D4_proc_2,D4_proc_4,change_group_2,isotypic_triv);
X    Z22->m[1]=4;
X    Z22->m[2]=4;
X    Z22->g=gZ22;
X    Z22->dg[1]=dgZ221;
X    Z22->dg[2]=dgZ222;
X    Z22->cg[1]=cgZ221;
X    Z22->cg[2]=cgZ222;
X    Z22->subgroup[2][1]=ID;
X    Z22->symmetric[2][1]=TRUE;
X    Z22->tangent[2][1]=tangentZ22nachID;
X    Z22->test[1]=testZ22D4;
X    Z22->ntest[1]=2;
X    Z22->supergroup[1]=D4;
X    Z22->next=Z20;
X    Z22->no=Z22_NO;
X}
Xstatic void gD4(U,g)
Xdouble *U,*g;
X{
X    g[1]=(U[2]*(U[1]*U[1])-(28.0*U[1])+16.0)/4.0;
X    g[2]=(-(U[2]*(U[1]*U[1]))+24.0*U[1])/4.0;
X}
Xstatic void dgD41(U,dgu)
Xdouble *U,**dgu;
X{
X    dgu[1][1]=(U[2]*U[1]-14.0)/2.0;
X    dgu[1][2]=(U[1]*U[1])/4.0;
X    dgu[1][3]=0.0;
X    dgu[2][1]=(-(U[2]*U[1])+12.0)/2.0;
X    dgu[2][2]=-(U[1]*U[1])/4.0;
X    dgu[2][3]=0.0;
X}
Xstatic void dgD44(U,dgu)
Xdouble *U,**dgu;
X{
X    dgu[1][1]=((U[3]*U[3])*U[2]*U[1]-(14.0*(U[3]*U[3]))-8.0)/(2.0*(U[3]*U[
X3]));
X    dgu[1][2]=(U[1]*U[1])/4.0;
X    dgu[2][1]=(-(U[2]*U[1])+12.0)/2.0;
X    dgu[2][2]=(-((U[3]*U[3])*(U[1]*U[1]))-160.0)/(4.0*(U[3]*U[3]));
X}
Xstatic void dgD45(U,dgu)
Xdouble *U,**dgu;
X{
X    dgu[1][1]=((U[3]*U[3])*U[2]*U[1]-(14.0*(U[3]*U[3]))-4.0)/(2.0*(U[3]*U[
X3]));
X    dgu[1][2]=(U[1]*U[1])/4.0;
X    dgu[2][1]=(-(U[2]*U[1])+12.0)/2.0;
X    dgu[2][2]=(-((U[3]*U[3])*(U[1]*U[1]))-80.0)/(4.0*(U[3]*U[3]));
X}
Xstatic void cgD44(U,Z,c)
Xdouble *U,*Z,**c;
X{
X    c[1][1]=(U[2]*Z[1]+U[1]*Z[2])/2.0;
X    c[1][2]=(U[1]*Z[1])/2.0;
X    c[1][3]=(8.0*Z[1])/(U[3]*U[3]*U[3]);
X    c[2][1]=(-(U[2]*Z[1])-(U[1]*Z[2]))/2.0;
X    c[2][2]=-(U[1]*Z[1])/2.0;
X    c[2][3]=(80.0*Z[2])/(U[3]*U[3]*U[3]);
X}
Xstatic void cgD45(U,Z,c)
Xdouble *U,*Z,**c;
X{
X    c[1][1]=(U[2]*Z[1]+U[1]*Z[2])/2.0;
X    c[1][2]=(U[1]*Z[1])/2.0;
X    c[1][3]=(4.0*Z[1])/(U[3]*U[3]*U[3]);
X    c[2][1]=(-(U[2]*Z[1])-(U[1]*Z[2]))/2.0;
X    c[2][2]=-(U[1]*Z[1])/2.0;
X    c[2][3]=(40.0*Z[2])/(U[3]*U[3]*U[3]);
X}
Xstatic void cgD41(U,Z,c)
Xdouble *U,*Z,**c;
X{
X    c[1][1]=(-(U[2]*Z[2])+U[2]*Z[1])/2.0;
X    c[1][2]=(-(U[1]*Z[2])+U[1]*Z[1])/2.0;
X    c[1][3]=0.0;
X    c[2][2]=0.0;
X    c[2][3]=0.0;
X    c[3][3]=0.0;
X}
Xstatic void transformD4(U,y)
Xdouble *U,*y;
X{
X    y[1]=U[1]/2.0;
X    y[2]=U[2]/2.0;
X    y[3]=U[1]/2.0;
X    y[4]=U[2]/2.0;
X    y[5]=U[1]/2.0;
X    y[6]=U[2]/2.0;
X    y[7]=U[1]/2.0;
X    y[8]=U[2]/2.0;
X    y[9]=U[3];
X}
Xstatic void invtransformD4(Y,u)
Xdouble *u,*Y;
X{
X    u[1]=(Y[7]+Y[5]+Y[3]+Y[1])/2.0;
X    u[2]=(Y[8]+Y[6]+Y[4]+Y[2])/2.0;
X    u[3]=Y[9];
X}
Xstatic void tangentD4nachK42(Z,y)
Xdouble *Z,*y;
X{
X    y[1]=0.0;
X    y[2]=0.0;
X    y[3]=Z[1];
X    y[4]=Z[2];
X    y[5]=0.0;
X}
Xstatic void tangentD4nachZ21(Z,y)
Xdouble *Z,*y;
X{
X    y[1]=0.0;
X    y[2]=0.0;
X    y[3]=0.0;
X    y[4]=0.0;
X    y[5]=(3.0*Z[1]*SQRT2)/2.0;
X    y[6]=(3.0*Z[2]*SQRT2)/2.0;
X    y[7]=0.0;
X}
Xstatic void tangentD4nachZ22(Z,y)
Xdouble *Z,*y;
X{
X    y[1]=0.0;
X    y[2]=0.0;
X    y[3]=2.0*Z[1];
X    y[4]=2.0*Z[2];
X    y[5]=0.0;
X}
Xstatic void allocgroups()
X{
X    int *nsub,r,S;
X    S=1;
X    r=4;
X    nsub=ivector(2,S);
X    ID=new_group(S,nsub,r);
X    S=2;
X    r=2;
X    nsub=ivector(2,S);
X    nsub[2]=1;
X    Z23=new_group(S,nsub,r);
X    S=2;
X    r=2;
X    nsub=ivector(2,S);
X    nsub[2]=1;
X    Z21=new_group(S,nsub,r);
X    S=3;
X    r=1;
X    nsub=ivector(2,S);
X    nsub[2]=1;
X    nsub[3]=1;
X    K42=new_group(S,nsub,r);
X    S=2;
X    r=1;
X    nsub=ivector(2,S);
X    nsub[2]=1;
X    Z20=new_group(S,nsub,r);
X    S=2;
X    r=1;
X    nsub=ivector(2,S);
X    nsub[2]=1;
X    Z22=new_group(S,nsub,r);
X    S=3;
X    r=0;
X    nsub=ivector(2,S);
X    nsub[2]=1;
X    nsub[3]=2;
X    group=new_group(S,nsub,r);
X    D4=group;
X}
Xvoid init_group()
X{
X    numeric_mode=FALSE;
X    init_data();
X    allocgroups();
X    init_Z22();
X    init_Z20();
X    init_K42();
X    init_Z21();
X    init_Z23();
X    init_ID();
X    D4->label="D4";
X    D4->implemented=TRUE;
X    D4->transform=transformD4;
X    D4->inv_transform=invtransformD4;
X    append_op(D4,D4_proc_2,D4_proc_4,change_group_2,isotypic_triv);
X    D4->m[1]=2;
X    D4->m[2]=2;
X    D4->m[3]=2;
X    D4->g=gD4;
X    D4->dg[1]=dgD41;
X    D4->dg[2]=dgD44;
X    D4->dg[3]=dgD45;
X    D4->cg[1]=cgD41;
X    D4->cg[2]=cgD44;
X    D4->cg[3]=cgD45;
X    D4->subgroup[2][1]=K42;
X    D4->symmetric[2][1]=TRUE;
X    D4->tangent[2][1]=tangentD4nachK42;
X    D4->subgroup[3][1]=Z21;
X    D4->symmetric[3][1]=TRUE;
X    D4->tangent[3][1]=tangentD4nachZ21;
X    D4->subgroup[3][2]=Z22;
X    D4->symmetric[3][2]=TRUE;
X    D4->tangent[3][2]=tangentD4nachZ22;
X    D4->next=Z22;
X    D4->no=D4_NO;
X}
END_OF_FILE
if test 43482 -ne `wc -c <'brussD4.c'`; then
    echo shar: \"'brussD4.c'\" unpacked with wrong size!
fi
# end of 'brussD4.c'
fi
echo shar: End of shell archive.
exit 0

From karin@quattro Thu Jul 25 14:27:19 1991
Return-Path: <karin@quattro>
Received: from quattro.ZIB-Berlin.DE by softs01.ZIB-Berlin.DE (4.1/SMI-4.0/12.9.90)
	id AA00185; Thu, 25 Jul 91 14:27:05 +0200
Received: from borodin.ZIB-Berlin.DE by quattro.ZIB-Berlin.DE (4.0/SMI-4.0/4.9.90)
	id AA03995; Wed, 24 Jul 91 22:21:47 +0200
Date: Wed, 24 Jul 91 22:21:47 +0200
From: karin@quattro (Karin Gatermann)
Message-Id: <9107242021.AA03995@sc.zib-berlin.dbp.de>
To: luegger@quattro
Subject: submit bruss1 for symcon
Status: RO

#! /bin/sh
# This is a shell archive.  Remove anything before this line, then unpack
# it by saving it into a file and typing "sh file".  To overwrite existing
# files, type "sh file -c".  You can also feed this as standard input via
# unshar, or by typing "sh <file", e.g..  If this archive is complete, you
# will see the following message at the end:
#		"End of shell archive."
# Contents:  brussD3 brussD4 brussD4.c
# Wrapped by karin@borodin on Wed Jul 24 21:48:47 1991
PATH=/bin:/usr/bin:/usr/ucb ; export PATH
if test -f 'brussD3' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'brussD3'\"
else
echo shar: Extracting \"'brussD3'\" \(853 characters\)
sed "s/^X//" >'brussD3' <<'END_OF_FILE'
X% example  brussD3
X
Xin hybridconjug;
X
Xf:=mat((2-(6+1)*x1+x1**2*x2 + tau^(-2)*(x5+x3-2*x1) ),
X       (6*x1-x1**2*x2 + tau^(-2)*10*(x6+x4-2*x2) ),
X       (2-(6+1)*x3+x3**2*x4 + tau^(-2)*(x1-x3+x5-x3) ),
X       (6*x3-x3**2*x4 + tau^(-2)*10*(x2-x4+x6-x4) ),
X       (2-(6+1)*x5+x5**2*x6 + tau^(-2)*(x3-x5+x1-x5) ),
X       (6*x5-x5**2*x6 + tau^(-2)*10*(x4-x6+x2-x6) ))$
X
Xr:=mat((0,0,1,0,0,0),
X       (0,0,0,1,0,0),
X       (0,0,0,0,1,0),
X       (0,0,0,0,0,1),
X       (1,0,0,0,0,0),
X       (0,1,0,0,0,0))$
X
Xs:=mat((0,0,1,0,0,0),
X       (0,0,0,1,0,0),
X       (1,0,0,0,0,0),
X       (0,1,0,0,0,0),
X       (0,0,0,0,1,0),
X       (0,0,0,0,0,1))$
X 
X
X
Xxse:={x1,x2,x3,x4,x5,x6,tau}$
Xinits:={taumin=0,taumax=8,x1=2,x2=3,x3=2,x4=3,x5=2,x6=3,tau=1/4}$
X
Xoff numericmode;
Xon linknumeric;
X%gentranout"brussD3.c";
X%gentranout"brussD3num.c";
X
Xsymcon(f,xse,inits,D3,r,s);
X
Xend; 
END_OF_FILE
if test 853 -ne `wc -c <'brussD3'`; then
    echo shar: \"'brussD3'\" unpacked with wrong size!
fi
# end of 'brussD3'
fi
if test -f 'brussD4' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'brussD4'\"
else
echo shar: Extracting \"'brussD4'\" \(1101 characters\)
sed "s/^X//" >'brussD4' <<'END_OF_FILE'
X% example brusselator D4
Xin hybridconjug;
X
Xf:=mat((2-(6+1)*x1+x1**2*x2 + la1^(-2)*(x7+x3-2*x1) ),
X       (6*x1-x1**2*x2 + la1^(-2)*10*(x8+x4-2*x2) ),
X       (2-(6+1)*x3+x3**2*x4 + la1^(-2)*(x1-x3+x5-x3) ),
X       (6*x3-x3**2*x4 + la1^(-2)*10*(x2-x4+x6-x4) ),
X       (2-(6+1)*x5+x5**2*x6 + la1^(-2)*(x3-x5+x7-x5) ),
X       (6*x5-x5**2*x6 + la1^(-2)*10*(x4-x6+x8-x6) ),
X       (2-(6+1)*x7+x7**2*x8 + la1^(-2)*(x1+x5-2*x7) ),
X       (6*x7-x7**2*x8 + la1^(-2)*10*(x2+x6-2*x8) ))$
X
Xr:=mat((0,0,1,0,0,0,0,0),
X       (0,0,0,1,0,0,0,0),
X       (0,0,0,0,1,0,0,0),
X       (0,0,0,0,0,1,0,0),
X       (0,0,0,0,0,0,1,0),
X       (0,0,0,0,0,0,0,1),
X       (1,0,0,0,0,0,0,0),
X       (0,1,0,0,0,0,0,0))$
X
Xs:=mat((0,0,1,0,0,0,0,0),
X       (0,0,0,1,0,0,0,0),
X       (1,0,0,0,0,0,0,0),
X       (0,1,0,0,0,0,0,0),
X       (0,0,0,0,0,0,1,0),
X       (0,0,0,0,0,0,0,1),
X       (0,0,0,0,1,0,0,0),
X       (0,0,0,0,0,1,0,0))$
X
Xxse:={x1,x2,x3,x4,x5,x6,x7,x8,la1}$
Xinitdat:={x1=2,x2=3,x3=2,x4=3,x5=2,x6=3,x7=2,x8=3,la1=1/4,
X          taumin=0,taumax=8}$
X
Xoff numericmode;
Xgentranout"brussD4.c";
X
Xsymcon(F,XSE,initdat,D4,r,s);
X
Xend; 
END_OF_FILE
if test 1101 -ne `wc -c <'brussD4'`; then
    echo shar: \"'brussD4'\" unpacked with wrong size!
fi
# end of 'brussD4'
fi
if test -f 'brussD4.c' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'brussD4.c'\"
else
echo shar: Extracting \"'brussD4.c'\" \(43482 characters\)
sed "s/^X//" >'brussD4.c' <<'END_OF_FILE'
X#include <strings.h>
X#include <stdio.h>
X#include <math.h>
X#include <malloc.h>
X#include "macros.h"
X#include "matutil.h"
X#include "matalloc.h"
X
X#include "group.h"
X
Xint m=8, n=9, npar=0, nog = 7;
Xchar par_string[1][10] ;
X 
Xvoid setpar()
X{
X}
X
Xvoid init_data()
X{
X    setpar();
X    y_guess[1]=2.0;
X    y_guess[2]=3.0;
X    y_guess[3]=2.0;
X    y_guess[4]=3.0;
X    y_guess[5]=2.0;
X    y_guess[6]=3.0;
X    y_guess[7]=2.0;
X    y_guess[8]=3.0;
X    y_guess[9]=1.0/4.0;
X    tau_min=0.0;
X    tau_max=8.0;
X}
Xstatic Group *ID,*Z23,*Z21,*K42,*Z20,*Z22,*D4;
Xstatic Op *op;
X#define ID_NO 1
X#define Z23_NO 2
X#define Z21_NO 3
X#define K42_NO 4
X#define Z20_NO 5
X#define Z22_NO 6
X#define D4_NO 7
X
Xstatic void D4_proc_2(Y,yt)
Xdouble *Y,*yt;
X{
X    yt[1]=Y[3];
X    yt[2]=Y[4];
X    yt[3]=Y[5];
X    yt[4]=Y[6];
X    yt[5]=Y[7];
X    yt[6]=Y[8];
X    yt[7]=Y[1];
X    yt[8]=Y[2];
X    yt[9]=Y[9];
X}
Xstatic void D4_proc_5(Y,yt)
Xdouble *Y,*yt;
X{
X    yt[1]=Y[3];
X    yt[2]=Y[4];
X    yt[3]=Y[1];
X    yt[4]=Y[2];
X    yt[5]=Y[7];
X    yt[6]=Y[8];
X    yt[7]=Y[5];
X    yt[8]=Y[6];
X    yt[9]=Y[9];
X}
Xstatic void D4_proc_4(Y,yt)
Xdouble *Y,*yt;
X{
X    yt[1]=Y[7];
X    yt[2]=Y[8];
X    yt[3]=Y[1];
X    yt[4]=Y[2];
X    yt[5]=Y[3];
X    yt[6]=Y[4];
X    yt[7]=Y[5];
X    yt[8]=Y[6];
X    yt[9]=Y[9];
X}
Xstatic Group* change_group_5(sigma)
X        Group *sigma;
X{
X     switch (sigma->no) {
X     case Z21_NO : return Z23;
X     case Z23_NO : return Z21;
X     default : return sigma;
X}
X}
Xstatic Group* change_group_2(sigma)
X        Group *sigma;
X{
X     switch (sigma->no) {
X     case Z22_NO : return Z20;
X     case Z20_NO : return Z22;
X     case Z21_NO : return Z23;
X     case Z23_NO : return Z21;
X     default : return sigma;
X}
X}
Xstatic int isotypic_triv(i)
X     int i;
X{
X     switch (i) {
X     default : return i;
X}
X}
Xstatic int isotypic_K42_5(i)
X     int i;
X{
X     switch (i) {
X   case 3 : return  2 ;
X   case 2 : return  3 ;
X     default : return i;
X}
X}
Xstatic int isotypic_K42_2(i)
X     int i;
X{
X     switch (i) {
X   case 3 : return  2 ;
X   case 2 : return  3 ;
X     default : return i;
X}
X}
Xvoid f()
X{
X}
Xvoid df()
X{
X}
Xstatic void gID(U,g)
Xdouble *U,*g;
X{
X    g[1]=(2.0*U[8]*U[7]*U[1]-(2.0*U[8]*U[5]*U[3])+(U[7]*U[7])*U[2]-(
X2.0*U[7]*U[6
X     ]*U[3])-(2.0*U[7]*U[5]*U[4])+2.0*U[6]*U[5]*U[1]+(U[5]*U[5])*U[2]+
X2.0*U[4]*U
X     [3]*U[1]+(U[3]*U[3])*U[2]+U[2]*(U[1]*U[1])-(28.0*U[1])+16.0)/4.0;
X    g[2]=(-(2.0*U[8]*U[7]*U[1])+2.0*U[8]*U[5]*U[3]-((U[7]*U[7])*U[2])+
X2.0*U[7]*U
X     [6]*U[3]+2.0*U[7]*U[5]*U[4]-(2.0*U[6]*U[5]*U[1])-((U[5]*U[5])*U[2])-(
X2.0*U[
X     4]*U[3]*U[1])-((U[3]*U[3])*U[2])-(U[2]*(U[1]*U[1]))+24.0*U[1])/
X4.0;
X    g[3]=(2.0*(U[9]*U[9])*U[8]*U[7]*U[3]-(2.0*(U[9]*U[9])*U[8]*U[5]*U[1])+(U[
X9]*
X     U[9])*(U[7]*U[7])*U[4]-(2.0*(U[9]*U[9])*U[7]*U[6]*U[1])-(2.0*(U[9]*U[
X9])*U[
X     7]*U[5]*U[2])+2.0*(U[9]*U[9])*U[6]*U[5]*U[3]+(U[9]*U[9])*(U[5]*U[5])*U[
X4]+(
X     U[9]*U[9])*U[4]*(U[3]*U[3])+(U[9]*U[9])*U[4]*(U[1]*U[1])+2.0*(U[9]*U[
X9])*U[
X     3]*U[2]*U[1]-(28.0*(U[9]*U[9])*U[3])-(16.0*U[3]))/(4.0*(U[9]*U[9]));
X    g[4]=(-(2.0*(U[9]*U[9])*U[8]*U[7]*U[3])+2.0*(U[9]*U[9])*U[8]*U[5]*U[
X1]-((U[9
X     ]*U[9])*(U[7]*U[7])*U[4])+2.0*(U[9]*U[9])*U[7]*U[6]*U[1]+2.0*(U[9]*U[
X9])*U[
X     7]*U[5]*U[2]-(2.0*(U[9]*U[9])*U[6]*U[5]*U[3])-((U[9]*U[9])*(U[5]*U[
X5])*U[4]
X     )-((U[9]*U[9])*U[4]*(U[3]*U[3]))-((U[9]*U[9])*U[4]*(U[1]*U[1]))-(
X2.0*(U[9]*
X     U[9])*U[3]*U[2]*U[1])+24.0*(U[9]*U[9])*U[3]-(160.0*U[4]))/(4.0*(U[
X9]*U[9]))
X     ;
X    g[5]=(2.0*(U[9]*U[9])*U[8]*U[7]*U[5]-(2.0*(U[9]*U[9])*U[8]*U[3]*U[1])+(U[
X9]*
X     U[9])*(U[7]*U[7])*U[6]-(2.0*(U[9]*U[9])*U[7]*U[4]*U[1])-(2.0*(U[9]*U[
X9])*U[
X     7]*U[3]*U[2])+(U[9]*U[9])*U[6]*(U[5]*U[5])+(U[9]*U[9])*U[6]*(U[3]*U[
X3])+(U[
X     9]*U[9])*U[6]*(U[1]*U[1])+2.0*(U[9]*U[9])*U[5]*U[4]*U[3]+2.0*(U[9]*U[
X9])*U[
X     5]*U[2]*U[1]-(28.0*(U[9]*U[9])*U[5])-(8.0*U[5]))/(4.0*(U[9]*U[9]));
X    g[6]=(-(2.0*(U[9]*U[9])*U[8]*U[7]*U[5])+2.0*(U[9]*U[9])*U[8]*U[3]*U[
X1]-((U[9
X     ]*U[9])*(U[7]*U[7])*U[6])+2.0*(U[9]*U[9])*U[7]*U[4]*U[1]+2.0*(U[9]*U[
X9])*U[
X     7]*U[3]*U[2]-((U[9]*U[9])*U[6]*(U[5]*U[5]))-((U[9]*U[9])*U[6]*(U[3]*U[
X3]))-
X     ((U[9]*U[9])*U[6]*(U[1]*U[1]))-(2.0*(U[9]*U[9])*U[5]*U[4]*U[3])-(
X2.0*(U[9]*
X     U[9])*U[5]*U[2]*U[1])+24.0*(U[9]*U[9])*U[5]-(80.0*U[6]))/(4.0*(U[9]*U[
X9]));
X    g[7]=((U[9]*U[9])*U[8]*(U[7]*U[7])+(U[9]*U[9])*U[8]*(U[5]*U[5])+(U[
X9]*U[9])*
X     U[8]*(U[3]*U[3])+(U[9]*U[9])*U[8]*(U[1]*U[1])+2.0*(U[9]*U[9])*U[7]*U[
X6]*U[5
X     ]+2.0*(U[9]*U[9])*U[7]*U[4]*U[3]+2.0*(U[9]*U[9])*U[7]*U[2]*U[1]-(
X28.0*(U[9]
X     *U[9])*U[7])-(2.0*(U[9]*U[9])*U[6]*U[3]*U[1])-(2.0*(U[9]*U[9])*U[5]*U[
X4]*U[
X     1])-(2.0*(U[9]*U[9])*U[5]*U[3]*U[2])-(8.0*U[7]))/(4.0*(U[9]*U[9]));
X    g[8]=(-((U[9]*U[9])*U[8]*(U[7]*U[7]))-((U[9]*U[9])*U[8]*(U[5]*U[5]))-((U[
X9]*
X     U[9])*U[8]*(U[3]*U[3]))-((U[9]*U[9])*U[8]*(U[1]*U[1]))-(2.0*(U[9]*U[
X9])*U[7
X     ]*U[6]*U[5])-(2.0*(U[9]*U[9])*U[7]*U[4]*U[3])-(2.0*(U[9]*U[9])*U[7]*U[
X2]*U[
X     1])+24.0*(U[9]*U[9])*U[7]+2.0*(U[9]*U[9])*U[6]*U[3]*U[1]+2.0*(U[9]*U[
X9])*U[
X     5]*U[4]*U[1]+2.0*(U[9]*U[9])*U[5]*U[3]*U[2]-(80.0*U[8]))/(4.0*(U[9]*U[
X9]));
X}
Xstatic void dgID1(U,dgu)
Xdouble *U,**dgu;
X{
X    dgu[1][1]=(U[8]*U[7]+U[6]*U[5]+U[4]*U[3]+U[2]*U[1]-14.0)/2.0;
X    dgu[1][2]=(U[7]*U[7]+U[5]*U[5]+U[3]*U[3]+U[1]*U[1])/4.0;
X    dgu[1][3]=(-(U[8]*U[5])-(U[7]*U[6])+U[4]*U[1]+U[3]*U[2])/2.0;
X    dgu[1][4]=(-(U[7]*U[5])+U[3]*U[1])/2.0;
X    dgu[1][5]=(-(U[8]*U[3])-(U[7]*U[4])+U[6]*U[1]+U[5]*U[2])/2.0;
X    dgu[1][6]=(-(U[7]*U[3])+U[5]*U[1])/2.0;
X    dgu[1][7]=(U[8]*U[1]+U[7]*U[2]-(U[6]*U[3])-(U[5]*U[4]))/2.0;
X    dgu[1][8]=(U[7]*U[1]-(U[5]*U[3]))/2.0;
X    dgu[1][9]=0.0;
X    dgu[2][1]=(-(U[8]*U[7])-(U[6]*U[5])-(U[4]*U[3])-(U[2]*U[1])+12.0)/
X2.0;
X    dgu[2][2]=(-(U[7]*U[7])-(U[5]*U[5])-(U[3]*U[3])-(U[1]*U[1]))/4.0;
X    dgu[2][3]=(U[8]*U[5]+U[7]*U[6]-(U[4]*U[1])-(U[3]*U[2]))/2.0;
X    dgu[2][4]=(U[7]*U[5]-(U[3]*U[1]))/2.0;
X    dgu[2][5]=(U[8]*U[3]+U[7]*U[4]-(U[6]*U[1])-(U[5]*U[2]))/2.0;
X    dgu[2][6]=(U[7]*U[3]-(U[5]*U[1]))/2.0;
X    dgu[2][7]=(-(U[8]*U[1])-(U[7]*U[2])+U[6]*U[3]+U[5]*U[4])/2.0;
X    dgu[2][8]=(-(U[7]*U[1])+U[5]*U[3])/2.0;
X    dgu[2][9]=0.0;
X    dgu[3][1]=(-(U[8]*U[5])-(U[7]*U[6])+U[4]*U[1]+U[3]*U[2])/2.0;
X    dgu[3][2]=(-(U[7]*U[5])+U[3]*U[1])/2.0;
X    dgu[3][3]=((U[9]*U[9])*U[8]*U[7]+(U[9]*U[9])*U[6]*U[5]+(U[9]*U[9])*U[
X4]*U[3]
X     +(U[9]*U[9])*U[2]*U[1]-(14.0*(U[9]*U[9]))-8.0)/(2.0*(U[9]*U[9]));
X    dgu[3][4]=(U[7]*U[7]+U[5]*U[5]+U[3]*U[3]+U[1]*U[1])/4.0;
X    dgu[3][5]=(-(U[8]*U[1])-(U[7]*U[2])+U[6]*U[3]+U[5]*U[4])/2.0;
X    dgu[3][6]=(-(U[7]*U[1])+U[5]*U[3])/2.0;
X    dgu[3][7]=(U[8]*U[3]+U[7]*U[4]-(U[6]*U[1])-(U[5]*U[2]))/2.0;
X    dgu[3][8]=(U[7]*U[3]-(U[5]*U[1]))/2.0;
X    dgu[3][9]=(8.0*U[3])/(U[9]*U[9]*U[9]);
X    dgu[4][1]=(U[8]*U[5]+U[7]*U[6]-(U[4]*U[1])-(U[3]*U[2]))/2.0;
X    dgu[4][2]=(U[7]*U[5]-(U[3]*U[1]))/2.0;
X    dgu[4][3]=(-(U[8]*U[7])-(U[6]*U[5])-(U[4]*U[3])-(U[2]*U[1])+12.0)/
X2.0;
X    dgu[4][4]=(-((U[9]*U[9])*(U[7]*U[7]))-((U[9]*U[9])*(U[5]*U[5]))-((U[
X9]*U[9])
X     *(U[3]*U[3]))-((U[9]*U[9])*(U[1]*U[1]))-160.0)/(4.0*(U[9]*U[9]));
X    dgu[4][5]=(U[8]*U[1]+U[7]*U[2]-(U[6]*U[3])-(U[5]*U[4]))/2.0;
X    dgu[4][6]=(U[7]*U[1]-(U[5]*U[3]))/2.0;
X    dgu[4][7]=(-(U[8]*U[3])-(U[7]*U[4])+U[6]*U[1]+U[5]*U[2])/2.0;
X    dgu[4][8]=(-(U[7]*U[3])+U[5]*U[1])/2.0;
X    dgu[4][9]=(80.0*U[4])/(U[9]*U[9]*U[9]);
X    dgu[5][1]=(-(U[8]*U[3])-(U[7]*U[4])+U[6]*U[1]+U[5]*U[2])/2.0;
X    dgu[5][2]=(-(U[7]*U[3])+U[5]*U[1])/2.0;
X    dgu[5][3]=(-(U[8]*U[1])-(U[7]*U[2])+U[6]*U[3]+U[5]*U[4])/2.0;
X    dgu[5][4]=(-(U[7]*U[1])+U[5]*U[3])/2.0;
X    dgu[5][5]=((U[9]*U[9])*U[8]*U[7]+(U[9]*U[9])*U[6]*U[5]+(U[9]*U[9])*U[
X4]*U[3]
X     +(U[9]*U[9])*U[2]*U[1]-(14.0*(U[9]*U[9]))-4.0)/(2.0*(U[9]*U[9]));
X    dgu[5][6]=(U[7]*U[7]+U[5]*U[5]+U[3]*U[3]+U[1]*U[1])/4.0;
X    dgu[5][7]=(U[8]*U[5]+U[7]*U[6]-(U[4]*U[1])-(U[3]*U[2]))/2.0;
X    dgu[5][8]=(U[7]*U[5]-(U[3]*U[1]))/2.0;
X    dgu[5][9]=(4.0*U[5])/(U[9]*U[9]*U[9]);
X    dgu[6][1]=(U[8]*U[3]+U[7]*U[4]-(U[6]*U[1])-(U[5]*U[2]))/2.0;
X    dgu[6][2]=(U[7]*U[3]-(U[5]*U[1]))/2.0;
X    dgu[6][3]=(U[8]*U[1]+U[7]*U[2]-(U[6]*U[3])-(U[5]*U[4]))/2.0;
X    dgu[6][4]=(U[7]*U[1]-(U[5]*U[3]))/2.0;
X    dgu[6][5]=(-(U[8]*U[7])-(U[6]*U[5])-(U[4]*U[3])-(U[2]*U[1])+12.0)/
X2.0;
X    dgu[6][6]=(-((U[9]*U[9])*(U[7]*U[7]))-((U[9]*U[9])*(U[5]*U[5]))-((U[
X9]*U[9])
X     *(U[3]*U[3]))-((U[9]*U[9])*(U[1]*U[1]))-80.0)/(4.0*(U[9]*U[9]));
X    dgu[6][7]=(-(U[8]*U[5])-(U[7]*U[6])+U[4]*U[1]+U[3]*U[2])/2.0;
X    dgu[6][8]=(-(U[7]*U[5])+U[3]*U[1])/2.0;
X    dgu[6][9]=(40.0*U[6])/(U[9]*U[9]*U[9]);
X    dgu[7][1]=(U[8]*U[1]+U[7]*U[2]-(U[6]*U[3])-(U[5]*U[4]))/2.0;
X    dgu[7][2]=(U[7]*U[1]-(U[5]*U[3]))/2.0;
X    dgu[7][3]=(U[8]*U[3]+U[7]*U[4]-(U[6]*U[1])-(U[5]*U[2]))/2.0;
X    dgu[7][4]=(U[7]*U[3]-(U[5]*U[1]))/2.0;
X    dgu[7][5]=(U[8]*U[5]+U[7]*U[6]-(U[4]*U[1])-(U[3]*U[2]))/2.0;
X    dgu[7][6]=(U[7]*U[5]-(U[3]*U[1]))/2.0;
X    dgu[7][7]=((U[9]*U[9])*U[8]*U[7]+(U[9]*U[9])*U[6]*U[5]+(U[9]*U[9])*U[
X4]*U[3]
X     +(U[9]*U[9])*U[2]*U[1]-(14.0*(U[9]*U[9]))-4.0)/(2.0*(U[9]*U[9]));
X    dgu[7][8]=(U[7]*U[7]+U[5]*U[5]+U[3]*U[3]+U[1]*U[1])/4.0;
X    dgu[7][9]=(4.0*U[7])/(U[9]*U[9]*U[9]);
X    dgu[8][1]=(-(U[8]*U[1])-(U[7]*U[2])+U[6]*U[3]+U[5]*U[4])/2.0;
X    dgu[8][2]=(-(U[7]*U[1])+U[5]*U[3])/2.0;
X    dgu[8][3]=(-(U[8]*U[3])-(U[7]*U[4])+U[6]*U[1]+U[5]*U[2])/2.0;
X    dgu[8][4]=(-(U[7]*U[3])+U[5]*U[1])/2.0;
X    dgu[8][5]=(-(U[8]*U[5])-(U[7]*U[6])+U[4]*U[1]+U[3]*U[2])/2.0;
X    dgu[8][6]=(-(U[7]*U[5])+U[3]*U[1])/2.0;
X    dgu[8][7]=(-(U[8]*U[7])-(U[6]*U[5])-(U[4]*U[3])-(U[2]*U[1])+12.0)/
X2.0;
X    dgu[8][8]=(-((U[9]*U[9])*(U[7]*U[7]))-((U[9]*U[9])*(U[5]*U[5]))-((U[
X9]*U[9])
X     *(U[3]*U[3]))-((U[9]*U[9])*(U[1]*U[1]))-80.0)/(4.0*(U[9]*U[9]));
X    dgu[8][9]=(40.0*U[8])/(U[9]*U[9]*U[9]);
X}
Xstatic void cgID1(U,Z,c)
Xdouble *U,*Z,**c;
X{
X    c[1][1]=(-(U[8]*Z[8])+U[8]*Z[7]-(U[6]*Z[6])+U[6]*Z[5]-(U[4]*Z[4])+U[
X4]*Z[3]-
X     (U[2]*Z[2])+U[2]*Z[1])/2.0;
X    c[1][2]=(-(U[7]*Z[8])+U[7]*Z[7]-(U[5]*Z[6])+U[5]*Z[5]-(U[3]*Z[4])+U[
X3]*Z[3]-
X     (U[1]*Z[2])+U[1]*Z[1])/2.0;
X    c[1][3]=(U[8]*Z[6]-(U[8]*Z[5])+U[6]*Z[8]-(U[6]*Z[7])-(U[4]*Z[2])+U[
X4]*Z[1]-(
X     U[2]*Z[4])+U[2]*Z[3])/2.0;
X    c[1][4]=(U[7]*Z[6]-(U[7]*Z[5])+U[5]*Z[8]-(U[5]*Z[7])-(U[3]*Z[2])+U[
X3]*Z[1]-(
X     U[1]*Z[4])+U[1]*Z[3])/2.0;
X    c[1][5]=(U[8]*Z[4]-(U[8]*Z[3])-(U[6]*Z[2])+U[6]*Z[1]+U[4]*Z[8]-(U[4]*Z[
X7])-(
X     U[2]*Z[6])+U[2]*Z[5])/2.0;
X    c[1][6]=(U[7]*Z[4]-(U[7]*Z[3])-(U[5]*Z[2])+U[5]*Z[1]+U[3]*Z[8]-(U[3]*Z[
X7])-(
X     U[1]*Z[6])+U[1]*Z[5])/2.0;
X    c[1][7]=(-(U[8]*Z[2])+U[8]*Z[1]+U[6]*Z[4]-(U[6]*Z[3])+U[4]*Z[6]-(U[
X4]*Z[5])-
X     (U[2]*Z[8])+U[2]*Z[7])/2.0;
X    c[1][8]=(-(U[7]*Z[2])+U[7]*Z[1]+U[5]*Z[4]-(U[5]*Z[3])+U[3]*Z[6]-(U[
X3]*Z[5])-
X     (U[1]*Z[8])+U[1]*Z[7])/2.0;
X    c[1][9]=0.0;
X    c[2][2]=0.0;
X    c[2][3]=(U[7]*Z[6]-(U[7]*Z[5])+U[5]*Z[8]-(U[5]*Z[7])-(U[3]*Z[2])+U[
X3]*Z[1]-(
X     U[1]*Z[4])+U[1]*Z[3])/2.0;
X    c[2][4]=0.0;
X    c[2][5]=(U[7]*Z[4]-(U[7]*Z[3])-(U[5]*Z[2])+U[5]*Z[1]+U[3]*Z[8]-(U[3]*Z[
X7])-(
X     U[1]*Z[6])+U[1]*Z[5])/2.0;
X    c[2][6]=0.0;
X    c[2][7]=(-(U[7]*Z[2])+U[7]*Z[1]+U[5]*Z[4]-(U[5]*Z[3])+U[3]*Z[6]-(U[
X3]*Z[5])-
X     (U[1]*Z[8])+U[1]*Z[7])/2.0;
X    c[2][8]=0.0;
X    c[2][9]=0.0;
X    c[3][3]=(-(U[8]*Z[8])+U[8]*Z[7]-(U[6]*Z[6])+U[6]*Z[5]-(U[4]*Z[4])+U[
X4]*Z[3]-
X     (U[2]*Z[2])+U[2]*Z[1])/2.0;
X    c[3][4]=(-(U[7]*Z[8])+U[7]*Z[7]-(U[5]*Z[6])+U[5]*Z[5]-(U[3]*Z[4])+U[
X3]*Z[3]-
X     (U[1]*Z[2])+U[1]*Z[1])/2.0;
X    c[3][5]=(U[8]*Z[2]-(U[8]*Z[1])-(U[6]*Z[4])+U[6]*Z[3]-(U[4]*Z[6])+U[
X4]*Z[5]+U
X     [2]*Z[8]-(U[2]*Z[7]))/2.0;
X    c[3][6]=(U[7]*Z[2]-(U[7]*Z[1])-(U[5]*Z[4])+U[5]*Z[3]-(U[3]*Z[6])+U[
X3]*Z[5]+U
X     [1]*Z[8]-(U[1]*Z[7]))/2.0;
X    c[3][7]=(-(U[8]*Z[4])+U[8]*Z[3]+U[6]*Z[2]-(U[6]*Z[1])-(U[4]*Z[8])+U[
X4]*Z[7]+
X     U[2]*Z[6]-(U[2]*Z[5]))/2.0;
X    c[3][8]=(-(U[7]*Z[4])+U[7]*Z[3]+U[5]*Z[2]-(U[5]*Z[1])-(U[3]*Z[8])+U[
X3]*Z[7]+
X     U[1]*Z[6]-(U[1]*Z[5]))/2.0;
X    c[3][9]=(8.0*Z[3])/(U[9]*U[9]*U[9]);
X    c[4][4]=0.0;
X    c[4][5]=(U[7]*Z[2]-(U[7]*Z[1])-(U[5]*Z[4])+U[5]*Z[3]-(U[3]*Z[6])+U[
X3]*Z[5]+U
X     [1]*Z[8]-(U[1]*Z[7]))/2.0;
X    c[4][6]=0.0;
X    c[4][7]=(-(U[7]*Z[4])+U[7]*Z[3]+U[5]*Z[2]-(U[5]*Z[1])-(U[3]*Z[8])+U[
X3]*Z[7]+
X     U[1]*Z[6]-(U[1]*Z[5]))/2.0;
X    c[4][8]=0.0;
X    c[4][9]=(80.0*Z[4])/(U[9]*U[9]*U[9]);
X    c[5][5]=(-(U[8]*Z[8])+U[8]*Z[7]-(U[6]*Z[6])+U[6]*Z[5]-(U[4]*Z[4])+U[
X4]*Z[3]-
X     (U[2]*Z[2])+U[2]*Z[1])/2.0;
X    c[5][6]=(-(U[7]*Z[8])+U[7]*Z[7]-(U[5]*Z[6])+U[5]*Z[5]-(U[3]*Z[4])+U[
X3]*Z[3]-
X     (U[1]*Z[2])+U[1]*Z[1])/2.0;
X    c[5][7]=(-(U[8]*Z[6])+U[8]*Z[5]-(U[6]*Z[8])+U[6]*Z[7]+U[4]*Z[2]-(U[
X4]*Z[1])+
X     U[2]*Z[4]-(U[2]*Z[3]))/2.0;
X    c[5][8]=(-(U[7]*Z[6])+U[7]*Z[5]-(U[5]*Z[8])+U[5]*Z[7]+U[3]*Z[2]-(U[
X3]*Z[1])+
X     U[1]*Z[4]-(U[1]*Z[3]))/2.0;
X    c[5][9]=(4.0*Z[5])/(U[9]*U[9]*U[9]);
X    c[6][6]=0.0;
X    c[6][7]=(-(U[7]*Z[6])+U[7]*Z[5]-(U[5]*Z[8])+U[5]*Z[7]+U[3]*Z[2]-(U[
X3]*Z[1])+
X     U[1]*Z[4]-(U[1]*Z[3]))/2.0;
X    c[6][8]=0.0;
X    c[6][9]=(40.0*Z[6])/(U[9]*U[9]*U[9]);
X    c[7][7]=(-(U[8]*Z[8])+U[8]*Z[7]-(U[6]*Z[6])+U[6]*Z[5]-(U[4]*Z[4])+U[
X4]*Z[3]-
X     (U[2]*Z[2])+U[2]*Z[1])/2.0;
X    c[7][8]=(-(U[7]*Z[8])+U[7]*Z[7]-(U[5]*Z[6])+U[5]*Z[5]-(U[3]*Z[4])+U[
X3]*Z[3]-
X     (U[1]*Z[2])+U[1]*Z[1])/2.0;
X    c[7][9]=(4.0*Z[7])/(U[9]*U[9]*U[9]);
X    c[8][8]=0.0;
X    c[8][9]=(40.0*Z[8])/(U[9]*U[9]*U[9]);
X    c[9][9]=(-(120.0*U[8]*Z[8])-(12.0*U[7]*Z[7])-(120.0*U[6]*Z[6])-(
X12.0*U[5]*Z[
X     5])-(240.0*U[4]*Z[4])-(24.0*U[3]*Z[3]))/(U[9]*U[9]*U[9]*U[9]);
X}
Xstatic void transformID(U,y)
Xdouble *U,*y;
X{
X    y[1]=(-U[7]+U[5]+U[3]+U[1])/2.0;
X    y[2]=(-U[8]+U[6]+U[4]+U[2])/2.0;
X    y[3]=(U[7]+U[5]-U[3]+U[1])/2.0;
X    y[4]=(U[8]+U[6]-U[4]+U[2])/2.0;
X    y[5]=(U[7]-U[5]+U[3]+U[1])/2.0;
X    y[6]=(U[8]-U[6]+U[4]+U[2])/2.0;
X    y[7]=(-U[7]-U[5]-U[3]+U[1])/2.0;
X    y[8]=(-U[8]-U[6]-U[4]+U[2])/2.0;
X    y[9]=U[9];
X}
Xstatic void invtransformID(Y,u)
Xdouble *u,*Y;
X{
X    u[1]=(Y[7]+Y[5]+Y[3]+Y[1])/2.0;
X    u[2]=(Y[8]+Y[6]+Y[4]+Y[2])/2.0;
X    u[3]=(-Y[7]+Y[5]-Y[3]+Y[1])/2.0;
X    u[4]=(-Y[8]+Y[6]-Y[4]+Y[2])/2.0;
X    u[5]=(-Y[7]-Y[5]+Y[3]+Y[1])/2.0;
X    u[6]=(-Y[8]-Y[6]+Y[4]+Y[2])/2.0;
X    u[7]=(-Y[7]+Y[5]+Y[3]-Y[1])/2.0;
X    u[8]=(-Y[8]+Y[6]+Y[4]-Y[2])/2.0;
X    u[9]=Y[9];
X}
Xstatic void testIDZ23(U,t)
Xdouble *U,*t;
X{
X    t[1]=(U[7]*SQRT2+U[5]*SQRT2)/2.0;
X    t[2]=(U[8]*SQRT2+U[6]*SQRT2)/2.0;
X}
Xstatic void testIDZ21(U,t)
Xdouble *U,*t;
X{
X    t[1]=(-(U[7]*SQRT2)+U[5]*SQRT2)/2.0;
X    t[2]=(-(U[8]*SQRT2)+U[6]*SQRT2)/2.0;
X}
Xstatic void testIDZ20(U,t)
Xdouble *U,*t;
X{
X    t[1]=U[3];
X    t[2]=U[4];
X    t[3]=U[7];
X    t[4]=U[8];
X}
Xstatic void testIDZ22(U,t)
Xdouble *U,*t;
X{
X    t[1]=U[3];
X    t[2]=U[4];
X    t[3]=U[5];
X    t[4]=U[6];
X}
Xstatic void init_ID()
X{
X    Op *op;
X    ID->label="ID";
X    ID->implemented=TRUE;
X    ID->transform=transformID;
X    ID->inv_transform=invtransformID;
X    append_op(ID,D4_proc_2,D4_proc_4,change_group_2,isotypic_triv);
X    append_op(ID,D4_proc_2,D4_proc_4,change_group_2,isotypic_triv);
X    append_op(ID,D4_proc_2,D4_proc_4,change_group_2,isotypic_triv);
X    append_op(ID,D4_proc_5,D4_proc_5,change_group_5,isotypic_triv);
X    append_op(ID,D4_proc_2,D4_proc_4,change_group_2,isotypic_triv);
X    append_op(ID,D4_proc_2,D4_proc_4,change_group_2,isotypic_triv);
X    append_op(ID,D4_proc_2,D4_proc_4,change_group_2,isotypic_triv);
X    append_op(ID,D4_proc_5,D4_proc_5,change_group_5,isotypic_triv);
X    ID->m[1]=8;
X    ID->g=gID;
X    ID->dg[1]=dgID1;
X    ID->cg[1]=cgID1;
X    ID->test[1]=testIDZ23;
X    ID->test[2]=testIDZ21;
X    ID->test[3]=testIDZ20;
X    ID->test[4]=testIDZ22;
X    ID->ntest[1]=2;
X    ID->ntest[2]=2;
X    ID->ntest[3]=4;
X    ID->ntest[4]=4;
X    ID->supergroup[1]=Z23;
X    ID->supergroup[2]=Z21;
X    ID->supergroup[3]=Z20;
X    ID->supergroup[4]=Z22;
X    ID->next=nil;
X    ID->no=ID_NO;
X}
Xstatic void transformZ23(U,y)
Xdouble *U,*y;
X{
X    y[1]=(U[5]*SQRT2+U[3]+U[1])/2.0;
X    y[2]=(U[6]*SQRT2+U[4]+U[2])/2.0;
X    y[3]=(-U[3]+U[1])/2.0;
X    y[4]=(-U[4]+U[2])/2.0;
X    y[5]=(-(U[5]*SQRT2)+U[3]+U[1])/2.0;
X    y[6]=(-(U[6]*SQRT2)+U[4]+U[2])/2.0;
X    y[7]=(-U[3]+U[1])/2.0;
X    y[8]=(-U[4]+U[2])/2.0;
X    y[9]=U[7];
X}
Xstatic void invtransformZ23(Y,u)
Xdouble *u,*Y;
X{
X    u[1]=(Y[7]+Y[5]+Y[3]+Y[1])/2.0;
X    u[2]=(Y[8]+Y[6]+Y[4]+Y[2])/2.0;
X    u[3]=(-Y[7]+Y[5]-Y[3]+Y[1])/2.0;
X    u[4]=(-Y[8]+Y[6]-Y[4]+Y[2])/2.0;
X    u[5]=(-(Y[5]*SQRT2)+Y[1]*SQRT2)/2.0;
X    u[6]=(-(Y[6]*SQRT2)+Y[2]*SQRT2)/2.0;
X    u[7]=Y[9];
X}
Xstatic void tangentZ23nachID(Z,y)
Xdouble *Z,*y;
X{
X    y[1]=0.0;
X    y[2]=0.0;
X    y[3]=0.0;
X    y[4]=0.0;
X    y[5]=(Z[1]*SQRT2)/2.0;
X    y[6]=(Z[2]*SQRT2)/2.0;
X    y[7]=(Z[1]*SQRT2)/2.0;
X    y[8]=(Z[2]*SQRT2)/2.0;
X    y[9]=0.0;
X}
Xstatic void init_Z23()
X{
X    Op *op;
X    Z23->label="Z23";
X    Z23->implemented=FALSE;
X    Z23->transform=transformZ23;
X    Z23->inv_transform=invtransformZ23;
X    append_op(Z23,D4_proc_2,D4_proc_4,change_group_2,isotypic_triv);
X    append_op(Z23,D4_proc_2,D4_proc_4,change_group_2,isotypic_triv);
X    append_op(Z23,D4_proc_2,D4_proc_4,change_group_2,isotypic_triv);
X    append_op(Z23,D4_proc_2,D4_proc_4,change_group_2,isotypic_triv);
X    Z23->m[1]=6;
X    Z23->m[2]=2;
X    Z23->subgroup[2][1]=ID;
X    Z23->symmetric[2][1]=TRUE;
X    Z23->tangent[2][1]=tangentZ23nachID;
X    Z23->supergroup[1]=K42;
X    Z23->supergroup[2]=D4;
X    Z23->next=ID;
X    Z23->no=Z23_NO;
X}
Xstatic void gZ21(U,g)
Xdouble *U,*g;
X{
X    g[1]=(-(2.0*U[6]*U[5]*U[3])+2.0*U[6]*U[5]*U[1]-((U[5]*U[5])*U[4])+(U[
X5]*U[5]
X     )*U[2]+2.0*U[4]*U[3]*U[1]+(U[3]*U[3])*U[2]+U[2]*(U[1]*U[1])-(28.0*U[
X1])+
X     16.0)/4.0;
X    g[2]=(2.0*U[6]*U[5]*U[3]-(2.0*U[6]*U[5]*U[1])+(U[5]*U[5])*U[4]-((U[
X5]*U[5])*
X     U[2])-(2.0*U[4]*U[3]*U[1])-((U[3]*U[3])*U[2])-(U[2]*(U[1]*U[1]))+
X24.0*U[1])
X     /4.0;
X    g[3]=(2.0*(U[7]*U[7])*U[6]*U[5]*U[3]-(2.0*(U[7]*U[7])*U[6]*U[5]*U[1])+(U[
X7]*
X     U[7])*(U[5]*U[5])*U[4]-((U[7]*U[7])*(U[5]*U[5])*U[2])+(U[7]*U[7])*U[
X4]*(U[3
X     ]*U[3])+(U[7]*U[7])*U[4]*(U[1]*U[1])+2.0*(U[7]*U[7])*U[3]*U[2]*U[1]-(
X28.0*(
X     U[7]*U[7])*U[3])-(16.0*U[3]))/(4.0*(U[7]*U[7]));
X    g[4]=(-(2.0*(U[7]*U[7])*U[6]*U[5]*U[3])+2.0*(U[7]*U[7])*U[6]*U[5]*U[
X1]-((U[7
X     ]*U[7])*(U[5]*U[5])*U[4])+(U[7]*U[7])*(U[5]*U[5])*U[2]-((U[7]*U[7])*U[
X4]*(U
X     [3]*U[3]))-((U[7]*U[7])*U[4]*(U[1]*U[1]))-(2.0*(U[7]*U[7])*U[3]*U[
X2]*U[1])+
X     24.0*(U[7]*U[7])*U[3]-(160.0*U[4]))/(4.0*(U[7]*U[7]));
X    g[5]=(2.0*(U[7]*U[7])*U[6]*(U[5]*U[5])+(U[7]*U[7])*U[6]*(U[3]*U[3])-(
X2.0*(U[
X     7]*U[7])*U[6]*U[3]*U[1])+(U[7]*U[7])*U[6]*(U[1]*U[1])+2.0*(U[7]*U[
X7])*U[5]*
X     U[4]*U[3]-(2.0*(U[7]*U[7])*U[5]*U[4]*U[1])-(2.0*(U[7]*U[7])*U[5]*U[
X3]*U[2])
X     +2.0*(U[7]*U[7])*U[5]*U[2]*U[1]-(28.0*(U[7]*U[7])*U[5])-(8.0*U[5]))/(
X4.0*(U
X     [7]*U[7]));
X    g[6]=(-(2.0*(U[7]*U[7])*U[6]*(U[5]*U[5]))-((U[7]*U[7])*U[6]*(U[3]*U[
X3]))+2.0
X     *(U[7]*U[7])*U[6]*U[3]*U[1]-((U[7]*U[7])*U[6]*(U[1]*U[1]))-(2.0*(U[
X7]*U[7])
X     *U[5]*U[4]*U[3])+2.0*(U[7]*U[7])*U[5]*U[4]*U[1]+2.0*(U[7]*U[7])*U[
X5]*U[3]*U
X     [2]-(2.0*(U[7]*U[7])*U[5]*U[2]*U[1])+24.0*(U[7]*U[7])*U[5]-(80.0*U[
X6]))/(
X     4.0*(U[7]*U[7]));
X}
Xstatic void dgZ211(U,dgu)
Xdouble *U,**dgu;
X{
X    dgu[1][1]=(U[6]*U[5]+U[4]*U[3]+U[2]*U[1]-14.0)/2.0;
X    dgu[1][2]=(U[5]*U[5]+U[3]*U[3]+U[1]*U[1])/4.0;
X    dgu[1][3]=(-(U[6]*U[5])+U[4]*U[1]+U[3]*U[2])/2.0;
X    dgu[1][4]=(-(U[5]*U[5])+2.0*U[3]*U[1])/4.0;
X    dgu[1][5]=(-(U[6]*U[3])+U[6]*U[1]-(U[5]*U[4])+U[5]*U[2])/2.0;
X    dgu[1][6]=(-(U[5]*U[3])+U[5]*U[1])/2.0;
X    dgu[1][7]=0.0;
X    dgu[2][1]=(-(U[6]*U[5])-(U[4]*U[3])-(U[2]*U[1])+12.0)/2.0;
X    dgu[2][2]=(-(U[5]*U[5])-(U[3]*U[3])-(U[1]*U[1]))/4.0;
X    dgu[2][3]=(U[6]*U[5]-(U[4]*U[1])-(U[3]*U[2]))/2.0;
X    dgu[2][4]=(U[5]*U[5]-(2.0*U[3]*U[1]))/4.0;
X    dgu[2][5]=(U[6]*U[3]-(U[6]*U[1])+U[5]*U[4]-(U[5]*U[2]))/2.0;
X    dgu[2][6]=(U[5]*U[3]-(U[5]*U[1]))/2.0;
X    dgu[2][7]=0.0;
X    dgu[3][1]=(-(U[6]*U[5])+U[4]*U[1]+U[3]*U[2])/2.0;
X    dgu[3][2]=(-(U[5]*U[5])+2.0*U[3]*U[1])/4.0;
X    dgu[3][3]=((U[7]*U[7])*U[6]*U[5]+(U[7]*U[7])*U[4]*U[3]+(U[7]*U[7])*U[
X2]*U[1]
X     -(14.0*(U[7]*U[7]))-8.0)/(2.0*(U[7]*U[7]));
X    dgu[3][4]=(U[5]*U[5]+U[3]*U[3]+U[1]*U[1])/4.0;
X    dgu[3][5]=(U[6]*U[3]-(U[6]*U[1])+U[5]*U[4]-(U[5]*U[2]))/2.0;
X    dgu[3][6]=(U[5]*U[3]-(U[5]*U[1]))/2.0;
X    dgu[3][7]=(8.0*U[3])/(U[7]*U[7]*U[7]);
X    dgu[4][1]=(U[6]*U[5]-(U[4]*U[1])-(U[3]*U[2]))/2.0;
X    dgu[4][2]=(U[5]*U[5]-(2.0*U[3]*U[1]))/4.0;
X    dgu[4][3]=(-(U[6]*U[5])-(U[4]*U[3])-(U[2]*U[1])+12.0)/2.0;
X    dgu[4][4]=(-((U[7]*U[7])*(U[5]*U[5]))-((U[7]*U[7])*(U[3]*U[3]))-((U[
X7]*U[7])
X     *(U[1]*U[1]))-160.0)/(4.0*(U[7]*U[7]));
X    dgu[4][5]=(-(U[6]*U[3])+U[6]*U[1]-(U[5]*U[4])+U[5]*U[2])/2.0;
X    dgu[4][6]=(-(U[5]*U[3])+U[5]*U[1])/2.0;
X    dgu[4][7]=(80.0*U[4])/(U[7]*U[7]*U[7]);
X    dgu[5][1]=(-(U[6]*U[3])+U[6]*U[1]-(U[5]*U[4])+U[5]*U[2])/2.0;
X    dgu[5][2]=(-(U[5]*U[3])+U[5]*U[1])/2.0;
X    dgu[5][3]=(U[6]*U[3]-(U[6]*U[1])+U[5]*U[4]-(U[5]*U[2]))/2.0;
X    dgu[5][4]=(U[5]*U[3]-(U[5]*U[1]))/2.0;
X    dgu[5][5]=(2.0*(U[7]*U[7])*U[6]*U[5]+(U[7]*U[7])*U[4]*U[3]-((U[7]*U[
X7])*U[4]
X     *U[1])-((U[7]*U[7])*U[3]*U[2])+(U[7]*U[7])*U[2]*U[1]-(14.0*(U[7]*U[
X7]))-4.0
X     )/(2.0*(U[7]*U[7]));
X    dgu[5][6]=(2.0*(U[5]*U[5])+U[3]*U[3]-(2.0*U[3]*U[1])+U[1]*U[1])/
X4.0;
X    dgu[5][7]=(4.0*U[5])/(U[7]*U[7]*U[7]);
X    dgu[6][1]=(U[6]*U[3]-(U[6]*U[1])+U[5]*U[4]-(U[5]*U[2]))/2.0;
X    dgu[6][2]=(U[5]*U[3]-(U[5]*U[1]))/2.0;
X    dgu[6][3]=(-(U[6]*U[3])+U[6]*U[1]-(U[5]*U[4])+U[5]*U[2])/2.0;
X    dgu[6][4]=(-(U[5]*U[3])+U[5]*U[1])/2.0;
X    dgu[6][5]=(-(2.0*U[6]*U[5])-(U[4]*U[3])+U[4]*U[1]+U[3]*U[2]-(U[2]*U[
X1])+12.0
X     )/2.0;
X    dgu[6][6]=(-(2.0*(U[7]*U[7])*(U[5]*U[5]))-((U[7]*U[7])*(U[3]*U[3]))+
X2.0*(U[7
X     ]*U[7])*U[3]*U[1]-((U[7]*U[7])*(U[1]*U[1]))-80.0)/(4.0*(U[7]*U[7]));
X    dgu[6][7]=(40.0*U[6])/(U[7]*U[7]*U[7]);
X}
Xstatic void dgZ212(U,dgu)
Xdouble *U,**dgu;
X{
X    dgu[1][1]=((U[7]*U[7])*U[4]*U[3]+(U[7]*U[7])*U[4]*U[1]+(U[7]*U[7])*U[
X3]*U[2]
X     +(U[7]*U[7])*U[2]*U[1]-(14.0*(U[7]*U[7]))-4.0)/(2.0*(U[7]*U[7]));
X    dgu[1][2]=(U[3]*U[3]+2.0*U[3]*U[1]+U[1]*U[1])/4.0;
X    dgu[2][1]=(-(U[4]*U[3])-(U[4]*U[1])-(U[3]*U[2])-(U[2]*U[1])+12.0)/
X2.0;
X    dgu[2][2]=(-((U[7]*U[7])*(U[3]*U[3]))-(2.0*(U[7]*U[7])*U[3]*U[1])-((U[
X7]*U[7
X     ])*(U[1]*U[1]))-80.0)/(4.0*(U[7]*U[7]));
X}
Xstatic void cgZ212(U,Z,c)
Xdouble *U,*Z,**c;
X{
X    c[1][1]=(U[4]*Z[1]+U[3]*Z[2]+U[2]*Z[1]+U[1]*Z[2])/2.0;
X    c[1][2]=(U[3]*Z[1]+U[1]*Z[1])/2.0;
X    c[1][3]=(U[4]*Z[1]+U[3]*Z[2]+U[2]*Z[1]+U[1]*Z[2])/2.0;
X    c[1][4]=(U[3]*Z[1]+U[1]*Z[1])/2.0;
X    c[1][5]=0.0;
X    c[1][6]=0.0;
X    c[1][7]=(4.0*Z[1])/(U[7]*U[7]*U[7]);
X    c[2][1]=(-(U[4]*Z[1])-(U[3]*Z[2])-(U[2]*Z[1])-(U[1]*Z[2]))/2.0;
X    c[2][2]=(-(U[3]*Z[1])-(U[1]*Z[1]))/2.0;
X    c[2][3]=(-(U[4]*Z[1])-(U[3]*Z[2])-(U[2]*Z[1])-(U[1]*Z[2]))/2.0;
X    c[2][4]=(-(U[3]*Z[1])-(U[1]*Z[1]))/2.0;
X    c[2][5]=0.0;
X    c[2][6]=0.0;
X    c[2][7]=(40.0*Z[2])/(U[7]*U[7]*U[7]);
X}
Xstatic void cgZ211(U,Z,c)
Xdouble *U,*Z,**c;
X{
X    c[1][1]=(-(U[6]*Z[6])+U[6]*Z[5]-(U[4]*Z[4])+U[4]*Z[3]-(U[2]*Z[2])+U[
X2]*Z[1])
X     /2.0;
X    c[1][2]=(-(U[5]*Z[6])+U[5]*Z[5]-(U[3]*Z[4])+U[3]*Z[3]-(U[1]*Z[2])+U[
X1]*Z[1])
X     /2.0;
X    c[1][3]=(U[6]*Z[6]-(U[6]*Z[5])-(U[4]*Z[2])+U[4]*Z[1]-(U[2]*Z[4])+U[
X2]*Z[3])/
X     2.0;
X    c[1][4]=(U[5]*Z[6]-(U[5]*Z[5])-(U[3]*Z[2])+U[3]*Z[1]-(U[1]*Z[4])+U[
X1]*Z[3])/
X     2.0;
X    c[1][5]=(U[6]*Z[4]-(U[6]*Z[3])-(U[6]*Z[2])+U[6]*Z[1]+U[4]*Z[6]-(U[4]*Z[
X5])-(
X     U[2]*Z[6])+U[2]*Z[5])/2.0;
X    c[1][6]=(U[5]*Z[4]-(U[5]*Z[3])-(U[5]*Z[2])+U[5]*Z[1]+U[3]*Z[6]-(U[3]*Z[
X5])-(
X     U[1]*Z[6])+U[1]*Z[5])/2.0;
X    c[1][7]=0.0;
X    c[2][2]=0.0;
X    c[2][3]=(U[5]*Z[6]-(U[5]*Z[5])-(U[3]*Z[2])+U[3]*Z[1]-(U[1]*Z[4])+U[
X1]*Z[3])/
X     2.0;
X    c[2][4]=0.0;
X    c[2][5]=(U[5]*Z[4]-(U[5]*Z[3])-(U[5]*Z[2])+U[5]*Z[1]+U[3]*Z[6]-(U[3]*Z[
X5])-(
X     U[1]*Z[6])+U[1]*Z[5])/2.0;
X    c[2][6]=0.0;
X    c[2][7]=0.0;
X    c[3][3]=(-(U[6]*Z[6])+U[6]*Z[5]-(U[4]*Z[4])+U[4]*Z[3]-(U[2]*Z[2])+U[
X2]*Z[1])
X     /2.0;
X    c[3][4]=(-(U[5]*Z[6])+U[5]*Z[5]-(U[3]*Z[4])+U[3]*Z[3]-(U[1]*Z[2])+U[
X1]*Z[1])
X     /2.0;
X    c[3][5]=(-(U[6]*Z[4])+U[6]*Z[3]+U[6]*Z[2]-(U[6]*Z[1])-(U[4]*Z[6])+U[
X4]*Z[5]+
X     U[2]*Z[6]-(U[2]*Z[5]))/2.0;
X    c[3][6]=(-(U[5]*Z[4])+U[5]*Z[3]+U[5]*Z[2]-(U[5]*Z[1])-(U[3]*Z[6])+U[
X3]*Z[5]+
X     U[1]*Z[6]-(U[1]*Z[5]))/2.0;
X    c[3][7]=(8.0*Z[3])/(U[7]*U[7]*U[7]);
X    c[4][4]=0.0;
X    c[4][5]=(-(U[5]*Z[4])+U[5]*Z[3]+U[5]*Z[2]-(U[5]*Z[1])-(U[3]*Z[6])+U[
X3]*Z[5]+
X     U[1]*Z[6]-(U[1]*Z[5]))/2.0;
X    c[4][6]=0.0;
X    c[4][7]=(80.0*Z[4])/(U[7]*U[7]*U[7]);
X    c[5][5]=(-(2.0*U[6]*Z[6])+2.0*U[6]*Z[5]-(U[4]*Z[4])+U[4]*Z[3]+U[4]*Z[
X2]-(U[4
X     ]*Z[1])+U[2]*Z[4]-(U[2]*Z[3])-(U[2]*Z[2])+U[2]*Z[1])/2.0;
X    c[5][6]=(-(2.0*U[5]*Z[6])+2.0*U[5]*Z[5]-(U[3]*Z[4])+U[3]*Z[3]+U[3]*Z[
X2]-(U[3
X     ]*Z[1])+U[1]*Z[4]-(U[1]*Z[3])-(U[1]*Z[2])+U[1]*Z[1])/2.0;
X    c[5][7]=(4.0*Z[5])/(U[7]*U[7]*U[7]);
X    c[6][6]=0.0;
X    c[6][7]=(40.0*Z[6])/(U[7]*U[7]*U[7]);
X    c[7][7]=(-(120.0*U[6]*Z[6])-(12.0*U[5]*Z[5])-(240.0*U[4]*Z[4])-(
X24.0*U[3]*Z[
X     3]))/(U[7]*U[7]*U[7]*U[7]);
X}
Xstatic void transformZ21(U,y)
Xdouble *U,*y;
X{
X    y[1]=(U[3]+U[1])/2.0;
X    y[2]=(U[4]+U[2])/2.0;
X    y[3]=(U[5]*SQRT2-U[3]+U[1])/2.0;
X    y[4]=(U[6]*SQRT2-U[4]+U[2])/2.0;
X    y[5]=(U[3]+U[1])/2.0;
X    y[6]=(U[4]+U[2])/2.0;
X    y[7]=(-(U[5]*SQRT2)-U[3]+U[1])/2.0;
X    y[8]=(-(U[6]*SQRT2)-U[4]+U[2])/2.0;
X    y[9]=U[7];
X}
Xstatic void invtransformZ21(Y,u)
Xdouble *u,*Y;
X{
X    u[1]=(Y[7]+Y[5]+Y[3]+Y[1])/2.0;
X    u[2]=(Y[8]+Y[6]+Y[4]+Y[2])/2.0;
X    u[3]=(-Y[7]+Y[5]-Y[3]+Y[1])/2.0;
X    u[4]=(-Y[8]+Y[6]-Y[4]+Y[2])/2.0;
X    u[5]=(-(Y[7]*SQRT2)+Y[3]*SQRT2)/2.0;
X    u[6]=(-(Y[8]*SQRT2)+Y[4]*SQRT2)/2.0;
X    u[7]=Y[9];
X}
Xstatic void tangentZ21nachID(Z,y)
Xdouble *Z,*y;
X{
X    y[1]=0.0;
X    y[2]=0.0;
X    y[3]=0.0;
X    y[4]=0.0;
X    y[5]=(Z[1]*SQRT2)/2.0;
X    y[6]=(Z[2]*SQRT2)/2.0;
X    y[7]=-(Z[1]*SQRT2)/2.0;
X    y[8]=-(Z[2]*SQRT2)/2.0;
X    y[9]=0.0;
X}
Xstatic void testZ21K42(U,t)
Xdouble *U,*t;
X{
X    t[1]=U[5];
X    t[2]=U[6];
X}
Xstatic void testZ21D4(U,t)
Xdouble *U,*t;
X{
X    t[1]=U[3];
X    t[2]=U[4];
X    t[3]=(U[5]*SQRT2)/2.0;
X    t[4]=(U[6]*SQRT2)/2.0;
X}
Xstatic void init_Z21()
X{
X    Op *op;
X    Z21->label="Z21";
X    Z21->implemented=TRUE;
X    Z21->transform=transformZ21;
X    Z21->inv_transform=invtransformZ21;
X    append_op(Z21,D4_proc_2,D4_proc_4,change_group_2,isotypic_triv);
X    append_op(Z21,D4_proc_2,D4_proc_4,change_group_2,isotypic_triv);
X    append_op(Z21,D4_proc_2,D4_proc_4,change_group_2,isotypic_triv);
X    append_op(Z21,D4_proc_2,D4_proc_4,change_group_2,isotypic_triv);
X    Z21->m[1]=6;
X    Z21->m[2]=2;
X    Z21->g=gZ21;
X    Z21->dg[1]=dgZ211;
X    Z21->dg[2]=dgZ212;
X    Z21->cg[1]=cgZ211;
X    Z21->cg[2]=cgZ212;
X    Z21->subgroup[2][1]=ID;
X    Z21->symmetric[2][1]=TRUE;
X    Z21->tangent[2][1]=tangentZ21nachID;
X    Z21->test[1]=testZ21K42;
X    Z21->test[2]=testZ21D4;
X    Z21->ntest[1]=2;
X    Z21->ntest[2]=4;
X    Z21->supergroup[1]=K42;
X    Z21->supergroup[2]=D4;
X    Z21->next=Z23;
X    Z21->no=Z21_NO;
X}
Xstatic void gK42(U,g)
Xdouble *U,*g;
X{
X    g[1]=(2.0*U[4]*U[3]*U[1]+(U[3]*U[3])*U[2]+U[2]*(U[1]*U[1])-(28.0*U[
X1])+16.0)
X     /4.0;
X    g[2]=(-(2.0*U[4]*U[3]*U[1])-((U[3]*U[3])*U[2])-(U[2]*(U[1]*U[1]))+
X24.0*U[1])
X     /4.0;
X    g[3]=((U[5]*U[5])*U[4]*(U[3]*U[3])+(U[5]*U[5])*U[4]*(U[1]*U[1])+
X2.0*(U[5]*U[
X     5])*U[3]*U[2]*U[1]-(28.0*(U[5]*U[5])*U[3])-(16.0*U[3]))/(4.0*(U[5]*U[
X5]));
X    g[4]=(-((U[5]*U[5])*U[4]*(U[3]*U[3]))-((U[5]*U[5])*U[4]*(U[1]*U[1]))-(
X2.0*(U
X     [5]*U[5])*U[3]*U[2]*U[1])+24.0*(U[5]*U[5])*U[3]-(160.0*U[4]))/(
X4.0*(U[5]*U[
X     5]));
X}
Xstatic void dgK421(U,dgu)
Xdouble *U,**dgu;
X{
X    dgu[1][1]=(U[4]*U[3]+U[2]*U[1]-14.0)/2.0;
X    dgu[1][2]=(U[3]*U[3]+U[1]*U[1])/4.0;
X    dgu[1][3]=(U[4]*U[1]+U[3]*U[2])/2.0;
X    dgu[1][4]=(U[3]*U[1])/2.0;
X    dgu[1][5]=0.0;
X    dgu[2][1]=(-(U[4]*U[3])-(U[2]*U[1])+12.0)/2.0;
X    dgu[2][2]=(-(U[3]*U[3])-(U[1]*U[1]))/4.0;
X    dgu[2][3]=(-(U[4]*U[1])-(U[3]*U[2]))/2.0;
X    dgu[2][4]=-(U[3]*U[1])/2.0;
X    dgu[2][5]=0.0;
X    dgu[3][1]=(U[4]*U[1]+U[3]*U[2])/2.0;
X    dgu[3][2]=(U[3]*U[1])/2.0;
X    dgu[3][3]=((U[5]*U[5])*U[4]*U[3]+(U[5]*U[5])*U[2]*U[1]-(14.0*(U[5]*U[
X5]))-
X     8.0)/(2.0*(U[5]*U[5]));
X    dgu[3][4]=(U[3]*U[3]+U[1]*U[1])/4.0;
X    dgu[3][5]=(8.0*U[3])/(U[5]*U[5]*U[5]);
X    dgu[4][1]=(-(U[4]*U[1])-(U[3]*U[2]))/2.0;
X    dgu[4][2]=-(U[3]*U[1])/2.0;
X    dgu[4][3]=(-(U[4]*U[3])-(U[2]*U[1])+12.0)/2.0;
X    dgu[4][4]=(-((U[5]*U[5])*(U[3]*U[3]))-((U[5]*U[5])*(U[1]*U[1]))-
X160.0)/(4.0*
X     (U[5]*U[5]));
X    dgu[4][5]=(80.0*U[4])/(U[5]*U[5]*U[5]);
X}
Xstatic void dgK423(U,dgu)
Xdouble *U,**dgu;
X{
X    dgu[1][1]=((U[5]*U[5])*U[4]*U[3]+(U[5]*U[5])*U[4]*U[1]+(U[5]*U[5])*U[
X3]*U[2]
X     +(U[5]*U[5])*U[2]*U[1]-(14.0*(U[5]*U[5]))-4.0)/(2.0*(U[5]*U[5]));
X    dgu[1][2]=(U[3]*U[3]+2.0*U[3]*U[1]+U[1]*U[1])/4.0;
X    dgu[2][1]=(-(U[4]*U[3])-(U[4]*U[1])-(U[3]*U[2])-(U[2]*U[1])+12.0)/
X2.0;
X    dgu[2][2]=(-((U[5]*U[5])*(U[3]*U[3]))-(2.0*(U[5]*U[5])*U[3]*U[1])-((U[
X5]*U[5
X     ])*(U[1]*U[1]))-80.0)/(4.0*(U[5]*U[5]));
X}
Xstatic void dgK424(U,dgu)
Xdouble *U,**dgu;
X{
X    dgu[1][1]=((U[5]*U[5])*U[4]*U[3]-((U[5]*U[5])*U[4]*U[1])-((U[5]*U[5])*U[
X3]*U
X     [2])+(U[5]*U[5])*U[2]*U[1]-(14.0*(U[5]*U[5]))-4.0)/(2.0*(U[5]*U[5]));
X    dgu[1][2]=(U[3]*U[3]-(2.0*U[3]*U[1])+U[1]*U[1])/4.0;
X    dgu[2][1]=(-(U[4]*U[3])+U[4]*U[1]+U[3]*U[2]-(U[2]*U[1])+12.0)/2.0;
X    dgu[2][2]=(-((U[5]*U[5])*(U[3]*U[3]))+2.0*(U[5]*U[5])*U[3]*U[1]-((U[
X5]*U[5])
X     *(U[1]*U[1]))-80.0)/(4.0*(U[5]*U[5]));
X}
Xstatic void cgK423(U,Z,c)
Xdouble *U,*Z,**c;
X{
X    c[1][1]=(U[4]*Z[1]+U[3]*Z[2]+U[2]*Z[1]+U[1]*Z[2])/2.0;
X    c[1][2]=(U[3]*Z[1]+U[1]*Z[1])/2.0;
X    c[1][3]=(U[4]*Z[1]+U[3]*Z[2]+U[2]*Z[1]+U[1]*Z[2])/2.0;
X    c[1][4]=(U[3]*Z[1]+U[1]*Z[1])/2.0;
X    c[1][5]=(4.0*Z[1])/(U[5]*U[5]*U[5]);
X    c[2][1]=(-(U[4]*Z[1])-(U[3]*Z[2])-(U[2]*Z[1])-(U[1]*Z[2]))/2.0;
X    c[2][2]=(-(U[3]*Z[1])-(U[1]*Z[1]))/2.0;
X    c[2][3]=(-(U[4]*Z[1])-(U[3]*Z[2])-(U[2]*Z[1])-(U[1]*Z[2]))/2.0;
X    c[2][4]=(-(U[3]*Z[1])-(U[1]*Z[1]))/2.0;
X    c[2][5]=(40.0*Z[2])/(U[5]*U[5]*U[5]);
X}
Xstatic void cgK424(U,Z,c)
Xdouble *U,*Z,**c;
X{
X    c[1][1]=(-(U[4]*Z[1])-(U[3]*Z[2])+U[2]*Z[1]+U[1]*Z[2])/2.0;
X    c[1][2]=(-(U[3]*Z[1])+U[1]*Z[1])/2.0;
X    c[1][3]=(U[4]*Z[1]+U[3]*Z[2]-(U[2]*Z[1])-(U[1]*Z[2]))/2.0;
X    c[1][4]=(U[3]*Z[1]-(U[1]*Z[1]))/2.0;
X    c[1][5]=(4.0*Z[1])/(U[5]*U[5]*U[5]);
X    c[2][1]=(U[4]*Z[1]+U[3]*Z[2]-(U[2]*Z[1])-(U[1]*Z[2]))/2.0;
X    c[2][2]=(U[3]*Z[1]-(U[1]*Z[1]))/2.0;
X    c[2][3]=(-(U[4]*Z[1])-(U[3]*Z[2])+U[2]*Z[1]+U[1]*Z[2])/2.0;
X    c[2][4]=(-(U[3]*Z[1])+U[1]*Z[1])/2.0;
X    c[2][5]=(40.0*Z[2])/(U[5]*U[5]*U[5]);
X}
Xstatic void cgK421(U,Z,c)
Xdouble *U,*Z,**c;
X{
X    c[1][1]=(-(U[4]*Z[4])+U[4]*Z[3]-(U[2]*Z[2])+U[2]*Z[1])/2.0;
X    c[1][2]=(-(U[3]*Z[4])+U[3]*Z[3]-(U[1]*Z[2])+U[1]*Z[1])/2.0;
X    c[1][3]=(-(U[4]*Z[2])+U[4]*Z[1]-(U[2]*Z[4])+U[2]*Z[3])/2.0;
X    c[1][4]=(-(U[3]*Z[2])+U[3]*Z[1]-(U[1]*Z[4])+U[1]*Z[3])/2.0;
X    c[1][5]=0.0;
X    c[2][2]=0.0;
X    c[2][3]=(-(U[3]*Z[2])+U[3]*Z[1]-(U[1]*Z[4])+U[1]*Z[3])/2.0;
X    c[2][4]=0.0;
X    c[2][5]=0.0;
X    c[3][3]=(-(U[4]*Z[4])+U[4]*Z[3]-(U[2]*Z[2])+U[2]*Z[1])/2.0;
X    c[3][4]=(-(U[3]*Z[4])+U[3]*Z[3]-(U[1]*Z[2])+U[1]*Z[1])/2.0;
X    c[3][5]=(8.0*Z[3])/(U[5]*U[5]*U[5]);
X    c[4][4]=0.0;
X    c[4][5]=(80.0*Z[4])/(U[5]*U[5]*U[5]);
X    c[5][5]=(-(240.0*U[4]*Z[4])-(24.0*U[3]*Z[3]))/(U[5]*U[5]*U[5]*U[5]);
X}
Xstatic void transformK42(U,y)
Xdouble *U,*y;
X{
X    y[1]=(U[3]+U[1])/2.0;
X    y[2]=(U[4]+U[2])/2.0;
X    y[3]=(-U[3]+U[1])/2.0;
X    y[4]=(-U[4]+U[2])/2.0;
X    y[5]=(U[3]+U[1])/2.0;
X    y[6]=(U[4]+U[2])/2.0;
X    y[7]=(-U[3]+U[1])/2.0;
X    y[8]=(-U[4]+U[2])/2.0;
X    y[9]=U[5];
X}
Xstatic void invtransformK42(Y,u)
Xdouble *u,*Y;
X{
X    u[1]=(Y[7]+Y[5]+Y[3]+Y[1])/2.0;
X    u[2]=(Y[8]+Y[6]+Y[4]+Y[2])/2.0;
X    u[3]=(-Y[7]+Y[5]-Y[3]+Y[1])/2.0;
X    u[4]=(-Y[8]+Y[6]-Y[4]+Y[2])/2.0;
X    u[5]=Y[9];
X}
Xstatic void tangentK42nachZ23(Z,y)
Xdouble *Z,*y;
X{
X    y[1]=0.0;
X    y[2]=0.0;
X    y[3]=0.0;
X    y[4]=0.0;
X    y[5]=Z[1];
X    y[6]=Z[2];
X    y[7]=0.0;
X}
Xstatic void tangentK42nachZ21(Z,y)
Xdouble *Z,*y;
X{
X    y[1]=0.0;
X    y[2]=0.0;
X    y[3]=0.0;
X    y[4]=0.0;
X    y[5]=Z[1];
X    y[6]=Z[2];
X    y[7]=0.0;
X}
Xstatic void testK42D4(U,t)
Xdouble *U,*t;
X{
X    t[1]=U[3];
X    t[2]=U[4];
X}
Xstatic void init_K42()
X{
X    Op *op;
X    K42->label="K42";
X    K42->implemented=TRUE;
X    K42->transform=transformK42;
X    K42->inv_transform=invtransformK42;
X    append_op(K42,D4_proc_2,D4_proc_4,change_group_2,isotypic_K42_2);
X    append_op(K42,D4_proc_2,D4_proc_4,change_group_2,isotypic_K42_2);
X    K42->m[1]=4;
X    K42->m[2]=2;
X    K42->m[3]=2;
X    K42->g=gK42;
X    K42->dg[1]=dgK421;
X    K42->dg[2]=dgK423;
X    K42->dg[3]=dgK424;
X    K42->cg[1]=cgK421;
X    K42->cg[2]=cgK423;
X    K42->cg[3]=cgK424;
X    K42->subgroup[2][1]=Z23;
X    K42->symmetric[2][1]=TRUE;
X    K42->tangent[2][1]=tangentK42nachZ23;
X    K42->subgroup[3][1]=Z21;
X    K42->symmetric[3][1]=TRUE;
X    K42->tangent[3][1]=tangentK42nachZ21;
X    K42->test[1]=testK42D4;
X    K42->ntest[1]=2;
X    K42->supergroup[1]=D4;
X    K42->next=Z21;
X    K42->no=K42_NO;
X}
Xstatic void transformZ20(U,y)
Xdouble *U,*y;
X{
X    y[1]=(U[3]+U[1])/2.0;
X    y[2]=(U[4]+U[2])/2.0;
X    y[3]=(U[3]+U[1])/2.0;
X    y[4]=(U[4]+U[2])/2.0;
X    y[5]=(-U[3]+U[1])/2.0;
X    y[6]=(-U[4]+U[2])/2.0;
X    y[7]=(-U[3]+U[1])/2.0;
X    y[8]=(-U[4]+U[2])/2.0;
X    y[9]=U[5];
X}
Xstatic void invtransformZ20(Y,u)
Xdouble *u,*Y;
X{
X    u[1]=(Y[7]+Y[5]+Y[3]+Y[1])/2.0;
X    u[2]=(Y[8]+Y[6]+Y[4]+Y[2])/2.0;
X    u[3]=(-Y[7]-Y[5]+Y[3]+Y[1])/2.0;
X    u[4]=(-Y[8]-Y[6]+Y[4]+Y[2])/2.0;
X    u[5]=Y[9];
X}
Xstatic void tangentZ20nachID(Z,y)
Xdouble *Z,*y;
X{
X    y[1]=0.0;
X    y[2]=0.0;
X    y[3]=Z[1];
X    y[4]=Z[2];
X    y[5]=0.0;
X    y[6]=0.0;
X    y[7]=Z[3];
X    y[8]=Z[4];
X    y[9]=0.0;
X}
Xstatic void init_Z20()
X{
X    Op *op;
X    Z20->label="Z20";
X    Z20->implemented=FALSE;
X    Z20->transform=transformZ20;
X    Z20->inv_transform=invtransformZ20;
X    append_op(Z20,D4_proc_2,D4_proc_4,change_group_2,isotypic_triv);
X    append_op(Z20,D4_proc_2,D4_proc_4,change_group_2,isotypic_triv);
X    append_op(Z20,D4_proc_2,D4_proc_4,change_group_2,isotypic_triv);
X    append_op(Z20,D4_proc_2,D4_proc_4,change_group_2,isotypic_triv);
X    Z20->m[1]=4;
X    Z20->m[2]=4;
X    Z20->subgroup[2][1]=ID;
X    Z20->symmetric[2][1]=TRUE;
X    Z20->tangent[2][1]=tangentZ20nachID;
X    Z20->supergroup[1]=D4;
X    Z20->next=K42;
X    Z20->no=Z20_NO;
X}
Xstatic void gZ22(U,g)
Xdouble *U,*g;
X{
X    g[1]=(2.0*U[4]*U[3]*U[1]+(U[3]*U[3])*U[2]+U[2]*(U[1]*U[1])-(28.0*U[
X1])+16.0)
X     /4.0;
X    g[2]=(-(2.0*U[4]*U[3]*U[1])-((U[3]*U[3])*U[2])-(U[2]*(U[1]*U[1]))+
X24.0*U[1])
X     /4.0;
X    g[3]=((U[5]*U[5])*U[4]*(U[3]*U[3])+(U[5]*U[5])*U[4]*(U[1]*U[1])+
X2.0*(U[5]*U[
X     5])*U[3]*U[2]*U[1]-(28.0*(U[5]*U[5])*U[3])-(8.0*U[3]))/(4.0*(U[5]*U[
X5]));
X    g[4]=(-((U[5]*U[5])*U[4]*(U[3]*U[3]))-((U[5]*U[5])*U[4]*(U[1]*U[1]))-(
X2.0*(U
X     [5]*U[5])*U[3]*U[2]*U[1])+24.0*(U[5]*U[5])*U[3]-(80.0*U[4]))/(
X4.0*(U[5]*U[5
X     ]));
X}
Xstatic void dgZ221(U,dgu)
Xdouble *U,**dgu;
X{
X    dgu[1][1]=(U[4]*U[3]+U[2]*U[1]-14.0)/2.0;
X    dgu[1][2]=(U[3]*U[3]+U[1]*U[1])/4.0;
X    dgu[1][3]=(U[4]*U[1]+U[3]*U[2])/2.0;
X    dgu[1][4]=(U[3]*U[1])/2.0;
X    dgu[1][5]=0.0;
X    dgu[2][1]=(-(U[4]*U[3])-(U[2]*U[1])+12.0)/2.0;
X    dgu[2][2]=(-(U[3]*U[3])-(U[1]*U[1]))/4.0;
X    dgu[2][3]=(-(U[4]*U[1])-(U[3]*U[2]))/2.0;
X    dgu[2][4]=-(U[3]*U[1])/2.0;
X    dgu[2][5]=0.0;
X    dgu[3][1]=(U[4]*U[1]+U[3]*U[2])/2.0;
X    dgu[3][2]=(U[3]*U[1])/2.0;
X    dgu[3][3]=((U[5]*U[5])*U[4]*U[3]+(U[5]*U[5])*U[2]*U[1]-(14.0*(U[5]*U[
X5]))-
X     4.0)/(2.0*(U[5]*U[5]));
X    dgu[3][4]=(U[3]*U[3]+U[1]*U[1])/4.0;
X    dgu[3][5]=(4.0*U[3])/(U[5]*U[5]*U[5]);
X    dgu[4][1]=(-(U[4]*U[1])-(U[3]*U[2]))/2.0;
X    dgu[4][2]=-(U[3]*U[1])/2.0;
X    dgu[4][3]=(-(U[4]*U[3])-(U[2]*U[1])+12.0)/2.0;
X    dgu[4][4]=(-((U[5]*U[5])*(U[3]*U[3]))-((U[5]*U[5])*(U[1]*U[1]))-
X80.0)/(4.0*(
X     U[5]*U[5]));
X    dgu[4][5]=(40.0*U[4])/(U[5]*U[5]*U[5]);
X}
Xstatic void dgZ222(U,dgu)
Xdouble *U,**dgu;
X{
X    dgu[1][1]=((U[5]*U[5])*U[4]*U[3]+(U[5]*U[5])*U[2]*U[1]-(14.0*(U[5]*U[
X5]))-
X     8.0)/(2.0*(U[5]*U[5]));
X    dgu[1][2]=(U[3]*U[3]+U[1]*U[1])/4.0;
X    dgu[1][3]=(-(U[4]*U[1])-(U[3]*U[2]))/2.0;
X    dgu[1][4]=-(U[3]*U[1])/2.0;
X    dgu[2][1]=(-(U[4]*U[3])-(U[2]*U[1])+12.0)/2.0;
X    dgu[2][2]=(-((U[5]*U[5])*(U[3]*U[3]))-((U[5]*U[5])*(U[1]*U[1]))-
X160.0)/(4.0*
X     (U[5]*U[5]));
X    dgu[2][3]=(U[4]*U[1]+U[3]*U[2])/2.0;
X    dgu[2][4]=(U[3]*U[1])/2.0;
X    dgu[3][1]=(-(U[4]*U[1])-(U[3]*U[2]))/2.0;
X    dgu[3][2]=-(U[3]*U[1])/2.0;
X    dgu[3][3]=((U[5]*U[5])*U[4]*U[3]+(U[5]*U[5])*U[2]*U[1]-(14.0*(U[5]*U[
X5]))-
X     4.0)/(2.0*(U[5]*U[5]));
X    dgu[3][4]=(U[3]*U[3]+U[1]*U[1])/4.0;
X    dgu[4][1]=(U[4]*U[1]+U[3]*U[2])/2.0;
X    dgu[4][2]=(U[3]*U[1])/2.0;
X    dgu[4][3]=(-(U[4]*U[3])-(U[2]*U[1])+12.0)/2.0;
X    dgu[4][4]=(-((U[5]*U[5])*(U[3]*U[3]))-((U[5]*U[5])*(U[1]*U[1]))-
X80.0)/(4.0*(
X     U[5]*U[5]));
X}
Xstatic void cgZ222(U,Z,c)
Xdouble *U,*Z,**c;
X{
X    c[1][1]=(-(U[4]*Z[3])-(U[3]*Z[4])+U[2]*Z[1]+U[1]*Z[2])/2.0;
X    c[1][2]=(-(U[3]*Z[3])+U[1]*Z[1])/2.0;
X    c[1][3]=(U[4]*Z[1]+U[3]*Z[2]-(U[2]*Z[3])-(U[1]*Z[4]))/2.0;
X    c[1][4]=(U[3]*Z[1]-(U[1]*Z[3]))/2.0;
X    c[1][5]=(8.0*Z[1])/(U[5]*U[5]*U[5]);
X    c[2][1]=(U[4]*Z[3]+U[3]*Z[4]-(U[2]*Z[1])-(U[1]*Z[2]))/2.0;
X    c[2][2]=(U[3]*Z[3]-(U[1]*Z[1]))/2.0;
X    c[2][3]=(-(U[4]*Z[1])-(U[3]*Z[2])+U[2]*Z[3]+U[1]*Z[4])/2.0;
X    c[2][4]=(-(U[3]*Z[1])+U[1]*Z[3])/2.0;
X    c[2][5]=(80.0*Z[2])/(U[5]*U[5]*U[5]);
X    c[3][1]=(-(U[4]*Z[1])-(U[3]*Z[2])+U[2]*Z[3]+U[1]*Z[4])/2.0;
X    c[3][2]=(-(U[3]*Z[1])+U[1]*Z[3])/2.0;
X    c[3][3]=(U[4]*Z[3]+U[3]*Z[4]-(U[2]*Z[1])-(U[1]*Z[2]))/2.0;
X    c[3][4]=(U[3]*Z[3]-(U[1]*Z[1]))/2.0;
X    c[3][5]=(4.0*Z[3])/(U[5]*U[5]*U[5]);
X    c[4][1]=(U[4]*Z[1]+U[3]*Z[2]-(U[2]*Z[3])-(U[1]*Z[4]))/2.0;
X    c[4][2]=(U[3]*Z[1]-(U[1]*Z[3]))/2.0;
X    c[4][3]=(-(U[4]*Z[3])-(U[3]*Z[4])+U[2]*Z[1]+U[1]*Z[2])/2.0;
X    c[4][4]=(-(U[3]*Z[3])+U[1]*Z[1])/2.0;
X    c[4][5]=(40.0*Z[4])/(U[5]*U[5]*U[5]);
X}
Xstatic void cgZ221(U,Z,c)
Xdouble *U,*Z,**c;
X{
X    c[1][1]=(-(U[4]*Z[4])+U[4]*Z[3]-(U[2]*Z[2])+U[2]*Z[1])/2.0;
X    c[1][2]=(-(U[3]*Z[4])+U[3]*Z[3]-(U[1]*Z[2])+U[1]*Z[1])/2.0;
X    c[1][3]=(-(U[4]*Z[2])+U[4]*Z[1]-(U[2]*Z[4])+U[2]*Z[3])/2.0;
X    c[1][4]=(-(U[3]*Z[2])+U[3]*Z[1]-(U[1]*Z[4])+U[1]*Z[3])/2.0;
X    c[1][5]=0.0;
X    c[2][2]=0.0;
X    c[2][3]=(-(U[3]*Z[2])+U[3]*Z[1]-(U[1]*Z[4])+U[1]*Z[3])/2.0;
X    c[2][4]=0.0;
X    c[2][5]=0.0;
X    c[3][3]=(-(U[4]*Z[4])+U[4]*Z[3]-(U[2]*Z[2])+U[2]*Z[1])/2.0;
X    c[3][4]=(-(U[3]*Z[4])+U[3]*Z[3]-(U[1]*Z[2])+U[1]*Z[1])/2.0;
X    c[3][5]=(4.0*Z[3])/(U[5]*U[5]*U[5]);
X    c[4][4]=0.0;
X    c[4][5]=(40.0*Z[4])/(U[5]*U[5]*U[5]);
X    c[5][5]=(-(120.0*U[4]*Z[4])-(12.0*U[3]*Z[3]))/(U[5]*U[5]*U[5]*U[5]);
X}
Xstatic void transformZ22(U,y)
Xdouble *U,*y;
X{
X    y[1]=(-U[3]+U[1])/2.0;
X    y[2]=(-U[4]+U[2])/2.0;
X    y[3]=(U[3]+U[1])/2.0;
X    y[4]=(U[4]+U[2])/2.0;
X    y[5]=(U[3]+U[1])/2.0;
X    y[6]=(U[4]+U[2])/2.0;
X    y[7]=(-U[3]+U[1])/2.0;
X    y[8]=(-U[4]+U[2])/2.0;
X    y[9]=U[5];
X}
Xstatic void invtransformZ22(Y,u)
Xdouble *u,*Y;
X{
X    u[1]=(Y[7]+Y[5]+Y[3]+Y[1])/2.0;
X    u[2]=(Y[8]+Y[6]+Y[4]+Y[2])/2.0;
X    u[3]=(-Y[7]+Y[5]+Y[3]-Y[1])/2.0;
X    u[4]=(-Y[8]+Y[6]+Y[4]-Y[2])/2.0;
X    u[5]=Y[9];
X}
Xstatic void tangentZ22nachID(Z,y)
Xdouble *Z,*y;
X{
X    y[1]=0.0;
X    y[2]=0.0;
X    y[3]=Z[1];
X    y[4]=Z[2];
X    y[5]=Z[3];
X    y[6]=Z[4];
X    y[7]=0.0;
X    y[8]=0.0;
X    y[9]=0.0;
X}
Xstatic void testZ22D4(U,t)
Xdouble *U,*t;
X{
X    t[1]=U[3];
X    t[2]=U[4];
X}
Xstatic void init_Z22()
X{
X    Op *op;
X    Z22->label="Z22";
X    Z22->implemented=TRUE;
X    Z22->transform=transformZ22;
X    Z22->inv_transform=invtransformZ22;
X    append_op(Z22,D4_proc_2,D4_proc_4,change_group_2,isotypic_triv);
X    append_op(Z22,D4_proc_2,D4_proc_4,change_group_2,isotypic_triv);
X    append_op(Z22,D4_proc_2,D4_proc_4,change_group_2,isotypic_triv);
X    append_op(Z22,D4_proc_2,D4_proc_4,change_group_2,isotypic_triv);
X    Z22->m[1]=4;
X    Z22->m[2]=4;
X    Z22->g=gZ22;
X    Z22->dg[1]=dgZ221;
X    Z22->dg[2]=dgZ222;
X    Z22->cg[1]=cgZ221;
X    Z22->cg[2]=cgZ222;
X    Z22->subgroup[2][1]=ID;
X    Z22->symmetric[2][1]=TRUE;
X    Z22->tangent[2][1]=tangentZ22nachID;
X    Z22->test[1]=testZ22D4;
X    Z22->ntest[1]=2;
X    Z22->supergroup[1]=D4;
X    Z22->next=Z20;
X    Z22->no=Z22_NO;
X}
Xstatic void gD4(U,g)
Xdouble *U,*g;
X{
X    g[1]=(U[2]*(U[1]*U[1])-(28.0*U[1])+16.0)/4.0;
X    g[2]=(-(U[2]*(U[1]*U[1]))+24.0*U[1])/4.0;
X}
Xstatic void dgD41(U,dgu)
Xdouble *U,**dgu;
X{
X    dgu[1][1]=(U[2]*U[1]-14.0)/2.0;
X    dgu[1][2]=(U[1]*U[1])/4.0;
X    dgu[1][3]=0.0;
X    dgu[2][1]=(-(U[2]*U[1])+12.0)/2.0;
X    dgu[2][2]=-(U[1]*U[1])/4.0;
X    dgu[2][3]=0.0;
X}
Xstatic void dgD44(U,dgu)
Xdouble *U,**dgu;
X{
X    dgu[1][1]=((U[3]*U[3])*U[2]*U[1]-(14.0*(U[3]*U[3]))-8.0)/(2.0*(U[3]*U[
X3]));
X    dgu[1][2]=(U[1]*U[1])/4.0;
X    dgu[2][1]=(-(U[2]*U[1])+12.0)/2.0;
X    dgu[2][2]=(-((U[3]*U[3])*(U[1]*U[1]))-160.0)/(4.0*(U[3]*U[3]));
X}
Xstatic void dgD45(U,dgu)
Xdouble *U,**dgu;
X{
X    dgu[1][1]=((U[3]*U[3])*U[2]*U[1]-(14.0*(U[3]*U[3]))-4.0)/(2.0*(U[3]*U[
X3]));
X    dgu[1][2]=(U[1]*U[1])/4.0;
X    dgu[2][1]=(-(U[2]*U[1])+12.0)/2.0;
X    dgu[2][2]=(-((U[3]*U[3])*(U[1]*U[1]))-80.0)/(4.0*(U[3]*U[3]));
X}
Xstatic void cgD44(U,Z,c)
Xdouble *U,*Z,**c;
X{
X    c[1][1]=(U[2]*Z[1]+U[1]*Z[2])/2.0;
X    c[1][2]=(U[1]*Z[1])/2.0;
X    c[1][3]=(8.0*Z[1])/(U[3]*U[3]*U[3]);
X    c[2][1]=(-(U[2]*Z[1])-(U[1]*Z[2]))/2.0;
X    c[2][2]=-(U[1]*Z[1])/2.0;
X    c[2][3]=(80.0*Z[2])/(U[3]*U[3]*U[3]);
X}
Xstatic void cgD45(U,Z,c)
Xdouble *U,*Z,**c;
X{
X    c[1][1]=(U[2]*Z[1]+U[1]*Z[2])/2.0;
X    c[1][2]=(U[1]*Z[1])/2.0;
X    c[1][3]=(4.0*Z[1])/(U[3]*U[3]*U[3]);
X    c[2][1]=(-(U[2]*Z[1])-(U[1]*Z[2]))/2.0;
X    c[2][2]=-(U[1]*Z[1])/2.0;
X    c[2][3]=(40.0*Z[2])/(U[3]*U[3]*U[3]);
X}
Xstatic void cgD41(U,Z,c)
Xdouble *U,*Z,**c;
X{
X    c[1][1]=(-(U[2]*Z[2])+U[2]*Z[1])/2.0;
X    c[1][2]=(-(U[1]*Z[2])+U[1]*Z[1])/2.0;
X    c[1][3]=0.0;
X    c[2][2]=0.0;
X    c[2][3]=0.0;
X    c[3][3]=0.0;
X}
Xstatic void transformD4(U,y)
Xdouble *U,*y;
X{
X    y[1]=U[1]/2.0;
X    y[2]=U[2]/2.0;
X    y[3]=U[1]/2.0;
X    y[4]=U[2]/2.0;
X    y[5]=U[1]/2.0;
X    y[6]=U[2]/2.0;
X    y[7]=U[1]/2.0;
X    y[8]=U[2]/2.0;
X    y[9]=U[3];
X}
Xstatic void invtransformD4(Y,u)
Xdouble *u,*Y;
X{
X    u[1]=(Y[7]+Y[5]+Y[3]+Y[1])/2.0;
X    u[2]=(Y[8]+Y[6]+Y[4]+Y[2])/2.0;
X    u[3]=Y[9];
X}
Xstatic void tangentD4nachK42(Z,y)
Xdouble *Z,*y;
X{
X    y[1]=0.0;
X    y[2]=0.0;
X    y[3]=Z[1];
X    y[4]=Z[2];
X    y[5]=0.0;
X}
Xstatic void tangentD4nachZ21(Z,y)
Xdouble *Z,*y;
X{
X    y[1]=0.0;
X    y[2]=0.0;
X    y[3]=0.0;
X    y[4]=0.0;
X    y[5]=(3.0*Z[1]*SQRT2)/2.0;
X    y[6]=(3.0*Z[2]*SQRT2)/2.0;
X    y[7]=0.0;
X}
Xstatic void tangentD4nachZ22(Z,y)
Xdouble *Z,*y;
X{
X    y[1]=0.0;
X    y[2]=0.0;
X    y[3]=2.0*Z[1];
X    y[4]=2.0*Z[2];
X    y[5]=0.0;
X}
Xstatic void allocgroups()
X{
X    int *nsub,r,S;
X    S=1;
X    r=4;
X    nsub=ivector(2,S);
X    ID=new_group(S,nsub,r);
X    S=2;
X    r=2;
X    nsub=ivector(2,S);
X    nsub[2]=1;
X    Z23=new_group(S,nsub,r);
X    S=2;
X    r=2;
X    nsub=ivector(2,S);
X    nsub[2]=1;
X    Z21=new_group(S,nsub,r);
X    S=3;
X    r=1;
X    nsub=ivector(2,S);
X    nsub[2]=1;
X    nsub[3]=1;
X    K42=new_group(S,nsub,r);
X    S=2;
X    r=1;
X    nsub=ivector(2,S);
X    nsub[2]=1;
X    Z20=new_group(S,nsub,r);
X    S=2;
X    r=1;
X    nsub=ivector(2,S);
X    nsub[2]=1;
X    Z22=new_group(S,nsub,r);
X    S=3;
X    r=0;
X    nsub=ivector(2,S);
X    nsub[2]=1;
X    nsub[3]=2;
X    group=new_group(S,nsub,r);
X    D4=group;
X}
Xvoid init_group()
X{
X    numeric_mode=FALSE;
X    init_data();
X    allocgroups();
X    init_Z22();
X    init_Z20();
X    init_K42();
X    init_Z21();
X    init_Z23();
X    init_ID();
X    D4->label="D4";
X    D4->implemented=TRUE;
X    D4->transform=transformD4;
X    D4->inv_transform=invtransformD4;
X    append_op(D4,D4_proc_2,D4_proc_4,change_group_2,isotypic_triv);
X    D4->m[1]=2;
X    D4->m[2]=2;
X    D4->m[3]=2;
X    D4->g=gD4;
X    D4->dg[1]=dgD41;
X    D4->dg[2]=dgD44;
X    D4->dg[3]=dgD45;
X    D4->cg[1]=cgD41;
X    D4->cg[2]=cgD44;
X    D4->cg[3]=cgD45;
X    D4->subgroup[2][1]=K42;
X    D4->symmetric[2][1]=TRUE;
X    D4->tangent[2][1]=tangentD4nachK42;
X    D4->subgroup[3][1]=Z21;
X    D4->symmetric[3][1]=TRUE;
X    D4->tangent[3][1]=tangentD4nachZ21;
X    D4->subgroup[3][2]=Z22;
X    D4->symmetric[3][2]=TRUE;
X    D4->tangent[3][2]=tangentD4nachZ22;
X    D4->next=Z22;
X    D4->no=D4_NO;
X}
END_OF_FILE
if test 43482 -ne `wc -c <'brussD4.c'`; then
    echo shar: \"'brussD4.c'\" unpacked with wrong size!
fi
# end of 'brussD4.c'
fi
echo shar: End of shell archive.
exit 0

