
# SquareLatticeGraph.R
# Lasse Leskelä 2010-10-14
#
# Syöte:
# m : kokonaisluku
#
# Tulos:
# L : n x n matriisi, missä n = m^2
#
# Funktiota kutsutaan komennoilla:
# 
#  source('SquareLatticeGraph.R')
#  L <- SquareLatticeGraph(m)
#

SquareLatticeGraph <- function (m) {

 n <- m^2
 L <- matrix(0,n,n);

 # node[[i]] palauttaa i:nnen solmun koordinaatit
 node <- vector("list", n)
 i <- 0
 for (v1 in 1:m) {
   for (v2 in 1:m) {
     i <- i + 1
     node[[i]] <- c(v1,v2)
   }
 }

 for (i in 1:n) {
   v <- node[[i]]
   for (j in 1:n) {
     w <- node[[j]]
     z <- (w-v) %% m
     d <- min(z[1],m-z[1]) + min(z[2],m-z[2])
     if ( d == 1 ) {
       L[i,j] <- 1
     }
   }
 }
 L
}
