We need to define gg and hh in the cell below.  This is for the graph C4.

<<DiscreteMath`Combinatorica`
m=4;
e={{1,2},{2,3},{3,4}, {4,1}};n=Length[e];
Print["m = ",m," vertices, n = ",n," edges"];
A=Table[0,{i,1,n},{j,1,m}];
For[i=1,i≤n,i++,
    A[[i,e[[i,1]]]]=-1;
    A[[i,e[[i,2]]]]=+1;
    ];
L=Transpose[A].A;
(*
Print[MatrixForm[A]];
Print[MatrixForm[L]];
Print[evals=Eigenvalues[L]];
Print[TableForm[evects=Eigenvectors[L]]];
*)
gg=FromOrderedPairs[e];
ShowGraph[gg];

\(\(\( (*\ 
      Form\ Basis\ of\ Eigenvectors\ of\  - 
        Laplacian\ *) \)\(
\)\(\(pp = 
        Eigenvectors[L];\)\(
\)
    \(l = Eigenvalues[L];\)\(
\)
    \(Print["evals of L = -Laplacian: ", l];\)\(
\)
    \(Print["evecs of L are rows of ", \ 
        MatrixForm[Chop[pp]]];\)\(
\)\( (*\(Print[
          MatrixForm[
            Chop[pp . 
                Transpose[pp]]]];\)*) \)\(
\)\(
\)\( (*\ 
      Gram\ Schmitt\ the\ basis, \ 
      multiple\ eigenvalues\ *) \)\(
\)
    \(p = {};\)\(
\)\( (*\(p = 
          Append[p, pp[\([1]\)]/\((Sqrt[pp[\([1]\)] . pp[\([1]\)]])\)] // 
            N;\)*) \)\(
\)
    \(p = 
        Append[p, pp[\([1]\)]/\((Sqrt[pp[\([1]\)] . pp[\([1]\)]])\)];\)\(
\)
    \(For[i = 2, 
        i ≤ m, \(i++\), 
q = 
          pp[\([i]\)]; 
For[j = 1, 
          j ≤ 
            i - 1, \(j++\), 
\(q -= \((p[\([j]\)] . q)\) 
                p[\([j]\)];\)
]; 
q = 
          q/Sqrt[q . q]; 
 (*\(p = 
              Append[p, q] // N;\)*) 
p = 
          Append[p, q];
];\)\(
\)\( (*\(Print[
          MatrixForm[Chop[p . Transpose[p]]]];\)*) \)\(
\)
    \(Print["evecs after Gram Schmitt: ", \ 
        MatrixForm[Chop[p]]];\)\(
\)
    \( (*
p\  = \ 
        p // N; 
Print["numerical approx: ", \ 
        MatrixForm[Chop[p]]];
*) \)\)\)\)

\(\(\( (*\ 
      Read\ gap\ data\ *) \)\(
\)\(\(gapfile = "readgap/doC4.txt";\)

    \(fmt = {Number, Number};\)

    \({m, k} = \(ReadList[gapfile, fmt, 1]\)[\([1]\)];\)

    \(fmt = {Number, Number, Table[Number, {i, 1, k}], 
          Table[Number, {i, 1, k}]};\)

    \({m, k, j, 
          q} = \(ReadList[gapfile, fmt, 1]\)[\([1]\)];\)
 (*\ \(Print[{m, k, 
            j, q}];\)\ *) 

    \(fmt = {Number, Number, Table[Number, {i, 1, k}], 
          Table[Number, {i, 1, k}]};\)

    \(sym = {};\)

    \(For[kk = 1, 
        kk ≤ 
          k, \(kk++\), 
sub = {}; 
For[
          jj = 1, jj ≤ 
            j[\([kk]\)], \(jj++\), 
row = 
            Table[Number, {s, 1, q[\([kk]\)]}, {t, 1, 
                m}]; 
sub = 
            Append[sub, row];
]; 
sym = 
          Append[sym, sub];
];\)

    \(fmt = Append[fmt, sym];\)

    \(AAA = \(ReadList[gapfile, fmt, 1]\)[\([1]\)];\)

    \(ss = AAA[\([5]\)];\)

    \(B = {};\)

    \(For[si = 1, 
        si ≤ 
          Length[ss], \(si++\), 
Bb = {}; 
For[sii = 1, 
          sii ≤ 
            Length[ss[\([si]\)]\ ], \(sii++\), 
gg = 
            ss[\([si, sii]\)]; 
ggs = 
            Sign[Table[
                gg[\([i, 1]\)], {i, 1, Length[gg]}]]; 
gg = 
            Abs[gg]; 
BB = 
            Flatten[
Table[
                Transpose[
Table[
                      ggs[\([j]\)]\ p[\([i, 
                            gg[\([j]\)]]\)], 
{i, 1, m}] - 
                    p], 
{j, 1, Length[gg]}], 
              1]; 
BB = 
            NullSpace[BB]; 
Bb = 
            Append[Bb, BB];
]; 
B = 
          Append[B, Bb];
];\)

    MatrixForm[B]\)\)\)