1#!/bin/bash
2
3typeset -i m2 m1 M n2 n1 N m n
4typeset -i MM=5 NN=5
5
6case $# in
7  0) :
8  ;;
9  1) MM=$1; NN=$1
10  ;;
11  2) MM=$1; NN=$2
12  ;;
13  *) echo 1>&2 "Usage: $0 [m [n]]"
14  ;;
15esac
16
17EMPTYLINE=:  # echo
18echo 'a = { '    # mathematica
19
20let "M=1"                   # for (M=1; M<=MM; M++)
21while let "M <= MM"; do
22  let "N=1"                 # for (N=1; N<=NN; N++)
23  while let "N <= NN"; do
24
25    let "m1 = M - 1"
26    let "m2 =  M + 1"
27    let "n1 = N - 1"
28    let "n2 =  N + 1"
29
30
31    echo -n '{ '  # math
32    let "m=1"               # for(m=1; m<=MM; m++)
33    while let "m <= MM"; do
34      let "n=1"              # for(n=1; n<=NN; n++)
35      while let "n <= NN"; do
36
37        let "x = (m-m1)*(m-M)*(m-m2)"
38        let "y = (n-n1)*(n-N)*(n-n2)"
39
40        if let "(x*x + (n-N)*(n-N)) * ((m-M)*(m-M) + y*y)"; then
41	  echo -n "0,"
42        else  # neighbour
43	  echo -n "1,"
44        fi
45
46	let "n=n+1"
47      done
48      echo -n " "; let "m=m+1"     # ". "
49    done
50    echo '},'
51
52
53    let "N=N+1"
54    $EMPTYLINE  
55  done
56  $EMPTYLINE  
57  let "M=M+1"
58done
59
60echo '}'
61
62
63
64echo -n 'o = { '
65let "m=1"
66while let "m <= MM"; do
67  let "n=1"
68  while let "n <= NN"; do
69    echo -n "1,"
70    let "n=n+1"
71  done
72  let "m=m+1"
73done
74echo " }"
75
76
77echo 'x = LinearSolve[a,o]  '
78
79exit 0
80
81
82